ded
ded copied to clipboard
remove deprecated `gl_FragColor` api that made compiling impossible
Changed shader code to remove deprecated gl_FragColor
api
The changes made to the code are intended to fix a bug that was causing the following error messages to occur:
GL version 3.3
WARNING: GLEW_ARB_debug_output is not availableERROR: could not compile GL_FRAGMENT_SHADER
ERROR: 0:8: Use of undeclared identifier 'gl_FragColor'
ERROR: failed to compile `./shaders/simple_image.frag` shader file
GL version 3.3
WARNING: GLEW_ARB_debug_output is not availableERROR: could not compile GL_FRAGMENT_SHADER
ERROR: 0:12: Use of undeclared identifier 'gl_FragColor'
ERROR: failed to compile `./shaders/simple_text.frag` shader file
GL version 3.3
WARNING: GLEW_ARB_debug_output is not availableERROR: could not compile GL_FRAGMENT_SHADER
ERROR: 0:21: Use of undeclared identifier 'gl_FragColor'
ERROR: failed to compile `./shaders/simple_epic.frag` shader file
GL version 3.3
WARNING: GLEW_ARB_debug_output is not availableERROR: could not compile GL_FRAGMENT_SHADER
ERROR: 0:21: Use of undeclared identifier 'gl_FragColor'
ERROR: failed to compile `./shaders/simple_image.frag` shader file
Summary of all the changes
The simple_color.frag
, simple_epic.frag
, simple_image.frag
, and simple_text.frag
files all underwent similar changes:
The API used to declare the output color variable gl_FragColor
was deprecated, and the new API requires the use of an out
variable.
from:
gl_FragColor = texture(image, out_uv);
to:
out vec4 FragColor;
FragColor = texture(image, out_uv);
Thus, the out
variables FragColor
and out_color
were declared in the modified files to replace the deprecated gl_FragColor
.
These changes ensure that the output color variables are properly declared and can be used in the code without throwing any errors.
Additionally, in the simple_epic.frag
file, the frag_uv
variable was modified to use the out_uv
variable instead of gl_FragCoord.xy / resolution
.
from:
vec2 frag_uv = gl_FragCoord.xy / resolution;
to:
vec2 frag_uv = out_uv;
This change was made because gl_FragCoord.xy / resolution
is deprecated in newer versions of OpenGL and may not be supported in future versions.
Using out_uv
ensures that the code is compatible with current and future versions of OpenGL.