- Fixed bug introduced in r3412: The SetStyle() call needs to come after the scissoring check,

because the latter can flush the quads, including the one SetStyle() just set a style for.

SVN r3429 (trunk)
This commit is contained in:
Randy Heit 2012-03-12 01:22:19 +00:00
parent e4880d162f
commit 162ad601ba
2 changed files with 12 additions and 11 deletions

View File

@ -962,7 +962,7 @@ int MIDIStreamer::FillBuffer(int buffer_num, int max_events, DWORD max_time)
int MIDIStreamer::FillStopBuffer(int buffer_num) int MIDIStreamer::FillStopBuffer(int buffer_num)
{ {
DWORD *events = Events[buffer_num], *max_event_p; DWORD *events = Events[buffer_num];
int i; int i;
events = WriteStopNotes(events); events = WriteStopNotes(events);

View File

@ -2981,15 +2981,6 @@ void STACK_ARGS D3DFB::DrawTextureV (FTexture *img, double x, double y, uint32 t
x1 -= (parms.texwidth - parms.windowright) * xscale; x1 -= (parms.texwidth - parms.windowright) * xscale;
u1 = float(u1 - (parms.texwidth - parms.windowright) * uscale); u1 = float(u1 - (parms.texwidth - parms.windowright) * uscale);
} }
parms.bilinear = false;
D3DCOLOR color0, color1;
BufferedTris *quad = &QuadExtra[QuadBatchPos];
if (!SetStyle(tex, parms, color0, color1, *quad))
{
return;
}
#if 0 #if 0
float vscale = 1.f / tex->Box->Owner->Height / yscale; float vscale = 1.f / tex->Box->Owner->Height / yscale;
@ -3033,6 +3024,16 @@ void STACK_ARGS D3DFB::DrawTextureV (FTexture *img, double x, double y, uint32 t
D3DDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); D3DDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE);
} }
#endif #endif
parms.bilinear = false;
D3DCOLOR color0, color1;
BufferedTris *quad = &QuadExtra[QuadBatchPos];
if (!SetStyle(tex, parms, color0, color1, *quad))
{
goto done;
}
quad->Texture = tex->Box->Owner->Tex; quad->Texture = tex->Box->Owner->Tex;
if (parms.bilinear) if (parms.bilinear)
{ {
@ -3109,7 +3110,7 @@ void STACK_ARGS D3DFB::DrawTextureV (FTexture *img, double x, double y, uint32 t
QuadBatchPos++; QuadBatchPos++;
VertexPos += 4; VertexPos += 4;
IndexPos += 6; IndexPos += 6;
done:
if (scissoring) if (scissoring)
{ {
EndQuadBatch(); EndQuadBatch();