diff options
author | Alejandro Marzini | 2010-07-05 03:21:48 +0000 |
---|---|---|
committer | Alejandro Marzini | 2010-07-05 03:21:48 +0000 |
commit | 30136589f05498f160c3a7e9e92be0aef066bf79 (patch) | |
tree | faf6721d57e93a8688829ccb7b1437097760b9ce /backends | |
parent | 3c607ef28958a155802ac77af5fa87e04fbe170e (diff) | |
download | scummvm-rg350-30136589f05498f160c3a7e9e92be0aef066bf79.tar.gz scummvm-rg350-30136589f05498f160c3a7e9e92be0aef066bf79.tar.bz2 scummvm-rg350-30136589f05498f160c3a7e9e92be0aef066bf79.zip |
Base class for OpenGL graphics manager.
svn-id: r50668
Diffstat (limited to 'backends')
-rw-r--r-- | backends/graphics/opengl/opengl-graphics.cpp | 228 | ||||
-rw-r--r-- | backends/graphics/opengl/opengl-graphics.h | 97 |
2 files changed, 325 insertions, 0 deletions
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp new file mode 100644 index 0000000000..bd1d6c22ff --- /dev/null +++ b/backends/graphics/opengl/opengl-graphics.cpp @@ -0,0 +1,228 @@ +/* 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$ + * + */ + +#include "backends/graphics/opengl/opengl-graphics.h" + +OpenGLGraphicsManager::OpenGLGraphicsManager() { + +} + +OpenGLGraphicsManager::~OpenGLGraphicsManager() { + +} + +// +// Feature +// + +bool OpenGLGraphicsManager::hasFeature(OSystem::Feature f) { + return false; +} + +void OpenGLGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) { + +} + +bool OpenGLGraphicsManager::getFeatureState(OSystem::Feature f) { + return false; +} + +// +// Screen format and modes +// + +static const OSystem::GraphicsMode s_supportedGraphicsModes[] = { + {"1x", "Normal", GFX_NORMAL}, + {0, 0, 0} +}; + +const OSystem::GraphicsMode *OpenGLGraphicsManager::getSupportedGraphicsModes() const { + return s_supportedGraphicsModes; +} + +int OpenGLGraphicsManager::getDefaultGraphicsMode() const { + return 0; +} + +bool OpenGLGraphicsManager::setGraphicsMode(int mode) { + return false; +} + +int OpenGLGraphicsManager::getGraphicsMode() const { + return 0; +} + +#ifdef USE_RGB_COLOR + +Graphics::PixelFormat OpenGLGraphicsManager::getScreenFormat() const { + return Graphics::PixelFormat(); +} + +Common::List<Graphics::PixelFormat> OpenGLGraphicsManager::getSupportedFormats() { + return Common::List<Graphics::PixelFormat>(); +} + +#endif + +void OpenGLGraphicsManager::initSize(uint width, uint height, const Graphics::PixelFormat *format) { + +} + +int OpenGLGraphicsManager::getScreenChangeID() const { + return 0; +} + +// +// GFX +// + +void OpenGLGraphicsManager::beginGFXTransaction() { + +} + +OSystem::TransactionError OpenGLGraphicsManager::endGFXTransaction() { + return OSystem::kTransactionSuccess; +} + +// +// Screen +// + +int16 OpenGLGraphicsManager::getHeight() { + return 0; +} + +int16 OpenGLGraphicsManager::getWidth() { + return 0; +} + +void OpenGLGraphicsManager::setPalette(const byte *colors, uint start, uint num) { + +} + +void OpenGLGraphicsManager::grabPalette(byte *colors, uint start, uint num) { + +} + +void OpenGLGraphicsManager::copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h) { + +} + +Graphics::Surface *OpenGLGraphicsManager::lockScreen() { + _lockedScreen = Graphics::Surface(); + return &_lockedScreen; +} + +void OpenGLGraphicsManager::unlockScreen() { + +} + +void OpenGLGraphicsManager::fillScreen(uint32 col) { + +} + +void OpenGLGraphicsManager::updateScreen() { + +} + +void OpenGLGraphicsManager::setShakePos(int shakeOffset) { + +} + +void OpenGLGraphicsManager::setFocusRectangle(const Common::Rect& rect) { + +} + +void OpenGLGraphicsManager::clearFocusRectangle() { + +} + +// +// Overlay +// + +void OpenGLGraphicsManager::showOverlay() { + +} + +void OpenGLGraphicsManager::hideOverlay() { + +} + +Graphics::PixelFormat OpenGLGraphicsManager::getOverlayFormat() const { + return Graphics::PixelFormat(); +} + +void OpenGLGraphicsManager::clearOverlay() { + +} + +void OpenGLGraphicsManager::grabOverlay(OverlayColor *buf, int pitch) { + +} + +void OpenGLGraphicsManager::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) { + +} + +int16 OpenGLGraphicsManager::getOverlayHeight() { + return 0; +} + +int16 OpenGLGraphicsManager::getOverlayWidth() { + return 0; +} + +// +// Cursor +// + +bool OpenGLGraphicsManager::showMouse(bool visible) { + return false; +} + +void OpenGLGraphicsManager::warpMouse(int x, int y) { + +} + +void OpenGLGraphicsManager::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale, const Graphics::PixelFormat *format) { + +} + +void OpenGLGraphicsManager::setCursorPalette(const byte *colors, uint start, uint num) { + +} + +void OpenGLGraphicsManager::disableCursorPalette(bool disable) { + +} + +// +// Misc +// + +void OpenGLGraphicsManager::displayMessageOnOSD(const char *msg) { + +} diff --git a/backends/graphics/opengl/opengl-graphics.h b/backends/graphics/opengl/opengl-graphics.h new file mode 100644 index 0000000000..9da8b16242 --- /dev/null +++ b/backends/graphics/opengl/opengl-graphics.h @@ -0,0 +1,97 @@ +/* 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 BACKENDS_GRAPHICS_OPENGL_H +#define BACKENDS_GRAPHICS_OPENGL_H + +#include "backends/graphics/graphics.h" + +#include "graphics/surface.h" + +enum { + GFX_NORMAL = 0, +}; + +/** + * Open GL graphics manager + */ +class OpenGLGraphicsManager : public GraphicsManager { +public: + OpenGLGraphicsManager(); + virtual ~OpenGLGraphicsManager(); + + virtual bool hasFeature(OSystem::Feature f); + virtual void setFeatureState(OSystem::Feature f, bool enable); + virtual bool getFeatureState(OSystem::Feature f); + + virtual const OSystem::GraphicsMode *getSupportedGraphicsModes() const; + virtual int getDefaultGraphicsMode() const; + virtual bool setGraphicsMode(int mode); + virtual int getGraphicsMode() const; +#ifdef USE_RGB_COLOR + virtual Graphics::PixelFormat getScreenFormat() const; + virtual Common::List<Graphics::PixelFormat> getSupportedFormats(); +#endif + virtual void initSize(uint width, uint height, const Graphics::PixelFormat *format = NULL); + virtual int getScreenChangeID() const; + + virtual void beginGFXTransaction(); + virtual OSystem::TransactionError endGFXTransaction(); + + virtual int16 getHeight(); + virtual int16 getWidth(); + virtual void setPalette(const byte *colors, uint start, uint num); + virtual void grabPalette(byte *colors, uint start, uint num); + virtual void copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h); + virtual Graphics::Surface *lockScreen(); + virtual void unlockScreen(); + virtual void fillScreen(uint32 col); + virtual void updateScreen(); + virtual void setShakePos(int shakeOffset); + virtual void setFocusRectangle(const Common::Rect& rect); + virtual void clearFocusRectangle(); + + virtual void showOverlay(); + virtual void hideOverlay(); + virtual Graphics::PixelFormat getOverlayFormat() const; + virtual void clearOverlay(); + virtual void grabOverlay(OverlayColor *buf, int pitch); + virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h); + virtual int16 getOverlayHeight(); + virtual int16 getOverlayWidth(); + + virtual bool showMouse(bool visible); + virtual void warpMouse(int x, int y); + virtual void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale = 1, const Graphics::PixelFormat *format = NULL); + virtual void setCursorPalette(const byte *colors, uint start, uint num); + virtual void disableCursorPalette(bool disable); + + virtual void displayMessageOnOSD(const char *msg); + +protected: + Graphics::Surface _lockedScreen; +}; + +#endif |