TGUI 1.9.0
|
Render target implementation that uses SDL3's GPU API. More...
#include <TGUI/Backend/Renderer/SDL_GPU/BackendRenderTargetSDLGPU.hpp>
Classes | |
struct | DrawCommand |
Public Member Functions | |
BackendRenderTargetSDLGPU (SDL_GPUDevice *device, SDL_GPUTextureFormat swapchainTextureFormat) | |
Constructor. | |
~BackendRenderTargetSDLGPU () | |
Descructor. | |
void | setClearColor (const Color &color) override |
Select the color that will be used by clearScreen. | |
void | clearScreen () override |
Clears the screen, called at the beginning of each frame when gui.mainLoop() is called. | |
void | setView (FloatRect view, FloatRect viewport, Vector2f targetSize) override |
Informs the render target about which part of the window is used for rendering. | |
void | drawGui (const std::shared_ptr< RootContainer > &) override |
This function is not used by this backend, use drawGui(SDL_GPURenderPass*) instead. | |
bool | prepareDrawGui (const std::shared_ptr< RootContainer > &root, SDL_GPUCommandBuffer *cmdBuffer, SDL_GPUCopyPass *copyPass=nullptr) |
Prepares drawing the gui and all of its widgets. | |
void | drawGui (SDL_GPURenderPass *renderPass) |
Draws the gui and all of its widgets. | |
void | drawVertexArray (const RenderStates &states, const Vertex *vertices, std::size_t vertexCount, const unsigned int *indices, std::size_t indexCount, const std::shared_ptr< BackendTexture > &texture) override |
Draws a vertex array. This is called by the other draw functions. | |
![]() | |
BackendRenderTarget (const BackendRenderTarget &)=delete | |
BackendRenderTarget (BackendRenderTarget &&)=delete | |
BackendRenderTarget & | operator= (const BackendRenderTarget &)=delete |
BackendRenderTarget & | operator= (BackendRenderTarget &&)=delete |
BackendRenderTarget ()=default | |
Default constructor. | |
virtual | ~BackendRenderTarget ()=default |
Virtual destructor. | |
virtual void | drawWidget (const RenderStates &states, const std::shared_ptr< Widget > &widget) |
Draws a widget, if the widget is visible. | |
virtual void | addClippingLayer (const RenderStates &states, FloatRect rect) |
Adds another clipping region. | |
virtual void | removeClippingLayer () |
Removes the last added clipping region. | |
virtual void | drawBorders (const RenderStates &states, const Borders &borders, Vector2f size, Color color) |
Draws borders inside a provided rectangle. | |
virtual void | drawFilledRect (const RenderStates &states, Vector2f size, Color color) |
Draws a colored rectangle. | |
virtual void | drawSprite (const RenderStates &states, const Sprite &sprite) |
Draws a texture. | |
virtual void | drawText (const RenderStates &states, const Text &text) |
Draws some text. | |
virtual void | drawTextOutline (const RenderStates &states, const Text &text) |
Draws only the outline of some text. | |
virtual void | drawTextWithoutOutline (const RenderStates &states, const Text &text) |
Draws some text, but without rendering its outline. | |
virtual void | drawTriangle (const RenderStates &states, const Vertex &point1, const Vertex &point2, const Vertex &point3) |
Draws a single triangles (using the color that is specified in the vertices) | |
virtual void | drawCircle (const RenderStates &states, float size, const Color &backgroundColor, float borderThickness=0, const Color &borderColor={}) |
Draws a circle. | |
virtual void | drawRoundedRectangle (const RenderStates &states, const Vector2f &size, const Color &backgroundColor, float radius, const Borders &borders={0}, const Color &borderColor=Color::Black) |
Draws a rounded rectangle. | |
Vector2f | getPixelsPerPoint () const |
Returns the current mapping between the screen pixels and the points in the current view. | |
Protected Member Functions | |
void | updateClipping (FloatRect clipRect, FloatRect clipViewport) override |
Called from addClippingLayer and removeClippingLayer to apply the clipping. | |
Protected Attributes | |
SDL_GPUDevice * | m_device = nullptr |
SDL_GPUGraphicsPipeline * | m_pipeline = nullptr |
SDL_GPUSampler * | m_samplerNearest = nullptr |
SDL_GPUSampler * | m_samplerLinear = nullptr |
std::unique_ptr< BackendTextureSDLGPU > | m_emptyTexture |
Transform | m_projectionTransform |
std::vector< Vertex > | m_vertices |
std::vector< unsigned int > | m_indices |
SDL_Rect | m_clipRect |
std::vector< DrawCommand > | m_drawCommands |
SDL_GPUBuffer * | m_vertexBuffer = nullptr |
SDL_GPUBuffer * | m_indexBuffer = nullptr |
![]() | |
FloatRect | m_viewRect |
FloatRect | m_viewport |
Vector2f | m_targetSize |
std::vector< std::pair< FloatRect, FloatRect > > | m_clipLayers |
Vector2f | m_pixelsPerPoint = {1, 1} |
Render target implementation that uses SDL3's GPU API.
tgui::BackendRenderTargetSDLGPU::BackendRenderTargetSDLGPU | ( | SDL_GPUDevice * | device, |
SDL_GPUTextureFormat | swapchainTextureFormat ) |
Constructor.
device | Device used for rendering |
swapchainTextureFormat | Texture format returned by SDL_GetGPUSwapchainTextureFormat(device, window) |
|
overridevirtual |
Clears the screen, called at the beginning of each frame when gui.mainLoop() is called.
Implements tgui::BackendRenderTarget.
|
inlineoverridevirtual |
This function is not used by this backend, use drawGui(SDL_GPURenderPass*) instead.
Implements tgui::BackendRenderTarget.
void tgui::BackendRenderTargetSDLGPU::drawGui | ( | SDL_GPURenderPass * | renderPass | ) |
Draws the gui and all of its widgets.
root | Root container that holds all widgets in the gui |
cmdBuffer | Command buffer to add rendering instructions to |
renderPass | Active render pass |
|
overridevirtual |
Draws a vertex array. This is called by the other draw functions.
states | Render states to use for drawing |
vertices | Pointer to first element in array of vertices |
vertexCount | Amount of elements in the vertex array |
indices | Pointer to first element in array of indices |
indexCount | Amount of elements in the indices array |
texture | Texture to use, or nullptr when drawing colored triangles |
Implements tgui::BackendRenderTarget.
bool tgui::BackendRenderTargetSDLGPU::prepareDrawGui | ( | const std::shared_ptr< RootContainer > & | root, |
SDL_GPUCommandBuffer * | cmdBuffer, | ||
SDL_GPUCopyPass * | copyPass = nullptr ) |
Prepares drawing the gui and all of its widgets.
root | Root container that holds all widgets in the gui |
cmdBuffer | Command buffer to add rendering instructions to |
copyPass | Optional active copy pass |
|
overridevirtual |
Select the color that will be used by clearScreen.
color | Background color of the window |
Implements tgui::BackendRenderTarget.
|
overridevirtual |
Informs the render target about which part of the window is used for rendering.
view | Defines which part of the gui is being shown |
viewport | Defines which part of the window is being rendered to |
targetSize | Size of the window |
Reimplemented from tgui::BackendRenderTarget.
|
overrideprotectedvirtual |
Called from addClippingLayer and removeClippingLayer to apply the clipping.
clipRect | View rectangle to apply |
clipViewport | Viewport to apply |
Both rectangles may be empty when nothing that will be drawn is going to be visible.
Implements tgui::BackendRenderTarget.