SDLPainter
1.2.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
39
class
SDLPAINTER_API Image {
40
public
:
41
Image() =
default
;
42
44
explicit
Image
(
const
std::string& file_path);
45
46
~Image();
47
48
// Non-copyable, movable
49
Image(
const
Image&) =
delete
;
50
Image& operator=(
const
Image&) =
delete
;
51
Image(Image&&) noexcept;
52
Image& operator=(Image&&) noexcept;
53
55
[[nodiscard]]
bool
IsValid
() const noexcept {
return
mRawData !=
nullptr
; }
56
58
[[nodiscard]] int32_t
Width
() const noexcept {
return
mWidth; }
59
61
[[nodiscard]] int32_t
Height
() const noexcept {
return
mHeight; }
62
64
[[nodiscard]] int32_t
Channels
() const noexcept {
return
mChannels; }
65
67
[[nodiscard]]
const
uint8_t*
RawData
() const noexcept {
68
return
mRawData.get();
69
}
70
74
[[nodiscard]]
static
Image
CreateFromData
(
const
uint8_t* data, int32_t width,
75
int32_t height, int32_t channels);
76
85
void
SetFilter
(TextureFilter filter)
noexcept
{ mFilter = filter; }
86
88
[[nodiscard]] TextureFilter
GetFilter
() const noexcept {
return
mFilter; }
89
91
TextureHandle
Upload
(
IRenderer
& renderer)
const
;
92
94
[[nodiscard]] TextureHandle
GetHandle
() const noexcept {
95
return
mHandle.Handle();
96
}
97
98
private
:
99
struct
StbDeleter {
100
void
operator()(uint8_t* ptr)
const
;
101
};
102
103
std::unique_ptr<uint8_t, StbDeleter> mRawData;
104
int32_t mWidth{0};
105
int32_t mHeight{0};
106
int32_t mChannels{0};
107
TextureFilter mFilter{TextureFilter::kLinear};
108
mutable
Texture
109
mHandle;
110
};
111
112
}
// namespace sdl_painter
sdl_painter::IRenderer
Backend-agnostik soyut renderer arayüzü.
Definition
renderer.h:64
sdl_painter::Image::GetFilter
TextureFilter GetFilter() const noexcept
Yürürlükteki örnekleme filtresi.
Definition
image.h:88
sdl_painter::Image::Width
int32_t Width() const noexcept
Görüntü genişliği (piksel).
Definition
image.h:58
sdl_painter::Image::IsValid
bool IsValid() const noexcept
Görüntü başarıyla yüklendi mi?
Definition
image.h:55
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:94
sdl_painter::Image::SetFilter
void SetFilter(TextureFilter filter) noexcept
Örnekleme filtresini ayarla.
Definition
image.h:85
sdl_painter::Image::Channels
int32_t Channels() const noexcept
Kanal sayısı (3 = RGB, 4 = RGBA).
Definition
image.h:64
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:67
sdl_painter::Image::Height
int32_t Height() const noexcept
Görüntü yüksekliği (piksel).
Definition
image.h:61
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