![]() |
![]() |
||||||||||||||||||||||||||||||
|
SDL ile image yükleme ve gösterme Bu bölümde sdl de image yükleme ve gösterme konularından bahsedeceğiz.
SDL normalde bmp resim formatını desteklemektedir. (öğrendiğim kadarıyla) Ancak farklı formatları da desteklemesi için SDL_image.lib yüklenebilir. Böylece png gibi formatlar da desteklenir.(ilerde bahsedeceğiz...) Yüklenen image verilerini tutmak için SDL_Surface struct yapısı kullanılabilir.Bmp formatındaki verileri yüklemek için --SDL_LoadBMP(dosyaismi)-- fonksiyonu kullanılcaktır.Bu fonksiyona parametre olarak .bmp dosya ismi verilir.[Not:Çalışma dizininde değilse adres yolu ile veriniz...] CODE: SDL_Surface * screen = SDL_LoadBMP(filename); şeklinde bir .bmp verisini kolaylıkla yükleyebilirsiniz.Yüklediğiniz veriniz 24 bit olacaktır.Ancak ekran bilginiz 32 bittir.Bu nedenle bu screen verisi formatında ekran formatına uygun bir ayar yapmak gerekir. CODE: SDL_Surface * newScreen = SDL_DisplayFormat(screen) ; SDL_FreeSurface(screen); ile kullanılabilir bir format elde etmiş olursunuz.Peki bu format değişimi yapmazsak : SDL bu konuda bir çevrim işlemi yapıyormuş.Ancak bu işlem zaman ve kaynak harcayan bir süreç olduğu için biz en iyisi ona bırakmamalıymışız. Ayrıca SDL_FreeSurface fonksiyonu ile eski screen verisini temizlemiş olduk. Şimdi elimizde bir yüzeye yapıştırılacak etiketimiz yani yüzeyimiz oldu.Bundan sonrası bir yüzek almak ve üzerine bunu yapıştırmaktır. Öncelikle bir SDL_Rect (dörtgen) nesnesi oluşturulur.Bunun offset olarak başlangıç x,y lerini veriniz.Ekranda nerden başlanarak yapıştırma yapılacağına dair.(ben böyle anladım :) ) Sonra blitsurface yani yapıştır. İşte bu kadar.Ancak henüz asıl penceremizi oluşturmadık. CODE: SDL_Surface * screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); SDL_WM_SetCaption( "Hello World", NULL ); pencemizi oluşturalim.SetCaption ile de güzel bir başlık verelim.Penceremiz oluşturulduktan ve ayarlandıktan sonra onu update etmeliyiz ki değişikliği görebilelim.İşte flip fonksiyonumuz ve screen imiz. CODE: SDL_Flip( screen ); Kaynak kod: hakan gedek hgedek@gmail.com YorumlarHiç yorum yapılmamış |
|||||||||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||||||||