- glViewport( 0,0, vg_window_x, vg_window_y );
-
- glEnable( GL_DEPTH_TEST );
- glClearColor( 0.94f, 0.94f, 0.94f, 1.0f );
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- SHADER_USE( colour_shader );
- glUniformMatrix4fv( SHADER_UNIFORM( colour_shader, "uPv" ), 1, GL_FALSE, (float *)m_pv );
-
- for( int y = 0; y < map.y; y ++ )
- {
- for( int x = 0; x < map.x; x ++ )
- {
- glm_mat4_identity( m_mdl );
- glm_translate( m_mdl,
- (vec3){
- map.origin[0] + (float)x + 0.5f,
- 0.f,
- map.origin[2] + (float)y + 0.5f
- }
- );
- glUniformMatrix4fv( SHADER_UNIFORM( colour_shader, "uMdl" ), 1, GL_FALSE, (float *)m_mdl );
-
- struct cell *cell = &map.cells[ y*map.x+x ];
-
- if( map.selected != cell )
- {
- if( cell->flags & CELL_FLAG_INPUT )
- glUniform4f( SHADER_UNIFORM( colour_shader, "uColour" ), 0.9f, 0.5f, 0.5f, 1.0f );
- else if( cell->flags & CELL_FLAG_OUTPUT )
- glUniform4f( SHADER_UNIFORM( colour_shader, "uColour" ), 0.5f, 0.9f, 0.5f, 1.0f );
- else if( cell->flags & CELL_FLAG_WALL )
- glUniform4f( SHADER_UNIFORM( colour_shader, "uColour" ), 0.1f, 0.1f, 0.1f, 1.0f );
- else
- glUniform4f( SHADER_UNIFORM( colour_shader, "uColour" ), 0.7f, 0.7f, 0.7f, 1.0f );
- }
- else
- {
- float flash = sinf( vg_time*2.5f ) * 0.25f + 0.75f;
- glUniform4f( SHADER_UNIFORM( colour_shader, "uColour" ), flash,flash,flash, 1.0f );
- }
-
- glDrawArrays( GL_TRIANGLES, 0, 6 );
- }
- }