void templateAppInit(int width, int height) { glViewport(0.0f, 0.0f, width, height); glGetIntegerv(GL_VIEWPORT, viewport_matrix); GFX_start(); obj = OBJ_load(OBJ_FILE, 1); unsigned int i = 0; while (i != obj->n_objmesh) { OBJ_optimize_mesh(obj, i, 128); OBJ_build_mesh2(obj, i); OBJ_free_mesh_vertex_data(obj, i); ++i; } i = 0; while (i != obj->n_texture) { OBJ_build_texture(obj, i, obj->texture_path, TEXTURE_MIPMAP | TEXTURE_16_BITS, TEXTURE_FILTER_2X, 0.0f); ++i; } i = 0; while (i != obj->n_program) { OBJ_build_program(obj, i, program_bind_attrib_location, program_draw, 1, obj->program_path); ++i; } i = 0; while (i != obj->n_objmaterial) { OBJ_build_material(obj, i, NULL); ++i; } vec4 color = { 1.0f, 1.0f, 1.0f, 1.0f }; vec3 position = { 7.5f, 0.0f, 6.0f }; light = LIGHT_create_spot((char *)"spot", &color, &position, 0.0f, 0.0f, 0.0f, 75.0f, 0.05f); OBJ_get_mesh(obj, (char *)"projector", 0)->visible = 0; glGetIntegerv(GL_FRAMEBUFFER_BINDING, &main_buffer); if (main_buffer == -1) main_buffer = 0; glGenFramebuffers(1, &shadowmap_buffer); glBindFramebuffer(GL_FRAMEBUFFER, shadowmap_buffer); glGenTextures(1, &depth_texture); glBindTexture(GL_TEXTURE_2D, depth_texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, shadowmap_width, shadowmap_height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, NULL); glBindTexture(GL_TEXTURE_2D, 0); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depth_texture, 0); }
void templateAppInit( int width, int height ) { atexit( templateAppExit ); glViewport( 0.0f, 0.0f, width, height ); glGetIntegerv( GL_VIEWPORT, viewport_matrix ); GFX_start(); obj = OBJ_load( OBJ_FILE, 1 ); unsigned int i = 0; while( i != obj->n_objmesh ) { OBJ_optimize_mesh( obj, i, 128 ); OBJ_build_mesh( obj, i ); OBJ_free_mesh_vertex_data( obj, i ); ++i; } i = 0; while( i != obj->n_texture ) { OBJ_build_texture( obj, i, obj->texture_path, TEXTURE_MIPMAP | TEXTURE_16_BITS, TEXTURE_FILTER_2X, 0.0f ); ++i; } i = 0; while( i != obj->n_program ) { OBJ_build_program( obj, i, program_bind_attrib_location, program_draw, 1, obj->program_path ); ++i; } i = 0; while( i != obj->n_objmaterial ) { OBJ_build_material( obj, i, NULL ); ++i; } vec4 color = { 1.0f, 1.0f, 1.0f, 1.0f }; vec3 position = { 7.5f, 0.0f, 6.0f }; light = LIGHT_create_spot( ( char * )"spot", &color, &position, 0.0f, 0.0f, 0.0f, 75.0f, 0.05f ); OBJ_get_mesh( obj, ( char * )"projector", 0 )->visible = 0; texture = OBJ_get_texture( obj, ( char * )"projector", 0 ); glBindTexture( GL_TEXTURE_2D, texture->tid ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); }