comparison OrthancStone/Sources/Scene2D/Internals/OpenGLLinesProgram.cpp @ 1576:92fca2b3ba3d

sanitizing the handling of canvas size
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 24 Sep 2020 16:40:30 +0200
parents 244ad1e4e76a
children 4fb8fdf03314
comparison
equal deleted inserted replaced
1575:e4a52cbbdd70 1576:92fca2b3ba3d
413 } 413 }
414 } 414 }
415 415
416 void OpenGLLinesProgram::Apply(const Data& data, 416 void OpenGLLinesProgram::Apply(const Data& data,
417 const AffineTransform2D& transform, 417 const AffineTransform2D& transform,
418 unsigned int canvasWidth,
419 unsigned int canvasHeight,
418 bool antialiasing, 420 bool antialiasing,
419 bool scaleIndependantThickness) 421 bool scaleIndependantThickness)
420 { 422 {
421 if (!context_.IsContextLost() && !data.IsEmpty()) 423 if (!context_.IsContextLost() && !data.IsEmpty())
422 { 424 {
426 GLint locationPosition = program_->GetAttributeLocation("a_position"); 428 GLint locationPosition = program_->GetAttributeLocation("a_position");
427 GLint locationMiterDirection = program_->GetAttributeLocation("a_miter_direction"); 429 GLint locationMiterDirection = program_->GetAttributeLocation("a_miter_direction");
428 GLint locationColor = program_->GetAttributeLocation("a_color"); 430 GLint locationColor = program_->GetAttributeLocation("a_color");
429 431
430 float m[16]; 432 float m[16];
431 transform.ConvertToOpenGLMatrix(m, context_.GetCanvasWidth(), context_.GetCanvasHeight()); 433 transform.ConvertToOpenGLMatrix(m, canvasWidth, canvasHeight);
432 434
433 glUniformMatrix4fv(program_->GetUniformLocation("u_matrix"), 1, GL_FALSE, m); 435 glUniformMatrix4fv(program_->GetUniformLocation("u_matrix"), 1, GL_FALSE, m);
434 436
435 glBindBuffer(GL_ARRAY_BUFFER, data.GetVerticesBuffer()); 437 glBindBuffer(GL_ARRAY_BUFFER, data.GetVerticesBuffer());
436 glEnableVertexAttribArray(locationPosition); 438 glEnableVertexAttribArray(locationPosition);