Exemplo n.º 1
0
/*
   ==============
   Z_DrawGrid
   ==============
 */
void Z_DrawGrid( void ){
	float zz, zb, ze;
	float w, h;
	char text[32];

	w = ( z.width / 2 / z.scale );
	h = ( z.height / 2 / z.scale );

	zb = z.origin[2] - h;
	if ( zb < region_mins[2] ) {
		zb = region_mins[2];
	}
	zb = 64 * floor( zb / 64 );

	ze = z.origin[2] + h;
	if ( ze > region_maxs[2] ) {
		ze = region_maxs[2];
	}
	ze = 64 * ceil( ze / 64 );

	// draw major blocks

	glColor3fv( g_qeglobals.d_savedinfo.colors[COLOR_GRIDMAJOR] );

	if ( g_qeglobals.d_showgrid ) {
		if ( g_qeglobals.d_gridsize < 128 ) {
			glBegin( GL_LINES );

			glVertex2f( 0, zb );
			glVertex2f( 0, ze );

			for ( zz = zb ; zz < ze ; zz += 64 )
			{
				glVertex2f( -w, zz );
				glVertex2f( w, zz );
			}

			glEnd();
		}
		else
		{
			glBegin( GL_LINES );

			glVertex2f( 0, zb );
			glVertex2f( 0, ze );

			for ( zz = zb ; zz < ze ; zz += 64 )
			{
				// d_gridsize >= 128 .. it's an int for sure
				if ( ( (int)zz & ( (int)g_qeglobals.d_gridsize - 1 ) ) != 0 ) {
					continue;
				}

				glVertex2f( -w, zz );
				glVertex2f( w, zz );
			}

			glEnd();
		}
	}

	// draw minor blocks
	if ( g_qeglobals.d_showgrid && g_qeglobals.d_gridsize * z.scale >= 4 &&
		 g_qeglobals.d_savedinfo.colors[COLOR_GRIDMINOR] != g_qeglobals.d_savedinfo.colors[COLOR_GRIDBACK] ) {
		glColor3fv( g_qeglobals.d_savedinfo.colors[COLOR_GRIDMINOR] );

		glBegin( GL_LINES );
		for ( zz = zb ; zz < ze ; zz += g_qeglobals.d_gridsize )
		{
			if ( !( (int)zz & 63 ) ) {
				continue;
			}
			glVertex2f( -w, zz );
			glVertex2f( w, zz );
		}
		glEnd();
	}

	// draw coordinate text if needed

	if ( g_qeglobals.d_savedinfo.show_coordinates ) {
		glColor3fv( g_qeglobals.d_savedinfo.colors[COLOR_GRIDTEXT] );

		int step = (int)( g_qeglobals.d_gridsize > 64 ? g_qeglobals.d_gridsize : 64 );
		zb = z.origin[2] - h;
		if ( zb < region_mins[2] ) {
			zb = region_mins[2];
		}
		zb = step * floor( zb / step );

		for ( zz = zb ; zz < ze ; zz += step )
		{
			glRasterPos2f( -w + ( 1 / z.scale ), zz );
			sprintf( text, "%i",(int)zz );
			gtk_glwidget_print_string( text );
		}
	}
}
Exemplo n.º 2
0
void gtk_glwidget_print_char( char s ){
	char str[2];
	str[0] = s;
	str[1] = '\0';
	gtk_glwidget_print_string( str );
}