diff options
31 files changed, 258 insertions, 129 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2d7791adf..b43e52a45 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -957,8 +957,12 @@ SET(SRCS render/graphics.h graphicsmanager.cpp graphicsmanager.h - render/vertexes/graphicsvertexes.cpp - render/vertexes/graphicsvertexes.h + render/vertexes/imagecollection.cpp + render/vertexes/imagecollection.h + render/vertexes/imagevertexes.cpp + render/vertexes/imagevertexes.h + render/vertexes/openglgraphicsvertexes.cpp + render/vertexes/openglgraphicsvertexes.h guild.cpp guild.h enums/commandtarget.h @@ -1349,8 +1353,12 @@ SET(DYE_CMD_SRCS configuration.h graphicsmanager.cpp graphicsmanager.h - render/vertexes/graphicsvertexes.cpp - render/vertexes/graphicsvertexes.h + render/vertexes/imagecollection.cpp + render/vertexes/imagecollection.h + render/vertexes/imagevertexes.cpp + render/vertexes/imagevertexes.h + render/vertexes/openglgraphicsvertexes.cpp + render/vertexes/openglgraphicsvertexes.h logger.cpp logger.h navigationmanager.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 15eeb379e..2fcea1281 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -523,8 +523,12 @@ SRC += events/actionevent.h \ render/graphics.h \ graphicsmanager.cpp \ graphicsmanager.h \ - render/vertexes/graphicsvertexes.cpp \ - render/vertexes/graphicsvertexes.h \ + render/vertexes/imagecollection.cpp \ + render/vertexes/imagecollection.h \ + render/vertexes/imagevertexes.cpp \ + render/vertexes/imagevertexes.h \ + render/vertexes/openglgraphicsvertexes.cpp \ + render/vertexes/openglgraphicsvertexes.h \ events/inputevent.h \ input/inputactiondata.h \ input/inputactionoperators.cpp \ diff --git a/src/gui/widgets/avatarlistbox.cpp b/src/gui/widgets/avatarlistbox.cpp index 18e8c8a49..bd71e1ff9 100644 --- a/src/gui/widgets/avatarlistbox.cpp +++ b/src/gui/widgets/avatarlistbox.cpp @@ -41,7 +41,7 @@ #include "gui/windows/chatwindow.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index 563d6aa0c..3fe272a2e 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -78,7 +78,7 @@ #include "render/renderers.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "utils/delete2.h" diff --git a/src/gui/widgets/emotepage.cpp b/src/gui/widgets/emotepage.cpp index e1f25a19c..0791c37fc 100644 --- a/src/gui/widgets/emotepage.cpp +++ b/src/gui/widgets/emotepage.cpp @@ -22,7 +22,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/imageset.h" #include "resources/resourcemanager.h" diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index fbe213964..d49b16c18 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -59,7 +59,7 @@ #include "utils/gettext.h" #include "utils/stringutils.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/iteminfo.h" diff --git a/src/gui/widgets/popup.cpp b/src/gui/widgets/popup.cpp index d48921056..ba3d4739e 100644 --- a/src/gui/widgets/popup.cpp +++ b/src/gui/widgets/popup.cpp @@ -32,7 +32,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "debug.h" diff --git a/src/gui/widgets/progressbar.cpp b/src/gui/widgets/progressbar.cpp index 9456b835a..9b1ba0e05 100644 --- a/src/gui/widgets/progressbar.cpp +++ b/src/gui/widgets/progressbar.cpp @@ -33,7 +33,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "debug.h" diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp index 8d003e9f3..db3de4874 100644 --- a/src/gui/widgets/scrollarea.cpp +++ b/src/gui/widgets/scrollarea.cpp @@ -75,7 +75,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/gui/widgets/shortcutcontainer.cpp b/src/gui/widgets/shortcutcontainer.cpp index 392895f65..c39cec66e 100644 --- a/src/gui/widgets/shortcutcontainer.cpp +++ b/src/gui/widgets/shortcutcontainer.cpp @@ -32,7 +32,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "debug.h" diff --git a/src/gui/widgets/slider.cpp b/src/gui/widgets/slider.cpp index e7d14ac59..9b21c0bab 100644 --- a/src/gui/widgets/slider.cpp +++ b/src/gui/widgets/slider.cpp @@ -76,7 +76,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "debug.h" diff --git a/src/gui/widgets/tabs/tab.cpp b/src/gui/widgets/tabs/tab.cpp index 707e0dffe..a7568a4ca 100644 --- a/src/gui/widgets/tabs/tab.cpp +++ b/src/gui/widgets/tabs/tab.cpp @@ -73,7 +73,7 @@ #include "gui/widgets/label.h" #include "gui/widgets/tabbedarea.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index c8535b197..a1f4c4661 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -93,7 +93,7 @@ #include "render/renderers.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "utils/delete2.h" diff --git a/src/gui/windows/equipmentwindow.cpp b/src/gui/windows/equipmentwindow.cpp index 79095b301..3aa4ca241 100644 --- a/src/gui/windows/equipmentwindow.cpp +++ b/src/gui/windows/equipmentwindow.cpp @@ -41,7 +41,7 @@ #include "gui/widgets/playerbox.h" #include "gui/widgets/tabstrip.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/equipmentslots.h" #include "resources/imageset.h" diff --git a/src/input/touch/touchmanager.cpp b/src/input/touch/touchmanager.cpp index 4b363e09d..904fd4ba2 100644 --- a/src/input/touch/touchmanager.cpp +++ b/src/input/touch/touchmanager.cpp @@ -37,7 +37,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/mobileopengl2graphics.cpp b/src/render/mobileopengl2graphics.cpp index 7e40f4139..5feaa0d2e 100644 --- a/src/render/mobileopengl2graphics.cpp +++ b/src/render/mobileopengl2graphics.cpp @@ -35,7 +35,7 @@ #include "render/shaders/shaderprogram.h" #include "render/shaders/shadersmanager.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/mobileopenglgraphics.cpp b/src/render/mobileopenglgraphics.cpp index b3aca8ed8..c8d4a93d4 100644 --- a/src/render/mobileopenglgraphics.cpp +++ b/src/render/mobileopenglgraphics.cpp @@ -31,7 +31,7 @@ #include "render/opengl/naclglfunctions.h" #endif -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/modernopenglgraphics.cpp b/src/render/modernopenglgraphics.cpp index 1cfb07690..afebaf1c5 100644 --- a/src/render/modernopenglgraphics.cpp +++ b/src/render/modernopenglgraphics.cpp @@ -35,7 +35,7 @@ #include "render/shaders/shaderprogram.h" #include "render/shaders/shadersmanager.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/normalopenglgraphics.cpp b/src/render/normalopenglgraphics.cpp index bd6aa2b38..751877bfe 100644 --- a/src/render/normalopenglgraphics.cpp +++ b/src/render/normalopenglgraphics.cpp @@ -28,7 +28,7 @@ #include "render/opengl/mgl.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/nullopenglgraphics.cpp b/src/render/nullopenglgraphics.cpp index 7203468a6..d4e878479 100644 --- a/src/render/nullopenglgraphics.cpp +++ b/src/render/nullopenglgraphics.cpp @@ -30,7 +30,7 @@ #include "logger.h" #endif -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/sdl2graphics.cpp b/src/render/sdl2graphics.cpp index 6b798eaec..babeeb6fd 100644 --- a/src/render/sdl2graphics.cpp +++ b/src/render/sdl2graphics.cpp @@ -73,7 +73,7 @@ #include "graphicsmanager.h" #include "logger.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagehelper.h" diff --git a/src/render/sdl2softwaregraphics.cpp b/src/render/sdl2softwaregraphics.cpp index a8f307124..8ba667faa 100644 --- a/src/render/sdl2softwaregraphics.cpp +++ b/src/render/sdl2softwaregraphics.cpp @@ -30,7 +30,7 @@ #include "graphicsmanager.h" #include "logger.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagehelper.h" diff --git a/src/render/sdlgraphics.cpp b/src/render/sdlgraphics.cpp index 421b2508b..6972b03da 100644 --- a/src/render/sdlgraphics.cpp +++ b/src/render/sdlgraphics.cpp @@ -32,7 +32,7 @@ #include "utils/sdlpixel.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagerect.h" diff --git a/src/render/vertexes/imagecollection.cpp b/src/render/vertexes/imagecollection.cpp new file mode 100644 index 000000000..787fe3426 --- /dev/null +++ b/src/render/vertexes/imagecollection.cpp @@ -0,0 +1,56 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2016 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/>. + */ + +#include "render/vertexes/imagecollection.h" + +#ifdef USE_OPENGL +#include "render/graphics.h" +#endif + +#include "utils/dtor.h" + +#include "debug.h" + +ImageCollection::ImageCollection() : +#ifdef USE_OPENGL + currentGLImage(0), +#endif + currentImage(nullptr), + currentVert(nullptr), + draws() +{ +} + +ImageCollection::~ImageCollection() +{ + clear(); +} + +void ImageCollection::clear() restrict2 +{ +#ifdef USE_OPENGL + currentGLImage = 0; +#endif + currentImage = nullptr; + currentVert = nullptr; + + delete_all(draws); + draws.clear(); +} diff --git a/src/render/vertexes/imagecollection.h b/src/render/vertexes/imagecollection.h new file mode 100644 index 000000000..e4567d85f --- /dev/null +++ b/src/render/vertexes/imagecollection.h @@ -0,0 +1,55 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2016 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_VERTEXES_IMAGECOLLECTION_H +#define RENDER_VERTEXES_IMAGECOLLECTION_H + +#include "main.h" + +#include "resources/rect/doublerect.h" + +#include "render/vertexes/imagevertexes.h" + +#include "localconsts.h" + +class Image; + +class ImageCollection final +{ + public: + ImageCollection(); + + A_DELETE_COPY(ImageCollection) + + ~ImageCollection(); + + void clear() restrict2; + +#ifdef USE_OPENGL + GLuint currentGLImage; +#endif + const Image *restrict currentImage; + + ImageVertexes *restrict currentVert; + + ImageVertexesVector draws; +}; + +#endif // RENDER_VERTEXES_IMAGECOLLECTION_H diff --git a/src/render/vertexes/imagevertexes.cpp b/src/render/vertexes/imagevertexes.cpp new file mode 100644 index 000000000..675078faf --- /dev/null +++ b/src/render/vertexes/imagevertexes.cpp @@ -0,0 +1,41 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2016 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/>. + */ + +#include "render/vertexes/imagevertexes.h" + +#include "utils/dtor.h" + +#include "debug.h" + +ImageVertexes::ImageVertexes() : + image(nullptr), +#ifdef USE_OPENGL + ogl(), +#endif + sdl() +{ + sdl.reserve(30); +} + +ImageVertexes::~ImageVertexes() +{ + delete_all(sdl); + sdl.clear(); +} diff --git a/src/render/vertexes/imagevertexes.h b/src/render/vertexes/imagevertexes.h new file mode 100644 index 000000000..eb6205d98 --- /dev/null +++ b/src/render/vertexes/imagevertexes.h @@ -0,0 +1,56 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2016 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_VERTEXES_IMAGEVERTEXES_H +#define RENDER_VERTEXES_IMAGEVERTEXES_H + +#include "resources/rect/doublerect.h" + +#include "render/vertexes/openglgraphicsvertexes.h" + +#include <vector> + +#include "localconsts.h" + +class Image; + +typedef std::vector<DoubleRect*> DoubleRects; + +class ImageVertexes final +{ + public: + ImageVertexes(); + + A_DELETE_COPY(ImageVertexes) + + ~ImageVertexes(); + + const Image *restrict image; +#ifdef USE_OPENGL + OpenGLGraphicsVertexes ogl; +#endif + DoubleRects sdl; +}; + +typedef std::vector<ImageVertexes*> ImageVertexesVector; +typedef ImageVertexesVector::iterator ImageCollectionIter; +typedef ImageVertexesVector::const_iterator ImageCollectionCIter; + +#endif // RENDER_VERTEXES_IMAGEVERTEXES_H diff --git a/src/render/vertexes/graphicsvertexes.cpp b/src/render/vertexes/openglgraphicsvertexes.cpp index d2cd830af..d111860d1 100644 --- a/src/render/vertexes/graphicsvertexes.cpp +++ b/src/render/vertexes/openglgraphicsvertexes.cpp @@ -18,17 +18,16 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "render/vertexes/graphicsvertexes.h" - #ifdef USE_OPENGL + +#include "render/vertexes/imagecollection.h" + #include "render/graphics.h" -#endif #include "utils/dtor.h" #include "debug.h" -#ifdef USE_OPENGL unsigned int vertexBufSize = 500; OpenGLGraphicsVertexes::OpenGLGraphicsVertexes() : @@ -226,46 +225,3 @@ GLint *OpenGLGraphicsVertexes::continueIntTexArray() restrict2 return mIntTexArray; } #endif - -ImageVertexes::ImageVertexes() : - image(nullptr), -#ifdef USE_OPENGL - ogl(), -#endif - sdl() -{ - sdl.reserve(30); -} - -ImageVertexes::~ImageVertexes() -{ - delete_all(sdl); - sdl.clear(); -} - -ImageCollection::ImageCollection() : -#ifdef USE_OPENGL - currentGLImage(0), -#endif - currentImage(nullptr), - currentVert(nullptr), - draws() -{ -} - -ImageCollection::~ImageCollection() -{ - clear(); -} - -void ImageCollection::clear() restrict2 -{ -#ifdef USE_OPENGL - currentGLImage = 0; -#endif - currentImage = nullptr; - currentVert = nullptr; - - delete_all(draws); - draws.clear(); -} diff --git a/src/render/vertexes/graphicsvertexes.h b/src/render/vertexes/openglgraphicsvertexes.h index d9e7e1694..b27ccb095 100644 --- a/src/render/vertexes/graphicsvertexes.h +++ b/src/render/vertexes/openglgraphicsvertexes.h @@ -18,15 +18,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef GRAPHICSVERTEXES_H -#define GRAPHICSVERTEXES_H - -#include "main.h" - -#include "resources/rect/doublerect.h" +#ifndef RENDER_VERTEXES_OPENGLGRAPHICSVERTEXES_H +#define RENDER_VERTEXES_OPENGLGRAPHICSVERTEXES_H #ifdef USE_OPENGL +#include "main.h" + #ifdef ANDROID #include <GLES/gl.h> #else @@ -108,53 +106,8 @@ class OpenGLGraphicsVertexes final std::vector<GLint*> mIntTexPool; std::vector<GLuint> mVbo; }; -#endif - -typedef std::vector<DoubleRect*> DoubleRects; - -class ImageVertexes final -{ - public: - ImageVertexes(); - - A_DELETE_COPY(ImageVertexes) - - ~ImageVertexes(); - - const Image *restrict image; -#ifdef USE_OPENGL - OpenGLGraphicsVertexes ogl; -#endif - DoubleRects sdl; -}; -typedef std::vector<ImageVertexes*> ImageVertexesVector; -typedef ImageVertexesVector::iterator ImageCollectionIter; -typedef ImageVertexesVector::const_iterator ImageCollectionCIter; - -class ImageCollection final -{ - public: - ImageCollection(); - - A_DELETE_COPY(ImageCollection) - - ~ImageCollection(); - - void clear() restrict2; - -#ifdef USE_OPENGL - GLuint currentGLImage; -#endif - const Image *restrict currentImage; - - ImageVertexes *restrict currentVert; - - ImageVertexesVector draws; -}; - -#ifdef USE_OPENGL extern unsigned int vertexBufSize; -#endif +#endif // USE_OPENGL -#endif // GRAPHICSVERTEXES_H +#endif // RENDER_VERTEXES_OPENGLGRAPHICSVERTEXES_H diff --git a/src/resources/map/maprowvertexes.h b/src/resources/map/maprowvertexes.h index 38823ed5f..8d13d35c3 100644 --- a/src/resources/map/maprowvertexes.h +++ b/src/resources/map/maprowvertexes.h @@ -23,7 +23,7 @@ #include "utils/dtor.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagevertexes.h" #include "localconsts.h" diff --git a/src/test/testlauncher.cpp b/src/test/testlauncher.cpp index 25efabb43..2210e3c33 100644 --- a/src/test/testlauncher.cpp +++ b/src/test/testlauncher.cpp @@ -38,7 +38,7 @@ #include "render/graphics.h" -#include "render/vertexes/graphicsvertexes.h" +#include "render/vertexes/imagecollection.h" #include "resources/image.h" #include "resources/imagewriter.h" |