- work on separating DFrameBuffer from DCanvas.

2D works in D3D backend, but 3D crashes because not all pointers have been rerouted yet.
This commit is contained in:
Christoph Oelckers 2018-03-27 13:50:31 +02:00
commit bb9283a9af
18 changed files with 84 additions and 149 deletions

View file

@ -103,13 +103,13 @@ namespace swrenderer
{
if (!viewport->RenderTarget->IsBgra())
{
memset(viewport->RenderTarget->GetBuffer(), clearcolor, viewport->RenderTarget->GetPitch() * viewport->RenderTarget->GetHeight());
memset(viewport->RenderTarget->GetPixels(), clearcolor, viewport->RenderTarget->GetPitch() * viewport->RenderTarget->GetHeight());
}
else
{
uint32_t bgracolor = GPalette.BaseColors[clearcolor].d;
int size = viewport->RenderTarget->GetPitch() * viewport->RenderTarget->GetHeight();
uint32_t *dest = (uint32_t *)viewport->RenderTarget->GetBuffer();
uint32_t *dest = (uint32_t *)viewport->RenderTarget->GetPixels();
for (int i = 0; i < size; i++)
dest[i] = bgracolor;
}
@ -118,12 +118,14 @@ namespace swrenderer
RenderActorView(player->mo);
// Apply special colormap if the target cannot do it
#if 0
if (CameraLight::Instance()->ShaderColormap() && viewport->RenderTarget->IsBgra() && !(r_shadercolormaps && screen->Accel2D))
{
auto queue = std::make_shared<DrawerCommandQueue>(MainThread()->FrameMemory.get());
queue->Push<ApplySpecialColormapRGBACommand>(CameraLight::Instance()->ShaderColormap(), screen);
DrawerThreads::Execute(queue);
}
#endif
DrawerWaitCycles.Clock();
DrawerThreads::WaitForWorkers();