# HG changeset patch # User sheepluva # Date 1515348066 -3600 # Node ID a089326f0e16d0d788b205efca894e2d5701a840 # Parent dab60d247b7544e715d8a4003d381f16d5c2c90e fix crosshair rendering in GL2 mode diff -r dab60d247b75 -r a089326f0e16 hedgewars/uRender.pas --- a/hedgewars/uRender.pas Sun Jan 07 18:19:00 2018 +0100 +++ b/hedgewars/uRender.pas Sun Jan 07 19:01:06 2018 +0100 @@ -68,7 +68,7 @@ procedure Tint (r, g, b, a: Byte); inline; procedure Tint (c: Longword); inline; procedure untint(); inline; -procedure setTintAdd (f: boolean); inline; +procedure setTintAdd (enable: boolean); inline; // call this to finish the rendering of current frame procedure FinishRender(); @@ -1969,12 +1969,19 @@ LastTint:= cWhiteColor; end; -procedure setTintAdd(f: boolean); inline; +procedure setTintAdd(enable: boolean); inline; begin - if f then + {$IFDEF GL2} + if enable then + glUniform1i(glGetUniformLocation(shaderMain, pchar('tintAdd')), 1) + else + glUniform1i(glGetUniformLocation(shaderMain, pchar('tintAdd')), 0); + {$ELSE} + if enable then glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD) else glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + {$ENDIF} end; procedure ChangeDepth(rm: TRenderMode; d: GLfloat); diff -r dab60d247b75 -r a089326f0e16 share/hedgewars/Data/Shaders/default.fs --- a/share/hedgewars/Data/Shaders/default.fs Sun Jan 07 18:19:00 2018 +0100 +++ b/share/hedgewars/Data/Shaders/default.fs Sun Jan 07 19:01:06 2018 +0100 @@ -4,6 +4,7 @@ uniform sampler2D tex0; uniform vec4 tint; +uniform bool tintAdd; uniform bool enableTexture; varying vec2 tex; @@ -12,7 +13,12 @@ void main() { if(enableTexture){ - gl_FragColor = texture2D(tex0, tex) * tint; + if (tintAdd){ + tint.a = 0.0; + gl_FragColor = clamp(texture2D(tex0, tex) + tint, 0.0, 1.1); + }else{ + gl_FragColor = texture2D(tex0, tex) * tint; + } }else{ gl_FragColor = tint; }