@@ -121,13 +121,19 @@ NonLegacyRenderer::NonLegacyRenderer() :
121121 if ( IsAvailable () ) {
122122 auto load_result = m_shader.loadFromMemory (
123123 " #version 130\n "
124- " uniform mat4 mvp_matrix ;\n "
124+ " uniform vec2 viewport_parameters ;\n "
125125 " in vec2 vertex;\n "
126126 " in vec4 color;\n "
127127 " in vec2 texture_coordinate;\n "
128128 " out vec4 vertex_color;\n "
129129 " out vec2 vertex_texture_coordinate;\n "
130130 " void main() {\n "
131+ " \t mat4 mvp_matrix = mat4(1.f);\n "
132+ " \t mvp_matrix[3][0] = -1.f;\n "
133+ " \t mvp_matrix[3][1] = 1.f;\n "
134+ " \t mvp_matrix[0][0] = viewport_parameters.x;\n "
135+ " \t mvp_matrix[1][1] = viewport_parameters.y;\n "
136+ " \t mvp_matrix[2][2] = -1.f;\n "
131137 " \t gl_Position = mvp_matrix * vec4(vertex.xy, 1.f, 1.f);\n "
132138 " \t vertex_color = color;\n "
133139 " \t vertex_texture_coordinate = texture_coordinate;\n "
@@ -309,8 +315,7 @@ void NonLegacyRenderer::DisplayImpl() const {
309315 if ( m_window_size.x && m_window_size.y ) {
310316 const_cast <NonLegacyRenderer*>( this )->Invalidate ( INVALIDATE_VERTEX | INVALIDATE_TEXTURE );
311317
312- auto view = sf::View ( static_cast <sf::Vector2f>( m_window_size / 2 ), static_cast <sf::Vector2f>( m_window_size ) );
313- m_shader.setParameter ( " mvp_matrix" , view.getTransform () );
318+ m_shader.setParameter ( " viewport_parameters" , 2 .f / static_cast <float >( m_window_size.x ), -2 .f / static_cast <float >( m_window_size.y ) );
314319
315320 const_cast <NonLegacyRenderer*>( this )->SetupFBO ( m_window_size.x , m_window_size.y );
316321 }
0 commit comments