Advertisement
Guest User

Untitled

a guest
May 4th, 2012
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. GEOMETRY SHADER
  2. ------------------------------------------------------------------
  3. #version 120
  4.  
  5. //in values from vert shader...
  6. varying in vec2 vSpriteTransform[];
  7. varying in vec4 vSpriteColor[];
  8. varying in vec4 vSpriteTexCoords[];
  9.  
  10. //out values to frag shader...
  11. varying out vec2 TexCoord;
  12. varying out vec4 Color;
  13.  
  14. void main() {
  15.     mat4 gVP = gl_ModelViewProjectionMatrix;
  16.    
  17.     vec2 pos = gl_PositionIn[0].xy;
  18.     vec2 size = vSpriteTransform[0].xy;
  19.     vec4 tex = vSpriteTexCoords[0];
  20.        
  21.     //out to frag...
  22.     Color = vSpriteColor[0];
  23.    
  24.     gl_Position = gVP * vec4(pos.x, pos.y, 0, 1); //top left
  25.     TexCoord = vec2(tex.x, tex.y);
  26.     EmitVertex();
  27.    
  28.     gl_Position = gVP * vec4(pos.x+size.x, pos.y, 0, 1); //top right
  29.     TexCoord = vec2(tex.x+tex.z, tex.y);
  30.     EmitVertex();
  31.    
  32.     gl_Position = gVP * vec4(pos.x, pos.y+size.y, 0, 1); //bottom left
  33.     TexCoord = vec2(tex.x, tex.y+tex.w);
  34.     EmitVertex();
  35.    
  36.     gl_Position = gVP * vec4(pos.x+size.x, pos.y+size.y, 0, 1); //bottom right
  37.     TexCoord = vec2(tex.x+tex.z, tex.y+tex.w);
  38.     EmitVertex();
  39.    
  40.     EndPrimitive();
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47. VERTEX SHADER
  48. ------------------------------------------------------------------
  49. #version 120
  50.  
  51. //in values...
  52. attribute vec2 SpriteTransform;
  53. attribute vec4 SpriteTexCoords;
  54. attribute vec4 SpriteColor;
  55.  
  56. //out values...
  57. varying vec2 vSpriteTransform;
  58. varying vec4 vSpriteColor;
  59. varying vec4 vSpriteTexCoords;
  60.  
  61. void main() {
  62.     vSpriteTransform = SpriteTransform;
  63.     vSpriteTexCoords = SpriteTexCoords;
  64.     vSpriteColor = SpriteColor;
  65.     gl_Position = gl_Vertex;
  66. }
  67.  
  68.  
  69.  
  70.  
  71.  
  72. FRAGMENT SHADER
  73. ------------------------------------------------------------------
  74. #version 120
  75.  
  76. uniform sampler2D tex0;
  77.  
  78. varying vec2 TexCoord;
  79. varying vec4 Color;
  80.  
  81. void main(void) {
  82.     vec4 c = texture2D(tex0, TexCoord);
  83.     gl_FragColor = Color * c;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement