… | |
… | |
307 | croak ("load_image: %s", SDL_GetError ()); |
307 | croak ("load_image: %s", SDL_GetError ()); |
308 | |
308 | |
309 | fmt.palette = NULL; |
309 | fmt.palette = NULL; |
310 | fmt.BitsPerPixel = 32; |
310 | fmt.BitsPerPixel = 32; |
311 | fmt.BytesPerPixel = 4; |
311 | fmt.BytesPerPixel = 4; |
|
|
312 | #if SDL_BYTEORDER == SDL_LIL_ENDIAN |
312 | fmt.Rmask = 0x000000ff; |
313 | fmt.Rmask = 0x000000ff; |
313 | fmt.Gmask = 0x0000ff00; |
314 | fmt.Gmask = 0x0000ff00; |
314 | fmt.Bmask = 0x00ff0000; |
315 | fmt.Bmask = 0x00ff0000; |
315 | fmt.Amask = 0xff000000; |
316 | fmt.Amask = 0xff000000; |
|
|
317 | #else |
|
|
318 | fmt.Rmask = 0xff000000; |
|
|
319 | fmt.Gmask = 0x00ff0000; |
|
|
320 | fmt.Bmask = 0x0000ff00; |
|
|
321 | fmt.Amask = 0x000000ff; |
|
|
322 | #endif |
316 | fmt.Rloss = 0; |
323 | fmt.Rloss = 0; |
317 | fmt.Gloss = 0; |
324 | fmt.Gloss = 0; |
318 | fmt.Bloss = 0; |
325 | fmt.Bloss = 0; |
319 | fmt.Aloss = 0; |
326 | fmt.Aloss = 0; |
320 | fmt.Rshift = 0; |
327 | fmt.Rshift = 0; |
… | |
… | |
334 | SDL_LockSurface (surface2); |
341 | SDL_LockSurface (surface2); |
335 | PUSHs (sv_2mortal (newSVpvn (surface2->pixels, surface2->h * surface2->pitch))); |
342 | PUSHs (sv_2mortal (newSVpvn (surface2->pixels, surface2->h * surface2->pitch))); |
336 | SDL_UnlockSurface (surface2); |
343 | SDL_UnlockSurface (surface2); |
337 | PUSHs (sv_2mortal (newSViv (surface->flags & (SDL_SRCCOLORKEY | SDL_SRCALPHA) ? GL_RGBA : GL_RGB))); |
344 | PUSHs (sv_2mortal (newSViv (surface->flags & (SDL_SRCCOLORKEY | SDL_SRCALPHA) ? GL_RGBA : GL_RGB))); |
338 | PUSHs (sv_2mortal (newSViv (GL_RGBA))); |
345 | PUSHs (sv_2mortal (newSViv (GL_RGBA))); |
339 | PUSHs (sv_2mortal (newSViv (GL_UNSIGNED_INT_8_8_8_8_REV))); |
346 | PUSHs (sv_2mortal (newSViv (GL_UNSIGNED_BYTE))); |
340 | |
347 | |
341 | SDL_FreeSurface (surface); |
348 | SDL_FreeSurface (surface); |
342 | SDL_FreeSurface (surface2); |
349 | SDL_FreeSurface (surface2); |
343 | } |
350 | } |
344 | |
351 | |