ManaPlus
sdlimagehelper.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef RESOURCES_SDLIMAGEHELPER_H
25 #define RESOURCES_SDLIMAGEHELPER_H
26 
27 #ifdef USE_SDL2
29 RESOURCES_SDL2IMAGEHELPER_H
30 
31 #else
32 
33 #include "localconsts.h"
34 
35 #include "resources/imagehelper.h"
36 
37 class Dye;
38 class Image;
39 
44 {
45  friend class Image;
46 
47  public:
49  ImageHelper()
50  { }
51 
53 
54 
63  Image *load(SDL_RWops *const rw,
64  Dye const &dye) override final A_WARN_UNUSED;
65 
69  Image *loadSurface(SDL_Surface *const tmpImage) override final
71 
72  Image *createTextSurface(SDL_Surface *const tmpImage,
73  const int width, const int height,
74  const float alpha)
75  override final A_WARN_UNUSED;
76 
77  void copySurfaceToImage(const Image *const image,
78  const int x, const int y,
79  SDL_Surface *const surface)
80  const override final;
81 
82  constexpr2 static void SDLSetEnableAlphaCache(const bool n) noexcept2
83  { mEnableAlphaCache = n; }
84 
86  { return mEnableAlphaCache; }
87 
88  static SDL_Surface* SDLDuplicateSurface(SDL_Surface *const tmpImage)
90 
91  static int combineSurface(SDL_Surface *restrict const src,
92  SDL_Rect *restrict const srcrect,
93  SDL_Surface *restrict const dst,
94  SDL_Rect *restrict const dstrect);
95 
96  protected:
98  static Image *_SDLload(SDL_Surface *tmpImage);
99 
100  static bool mEnableAlphaCache;
101 };
102 
103 #endif // USE_SDL2
104 #endif // RESOURCES_SDLIMAGEHELPER_H
Definition: dye.h:41
static Image * _SDLload(SDL_Surface *tmpImage)
static void SDLSetEnableAlphaCache(const bool n)
static int combineSurface(SDL_Surface *const src, SDL_Rect *const srcrect, SDL_Surface *const dst, SDL_Rect *const dstrect)
static bool SDLGetEnableAlphaCache()
static SDL_Surface * SDLDuplicateSurface(SDL_Surface *const tmpImage)
void copySurfaceToImage(const Image *const image, const int x, const int y, SDL_Surface *const surface) const
Image * createTextSurface(SDL_Surface *const tmpImage, const int width, const int height, const float alpha)
Image * load(SDL_RWops *const rw, Dye const &dye)
static bool mEnableAlphaCache
Image * loadSurface(SDL_Surface *const tmpImage)
#define restrict
Definition: localconsts.h:165
#define constexpr2
Definition: localconsts.h:49
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define noexcept2
Definition: localconsts.h:50
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53