- Timestamp:
- 07/15/13 02:48:06 (12 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/gfx/keyframed_mesh.hh
r159 r161 33 33 34 34 int m_loc_next_position; 35 int m_loc_last_position;36 35 int m_loc_next_normal; 37 int m_loc_last_normal;38 36 39 37 uint32 m_last_frame; -
trunk/nv/interface/program.hh
r139 r161 22 22 namespace nv 23 23 { 24 enum slot 25 { 26 POSITION = 0, 27 TEXCOORD = 1, 28 NORMAL = 2, 29 COLOR = 3, 30 TANGENT = 4, 31 }; 32 24 33 class attribute 25 34 { -
trunk/src/formats/md3_loader.cc
r156 r161 313 313 } 314 314 315 vertex_attribute< vec3 >* position = m->add_attribute<vec3>(" position");316 vertex_attribute< vec3 >* normal = m->add_attribute<vec3>("n ormal");317 vertex_attribute< vec2 >* texcoord = m->add_attribute<vec2>(" texcoord");315 vertex_attribute< vec3 >* position = m->add_attribute<vec3>("nv_position"); 316 vertex_attribute< vec3 >* normal = m->add_attribute<vec3>("nv_normal"); 317 vertex_attribute< vec2 >* texcoord = m->add_attribute<vec2>("nv_texcoord"); 318 318 vertex_attribute< uint16 >* indices = m->add_indices<uint16>(); 319 319 -
trunk/src/formats/obj_loader.cc
r148 r161 140 140 if ( m_position == nullptr ) 141 141 { 142 m_position = m_mesh->add_attribute< vec3 >( " position" );142 m_position = m_mesh->add_attribute< vec3 >( "nv_position" ); 143 143 } 144 144 if ( m_tex_coord == nullptr ) 145 145 { 146 m_tex_coord = m_mesh->add_attribute< vec2 >( " texcoord" );146 m_tex_coord = m_mesh->add_attribute< vec2 >( "nv_texcoord" ); 147 147 } 148 148 if ( m_normal == nullptr && ni != nullptr ) 149 149 { 150 m_normal = m_mesh->add_attribute< vec3 >( "n ormal" );150 m_normal = m_mesh->add_attribute< vec3 >( "nv_normal" ); 151 151 } 152 152 … … 174 174 void mesh_obj_reader::calculate_tangents() 175 175 { 176 m_tangent = m_mesh->add_attribute< vec4 >( " tangent" );176 m_tangent = m_mesh->add_attribute< vec4 >( "nv_tangent" ); 177 177 178 178 std::vector< vec3 >& vp = m_position->get(); -
trunk/src/gfx/keyframed_mesh.cc
r159 r161 21 21 , m_va( nullptr ) 22 22 , m_loc_next_position( 0 ) 23 , m_loc_last_position( 0 )24 23 , m_loc_next_normal( 0 ) 25 , m_loc_last_normal( 0 )26 24 , m_last_frame( 0 ) 27 25 , m_next_frame( 0 ) … … 37 35 38 36 nv::vertex_buffer* vb; 39 m_loc_next_position = m_program->get_attribute( "next_position" )->get_location(); 40 m_loc_last_position = m_program->get_attribute( "last_position" )->get_location(); 41 m_loc_next_normal = m_program->get_attribute( "next_normal" )->get_location(); 42 m_loc_last_normal = m_program->get_attribute( "last_normal" )->get_location(); 37 m_loc_next_position = m_program->get_attribute( "nv_next_position" )->get_location(); 38 m_loc_next_normal = m_program->get_attribute( "nv_next_normal" )->get_location(); 43 39 44 40 vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec3 ) * m_data->get_frame_count(), (void*)m_data->get_positions().data() ); 45 41 m_va->add_vertex_buffer( m_loc_next_position, vb, nv::FLOAT, 3, 0, 0, false ); 46 m_va->add_vertex_buffer( m_loc_last_position, vb, nv::FLOAT, 3 );42 m_va->add_vertex_buffer( nv::POSITION, vb, nv::FLOAT, 3 ); 47 43 48 44 vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec3 ) * m_data->get_frame_count(), (void*)m_data->get_normals().data() ); 49 45 m_va->add_vertex_buffer( m_loc_next_normal, vb, nv::FLOAT, 3, 0, 0, false ); 50 m_va->add_vertex_buffer( m_loc_last_normal, vb, nv::FLOAT, 3 );46 m_va->add_vertex_buffer( nv::NORMAL, vb, nv::FLOAT, 3 ); 51 47 52 48 vb = m_context->get_device()->create_vertex_buffer( nv::STATIC_DRAW, m_data->get_vertex_count() * sizeof( nv::vec2 ), (void*)m_data->get_texcoords().data() ); 53 m_va->add_vertex_buffer( m_program->get_attribute( "texcoord" )->get_location(), vb, nv::FLOAT, 2 );49 m_va->add_vertex_buffer( nv::slot::TEXCOORD, vb, nv::FLOAT, 2 ); 54 50 nv::index_buffer* ib = m_context->get_device()->create_index_buffer( nv::STATIC_DRAW, m_data->get_index_count() * sizeof( nv::uint16 ), (void*)m_data->get_indices().data() ); 55 51 m_va->set_index_buffer( ib, nv::USHORT, true ); … … 129 125 if ( m_gpu_last_frame != m_last_frame ) 130 126 { 131 m_va->update_vertex_buffer( m_loc_last_position, m_last_frame * vtx_count * sizeof( nv::vec3 ) );132 m_va->update_vertex_buffer( m_loc_last_normal, m_last_frame * vtx_count * sizeof( nv::vec3 ) );127 m_va->update_vertex_buffer( slot::POSITION, m_last_frame * vtx_count * sizeof( nv::vec3 ) ); 128 m_va->update_vertex_buffer( slot::NORMAL, m_last_frame * vtx_count * sizeof( nv::vec3 ) ); 133 129 m_gpu_last_frame = m_last_frame; 134 130 } … … 139 135 m_gpu_next_frame = m_next_frame; 140 136 } 141 m_program->set_uniform( " interpolate", m_interpolation );137 m_program->set_uniform( "nv_interpolate", m_interpolation ); 142 138 m_context->draw( nv::TRIANGLES, rstate, m_program, m_va, m_data->get_index_count() ); 143 139 } -
trunk/src/gl/gl_device.cc
r153 r161 44 44 SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 ); 45 45 SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 ); 46 SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16);46 SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 24 ); 47 47 SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); 48 49 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 ); 50 SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, 4 ); 51 48 52 } 49 53 -
trunk/src/gl/gl_program.cc
r121 r161 105 105 if (!vertex_shader.compile( vertex_program )) { return false; } 106 106 if (!fragment_shader.compile( fragment_program )) { return false; } 107 108 glBindAttribLocation( m_name.get_value(), static_cast<GLuint>( slot::POSITION ), "nv_position" ); 109 glBindAttribLocation( m_name.get_value(), static_cast<GLuint>( slot::TEXCOORD ), "nv_texcoord" ); 110 glBindAttribLocation( m_name.get_value(), static_cast<GLuint>( slot::NORMAL ), "nv_normal" ); 111 glBindAttribLocation( m_name.get_value(), static_cast<GLuint>( slot::COLOR ), "nv_color" ); 112 glBindAttribLocation( m_name.get_value(), static_cast<GLuint>( slot::TANGENT ), "nv_tangent" ); 107 113 108 114 glAttachShader( m_name.get_value(), fragment_shader.get_id() ); -
trunk/src/gui/gui_renderer.cc
r152 r161 81 81 nv::program* shader; 82 82 nv::texture2d* texture; 83 84 int loc_coord;85 int loc_color;86 int loc_tcoord;87 83 }; 88 84 … … 116 112 sr->varray = m_window->get_device()->create_vertex_array(); 117 113 sr->shader = m_window->get_device()->create_program( nv::slurp( "gui.vert" ), nv::slurp( "gui.frag" ) ); 118 sr->loc_coord = sr->shader->get_attribute("coord")->get_location();119 sr->loc_tcoord = sr->shader->get_attribute("tcoord")->get_location();120 sr->loc_color = sr->shader->get_attribute("color")->get_location();121 114 sr->shader->set_uniform( "tex", 0 ); 122 115 glm::mat4 projection = glm::ortho( 0.0f, float( m_window->get_width() ), float( m_window->get_height() ), 0.0f, -1.0f, 1.0f ); 123 sr->shader->set_uniform( " projection", projection );116 sr->shader->set_uniform( "nv_projection", projection ); 124 117 125 118 vertex_buffer* vb = (vertex_buffer*)sr->buffer.get_buffer(); 126 sr->varray->add_vertex_buffer( s r->loc_coord,vb, nv::INT, 2, 0, sizeof( vertex ), false );127 sr->varray->add_vertex_buffer( s r->loc_tcoord, vb, nv::FLOAT, 2, offset_of( &vertex::tcoord ), sizeof( vertex ), false );128 sr->varray->add_vertex_buffer( s r->loc_color,vb, nv::FLOAT, 4, offset_of( &vertex::color ), sizeof( vertex ), false );119 sr->varray->add_vertex_buffer( slot::POSITION, vb, nv::INT, 2, 0, sizeof( vertex ), false ); 120 sr->varray->add_vertex_buffer( slot::TEXCOORD, vb, nv::FLOAT, 2, offset_of( &vertex::tcoord ), sizeof( vertex ), false ); 121 sr->varray->add_vertex_buffer( slot::COLOR, vb, nv::FLOAT, 4, offset_of( &vertex::color ), sizeof( vertex ), false ); 129 122 130 123 nv::sampler sampler( nv::sampler::LINEAR, nv::sampler::CLAMP_TO_EDGE ); … … 277 270 { 278 271 nv::vertex_buffer* vb = (nv::vertex_buffer*)sr->buffer.get_buffer(); 279 sr->varray->update_vertex_buffer( sr->loc_coord,vb, false );280 sr->varray->update_vertex_buffer( sr->loc_tcoord, vb, false );281 sr->varray->update_vertex_buffer( sr->loc_color,vb, false );272 sr->varray->update_vertex_buffer( nv::POSITION, vb, false ); 273 sr->varray->update_vertex_buffer( nv::TEXCOORD, vb, false ); 274 sr->varray->update_vertex_buffer( nv::COLOR, vb, false ); 282 275 } 283 276 sr->texture->bind( 0 ); -
trunk/tests/cachebuf_test/cachebuf.vert
r102 r161 1 1 #version 120 2 attribute vec2 coord;3 attribute vec4 color;4 uniform mat4 projection;2 attribute vec2 nv_position; 3 attribute vec4 nv_color; 4 uniform mat4 nv_projection; 5 5 varying vec4 f_color; 6 6 7 7 void main(void) { 8 f_color = color;9 gl_Position = projection * vec4( coord.x, coord.y, 0.0, 1.0 );8 f_color = nv_color; 9 gl_Position = nv_projection * vec4( nv_position.x, nv_position.y, 0.0, 1.0 ); 10 10 } -
trunk/tests/cachebuf_test/nv_cachebuf_test.cc
r152 r161 234 234 nv::vertex_array* m_va; 235 235 unsigned int m_count; 236 int m_coord_loc;237 int m_color_loc;238 236 }; 239 237 … … 257 255 { 258 256 m_program = m_device->create_program( nv::slurp( "cachebuf.vert" ), nv::slurp( "cachebuf.frag" ) ); 259 m_coord_loc = m_program->get_attribute("coord")->get_location();260 m_color_loc = m_program->get_attribute("color")->get_location();261 257 m_va = m_device->create_vertex_array(); 262 258 … … 270 266 #endif 271 267 272 m_va->add_vertex_buffer( m_coord_loc, buffer, nv::INT, 2, 0, sizeof( vertex ), false );273 m_va->add_vertex_buffer( m_color_loc,buffer, nv::FLOAT, 4, offset_of( &vertex::color ), sizeof( vertex ), false );268 m_va->add_vertex_buffer( nv::slot::POSITION, buffer, nv::INT, 2, 0, sizeof( vertex ), false ); 269 m_va->add_vertex_buffer( nv::slot::COLOR, buffer, nv::FLOAT, 4, offset_of( &vertex::color ), sizeof( vertex ), false ); 274 270 } 275 271 return true; … … 281 277 m_program->bind(); 282 278 glm::mat4 projection = glm::ortho( 0.0f, 800.0f, 600.0f, 0.0f, -1.0f, 1.0f ); 283 m_program->set_uniform( " projection", glm::mat4(projection) );279 m_program->set_uniform( "nv_projection", glm::mat4(projection) ); 284 280 285 281 while(!keypress) … … 297 293 nv::vertex_buffer* buffer = (nv::vertex_buffer*)m_quad_cache->get_buffer(); 298 294 #endif 299 m_va->update_vertex_buffer( m_coord_loc, buffer, false );300 m_va->update_vertex_buffer( m_color_loc,buffer, false );295 m_va->update_vertex_buffer( nv::slot::POSITION, buffer, false ); 296 m_va->update_vertex_buffer( nv::slot::COLOR, buffer, false ); 301 297 } 302 298 -
trunk/tests/gui_test/gui.frag
r127 r161 1 1 #version 120 2 varying vec4 f_color;3 varying vec2 f_tcoord;2 varying vec4 v_color; 3 varying vec2 v_texcoord; 4 4 uniform sampler2D tex; 5 5 6 6 void main(void) { 7 vec4 texture = texture2D(tex, f_tcoord);8 gl_FragColor = f_color * texture;7 vec4 texture = texture2D(tex,v_texcoord); 8 gl_FragColor = v_color * texture; 9 9 } -
trunk/tests/gui_test/gui.vert
r127 r161 1 1 #version 120 2 attribute vec2 coord;3 attribute vec2 tcoord;4 attribute vec4 color;5 uniform mat4 projection;6 varying vec4 f_color;7 varying vec2 f_tcoord;2 attribute vec2 nv_position; 3 attribute vec2 nv_texcoord; 4 attribute vec4 nv_color; 5 uniform mat4 nv_projection; 6 varying vec4 v_color; 7 varying vec2 v_texcoord; 8 8 9 9 void main(void) { 10 f_color =color;11 f_tcoord = tcoord;12 gl_Position = projection * vec4( coord.x, coord.y, 0.0, 1.0 );10 v_color = nv_color; 11 v_texcoord = nv_texcoord; 12 gl_Position = nv_projection * vec4( nv_position.x, nv_position.y, 0.0, 1.0 ); 13 13 } -
trunk/tests/objload_test/obj.vert
r139 r161 1 1 #version 120 2 2 3 attribute vec3 position;4 attribute vec2 texcoord;5 attribute vec3 n ormal;3 attribute vec3 nv_position; 4 attribute vec2 nv_texcoord; 5 attribute vec3 nv_normal; 6 6 7 7 varying vec3 v_normal; … … 17 17 18 18 void main(void) { 19 vec4 vertex = vec4( position, 1.0 );19 vec4 vertex = vec4( nv_position, 1.0 ); 20 20 vec3 eye_pos = vec3( nv_m_modelview * vertex ); 21 v_normal = normalize( nv_m_normal * n ormal );21 v_normal = normalize( nv_m_normal * nv_normal ); 22 22 v_light_vector = vec3( normalize( light_position - eye_pos ) ); 23 23 v_view_vector = vec3( normalize( -eye_pos ) ); 24 24 25 v_texcoord = texcoord;25 v_texcoord = nv_texcoord; 26 26 gl_Position = matrix_mvp * vertex; 27 27 }
Note: See TracChangeset
for help on using the changeset viewer.