SDLPainter
1.4.0
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
14
class
Texture {
15
public
:
16
explicit
Texture(
IRenderer
* renderer =
nullptr
) : mRenderer(renderer) {}
17
Texture(
IRenderer
* renderer, TextureHandle handle)
18
: mRenderer(renderer), mHandle(handle) {}
19
20
~Texture() {
Reset
(); }
21
22
// Non-copyable
23
Texture(
const
Texture&) =
delete
;
24
Texture& operator=(
const
Texture&) =
delete
;
25
26
// Movable
27
Texture(Texture&& other) noexcept
28
: mRenderer(other.mRenderer), mHandle(other.mHandle) {
29
other.mRenderer =
nullptr
;
30
other.mHandle = kInvalidTexture;
31
}
32
33
Texture& operator=(Texture&& other)
noexcept
{
34
if
(
this
!= &other) {
35
Reset
();
36
mRenderer = other.mRenderer;
37
mHandle = other.mHandle;
38
other.mRenderer =
nullptr
;
39
other.mHandle = kInvalidTexture;
40
}
41
return
*
this
;
42
}
43
45
void
Reset
() {
46
if
(mRenderer && mHandle != kInvalidTexture) {
47
mRenderer->DestroyTexture(mHandle);
48
}
49
mHandle = kInvalidTexture;
50
mRenderer =
nullptr
;
51
}
52
54
[[nodiscard]] TextureHandle
Handle
() const noexcept {
return
mHandle; }
55
57
[[nodiscard]]
IRenderer
*
Owner
() const noexcept {
return
mRenderer; }
58
60
[[nodiscard]]
bool
IsValid
() const noexcept {
61
return
mHandle != kInvalidTexture;
62
}
63
64
private
:
65
IRenderer
* mRenderer{
nullptr
};
66
TextureHandle mHandle{kInvalidTexture};
67
};
68
69
}
// namespace sdl_painter
sdl_painter::IRenderer
Backend-agnostik soyut renderer arayüzü.
Definition
renderer.h:77
sdl_painter::Texture::Handle
TextureHandle Handle() const noexcept
Ham handle'ı al.
Definition
texture.h:54
sdl_painter::Texture::Owner
IRenderer * Owner() const noexcept
Texture'ı oluşturan renderer'ı döner (yüklenmemişse nullptr).
Definition
texture.h:57
sdl_painter::Texture::IsValid
bool IsValid() const noexcept
Geçerli bir texture mı?
Definition
texture.h:60
sdl_painter::Texture::Reset
void Reset()
Texture'ı serbest bırak.
Definition
texture.h:45
include
sdl_painter
texture.h
Oluşturan
1.18.0