@@ -142,7 +142,7 @@ int FrameMan::CreateBackBuffers() {
142
142
m_BackBuffer32 = std::unique_ptr<BITMAP, BitmapDeleter>(create_bitmap_ex (c_BPP, resX, resY));
143
143
ClearBackBuffer32 ();
144
144
145
- m_BackBuffer = std::make_unique<RenderTarget>(FloatRect (0 , 0 , resX, resY), FloatRect (0 , 0 , resX, resY), 8 );
145
+ m_BackBuffer = std::make_unique<RenderTarget>(FloatRect (0 , 0 , resX, resY), FloatRect (0 , 0 , resX, resY));
146
146
147
147
m_OverlayBitmap32 = std::unique_ptr<BITMAP, BitmapDeleter>(create_bitmap_ex (c_BPP, resX, resY));
148
148
clear_to_color (m_OverlayBitmap32.get (), 0 );
@@ -472,6 +472,7 @@ void FrameMan::SetTransTableFromPreset(TransparencyPreset transPreset) {
472
472
color_map = &m_ColorTables[DrawBlendMode::BlendTransparency].at (colorChannelBlendAmounts).first ;
473
473
m_ColorTables[DrawBlendMode::BlendTransparency].at (colorChannelBlendAmounts).second = -1 ;
474
474
}
475
+ m_CurrentAlpha = 255 - transPreset;
475
476
}
476
477
477
478
void FrameMan::CreateNewNetworkPlayerBackBuffer (int player, int width, int height) {
@@ -809,9 +810,14 @@ void FrameMan::Draw() {
809
810
g_PresetMan.GetEntityPreset (" Shader" , " Background" )->Clone (&backgroundShader);
810
811
glClearColor (0 .0f , 0 .0f , 0 .0f , 0 .0f );
811
812
clear_to_color (m_BackBuffer8.get (), 0 );
812
- rlDisableColorBlend ();
813
- rlDisableDepthTest ();
813
+ rlEnableColorBlend ();
814
+ rlSetBlendMode (RL_BLEND_ALPHA);
815
+ rlEnableDepthTest ();
814
816
m_BackBuffer->Begin (true );
817
+ backgroundShader.Begin ();
818
+ backgroundShader.Enable ();
819
+ rlSetUniformSampler (backgroundShader.GetUniformLocation (" rtePalette" ), g_PostProcessMan.GetPaletteTexture ());
820
+ backgroundShader.SetInt (" drawMasked" , 1 );
815
821
816
822
// Count how many split screens we'll need
817
823
int screenCount = (m_HSplit ? 2 : 1 ) * (m_VSplit ? 2 : 1 );
@@ -830,9 +836,6 @@ void FrameMan::Draw() {
830
836
screenRelativeGlowBoxes.clear ();
831
837
832
838
m_PlayerScreen->Begin (true );
833
- backgroundShader.Begin ();
834
- backgroundShader.Enable ();
835
- backgroundShader.SetInt (" drawMasked" , 1 );
836
839
837
840
// rlSetUniformSampler(backgroundShader.GetUniformLocation("rtePalette"), g_PostProcessMan.GetPaletteTexture());
838
841
BITMAP* drawScreen = (screenCount == 1 ) ? m_BackBuffer8.get () : m_PlayerScreen8.get ();
@@ -954,8 +957,10 @@ void FrameMan::Draw() {
954
957
if (IsInMultiplayerMode ()) {
955
958
PrepareFrameForNetwork ();
956
959
}
960
+ rlDisableDepthTest ();
957
961
g_GLResourceMan.UpdateDynamicBitmap (m_BackBuffer8.get (), true );
958
962
DrawTexture (g_GLResourceMan.GetStaticTextureFromBitmap (m_BackBuffer8.get ()), 0 .0f , 0 .0f , {255 , 255 , 255 , 255 });
963
+ backgroundShader.End ();
959
964
m_BackBuffer->End ();
960
965
if (g_ActivityMan.IsInActivity ()) {
961
966
g_PostProcessMan.PostProcess ();
0 commit comments