SDLPainter
0.1.0
QPainter benzeri SDL3 + OpenGL/Vulkan 2D çizim kütüphanesi
Toggle main menu visibility
Yüklüyor...
Arıyor...
Eşleşme Yok
texture.h
1
#pragma once
2
3
#include "sdl_painter/renderer.h"
4
5
namespace
sdl_painter {
6
15
class
Texture {
16
public
:
17
Texture(
IRenderer
* renderer =
nullptr
) : mRenderer(renderer) {}
18
Texture(
IRenderer
* renderer, TextureHandle handle)
19
: mRenderer(renderer), mHandle(handle) {}
20
21
~Texture() {
Reset
(); }
22
23
// Non-copyable
24
Texture(
const
Texture&) =
delete
;
25
Texture& operator=(
const
Texture&) =
delete
;
26
27
// Movable
28
Texture(Texture&& other) noexcept
29
: mRenderer(other.mRenderer), mHandle(other.mHandle) {
30
other.mRenderer =
nullptr
;
31
other.mHandle = kInvalidTexture;
32
}
33
34
Texture& operator=(Texture&& other)
noexcept
{
35
if
(
this
!= &other) {
36
Reset
();
37
mRenderer = other.mRenderer;
38
mHandle = other.mHandle;
39
other.mRenderer =
nullptr
;
40
other.mHandle = kInvalidTexture;
41
}
42
return
*
this
;
43
}
44
46
void
Reset
() {
47
if
(mRenderer && mHandle != kInvalidTexture) {
48
mRenderer->DestroyTexture(mHandle);
49
}
50
mHandle = kInvalidTexture;
51
mRenderer =
nullptr
;
52
}
53
55
[[nodiscard]] TextureHandle
Handle
() const noexcept {
return
mHandle; }
56
58
[[nodiscard]]
IRenderer
*
Owner
() const noexcept {
return
mRenderer; }
59
61
[[nodiscard]]
bool
IsValid
() const noexcept {
62
return
mHandle != kInvalidTexture;
63
}
64
65
private
:
66
IRenderer
* mRenderer{
nullptr
};
67
TextureHandle mHandle{kInvalidTexture};
68
};
69
70
}
// namespace sdl_painter
sdl_painter::IRenderer
Backend-agnostik soyut renderer arayüzü.
Definition
renderer.h:32
sdl_painter::Texture::Handle
TextureHandle Handle() const noexcept
Ham handle'ı al.
Definition
texture.h:55
sdl_painter::Texture::Owner
IRenderer * Owner() const noexcept
Texture'ı oluşturan renderer'ı döner (yüklenmemişse nullptr).
Definition
texture.h:58
sdl_painter::Texture::IsValid
bool IsValid() const noexcept
Geçerli bir texture mı?
Definition
texture.h:61
sdl_painter::Texture::Reset
void Reset()
Texture'ı serbest bırak.
Definition
texture.h:46
include
sdl_painter
texture.h
Oluşturan
1.17.0