Update of /cvsroot/quest-ed/quest-3b/src/fe/gl
In directory usw-pr-cvs1:/tmp/cvs-serv16692/src/fe/gl
Modified Files:
render.c
Log Message:
Display coordinates for the grid.
Index: render.c
===================================================================
RCS file: /cvsroot/quest-ed/quest-3b/src/fe/gl/render.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** render.c 26 Aug 2001 19:48:20 -0000 1.5
--- render.c 20 May 2002 01:01:30 -0000 1.6
***************
*** 1198,1250 ****
! static void DrawGrid(gl_viewport_t *v,double d)
{
! double y,y1,y2;
! double x,x1,x2;
!
! matrix_t m;
! if (d/2.0*v->vp.zoom_amt<10)
! return;
! glGetFloatv(GL_MODELVIEW_MATRIX,(float *)m);
! glPushMatrix();
! glLoadIdentity();
! y1=-v->sy/v->vp.zoom_amt;
! y1=floor((y1-d)/d)*d;
! y2=v->sy/v->vp.zoom_amt;
! y2=ceil((y2+d)/d)*d;
! x1=-v->sx/v->vp.zoom_amt;
! x1=floor((x1-d)/d)*d;
! x2=v->sx/v->vp.zoom_amt;
! x2=ceil((x2+d)/d)*d;
!
! m[3][0]-=floor(m[3][0]/d)*d;
! m[3][1]-=floor(m[3][1]/d)*d;
! x1+=m[3][0];
! x2+=m[3][0];
! y1+=m[3][1];
! y2+=m[3][1];
! glBegin(GL_LINES);
! for (y=y1;y<y2;y+=d)
! {
! glVertex2f(x1,y);
! glVertex2f(x2,y);
! }
! for (x=x1;x<x2;x+=d)
! {
! glVertex2f(x,y1);
! glVertex2f(x,y2);
! }
! glEnd();
! glPopMatrix();
}
--- 1198,1451 ----
! static unsigned char grid_numbers[11][8][4]={
! #define _ 0x00
! #define M 0xff
{
! {_,M,M,_},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! },
! {
! {_,_,M,_},
! {_,_,M,_},
! {_,_,M,_},
! {_,_,M,_},
! {_,_,M,_},
! {_,_,M,_},
! {_,M,M,_},
! {_,_,M,_},
! },
! {
! {M,M,M,M},
! {M,_,_,_},
! {_,M,_,_},
! {_,M,_,_},
! {_,_,M,_},
! {_,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! },
! {
! {_,M,M,_},
! {M,_,_,M},
! {_,_,_,M},
! {_,_,_,M},
! {_,_,M,_},
! {_,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! },
! {
! {_,_,_,M},
! {_,_,_,M},
! {_,_,_,M},
! {_,_,_,M},
! {M,M,M,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! },
! {
! {_,M,M,_},
! {M,_,_,M},
! {_,_,_,M},
! {_,_,_,M},
! {M,M,M,M},
! {M,_,_,_},
! {M,_,_,_},
! {M,M,M,M},
! },
! {
! {_,M,M,_},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,M,M,_},
! {M,_,_,_},
! {M,_,_,_},
! {_,M,M,M},
! },
! {
! {M,_,_,_},
! {M,_,_,_},
! {_,M,_,_},
! {_,M,_,_},
! {_,_,M,_},
! {_,_,_,M},
! {_,_,_,M},
! {M,M,M,M},
! },
! {
! {_,M,M,_},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! {M,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! },
! {
! {M,M,M,_},
! {_,_,_,M},
! {_,_,_,M},
! {_,M,M,M},
! {M,_,_,M},
! {M,_,_,M},
! {M,_,_,M},
! {_,M,M,_},
! },
! {
! {_,_,_,_},
! {_,_,_,_},
! {_,_,_,_},
! {M,M,M,M},
! {M,M,M,M},
! {_,_,_,_},
! {_,_,_,_},
! {_,_,_,_},
! },
! };
! #undef M
! #undef _
! static double DrawGrid(gl_viewport_t *v,double d,int do_text)
! {
! double y,y1,y2;
! double x,x1,x2;
! double zoom=v->vp.zoom_amt;
! double ofsx,ofsy;
! double odx,ody;
!
! matrix_t m;
!
! if (do_text)
! {
! while (d/2.0*zoom<28)
! d*=2;
! }
! else
! {
! if (d/2.0*zoom<10)
! return 0;
! }
! glGetFloatv(GL_MODELVIEW_MATRIX,(float *)m);
! glPushMatrix();
! glLoadIdentity();
! y1=-v->sy/zoom;
! y1=floor((y1-d)/d)*d;
! y2=v->sy/zoom;
! y2=ceil((y2+d)/d)*d;
! x1=-v->sx/zoom;
! x1=floor((x1-d)/d)*d;
! x2=v->sx/zoom;
! x2=ceil((x2+d)/d)*d;
! ofsx=floor(m[3][0]/d)*d;
! ofsy=floor(m[3][1]/d)*d;
! m[3][0]-=ofsx;
! m[3][1]-=ofsy;
!
! odx=ody=d;
! if (m[0][0]+m[1][0]+m[2][0]>0)
! {
! ofsx=x1-ofsx;
! }
! else
! {
! ofsx-=x1;
! odx=-odx;
! }
! if (m[0][1]+m[1][1]+m[2][1]>0)
! {
! ofsy=y1-ofsy;
! }
! else
! {
! ofsy+=y2;
! ody=-ody;
! }
!
! x1+=m[3][0];
! x2+=m[3][0];
! y1+=m[3][1];
! y2+=m[3][1];
!
! if (do_text)
! {
! char buf[8];
! char *c;
! int g;
! double rx;
!
! for (y=y1;y<y2;y+=d,ofsy+=ody)
! {
! snprintf(buf,sizeof(buf),"%i",(int)ofsy);
! x=(-v->sx+4)/zoom;
! for (c=buf;*c;c++)
! {
! if (*c>='0' && *c<='9')
! g=*c-'0';
! else if (*c=='-')
! g=10;
! else
! continue;
!
! glRasterPos2d(x,y+2/zoom);
! glDrawPixels(4,8,GL_LUMINANCE,GL_UNSIGNED_BYTE,&grid_numbers[g]);
! x+=12/zoom;
! }
! }
!
! for (x=x1;x<x2;x+=d,ofsx+=odx)
! {
! snprintf(buf,sizeof(buf),"%i",(int)ofsx);
! y=(-v->sy+4)/zoom;
! rx=x;
! for (c=buf;*c;c++)
! {
! if (*c>='0' && *c<='9')
! g=*c-'0';
! else if (*c=='-')
! g=10;
! else
! continue;
!
! glRasterPos2d(rx,y);
! glDrawPixels(4,8,GL_LUMINANCE,GL_UNSIGNED_BYTE,&grid_numbers[g]);
! rx+=12/zoom;
! }
! }
! }
! else
! {
! glBegin(GL_LINES);
! for (y=y1;y<y2;y+=d)
! {
! glVertex2f(x1,y);
! glVertex2f(x2,y);
! }
! for (x=x1;x<x2;x+=d)
! {
! glVertex2f(x,y1);
! glVertex2f(x,y2);
! }
! glEnd();
! }
! glPopMatrix();
! return d;
}
***************
*** 1289,1299 ****
{
! if (v->mode&M_2D && v->vp.axis_aligned && v->grid_type==GRID_NORMAL)
! {
! glColor4fv(C_GRID_SMALL);
! DrawGrid(v,cv_edit_snap_size->f);
! glColor4fv(C_GRID_LARGE);
! DrawGrid(v,cv_edit_snap_size->f*4);
! }
if (cv_render_flags->i&RENDER_BRUSH)
--- 1490,1505 ----
{
! if (v->mode&M_2D && v->vp.axis_aligned && v->grid_type==GRID_NORMAL)
! {
! double d;
! glColor4fv(C_GRID_SMALL);
! DrawGrid(v,cv_edit_snap_size->f,0);
! glColor4fv(C_GRID_LARGE);
! DrawGrid(v,cv_edit_snap_size->f*4,0);
!
! d=DrawGrid(v,cv_edit_snap_size->f,1);
! if (d>cv_edit_snap_size->f*4)
! DrawGrid(v,d,0); /* TODO: really do this? different color? */
! }
if (cv_render_flags->i&RENDER_BRUSH)
|