Merhaba Erdem,
Bir takım geometrik şekilleri, ekrana yansıtmadan hafızada nasıl yapabileceğimizi biliyor musun? Aslında bir şeyi denedim ama içime sinmedi. Yani çalışıyor fakat doğru mu yapıyorum emin değilim:
SDL_Surface* boşDöndür() {
return SDL_SetVideoMode(GENİŞLİK, YÜKSEKLİK, 0, SDL_DOUBLEBUF);
}
Görünüşe göre, yukarıda boş bir yüzey döndürmek yerine, başlangıçta kurulan ana ekranın yeni özellikler ile donatıp adresini döndürmekten başka bir şey yapmıyor. Çünkü SDL_DOUBLEBUF yerine SDL_FULLSCREEN kullandığımda, o satır işletildiği anda ekran tam ekran oluyor... :blush:
Ancak bu dönen değeri (sanırım sadece ana ekranın kopyası?) SDL_DisplayFormat() ile kullandığımda sanki ana ekrandan bağımsız boş yüzeyim oluyor ve orada her türlü oluşturma (generate) ve kesme (mask) işlemi yapabildiğim fark ettim. Yani ortada bir soru/sorun yok gibi ama cevaptan emin değilim...
İşye yukarıdaki işlevi şu şekilde (basit bir örnekle) kullanabiliyorum:
SDL_Surface * yatayKalınÇizgi() {
SDL_Surface * img = SDL_DisplayFormat(boşDöndür());
foreach(a; 0..img.pitch) {
(cast(uint*)img.pixels)
[img.pitch + a] = 0xFF0000;
}
return img;
}
Bir de SDL_MUSTLOCK() kullanmıyorum, kötü yapıyorum dersin?
Teşekkürler...
Alıntı (acehreli):
> Yine tamsayı bölme işleminin gazabına uğramışsın. :D 1000 / 120'nin sonucu 8.333... değildir. ;)
Lanet olsun, lanet olsun... :-D
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]