Nvm Posted February 19, 2008 Report Share Posted February 19, 2008 Hail. Znowu mam problem związany z OpenGL i SDL. Tym razem chodzi o wczytywanie obrazków PNG z kanałem alfa. Otóż mam sobie taki kod (zmienna "Bitmap" to tekstura): procedure LoadToTexture(path : PChar); var PictureFile : PSDL_Surface; //Powierzchnia obrazka do wczytania PictureFormat : PSDL_PixelFormat; //Format pikseli obrazka begin //Wczytaj bitmape PictureFile := IMG_Load(path); glPixelStorei(GL_UNPACK_ALIGNMENT,4); glGenTextures(1, @Bitmap); glBindTexture(GL_Texture_2D, Bitmap); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); //SPRAWDZANIE CZY TEKSTURA MA KANAL ALFA //Ustaw format pikseli obrazu PictureFormat := PictureFile^.Format; //Jesli tekstura ma kanal alfa if PictureFormat^.AMask <> 0 then begin gluBuild2DMipmaps(GL_TEXTURE_2D, 4, PictureFile^.W, PictureFile^.H, GL_BGRA, GL_UNSIGNED_BYTE, PictureFile^.Pixels); end else //W przeciwnym razie begin gluBuild2DMipmaps(GL_TEXTURE_2D, 3, PictureFile^.W, PictureFile^.H, GL_BGR, GL_UNSIGNED_BYTE, PictureFile^.Pixels); end; //Zwolnij powierzchnie SDL_FreeSurface(PictureFile); end; 9ZŚX:`(w8i'!Ąjx3ĘvŁ*k*eF> Ź3jhj,r\";xr'keL-Źjv_jJw8j'Ąóx9Zs7ĄŻ7nśł+\",\"zZ^w8Śź3Ęho&ę^h'lŁjHKźŚź3ĘrŚ łjh))bząmzx^Źęg\"w8|SŁdśźŁ eiŚ(1ąĄŃźźąŃź źąŃąź(ą1%ŃŃ(ąąĄ1} 19(ąąĄ1}QaQUI|((ą QŃĄ1}QaQUI| Ń((ą Ą1}EUL(ąQ ąYŃ(ąQ ąYŃŹ(ąQ ąYŃŹŹ(ąQ ąYŃŹ(ą((ąąĄ1}QaQUI|(ąą Ą1} 19( No i jak zwykle - dzięki, za pomoc ;-) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.