39 RendererInitOptions(
const u32
sdl_flags,
const u32
sdl_render_flags,
const u32 w =
ScreenWidth,
const u32 h =
ScreenHeight) :
sdl_flags(
sdl_flags),
sdl_render_flags(
sdl_render_flags),
width(w),
height(h),
init_ttf(false),
extra_default_font_sizes(),
default_font_path(),
init_mixer(false),
audio_mixer_flags(0),
init_img(false),
sdl_img_flags(0),
init_pl(false),
init_romfs(false) {}
42 this->init_ttf =
true;
54 this->extra_default_font_sizes.push_back(font_size);
58 this->init_mixer =
true;
63 this->init_img =
true;
68 this->init_romfs =
true;
72 constexpr u32
MixerAllFlags = MIX_INIT_FLAC | MIX_INIT_MOD | MIX_INIT_MP3 | MIX_INIT_OGG;
73 constexpr u32
IMGAllFlags = IMG_INIT_PNG | IMG_INIT_JPG | IMG_INIT_TIF | IMG_INIT_WEBP;
112 inline u8 GetActualAlpha(
const u8 input_a) {
113 if(this->base_a >= 0) {
114 return static_cast<u8
>(this->base_a);
122 Renderer(
const RendererInitOptions init_opts) : init_opts(init_opts), ok_romfs(false), ok_pl(false), initialized(false), base_x(0), base_y(0), base_a(0) {}
129 return this->initialized;
133 return this->ok_romfs;
143 this->
RenderRectangleFill(clr, x - border_width, y - border_width, width + (border_width * 2), height + (border_width * 2));
162 this->base_a = alpha;
180 bool AddSharedFont(
const std::string &font_name,
const u32 font_size,
const PlSharedFontType type);
182 bool AddFontFile(
const std::string &font_name,
const u32 font_size,
const std::string &path);
Definition: render_Renderer.hpp:102
void ResetBaseRenderAlpha()
Definition: render_Renderer.hpp:165
void RenderCircle(const Color clr, const i32 x, const i32 y, const i32 radius)
void RenderRectangleOutline(const Color clr, const i32 x, const i32 y, const i32 width, const i32 height, const i32 border_width)
Definition: render_Renderer.hpp:142
void RenderRectangle(const Color clr, const i32 x, const i32 y, const i32 width, const i32 height)
Renderer(const RendererInitOptions init_opts)
Definition: render_Renderer.hpp:122
void RenderShadowSimple(const i32 x, const i32 y, const i32 width, const i32 height, const i32 base_alpha, const u8 main_alpha=0xFF)
void RenderRoundedRectangle(const Color clr, const i32 x, const i32 y, const i32 width, const i32 height, const i32 radius)
bool HasRomFs()
Definition: render_Renderer.hpp:132
void SetBaseRenderAlpha(const u8 alpha)
Definition: render_Renderer.hpp:161
void RenderRectangleFill(const Color clr, const i32 x, const i32 y, const i32 width, const i32 height)
void RenderRoundedRectangleFill(const Color clr, const i32 x, const i32 y, const i32 width, const i32 height, const i32 radius)
void RenderCircleFill(const Color clr, const i32 x, const i32 y, const i32 radius)
void ResetBaseRenderPosition()
Definition: render_Renderer.hpp:157
void RenderTexture(sdl2::Texture texture, const i32 x, const i32 y, const TextureRenderOptions opts=TextureRenderOptions::Default)
void SetBaseRenderPosition(const i32 x, const i32 y)
Definition: render_Renderer.hpp:152
void InitializeRender(const Color clr)
bool HasInitialized()
Definition: render_Renderer.hpp:128
SDL_Surface * Surface
Definition: sdl2_Types.hpp:15
SDL_Renderer * Renderer
Definition: sdl2_Types.hpp:13
SDL_Window * Window
Definition: sdl2_Types.hpp:12
SDL_Texture * Texture
Definition: sdl2_Types.hpp:11
Definition: render_Renderer.hpp:19
constexpr u32 MixerAllFlags
Definition: render_Renderer.hpp:72
sdl2::Window GetMainWindow()
sdl2::Texture RenderText(const std::string &font_name, const std::string &text, const Color clr)
bool AddFontFile(const std::string &font_name, const u32 font_size, const std::string &path)
sdl2::Surface GetMainSurface()
void AddDefaultFontFromFile(const u32 font_size, const std::string &path)
Definition: render_Renderer.hpp:188
bool AddSharedFont(const std::string &font_name, const u32 font_size, const PlSharedFontType type)
constexpr u32 RendererSoftwareFlags
Definition: render_Renderer.hpp:74
bool AddAllSharedFonts(const std::string &font_name, const u32 font_size)
i32 GetTextWidth(const std::string &font_name, const std::string &text)
std::pair< u32, u32 > GetDimensions()
sdl2::Renderer GetMainRenderer()
constexpr u32 IMGAllFlags
Definition: render_Renderer.hpp:73
i32 GetTextHeight(const std::string &font_name, const std::string &text)
void AddDefaultFontFromShared(const u32 font_size)
Definition: render_Renderer.hpp:184
constexpr u32 ScreenWidth
Definition: render_Renderer.hpp:21
constexpr u32 RendererHardwareFlags
Definition: render_Renderer.hpp:75
constexpr u32 ScreenHeight
Definition: render_Renderer.hpp:22
std::string MakeDefaultFontName(const u32 font_size)
Definition: ui_Types.hpp:32
s32 i32
Definition: pu_Include.hpp:28
#define PU_SMART_CTOR(type)
Definition: pu_Include.hpp:19
Definition: ui_Types.hpp:44
Definition: render_Renderer.hpp:24
u32 height
Definition: render_Renderer.hpp:28
std::vector< u32 > extra_default_font_sizes
Definition: render_Renderer.hpp:30
bool init_ttf
Definition: render_Renderer.hpp:29
void UseImage(const u32 sdl_img_flags)
Definition: render_Renderer.hpp:62
void SetExtraDefaultFontSize(const u32 font_size)
Definition: render_Renderer.hpp:53
u32 sdl_render_flags
Definition: render_Renderer.hpp:26
u32 audio_mixer_flags
Definition: render_Renderer.hpp:33
bool init_mixer
Definition: render_Renderer.hpp:32
RendererInitOptions(const u32 sdl_flags, const u32 sdl_render_flags, const u32 w=ScreenWidth, const u32 h=ScreenHeight)
Definition: render_Renderer.hpp:39
bool init_romfs
Definition: render_Renderer.hpp:37
bool init_pl
Definition: render_Renderer.hpp:36
bool init_img
Definition: render_Renderer.hpp:34
void UseTTF(const std::string &default_font_path="")
Definition: render_Renderer.hpp:41
u32 width
Definition: render_Renderer.hpp:27
std::string default_font_path
Definition: render_Renderer.hpp:31
u32 sdl_img_flags
Definition: render_Renderer.hpp:35
void UseAudio(const u32 audio_mixer_flags)
Definition: render_Renderer.hpp:57
void UseRomfs()
Definition: render_Renderer.hpp:67
u32 sdl_flags
Definition: render_Renderer.hpp:25
Definition: render_Renderer.hpp:77
float rot_angle
Definition: render_Renderer.hpp:81
static constexpr i32 NoWidth
Definition: render_Renderer.hpp:84
i32 alpha_mod
Definition: render_Renderer.hpp:78
static constexpr i32 NoAlpha
Definition: render_Renderer.hpp:83
i32 width
Definition: render_Renderer.hpp:79
static constexpr TextureRenderOptions WithCustomDimensions(const i32 width, const i32 height)
Definition: render_Renderer.hpp:92
static const TextureRenderOptions Default
Definition: render_Renderer.hpp:97
static constexpr TextureRenderOptions WithCustomAlpha(const u8 alpha)
Definition: render_Renderer.hpp:88
i32 height
Definition: render_Renderer.hpp:80
static constexpr float NoRotation
Definition: render_Renderer.hpp:86
static constexpr i32 NoHeight
Definition: render_Renderer.hpp:85