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
image.h
1
#pragma once
2
3
#include "sdl_painter/export.h"
4
#include "sdl_painter/renderer.h"
5
#include "sdl_painter/texture.h"
6
7
#include <cstdint>
8
#include <memory>
9
#include <string>
10
11
namespace
sdl_painter {
12
13
class
IRenderer
;
14
21
enum class
ImageFlip : uint8_t {
22
kNone,
23
kHorizontal,
24
kVertical,
25
kBoth,
26
};
27
38
class
SDLPAINTER_API Image {
39
public
:
40
Image() =
default
;
41
43
explicit
Image
(
const
std::string& file_path);
44
45
~Image();
46
47
// Non-copyable, movable
48
Image(
const
Image&) =
delete
;
49
Image& operator=(
const
Image&) =
delete
;
50
Image(Image&&) noexcept;
51
Image& operator=(Image&&) noexcept;
52
54
[[nodiscard]]
bool
IsValid
() const noexcept {
return
mRawData !=
nullptr
; }
55
57
[[nodiscard]] int32_t
Width
() const noexcept {
return
mWidth; }
58
60
[[nodiscard]] int32_t
Height
() const noexcept {
return
mHeight; }
61
63
[[nodiscard]] int32_t
Channels
() const noexcept {
return
mChannels; }
64
66
[[nodiscard]]
const
uint8_t*
RawData
() const noexcept {
67
return
mRawData.get();
68
}
69
73
[[nodiscard]]
static
Image
CreateFromData
(
const
uint8_t* data, int32_t width,
74
int32_t height, int32_t channels);
75
84
void
SetFilter
(TextureFilter filter)
noexcept
{ mFilter = filter; }
85
87
[[nodiscard]] TextureFilter
GetFilter
() const noexcept {
return
mFilter; }
88
90
TextureHandle
Upload
(
IRenderer
& renderer)
const
;
91
93
[[nodiscard]] TextureHandle
GetHandle
() const noexcept {
94
return
mHandle.Handle();
95
}
96
97
private
:
98
struct
StbDeleter {
99
void
operator()(uint8_t* ptr)
const
;
100
};
101
102
std::unique_ptr<uint8_t, StbDeleter> mRawData;
103
int32_t mWidth{0};
104
int32_t mHeight{0};
105
int32_t mChannels{0};
106
TextureFilter mFilter{TextureFilter::kLinear};
107
mutable
Texture
108
mHandle;
109
};
110
111
}
// namespace sdl_painter
sdl_painter::IRenderer
Backend-agnostik soyut renderer arayüzü.
Definition
renderer.h:77
sdl_painter::Image::GetFilter
TextureFilter GetFilter() const noexcept
Yürürlükteki örnekleme filtresi.
Definition
image.h:87
sdl_painter::Image::Width
int32_t Width() const noexcept
Görüntü genişliği (piksel).
Definition
image.h:57
sdl_painter::Image::IsValid
bool IsValid() const noexcept
Görüntü başarıyla yüklendi mi?
Definition
image.h:54
sdl_painter::Image::GetHandle
TextureHandle GetHandle() const noexcept
Önceden yüklenmiş texture tanımlayıcısını döner (kInvalidTexture → henüz yüklenmedi).
Definition
image.h:93
sdl_painter::Image::SetFilter
void SetFilter(TextureFilter filter) noexcept
Örnekleme filtresini ayarla.
Definition
image.h:84
sdl_painter::Image::Channels
int32_t Channels() const noexcept
Kanal sayısı (1 = gri, 2 = gri+alfa, 3 = RGB, 4 = RGBA).
Definition
image.h:63
sdl_painter::Image::CreateFromData
static Image CreateFromData(const uint8_t *data, int32_t width, int32_t height, int32_t channels)
Ham piksel verisinden görüntü oluştur (veriler kopyalanır).
sdl_painter::Image::RawData
const uint8_t * RawData() const noexcept
Ham piksel verisi (stb_image tarafından yüklendi).
Definition
image.h:66
sdl_painter::Image::Height
int32_t Height() const noexcept
Görüntü yüksekliği (piksel).
Definition
image.h:60
sdl_painter::Image::Image
Image(const std::string &file_path)
Dosyadan görüntü yükle. Başarısız olursa IsValid() false döner.
sdl_painter::Image::Upload
TextureHandle Upload(IRenderer &renderer) const
Texture'ı renderer'a yükle; ikinci çağrıda önbelleği döner.
include
sdl_painter
image.h
Oluşturan
1.18.0