mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-08-25 16:23:46 +02:00
Remove most of the #ifndef MKXPZ_RETRO
macros in graphics-related code
This commit is contained in:
parent
efde7d527d
commit
01fce50d97
4 changed files with 8 additions and 130 deletions
|
@ -545,6 +545,7 @@ if is_libretro
|
|||
'src/audio/soundemitter.cpp',
|
||||
'src/audio/vorbissource.cpp',
|
||||
'src/crypto/rgssad.cpp',
|
||||
'src/display/autotiles.cpp',
|
||||
'src/display/bitmap.cpp',
|
||||
'src/display/plane.cpp',
|
||||
'src/display/sprite.cpp',
|
||||
|
@ -559,6 +560,7 @@ if is_libretro
|
|||
'src/display/gl/shader.cpp',
|
||||
'src/display/gl/texpool.cpp',
|
||||
'src/display/gl/tileatlas.cpp',
|
||||
'src/display/gl/tilequad.cpp',
|
||||
'src/display/gl/vertex.cpp',
|
||||
'src/display/graphics.cpp',
|
||||
'src/etc/etc.cpp',
|
||||
|
|
|
@ -28,17 +28,13 @@
|
|||
#include "etc.h"
|
||||
#include "util.h"
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include "gl-util.h"
|
||||
#include "quad.h"
|
||||
#include "quadarray.h"
|
||||
#include "transform.h"
|
||||
#endif // MKXPZ_RETRO
|
||||
#include "etc-internal.h"
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include "shader.h"
|
||||
#include "glstate.h"
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
#include "sigslot/signal.hpp"
|
||||
|
||||
|
@ -66,9 +62,7 @@ struct PlanePrivate
|
|||
|
||||
bool quadSourceDirty;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
SimpleQuadArray qArray;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
EtcTemps tmp;
|
||||
|
||||
|
@ -87,9 +81,7 @@ struct PlanePrivate
|
|||
prepareCon = shState->prepareDraw.connect
|
||||
(&PlanePrivate::prepare, this);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
qArray.resize(1);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
~PlanePrivate()
|
||||
|
@ -107,7 +99,6 @@ struct PlanePrivate
|
|||
|
||||
void updateQuadSource()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
if (gl.npot_repeat)
|
||||
{
|
||||
FloatRect srcRect;
|
||||
|
@ -121,7 +112,6 @@ struct PlanePrivate
|
|||
|
||||
return;
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
if (nullOrDisposed(bitmap))
|
||||
return;
|
||||
|
@ -144,7 +134,6 @@ struct PlanePrivate
|
|||
|
||||
FloatRect tex = bitmap->rect();
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
qArray.resize(tilesX * tilesY);
|
||||
|
||||
for (size_t y = 0; y < tilesY; ++y)
|
||||
|
@ -157,7 +146,6 @@ struct PlanePrivate
|
|||
}
|
||||
|
||||
qArray.commit();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void prepare()
|
||||
|
@ -293,7 +281,6 @@ void Plane::draw()
|
|||
if (!p->opacity)
|
||||
return;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
ShaderBase *base;
|
||||
|
||||
if (p->color->hasEffect() || p->tone->hasEffect() || p->opacity != 255)
|
||||
|
@ -333,15 +320,12 @@ void Plane::draw()
|
|||
TEX::setRepeat(false);
|
||||
|
||||
glState.blendMode.pop();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void Plane::onGeometryChange(const Scene::Geometry &geo)
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
if (gl.npot_repeat)
|
||||
Quad::setPosRect(&p->qArray.vertices[0], FloatRect(geo.rect));
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
p->sceneGeo = geo;
|
||||
p->quadSourceDirty = true;
|
||||
|
|
|
@ -28,19 +28,15 @@
|
|||
#include "sharedstate.h"
|
||||
#include "config.h"
|
||||
#include "debugwriter.h"
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include "glstate.h"
|
||||
#include "gl-util.h"
|
||||
#include "gl-meta.h"
|
||||
#include "global-ibo.h"
|
||||
#endif // MKXPZ_RETRO
|
||||
#include "etc-internal.h"
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include "quadarray.h"
|
||||
#include "texpool.h"
|
||||
#include "quad.h"
|
||||
#include "vertex.h"
|
||||
#endif // MKXPZ_RETRO
|
||||
#include "tileatlas.h"
|
||||
#include "tilemap-common.h"
|
||||
|
||||
|
@ -51,15 +47,11 @@
|
|||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include <SDL_surface.h>
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
extern const StaticRect autotileRects[];
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
typedef std::vector<SVertex> SVVector;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
static const int tilesetW = 8 * 32;
|
||||
static const int autotileW = 3 * 32;
|
||||
|
@ -195,9 +187,7 @@ static elementsN(flashAlpha);
|
|||
|
||||
struct GroundLayer : public ViewportElement
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLsizei vboCount;
|
||||
#endif // MKXPZ_RETRO
|
||||
TilemapPrivate *p;
|
||||
|
||||
GroundLayer(TilemapPrivate *p, Viewport *viewport);
|
||||
|
@ -215,21 +205,17 @@ struct GroundLayer : public ViewportElement
|
|||
struct ZLayer : public ViewportElement
|
||||
{
|
||||
size_t index;
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLintptr vboOffset;
|
||||
GLsizei vboCount;
|
||||
#endif // MKXPZ_RETRO
|
||||
TilemapPrivate *p;
|
||||
|
||||
/* If this layer is part of a batch and not
|
||||
* the head, it is 'muted' via this flag */
|
||||
bool batchedFlag;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* If this layer is a batch head, this variable
|
||||
* holds the element count of the entire batch */
|
||||
GLsizei vboBatchCount;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
ZLayer(TilemapPrivate *p, Viewport *viewport);
|
||||
|
||||
|
@ -263,9 +249,7 @@ struct TilemapPrivate
|
|||
|
||||
/* Tile atlas */
|
||||
struct {
|
||||
#ifndef MKXPZ_RETRO
|
||||
TEXFBO gl;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
Vec2i size;
|
||||
|
||||
|
@ -290,13 +274,11 @@ struct TilemapPrivate
|
|||
/* Map viewport position */
|
||||
Vec2i viewpPos;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Ground layer vertices */
|
||||
SVVector groundVert;
|
||||
|
||||
/* ZLayer vertices */
|
||||
SVVector zlayerVert[zlayersMax];
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
/* Base quad indices of each zlayer
|
||||
* in the shared buffer */
|
||||
|
@ -305,10 +287,8 @@ struct TilemapPrivate
|
|||
/* Shared buffers for all tiles */
|
||||
struct
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLMeta::VAO vao;
|
||||
VBO::ID vbo;
|
||||
#endif // MKXPZ_RETRO
|
||||
bool animated;
|
||||
|
||||
/* Animation state */
|
||||
|
@ -390,7 +370,6 @@ struct TilemapPrivate
|
|||
tiles.animated = false;
|
||||
tiles.aniIdx = 0;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Init tile buffers */
|
||||
tiles.vbo = VBO::gen();
|
||||
|
||||
|
@ -399,7 +378,6 @@ struct TilemapPrivate
|
|||
tiles.vao.ibo = shState->globalIBO().ibo;
|
||||
|
||||
GLMeta::vaoInit(tiles.vao);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
elem.ground = new GroundLayer(this, viewport);
|
||||
|
||||
|
@ -419,13 +397,11 @@ struct TilemapPrivate
|
|||
for (size_t i = 0; i < zlayersMax; ++i)
|
||||
delete elem.zlayers[i];
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
shState->releaseAtlasTex(atlas.gl);
|
||||
|
||||
/* Destroy tile buffers */
|
||||
GLMeta::vaoFini(tiles.vao);
|
||||
VBO::del(tiles.vbo);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
/* Disconnect signal handlers */
|
||||
tilesetCon.disconnect();
|
||||
|
@ -457,11 +433,7 @@ struct TilemapPrivate
|
|||
int tsH = tileset->height();
|
||||
atlas.efTilesetH = tsH - (tsH % 32);
|
||||
|
||||
#ifdef MKXPZ_RETRO
|
||||
atlas.size = TileAtlas::minSize(atlas.efTilesetH, 2048); // TODO
|
||||
#else
|
||||
atlas.size = TileAtlas::minSize(atlas.efTilesetH, glState.caps.maxTexSize);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
if (atlas.size.x < 0)
|
||||
throw Exception(Exception::MKXPError,
|
||||
|
@ -557,11 +529,9 @@ struct TilemapPrivate
|
|||
{
|
||||
updateAtlasInfo();
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Aquire atlas tex */
|
||||
shState->releaseAtlasTex(atlas.gl);
|
||||
shState->requestAtlasTex(atlas.size.x, atlas.size.y, atlas.gl);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
atlasDirty = true;
|
||||
}
|
||||
|
@ -574,7 +544,6 @@ struct TilemapPrivate
|
|||
|
||||
TileAtlas::BlitVec blits = TileAtlas::calcBlits(atlas.efTilesetH, atlas.size);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Clear atlas */
|
||||
FBO::bind(atlas.gl.fbo);
|
||||
glState.clearColor.pushSet(Vec4());
|
||||
|
@ -586,7 +555,6 @@ struct TilemapPrivate
|
|||
glState.clearColor.pop();
|
||||
|
||||
GLMeta::blitBegin(atlas.gl);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
/* Blit autotiles */
|
||||
for (size_t i = 0; i < atlas.usableATs.size(); ++i)
|
||||
|
@ -604,7 +572,6 @@ struct TilemapPrivate
|
|||
Debug() << "BUG: High-res Tilemap blit autotiles not implemented";
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLMeta::blitSource(autotile->getGLTypes());
|
||||
|
||||
if (atW <= autotileW && tiles.animated && !atlas.smallATs[atInd])
|
||||
|
@ -630,21 +597,21 @@ struct TilemapPrivate
|
|||
GLMeta::blitRectangle(IntRect(0, 0, blitW, blitH),
|
||||
Vec2i(0, atInd*autotileH));
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLMeta::blitEnd();
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
/* Blit tileset */
|
||||
if (tileset->megaSurface())
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Mega surface tileset */
|
||||
SDL_Surface *tsSurf = tileset->megaSurface();
|
||||
|
||||
#ifdef MKXPZ_RETRO
|
||||
if (false) // TODO: get from config
|
||||
#else
|
||||
if (shState->config().subImageFix)
|
||||
#endif // MKXPZ_RETRO
|
||||
{
|
||||
/* Implementation for broken GL drivers */
|
||||
FBO::bind(atlas.gl.fbo);
|
||||
|
@ -694,7 +661,6 @@ struct TilemapPrivate
|
|||
|
||||
GLMeta::subRectImageEnd();
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -703,7 +669,6 @@ struct TilemapPrivate
|
|||
Debug() << "BUG: High-res Tilemap regular tileset not implemented";
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Regular tileset */
|
||||
GLMeta::blitBegin(atlas.gl);
|
||||
GLMeta::blitSource(tileset->getGLTypes());
|
||||
|
@ -717,7 +682,6 @@ struct TilemapPrivate
|
|||
}
|
||||
|
||||
GLMeta::blitEnd();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -737,7 +701,6 @@ struct TilemapPrivate
|
|||
return value;
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
void handleAutotile(int x, int y, int tileInd, SVVector *array)
|
||||
{
|
||||
/* Which autotile [0-7] */
|
||||
|
@ -780,7 +743,6 @@ struct TilemapPrivate
|
|||
array->push_back(v[j]);
|
||||
}
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
void handleTile(int x, int y, int z)
|
||||
{
|
||||
|
@ -797,7 +759,6 @@ struct TilemapPrivate
|
|||
if (prio == -1)
|
||||
return;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
SVVector *targetArray;
|
||||
|
||||
/* Prio 0 tiles are all part of the same ground layer */
|
||||
|
@ -833,17 +794,14 @@ struct TilemapPrivate
|
|||
|
||||
for (size_t i = 0; i < 4; ++i)
|
||||
targetArray->push_back(v[i]);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void clearQuadArrays()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
groundVert.clear();
|
||||
|
||||
for (size_t i = 0; i < zlayersMax; ++i)
|
||||
zlayerVert[i].clear();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void buildQuadArray()
|
||||
|
@ -880,11 +838,7 @@ struct TilemapPrivate
|
|||
|
||||
static size_t quadDataSize(size_t quadCount)
|
||||
{
|
||||
#ifdef MKXPZ_RETRO
|
||||
return 0; // TODO
|
||||
#else
|
||||
return quadCount * sizeof(SVertex) * 4;
|
||||
#endif
|
||||
}
|
||||
|
||||
size_t zlayerSize(size_t index)
|
||||
|
@ -894,7 +848,6 @@ struct TilemapPrivate
|
|||
|
||||
void uploadBuffers()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Calculate total quad count */
|
||||
size_t groundQuadCount = groundVert.size() / 4;
|
||||
size_t quadCount = groundQuadCount;
|
||||
|
@ -925,12 +878,10 @@ struct TilemapPrivate
|
|||
|
||||
/* Ensure global IBO size */
|
||||
shState->ensureQuadIBO(quadCount);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void bindShader(ShaderBase *&shaderVar)
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
if (tiles.animated || color->hasEffect() || tone->hasEffect() || opacity != 255)
|
||||
{
|
||||
TilemapShader &tilemapShader = shState->shaders().tilemap;
|
||||
|
@ -950,15 +901,12 @@ struct TilemapPrivate
|
|||
}
|
||||
|
||||
shaderVar->applyViewportProj();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void bindAtlas(ShaderBase &shader)
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
TEX::bind(atlas.gl.tex);
|
||||
shader.setTexSize(atlas.size);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void updateActiveElements(std::vector<int> &zlayerInd)
|
||||
|
@ -986,11 +934,9 @@ struct TilemapPrivate
|
|||
/* Only allocate elements for non-emtpy zlayers */
|
||||
std::vector<int> zlayerInd;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
for (size_t i = 0; i < zlayersMax; ++i)
|
||||
if (zlayerVert[i].size() > 0)
|
||||
zlayerInd.push_back(i);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
updateActiveElements(zlayerInd);
|
||||
elem.activeLayers = zlayerInd.size();
|
||||
|
@ -1042,7 +988,6 @@ struct TilemapPrivate
|
|||
ZLayer *batchHead = zlayers[i];
|
||||
batchHead->batchedFlag = false;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
GLsizei vboBatchCount = batchHead->vboCount;
|
||||
IntruListLink<SceneElement> *iter = &batchHead->link;
|
||||
|
||||
|
@ -1062,7 +1007,6 @@ struct TilemapPrivate
|
|||
}
|
||||
|
||||
batchHead->vboBatchCount = vboBatchCount;
|
||||
#endif // MKXPZ_RETRO
|
||||
--i;
|
||||
}
|
||||
}
|
||||
|
@ -1135,9 +1079,7 @@ struct TilemapPrivate
|
|||
|
||||
GroundLayer::GroundLayer(TilemapPrivate *p, Viewport *viewport)
|
||||
: ViewportElement(viewport, 0),
|
||||
#ifndef MKXPZ_RETRO
|
||||
vboCount(0),
|
||||
#endif // MKXPZ_RETRO
|
||||
p(p)
|
||||
{
|
||||
onGeometryChange(scene->getGeometry());
|
||||
|
@ -1145,14 +1087,11 @@ GroundLayer::GroundLayer(TilemapPrivate *p, Viewport *viewport)
|
|||
|
||||
void GroundLayer::updateVboCount()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
vboCount = p->zlayerBases[0] * 6;
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void GroundLayer::draw()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
if (p->groundVert.size() == 0)
|
||||
return;
|
||||
|
||||
|
@ -1176,14 +1115,11 @@ void GroundLayer::draw()
|
|||
p->flashMap.draw(flashAlpha[p->flashAlphaIdx] / 255.f, p->dispPos);
|
||||
|
||||
glState.blendMode.pop();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void GroundLayer::drawInt()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
gl.DrawElements(GL_TRIANGLES, vboCount, _GL_INDEX_TYPE, (GLvoid*) 0);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void GroundLayer::onGeometryChange(const Scene::Geometry &geo)
|
||||
|
@ -1193,15 +1129,11 @@ void GroundLayer::onGeometryChange(const Scene::Geometry &geo)
|
|||
|
||||
ZLayer::ZLayer(TilemapPrivate *p, Viewport *viewport)
|
||||
: ViewportElement(viewport, 0),
|
||||
#ifdef MKXPZ_RETRO
|
||||
index(0)
|
||||
#else
|
||||
index(0),
|
||||
vboOffset(0),
|
||||
vboCount(0),
|
||||
p(p),
|
||||
vboBatchCount(0)
|
||||
#endif // MKXPZ_RETRO
|
||||
{}
|
||||
|
||||
void ZLayer::setIndex(int value)
|
||||
|
@ -1211,10 +1143,8 @@ void ZLayer::setIndex(int value)
|
|||
z = calculateZ(p, index);
|
||||
scene->reinsert(*this);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
vboOffset = p->zlayerBases[index] * sizeof(index_t) * 6;
|
||||
vboCount = p->zlayerSize(index) * 6;
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void ZLayer::draw()
|
||||
|
@ -1227,7 +1157,6 @@ void ZLayer::draw()
|
|||
p->bindShader(shader);
|
||||
p->bindAtlas(*shader);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
glState.blendMode.pushSet(p->blendType);
|
||||
|
||||
GLMeta::vaoBind(p->tiles.vao);
|
||||
|
@ -1238,14 +1167,11 @@ void ZLayer::draw()
|
|||
GLMeta::vaoUnbind(p->tiles.vao);
|
||||
|
||||
glState.blendMode.pop();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void ZLayer::drawInt()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
gl.DrawElements(GL_TRIANGLES, vboBatchCount, _GL_INDEX_TYPE, (GLvoid*) vboOffset);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
int ZLayer::calculateZ(TilemapPrivate *p, int index)
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "bitmap.h"
|
||||
#include "etc.h"
|
||||
#include "etc-internal.h"
|
||||
#ifndef MKXPZ_RETRO
|
||||
#include "tilequad.h"
|
||||
|
||||
#include "gl-util.h"
|
||||
|
@ -34,7 +33,6 @@
|
|||
#include "quadarray.h"
|
||||
#include "texpool.h"
|
||||
#include "glstate.h"
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
#include "sigslot/signal.hpp"
|
||||
|
||||
|
@ -120,7 +118,6 @@ static const uint8_t pauseAniAlpha[] =
|
|||
|
||||
static elementsN(pauseAniAlpha);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Points to an array of quads which it doesn't own.
|
||||
* Useful for setting alpha of quads stored inside
|
||||
* bigger arrays */
|
||||
|
@ -139,7 +136,6 @@ struct QuadChunk
|
|||
vert[i].color.w = value;
|
||||
}
|
||||
};
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
/* Vocabulary:
|
||||
*
|
||||
|
@ -200,7 +196,6 @@ struct WindowPrivate
|
|||
bool opacityDirty;
|
||||
bool baseTexDirty;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
ColorQuadArray baseQuadArray;
|
||||
|
||||
/* Used when opacity < 255 */
|
||||
|
@ -210,7 +205,6 @@ struct WindowPrivate
|
|||
QuadChunk backgroundVert;
|
||||
|
||||
Quad baseTexQuad;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
struct WindowControls : public ViewportElement
|
||||
{
|
||||
|
@ -239,7 +233,6 @@ struct WindowPrivate
|
|||
|
||||
WindowControls controlsElement;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
ColorQuadArray controlsQuadArray;
|
||||
int controlsQuadCount;
|
||||
|
||||
|
@ -247,7 +240,6 @@ struct WindowPrivate
|
|||
|
||||
QuadChunk pauseAniVert;
|
||||
QuadChunk cursorVert;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
uint8_t cursorAniAlphaIdx;
|
||||
uint8_t pauseAniAlphaIdx;
|
||||
|
@ -280,11 +272,9 @@ struct WindowPrivate
|
|||
{
|
||||
refreshCursorRectCon();
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
controlsQuadArray.resize(14);
|
||||
cursorVert.count = 9;
|
||||
pauseAniVert.count = 1;
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
prepareCon = shState->prepareDraw.connect
|
||||
(&WindowPrivate::prepare, this);
|
||||
|
@ -292,9 +282,7 @@ struct WindowPrivate
|
|||
|
||||
~WindowPrivate()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
shState->texPool().release(baseTex);
|
||||
#endif // MKXPZ_RETRO
|
||||
cursorRectCon.disconnect();
|
||||
prepareCon.disconnect();
|
||||
|
||||
|
@ -345,7 +333,6 @@ struct WindowPrivate
|
|||
cornerRects.bl = IntRect(0, h-16, 16, 16);
|
||||
cornerRects.br = IntRect(w-16, h-16, 16, 16);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Required quad count */
|
||||
int count = 0;
|
||||
|
||||
|
@ -402,7 +389,6 @@ struct WindowPrivate
|
|||
|
||||
FloatRect texRect = FloatRect(0, 0, size.x, size.y);
|
||||
baseTexQuad.setTexPosRect(texRect, texRect);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
opacityDirty = true;
|
||||
baseTexDirty = true;
|
||||
|
@ -410,12 +396,10 @@ struct WindowPrivate
|
|||
|
||||
void updateBaseAlpha()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* This is always applied unconditionally */
|
||||
backgroundVert.setAlpha(backOpacity.norm);
|
||||
|
||||
baseTexQuad.setColor(Vec4(1, 1, 1, opacity.norm));
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
baseTexDirty = true;
|
||||
}
|
||||
|
@ -423,7 +407,6 @@ struct WindowPrivate
|
|||
void ensureBaseTexReady()
|
||||
{
|
||||
/* Make sure texture is big enough */
|
||||
#ifndef MKXPZ_RETRO
|
||||
int newW = baseTex.width;
|
||||
int newH = baseTex.height;
|
||||
bool resizeNeeded = false;
|
||||
|
@ -444,14 +427,12 @@ struct WindowPrivate
|
|||
|
||||
shState->texPool().release(baseTex);
|
||||
baseTex = shState->texPool().request(newW, newH);
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
baseTexDirty = true;
|
||||
}
|
||||
|
||||
void redrawBaseTex()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
/* Discard old buffer */
|
||||
TEX::bind(baseTex.tex);
|
||||
TEX::allocEmpty(baseTex.width, baseTex.height);
|
||||
|
@ -470,7 +451,9 @@ struct WindowPrivate
|
|||
FBO::clear();
|
||||
|
||||
/* Repaint base */
|
||||
#ifndef MKXPZ_RETRO // TODO
|
||||
windowskin->bindTex(shader);
|
||||
#endif // MKXPZ_RETRO
|
||||
TEX::setSmooth(true);
|
||||
|
||||
/* We need to blit the background without blending,
|
||||
|
@ -490,12 +473,10 @@ struct WindowPrivate
|
|||
glState.blendMode.pop();
|
||||
glState.viewport.pop();
|
||||
TEX::setSmooth(false);
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void buildControlsVert()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
int i = 0;
|
||||
Vertex *vert = controlsQuadArray.vertices.data();
|
||||
|
||||
|
@ -545,7 +526,6 @@ struct WindowPrivate
|
|||
|
||||
controlsQuadArray.commit();
|
||||
controlsQuadCount = i;
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void prepare()
|
||||
|
@ -569,7 +549,6 @@ struct WindowPrivate
|
|||
updateBaseQuadArray = true;
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
if (updateBaseQuadArray)
|
||||
baseQuadArray.commit();
|
||||
|
||||
|
@ -587,7 +566,6 @@ struct WindowPrivate
|
|||
baseTexDirty = false;
|
||||
}
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void drawBase()
|
||||
|
@ -598,7 +576,6 @@ struct WindowPrivate
|
|||
if (size == Vec2i(0, 0))
|
||||
return;
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
SimpleAlphaShader &shader = shState->shaders().simpleAlpha;
|
||||
shader.bind();
|
||||
shader.applyViewportProj();
|
||||
|
@ -620,7 +597,6 @@ struct WindowPrivate
|
|||
|
||||
TEX::setSmooth(false);
|
||||
}
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void drawControls()
|
||||
|
@ -644,7 +620,6 @@ struct WindowPrivate
|
|||
const IntRect windowRect(efPos, size);
|
||||
const IntRect contentsRect(efPos + Vec2i(16), size - Vec2i(32));
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
glState.scissorTest.pushSet(true);
|
||||
glState.scissorBox.push();
|
||||
glState.scissorBox.setIntersect(windowRect);
|
||||
|
@ -679,12 +654,10 @@ struct WindowPrivate
|
|||
|
||||
glState.scissorBox.pop();
|
||||
glState.scissorTest.pop();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void updateControls()
|
||||
{
|
||||
#ifndef MKXPZ_RETRO
|
||||
bool updateArray = false;
|
||||
|
||||
if (active && cursorVert.vert)
|
||||
|
@ -709,7 +682,6 @@ struct WindowPrivate
|
|||
|
||||
if (updateArray)
|
||||
controlsQuadArray.commit();
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void stepAnimations()
|
||||
|
@ -776,9 +748,7 @@ void Window::setWindowskin(Bitmap *value)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
value->ensureNonMega();
|
||||
#endif // MKXPZ_RETRO
|
||||
|
||||
p->windowskinDispCon = value->wasDisposed.connect(&WindowPrivate::windowskinDisposal, p);
|
||||
}
|
||||
|
@ -803,11 +773,9 @@ void Window::setContents(Bitmap *value)
|
|||
|
||||
p->contentsDispCon = value->wasDisposed.connect(&WindowPrivate::contentsDisposal, p);
|
||||
|
||||
#ifndef MKXPZ_RETRO
|
||||
value->ensureNonMega();
|
||||
|
||||
p->contentsQuad.setTexPosRect(value->rect(), value->rect());
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void Window::setStretch(bool value)
|
||||
|
@ -919,9 +887,7 @@ void Window::setContentsOpacity(int value)
|
|||
return;
|
||||
|
||||
p->contentsOpacity = value;
|
||||
#ifndef MKXPZ_RETRO
|
||||
p->contentsQuad.setColor(Vec4(1, 1, 1, p->contentsOpacity.norm));
|
||||
#endif // MKXPZ_RETRO
|
||||
}
|
||||
|
||||
void Window::initDynAttribs()
|
||||
|
|
Loading…
Add table
Reference in a new issue