Embed shaders
This commit is contained in:
parent
ba59ba8b7c
commit
014c1fbad6
@ -193,14 +193,54 @@ void ogl_blit(int x, int y, int w, int h, pixel *src, int pitch, int scale);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef INCLUDE_SHADERS
|
#ifdef INCLUDE_SHADERS
|
||||||
const char * fragment = "uniform sampler2D fireAlpha;\
|
const char * fireFragment = "uniform sampler2D fireAlpha;\
|
||||||
void main () {\
|
void main () {\
|
||||||
vec4 texColor = texture2D(fireAlpha, gl_PointCoord);\
|
vec4 texColor = texture2D(fireAlpha, gl_PointCoord);\
|
||||||
gl_FragColor = vec4(gl_Color.rgb, texColor.a*gl_Color.a);\
|
gl_FragColor = vec4(gl_Color.rgb, texColor.a*gl_Color.a);\
|
||||||
}";
|
}";
|
||||||
const char * vertex = "void main(void)\
|
const char * fireVertex = "void main(void)\
|
||||||
{\
|
{\
|
||||||
gl_Position = ftransform();;\
|
gl_Position = ftransform();;\
|
||||||
gl_FrontColor = gl_Color;\
|
gl_FrontColor = gl_Color;\
|
||||||
}";
|
}";
|
||||||
|
const char * lensFragment = "uniform sampler2D pTex;\
|
||||||
|
uniform sampler2D tfX;\
|
||||||
|
uniform sampler2D tfY;\
|
||||||
|
uniform float xres = 612.0;\
|
||||||
|
uniform float yres = 384.0;\
|
||||||
|
void main () {\
|
||||||
|
vec4 transformX = texture2D(tfX, vec2(gl_TexCoord[0].s, -gl_TexCoord[0].t));\
|
||||||
|
vec4 transformY = -texture2D(tfY, vec2(gl_TexCoord[0].s, -gl_TexCoord[0].t));\
|
||||||
|
transformX.r /= xres;\
|
||||||
|
transformY.g /= yres;\
|
||||||
|
vec4 texColor = vec4(\
|
||||||
|
texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).r,\
|
||||||
|
texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.875, transformY.g*0.875)).g,\
|
||||||
|
texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r, transformY.g)).b,\
|
||||||
|
1.0\
|
||||||
|
);\
|
||||||
|
gl_FragColor = texColor;\
|
||||||
|
}";
|
||||||
|
const char * lensVertex = "void main(void)\
|
||||||
|
{\
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;\
|
||||||
|
gl_Position = ftransform();;\
|
||||||
|
gl_FrontColor = gl_Color;\
|
||||||
|
}";
|
||||||
|
const char * airFragment = "uniform sampler2D airX;\
|
||||||
|
uniform sampler2D airY;\
|
||||||
|
uniform sampler2D airP;\
|
||||||
|
void main () {\
|
||||||
|
vec4 texX = texture2D(airX, gl_TexCoord[0].st);\
|
||||||
|
vec4 texY = texture2D(airY, gl_TexCoord[0].st);\
|
||||||
|
vec4 texP = texture2D(airP, gl_TexCoord[0].st);\
|
||||||
|
gl_FragColor = vec4(abs(texX.r)/2.0, texP.b/2.0, abs(texY.g)/2.0, 1.0);\
|
||||||
|
}";
|
||||||
|
const char * airVertex = "void main(void)\
|
||||||
|
{\
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;\
|
||||||
|
gl_Position = ftransform();;\
|
||||||
|
gl_FrontColor = gl_Color;\
|
||||||
|
}";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -3333,17 +3333,14 @@ int sdl_open(void)
|
|||||||
#ifdef OGLR
|
#ifdef OGLR
|
||||||
void loadShaders()
|
void loadShaders()
|
||||||
{
|
{
|
||||||
GLuint avsize, afsize, vsize, fsize, vertexShader, fragmentShader;
|
GLuint vertexShader, fragmentShader;
|
||||||
//const char *vertex = file_load("test.vert", &vsize), * fragment = file_load("test.frag", &fsize);
|
|
||||||
const char *lensVertex = file_load("ltest.vert", &vsize), * lensFragment = file_load("ltest.frag", &fsize);
|
|
||||||
const char *airVertex = file_load("atest.vert", &avsize), * airFragment = file_load("atest.frag", &afsize);
|
|
||||||
|
|
||||||
//Particle texture
|
//Particle texture
|
||||||
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
|
||||||
glShaderSource( vertexShader, 1, &vertex, NULL);//&vsize);
|
glShaderSource( vertexShader, 1, &fireVertex, NULL);
|
||||||
glShaderSource( fragmentShader, 1, &fragment, NULL);//&fsize);
|
glShaderSource( fragmentShader, 1, &fireFragment, NULL);
|
||||||
|
|
||||||
glCompileShader( vertexShader );
|
glCompileShader( vertexShader );
|
||||||
glCompileShader( fragmentShader );
|
glCompileShader( fragmentShader );
|
||||||
@ -3357,8 +3354,8 @@ void loadShaders()
|
|||||||
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
|
||||||
glShaderSource( vertexShader, 1, &lensVertex, &vsize);
|
glShaderSource( vertexShader, 1, &lensVertex, NULL);
|
||||||
glShaderSource( fragmentShader, 1, &lensFragment, &fsize);
|
glShaderSource( fragmentShader, 1, &lensFragment, NULL);
|
||||||
|
|
||||||
glCompileShader( vertexShader );
|
glCompileShader( vertexShader );
|
||||||
glCompileShader( fragmentShader );
|
glCompileShader( fragmentShader );
|
||||||
@ -3372,8 +3369,8 @@ void loadShaders()
|
|||||||
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
|
||||||
glShaderSource( vertexShader, 1, &airVertex, &avsize);
|
glShaderSource( vertexShader, 1, &airVertex, NULL);
|
||||||
glShaderSource( fragmentShader, 1, &airFragment, &afsize);
|
glShaderSource( fragmentShader, 1, &airFragment, NULL);
|
||||||
|
|
||||||
glCompileShader( vertexShader );
|
glCompileShader( vertexShader );
|
||||||
glCompileShader( fragmentShader );
|
glCompileShader( fragmentShader );
|
||||||
|
Reference in New Issue
Block a user