mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-22 13:55:38 +00:00
Removed unused dirty rectangle code.
This commit is contained in:
parent
93d68c5bf8
commit
b7980aa562
|
@ -26,8 +26,7 @@
|
||||||
*
|
*
|
||||||
* To-Do List
|
* To-Do List
|
||||||
* ----------
|
* ----------
|
||||||
* - Add dirty rectangles? There is already some inactive code in here for
|
* - Add dirty rectangles?
|
||||||
* this purpose and it needs to be updated or deleted once and for all.
|
|
||||||
* - Are v-scroll values 9 or 10 bits?
|
* - Are v-scroll values 9 or 10 bits?
|
||||||
* - Add fast paths for no scrolling (including unclipped tile rendering).
|
* - Add fast paths for no scrolling (including unclipped tile rendering).
|
||||||
* - Inline the loops in the tile renderers.
|
* - Inline the loops in the tile renderers.
|
||||||
|
@ -613,30 +612,7 @@ void CRender2D::DrawCompleteLayer(int layerNum, const UINT16 *nameTableBase)
|
||||||
void CRender2D::UpdateLayer(int layerNum)
|
void CRender2D::UpdateLayer(int layerNum)
|
||||||
{
|
{
|
||||||
glBindTexture(GL_TEXTURE_2D, texID[layerNum]);
|
glBindTexture(GL_TEXTURE_2D, texID[layerNum]);
|
||||||
|
DrawCompleteLayer(layerNum, (UINT16 *) &vram[(0xF8000+layerNum*2*0x2000)/4]);
|
||||||
allDirty = true;
|
|
||||||
if (allDirty)
|
|
||||||
{
|
|
||||||
// If everything is dirty, update the whole thing at once
|
|
||||||
DrawCompleteLayer(layerNum, (UINT16 *) &vram[(0xF8000+layerNum*2*0x2000)/4]);
|
|
||||||
//DrawRect(layerNum, (UINT16 *) &vram[(0xF8000+layerNum*2*0x2000)/4], 0, 0, 62, 48);
|
|
||||||
memset(dirty, 0, sizeof(dirty));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Otherwise, for now, use a dumb approach that updates each rectangle individually
|
|
||||||
for (int y = 0; y < 64/DIRTY_RECT_HEIGHT; y++)
|
|
||||||
{
|
|
||||||
for (int x = 0; x < 48/DIRTY_RECT_WIDTH; x++)
|
|
||||||
{
|
|
||||||
if (dirty[layerNum][y][x])
|
|
||||||
{
|
|
||||||
DrawRect(layerNum, (UINT16 *) &vram[(0xF8000+layerNum*2*0x2000)/4], x*DIRTY_RECT_WIDTH, y*DIRTY_RECT_HEIGHT, DIRTY_RECT_WIDTH, DIRTY_RECT_HEIGHT);
|
|
||||||
dirty[layerNum][y][x] = 0; // not dirty anymore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -707,10 +683,7 @@ void CRender2D::BeginFrame(void)
|
||||||
|
|
||||||
// Update all layers
|
// Update all layers
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
{
|
|
||||||
UpdateLayer(i);
|
UpdateLayer(i);
|
||||||
}
|
|
||||||
allDirty = false;
|
|
||||||
|
|
||||||
// Draw bottom layer
|
// Draw bottom layer
|
||||||
Setup2D();
|
Setup2D();
|
||||||
|
@ -743,9 +716,6 @@ void CRender2D::WriteVRAM(unsigned addr, UINT32 data)
|
||||||
{
|
{
|
||||||
if (vram[addr/4] == data) // do nothing if no changes
|
if (vram[addr/4] == data) // do nothing if no changes
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// For now, mark everything as dirty
|
|
||||||
allDirty = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -802,11 +772,9 @@ bool CRender2D::Init(unsigned xOffset, unsigned yOffset, unsigned xRes, unsigned
|
||||||
xOffs = xOffset;
|
xOffs = xOffset;
|
||||||
yOffs = yOffset;
|
yOffs = yOffset;
|
||||||
|
|
||||||
// Clear textures and dirty rectangles (all memory)
|
// Clear textures
|
||||||
memset(memoryPool, 0, MEMORY_POOL_SIZE);
|
memset(memoryPool, 0, MEMORY_POOL_SIZE);
|
||||||
memset(dirty, 0, sizeof(dirty));
|
|
||||||
allDirty = true;
|
|
||||||
|
|
||||||
// Create textures
|
// Create textures
|
||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||||
glGenTextures(2, texID);
|
glGenTextures(2, texID);
|
||||||
|
|
|
@ -154,7 +154,7 @@ private:
|
||||||
const UINT32 *regs;
|
const UINT32 *regs;
|
||||||
|
|
||||||
// OpenGL data
|
// OpenGL data
|
||||||
GLuint texID[2]; // IDs for the 2 layer textures
|
GLuint texID[2]; // IDs for the 2 layer textures (top and bottom)
|
||||||
unsigned xPixels, yPixels; // display surface resolution
|
unsigned xPixels, yPixels; // display surface resolution
|
||||||
unsigned xOffs, yOffs; // offset
|
unsigned xOffs, yOffs; // offset
|
||||||
|
|
||||||
|
@ -165,11 +165,6 @@ private:
|
||||||
GLuint textureMapLoc; // location of "textureMap" uniform
|
GLuint textureMapLoc; // location of "textureMap" uniform
|
||||||
GLuint colorOffsetLoc; // uniform
|
GLuint colorOffsetLoc; // uniform
|
||||||
|
|
||||||
|
|
||||||
// Dirty rectangles (non-zero indicates region is dirty)
|
|
||||||
UINT8 dirty[2][64/DIRTY_RECT_HEIGHT][48/DIRTY_RECT_WIDTH];
|
|
||||||
bool allDirty; // global dirty flag (forces everything to be updated)
|
|
||||||
|
|
||||||
// Buffers
|
// Buffers
|
||||||
UINT8 *memoryPool; // all memory is allocated here
|
UINT8 *memoryPool; // all memory is allocated here
|
||||||
UINT32 *surf; // 512x512x32bpp pixel surface
|
UINT32 *surf; // 512x512x32bpp pixel surface
|
||||||
|
|
Loading…
Reference in a new issue