Esempio n. 1
0
File: fade.c Progetto: prophile/dim3
void fade_screen_draw(int tick)
{
	float			alpha;

	if (fade_screen_tick==-1) return;

	tick-=fade_screen_tick;
	if (tick>hud.fade.map_msec) {
		fade_screen_tick=-1;
		return;
	}

		// calculate fade

	alpha=1.0f-(float)tick/(float)hud.fade.map_msec;
	glColor4f(0.0f,0.0f,0.0f,alpha);
	
		// draw
		
	gl_2D_view_screen();

	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

	glDisable(GL_ALPHA_TEST);
	glDisable(GL_DEPTH_TEST);
		
    glBegin(GL_QUADS);
	glVertex2i(0,0);
	glVertex2i(setup.screen.x_sz,0);
	glVertex2i(setup.screen.x_sz,setup.screen.y_sz);
	glVertex2i(0,setup.screen.y_sz);
    glEnd();
}
Esempio n. 2
0
File: sky.c Progetto: prophile/dim3
void draw_background(void)
{
	int					txt_id;
	float				gx,gy;
	texture_type		*texture;
	
		// is there a background?
	
	if (!map.background.on) return;
	if ((map.background.fill<0) || (map.background.fill>=max_map_texture)) return;

		// setup view

	gl_2D_view_screen();
	
		// get scrolling
		
	gx=((float)(view.render->camera.pnt.x+view.render->camera.pnt.z))*(map.background.x_scroll_fact*0.001f);
	gy=((float)view.render->camera.pnt.y)*(map.background.y_scroll_fact*0.001f);

		// draw background
		
	texture=&map.textures[map.background.fill];
	txt_id=texture->frames[texture->animate.current_frame].bitmap.gl_id;
	
	glDisable(GL_BLEND);
	glDisable(GL_ALPHA_TEST);
	glDisable(GL_DEPTH_TEST);

	gl_texture_simple_start();
	gl_texture_simple_set(txt_id,FALSE,1,1,1,1);
	view_draw_next_vertex_object_2D_texture_screen(setup.screen.x_sz,setup.screen.y_sz,gx,gy);
	gl_texture_simple_end();
}
Esempio n. 3
0
File: view.c Progetto: 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();
}
Esempio n. 4
0
void view_draw_dim3rtl(void)
{
    obj_type		*obj,*camera_obj;
    weapon_type		*weap;

    // get player object and held weapon

    obj=server.obj_list.objs[server.player_obj_idx];
    weap=weapon_find_current(obj);

    // use the camera render

    view.render=&view_camera_render;

    // set view camera

    camera_view_draw_run();

    camera_obj=server.obj_list.objs[camera.obj_idx];
    memmove(&view.render->camera.pnt,&camera.cur_pos.pnt,sizeof(d3pnt));
    memmove(&view.render->camera.ang,&camera.cur_pos.ang,sizeof(d3ang));

    view.render->camera.fov=map.camera.plane.fov;
    view.render->camera.flip=FALSE;
    view.render->camera.under_liquid_idx=camera_check_liquid(obj,&view.render->camera.pnt);

    view.render->cull_idx=0;
    view.render->force_camera_obj=FALSE;

    // camera adjustments

    if (map.camera.camera_mode==cv_fpp) {
        view_calculate_scope(obj,camera_obj);
        view_calculate_recoil(obj);
    }

    view_calculate_shakes(obj);
    view_calculate_sways(obj);

    // build the scene

    view_draw_dim3rtl_scene_build();

    // we setup the 2D elements before
    // rendering because we get the last
    // frame so we want to use the last
    // frames eye point

    label_draw_setup();
    halo_draw_setup();

    if ((obj!=NULL) && (weap!=NULL)) {
        crosshair_setup(obj,weap);
        zoom_setup(obj,weap);
    }

    // dim3rtl rendering

    view_dim3rtl_render();

    // draw 2D opengl elements

    gl_2D_view_screen();

    label_draw_render();
    halo_draw_render();

    if (!view.cinema.on) {
        if ((obj!=NULL) && (weap!=NULL)) {
            crosshair_draw(obj,weap);
            zoom_draw(obj,weap);
        }
    }

    // draw tints and fades

    view_draw_liquid_tint(view.render->camera.under_liquid_idx);
    view_draw_effect_tint();
    view_fade_draw();
}
Esempio n. 5
0
File: fade.c Progetto: prophile/dim3
void fade_object_draw(int tick,obj_type *obj)
{
	int					i,x,y,sz,alpha_sz,r;
	float				fsz;
	obj_fs_fade			*fade;
	GLUquadricObj		*quadric;
	
	fade=&obj->fs_effect.fade;
	
		// fades on?
		
	if (!fade->on) return;
	
		// get fade size
		
	tick-=fade->start_tick;
	if (tick>fade->life_tick) {
		fsz=fade->end_size;
	}
	else {
		fsz=fade->start_size+((fade->end_size-fade->start_size)*((float)tick/(float)fade->life_tick));
	}
	
	sz=(int)(((float)setup.screen.x_sz)*fsz);
	
		// center point

	x=fade->center_x;
	y=fade->center_y;

		// draw fade

	gl_2D_view_screen();

	glDisable(GL_BLEND);
	glDisable(GL_ALPHA_TEST);
	glDisable(GL_DEPTH_TEST);

	glMatrixMode(GL_MODELVIEW);
	glTranslatef((float)x,(float)y,0.0f);
	
		// faded disk
		
	alpha_sz=80;
	if (sz<80) alpha_sz=sz;
	
	for (i=0;i<alpha_sz;i+=2) {
		glColor4f(0.0f,0.0f,0.0f,(((float)i)*0.025f));
	
		r=(sz+i);
		quadric=gluNewQuadric();
		gluDisk(quadric,r,(r+2),24,24);
		gluDeleteQuadric(quadric);
	}
	
		// rest of black disk
		
	sz+=alpha_sz;
	if (sz<setup.screen.x_sz) {
		glColor4f(0.0f,0.0f,0.0f,1.0f);

		quadric=gluNewQuadric();
		gluDisk(quadric,sz,setup.screen.x_sz,24,24);
		gluDeleteQuadric(quadric);
	}
}