Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GEOMETRY SHADER
- ------------------------------------------------------------------
- #version 120
- //in values from vert shader...
- varying in vec2 vSpriteTransform[];
- varying in vec4 vSpriteColor[];
- varying in vec4 vSpriteTexCoords[];
- //out values to frag shader...
- varying out vec2 TexCoord;
- varying out vec4 Color;
- void main() {
- mat4 gVP = gl_ModelViewProjectionMatrix;
- vec2 pos = gl_PositionIn[0].xy;
- vec2 size = vSpriteTransform[0].xy;
- vec4 tex = vSpriteTexCoords[0];
- //out to frag...
- Color = vSpriteColor[0];
- gl_Position = gVP * vec4(pos.x, pos.y, 0, 1); //top left
- TexCoord = vec2(tex.x, tex.y);
- EmitVertex();
- gl_Position = gVP * vec4(pos.x+size.x, pos.y, 0, 1); //top right
- TexCoord = vec2(tex.x+tex.z, tex.y);
- EmitVertex();
- gl_Position = gVP * vec4(pos.x, pos.y+size.y, 0, 1); //bottom left
- TexCoord = vec2(tex.x, tex.y+tex.w);
- EmitVertex();
- gl_Position = gVP * vec4(pos.x+size.x, pos.y+size.y, 0, 1); //bottom right
- TexCoord = vec2(tex.x+tex.z, tex.y+tex.w);
- EmitVertex();
- EndPrimitive();
- }
- VERTEX SHADER
- ------------------------------------------------------------------
- #version 120
- //in values...
- attribute vec2 SpriteTransform;
- attribute vec4 SpriteTexCoords;
- attribute vec4 SpriteColor;
- //out values...
- varying vec2 vSpriteTransform;
- varying vec4 vSpriteColor;
- varying vec4 vSpriteTexCoords;
- void main() {
- vSpriteTransform = SpriteTransform;
- vSpriteTexCoords = SpriteTexCoords;
- vSpriteColor = SpriteColor;
- gl_Position = gl_Vertex;
- }
- FRAGMENT SHADER
- ------------------------------------------------------------------
- #version 120
- uniform sampler2D tex0;
- varying vec2 TexCoord;
- varying vec4 Color;
- void main(void) {
- vec4 c = texture2D(tex0, TexCoord);
- gl_FragColor = Color * c;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement