Mercurial > touhou
comparison pytouhou/ui/opengl/shaders/eosd.py @ 604:aca9551ee8b4
Fix compiling issues with Cython 0.20 ; don't pretend to concat shader sources
| author | Thibaut Girka <thib@sitedethib.com> |
|---|---|
| date | Tue, 11 Nov 2014 15:46:31 +0100 |
| parents | 1be60813f7cb |
| children |
comparison
equal
deleted
inserted
replaced
| 603:e9300aae4b24 | 604:aca9551ee8b4 |
|---|---|
| 16 from ..shader import Shader | 16 from ..shader import Shader |
| 17 | 17 |
| 18 | 18 |
| 19 class GameShader(Shader): | 19 class GameShader(Shader): |
| 20 def __init__(self): | 20 def __init__(self): |
| 21 Shader.__init__(self, [''' | 21 Shader.__init__(self, ''' |
| 22 attribute vec3 in_position; | 22 attribute vec3 in_position; |
| 23 attribute vec2 in_texcoord; | 23 attribute vec2 in_texcoord; |
| 24 attribute vec4 in_color; | 24 attribute vec4 in_color; |
| 25 | 25 |
| 26 uniform mat4 mvp; | 26 uniform mat4 mvp; |
| 32 { | 32 { |
| 33 gl_Position = mvp * vec4(in_position, 1.0); | 33 gl_Position = mvp * vec4(in_position, 1.0); |
| 34 texcoord = in_texcoord; | 34 texcoord = in_texcoord; |
| 35 color = in_color; | 35 color = in_color; |
| 36 } | 36 } |
| 37 '''], [''' | 37 ''', ''' |
| 38 varying vec2 texcoord; | 38 varying vec2 texcoord; |
| 39 varying vec4 color; | 39 varying vec4 color; |
| 40 | 40 |
| 41 uniform sampler2D color_map; | 41 uniform sampler2D color_map; |
| 42 | 42 |
| 43 void main() | 43 void main() |
| 44 { | 44 { |
| 45 gl_FragColor = texture2D(color_map, texcoord) * color; | 45 gl_FragColor = texture2D(color_map, texcoord) * color; |
| 46 } | 46 } |
| 47 ''']) | 47 ''') |
| 48 | 48 |
| 49 | 49 |
| 50 class BackgroundShader(Shader): | 50 class BackgroundShader(Shader): |
| 51 def __init__(self): | 51 def __init__(self): |
| 52 Shader.__init__(self, [''' | 52 Shader.__init__(self, ''' |
| 53 attribute vec3 in_position; | 53 attribute vec3 in_position; |
| 54 attribute vec2 in_texcoord; | 54 attribute vec2 in_texcoord; |
| 55 attribute vec4 in_color; | 55 attribute vec4 in_color; |
| 56 | 56 |
| 57 uniform mat4 mvp; | 57 uniform mat4 mvp; |
| 63 { | 63 { |
| 64 gl_Position = mvp * vec4(in_position, 1.0); | 64 gl_Position = mvp * vec4(in_position, 1.0); |
| 65 texcoord = in_texcoord; | 65 texcoord = in_texcoord; |
| 66 color = in_color; | 66 color = in_color; |
| 67 } | 67 } |
| 68 '''], [''' | 68 ''', ''' |
| 69 varying vec2 texcoord; | 69 varying vec2 texcoord; |
| 70 varying vec4 color; | 70 varying vec4 color; |
| 71 | 71 |
| 72 uniform sampler2D color_map; | 72 uniform sampler2D color_map; |
| 73 uniform float fog_scale; | 73 uniform float fog_scale; |
| 79 vec4 temp_color = texture2D(color_map, texcoord) * color; | 79 vec4 temp_color = texture2D(color_map, texcoord) * color; |
| 80 float depth = gl_FragCoord.z / gl_FragCoord.w; | 80 float depth = gl_FragCoord.z / gl_FragCoord.w; |
| 81 float fog_density = clamp((fog_end - depth) * fog_scale, 0.0, 1.0); | 81 float fog_density = clamp((fog_end - depth) * fog_scale, 0.0, 1.0); |
| 82 gl_FragColor = vec4(mix(fog_color, temp_color, fog_density).rgb, temp_color.a); | 82 gl_FragColor = vec4(mix(fog_color, temp_color, fog_density).rgb, temp_color.a); |
| 83 } | 83 } |
| 84 ''']) | 84 ''') |
| 85 | 85 |
| 86 | 86 |
| 87 class PassthroughShader(Shader): | 87 class PassthroughShader(Shader): |
| 88 def __init__(self): | 88 def __init__(self): |
| 89 Shader.__init__(self, [''' | 89 Shader.__init__(self, ''' |
| 90 attribute vec2 in_position; | 90 attribute vec2 in_position; |
| 91 attribute vec2 in_texcoord; | 91 attribute vec2 in_texcoord; |
| 92 | 92 |
| 93 uniform mat4 mvp; | 93 uniform mat4 mvp; |
| 94 | 94 |
| 97 void main() | 97 void main() |
| 98 { | 98 { |
| 99 gl_Position = mvp * vec4(in_position, 0.0, 1.0); | 99 gl_Position = mvp * vec4(in_position, 0.0, 1.0); |
| 100 texcoord = in_texcoord; | 100 texcoord = in_texcoord; |
| 101 } | 101 } |
| 102 '''], [''' | 102 ''', ''' |
| 103 varying vec2 texcoord; | 103 varying vec2 texcoord; |
| 104 | 104 |
| 105 uniform sampler2D color_map; | 105 uniform sampler2D color_map; |
| 106 | 106 |
| 107 void main() | 107 void main() |
| 108 { | 108 { |
| 109 gl_FragColor = texture2D(color_map, texcoord); | 109 gl_FragColor = texture2D(color_map, texcoord); |
| 110 } | 110 } |
| 111 ''']) | 111 ''') |
