- Timestamp:
- 05/28/13 16:48:29 (12 years ago)
- Location:
- trunk/src/gl
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gl/gl_context.cc
r37 r44 13 13 { 14 14 // apply_framebuffer 15 15 16 apply_scissor_test( cs.scissor_test ); 16 17 apply_color_mask( cs.color_mask ); … … 35 36 m_clear_stencil = cs.stencil; 36 37 } 37 38 glClear( c s.buffers);38 39 glClear( clear_state_buffers_to_mask( cs.buffers ) ); 39 40 } 40 41 … … 347 348 } 348 349 350 351 gl_context::gl_context() 352 { 353 force_apply_render_state( m_render_state ); 354 } -
trunk/src/gl/gl_device.cc
r42 r44 56 56 } 57 57 58 index_buffer* gl_device::create_index_buffer( buffer_hint hint, int size, void* source /*= nullptr */ ) 59 { 60 return new gl_index_buffer( hint, size, source ); 61 } 62 63 vertex_array* gl_device::create_vertex_array() 64 { 65 return new gl_vertex_array(); 66 } 67 58 68 gl_device::~gl_device() 59 69 { -
trunk/src/gl/gl_enum.cc
r43 r44 186 186 switch( type ) 187 187 { 188 case BYTE : return GL_BYTE; 189 case UBYTE : return GL_UNSIGNED_BYTE; 190 case SHORT : return GL_SHORT; 191 case USHORT : return GL_UNSIGNED_SHORT; 192 case INT : return GL_INT; 193 case UINT : return GL_UNSIGNED_INT; 188 194 case FLOAT : return GL_FLOAT; 189 195 case FLOAT_VECTOR_2 : return GL_FLOAT_VEC2; … … 193 199 case FLOAT_MATRIX_3 : return GL_FLOAT_MAT3; 194 200 case FLOAT_MATRIX_4 : return GL_FLOAT_MAT4; 195 case INT : return GL_INT;196 201 case INT_VECTOR_2 : return GL_INT_VEC2; 197 202 case INT_VECTOR_3 : return GL_INT_VEC3; … … 205 210 switch( gl_enum ) 206 211 { 207 case GL_FLOAT : return FLOAT; 208 case GL_FLOAT_VEC2 : return FLOAT_VECTOR_2; 209 case GL_FLOAT_VEC3 : return FLOAT_VECTOR_3; 210 case GL_FLOAT_VEC4 : return FLOAT_VECTOR_4; 211 case GL_FLOAT_MAT2 : return FLOAT_MATRIX_2; 212 case GL_FLOAT_MAT3 : return FLOAT_MATRIX_3; 213 case GL_FLOAT_MAT4 : return FLOAT_MATRIX_4; 214 case GL_INT : return INT; 215 case GL_INT_VEC2 : return INT_VECTOR_2; 216 case GL_INT_VEC3 : return INT_VECTOR_3; 217 case GL_INT_VEC4 : return INT_VECTOR_4; 212 case GL_BYTE : return BYTE; 213 case GL_UNSIGNED_BYTE : return UBYTE; 214 case GL_SHORT : return SHORT; 215 case GL_UNSIGNED_SHORT : return USHORT; 216 case GL_INT : return INT; 217 case GL_UNSIGNED_INT : return UINT; 218 case GL_FLOAT : return FLOAT; 219 case GL_FLOAT_VEC2 : return FLOAT_VECTOR_2; 220 case GL_FLOAT_VEC3 : return FLOAT_VECTOR_3; 221 case GL_FLOAT_VEC4 : return FLOAT_VECTOR_4; 222 case GL_FLOAT_MAT2 : return FLOAT_MATRIX_2; 223 case GL_FLOAT_MAT3 : return FLOAT_MATRIX_3; 224 case GL_FLOAT_MAT4 : return FLOAT_MATRIX_4; 225 case GL_INT_VEC2 : return INT_VECTOR_2; 226 case GL_INT_VEC3 : return INT_VECTOR_3; 227 case GL_INT_VEC4 : return INT_VECTOR_4; 218 228 default : return type(0); // TODO: throw! 219 229 } -
trunk/src/gl/gl_vertex_buffer.cc
r42 r44 40 40 return m_name.is_valid(); 41 41 } 42 43 gl_index_buffer::gl_index_buffer( buffer_hint hint, int size, void* data ) 44 : index_buffer( hint, size ), m_name() 45 { 46 if (data) 47 { 48 assign( data ); 49 } 50 } 51 52 void gl_index_buffer::assign( void* data ) 53 { 54 glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() ); 55 glBufferData( GL_ELEMENT_ARRAY_BUFFER, m_size, data, buffer_hint_to_enum( m_hint ) ); 56 glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0); 57 } 58 59 void gl_index_buffer::bind() 60 { 61 glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, m_name.get_value() ); 62 } 63 64 void gl_index_buffer::unbind() 65 { 66 glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0 ); 67 } 68 69 bool gl_index_buffer::is_valid() const 70 { 71 return m_name.is_valid(); 72 } 73 74 gl_vertex_array::gl_vertex_array() 75 { 76 77 } 78 79 void gl_vertex_array::bind() 80 { 81 for ( vertex_buffer_attribute_map::iterator i = m_map.begin(); i != m_map.end(); ++i ) 82 { 83 int location = i->first; 84 vertex_buffer_attribute* va = i->second; 85 vertex_buffer* vb = va->get_buffer(); 86 glEnableVertexAttribArray( location ); 87 vb->bind(); 88 glVertexAttribPointer( 89 location, 90 va->get_components(), 91 nv::type_to_gl_enum( va->get_datatype() ), 92 GL_FALSE, 93 va->get_stride(), 94 (void*)va->get_offset() 95 ); 96 vb->unbind(); 97 } 98 99 } 100 101 void gl_vertex_array::unbind() 102 { 103 for ( vertex_buffer_attribute_map::iterator i = m_map.begin(); i != m_map.end(); ++i ) 104 { 105 glDisableVertexAttribArray( i->first ); 106 } 107 } -
trunk/src/gl/gl_window.cc
r38 r44 29 29 NV_LOG( LOG_INFO, "OpenGL Version : " << glGetString(GL_VERSION) ); 30 30 NV_LOG( LOG_INFO, "OpenGL GLSL Version : " << glGetString(GL_SHADING_LANGUAGE_VERSION) ); 31 32 m_context = new gl_context(); 33 m_context->set_viewport( nv::ivec4( 0, 0, m_width, m_height ) ); 31 34 } 32 35 … … 51 54 m_title = title; 52 55 } 56 57 gl_window::~gl_window() 58 { 59 delete m_context; 60 }
Note: See TracChangeset
for help on using the changeset viewer.