3#include "sdl_painter/export.h"
4#include "sdl_painter/renderer.h"
5#include "sdl_painter/texture.h"
11namespace sdl_painter {
21enum class ImageFlip : uint8_t {
44 explicit Image(
const std::string& file_path);
55 [[nodiscard]]
bool IsValid() const noexcept {
return mRawData !=
nullptr; }
58 [[nodiscard]] int32_t
Width() const noexcept {
return mWidth; }
61 [[nodiscard]] int32_t
Height() const noexcept {
return mHeight; }
64 [[nodiscard]] int32_t
Channels() const noexcept {
return mChannels; }
67 [[nodiscard]]
const uint8_t*
RawData() const noexcept {
68 return mRawData.get();
75 int32_t height, int32_t channels);
85 void SetFilter(TextureFilter filter)
noexcept { mFilter = filter; }
88 [[nodiscard]] TextureFilter
GetFilter() const noexcept {
return mFilter; }
94 [[nodiscard]] TextureHandle
GetHandle() const noexcept {
95 return mHandle.Handle();
100 void operator()(uint8_t* ptr)
const;
103 std::unique_ptr<uint8_t, StbDeleter> mRawData;
106 int32_t mChannels{0};
107 TextureFilter mFilter{TextureFilter::kLinear};
Backend-agnostik soyut renderer arayüzü.
Definition renderer.h:75
Yüklenmiş görüntü — texture sarmalayıcı.
Definition image.h:39
TextureFilter GetFilter() const noexcept
Yürürlükteki örnekleme filtresi.
Definition image.h:88
int32_t Width() const noexcept
Görüntü genişliği (piksel).
Definition image.h:58
TextureHandle GetHandle() const noexcept
Önceden yüklenmiş texture tanımlayıcısını döner (kInvalidTexture → henüz yüklenmedi).
Definition image.h:94
void SetFilter(TextureFilter filter) noexcept
Örnekleme filtresini ayarla.
Definition image.h:85
int32_t Channels() const noexcept
Kanal sayısı (3 = RGB, 4 = RGBA).
Definition image.h:64
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).
const uint8_t * RawData() const noexcept
Ham piksel verisi (stb_image tarafından yüklendi).
Definition image.h:67
int32_t Height() const noexcept
Görüntü yüksekliği (piksel).
Definition image.h:61
Image(const std::string &file_path)
Dosyadan görüntü yükle. Başarısız olursa IsValid() false döner.
TextureHandle Upload(IRenderer &renderer) const
Texture'ı renderer'a yükle; ikinci çağrıda önbelleği döner.