Finish Zoom

This commit is contained in:
Simon Robertshaw 2011-10-22 14:41:14 +01:00
parent 5b4aeaed01
commit abb1a12271

View File

@ -2675,32 +2675,59 @@ void dim_copy_pers(pixel *dst, pixel *src) //for persistent view, reduces rgb sl
void render_zoom(pixel *img) //draws the zoom box void render_zoom(pixel *img) //draws the zoom box
{ {
#ifdef OGLR #ifdef OGLR
glEnable( GL_TEXTURE_2D ); float zcx1, zcx0, zcy1, zcy0, yfactor, xfactor; //X-Factor is shit, btw
glReadBuffer(GL_AUX0); xfactor = 1.0f/(float)XRES;
glBindTexture(GL_TEXTURE_2D, partsFboTex); yfactor = 1.0f/(float)YRES;
glCopyTexSubImage2D(GL_TEXTURE_2D,
0, zcx0 = (zoom_x)*xfactor;
20, zcx1 = (zoom_x+ZSIZE)*xfactor;
20, zcy0 = (YRES-zoom_y+1)*yfactor;
30, zcy1 = (YRES-(zoom_y+ZSIZE)+1)*yfactor;
30,
50, glEnable(GL_LINE_SMOOTH);
50); glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBegin(GL_LINE_STRIP);
glVertex3i(zoom_wx-1, YRES+MENUSIZE-zoom_wy, 0);
glVertex3i(zoom_wx-1, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 0);
glVertex3i(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 0);
glVertex3i(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-zoom_wy, 0);
glVertex3i(zoom_wx-1, YRES+MENUSIZE-zoom_wy, 0);
glEnd();
glDisable(GL_LINE_SMOOTH);
glEnable( GL_TEXTURE_2D );
//glReadBuffer(GL_AUX0);
glBindTexture(GL_TEXTURE_2D, partsFboTex);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBegin(GL_QUADS); glBegin(GL_QUADS);
glTexCoord2d(1, 1); glTexCoord2d(zcx1, zcy1);
glVertex3f(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 1.0); glVertex3f(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 1.0);
glTexCoord2d(0, 1); glTexCoord2d(zcx0, zcy1);
glVertex3f(zoom_wx, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 1.0); glVertex3f(zoom_wx, YRES+MENUSIZE-(zoom_wy+ZSIZE*ZFACTOR), 1.0);
glTexCoord2d(0, 0); glTexCoord2d(zcx0, zcy0);
glVertex3f(zoom_wx, YRES+MENUSIZE-zoom_wy, 1.0); glVertex3f(zoom_wx, YRES+MENUSIZE-zoom_wy, 1.0);
glTexCoord2d(1, 0); glTexCoord2d(zcx1, zcy0);
glVertex3f(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-zoom_wy, 1.0); glVertex3f(zoom_wx+ZSIZE*ZFACTOR, YRES+MENUSIZE-zoom_wy, 1.0);
glEnd(); glEnd();
glDisable( GL_TEXTURE_2D ); glDisable( GL_TEXTURE_2D );
if(zoom_en)
{
//glEnable(GL_COLOR_LOGIC_OP);
glEnable(GL_LINE_SMOOTH);
//glLogicOp(GL_XOR);
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBegin(GL_LINE_STRIP);
glVertex3i(zoom_x-1, YRES+MENUSIZE-(zoom_y-1), 0);
glVertex3i(zoom_x-1, YRES+MENUSIZE-(zoom_y+ZSIZE), 0);
glVertex3i(zoom_x+ZSIZE, YRES+MENUSIZE-(zoom_y+ZSIZE), 0);
glVertex3i(zoom_x+ZSIZE, YRES+MENUSIZE-(zoom_y-1), 0);
glVertex3i(zoom_x-1, YRES+MENUSIZE-(zoom_y-1), 0);
glEnd();
//glDisable(GL_COLOR_LOGIC_OP);
}
#else #else
int x, y, i, j; int x, y, i, j;
pixel pix; pixel pix;