3 #include "texture.h" // next_pow2
5 static void update_fbtex();
7 static unsigned int fb_tex;
8 static int fb_tex_width, fb_tex_height;
10 void slow_post(unsigned int sdr)
14 glBindTexture(GL_TEXTURE_2D, fb_tex);
15 glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, win_width, win_height);
17 glPushAttrib(GL_ENABLE_BIT);
18 glDisable(GL_DEPTH_TEST);
22 float umax = (float)win_width / (float)fb_tex_width;
23 float vmax = (float)win_height / (float)fb_tex_height;
28 glTexCoord2f(umax, 0);
30 glTexCoord2f(umax, vmax);
32 glTexCoord2f(0, vmax);
39 static void update_fbtex()
41 if(win_width <= fb_tex_width && win_height <= fb_tex_height) {
42 return; // nothing to do
45 glGenTextures(1, &fb_tex);
46 glBindTexture(GL_TEXTURE_2D, fb_tex);
47 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
48 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
50 glBindTexture(GL_TEXTURE_2D, fb_tex);
53 fb_tex_width = next_pow2(win_width);
54 fb_tex_height = next_pow2(win_height);
55 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, fb_tex_width, fb_tex_height, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);