Base class for OpenGL graphics manager.

svn-id: r50668
This commit is contained in:
Alejandro Marzini 2010-07-05 03:21:48 +00:00
parent 3c607ef289
commit 30136589f0
2 changed files with 325 additions and 0 deletions

View file

@ -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) {
}

View file

@ -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