SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2B çizim kütüphanesi
Yüklüyor...
Arıyor...
Eşleşme Yok
Public Üye Fonksiyonlar | Tüm üyelerin listesi
sdl_painter::RenderTarget Sınıf Referans

Ekran yerine çizilebilen offscreen bir yüzey (dokuya çizim). Ayrıntılar...

#include <render_target.h>

Public Üye Fonksiyonlar

 RenderTarget ()=default
 Geçersiz (boş) hedef.
 
bool IsValid () const noexcept
 Hedef başarıyla oluşturuldu mu?
 
int32_t Width () const noexcept
 Genişlik (piksel).
 
int32_t Height () const noexcept
 Yükseklik (piksel).
 
RenderTargetHandle Handle () const noexcept
 Backend tanımlayıcısı — ileri düzey kullanım için.
 
void Reset () noexcept
 Hedefi kaynaklarıyla birlikte serbest bırak.
 

Ayrıntılı tanımlama

Ekran yerine çizilebilen offscreen bir yüzey (dokuya çizim).

QPainter'da QImage'e çizmenin karşılığı. Tipik akış: sahneyi hedefe çiz, sonra hedefi tek bir görüntü gibi ekrana bas. Mini harita, son işlem efektleri (bulanıklık, renk süzgeci), iz/hayalet efekti ve pahalı ama nadir değişen katmanların önbelleklenmesi bu yolla yapılır.

Nesne Painter::CreateRenderTarget ile üretilir; doğrudan kurulamaz.

auto target = painter.CreateRenderTarget(256, 256);
painter.SetRenderTarget(target); // artık çizimler hedefe gider
painter.Clear(sdl_painter::Color::Transparent());
painter.FillCircle(128.0F, 128.0F, 100.0F);
painter.ResetRenderTarget(); // ekrana dön
painter.DrawRenderTarget(target, sdl_painter::Rect{10, 10, 128, 128});
2B dikdörtgen — sol üst köşe + genişlik/yükseklik.
Definition geometry.h:34
Koordinatlar
Hedef bağlıyken çizim koordinatları hedefe yereldir: (0, 0) hedefin sol üst köşesidir ve projeksiyon hedefin boyutuna göre kurulur. İki backend'de de aynı: OpenGL'in aşağıdan yukarı framebuffer'ı ile Vulkan'ın yukarıdan aşağı olanı arasındaki fark kütüphane içinde kapatılır, sonuç piksel piksel aynıdır.
Piksel formatı
Hedefler daima doğrusal RGBA8 tutar — ekran yüzeyinin formatı ne olursa olsun. Painter::ReadRenderTarget bu yüzden her platformda aynı baytları döndürür.
Uyarı
Yaşam döngüsü sözleşmesi: Bir RenderTarget, onu üreten Painter yaşıyorken yıkılmalıdır — Image ve Font ile aynı kural. Painter yok olduktan sonra yıkılırsa sahip pointer dangling olur.
Bir hedefe çizerken o hedefin kendi içeriğini örneklemek tanımsızdır. Önce Painter::ResetRenderTarget çağırın.

Üye Fonksiyon Dokümantasyonu

◆ Reset()

void sdl_painter::RenderTarget::Reset ( )
noexcept

Hedefi kaynaklarıyla birlikte serbest bırak.

Yıkıcı da bunu çağırır; erken serbest bırakmak isteyen kod için ayrıca açıktır. İkinci çağrı etkisizdir.


Bu sınıf için dokümantasyon aşağıdaki dosyadan üretilmiştir: