Mercurial > repos > blastem
comparison shaders/sharp.f.glsl @ 1977:f3cca4b3f17a
Allow use of NPOT textures as a config option. Useful for some mobile GPUs
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 09 May 2020 21:15:33 -0700 |
parents | be1da0a68d1e |
children |
comparison
equal
deleted
inserted
replaced
1976:3dd9c68472fb | 1977:f3cca4b3f17a |
---|---|
1 | 1 |
2 uniform sampler2D textures[2]; | 2 uniform sampler2D textures[2]; |
3 uniform mediump vec2 texsize; | |
3 | 4 |
4 varying mediump vec2 texcoord; | 5 varying mediump vec2 texcoord; |
5 | 6 |
6 void main() | 7 void main() |
7 { | 8 { |
8 mediump float x0 = (floor(texcoord.x * 512.0 - 0.25) + 0.5)/512.0; | 9 mediump float x0 = (floor(texcoord.x * texsize.x - 0.25) + 0.5)/texsize.x; |
9 mediump float x1 = (floor(texcoord.x * 512.0 + 0.25) + 0.5)/512.0; | 10 mediump float x1 = (floor(texcoord.x * texsize.x + 0.25) + 0.5)/texsize.x; |
10 mediump float y0 = (floor(texcoord.y * 512.0 + 0.25) + 0.5)/512.0; | 11 mediump float y0 = (floor(texcoord.y * texsize.y + 0.25) + 0.5)/texsize.y; |
11 mediump float y1 = (floor(texcoord.y * 512.0 - 0.25) + 0.5)/512.0; | 12 mediump float y1 = (floor(texcoord.y * texsize.y - 0.25) + 0.5)/texsize.y; |
12 | 13 |
13 | 14 mediump float ymix = (sin(texcoord.y * texsize.y * 6.283185307) + 1.0) * 0.5; |
14 mediump vec2 modifiedCoord0 = vec2(texcoord.x, (floor(texcoord.y * 512.0 + 0.25) + 0.5)/512.0); | 15 mediump float xmix = (sin(texcoord.x * texsize.x * 6.283185307) + 1.0) * 0.5; |
15 mediump vec2 modifiedCoord1 = vec2(texcoord.x, (floor(texcoord.y * 512.0 - 0.25) + 0.5)/512.0); | |
16 mediump float ymix = (sin(texcoord.y * 1024.0 * 3.14159265359) + 1.0) * 0.5; | |
17 mediump float xmix = (sin(texcoord.x * 1024.0 * 3.14159265359) + 1.0) * 0.5; | |
18 gl_FragColor = mix( | 16 gl_FragColor = mix( |
19 mix( | 17 mix( |
20 texture2D(textures[1], vec2(x0, y1)), | 18 texture2D(textures[1], vec2(x0, y1)), |
21 texture2D(textures[0], vec2(x0, y0)), | 19 texture2D(textures[0], vec2(x0, y0)), |
22 ymix | 20 ymix |