Skip to content

Commit

Permalink
Use blending only when CastleScreenEffect is rendered to Screen
Browse files Browse the repository at this point in the history
  • Loading branch information
eugeneloza committed Jul 8, 2021
1 parent 4046e2a commit bebc407
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/x3d/opengl/castlescreeneffects.pas
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ procedure TCastleScreenEffects.RenderOverChildren;

procedure RenderWithScreenEffectsCore;

procedure RenderOneEffect(Shader: TGLSLProgram);
procedure RenderOneEffect(Shader: TGLSLProgram; const RenderToScreen: Boolean);
var
BoundTextureUnits: Cardinal;
AttribVertex, AttribTexCoord: TGLSLAttribute;
Expand Down Expand Up @@ -743,7 +743,7 @@ procedure TCastleScreenEffects.RenderOverChildren;
AttribTexCoord.EnableArrayVector2(SizeOf(TScreenPoint),
OffsetUInt(ScreenPoint[0].TexCoord, ScreenPoint[0]));

if Blending then
if Blending and RenderToScreen then
begin
GLBlendFunction(BlendingSourceFactor, BlendingDestinationFactor);
glEnable(GL_BLEND);
Expand Down Expand Up @@ -778,7 +778,7 @@ procedure TCastleScreenEffects.RenderOverChildren;
begin
ScreenEffectRTT.RenderBegin;
ScreenEffectRTT.SetTexture(ScreenEffectTextureDest, ScreenEffectTextureTarget);
RenderOneEffect(GetScreenEffect(I));
RenderOneEffect(GetScreenEffect(I), false);
ScreenEffectRTT.RenderEnd;

SwapValues(ScreenEffectTextureDest, ScreenEffectTextureSrc);
Expand All @@ -787,7 +787,7 @@ procedure TCastleScreenEffects.RenderOverChildren;
{ the last effect gets a texture, and renders straight into screen }
RenderContext.ViewportDelta := TVector2Integer.Zero;
RenderContext.Viewport := RenderRect.Round;
RenderOneEffect(GetScreenEffect(CurrentScreenEffectsCount - 1));
RenderOneEffect(GetScreenEffect(CurrentScreenEffectsCount - 1), true);
end;

procedure EndRenderingToTexture;
Expand Down

0 comments on commit bebc407

Please sign in to comment.