16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 00:49:19 +02:00

Revert scaling changes. It breaks pickbuffers on Windows with DPI scaling. Needs more investigation.

This reverts commit d901177489.
This commit is contained in:
milek7
2021-01-24 15:38:48 +01:00
parent ad7c0622f8
commit 34113bf7e7
3 changed files with 7 additions and 22 deletions

View File

@@ -113,8 +113,6 @@ struct global_settings {
// gfx // gfx
int iWindowWidth{ 800 }; int iWindowWidth{ 800 };
int iWindowHeight{ 600 }; int iWindowHeight{ 600 };
float fWindowXScale { 1.0f };
float fWindowYScale { 1.0f };
float fDistanceFactor{ 1.f }; // baza do przeliczania odległości dla LoD float fDistanceFactor{ 1.f }; // baza do przeliczania odległości dla LoD
float targetfps{ 0.0f }; float targetfps{ 0.0f };
bool bFullScreen{ false }; bool bFullScreen{ false };

View File

@@ -1,4 +1,4 @@
/* /*
This Source Code Form is subject to the This Source Code Form is subject to the
terms of the Mozilla Public License, v. terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not 2.0. If a copy of the MPL was not
@@ -69,16 +69,13 @@ void focus_callback( GLFWwindow *window, int focus ) {
void window_resize_callback( GLFWwindow *window, int w, int h ) { void window_resize_callback( GLFWwindow *window, int w, int h ) {
// NOTE: we have two variables which basically do the same thing as we don't have dynamic fullscreen toggle // NOTE: we have two variables which basically do the same thing as we don't have dynamic fullscreen toggle
// TBD, TODO: merge them? // TBD, TODO: merge them?
#if GLFW_VERSION_MAJOR > 3 || (GLFW_VERSION_MAJOR == 3 && GLFW_VERSION_MINOR >= 3)
glfwGetWindowContentScale(window, &Global.fWindowXScale, &Global.fWindowYScale);
#endif
Global.iWindowWidth = w; Global.iWindowWidth = w;
Global.iWindowHeight = h; Global.iWindowHeight = h;
glViewport( 0, 0, w, h ); glViewport( 0, 0, w, h );
} }
void cursor_pos_callback( GLFWwindow *window, double x, double y ) { void cursor_pos_callback( GLFWwindow *window, double x, double y ) {
Application.on_cursor_pos( x * Global.fWindowXScale, y * Global.fWindowXScale); Application.on_cursor_pos( x, y );
} }
void mouse_button_callback( GLFWwindow* window, int button, int action, int mods ) void mouse_button_callback( GLFWwindow* window, int button, int action, int mods )
@@ -486,7 +483,7 @@ eu07_application::set_cursor( int const Mode ) {
void void
eu07_application::set_cursor_pos( double const Horizontal, double const Vertical ) { eu07_application::set_cursor_pos( double const Horizontal, double const Vertical ) {
glfwSetCursorPos( m_windows.front(), Horizontal / Global.fWindowXScale, Vertical / Global.fWindowYScale); glfwSetCursorPos( m_windows.front(), Horizontal, Vertical );
} }
glm::dvec2 glm::dvec2
@@ -496,9 +493,6 @@ eu07_application::get_cursor_pos() const {
if( !m_windows.empty() ) { if( !m_windows.empty() ) {
glfwGetCursorPos( m_windows.front(), &pos.x, &pos.y ); glfwGetCursorPos( m_windows.front(), &pos.x, &pos.y );
} }
pos.x *= Global.fWindowXScale;
pos.y *= Global.fWindowYScale;
return pos; return pos;
} }
@@ -506,9 +500,6 @@ void
eu07_application::get_cursor_pos( double &Horizontal, double &Vertical ) const { eu07_application::get_cursor_pos( double &Horizontal, double &Vertical ) const {
glfwGetCursorPos( m_windows.front(), &Horizontal, &Vertical ); glfwGetCursorPos( m_windows.front(), &Horizontal, &Vertical );
Horizontal *= Global.fWindowXScale;
Vertical *= Global.fWindowYScale;
} }
/* /*

View File

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