parent
3a11617bed
commit
6530d35c3e
|
@ -7687,22 +7687,28 @@ void GPUSubsystem::RenderLine(const u16 l, bool isFrameSkipRequested)
|
||||||
{
|
{
|
||||||
this->UpdateRenderProperties();
|
this->UpdateRenderProperties();
|
||||||
|
|
||||||
if (!CommonSettings.showGpu.main)
|
if (!isFramebufferRenderNeeded[GPUEngineID_Main])
|
||||||
{
|
{
|
||||||
memset(this->_engineMain->renderedBuffer, 0, this->_engineMain->renderedWidth * this->_engineMain->renderedHeight * this->_displayInfo.pixelBytes);
|
if (!CommonSettings.showGpu.main)
|
||||||
}
|
{
|
||||||
else if (this->_engineMain->GetIsMasterBrightFullIntensity() && (this->_engineMain->GetIORegisterMap().DISPCAPCNT.CaptureEnable == 0))
|
memset(this->_engineMain->renderedBuffer, 0, this->_engineMain->renderedWidth * this->_engineMain->renderedHeight * this->_displayInfo.pixelBytes);
|
||||||
{
|
}
|
||||||
this->_engineMain->ApplyMasterBrightness<true>();
|
else if (this->_engineMain->GetIsMasterBrightFullIntensity())
|
||||||
|
{
|
||||||
|
this->_engineMain->ApplyMasterBrightness<true>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!CommonSettings.showGpu.sub)
|
if (!isFramebufferRenderNeeded[GPUEngineID_Sub])
|
||||||
{
|
{
|
||||||
memset(this->_engineSub->renderedBuffer, 0, this->_engineSub->renderedWidth * this->_engineSub->renderedHeight * this->_displayInfo.pixelBytes);
|
if (!CommonSettings.showGpu.sub)
|
||||||
}
|
{
|
||||||
else if (this->_engineSub->GetIsMasterBrightFullIntensity())
|
memset(this->_engineSub->renderedBuffer, 0, this->_engineSub->renderedWidth * this->_engineSub->renderedHeight * this->_displayInfo.pixelBytes);
|
||||||
{
|
}
|
||||||
this->_engineSub->ApplyMasterBrightness<true>();
|
else if (this->_engineSub->GetIsMasterBrightFullIntensity())
|
||||||
|
{
|
||||||
|
this->_engineSub->ApplyMasterBrightness<true>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7718,15 +7724,19 @@ void GPUSubsystem::RenderLine(const u16 l, bool isFrameSkipRequested)
|
||||||
// originates from the top of the screen, the BG0 layer will only be enabled at line 46. This
|
// originates from the top of the screen, the BG0 layer will only be enabled at line 46. This
|
||||||
// means that we need to check the states at that particular time to ensure that the 3D renderer
|
// means that we need to check the states at that particular time to ensure that the 3D renderer
|
||||||
// finishes before we read the 3D framebuffer. Otherwise, the map will render incorrectly.
|
// finishes before we read the 3D framebuffer. Otherwise, the map will render incorrectly.
|
||||||
const bool need3DDisplayFramebuffer = this->_engineMain->WillRender3DLayer();
|
|
||||||
const bool need3DCaptureFramebuffer = this->_engineMain->WillCapture3DLayerDirect();
|
if (CurrentRenderer->GetRenderNeedsFinish())
|
||||||
|
|
||||||
if ( CurrentRenderer->GetRenderNeedsFinish() && (need3DDisplayFramebuffer || need3DCaptureFramebuffer) )
|
|
||||||
{
|
{
|
||||||
CurrentRenderer->SetFramebufferFlushStates(need3DDisplayFramebuffer, need3DCaptureFramebuffer);
|
const bool need3DDisplayFramebuffer = this->_engineMain->WillRender3DLayer();
|
||||||
CurrentRenderer->RenderFinish();
|
const bool need3DCaptureFramebuffer = this->_engineMain->WillCapture3DLayerDirect();
|
||||||
CurrentRenderer->SetRenderNeedsFinish(false);
|
|
||||||
this->_event->DidRender3DEnd();
|
if (need3DDisplayFramebuffer || need3DCaptureFramebuffer)
|
||||||
|
{
|
||||||
|
CurrentRenderer->SetFramebufferFlushStates(need3DDisplayFramebuffer, need3DCaptureFramebuffer);
|
||||||
|
CurrentRenderer->RenderFinish();
|
||||||
|
CurrentRenderer->SetRenderNeedsFinish(false);
|
||||||
|
this->_event->DidRender3DEnd();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this->_engineMain->RenderLine(l);
|
this->_engineMain->RenderLine(l);
|
||||||
|
|
|
@ -57,7 +57,7 @@ protected:
|
||||||
// SoftRasterizer-specific methods
|
// SoftRasterizer-specific methods
|
||||||
virtual Render3DError InitTables();
|
virtual Render3DError InitTables();
|
||||||
|
|
||||||
template<bool useHiResInterpolate> size_t performClipping(const VERTLIST *vertList, const POLYLIST *polyList, const INDEXLIST *indexList);
|
template<bool USEHIRESINTERPOLATE> size_t performClipping(const VERTLIST *vertList, const POLYLIST *polyList, const INDEXLIST *indexList);
|
||||||
|
|
||||||
// Base rendering methods
|
// Base rendering methods
|
||||||
virtual Render3DError BeginRender(const GFX3D &engine);
|
virtual Render3DError BeginRender(const GFX3D &engine);
|
||||||
|
|
Loading…
Reference in New Issue