Ignore:
Timestamp:
05/28/13 01:03:00 (12 years ago)
Author:
epyon
Message:
  • gl_context added
  • removed geometry shader support from gl_program (non-GL 2.1/GLES 2.0 compatible)
  • cleaned up warnings
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gl/gl_program.cc

    r36 r37  
    7373}
    7474
    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 );
     75gl_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 );
    7979}
    8080
     
    8686                glDetachShader( m_name.get_value(), vertex_shader.get_id() );
    8787                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
     91bool gl_program::compile( const string& vertex_program, const string& fragment_program )
    9692{
    9793        if (!vertex_shader.compile( vertex_program )) { return false; }
    9894        if (!fragment_shader.compile( fragment_program )) { return false; }
    99         if (!geometry_program.empty())
    100         {
    101                 if (!geometry_shader.compile( geometry_program )) { return false; }
    102         }
    10395
    10496        glAttachShader( m_name.get_value(), fragment_shader.get_id() );
    10597        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         }
    11098        glLinkProgram( m_name.get_value() );
    11199
     
    180168                int uni_loc = glGetUniformLocation( m_name.get_value(), name.c_str() );
    181169                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 );
    183171        }
    184172}
Note: See TracChangeset for help on using the changeset viewer.