aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorAlejandro Marzini2010-07-05 03:21:48 +0000
committerAlejandro Marzini2010-07-05 03:21:48 +0000
commit30136589f05498f160c3a7e9e92be0aef066bf79 (patch)
treefaf6721d57e93a8688829ccb7b1437097760b9ce /backends
parent3c607ef28958a155802ac77af5fa87e04fbe170e (diff)
downloadscummvm-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.cpp228
-rw-r--r--backends/graphics/opengl/opengl-graphics.h97
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