summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-05-12 00:35:55 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-05-12 00:35:55 (GMT)
commitd69fc052fabf38b6691970c38abe4c8525eff3e8 (patch)
tree857691fe7d792a8dde25167e134ed3e12ce01f9f /includes
parentd7fa0b139e5a91c3b1d406e63cae4a6ad79d0cd0 (diff)
downloadpowder-d69fc052fabf38b6691970c38abe4c8525eff3e8.zip
powder-d69fc052fabf38b6691970c38abe4c8525eff3e8.tar.gz
Fancy motion blur for OpenGL, fix a lot of dialogues in OpenGL, fix gravity lensing in OpenGL, ensure Phot and Neut are PMODE_ADD, not FLAT
Diffstat (limited to 'includes')
-rw-r--r--includes/graphics.h29
-rw-r--r--includes/powder.h1
2 files changed, 22 insertions, 8 deletions
diff --git a/includes/graphics.h b/includes/graphics.h
index 0f30405..22986a5 100644
--- a/includes/graphics.h
+++ b/includes/graphics.h
@@ -269,16 +269,29 @@ uniform sampler2D tfY;\
uniform float xres;\
uniform float yres;\
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,\
+ 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/4.0;\
+ transformY.g /= yres/4.0;\
+ vec4 texColor1 = vec4(\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.90, transformY.g*0.90)).r,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.80, transformY.g*0.80)).g,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.70, transformY.g*0.70)).b,\
1.0\
);\
+ vec4 texColor2 = vec4(\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.95, transformY.g*0.95)).r,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.85, transformY.g*0.85)).g,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).b,\
+ 1.0\
+ );\
+ vec4 texColor3 = vec4(\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.85, transformY.g*0.85)).r,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.75, transformY.g*0.75)).g,\
+ texture2D(pTex, gl_TexCoord[0].st-vec2(transformX.r*0.65, transformY.g*0.65)).b,\
+ 1.0\
+ );\
+ vec4 texColor = texColor1*0.6 + texColor2*0.2 + texColor3*0.2;\
gl_FragColor = texColor;\
}";
const char * lensVertex = "#version 120\n\
diff --git a/includes/powder.h b/includes/powder.h
index 92310c1..3488d28 100644
--- a/includes/powder.h
+++ b/includes/powder.h
@@ -283,6 +283,7 @@ struct particle
int type;
int life, ctype;
float x, y, vx, vy;
+ float lastX, lastY;
float temp;
float pavg[2];
int flags;