- Fix mouse position being wrong when vid_scalemode is active

This commit is contained in:
Magnus Norddahl 2017-07-29 19:26:53 +02:00
commit 7d21fe6d75
4 changed files with 59 additions and 17 deletions

View file

@ -548,3 +548,18 @@ void OpenGLFrameBuffer::GameRestart()
gl_GenerateGlobalBrightmapFromColormap();
}
void OpenGLFrameBuffer::ScaleCoordsFromWindow(int16_t &x, int16_t &y)
{
int letterboxX = GLRenderer->mOutputLetterbox.left;
int letterboxY = GLRenderer->mOutputLetterbox.top;
int letterboxWidth = GLRenderer->mOutputLetterbox.width;
int letterboxHeight = GLRenderer->mOutputLetterbox.height;
// Subtract the LB video mode letterboxing
if (IsFullscreen())
y -= (GetTrueHeight() - VideoHeight) / 2;
x = int16_t((x - letterboxX) * Width / letterboxWidth);
y = int16_t((y - letterboxY) * Height / letterboxHeight);
}