Changeset 37 for trunk/src/gl
- Timestamp:
- 05/28/13 01:03:00 (12 years ago)
- Location:
- trunk/src/gl
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gl/gl_program.cc
r36 r37 73 73 } 74 74 75 gl_program::gl_program( const string& vertex_program, const string& fragment_program , const string& geometry_program /*= ""*/)76 : vertex_shader( GL_VERTEX_SHADER ), fragment_shader( GL_FRAGMENT_SHADER ) , geometry_shader( GL_GEOMETRY_SHADER )77 { 78 compile( vertex_program, fragment_program , geometry_program);75 gl_program::gl_program( const string& vertex_program, const string& fragment_program ) 76 : vertex_shader( GL_VERTEX_SHADER ), fragment_shader( GL_FRAGMENT_SHADER ) 77 { 78 compile( vertex_program, fragment_program ); 79 79 } 80 80 … … 86 86 glDetachShader( m_name.get_value(), vertex_shader.get_id() ); 87 87 glDetachShader( m_name.get_value(), fragment_shader.get_id() ); 88 if ( geometry_shader.is_valid() ) 89 { 90 glDetachShader( m_name.get_value(), geometry_shader.get_id() ); 91 } 92 } 93 } 94 95 bool gl_program::compile( const string& vertex_program, const string& fragment_program, const string& geometry_program /*= "" */ ) 88 } 89 } 90 91 bool gl_program::compile( const string& vertex_program, const string& fragment_program ) 96 92 { 97 93 if (!vertex_shader.compile( vertex_program )) { return false; } 98 94 if (!fragment_shader.compile( fragment_program )) { return false; } 99 if (!geometry_program.empty())100 {101 if (!geometry_shader.compile( geometry_program )) { return false; }102 }103 95 104 96 glAttachShader( m_name.get_value(), fragment_shader.get_id() ); 105 97 glAttachShader( m_name.get_value(), vertex_shader.get_id() ); 106 if (!geometry_program.empty())107 {108 glAttachShader( m_name.get_value(), geometry_shader.get_id() );109 }110 98 glLinkProgram( m_name.get_value() ); 111 99 … … 180 168 int uni_loc = glGetUniformLocation( m_name.get_value(), name.c_str() ); 181 169 type utype = gl_enum_to_type( uni_type ); 182 m_uniform_map[ name ] = create_uniform( gl_enum_to_type( uni_type ), name, uni_loc, uni_len );170 m_uniform_map[ name ] = create_uniform( utype, name, uni_loc, uni_len ); 183 171 } 184 172 }
Note: See TracChangeset
for help on using the changeset viewer.