#include <surface.hpp>
Public Member Functions | |
surface () | |
surface (SDL_Surface *surf) | |
surface (int w, int h) | |
Allocates a new surface with the given dimensions. More... | |
surface (const surface &s) | |
surface (surface &&s) noexcept | |
~surface () | |
surface & | operator= (const surface &s) |
surface & | operator= (surface &&s) noexcept |
bool | is_neutral () const |
Check that the surface is neutral bpp 32. More... | |
surface & | make_neutral () |
Converts this surface to a neutral format if it is not already. More... | |
surface | clone () const |
Makes a copy of this surface. More... | |
int | area () const |
Total area of the surface in square pixels. More... | |
operator SDL_Surface * () const | |
SDL_Surface * | get () const |
SDL_Surface * | operator-> () const |
Private Member Functions | |
void | assign_surface_internal (SDL_Surface *surf) |
void | free_surface () |
Static Private Member Functions | |
static void | add_surface_ref (SDL_Surface *surf) |
Private Attributes | |
SDL_Surface * | surface_ |
Static Private Attributes | |
static const SDL_PixelFormat | neutral_pixel_format |
Definition at line 24 of file surface.hpp.
|
inline |
Definition at line 27 of file surface.hpp.
Referenced by clone().
surface::surface | ( | SDL_Surface * | surf | ) |
Definition at line 24 of file surface.cpp.
References make_neutral().
surface::surface | ( | int | w, |
int | h | ||
) |
Allocates a new surface with the given dimensions.
Definition at line 30 of file surface.cpp.
References h, neutral_pixel_format, surface_, and w.
|
inline |
Definition at line 35 of file surface.hpp.
References add_surface_ref(), and surface_.
|
inlinenoexcept |
Definition at line 40 of file surface.hpp.
References s.
|
inline |
Definition at line 45 of file surface.hpp.
References free_surface().
|
inlinestaticprivate |
Definition at line 102 of file surface.hpp.
References surf.
Referenced by assign_surface_internal(), and surface().
|
inline |
Total area of the surface in square pixels.
Definition at line 90 of file surface.hpp.
References surface_.
Referenced by adjust_surface_alpha_add(), adjust_surface_color(), alpha_to_greyscale(), blend_surface(), brighten_image(), greyscale_image(), light_surface(), mask_surface(), monochrome_image(), negative_image(), recolor_image(), sepia_image(), swap_channels_image(), and wipe_alpha().
|
private |
Definition at line 69 of file surface.cpp.
References add_surface_ref(), free_surface(), make_neutral(), surf, and surface_.
Referenced by operator=().
surface surface::clone | ( | ) | const |
Makes a copy of this surface.
The copy will be in the 'neutral' pixel format.
Note this is creates a new, duplicate surface in memory. Making a copy of this 'surface' object will not duplicate the surface itself since we only hold a pointer to the actual surface.
Definition at line 63 of file surface.cpp.
References neutral_pixel_format, surface(), and surface_.
Referenced by image::apply_light(), image::get_hexed(), image::get_tod_colored(), image::is_empty_hex(), image::load_image_sub_file(), and rotate_180_surface().
|
private |
Definition at line 77 of file surface.cpp.
References surface_.
Referenced by assign_surface_internal(), make_neutral(), operator=(), and ~surface().
|
inline |
Definition at line 97 of file surface.hpp.
References surface_.
Referenced by clip_rect_setter::clip_rect_setter(), operator<<(), and clip_rect_setter::~clip_rect_setter().
bool surface::is_neutral | ( | ) | const |
Check that the surface is neutral bpp 32.
The surface may have an empty alpha channel.
true
if neutral, false
if not. Definition at line 40 of file surface.cpp.
References SDL_ALPHA_MASK, SDL_RED_MASK, and surface_.
Referenced by make_neutral().
surface & surface::make_neutral | ( | ) |
Converts this surface to a neutral format if it is not already.
Definition at line 49 of file surface.cpp.
References free_surface(), is_neutral(), neutral_pixel_format, and surface_.
Referenced by assign_surface_internal(), and surface().
|
inline |
Definition at line 95 of file surface.hpp.
References surface_.
|
inline |
Definition at line 99 of file surface.hpp.
References surface_.
Definition at line 50 of file surface.hpp.
References assign_surface_internal(), and s.
Definition at line 56 of file surface.hpp.
References free_surface(), s, and surface_.
|
staticprivate |
Definition at line 115 of file surface.hpp.
Referenced by clone(), make_neutral(), and surface().
|
private |
Definition at line 113 of file surface.hpp.
Referenced by area(), assign_surface_internal(), clone(), free_surface(), get(), is_neutral(), make_neutral(), operator SDL_Surface *(), operator->(), operator=(), and surface().