Ejemplo n.º 1
0
void add_light(Light *light) {
  ShadowMap shadow_map(GL_TEXTURE0 + get_next_texture());
  if (shadow_map.init()) {
    fprintf(stderr, "WARNING: Failed to initialize shadow map for light.\n");
  }

  lights.push_back(std::make_pair(light, shadow_map));
}
Ejemplo n.º 2
0
void texture_iterate(viewport_t *viewport)
{
	unsigned char *data;
	int i, j;
	int next_texture = get_next_texture(viewport);
#define BYTES_PER_PIXEL 2
	
	data = (unsigned char*)viewport->screen->pixels + 
		texture_offsets[next_texture];

	memset(data, 0x80, TEXTURE_SIDE * TEXTURE_SIDE * 2);

	for(i = viewport->y1; i < viewport->y2; i++)
	{
		unsigned char *row = data + 
			i * TEXTURE_SIDE * BYTES_PER_PIXEL +
			((viewport->x1 * BYTES_PER_PIXEL) & 0xfffffffc);

		for(j = viewport->x1; j < viewport->x2; j += 2)
		{
			row[1] = row[3] = viewport->y;
			row[0] = viewport->u;
			row[2] = viewport->v;
			row += 4;
		}
	}

return;

	memset(data, 0x00, TEXTURE_SIDE * TEXTURE_SIDE * 4);
	memset(data, 
		viewport->y, 
		TEXTURE_SIDE * TEXTURE_SIDE);

	memset(data + 
		TEXTURE_SIDE * TEXTURE_SIDE, 
		viewport->u,
		TEXTURE_SIDE * TEXTURE_SIDE / 4);

	memset(data + 
		TEXTURE_SIDE * TEXTURE_SIDE +
		TEXTURE_SIDE * TEXTURE_SIDE / 4, 
		viewport->u,
		TEXTURE_SIDE * TEXTURE_SIDE / 4);

	viewport->current_frame += viewport->frame_step;

	if(viewport->current_frame >= viewport->total_frames )
	{
		viewport->current_frame = 0;
	}
}
Ejemplo n.º 3
0
void viewport_draw(viewport_t *viewport)
{
	texture_iterate(viewport);
//	usleep(4000);


	draw_thing(viewport);




	viewport->current_texture = get_next_texture(viewport);
	viewport->status.frames++;
	update_status(&viewport->status);
//	if(!viewport->button_down) viewport->xrot += 0.1;
};
Ejemplo n.º 4
0
void add_light(Light *light) {
  ShadowMap shadow_map(GL_TEXTURE0 + get_next_texture());
  shadow_map.init();
  lights.push_back(std::make_pair(light, shadow_map));
}