By suitably defining SHADER_SOURCE, you can write your shader program as though it was just inline source in your larger C(++) program:
const char * fs = SHADER_SOURCE ( precision mediump float; void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } );
The definition of SHADER_SOURCE is simple:
#define SHADER_SOURCE(...) # __VA_ARGS__
This works as long as your shader is a valid sequence of preprocessor tokens. If you need to also use shader language directives like #version, you will need to write them as strings. But due to the way string catenation works, you can do
const char * fs = "#version 100\n" SHADER_SOURCE(...);and keep most of the inline shader source outside of strings.
Entry first conceived on 30 December 2015, 19:38 UTC, last modified on 30 December 2015, 22:09 UTC
Website Copyright © 2004-2024 Jeff Epler