Advertisement
Guest User

Engine Class (C++)

a guest
Jun 4th, 2012
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. void Engine::initializeGL( void )
  2.     {
  3.         glEnable( GL_DEPTH_TEST );
  4.         glEnable( GL_BLEND );
  5.         glEnable( GL_POLYGON_SMOOTH );
  6.  
  7.         glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
  8.         glClearColor( 0, 0, 0, 0 );
  9.  
  10.         glm::mat4 projection = glm::perspective( 45.0f, (float)( width() / height() ), 0.1f, 100.0f );
  11.  
  12.         glm::mat4 view = glm::mat4( 1 );
  13.         view = glm::translate( view, glm::vec3( 1, 1, 1 ) );
  14.  
  15.         glm::mat4 model = glm::mat4( 1 );
  16.         model = glm::translate( model, glm::vec3( 0.5f ) );
  17.  
  18.         glm::mat4 mvp = projection  * view * model;
  19.  
  20.         glLoadMatrixf( glm::value_ptr( mvp ) );
  21.  
  22.         mShapes = new QVector< Shape* >;
  23.  
  24.         QVector< Shader > shaders;
  25.  
  26.         Shader tVert = mShaderHandler->getShader( "Triangle Vertex Shader", "Shaders/Position.vert", GL_VERTEX_SHADER );
  27.         Shader tFrag = mShaderHandler->getShader( "Triangle Fragment Shader", "Shaders/GenericColor.frag", GL_FRAGMENT_SHADER );
  28.  
  29.         shaders.push_back( tVert );
  30.         shaders.push_back( tFrag );
  31.  
  32.         mShaderHandler->createShaders(shaders);
  33.         mShaderHandler->compileAndLink();
  34.  
  35.         mProgram = mShaderHandler->getProgram( 0 );
  36.  
  37.         mShapes->push_back( new Circle( glm::vec4( 1 ), 5 ) );
  38.  
  39.         glUseProgram( mProgram );
  40.     }
  41.  
  42. //---------------------------
  43.  
  44. void Engine::paintGL( void )
  45.     {
  46.         QVectorIterator< Shape* > iShapes( *mShapes );
  47.  
  48.         glVertexAttribPointer( 0, 4, GL_FLOAT, GL_FALSE, 0, 0 );
  49.  
  50.         while( iShapes.hasNext() )
  51.         {
  52.             iShapes.next()->draw( mProgram );
  53.         }
  54.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement