mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-23 11:04:44 +00:00
Move some aspect ratio related stuff to graphics/scaler/aspect.h
svn-id: r48186
This commit is contained in:
parent
9fb27a26f8
commit
28c6c600d4
@ -33,6 +33,7 @@
|
||||
#include "backends/keymapper/keymapper.h"
|
||||
#include "common/util.h"
|
||||
#include "common/events.h"
|
||||
#include "graphics/scaler/aspect.h" // for aspect2Real
|
||||
|
||||
// FIXME move joystick defines out and replace with confile file options
|
||||
// we should really allow users to map any key to a joystick button using the keymapper.
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "graphics/font.h"
|
||||
#include "graphics/fontman.h"
|
||||
#include "graphics/scaler.h"
|
||||
#include "graphics/scaler/aspect.h"
|
||||
#include "graphics/surface.h"
|
||||
|
||||
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "graphics/font.h"
|
||||
#include "graphics/fontman.h"
|
||||
#include "graphics/scaler.h"
|
||||
#include "graphics/scaler/aspect.h"
|
||||
#include "graphics/scaler/downscaler.h"
|
||||
#include "graphics/surface.h"
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
|
||||
#include "backends/platform/linuxmoto/linuxmoto-sdl.h"
|
||||
#include "backends/platform/sdl/sdl.h"
|
||||
#include "graphics/scaler/aspect.h" // for aspect2Real
|
||||
|
||||
static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode) {
|
||||
if (key >= SDLK_F1 && key <= SDLK_F9) {
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "graphics/font.h"
|
||||
#include "graphics/fontman.h"
|
||||
#include "graphics/scaler.h"
|
||||
#include "graphics/scaler/aspect.h"
|
||||
#include "graphics/scaler/downscaler.h"
|
||||
#include "graphics/surface.h"
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "backends/platform/sdl/sdl.h"
|
||||
#include "common/util.h"
|
||||
#include "common/events.h"
|
||||
#include "graphics/scaler/aspect.h" // for aspect2Real
|
||||
|
||||
// FIXME move joystick defines out and replace with confile file options
|
||||
// we should really allow users to map any key to a joystick button
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "graphics/font.h"
|
||||
#include "graphics/fontman.h"
|
||||
#include "graphics/scaler.h"
|
||||
#include "graphics/scaler/aspect.h"
|
||||
#include "graphics/surface.h"
|
||||
|
||||
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
|
||||
@ -476,6 +477,12 @@ void OSystem_SDL::initSize(uint w, uint h, const Graphics::PixelFormat *format)
|
||||
_dirtyChecksums = (uint32 *)calloc(_cksumNum * 2, sizeof(uint32));
|
||||
}
|
||||
|
||||
int OSystem_SDL::effectiveScreenHeight() const {
|
||||
return _videoMode.scaleFactor *
|
||||
(_videoMode.aspectRatioCorrection
|
||||
? real2Aspect(_videoMode.screenHeight)
|
||||
: _videoMode.screenHeight);
|
||||
}
|
||||
|
||||
static void fixupResolutionForAspectRatio(AspectRatio desiredAspectRatio, int &width, int &height) {
|
||||
assert(&width != &height);
|
||||
|
@ -485,10 +485,7 @@ protected:
|
||||
|
||||
virtual bool saveScreenshot(const char *filename); // overloaded by CE backend
|
||||
|
||||
int effectiveScreenHeight() const {
|
||||
return (_videoMode.aspectRatioCorrection ? real2Aspect(_videoMode.screenHeight) : _videoMode.screenHeight)
|
||||
* _videoMode.scaleFactor;
|
||||
}
|
||||
int effectiveScreenHeight() const;
|
||||
|
||||
void setupIcon();
|
||||
void handleKbdMouse();
|
||||
|
@ -184,9 +184,8 @@ extern "C" void Normal2xAspectMask(const uint8 *srcPtr,
|
||||
|
||||
/**
|
||||
* A 2x scaler which also does aspect ratio correction.
|
||||
* Presumably this is Normal2x combined with vertical
|
||||
* stretching, so it will scale a 320x200 surface to
|
||||
* a 640x480 surface.
|
||||
* This is Normal2x combined with vertical stretching,
|
||||
* so it will scale a 320x200 surface to a 640x480 surface.
|
||||
*/
|
||||
void Normal2xAspect(const uint8 *srcPtr,
|
||||
uint32 srcPitch,
|
||||
|
@ -58,18 +58,6 @@ DECLARE_SCALER(HQ2x);
|
||||
DECLARE_SCALER(HQ3x);
|
||||
#endif
|
||||
|
||||
FORCEINLINE int real2Aspect(int y) {
|
||||
return y + (y + 1) / 5;
|
||||
}
|
||||
|
||||
FORCEINLINE int aspect2Real(int y) {
|
||||
return (y * 5 + 4) / 6;
|
||||
}
|
||||
|
||||
extern void makeRectStretchable(int &x, int &y, int &w, int &h);
|
||||
|
||||
extern int stretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, int srcY, int origSrcY);
|
||||
|
||||
// creates a 160x100 thumbnail for 320x200 games
|
||||
// and 160x120 thumbnail for 320x240 and 640x480 games
|
||||
// only 565 mode
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
|
||||
#include "graphics/scaler/intern.h"
|
||||
#include "graphics/scaler.h"
|
||||
#include "graphics/scaler/aspect.h"
|
||||
|
||||
|
||||
#define kVeryFastAndUglyAspectMode 0 // No interpolation at all, but super-fast
|
||||
|
63
graphics/scaler/aspect.h
Normal file
63
graphics/scaler/aspect.h
Normal file
@ -0,0 +1,63 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef GRAPHICS_SCALER_ASPECT_H
|
||||
#define GRAPHICS_SCALER_ASPECT_H
|
||||
|
||||
#include "common/scummsys.h"
|
||||
|
||||
/**
|
||||
* TODO: explain
|
||||
*/
|
||||
FORCEINLINE int real2Aspect(int y) {
|
||||
return y + (y + 1) / 5;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: explain
|
||||
*/
|
||||
FORCEINLINE int aspect2Real(int y) {
|
||||
return (y * 5 + 4) / 6;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: explain
|
||||
*/
|
||||
void makeRectStretchable(int &x, int &y, int &w, int &h);
|
||||
|
||||
/**
|
||||
* TODO: explain
|
||||
*/
|
||||
int stretch200To240(uint8 *buf,
|
||||
uint32 pitch,
|
||||
int width,
|
||||
int height,
|
||||
int srcX,
|
||||
int srcY,
|
||||
int origSrcY);
|
||||
|
||||
// TODO: Move Normal2xAspect & PocketPCLandscapeAspect here;
|
||||
// also rename the latter to Normal1xAspect
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user