From e6ce429ca5f3cf4cd142acfde618c60892c7e3fe Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 8 Apr 2018 20:40:29 +0200 Subject: [PATCH] - fixed alpha for hardware rendered weapon sprites in the software renderer. --- src/polyrenderer/scene/poly_playersprite.cpp | 6 ++---- src/swrenderer/things/r_playersprite.cpp | 8 +++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/polyrenderer/scene/poly_playersprite.cpp b/src/polyrenderer/scene/poly_playersprite.cpp index ac843300c5..324c4e13a6 100644 --- a/src/polyrenderer/scene/poly_playersprite.cpp +++ b/src/polyrenderer/scene/poly_playersprite.cpp @@ -218,10 +218,8 @@ void RenderPolyPlayerSprites::RenderSprite(PolyRenderThread *thread, DPSprite *p const auto &viewwindow = PolyRenderer::Instance()->Viewwindow; DCanvas *renderTarget = PolyRenderer::Instance()->RenderTarget; - // Force it to use software rendering. - // To do: Fix that Draw2D() is never called by SWSceneDrawer::RenderView. Make sure to adjust the similar comment in r_playersprite.cpp - bool renderToCanvas = true; - //bool renderToCanvas = PolyRenderer::Instance()->RenderToCanvas; + // Force it to use software rendering when drawing to a canvas texture. + bool renderToCanvas = PolyRenderer::Instance()->RenderToCanvas; sprframe = &SpriteFrames[sprdef->spriteframes + pspr->GetFrame()]; diff --git a/src/swrenderer/things/r_playersprite.cpp b/src/swrenderer/things/r_playersprite.cpp index 03e60c5114..722576a5d2 100644 --- a/src/swrenderer/things/r_playersprite.cpp +++ b/src/swrenderer/things/r_playersprite.cpp @@ -289,10 +289,8 @@ namespace swrenderer vis.texturemid = (BASEYCENTER - sy) * tex->Scale.Y + tex->GetTopOffset(0); - // Force it to use software rendering. - // To do: Fix that Draw2D() is never called by SWSceneDrawer::RenderView. Also make sure to adjust the similar comment in poly_playersprite.cpp - bool renderToCanvas = true; - //bool renderToCanvas = viewport->RenderingToCanvas; + // Force it to use software rendering when drawing to a canvas texture. + bool renderToCanvas = viewport->RenderingToCanvas; if (Thread->Viewport->viewpoint.camera->player && (renderToCanvas || viewheight == viewport->RenderTarget->GetHeight() || @@ -487,7 +485,7 @@ namespace swrenderer DTA_FillColor, sprite.FillColor, DTA_SpecialColormap, sprite.special, DTA_ColorOverlay, sprite.overlay.d, - DTA_Color, sprite.LightColor, + DTA_Color, sprite.LightColor | 0xff000000, // the color here does not have a valid alpha component. DTA_Desaturate, sprite.Desaturate, TAG_DONE); }