SDLPainter 1.4.0
SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
Yüklüyor...
Arıyor...
Eşleşme Yok
render_target.h
1#pragma once
2
3#include "sdl_painter/export.h"
4#include "sdl_painter/renderer.h"
5
6#include <cstdint>
7#include <memory>
8
9namespace sdl_painter {
10
11class IRenderer;
12class Painter;
13
58class SDLPAINTER_API RenderTarget {
59 public:
61 RenderTarget() = default;
62
64
65 // Non-copyable, movable — GPU kaynağı sahipliği tekil.
66 RenderTarget(const RenderTarget&) = delete;
67 RenderTarget& operator=(const RenderTarget&) = delete;
68 RenderTarget(RenderTarget&& other) noexcept;
69 RenderTarget& operator=(RenderTarget&& other) noexcept;
70
72 [[nodiscard]] bool IsValid() const noexcept {
73 return mHandle != kInvalidRenderTarget;
74 }
75
77 [[nodiscard]] int32_t Width() const noexcept { return mWidth; }
78
80 [[nodiscard]] int32_t Height() const noexcept { return mHeight; }
81
83 [[nodiscard]] RenderTargetHandle Handle() const noexcept { return mHandle; }
84
91 void Reset() noexcept;
92
93 private:
94 friend class Painter;
95
101 RenderTarget(IRenderer* owner, RenderTargetHandle handle, int32_t width,
102 int32_t height, std::shared_ptr<Painter*> painter) noexcept
103 : mOwner(owner),
104 mHandle(handle),
105 mWidth(width),
106 mHeight(height),
107 mPainter(std::move(painter)) {}
108
109 IRenderer* mOwner{nullptr};
110 RenderTargetHandle mHandle{kInvalidRenderTarget};
111 int32_t mWidth{0};
112 int32_t mHeight{0};
113
120 std::shared_ptr<Painter*> mPainter;
121};
122
123} // namespace sdl_painter
Backend-agnostik soyut renderer arayüzü.
Definition renderer.h:77
Ana çizim sınıfı
Definition painter.h:63
int32_t Width() const noexcept
Genişlik (piksel).
Definition render_target.h:77
RenderTargetHandle Handle() const noexcept
Backend tanımlayıcısı — ileri düzey kullanım için.
Definition render_target.h:83
void Reset() noexcept
Hedefi kaynaklarıyla birlikte serbest bırak.
RenderTarget()=default
Geçersiz (boş) hedef.
int32_t Height() const noexcept
Yükseklik (piksel).
Definition render_target.h:80
bool IsValid() const noexcept
Hedef başarıyla oluşturuldu mu?
Definition render_target.h:72