diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-06-29 23:02:41 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-06-29 23:02:41 +0300 |
commit | d02762b6dc35e1564e5d1cc7458458f824f251f9 (patch) | |
tree | c4ba5c106eab0561d7fd82b5cc076ecae3306823 | |
parent | be877e12682b6f0e697b024f96a1dcaf4d0c8206 (diff) | |
download | manaplus-d02762b6dc35e1564e5d1cc7458458f824f251f9.tar.gz manaplus-d02762b6dc35e1564e5d1cc7458458f824f251f9.tar.bz2 manaplus-d02762b6dc35e1564e5d1cc7458458f824f251f9.tar.xz manaplus-d02762b6dc35e1564e5d1cc7458458f824f251f9.zip |
Add imagegraphics for drawing into texture/image.
For now it empty.
-rw-r--r-- | src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/render/imagegraphics.cpp | 71 | ||||
-rw-r--r-- | src/render/imagegraphics.h | 204 |
4 files changed, 279 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c96f270c9..a251f51ce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -872,6 +872,8 @@ SET(SRCS notifymanager.h options.h render/graphicsdef.hpp + render/imagegraphics.cpp + render/imagegraphics.h render/graphics_calcImageRect.hpp render/graphics_drawImageRect.hpp render/nullopenglgraphics.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 3ae2d24be..d34fe7ee6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -989,6 +989,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ notifymanager.h \ options.h \ render/graphicsdef.hpp \ + render/imagegraphics.cpp \ + render/imagegraphics.h \ render/graphics_calcImageRect.hpp \ render/graphics_drawImageRect.hpp \ render/nullopenglgraphics.cpp \ diff --git a/src/render/imagegraphics.cpp b/src/render/imagegraphics.cpp new file mode 100644 index 000000000..8f9cd8943 --- /dev/null +++ b/src/render/imagegraphics.cpp @@ -0,0 +1,71 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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 + * 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, see <http://www.gnu.org/licenses/>. + */ + +#ifdef USE_OPENGL + +#include "render/imagegraphics.h" + +#include "main.h" + +#include "resources/image.h" + +#include "debug.h" + +ImegeGraphics::ImegeGraphics() : + Graphics(), + mTarget(nullptr) +{ + mOpenGL = RENDER_SOFTWARE; + mName = "Image"; +} + +ImegeGraphics::~ImegeGraphics() +{ +} + +bool ImegeGraphics::drawImage(const Image *const image A_UNUSED, + int dstX A_UNUSED, int dstY A_UNUSED) +{ + // for now not implimented + return false; +} + +bool ImegeGraphics::copyImage(const Image *const image, + int dstX A_UNUSED, int dstY A_UNUSED) +{ + if (!mTarget || !image) + return false; + + return false; +} + +void ImegeGraphics::drawImageCached(const Image *const image, + int x, int y) +{ + drawImage(image, x, y); +} + +void ImegeGraphics::completeCache() +{ +} + +#endif // USE_OPENGL diff --git a/src/render/imagegraphics.h b/src/render/imagegraphics.h new file mode 100644 index 000000000..5d55fb2bb --- /dev/null +++ b/src/render/imagegraphics.h @@ -0,0 +1,204 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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 + * 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, see <http://www.gnu.org/licenses/>. + */ + +#ifndef RENDER_IMAGEGRAPHICS_H +#define RENDER_IMAGEGRAPHICS_H + +#ifdef USE_OPENGL + +#include "render/graphics.h" + +#include "localconsts.h" + +class Image; +class ImageCollection; +class ImageVertexes; + +struct SDL_Surface; + +/** + * A central point of control for graphics. + */ +class ImegeGraphics final : public Graphics +{ + public: + ImegeGraphics(); + + A_DELETE_COPY(ImegeGraphics) + + ~ImegeGraphics(); + + void setTarget(Image *const target) + { mTarget = target; } + + Image *getTarget() const + { return mTarget; } + + void beginDraw() override final + { } + + void endDraw() override final + { } + + bool pushClipArea(const Rect &rect A_UNUSED) override final + { return true; } + + void popClipArea() override final + { } + + bool drawRescaledImage(const Image *const image A_UNUSED, + int dstX A_UNUSED, int dstY A_UNUSED, + const int desiredWidth A_UNUSED, + const int desiredHeight A_UNUSED) + override final + { return false; } + + void drawPattern(const Image *const image A_UNUSED, + const int x A_UNUSED, + const int y A_UNUSED, + const int w A_UNUSED, + const int h A_UNUSED) override final + { } + + void drawRescaledPattern(const Image *const image A_UNUSED, + const int x A_UNUSED, + const int y A_UNUSED, + const int w A_UNUSED, + const int h A_UNUSED, + const int scaledWidth A_UNUSED, + const int scaledHeight A_UNUSED) + override final + { } + + void calcPattern(ImageVertexes *const vert A_UNUSED, + const Image *const image A_UNUSED, + const int x A_UNUSED, + const int y A_UNUSED, + const int w A_UNUSED, + const int h A_UNUSED) const override final + { } + + void calcPattern(ImageCollection *const vert A_UNUSED, + const Image *const image A_UNUSED, + const int x A_UNUSED, + const int y A_UNUSED, + const int w A_UNUSED, + const int h A_UNUSED) const override final + { } + + void calcTileVertexes(ImageVertexes *const vert A_UNUSED, + const Image *const image A_UNUSED, + int x A_UNUSED, + int y A_UNUSED) const override final + { } + + void calcTileSDL(ImageVertexes *const vert A_UNUSED, + int x A_UNUSED, int y A_UNUSED) const override final + { } + + void calcTileCollection(ImageCollection *const vertCol A_UNUSED, + const Image *const image A_UNUSED, + int x A_UNUSED, int y A_UNUSED) override final + { } + + void drawTileVertexes(const ImageVertexes *const + vert A_UNUSED) override final + { } + + void drawTileCollection(const ImageCollection *const vertCol A_UNUSED) + override final + { } + + void updateScreen() + { } + + SDL_Surface *getScreenshot() override final A_WARN_UNUSED + { return nullptr; } + + bool drawNet(const int x1 A_UNUSED, + const int y1 A_UNUSED, + const int x2 A_UNUSED, + const int y2 A_UNUSED, + const int width A_UNUSED, + const int height A_UNUSED) override final + { return false; } + + void calcWindow(ImageCollection *const vertCol A_UNUSED, + const int x A_UNUSED, const int y A_UNUSED, + const int w A_UNUSED, const int h A_UNUSED, + const ImageRect &imgRect A_UNUSED) override final + { } + + void fillRectangle(const Rect &rect A_UNUSED) override final + { } + + void drawRectangle(const Rect &rect A_UNUSED) override final + { } + + void drawPoint(int x A_UNUSED, int y A_UNUSED) override final + { } + + void drawLine(int x1 A_UNUSED, int y1 A_UNUSED, + int x2 A_UNUSED, int y2 A_UNUSED) override final + { } + + bool setVideoMode(const int w A_UNUSED, const int h A_UNUSED, + const int scale A_UNUSED, + const int bpp A_UNUSED, + const bool fs A_UNUSED, const bool hwaccel A_UNUSED, + const bool resize A_UNUSED, + const bool noFrame A_UNUSED) override final + { return false; } + + bool drawImage(const Image *const image, + int dstX, int dstY) override final; + + bool copyImage(const Image *const image, + int dstX, int dstY) override final; + + void drawImageCached(const Image *const image, + int x, int y) override final; + + void drawPatternCached(const Image *const image A_UNUSED, + const int x A_UNUSED, + const int y A_UNUSED, + const int w A_UNUSED, + const int h A_UNUSED) override final + { } + + void completeCache() override final; + + /** + * Draws a rectangle using images. 4 corner images, 4 side images and 1 + * image for the inside. + */ + void drawImageRect(const int x A_UNUSED, const int y A_UNUSED, + const int w A_UNUSED, const int h A_UNUSED, + const ImageRect &imgRect A_UNUSED) + { } + + protected: + Image *mTarget; +}; + +#endif // USE_OPENGL +#endif // RENDER_IMAGEGRAPHICS_H |