MacOS native build fixes (#9)

* Added fWindowXScale and fWindowYScale to support retina/hi-res displays on MacOS

* Fixed mouse handling for hi-res/retina displays on MacOS with legacy renderer

* Gated glfwGetWindowContentScale with endif checking glfw version
This commit is contained in:
Piotr
2021-01-21 23:39:28 +01:00
committed by GitHub
parent ee3e94bd35
commit d901177489
3 changed files with 22 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
/*
/*
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
@@ -3996,6 +3996,8 @@ opengl_renderer::Update_Pick_Control() {
// determine point to examine
glm::dvec2 mousepos;
glfwGetCursorPos( m_window, &mousepos.x, &mousepos.y );
mousepos.x *= Global.fWindowXScale;
mousepos.y *= Global.fWindowYScale;
mousepos.y = Global.iWindowHeight - mousepos.y; // cursor coordinates are flipped compared to opengl
#ifdef EU07_USE_PICKING_FRAMEBUFFER
@@ -4003,8 +4005,8 @@ opengl_renderer::Update_Pick_Control() {
if( true == m_framebuffersupport ) {
// ::glReadBuffer( GL_COLOR_ATTACHMENT0_EXT );
pickbufferpos = glm::ivec2{
mousepos.x * EU07_PICKBUFFERSIZE / std::max( 1, Global.iWindowWidth ),
mousepos.y * EU07_PICKBUFFERSIZE / std::max( 1, Global.iWindowHeight ) };
mousepos.x * EU07_PICKBUFFERSIZE / std::max( 1, Global.iWindowWidth),
mousepos.y * EU07_PICKBUFFERSIZE / std::max( 1, Global.iWindowHeight) };
}
else {
// ::glReadBuffer( GL_BACK );
@@ -4360,8 +4362,10 @@ opengl_renderer::Init_caps() {
}
#endif
char* extensions = (char*)glGetString( GL_EXTENSIONS );
WriteLog( "Supported extensions: \n"
+ std::string((char *)glGetString( GL_EXTENSIONS )) );
+ std::string(extensions ? extensions : "") );
WriteLog( std::string("render path: ") + ( Global.bUseVBO ? "VBO" : "Display lists" ) );
if( GL_EXT_framebuffer_object ) {