Skip to content

Commit 667d24d

Browse files
committed
implement review feedback
1 parent 13fc763 commit 667d24d

6 files changed

Lines changed: 60 additions & 64 deletions

File tree

Generals/Code/GameEngine/Source/GameClient/Display.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,5 +411,8 @@ void Display::endBatch()
411411

412412
void Display::flush()
413413
{
414-
onFlush();
414+
if (m_isBatching)
415+
{
416+
onFlush();
417+
}
415418
}

Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -543,11 +543,12 @@ void W3DDisplay::onBeginBatch()
543543
m_batchTexture = nullptr;
544544
m_batchMode = DRAW_IMAGE_ALPHA;
545545
m_batchGrayscale = FALSE;
546+
m_batchNeedsInit = TRUE;
547+
546548
if (m_2DRender)
547549
{
548550
m_2DRender->Reset();
549551
}
550-
m_batchNeedsInit = TRUE;
551552
}
552553

553554
void W3DDisplay::onEndBatch()
@@ -591,19 +592,17 @@ void W3DDisplay::setup2DRenderState(TextureClass *tex, DrawImageMode mode, Bool
591592
{
592593
m_batchTexture->Release_Ref();
593594
}
595+
594596
m_batchTexture = tex;
595597
}
596598

597599
m_batchMode = mode;
598600
m_batchGrayscale = grayscale;
599601
m_batchNeedsInit = FALSE;
600602
}
601-
else
603+
else if (m_2DRender)
602604
{
603-
if (m_2DRender)
604-
{
605-
m_2DRender->Reset();
606-
}
605+
m_2DRender->Reset();
607606
}
608607

609608
if (m_2DRender)
@@ -620,26 +619,26 @@ void W3DDisplay::setup2DRenderState(TextureClass *tex, DrawImageMode mode, Bool
620619

621620
switch (mode)
622621
{
623-
case DRAW_IMAGE_ALPHA:
624-
m_2DRender->Enable_Additive(FALSE);
625-
m_2DRender->Enable_Alpha(TRUE);
626-
m_2DRender->Enable_Grayscale(grayscale);
627-
break;
628-
case DRAW_IMAGE_GRAYSCALE:
629-
m_2DRender->Enable_Additive(FALSE);
630-
m_2DRender->Enable_Alpha(TRUE);
631-
m_2DRender->Enable_Grayscale(TRUE);
632-
break;
633-
case DRAW_IMAGE_ADDITIVE:
634-
m_2DRender->Enable_Additive(TRUE);
635-
m_2DRender->Enable_Alpha(FALSE);
636-
m_2DRender->Enable_Grayscale(grayscale);
637-
break;
638-
case DRAW_IMAGE_SOLID:
639-
m_2DRender->Enable_Additive(FALSE);
640-
m_2DRender->Enable_Alpha(FALSE);
641-
m_2DRender->Enable_Grayscale(grayscale);
642-
break;
622+
case DRAW_IMAGE_ALPHA:
623+
m_2DRender->Enable_Additive(FALSE);
624+
m_2DRender->Enable_Alpha(TRUE);
625+
m_2DRender->Enable_Grayscale(grayscale);
626+
break;
627+
case DRAW_IMAGE_GRAYSCALE:
628+
m_2DRender->Enable_Additive(FALSE);
629+
m_2DRender->Enable_Alpha(TRUE);
630+
m_2DRender->Enable_Grayscale(TRUE);
631+
break;
632+
case DRAW_IMAGE_ADDITIVE:
633+
m_2DRender->Enable_Additive(TRUE);
634+
m_2DRender->Enable_Alpha(FALSE);
635+
m_2DRender->Enable_Grayscale(grayscale);
636+
break;
637+
case DRAW_IMAGE_SOLID:
638+
m_2DRender->Enable_Additive(FALSE);
639+
m_2DRender->Enable_Alpha(FALSE);
640+
m_2DRender->Enable_Grayscale(grayscale);
641+
break;
643642
}
644643
}
645644
}
@@ -2630,7 +2629,6 @@ void W3DDisplay::drawImage( const Image *image, Int startX, Int startY,
26302629
tex = WW3DAssetManager::Get_Instance()->Get_Texture(image->getFilename().str(), MIP_LEVELS_1);
26312630

26322631
Bool grayscale = (mode == DRAW_IMAGE_GRAYSCALE);
2633-
///@todo: Why are we alpha blending all images? Reduces our fillrate. -MW
26342632
setup2DRenderState(tex, mode, grayscale);
26352633

26362634
RectClass screen_rect(startX,startY,endX,endY);

Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplayString.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,7 @@ void W3DDisplayString::draw( Int x, Int y, Color color, Color dropColor, Int xDr
226226

227227
}
228228

229-
if (TheDisplay->isBatching())
230-
{
231-
TheDisplay->flush();
232-
}
229+
TheDisplay->flush();
233230

234231
if(m_useHotKey)
235232
{

GeneralsMD/Code/GameEngine/Source/GameClient/Display.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,5 +411,8 @@ void Display::endBatch()
411411

412412
void Display::flush()
413413
{
414-
onFlush();
414+
if (m_isBatching)
415+
{
416+
onFlush();
417+
}
415418
}

GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -593,11 +593,12 @@ void W3DDisplay::onBeginBatch()
593593
m_batchTexture = nullptr;
594594
m_batchMode = DRAW_IMAGE_ALPHA;
595595
m_batchGrayscale = FALSE;
596+
m_batchNeedsInit = TRUE;
597+
596598
if (m_2DRender)
597599
{
598600
m_2DRender->Reset();
599601
}
600-
m_batchNeedsInit = TRUE;
601602
}
602603

603604
void W3DDisplay::onEndBatch()
@@ -641,19 +642,17 @@ void W3DDisplay::setup2DRenderState(TextureClass *tex, DrawImageMode mode, Bool
641642
{
642643
m_batchTexture->Release_Ref();
643644
}
645+
644646
m_batchTexture = tex;
645647
}
646648

647649
m_batchMode = mode;
648650
m_batchGrayscale = grayscale;
649651
m_batchNeedsInit = FALSE;
650652
}
651-
else
653+
else if (m_2DRender)
652654
{
653-
if (m_2DRender)
654-
{
655-
m_2DRender->Reset();
656-
}
655+
m_2DRender->Reset();
657656
}
658657

