[Scummvm-cvs-logs] scummvm master -> 484107907540bd07a5822bee075b450a1ade817c

lordhoto lordhoto at gmail.com
Tue Mar 1 05:35:07 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
4841079075 OPENGL(SDL): Use the whole window/screen size for the overlay.


Commit: 484107907540bd07a5822bee075b450a1ade817c
    https://github.com/scummvm/scummvm/commit/484107907540bd07a5822bee075b450a1ade817c
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-02-28T20:32:14-08:00

Commit Message:
OPENGL(SDL): Use the whole window/screen size for the overlay.

This makes the overlay looking nicer in fullscreen mode.

Changed paths:
    backends/graphics/opengl/opengl-graphics.cpp
    backends/graphics/openglsdl/openglsdl-graphics.cpp



diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index 17a77f6..50aabc6 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -1002,7 +1002,7 @@ void OpenGLGraphicsManager::internUpdateScreen() {
 			refreshOverlay();
 
 		// Draw the overlay
-		_overlayTexture->drawTexture(_displayX, _displayY, _displayWidth, _displayHeight);
+		_overlayTexture->drawTexture(0, 0, _videoMode.overlayWidth, _videoMode.overlayHeight);
 	}
 
 	if (_cursorVisible) {
@@ -1218,32 +1218,20 @@ uint OpenGLGraphicsManager::getAspectRatio() {
 }
 
 void OpenGLGraphicsManager::adjustMousePosition(int16 &x, int16 &y) {
-	if (_videoMode.mode == OpenGL::GFX_NORMAL) {
-		if (_videoMode.hardwareWidth != _videoMode.overlayWidth)
-			x = x * _videoMode.overlayWidth / _videoMode.hardwareWidth;
-		if (_videoMode.hardwareHeight != _videoMode.overlayHeight)
-			y = y * _videoMode.overlayHeight / _videoMode.hardwareHeight;
-
-		if (!_overlayVisible) {
-			x /= _videoMode.scaleFactor;
-			y /= _videoMode.scaleFactor;
-		}
+	if (_overlayVisible)
+		return;
 
-	} else {
+	if (_videoMode.mode == OpenGL::GFX_NORMAL) {
+		x /= _videoMode.scaleFactor;
+		y /= _videoMode.scaleFactor;
+	} else if (!_overlayVisible) {
 		x -= _displayX;
 		y -= _displayY;
 
-		if (_overlayVisible) {
-			if (_displayWidth != _videoMode.overlayWidth)
-				x = x * _videoMode.overlayWidth / _displayWidth;
-			if (_displayHeight != _videoMode.overlayHeight)
-				y = y * _videoMode.overlayHeight / _displayHeight;
-		} else {
-			if (_displayWidth != _videoMode.screenWidth)
-				x = x * _videoMode.screenWidth / _displayWidth;
-			if (_displayHeight != _videoMode.screenHeight)
-				y = y * _videoMode.screenHeight / _displayHeight;
-		}
+		if (_displayWidth != _videoMode.screenWidth)
+			x = x * _videoMode.screenWidth / _displayWidth;
+		if (_displayHeight != _videoMode.screenHeight)
+			y = y * _videoMode.screenHeight / _displayHeight;
 	}
 }
 
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp
index 183d0af..cbc152a 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.cpp
+++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -345,13 +345,10 @@ bool OpenGLSdlGraphicsManager::loadGFXMode() {
 	if (_aspectRatioCorrection)
 		_videoMode.mode = OpenGL::GFX_4_3;
 
-	_videoMode.overlayWidth = _videoMode.screenWidth * _videoMode.scaleFactor;
-	_videoMode.overlayHeight = _videoMode.screenHeight * _videoMode.scaleFactor;
-
 	// If the screen was resized, do not change its size
 	if (!_screenResized) {
-		_videoMode.hardwareWidth = _videoMode.overlayWidth;
-		_videoMode.hardwareHeight = _videoMode.overlayHeight;
+		_videoMode.overlayWidth = _videoMode.hardwareWidth = _videoMode.screenWidth * _videoMode.scaleFactor;
+		_videoMode.overlayHeight = _videoMode.hardwareHeight = _videoMode.screenHeight * _videoMode.scaleFactor;
 
 		int screenAspectRatio = _videoMode.screenWidth * 10000 / _videoMode.screenHeight;
 		int desiredAspectRatio = getAspectRatio();
@@ -366,6 +363,9 @@ bool OpenGLSdlGraphicsManager::loadGFXMode() {
 		// the width is modified it can break the overlay.
 		if (_videoMode.hardwareHeight > _videoMode.overlayHeight)
 			_videoMode.overlayHeight = _videoMode.hardwareHeight;
+	} else {
+		_videoMode.overlayWidth = _videoMode.hardwareWidth;
+		_videoMode.overlayHeight = _videoMode.hardwareHeight;
 	}
 
 	_screenResized = false;
@@ -377,11 +377,15 @@ bool OpenGLSdlGraphicsManager::loadGFXMode() {
 	SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
 	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
 
-	if (_videoMode.fullscreen)
+	if (_videoMode.fullscreen) {
 		if (!setupFullscreenMode())
 			// Failed setuping a fullscreen mode
 			return false;
 
+		_videoMode.overlayWidth = _videoMode.hardwareWidth;
+		_videoMode.overlayHeight = _videoMode.hardwareHeight;
+	}
+
 	uint32 flags = SDL_OPENGL;
 
 	if (_videoMode.fullscreen)






More information about the Scummvm-git-logs mailing list