示例#1
0
static void render_lit(world_t w, float lerp)
{
	renderer_t r = w->render;
	vec3_t cpos;

	glEnable(GL_LIGHT0);

	if ( w->do_shadows ) {
		glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
		glDepthMask(GL_TRUE);
		glStencilFunc(GL_EQUAL, 0x0, 0xff);
		glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
		glEnable(GL_STENCIL_TEST);
	}

	do_render(w, lerp, NULL);

	if ( w->do_shadows ) {
		glDisable(GL_STENCIL_TEST);
	}

	glPushMatrix();
	chopper_get_pos(w->apache, lerp, cpos);
	renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]);
	renderer_translate(r, -cpos[0], -cpos[1], -cpos[2]);
	particles_render_all(r, lerp);
	glPopMatrix();
}
示例#2
0
void tile_render(tile_t t, renderer_t r, light_t l)
{
    unsigned int i;

#if 0
//	renderer_wireframe(r, 1);
    if ( NULL == l ) {
        glColor4f(0.4, 0.4, 0.4, 1.0);
        glBegin(GL_QUAD_STRIP);
        glNormal3f(0.0, 1.0, 0.0);
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(0.0, 0.0, TILE_Y);
        glVertex3f(TILE_X, 0.0, 0.0);
        glVertex3f(TILE_X, 0.0, TILE_Y);
        glEnd();
    }
//	renderer_wireframe(r, 0);
//	return;
#endif

    for(i = 0; i < t->t_num_items; i++) {
        struct _item *item = t->t_items + i;
        glPushMatrix();
        renderer_translate(r, item->x, 0.0, item->y);
        glColor4f(0.3, 0.3, 0.3, 1.0);
        asset_render(item->asset, r, l);
        glPopMatrix();
    }
}
示例#3
0
static void do_render(world_t w, float lerp, light_t l)
{
	renderer_t r = w->render;
	vec3_t cpos;

	chopper_get_pos(w->apache, lerp, cpos);

	glPushMatrix();
	renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]);
	renderer_translate(r, -cpos[0], -cpos[1], -cpos[2]);
	map_render(w->map, r, l);
	chopper_render_missiles(w->apache, r, lerp, l);
	glPopMatrix();

	glPushMatrix();
	renderer_translate(r, w->cpos[0], w->cpos[1], w->cpos[2]);
	chopper_render(w->apache, r, lerp, l);
	glPopMatrix();
}
示例#4
0
static void view_transform(world_t w)
{
	renderer_t r = w->render;
	renderer_translate(r, 0.0, -CAMERA_HEIGHT, 0.0);
	get_screen_centre(r, CHOPPER_HEIGHT, w->cpos);
}