659658
if (m_2DRender)
@@ -670,26 +669,26 @@ void W3DDisplay::setup2DRenderState(TextureClass *tex, DrawImageMode mode, Bool
670669

671670
switch (mode)
672671
{
673-
case DRAW_IMAGE_ALPHA:
674-
m_2DRender->Enable_Additive(FALSE);
675-
m_2DRender->Enable_Alpha(TRUE);
676-
m_2DRender->Enable_Grayscale(grayscale);
677-
break;
678-
case DRAW_IMAGE_GRAYSCALE:
679-
m_2DRender->Enable_Additive(FALSE);
680-
m_2DRender->Enable_Alpha(TRUE);
681-
m_2DRender->Enable_Grayscale(TRUE);
682-
break;
683-
case DRAW_IMAGE_ADDITIVE:
684-
m_2DRender->Enable_Additive(TRUE);
685-
m_2DRender->Enable_Alpha(FALSE);
686-
m_2DRender->Enable_Grayscale(grayscale);
687-
break;
688-
case DRAW_IMAGE_SOLID:
689-
m_2DRender->Enable_Additive(FALSE);
690-
m_2DRender->Enable_Alpha(FALSE);
691-
m_2DRender->Enable_Grayscale(grayscale);
692-
break;
672+
case DRAW_IMAGE_ALPHA:
673+
m_2DRender->Enable_Additive(FALSE);
674+
m_2DRender->Enable_Alpha(TRUE);
675+
m_2DRender->Enable_Grayscale(grayscale);
676+
break;
677+
case DRAW_IMAGE_GRAYSCALE:
678+
m_2DRender->Enable_Additive(FALSE);
679+
m_2DRender->Enable_Alpha(TRUE);
680+
m_2DRender->Enable_Grayscale(TRUE);
681+
break;
682+
case DRAW_IMAGE_ADDITIVE:
683+
m_2DRender->Enable_Additive(TRUE);
684+
m_2DRender->Enable_Alpha(FALSE);
685+
m_2DRender->Enable_Grayscale(grayscale);
686+
break;
687+
case DRAW_IMAGE_SOLID:
688+
m_2DRender->Enable_Additive(FALSE);
689+
m_2DRender->Enable_Alpha(FALSE);
690+
m_2DRender->Enable_Grayscale(grayscale);
691+
break;
693692
}
694693
}
695694
}
@@ -2738,7 +2737,6 @@ void W3DDisplay::drawImage( const Image *image, Int startX, Int startY,
27382737
tex = WW3DAssetManager::Get_Instance()->Get_Texture(image->getFilename().str(), MIP_LEVELS_1);
27392738

27402739
Bool grayscale = (mode == DRAW_IMAGE_GRAYSCALE);
2741-
///@todo: Why are we alpha blending all images? Reduces our fillrate. -MW
27422740
setup2DRenderState(tex, mode, grayscale);
27432741

27442742
RectClass screen_rect(startX,startY,endX,endY);

GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplayString.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,7 @@ void W3DDisplayString::draw( Int x, Int y, Color color, Color dropColor, Int xDr
226226

227227
}
228228

229-
if (TheDisplay->isBatching())
230-
{
231-
TheDisplay->flush();
232-
}
229+
TheDisplay->flush();
233230

234231
if(m_useHotKey)
235232
{

0 commit comments

Comments
 (0)