1#ifndef SDL3PP_RENDER_H_
2#define SDL3PP_RENDER_H_
4#include <SDL3/SDL_render.h>
5#include "SDL3pp_blendmode.h"
6#include "SDL3pp_events.h"
8#include "SDL3pp_pixels.h"
9#include "SDL3pp_video.h"
68#if SDL_VERSION_ATLEAST(3, 3, 6)
98#if SDL_VERSION_ATLEAST(3, 4, 0)
124 SDL_TEXTUREACCESS_STATIC;
127 SDL_TEXTUREACCESS_STREAMING;
130 SDL_TEXTUREACCESS_TARGET;
132#if SDL_VERSION_ATLEAST(3, 4, 0)
148 SDL_TEXTURE_ADDRESS_INVALID;
160 SDL_TEXTURE_ADDRESS_WRAP;
172 SDL_LOGICAL_PRESENTATION_DISABLED;
176 SDL_LOGICAL_PRESENTATION_STRETCH;
183 SDL_LOGICAL_PRESENTATION_LETTERBOX;
190 SDL_LOGICAL_PRESENTATION_OVERSCAN;
197 SDL_LOGICAL_PRESENTATION_INTEGER_SCALE;
199#if SDL_VERSION_ATLEAST(3, 4, 0)
392#if SDL_VERSION_ATLEAST(3, 4, 0)
1247 void GetScale(
float* scaleX,
float* scaleY)
const;
1630 FlipMode flip = FlipMode::SDL_FLIP_NONE);
1726 float bottom_height,
1730#if SDL_VERSION_ATLEAST(3, 4, 0)
1771 float bottom_height,
1798 std::span<const Vertex> vertices,
1799 std::span<const int> indices = {});
1836 const void* indices,
1840#if SDL_VERSION_ATLEAST(3, 4, 0)
2055 Sint64 signal_semaphore);
2158 template<
class... ARGS>
2160 std::string_view fmt,
2163#if SDL_VERSION_ATLEAST(3, 4, 0)
2268 if (
auto res =
get()) ++res->refcount;
2536 ++resource->refcount;
2558 if (
get() != other.
get()) {
2702 void GetSize(
float* w,
float* h)
const;
2719#if SDL_VERSION_ATLEAST(3, 4, 0)
3161 const Uint8* Yplane,
3163 const Uint8* Uplane,
3165 const Uint8* Vplane,
3193 const Uint8* Yplane,
3195 const Uint8* UVplane,
3370 : m_lock(std::move(other.m_lock))
3398 std::swap(m_lock, other.m_lock);
3403 constexpr operator bool()
const {
return bool(m_lock); }
3499 , m_lock(std::move(other.m_lock))
3527 std::swap(m_lock, other.m_lock);
3599 return SDL_GetRenderDriver(index);
3627 title, size.x, size.y, window_flags, window, renderer));
3653 SDL_Window* windowRaw =
nullptr;
3654 SDL_Renderer* rendererRaw =
nullptr;
3656 std::move(title), size, window_flags, &windowRaw, &rendererRaw);
3657 if (window) *window =
Window{windowRaw};
3658 if (renderer) *renderer =
Renderer{rendererRaw};
3682 SDL_Window* window =
nullptr;
3683 SDL_Renderer* renderer =
nullptr;
3685 std::move(title), size, window_flags, &window, &renderer);
3713 std::move(title), size, window_flags, &window, renderer);
3761 return Renderer(window, std::move(name));
3765 :
Renderer(SDL_CreateRenderer(window, name))
3770 :
Renderer(SDL_CreateRendererWithProperties(props))
3775 :
Renderer(SDL_CreateSoftwareRenderer(surface))
3854 SDL_PROP_RENDERER_CREATE_NAME_STRING;
3857 SDL_PROP_RENDERER_CREATE_WINDOW_POINTER;
3860 SDL_PROP_RENDERER_CREATE_SURFACE_POINTER;
3863 SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER;
3867 SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER;
3869#if SDL_VERSION_ATLEAST(3, 4, 0)
3872 SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER;
3875 SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN;
3879 SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN;
3883 SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN;
3888 SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER;
3892 SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER;
3895 SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER;
3900 SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER;
3903 SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER;
3911 SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER;
3920#if SDL_VERSION_ATLEAST(3, 4, 0)
3956 return SDL_CreateGPURenderer(device, window);
3972 return SDL_GetGPURendererDevice(renderer);
4024 return CheckError(SDL_GetRenderWindow(renderer));
4045 return CheckError(SDL_GetRendererName(renderer));
4140 return CheckError(SDL_GetRendererProperties(renderer));
4161 SDL_PROP_RENDERER_NAME_STRING;
4164 SDL_PROP_RENDERER_WINDOW_POINTER;
4167 SDL_PROP_RENDERER_SURFACE_POINTER;
4170 SDL_PROP_RENDERER_VSYNC_NUMBER;
4173 SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER;
4176 SDL_PROP_RENDERER_TEXTURE_FORMATS_POINTER;
4178#if SDL_VERSION_ATLEAST(3, 4, 0)
4181 SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN;
4186 SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER;
4189 SDL_PROP_RENDERER_HDR_ENABLED_BOOLEAN;
4192 SDL_PROP_RENDERER_SDR_WHITE_POINT_FLOAT;
4195 SDL_PROP_RENDERER_HDR_HEADROOM_FLOAT;
4198 SDL_PROP_RENDERER_D3D9_DEVICE_POINTER;
4201 SDL_PROP_RENDERER_D3D11_DEVICE_POINTER;
4204 SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER;
4207 SDL_PROP_RENDERER_D3D12_DEVICE_POINTER;
4210 SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER;
4213 SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER;
4217 SDL_PROP_RENDERER_VULKAN_INSTANCE_POINTER;
4220 SDL_PROP_RENDERER_VULKAN_SURFACE_NUMBER;
4223 SDL_PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER;
4227 SDL_PROP_RENDERER_VULKAN_DEVICE_POINTER;
4230 SDL_PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER;
4237 SDL_PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER;
4243 SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER;
4247 SDL_PROP_RENDERER_GPU_DEVICE_POINTER;
4273 CheckError(SDL_GetRenderOutputSize(renderer, w, h));
4334 CheckError(SDL_GetCurrentRenderOutputSize(renderer, w, h));
4400 return Texture(renderer, format, access, size);
4414 :
Texture(SDL_CreateTexture(renderer, format, access, size.x, size.y))
4419 :
Texture(SDL_CreateTextureFromSurface(renderer, surface))
4424 :
Texture(SDL_CreateTextureWithProperties(renderer, props))
4456 return Texture(renderer, surface);
4588 return Texture(renderer, props);
4604 SDL_PROP_TEXTURE_CREATE_COLORSPACE_NUMBER;
4607 SDL_PROP_TEXTURE_CREATE_FORMAT_NUMBER;
4610 SDL_PROP_TEXTURE_CREATE_ACCESS_NUMBER;
4613 SDL_PROP_TEXTURE_CREATE_WIDTH_NUMBER;
4616 SDL_PROP_TEXTURE_CREATE_HEIGHT_NUMBER;
4618#if SDL_VERSION_ATLEAST(3, 4, 0)
4621 SDL_PROP_TEXTURE_CREATE_PALETTE_POINTER;
4626 SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT;
4629 SDL_PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT;
4632 SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER;
4635 SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER;
4639 SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER;
4643 SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER;
4646 SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER;
4650 SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER;
4654 SDL_PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER;
4658 SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER;
4661 SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER;
4665 SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER;
4669 SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER;
4673 SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER;
4677 SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER;
4681 SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER;
4685 SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER;
4689 SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER;
4692#if SDL_VERSION_ATLEAST(3, 4, 0)
4695 SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER;
4698 SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER;
4701 SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_POINTER;
4705 SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_U_POINTER;
4708 SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_V_POINTER;
4811 return CheckError(SDL_GetTextureProperties(texture));
4832 SDL_PROP_TEXTURE_COLORSPACE_NUMBER;
4835 SDL_PROP_TEXTURE_FORMAT_NUMBER;
4838 SDL_PROP_TEXTURE_ACCESS_NUMBER;
4841 SDL_PROP_TEXTURE_WIDTH_NUMBER;
4844 SDL_PROP_TEXTURE_HEIGHT_NUMBER;
4847 SDL_PROP_TEXTURE_SDR_WHITE_POINT_FLOAT;
4850 SDL_PROP_TEXTURE_HDR_HEADROOM_FLOAT;
4853 SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER;
4856 SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER;
4859 SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER;
4862 SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER;
4865 SDL_PROP_TEXTURE_D3D12_TEXTURE_U_POINTER;
4868 SDL_PROP_TEXTURE_D3D12_TEXTURE_V_POINTER;
4871 SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER;
4874 SDL_PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER;
4877 SDL_PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER;
4880 SDL_PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER;
4883 SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER;
4887 SDL_PROP_TEXTURE_OPENGL_TEX_W_FLOAT;
4890 SDL_PROP_TEXTURE_OPENGL_TEX_H_FLOAT;
4893 SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER;
4896 SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER;
4900 SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER;
4904 SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER;
4908 SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER;
4912 SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER;
4914#if SDL_VERSION_ATLEAST(3, 4, 0)
4917 SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER;
4920 SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER;
4923 SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER;
4926 SDL_PROP_TEXTURE_GPU_TEXTURE_V_POINTER;
4945 return CheckError(SDL_GetRendererFromTexture(texture));
4969 CheckError(SDL_GetTextureSize(texture, w, h));
4975 return Point(texture->w, texture->h);
5011 return texture->format;
5019#if SDL_VERSION_ATLEAST(3, 4, 0)
5042 CheckError(SDL_SetTexturePalette(texture, palette));
5100 CheckError(SDL_SetTextureColorMod(texture, r, g, b));
5139 CheckError(SDL_SetTextureColorModFloat(texture, r, g, b));
5169 CheckError(SDL_GetTextureColorMod(texture, r, g, b));
5199 CheckError(SDL_GetTextureColorModFloat(texture, r, g, b));
5232 CheckError(SDL_SetTextureAlphaMod(texture, alpha));
5265 CheckError(SDL_SetTextureAlphaModFloat(texture, alpha));
5291 CheckError(SDL_GetTextureAlphaMod(texture, &alpha));
5318 CheckError(SDL_GetTextureAlphaModFloat(texture, &alpha));
5461 CheckError(SDL_SetTextureBlendMode(texture, blendMode));
5485 CheckError(SDL_GetTextureBlendMode(texture, &blendMode));
5513 CheckError(SDL_SetTextureScaleMode(texture, scaleMode));
5537 CheckError(SDL_GetTextureScaleMode(texture, &scaleMode));
5582 CheckError(SDL_UpdateTexture(texture, rect, pixels, pitch));
5619 UpdateTexture(texture, rect, surface->pixels, surface->pitch);
5662 const Uint8* Yplane,
5664 const Uint8* Uplane,
5666 const Uint8* Vplane,
5670 texture, rect, Yplane, Ypitch, Uplane, Upitch, Vplane, Vpitch));
5674 const Uint8* Yplane,
5676 const Uint8* Uplane,
5678 const Uint8* Vplane,
5682 get(), rect, Yplane, Ypitch, Uplane, Upitch, Vplane, Vpitch);
5711 const Uint8* Yplane,
5713 const Uint8* UVplane,
5717 SDL_UpdateNVTexture(texture, rect, Yplane, Ypitch, UVplane, UVpitch));
5721 const Uint8* Yplane,
5723 const Uint8* UVplane,
5761 CheckError(SDL_LockTexture(texture, rect, pixels, pitch));
5768 return {
TextureRef(*
this), rect, pixels, pitch};
5816 CheckError(SDL_LockTextureToSurface(texture, rect, &surface));
5857 std::move(lock).reset();
5863 std::move(lock).reset();
5868 if (!m_lock)
return;
5875 if (!m_lock)
return;
5906 CheckError(SDL_SetRenderTarget(renderer, texture));
5953 if (
auto texture = SDL_GetRenderTarget(renderer))
6010 CheckError(SDL_SetRenderLogicalPresentation(renderer, size.x, size.y, mode));
6045 CheckError(SDL_GetRenderLogicalPresentation(renderer, w, h, mode));
6116 CheckError(SDL_GetRenderLogicalPresentationRect(renderer, &rect));
6152 renderer, window_coord.x, window_coord.y, &p.x, &p.y));
6190 SDL_RenderCoordinatesToWindow(renderer, coord.x, coord.y, &p.x, &p.y));
6233 CheckError(SDL_ConvertEventToRenderCoordinates(renderer, event));
6268 CheckError(SDL_SetRenderViewport(renderer, rect));
6319 CheckError(SDL_GetRenderViewport(renderer, &rect));
6350 return SDL_RenderViewportSet(renderer);
6379 CheckError(SDL_GetRenderSafeArea(renderer, &rect));
6409 CheckError(SDL_SetRenderClipRect(renderer, rect));
6461 CheckError(SDL_GetRenderClipRect(renderer, &rect));
6489 return SDL_RenderClipEnabled(renderer);
6523 CheckError(SDL_SetRenderScale(renderer, scale.x, scale.y));
6550 CheckError(SDL_GetRenderScale(renderer, scaleX, scaleY));
6601 CheckError(SDL_SetRenderDrawColor(renderer, c.r, c.g, c.b, c.a));
6628 CheckError(SDL_SetRenderDrawColorFloat(renderer, c.r, c.g, c.b, c.a));
6663 CheckError(SDL_GetRenderDrawColor(renderer, r, g, b, a));
6724 CheckError(SDL_GetRenderDrawColorFloat(renderer, r, g, b, a));
6783 CheckError(SDL_SetRenderColorScale(renderer, scale));
6807 CheckError(SDL_GetRenderColorScale(renderer, &scale));
6833 CheckError(SDL_SetRenderDrawBlendMode(renderer, blendMode));
6857 CheckError(SDL_GetRenderDrawBlendMode(renderer, &blendMode));
6905 CheckError(SDL_RenderPoint(renderer, p.x, p.y));
6955 CheckError(SDL_RenderLine(renderer, p1.x, p1.y, p2.x, p2.y));
7054 CheckError(SDL_RenderFillRect(renderer, rect));
7111 CheckError(SDL_RenderTexture(renderer, texture, srcrect, dstrect));
7152 FlipMode flip = FlipMode::SDL_FLIP_NONE)
7155 renderer, texture, srcrect, dstrect, angle, center, flip));
7166 get(), texture, srcrect, dstrect, angle, center, flip);
7202 SDL_RenderTextureAffine(renderer, texture, srcrect, origin, right, down));
7245 SDL_RenderTextureTiled(renderer, texture, srcrect, scale, dstrect));
7294 float bottom_height,
7314 float bottom_height,
7329#if SDL_VERSION_ATLEAST(3, 4, 0)
7372 float bottom_height,
7377 CheckError(SDL_RenderTexture9GridTiled(renderer,
7394 float bottom_height,
7435 std::span<const Vertex> vertices,
7436 std::span<const int> indices = {})
7447 std::span<const Vertex> vertices,
7448 std::span<const int> indices)
7489 const void* indices,
7515 const void* indices,
7533#if SDL_VERSION_ATLEAST(3, 4, 0)
7557 CheckError(SDL_SetRenderTextureAddressMode(renderer, u_mode, v_mode));
7588 CheckError(SDL_GetRenderTextureAddressMode(renderer, u_mode, v_mode));
7627 return Surface{
CheckError(SDL_RenderReadPixels(renderer, rect))};
7721 SDL_DestroyRenderer(renderer);
7781 return SDL_GetRenderMetalLayer(renderer);
7812 return SDL_GetRenderMetalCommandEncoder(renderer);
7852 renderer, wait_stage_mask, wait_semaphore, signal_semaphore));
7860 get(), wait_stage_mask, wait_semaphore, signal_semaphore);
7887 CheckError(SDL_SetRenderVSync(renderer, vsync));
7915 CheckError(SDL_GetRenderVSync(renderer, &vsync));
7931 SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE;
7974 CheckError(SDL_RenderDebugText(renderer, p.x, p.y, str));
8006template<
class... ARGS>
8009 std::string_view fmt,
8013 renderer, p, std::vformat(fmt, std::make_format_args(args...)));
8016template<
class... ARGS>
8018 std::string_view fmt,
8024#if SDL_VERSION_ATLEAST(3, 4, 0)
8044 CheckError(SDL_SetDefaultTextureScaleMode(renderer, scale_mode));
8070 CheckError(SDL_GetDefaultTextureScaleMode(renderer, scale_mode));
8217 :
GPURenderState(SDL_CreateGPURenderState(renderer, &createinfo))
8244 SDL_SetGPURenderStateFragmentUniforms(state, slot_index, data, length));
8272 CheckError(SDL_SetGPURenderState(renderer, state));
8294 SDL_DestroyGPURenderState(state);
Optional-like shim for references.
Definition SDL3pp_optionalRef.h:20
constexpr RawPointer get() const noexcept
Definition SDL3pp_resource.h:53
constexpr RawPointer release() noexcept
Definition SDL3pp_resource.h:56
constexpr ResourceBase(RawPointer resource)
Constructs from resource pointer.
Definition SDL3pp_resource.h:29
Const reference wrapper for a given resource,.
Definition SDL3pp_resource.h:111
span-like for empty-derived structs
Definition SDL3pp_spanRef.h:24
constexpr T * data() const
Retrieves contained data.
Definition SDL3pp_spanRef.h:75
constexpr size_t size() const
Retrieves contained size.
Definition SDL3pp_spanRef.h:69
Helpers to use C++ strings parameters.
Definition SDL3pp_strings.h:43
Lock a portion of the texture for write-only pixel access.
Definition SDL3pp_render.h:3327
TextureRef resource() const
Get the reference to locked resource.
Definition SDL3pp_render.h:3425
~TextureLock()
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:3391
TextureLock & operator=(TextureLock &&other) noexcept
Assignment operator.
Definition SDL3pp_render.h:3396
TextureLock(const TextureLock &other)=delete
Copy constructor.
TextureLock(TextureLock &&other) noexcept
Move constructor.
Definition SDL3pp_render.h:3369
void release()
Releases the lock without unlocking.
Definition SDL3pp_render.h:3428
Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
Definition SDL3pp_render.h:3454
~TextureSurfaceLock()
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:3520
TextureSurfaceLock(TextureSurfaceLock &&other) noexcept
Move constructor.
Definition SDL3pp_render.h:3497
TextureRef resource() const
Get the reference to locked resource.
Definition SDL3pp_render.h:3552
TextureSurfaceLock(const TextureSurfaceLock &other)=delete
Copy constructor.
TextureSurfaceLock & operator=(TextureSurfaceLock &&other) noexcept
Assignment operator.
Definition SDL3pp_render.h:3525
#define SDL_assert_paranoid(condition)
An assertion test that is performed only when built with paranoid settings.
Definition SDL3pp_assert.h:383
Uint32 BlendMode
A set of blend modes used in drawing operations.
Definition SDL3pp_blendmode.h:35
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition SDL3pp_error.h:199
SDL_Event Event
The structure for all events in SDL.
Definition SDL3pp_events.h:844
ResourceRef< GPUDevice > GPUDeviceRef
Reference for GPUDevice.
Definition SDL3pp_gpu.h:386
ResourceRef< IOStream > IOStreamRef
Reference for IOStream.
Definition SDL3pp_iostream.h:34
SDL_Color ColorRaw
Alias to raw representation for Color.
Definition SDL3pp_pixels.h:83
SDL_FColor FColorRaw
Alias to raw representation for FColor.
Definition SDL3pp_pixels.h:89
ResourceRef< Palette > PaletteRef
Reference for Palette.
Definition SDL3pp_pixels.h:108
ResourceRef< Properties > PropertiesRef
Reference for Properties.
Definition SDL3pp_properties.h:54
SDL_FRect FRectRaw
Alias to raw representation for FRect.
Definition SDL3pp_rect.h:40
SDL_FPoint FPointRaw
Alias to raw representation for FPoint.
Definition SDL3pp_rect.h:28
SDL_Point PointRaw
Alias to raw representation for Point.
Definition SDL3pp_rect.h:22
FPoint RenderCoordinatesFromWindow(RendererRef renderer, const FPointRaw &window_coord)
Get a point in render coordinates when given a point in window coordinates.
Definition SDL3pp_render.h:6147
void reset()
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:5873
void UpdateTexture(TextureRef texture, OptionalRef< const RectRaw > rect, const void *pixels, int pitch)
Update the given texture rectangle with new pixel data.
Definition SDL3pp_render.h:5577
constexpr TextureAddressMode TEXTURE_ADDRESS_AUTO
Wrapping is enabled if texture coordinates are outside [0, 1], this is the default.
Definition SDL3pp_render.h:154
void GetRenderScale(RendererRef renderer, float *scaleX, float *scaleY)
Get the drawing scale for the current target.
Definition SDL3pp_render.h:6548
void SetDrawColorFloat(const FColorRaw &c)
Set the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6631
constexpr int RENDERER_VSYNC_DISABLED
Constant for disabling renderer vsync.
Definition SDL3pp_render.h:7893
SDL_Vertex Vertex
Vertex structure.
Definition SDL3pp_render.h:114
void SetDrawColor(ColorRaw c)
Set the color used for drawing operations.
Definition SDL3pp_render.h:6604
void RenderTexture9Grid(RendererRef renderer, TextureRef texture, OptionalRef< const FRectRaw > srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, OptionalRef< const FRectRaw > dstrect)
Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precisio...
Definition SDL3pp_render.h:7288
Texture GetTarget() const
Get the current render target.
Definition SDL3pp_render.h:5958
void Destroy()
Destroy the rendering context for a window and free all associated textures.
Definition SDL3pp_render.h:7724
const char * GetName() const
Get the name of a renderer.
Definition SDL3pp_render.h:4048
void RenderRects(RendererRef renderer, SpanRef< const FRectRaw > rects)
Draw some number of rectangles on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7026
void ResetRenderViewport(RendererRef renderer)
Reset the drawing area for rendering to the entire target.
Definition SDL3pp_render.h:6292
const SDL_Texture * TextureRawConst
Alias to const raw representation for Texture.
Definition SDL3pp_render.h:56
void RenderGeometryRaw(TextureRef texture, const float *xy, int xy_stride, const FColor *color, int color_stride, const float *uv, int uv_stride, int num_vertices, const void *indices, int num_indices, int size_indices)
Render a list of triangles, optionally using a texture and indices into the vertex arrays Color and a...
Definition SDL3pp_render.h:7507
void SetFragmentUniforms(Uint32 slot_index, const void *data, Uint32 length)
Set fragment shader uniform variables in a custom GPU render state.
Definition SDL3pp_render.h:8247
GPURenderState CreateGPURenderState(const GPURenderStateCreateInfo &createinfo)
Create custom GPU render state.
Definition SDL3pp_render.h:8208
void SetPalette(PaletteRef palette)
Set the palette used by a texture.
Definition SDL3pp_render.h:5045
Texture GetRenderTarget(RendererRef renderer)
Get the current render target.
Definition SDL3pp_render.h:5951
RendererRef CreateGPURenderer(GPUDeviceRef device, WindowRef window)
Create a 2D GPU rendering context.
Definition SDL3pp_render.h:3954
void FlushRenderer(RendererRef renderer)
Force the rendering context to flush any pending commands and state.
Definition SDL3pp_render.h:7756
Point GetCurrentOutputSize() const
Get the current output size in pixels of a rendering context.
Definition SDL3pp_render.h:4368
void SetColorModFloat(float r, float g, float b)
Set an additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5142
GPURenderState CreateGPURenderState(RendererRef renderer, const GPURenderStateCreateInfo &createinfo)
Create custom GPU render state.
Definition SDL3pp_render.h:8201
void SetDefaultTextureScaleMode(RendererRef renderer, ScaleMode scale_mode)
Set default scale mode for new textures for given renderer.
Definition SDL3pp_render.h:8041
void RenderPoint(const FPointRaw &p)
Draw a point on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6908
void CreateWindowAndRenderer(StringParam title, const PointRaw &size, WindowFlags window_flags, Window *window, Renderer *renderer)
Create a window and default renderer.
Definition SDL3pp_render.h:3647
ScaleMode GetTextureScaleMode(TextureConstRef texture)
Get the scale mode used for texture scale operations.
Definition SDL3pp_render.h:5534
void * GetRenderMetalLayer(RendererRef renderer)
Get the CAMetalLayer associated with the given Metal renderer.
Definition SDL3pp_render.h:7779
void GetRenderOutputSize(RendererRef renderer, int *w, int *h)
Get the output size in pixels of a rendering context.
Definition SDL3pp_render.h:4271
BlendMode GetTextureBlendMode(TextureConstRef texture)
Get the blend mode used for texture copy operations.
Definition SDL3pp_render.h:5482
void SetRenderTextureAddressMode(RendererRef renderer, TextureAddressMode u_mode, TextureAddressMode v_mode)
Set the texture addressing mode used in Renderer.RenderGeometry().
Definition SDL3pp_render.h:7553
void CreateWindowAndRendererRaw(StringParam title, const PointRaw &size, WindowFlags window_flags, WindowRaw *window, RendererRaw *renderer)
Create a window and default renderer.
Definition SDL3pp_render.h:3620
void GetRenderTextureAddressMode(TextureAddressMode *u_mode, TextureAddressMode *v_mode)
Get the texture addressing mode used in Renderer.RenderGeometry().
Definition SDL3pp_render.h:7591
void RenderDebugText(RendererRef renderer, const FPointRaw &p, StringParam str)
Draw debug text to an Renderer.
Definition SDL3pp_render.h:7970
void SetBlendMode(BlendMode blendMode)
Set the blend mode for a texture, used by Renderer.RenderTexture().
Definition SDL3pp_render.h:5464
Palette GetPalette()
Get the palette used by a texture.
Definition SDL3pp_render.h:5068
Rect GetViewport() const
Get the drawing area for the current target.
Definition SDL3pp_render.h:6323
Point GetSize() const
Get the size of a texture.
Definition SDL3pp_render.h:4983
bool ViewportSet() const
Return whether an explicit rectangle was set as the viewport.
Definition SDL3pp_render.h:6353
void RenderFillRects(RendererRef renderer, SpanRef< const FRectRaw > rects)
Fill some number of rectangles on the current rendering target with the drawing color at subpixel pre...
Definition SDL3pp_render.h:7076
void SetDrawBlendMode(BlendMode blendMode)
Set the blend mode used for drawing operations (Fill and Line).
Definition SDL3pp_render.h:6836
Texture CreateTextureFromSurface(SurfaceRef surface)
Create a texture from an existing surface.
Definition SDL3pp_render.h:4459
FPoint GetSizeFloat() const
Get the size of a texture, as floating point values.
Definition SDL3pp_render.h:4993
ResourceConstRef< TextureRaw, TextureRawConst > TextureConstRef
Safely wrap Texture for non owning const parameters.
Definition SDL3pp_render.h:66
void SetDefaultTextureScaleMode(ScaleMode scale_mode)
Set default scale mode for new textures for given renderer.
Definition SDL3pp_render.h:8047
void GetRenderDrawColor(RendererRef renderer, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
Get the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6657
void SetGPURenderState(RendererRef renderer, GPURenderStateRef state)
Set custom GPU render state.
Definition SDL3pp_render.h:8270
void SetGPURenderState(GPURenderStateRef state)
Set custom GPU render state.
Definition SDL3pp_render.h:8275
void RenderPoint(RendererRef renderer, const FPointRaw &p)
Draw a point on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6903
void SetAlphaMod(Uint8 alpha)
Set an additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5235
constexpr TextureAddressMode TEXTURE_ADDRESS_WRAP
The texture is repeated (tiled).
Definition SDL3pp_render.h:159
void RenderRect(RendererRef renderer, OptionalRef< const FRectRaw > rect)
Draw a rectangle on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7002
Palette GetTexturePalette(TextureRef texture)
Get the palette used by a texture.
Definition SDL3pp_render.h:5063
Texture CreateTextureWithProperties(RendererRef renderer, PropertiesRef props)
Create a texture for a rendering context with the specified properties.
Definition SDL3pp_render.h:4585
FPoint GetScale() const
Get the drawing scale for the current target.
Definition SDL3pp_render.h:6580
SDL_TextureAccess TextureAccess
The access pattern allowed for a texture.
Definition SDL3pp_render.h:121
PixelFormat GetFormat() const
Get the pixel format.
Definition SDL3pp_render.h:5014
void Destroy()
Destroy the specified texture.
Definition SDL3pp_render.h:7704
Rect GetRenderSafeArea(RendererRef renderer)
Get the safe area for rendering within the current viewport.
Definition SDL3pp_render.h:6376
bool IsClipEnabled() const
Get whether clipping is enabled on the given render target.
Definition SDL3pp_render.h:6492
constexpr int RENDERER_VSYNC_ADAPTIVE
Constant for enabling asaptive renderer vsync.
Definition SDL3pp_render.h:7896
ResourceRef< GPURenderState > GPURenderStateRef
Reference for GPURenderState.
Definition SDL3pp_render.h:81
int GetTextureWidth(TextureConstRef texture)
Get the width in pixels.
Definition SDL3pp_render.h:4999
FPoint RenderCoordinatesToWindow(const FPointRaw &coord) const
Get a point in window coordinates when given a point in render coordinates.
Definition SDL3pp_render.h:6194
PropertiesRef GetRendererProperties(RendererRef renderer)
Get the properties associated with a renderer.
Definition SDL3pp_render.h:4138
constexpr auto SOFTWARE_RENDERER
The name of the software renderer.
Definition SDL3pp_render.h:96
void SetRenderColorScale(RendererRef renderer, float scale)
Set the color scale used for render operations.
Definition SDL3pp_render.h:6781
void RenderTextureAffine(TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FPointRaw > origin, OptionalRef< const FPointRaw > right, OptionalRef< const FPointRaw > down)
Copy a portion of the source texture to the current rendering target, with affine transform,...
Definition SDL3pp_render.h:7205
void RenderPoints(SpanRef< const FPointRaw > points)
Draw multiple points on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6932
void GetTextureColorMod(TextureConstRef texture, Uint8 *r, Uint8 *g, Uint8 *b)
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5164
void ResetTarget()
Set target texture back to window.
Definition SDL3pp_render.h:5934
void SetRenderVSync(RendererRef renderer, int vsync)
Toggle VSync of the given renderer.
Definition SDL3pp_render.h:7885
GPUDeviceRef GetGPURendererDevice(RendererRef renderer)
Return the GPU device used by a renderer.
Definition SDL3pp_render.h:3970
TextureSurfaceLock LockToSurface(OptionalRef< const RectRaw > rect=std::nullopt)
Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
Definition SDL3pp_render.h:5820
void GetRenderLogicalPresentation(RendererRef renderer, int *w, int *h, RendererLogicalPresentation *mode)
Get device independent resolution and presentation mode for rendering.
Definition SDL3pp_render.h:6040
void SetTextureModFloat(TextureRef texture, FColor c)
Set an additional color and alpha values multiplied into render copy operations.
Definition SDL3pp_render.h:5381
int GetHeight() const
Get the height in pixels.
Definition SDL3pp_render.h:5006
FColor GetDrawColorFloat() const
Get the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6756
Uint8 GetAlphaMod() const
Get the additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5295
SDL_GPURenderState * GPURenderStateRaw
Alias to raw representation for GPURenderState.
Definition SDL3pp_render.h:74
constexpr TextureAddressMode TEXTURE_ADDRESS_INVALID
TEXTURE_ADDRESS_INVALID.
Definition SDL3pp_render.h:147
void SetModFloat(FColor c)
Set an additional color and alpha values multiplied into render copy operations.
Definition SDL3pp_render.h:5387
void DestroyRenderer(RendererRaw renderer)
Destroy the rendering context for a window and free all associated textures.
Definition SDL3pp_render.h:7719
void Destroy()
Destroy custom GPU render state.
Definition SDL3pp_render.h:8297
void SetColorScale(float scale)
Set the color scale used for render operations.
Definition SDL3pp_render.h:6786
int GetVSync() const
Get VSync of the given renderer.
Definition SDL3pp_render.h:7919
void GetTextureSize(TextureConstRef texture, float *w, float *h)
Get the size of a texture, as floating point values.
Definition SDL3pp_render.h:4967
void SetTarget(TextureRef texture)
Set a texture as the current rendering target.
Definition SDL3pp_render.h:5909
Texture CreateTexture(RendererRef renderer, PixelFormat format, TextureAccess access, const PointRaw &size)
Create a texture for a rendering context.
Definition SDL3pp_render.h:4395
Texture CreateTextureWithProperties(PropertiesRef props)
Create a texture for a rendering context with the specified properties.
Definition SDL3pp_render.h:4591
Surface RenderReadPixels(RendererRef renderer, OptionalRef< const RectRaw > rect={})
Read pixels from the current rendering target.
Definition SDL3pp_render.h:7624
TextureSurfaceLock(TextureRef resource, OptionalRef< const RectRaw > rect=std::nullopt)
Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
Definition SDL3pp_render.h:5826
void SetTextureScaleMode(TextureRef texture, ScaleMode scaleMode)
Set the scale mode used for texture scale operations.
Definition SDL3pp_render.h:5511
bool RenderClipEnabled(RendererRef renderer)
Get whether clipping is enabled on the given render target.
Definition SDL3pp_render.h:6487
void RenderTexture9Grid(TextureRef texture, OptionalRef< const FRectRaw > srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, OptionalRef< const FRectRaw > dstrect)
Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precisio...
Definition SDL3pp_render.h:7309
Point GetOutputSize() const
Get the output size in pixels of a rendering context.
Definition SDL3pp_render.h:4307
void GetColorModFloat(float *r, float *g, float *b) const
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5202
void SetColorMod(Uint8 r, Uint8 g, Uint8 b)
Set an additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5103
void SetRenderDrawColorFloat(RendererRef renderer, const FColorRaw &c)
Set the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6626
void Update(OptionalRef< const RectRaw > rect, const void *pixels, int pitch)
Update the given texture rectangle with new pixel data.
Definition SDL3pp_render.h:5622
void RenderRect(OptionalRef< const FRectRaw > rect)
Draw a rectangle on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7007
RendererRef GetRenderer() const
Get the renderer associated with a window.
Definition SDL3pp_render.h:4006
void Present()
Update the screen with any rendering performed since the previous call.
Definition SDL3pp_render.h:7685
void ResetViewport()
Reset the drawing area for rendering to the entire target.
Definition SDL3pp_render.h:6297
float GetRenderColorScale(RendererRef renderer)
Get the color scale used for render operations.
Definition SDL3pp_render.h:6804
BlendMode GetDrawBlendMode() const
Get the blend mode used for drawing operations.
Definition SDL3pp_render.h:6861
void RenderClear()
Clear the current rendering target with the drawing color.
Definition SDL3pp_render.h:6888
FRect GetRenderLogicalPresentationRect(RendererRef renderer)
Get the final presentation rectangle for rendering.
Definition SDL3pp_render.h:6113
FPoint GetTextureSizeFloat(TextureConstRef texture)
Get the size of a texture, as floating point values.
Definition SDL3pp_render.h:4986
RendererRef GetRendererFromTexture(TextureConstRef texture)
Get the renderer that created an Texture.
Definition SDL3pp_render.h:4943
void SetRenderDrawBlendMode(RendererRef renderer, BlendMode blendMode)
Set the blend mode used for drawing operations (Fill and Line).
Definition SDL3pp_render.h:6831
void RenderTextureRotated(RendererRef renderer, TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FRectRaw > dstrect, double angle, OptionalRef< const FPointRaw > center, FlipMode flip=FlipMode::SDL_FLIP_NONE)
Copy a portion of the source texture to the current rendering target, with rotation and flipping,...
Definition SDL3pp_render.h:7146
void SetMod(Color c)
Set an additional color and alpha values multiplied into render copy operations.
Definition SDL3pp_render.h:5356
void RenderTextureTiled(RendererRef renderer, TextureRef texture, OptionalRef< const FRectRaw > srcrect, float scale, OptionalRef< const FRectRaw > dstrect)
Tile a portion of the texture to the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7238
void RenderLine(const FPointRaw &p1, const FPointRaw &p2)
Draw a line on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6958
Color GetMod() const
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5414
constexpr RendererLogicalPresentation LOGICAL_PRESENTATION_OVERSCAN
The rendered content is fit to the smallest dimension and the other dimension extends beyond the outp...
Definition SDL3pp_render.h:189
void GetRenderDrawColorFloat(RendererRef renderer, float *r, float *g, float *b, float *a)
Get the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6718
constexpr auto GPU_RENDERER
The name of the GPU renderer.
Definition SDL3pp_render.h:105
void ResetRenderClipRect(RendererRef renderer)
Reset the clip rectangle for rendering to the entire render target.
Definition SDL3pp_render.h:6433
PropertiesRef GetProperties() const
Get the properties associated with a texture.
Definition SDL3pp_render.h:4814
void RenderDebugText(const FPointRaw &p, StringParam str)
Draw debug text to an Renderer.
Definition SDL3pp_render.h:7977
void SetAlphaModFloat(float alpha)
Set an additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5268
void * GetRenderMetalCommandEncoder(RendererRef renderer)
Get the Metal command encoder for the current frame.
Definition SDL3pp_render.h:7810
constexpr RendererLogicalPresentation LOGICAL_PRESENTATION_DISABLED
There is no logical size in effect.
Definition SDL3pp_render.h:171
void RenderGeometry(TextureRef texture, std::span< const Vertex > vertices, std::span< const int > indices={})
Render a list of triangles, optionally using a texture and indices into the vertex array Color and al...
Definition SDL3pp_render.h:7446
void UpdateNVTexture(TextureRef texture, OptionalRef< const RectRaw > rect, const Uint8 *Yplane, int Ypitch, const Uint8 *UVplane, int UVpitch)
Update a rectangle within a planar NV12 or NV21 texture with new pixels.
Definition SDL3pp_render.h:5709
Rect GetClipRect() const
Get the clip rectangle for the current target.
Definition SDL3pp_render.h:6465
void * GetRenderMetalLayer()
Get the CAMetalLayer associated with the given Metal renderer.
Definition SDL3pp_render.h:7784
void RenderDebugTextFormat(RendererRef renderer, const FPointRaw &p, std::string_view fmt, ARGS... args)
Draw debug text to an Renderer.
Definition SDL3pp_render.h:8007
constexpr TextureAccess TEXTUREACCESS_TARGET
Texture can be used as a render target.
Definition SDL3pp_render.h:129
void RenderPoints(RendererRef renderer, SpanRef< const FPointRaw > points)
Draw multiple points on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6926
FPoint RenderCoordinatesFromWindow(const FPointRaw &window_coord) const
Get a point in render coordinates when given a point in window coordinates.
Definition SDL3pp_render.h:6156
void DestroyTexture(TextureRaw texture)
Destroy the specified texture.
Definition SDL3pp_render.h:7702
FColor GetTextureModFloat(TextureConstRef texture)
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5430
Rect GetSafeArea() const
Get the safe area for rendering within the current viewport.
Definition SDL3pp_render.h:6383
void RenderFillRect(RendererRef renderer, OptionalRef< const FRectRaw > rect)
Fill a rectangle on the current rendering target with the drawing color at subpixel precision.
Definition SDL3pp_render.h:7051
void RenderClear(RendererRef renderer)
Clear the current rendering target with the drawing color.
Definition SDL3pp_render.h:6883
Renderer CreateRenderer(WindowRef window, StringParam name=nullptr)
Create a 2D rendering context for a window.
Definition SDL3pp_render.h:3759
void DestroyGPURenderState(GPURenderStateRaw state)
Destroy custom GPU render state.
Definition SDL3pp_render.h:8292
PixelFormat GetTextureFormat(TextureConstRef texture)
Get the pixel format.
Definition SDL3pp_render.h:5009
int GetWidth() const
Get the width in pixels.
Definition SDL3pp_render.h:5001
FColor GetModFloat() const
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5438
ResourceRef< Texture > TextureRef
Reference for Texture.
Definition SDL3pp_render.h:63
Renderer CreateRendererWithProperties(PropertiesRef props)
Create a 2D rendering context for a window, with the specified properties.
Definition SDL3pp_render.h:3841
void UpdateYUVTexture(TextureRef texture, OptionalRef< const RectRaw > rect, const Uint8 *Yplane, int Ypitch, const Uint8 *Uplane, int Upitch, const Uint8 *Vplane, int Vpitch)
Update a rectangle within a planar YV12 or IYUV texture with new pixel data.
Definition SDL3pp_render.h:5660
constexpr TextureAccess TEXTUREACCESS_STATIC
Changes rarely, not lockable.
Definition SDL3pp_render.h:123
void * GetRenderMetalCommandEncoder()
Get the Metal command encoder for the current frame.
Definition SDL3pp_render.h:7815
Rect GetRenderViewport(RendererRef renderer)
Get the drawing area for the current target.
Definition SDL3pp_render.h:6316
void SetViewport(OptionalRef< const RectRaw > rect)
Set the drawing area for rendering on the current target.
Definition SDL3pp_render.h:6271
constexpr RendererLogicalPresentation LOGICAL_PRESENTATION_INTEGER_SCALE
The rendered content is scaled up by integer multiples to fit the output resolution.
Definition SDL3pp_render.h:196
WindowRef GetWindow()
Get the window associated with a renderer.
Definition SDL3pp_render.h:4027
SDL_GPURenderStateCreateInfo GPURenderStateCreateInfo
A structure specifying the parameters of a GPU render state.
Definition SDL3pp_render.h:208
constexpr TextureAccess TEXTUREACCESS_STREAMING
Changes frequently, lockable.
Definition SDL3pp_render.h:126
void RenderTexture(TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FRectRaw > dstrect)
Copy a portion of the texture to the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7114
BlendMode GetBlendMode() const
Get the blend mode used for texture copy operations.
Definition SDL3pp_render.h:5489
void UpdateYUV(OptionalRef< const RectRaw > rect, const Uint8 *Yplane, int Ypitch, const Uint8 *Uplane, int Upitch, const Uint8 *Vplane, int Vpitch)
Update a rectangle within a planar YV12 or IYUV texture with new pixel data.
Definition SDL3pp_render.h:5673
PropertiesRef GetProperties() const
Get the properties associated with a renderer.
Definition SDL3pp_render.h:4143
Rect GetRenderClipRect(RendererRef renderer)
Get the clip rectangle for the current target.
Definition SDL3pp_render.h:6458
void Flush()
Force the rendering context to flush any pending commands and state.
Definition SDL3pp_render.h:7761
void RenderLine(RendererRef renderer, const FPointRaw &p1, const FPointRaw &p2)
Draw a line on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6951
void SetRenderLogicalPresentation(RendererRef renderer, const PointRaw &size, RendererLogicalPresentation mode)
Set a device-independent resolution and presentation mode for rendering.
Definition SDL3pp_render.h:6006
GPUDeviceRef GetGPUDevice()
Return the GPU device used by a renderer.
Definition SDL3pp_render.h:3975
void reset()
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:5866
void SetTextureColorMod(TextureRef texture, Uint8 r, Uint8 g, Uint8 b)
Set an additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5098
void GetDefaultTextureScaleMode(RendererRef renderer, ScaleMode *scale_mode)
Get default texture scale mode of the given renderer.
Definition SDL3pp_render.h:8067
void RenderTextureRotated(TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FRectRaw > dstrect, double angle, OptionalRef< const FPointRaw > center, FlipMode flip=FlipMode::SDL_FLIP_NONE)
Copy a portion of the source texture to the current rendering target, with rotation and flipping,...
Definition SDL3pp_render.h:7158
SDL_RendererLogicalPresentation RendererLogicalPresentation
How the logical size is mapped to the output.
Definition SDL3pp_render.h:169
SDL_TextureAddressMode TextureAddressMode
The addressing mode for a texture when used in Renderer.RenderGeometry().
Definition SDL3pp_render.h:145
FRect GetLogicalPresentationRect() const
Get the final presentation rectangle for rendering.
Definition SDL3pp_render.h:6120
void SetRenderTarget(RendererRef renderer, TextureRef texture)
Set a texture as the current rendering target.
Definition SDL3pp_render.h:5904
int GetRenderVSync(RendererRef renderer)
Get VSync of the given renderer.
Definition SDL3pp_render.h:7912
void SetClipRect(OptionalRef< const RectRaw > rect)
Set the clip rectangle for rendering on the specified target.
Definition SDL3pp_render.h:6412
constexpr int DEBUG_TEXT_FONT_CHARACTER_SIZE
The size, in pixels, of a single Renderer.RenderDebugText() character.
Definition SDL3pp_render.h:7930
BlendMode GetRenderDrawBlendMode(RendererRef renderer)
Get the blend mode used for drawing operations.
Definition SDL3pp_render.h:6854
constexpr TextureAddressMode TEXTURE_ADDRESS_CLAMP
Texture coordinates are clamped to the [0, 1] range.
Definition SDL3pp_render.h:157
PropertiesRef GetTextureProperties(TextureConstRef texture)
Get the properties associated with a texture.
Definition SDL3pp_render.h:4809
void SetRenderDrawColor(RendererRef renderer, ColorRaw c)
Set the color used for drawing operations.
Definition SDL3pp_render.h:6599
void ConvertEventToRenderCoordinates(Event *event) const
Convert the coordinates in an event to render coordinates.
Definition SDL3pp_render.h:6236
TextureLock(TextureRef resource, OptionalRef< const RectRaw > rect, void **pixels, int *pitch)
Lock a portion of the texture for write-only pixel access.
Definition SDL3pp_render.h:5771
Surface ReadPixels(OptionalRef< const RectRaw > rect={}) const
Read pixels from the current rendering target.
Definition SDL3pp_render.h:7630
void SetScale(const FPointRaw &scale)
Set the drawing scale for rendering on the current target.
Definition SDL3pp_render.h:6526
FPoint RenderCoordinatesToWindow(RendererRef renderer, const FPointRaw &coord)
Get a point in window coordinates when given a point in render coordinates.
Definition SDL3pp_render.h:6185
void RenderGeometry(RendererRef renderer, TextureRef texture, std::span< const Vertex > vertices, std::span< const int > indices={})
Render a list of triangles, optionally using a texture and indices into the vertex array Color and al...
Definition SDL3pp_render.h:7433
float GetColorScale() const
Get the color scale used for render operations.
Definition SDL3pp_render.h:6811
void RenderTexture9GridTiled(TextureRef texture, const FRectRaw &srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const FRectRaw &dstrect, float tileScale)
Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precisio...
Definition SDL3pp_render.h:7389
void UpdateNV(OptionalRef< const RectRaw > rect, const Uint8 *Yplane, int Ypitch, const Uint8 *UVplane, int UVpitch)
Update a rectangle within a planar NV12 or NV21 texture with new pixels.
Definition SDL3pp_render.h:5720
void RenderFillRects(SpanRef< const FRectRaw > rects)
Fill some number of rectangles on the current rendering target with the drawing color at subpixel pre...
Definition SDL3pp_render.h:7082
SDL_Renderer * RendererRaw
Alias to raw representation for Renderer.
Definition SDL3pp_render.h:47
void SetTextureColorModFloat(TextureRef texture, float r, float g, float b)
Set an additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5134
Texture CreateTextureFromSurface(RendererRef renderer, SurfaceRef surface)
Create a texture from an existing surface.
Definition SDL3pp_render.h:4453
SDL_Texture * TextureRaw
Alias to raw representation for Texture.
Definition SDL3pp_render.h:53
constexpr RendererLogicalPresentation LOGICAL_PRESENTATION_LETTERBOX
The rendered content is fit to the largest dimension and the other dimension is letterboxed with the ...
Definition SDL3pp_render.h:182
void RenderLines(SpanRef< const FPointRaw > points)
Draw a series of connected lines on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6983
void SetLogicalPresentation(const PointRaw &size, RendererLogicalPresentation mode)
Set a device-independent resolution and presentation mode for rendering.
Definition SDL3pp_render.h:6013
void SetTextureAlphaModFloat(TextureRef texture, float alpha)
Set an additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5263
void GetLogicalPresentation(int *w, int *h, RendererLogicalPresentation *mode) const
Get device independent resolution and presentation mode for rendering.
Definition SDL3pp_render.h:6079
void RenderTexture(RendererRef renderer, TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FRectRaw > dstrect)
Copy a portion of the texture to the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7106
void GetRenderTextureAddressMode(RendererRef renderer, TextureAddressMode *u_mode, TextureAddressMode *v_mode)
Get the texture addressing mode used in Renderer.RenderGeometry().
Definition SDL3pp_render.h:7584
Renderer CreateSoftwareRenderer(SurfaceRef surface)
Create a 2D software rendering context for a surface.
Definition SDL3pp_render.h:4001
void ConvertEventToRenderCoordinates(RendererRef renderer, Event *event)
Convert the coordinates in an event to render coordinates.
Definition SDL3pp_render.h:6231
Color GetTextureMod(TextureConstRef texture)
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5406
void RenderGeometryRaw(RendererRef renderer, TextureRef texture, const float *xy, int xy_stride, const FColor *color, int color_stride, const float *uv, int uv_stride, int num_vertices, const void *indices, int num_indices, int size_indices)
Render a list of triangles, optionally using a texture and indices into the vertex arrays Color and a...
Definition SDL3pp_render.h:7480
ScaleMode GetScaleMode() const
Get the scale mode used for texture scale operations.
Definition SDL3pp_render.h:5541
void RenderRects(SpanRef< const FRectRaw > rects)
Draw some number of rectangles on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7031
void RenderDebugTextFormat(const FPointRaw &p, std::string_view fmt, ARGS... args)
Draw debug text to an Renderer.
Definition SDL3pp_render.h:8017
void SetRenderScale(RendererRef renderer, const FPointRaw &scale)
Set the drawing scale for rendering on the current target.
Definition SDL3pp_render.h:6521
TextureLock Lock(OptionalRef< const RectRaw > rect, void **pixels, int *pitch)
Lock a portion of the texture for write-only pixel access.
Definition SDL3pp_render.h:5764
void SetRenderViewport(RendererRef renderer, OptionalRef< const RectRaw > rect)
Set the drawing area for rendering on the current target.
Definition SDL3pp_render.h:6265
void RenderPresent(RendererRef renderer)
Update the screen with any rendering performed since the previous call.
Definition SDL3pp_render.h:7680
void RenderTextureAffine(RendererRef renderer, TextureRef texture, OptionalRef< const FRectRaw > srcrect, OptionalRef< const FPointRaw > origin, OptionalRef< const FPointRaw > right, OptionalRef< const FPointRaw > down)
Copy a portion of the source texture to the current rendering target, with affine transform,...
Definition SDL3pp_render.h:7194
void UnlockTexture(TextureRef texture)
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:5852
void AddVulkanRenderSemaphores(RendererRef renderer, Uint32 wait_stage_mask, Sint64 wait_semaphore, Sint64 signal_semaphore)
Add a set of synchronization semaphores for the current frame.
Definition SDL3pp_render.h:7846
void SetRenderTextureAddressMode(TextureAddressMode u_mode, TextureAddressMode v_mode)
Set the texture addressing mode used in Renderer.RenderGeometry().
Definition SDL3pp_render.h:7560
void RenderTextureTiled(TextureRef texture, OptionalRef< const FRectRaw > srcrect, float scale, OptionalRef< const FRectRaw > dstrect)
Tile a portion of the texture to the current rendering target at subpixel precision.
Definition SDL3pp_render.h:7248
constexpr RendererLogicalPresentation LOGICAL_PRESENTATION_STRETCH
The rendered content is stretched to the output resolution.
Definition SDL3pp_render.h:175
const char * GetRendererName(RendererRef renderer)
Get the name of a renderer.
Definition SDL3pp_render.h:4043
void GetDefaultTextureScaleMode(ScaleMode *scale_mode)
Get default texture scale mode of the given renderer.
Definition SDL3pp_render.h:8073
void GetCurrentRenderOutputSize(RendererRef renderer, int *w, int *h)
Get the current output size in pixels of a rendering context.
Definition SDL3pp_render.h:4332
float GetTextureAlphaModFloat(TextureConstRef texture)
Get the additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5315
void RenderFillRect(OptionalRef< const FRectRaw > rect)
Fill a rectangle on the current rendering target with the drawing color at subpixel precision.
Definition SDL3pp_render.h:7057
int GetNumRenderDrivers()
Get the number of 2D rendering drivers available for the current display.
Definition SDL3pp_render.h:3573
const char * GetRenderDriver(int index)
Use this function to get the name of a built in 2D rendering driver.
Definition SDL3pp_render.h:3597
void RenderLines(RendererRef renderer, SpanRef< const FPointRaw > points)
Draw a series of connected lines on the current rendering target at subpixel precision.
Definition SDL3pp_render.h:6977
WindowRef GetRenderWindow(RendererRef renderer)
Get the window associated with a renderer.
Definition SDL3pp_render.h:4022
void Unlock(TextureLock &&lock)
Unlock a texture, uploading the changes to video memory, if needed.
Definition SDL3pp_render.h:5854
RendererRef GetRenderer() const
Get the renderer that created an Texture.
Definition SDL3pp_render.h:4948
void SetVSync(int vsync)
Toggle VSync of the given renderer.
Definition SDL3pp_render.h:7890
bool RenderViewportSet(RendererRef renderer)
Return whether an explicit rectangle was set as the viewport.
Definition SDL3pp_render.h:6348
void GetTextureColorModFloat(TextureConstRef texture, float *r, float *g, float *b)
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5194
void ResetClipRect()
Reset the clip rectangle for rendering to the entire render target.
Definition SDL3pp_render.h:6438
float GetAlphaModFloat() const
Get the additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5322
void SetTextureBlendMode(TextureRef texture, BlendMode blendMode)
Set the blend mode for a texture, used by Renderer.RenderTexture().
Definition SDL3pp_render.h:5459
void AddVulkanRenderSemaphores(Uint32 wait_stage_mask, Sint64 wait_semaphore, Sint64 signal_semaphore)
Add a set of synchronization semaphores for the current frame.
Definition SDL3pp_render.h:7855
Uint8 GetTextureAlphaMod(TextureConstRef texture)
Get the additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5288
void GetColorMod(Uint8 *r, Uint8 *g, Uint8 *b) const
Get the additional color value multiplied into render copy operations.
Definition SDL3pp_render.h:5172
void LockTexture(TextureRef texture, OptionalRef< const RectRaw > rect, void **pixels, int *pitch)
Lock a portion of the texture for write-only pixel access.
Definition SDL3pp_render.h:5756
void RenderTexture9GridTiled(RendererRef renderer, TextureRef texture, const FRectRaw &srcrect, float left_width, float right_width, float top_height, float bottom_height, float scale, const FRectRaw &dstrect, float tileScale)
Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precisio...
Definition SDL3pp_render.h:7366
Texture CreateTexture(PixelFormat format, TextureAccess access, const PointRaw &size)
Create a texture for a rendering context.
Definition SDL3pp_render.h:4403
void SetTextureAlphaMod(TextureRef texture, Uint8 alpha)
Set an additional alpha value multiplied into render copy operations.
Definition SDL3pp_render.h:5230
void SetTexturePalette(TextureRef texture, PaletteRef palette)
Set the palette used by a texture.
Definition SDL3pp_render.h:5040
Surface LockTextureToSurface(TextureRef texture, OptionalRef< const RectRaw > rect=std::nullopt)
Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
Definition SDL3pp_render.h:5811
void ResetRenderTarget(RendererRef renderer)
Set target texture back to window.
Definition SDL3pp_render.h:5929
void SetTextureMod(TextureRef texture, Color c)
Set an additional color and alpha values multiplied into render copy operations.
Definition SDL3pp_render.h:5350
void SetRenderClipRect(RendererRef renderer, OptionalRef< const RectRaw > rect)
Set the clip rectangle for rendering on the specified target.
Definition SDL3pp_render.h:6406
Color GetDrawColor() const
Get the color used for drawing operations (Rect, Line and Clear).
Definition SDL3pp_render.h:6692
void SetGPURenderStateFragmentUniforms(GPURenderStateRef state, Uint32 slot_index, const void *data, Uint32 length)
Set fragment shader uniform variables in a custom GPU render state.
Definition SDL3pp_render.h:8238
int GetTextureHeight(TextureConstRef texture)
Get the height in pixels.
Definition SDL3pp_render.h:5004
void SetScaleMode(ScaleMode scaleMode)
Set the scale mode used for texture scale operations.
Definition SDL3pp_render.h:5516
::Sint64 Sint64
A signed 64-bit integer type.
Definition SDL3pp_stdinc.h:305
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition SDL3pp_stdinc.h:290
::Uint8 Uint8
An unsigned 8-bit integer type.
Definition SDL3pp_stdinc.h:238
SDL_FlipMode FlipMode
The flip mode.
Definition SDL3pp_surface.h:127
SDL_ScaleMode ScaleMode
The scaling mode.
Definition SDL3pp_surface.h:98
SDL_Surface * SurfaceRaw
Alias to raw representation for Surface.
Definition SDL3pp_surface.h:44
ResourceConstRef< SurfaceRaw, SurfaceRawConst > SurfaceConstRef
Safely wrap Surface for non owning const parameters.
Definition SDL3pp_surface.h:57
ResourceRef< Surface > SurfaceRef
Reference for Surface.
Definition SDL3pp_surface.h:54
ResourceRef< Window > WindowRef
Reference for Window.
Definition SDL3pp_video.h:54
Uint64 WindowFlags
The flags on a window.
Definition SDL3pp_video.h:515
SDL_Window * WindowRaw
Alias to raw representation for Window.
Definition SDL3pp_video.h:47
ResourceRef< Renderer > RendererRef
Reference for Renderer.
Definition SDL3pp_video.h:75
Properties for Renderer creation.
Definition SDL3pp_render.h:3851
constexpr auto SURFACE_POINTER
Pointer to surface.
Definition SDL3pp_render.h:3859
constexpr auto PRESENT_VSYNC_NUMBER
Number for present vsync.
Definition SDL3pp_render.h:3866
constexpr auto VULKAN_PHYSICAL_DEVICE_POINTER
Pointer to vulkan physical device.
Definition SDL3pp_render.h:3894
constexpr auto VULKAN_INSTANCE_POINTER
Pointer to vulkan instance.
Definition SDL3pp_render.h:3887
constexpr auto VULKAN_SURFACE_NUMBER
Vulkan surface number.
Definition SDL3pp_render.h:3891
constexpr auto GPU_SHADERS_SPIRV_BOOLEAN
Enable gpu shaders spirv.
Definition SDL3pp_render.h:3874
constexpr auto GPU_SHADERS_DXIL_BOOLEAN
Enable gpu shaders dxil.
Definition SDL3pp_render.h:3878
constexpr auto OUTPUT_COLORSPACE_NUMBER
Number for output colorspace.
Definition SDL3pp_render.h:3862
constexpr auto VULKAN_DEVICE_POINTER
Pointer to vulkan device.
Definition SDL3pp_render.h:3899
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_render.h:3853
constexpr auto VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER
Vulkan graphics queue family index number.
Definition SDL3pp_render.h:3902
constexpr auto VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER
Vulkan present queue family index number.
Definition SDL3pp_render.h:3910
constexpr auto GPU_DEVICE_POINTER
Pointer to gpu device.
Definition SDL3pp_render.h:3871
constexpr auto GPU_SHADERS_MSL_BOOLEAN
Enable gpu shaders msl.
Definition SDL3pp_render.h:3882
constexpr auto WINDOW_POINTER
Pointer to window.
Definition SDL3pp_render.h:3856
Properties for Renderer.
Definition SDL3pp_render.h:3851
constexpr auto WINDOW_POINTER
Pointer to window.
Definition SDL3pp_render.h:4163
constexpr auto VULKAN_PHYSICAL_DEVICE_POINTER
Pointer to vulkan physical device.
Definition SDL3pp_render.h:4222
constexpr auto TEXTURE_FORMATS_POINTER
Pointer to texture formats.
Definition SDL3pp_render.h:4175
constexpr auto MAX_TEXTURE_SIZE_NUMBER
Number for max texture size.
Definition SDL3pp_render.h:4172
constexpr auto D3D12_DEVICE_POINTER
Pointer to d3d12 device.
Definition SDL3pp_render.h:4206
constexpr auto VULKAN_SURFACE_NUMBER
Vulkan surface number.
Definition SDL3pp_render.h:4219
constexpr auto D3D11_DEVICE_POINTER
Pointer to d3d11 device.
Definition SDL3pp_render.h:4200
constexpr auto VULKAN_DEVICE_POINTER
Pointer to vulkan device.
Definition SDL3pp_render.h:4226
constexpr auto GPU_DEVICE_POINTER
Pointer to gpu device.
Definition SDL3pp_render.h:4246
constexpr auto SURFACE_POINTER
Pointer to surface.
Definition SDL3pp_render.h:4166
constexpr auto D3D12_SWAPCHAIN_POINTER
Pointer to d3d12 swapchain.
Definition SDL3pp_render.h:4209
constexpr auto D3D12_COMMAND_QUEUE_POINTER
Pointer to d3d12 command queue.
Definition SDL3pp_render.h:4212
constexpr auto SDR_WHITE_POINT_FLOAT
Float for sdr white point.
Definition SDL3pp_render.h:4191
constexpr auto VULKAN_INSTANCE_POINTER
Pointer to vulkan instance.
Definition SDL3pp_render.h:4216
constexpr auto HDR_ENABLED_BOOLEAN
Hdr enabled enabled.
Definition SDL3pp_render.h:4188
constexpr auto TEXTURE_WRAPPING_BOOLEAN
Texture wrapping enabled.
Definition SDL3pp_render.h:4180
constexpr auto VSYNC_NUMBER
Number for vsync.
Definition SDL3pp_render.h:4169
constexpr auto VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER
Number for vulkan graphics queue family index.
Definition SDL3pp_render.h:4229
constexpr auto D3D11_SWAPCHAIN_POINTER
Pointer to d3d11 swapchain.
Definition SDL3pp_render.h:4203
constexpr auto VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER
Number for vulkan present queue family index.
Definition SDL3pp_render.h:4236
constexpr auto VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER
Vulkan swapchain image count.
Definition SDL3pp_render.h:4242
constexpr auto HDR_HEADROOM_FLOAT
Float for hdr headroom.
Definition SDL3pp_render.h:4194
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_render.h:4160
constexpr auto D3D9_DEVICE_POINTER
Pointer to d3d9 device.
Definition SDL3pp_render.h:4197
constexpr auto OUTPUT_COLORSPACE_NUMBER
Number for output colorspace.
Definition SDL3pp_render.h:4185
Properties for Texture creation.
Definition SDL3pp_render.h:4601
constexpr auto PALETTE_POINTER
Pointer to palette.
Definition SDL3pp_render.h:4620
constexpr auto METAL_PIXELBUFFER_POINTER
Pointer to metal pixelbuffer.
Definition SDL3pp_render.h:4653
constexpr auto FORMAT_NUMBER
Number for format.
Definition SDL3pp_render.h:4606
constexpr auto WIDTH_NUMBER
Number for width.
Definition SDL3pp_render.h:4612
constexpr auto HEIGHT_NUMBER
Number for height.
Definition SDL3pp_render.h:4615
constexpr auto D3D12_TEXTURE_U_POINTER
Pointer to d3d12 texture u.
Definition SDL3pp_render.h:4645
constexpr auto OPENGLES2_TEXTURE_V_NUMBER
Opengles2 texture v number.
Definition SDL3pp_render.h:4684
constexpr auto SDR_WHITE_POINT_FLOAT
Float for sdr white point.
Definition SDL3pp_render.h:4625
constexpr auto D3D11_TEXTURE_POINTER
Pointer to d3d11 texture.
Definition SDL3pp_render.h:4631
constexpr auto OPENGL_TEXTURE_V_NUMBER
Opengl texture v number.
Definition SDL3pp_render.h:4668
constexpr auto COLORSPACE_NUMBER
Number for colorspace.
Definition SDL3pp_render.h:4603
constexpr auto GPU_TEXTURE_V_POINTER
Pointer to gpu texture v.
Definition SDL3pp_render.h:4707
constexpr auto D3D12_TEXTURE_POINTER
Pointer to d3d12 texture.
Definition SDL3pp_render.h:4642
constexpr auto OPENGL_TEXTURE_NUMBER
Opengl texture number.
Definition SDL3pp_render.h:4657
constexpr auto GPU_TEXTURE_POINTER
Pointer to gpu texture.
Definition SDL3pp_render.h:4697
constexpr auto GPU_TEXTURE_U_POINTER
Pointer to gpu texture u.
Definition SDL3pp_render.h:4704
constexpr auto OPENGLES2_TEXTURE_UV_NUMBER
Opengles2 texture uv number.
Definition SDL3pp_render.h:4676
constexpr auto D3D11_TEXTURE_U_POINTER
Pointer to d3d11 texture u.
Definition SDL3pp_render.h:4634
constexpr auto OPENGL_TEXTURE_U_NUMBER
Opengl texture u number.
Definition SDL3pp_render.h:4664
constexpr auto GPU_TEXTURE_UV_POINTER
Pointer to gpu texture uv.
Definition SDL3pp_render.h:4700
constexpr auto OPENGLES2_TEXTURE_NUMBER
Opengles2 texture number.
Definition SDL3pp_render.h:4672
constexpr auto HDR_HEADROOM_FLOAT
Float for hdr headroom.
Definition SDL3pp_render.h:4628
constexpr auto D3D11_TEXTURE_V_POINTER
Pointer to d3d11 texture v.
Definition SDL3pp_render.h:4638
constexpr auto OPENGLES2_TEXTURE_U_NUMBER
Opengles2 texture u number.
Definition SDL3pp_render.h:4680
constexpr auto D3D12_TEXTURE_V_POINTER
Pointer to d3d12 texture v.
Definition SDL3pp_render.h:4649
constexpr auto ACCESS_NUMBER
Number for access.
Definition SDL3pp_render.h:4609
constexpr auto OPENGL_TEXTURE_UV_NUMBER
Opengl texture uv number.
Definition SDL3pp_render.h:4660
constexpr auto VULKAN_TEXTURE_NUMBER
Vulkans texture number.
Definition SDL3pp_render.h:4688
constexpr auto VULKAN_LAYOUT_NUMBER
Number for vulkan layout.
Definition SDL3pp_render.h:4694
Properties for Texture.
Definition SDL3pp_render.h:4601
constexpr auto OPENGL_TEX_W_FLOAT
Float for opengl tex w.
Definition SDL3pp_render.h:4886
constexpr auto D3D11_TEXTURE_U_POINTER
Pointer to d3d11 texture u.
Definition SDL3pp_render.h:4855
constexpr auto SDR_WHITE_POINT_FLOAT
Float for sdr white point.
Definition SDL3pp_render.h:4846
constexpr auto WIDTH_NUMBER
Number for width.
Definition SDL3pp_render.h:4840
constexpr auto VULKAN_TEXTURE_NUMBER
Vulkan texture number.
Definition SDL3pp_render.h:4911
constexpr auto D3D11_TEXTURE_V_POINTER
Pointer to d3d11 texture v.
Definition SDL3pp_render.h:4858
constexpr auto OPENGLES2_TEXTURE_NUMBER
Opengles2 texture number.
Definition SDL3pp_render.h:4892
constexpr auto D3D12_TEXTURE_U_POINTER
Pointer to d3d12 texture u.
Definition SDL3pp_render.h:4864
constexpr auto D3D12_TEXTURE_POINTER
Pointer to d3d12 texture.
Definition SDL3pp_render.h:4861
constexpr auto OPENGL_TEXTURE_TARGET_NUMBER
Opengl texture target number.
Definition SDL3pp_render.h:4882
constexpr auto OPENGLES2_TEXTURE_TARGET_NUMBER
Opengles2 texture target number.
Definition SDL3pp_render.h:4907
constexpr auto OPENGLES2_TEXTURE_V_NUMBER
Opengles2 texture v number.
Definition SDL3pp_render.h:4903
constexpr auto COLORSPACE_NUMBER
Number for colorspace.
Definition SDL3pp_render.h:4831
constexpr auto OPENGL_TEXTURE_NUMBER
Opengl texture number.
Definition SDL3pp_render.h:4870
constexpr auto OPENGL_TEXTURE_V_NUMBER
Opengl texture v number.
Definition SDL3pp_render.h:4879
constexpr auto GPU_TEXTURE_V_POINTER
Pointer to gpu texture v.
Definition SDL3pp_render.h:4925
constexpr auto OPENGL_TEXTURE_UV_NUMBER
Opengl texture uv number.
Definition SDL3pp_render.h:4873
constexpr auto FORMAT_NUMBER
Number for format.
Definition SDL3pp_render.h:4834
constexpr auto OPENGL_TEX_H_FLOAT
Float for opengl tex h.
Definition SDL3pp_render.h:4889
constexpr auto OPENGLES2_TEXTURE_UV_NUMBER
Opengles2 texture uv number.
Definition SDL3pp_render.h:4895
constexpr auto OPENGL_TEXTURE_U_NUMBER
Opengl texture u number.
Definition SDL3pp_render.h:4876
constexpr auto GPU_TEXTURE_U_POINTER
Pointer to gpu texture u.
Definition SDL3pp_render.h:4922
constexpr auto HDR_HEADROOM_FLOAT
Float for hdr headroom.
Definition SDL3pp_render.h:4849
constexpr auto ACCESS_NUMBER
Number for access.
Definition SDL3pp_render.h:4837
constexpr auto GPU_TEXTURE_UV_POINTER
Pointer to gpu texture uv.
Definition SDL3pp_render.h:4919
constexpr auto OPENGLES2_TEXTURE_U_NUMBER
Opengles2 texture u number.
Definition SDL3pp_render.h:4899
constexpr auto D3D12_TEXTURE_V_POINTER
Pointer to d3d12 texture v.
Definition SDL3pp_render.h:4867
constexpr auto HEIGHT_NUMBER
Number for height.
Definition SDL3pp_render.h:4843
constexpr auto GPU_TEXTURE_POINTER
Pointer to gpu texture.
Definition SDL3pp_render.h:4916
constexpr auto D3D11_TEXTURE_POINTER
Pointer to d3d11 texture.
Definition SDL3pp_render.h:4852
Main include header for the SDL3pp library.
Sint32 narrowS32(T value)
Narrows to Sint32.
Definition SDL3pp_stdinc.h:6257
A structure that represents a color as RGBA components.
Definition SDL3pp_pixels.h:2145
The bits of this structure can be directly reinterpreted as a float-packed color which uses the PIXEL...
Definition SDL3pp_pixels.h:2318
The structure that defines a point (using floating point values).
Definition SDL3pp_rect.h:526
A rectangle stored using floating point values.
Definition SDL3pp_rect.h:1457
A custom GPU render state.
Definition SDL3pp_render.h:8091
constexpr GPURenderState & operator=(GPURenderState &&other) noexcept
Assignment operator.
Definition SDL3pp_render.h:8143
constexpr ResourceBase(RawPointer resource)
Constructs from resource pointer.
Definition SDL3pp_resource.h:29
~GPURenderState()
Destructor.
Definition SDL3pp_render.h:8140
constexpr GPURenderState(const GPURenderState &other)=delete
Copy constructor.
constexpr GPURenderState(GPURenderState &&other) noexcept
Move constructor.
Definition SDL3pp_render.h:8110
constexpr GPURenderState(GPURenderStateRaw resource) noexcept
Constructs from raw GPURenderState.
Definition SDL3pp_render.h:8101
GPURenderState & operator=(const GPURenderState &other)=delete
Assignment operator.
A set of indexed colors representing a palette.
Definition SDL3pp_pixels.h:2463
static Palette Borrow(PaletteRaw resource)
Safely borrows the from PaletteRaw.
Definition SDL3pp_pixels.h:2517
The structure that defines a point (using integers).
Definition SDL3pp_rect.h:97
A rectangle, with the origin at the upper left (using integers).
Definition SDL3pp_rect.h:859
A structure representing rendering state.
Definition SDL3pp_render.h:220
constexpr ResourceBase(RawPointer resource)
Constructs from resource pointer.
Definition SDL3pp_resource.h:29
constexpr Renderer(Renderer &&other) noexcept
Move constructor.
Definition SDL3pp_render.h:239
constexpr Renderer(RendererRaw resource) noexcept
Constructs from raw Renderer.
Definition SDL3pp_render.h:230
Renderer & operator=(const Renderer &other)=delete
Assignment operator.
constexpr Renderer & operator=(Renderer &&other) noexcept
Assignment operator.
Definition SDL3pp_render.h:369
~Renderer()
Destructor.
Definition SDL3pp_render.h:366
constexpr Renderer(const Renderer &other)=delete
Copy constructor.
A non-owning reference wrapper for a given resource.
Definition SDL3pp_resource.h:156
A collection of pixels used in software blitting.
Definition SDL3pp_surface.h:172
constexpr Surface & operator=(Surface &&other) noexcept
Assignment operator.
Definition SDL3pp_surface.h:356
constexpr Surface(SurfaceRaw resource) noexcept
Constructs from raw Surface.
Definition SDL3pp_surface.h:182
static Surface Borrow(SurfaceRaw resource)
Safely borrows the from SurfaceRaw.
Definition SDL3pp_surface.h:340
An efficient driver-specific representation of pixel data.
Definition SDL3pp_render.h:2249
constexpr Texture & operator=(Texture &&other) noexcept
Assignment operator.
Definition SDL3pp_render.h:2549
static Texture Borrow(TextureRaw resource)
Safely borrows the from TextureRaw.
Definition SDL3pp_render.h:2533
constexpr ResourceBase(RawPointer resource)
Constructs from resource pointer.
Definition SDL3pp_resource.h:29
constexpr Texture(const Texture &other)
Copy constructor.
Definition SDL3pp_render.h:2265
Texture & operator=(const Texture &other)
Assignment operator.
Definition SDL3pp_render.h:2556
~Texture()
Destructor.
Definition SDL3pp_render.h:2546
constexpr Texture(TextureRaw resource) noexcept
Constructs from raw Texture.
Definition SDL3pp_render.h:2259
constexpr Texture(Texture &&other) noexcept
Move constructor.
Definition SDL3pp_render.h:2272
The struct used as an opaque handle to a window.
Definition SDL3pp_video.h:748
constexpr Window(WindowRaw resource) noexcept
Constructs from raw Window.
Definition SDL3pp_video.h:758