コード例 #1
0
ファイル: metrics_draw.c プロジェクト: rzel/dim3
void metrics_draw_single(int y,char *title,char *data)
{
	int				x;

	x=(int)(((float)iface.scale_x)*0.08f);

	gl_text_draw(x,y,title,tx_right,FALSE,&iface.color.system.metric,1.0f);
	gl_text_draw((x+5),y,data,tx_left,FALSE,&iface.color.system.metric,1.0f);
}
コード例 #2
0
ファイル: view.c プロジェクト: prophile/dim3
void view_pause_draw(void)
{
	d3col		col;

	gl_frame_start(NULL);

	gl_2D_view_screen();

	col.r=col.g=col.b=1.0f;
			
	gl_text_start(hud.font.text_size_small);
	gl_text_draw(2,(setup.screen.y_sz-2),"[paused]",tx_left,FALSE,&col,1.0f);
	gl_text_draw((setup.screen.x_sz-2),(setup.screen.y_sz-2),"[click to resume]",tx_right,FALSE,&col,1.0f);
	gl_text_end();
	
	gl_frame_end();
}
コード例 #3
0
ファイル: remote_status.c プロジェクト: prophile/dim3
void remote_draw_names_render(void)
{
	int					n,x,y,text_size;
	d3col				col;
	obj_type			*obj;
	
	if (!net_setup.client.joined) return;
	if (!setup.network.show_names) return;

	gl_2D_view_interface();
	
	glDisable(GL_DEPTH_TEST);
	
		// draw all names

	text_size=-1;

	obj=server.objs;

	for (n=0;n!=server.count.obj;n++) {
	
		if (obj->draw.remote_name.on) {

				// get 2D position in screen resolution

			x=obj->draw.remote_name.proj_pnt.x;
			y=setup.screen.y_sz-obj->draw.remote_name.proj_pnt.y;

				// covert to interface resolution

			x=(x*hud.scale_x)/setup.screen.x_sz;
			y=(y*hud.scale_y)/setup.screen.y_sz;

				// draw text
				
			if (text_size!=obj->draw.remote_name.size) {
				text_size=obj->draw.remote_name.size;
				gl_text_start(text_size);
			}

			object_get_tint(obj,&col);
			gl_text_draw(x,y,obj->name,tx_center,FALSE,&col,obj->draw.remote_name.fade);
		}
		
		obj++;
	}

	gl_text_end();		// can call end without a start
}
コード例 #4
0
ファイル: view_draw_debug.c プロジェクト: rzel/dim3
void view_draw_debug_info(d3pnt *pnt,d3pnt *size,int count,char *strs)
{
	int						n,x,y,dist;
	d3col					col;
	d3pnt					spt,ept,win_pnt;
	ray_trace_contact_type	contact;

		// only show closer objects

	dist=distance_get(pnt->x,pnt->y,pnt->z,view.render->camera.pnt.x,view.render->camera.pnt.y,view.render->camera.pnt.z);
	if (dist>25000) return;

		// ray trace check

	spt.x=pnt->x;
	spt.y=pnt->y-size->y;
	spt.z=pnt->z;

	ept.x=view.render->camera.pnt.x;
	ept.y=view.render->camera.pnt.y;
	ept.z=view.render->camera.pnt.z;

	contact.obj.on=FALSE;
	contact.proj.on=FALSE;

	contact.origin=poly_ray_trace_origin_object;

	if (ray_trace_map_by_point(&spt,&ept,&contact)) return;

		// project the mid point

	win_pnt.x=pnt->x;
	win_pnt.y=pnt->y-size->y;
	win_pnt.z=pnt->z;

	gl_project_point(&win_pnt);

		// draw the info

	gl_2D_view_interface();
	
	glDisable(GL_DEPTH_TEST);
	
		// covert to interface resolution

	x=(win_pnt.x*iface.scale_x)/view.screen.x_sz;
	y=((view.screen.y_sz-win_pnt.y)*iface.scale_y)/view.screen.y_sz;

	y-=(iface.font.text_size_small*count);

		// draw text

	col.r=col.b=1.0f;
	col.g=0.0f;
	
	gl_text_start(font_hud_index,iface.font.text_size_small,FALSE);

	for (n=0;n!=count;n++) {
		y+=iface.font.text_size_small;
		gl_text_draw(x,y,(char*)&strs[n*128],tx_center,FALSE,&col,1.0f);
	}

	gl_text_end();

	glEnable(GL_DEPTH_TEST);

		// restore original projection

	gl_3D_view();
	gl_3D_rotate(&view.render->camera.pnt,&view.render->camera.ang);
}