- separated DFrameBuffer from DCanvas.

This was a bad idea from the start and really only made sense with DirectDraw.
These days a FrameBuffer represents an abstract hardware canvas that shares nothing with a software canvas so having these classes linked together makes things needlessly complicated.
The software render buffer is now a canvas object owned by the FrameBuffer.

Note that this commit deactivates a few things in the software renderer, but from the looks of it none of those will be needed anymore if we set OpenGL 2 as minimum target.
This commit is contained in:
Christoph Oelckers 2018-03-27 14:14:46 +02:00
commit c06ad5c59c
14 changed files with 43 additions and 51 deletions

View file

@ -60,7 +60,7 @@ void PolyRenderer::RenderView(player_t *player)
{
using namespace swrenderer;
RenderTarget = screen;
RenderTarget = screen->GetCanvas();
int width = SCREENWIDTH;
int height = SCREENHEIGHT;
@ -99,7 +99,7 @@ void PolyRenderer::RenderViewToCanvas(AActor *actor, DCanvas *canvas, int x, int
Threads.MainThread()->FlushDrawQueue();
DrawerThreads::WaitForWorkers();
RenderTarget = screen;
RenderTarget = screen->GetCanvas();
R_ExecuteSetViewSize(Viewpoint, Viewwindow);
float trueratio;
ActiveRatio(width, height, &trueratio);
@ -166,7 +166,7 @@ void PolyRenderer::SetSceneViewport()
{
using namespace swrenderer;
if (RenderTarget == screen) // Rendering to screen
if (RenderTarget == screen->GetCanvas()) // Rendering to screen
{
int height;
if (screenblocks >= 10)