68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			V
		
	
	
| module image
 | |
| import sdl
 | |
| 
 | |
| #flag linux -lSDL2_image
 | |
| #include <SDL_image.h>
 | |
| 
 | |
| // following kludge until `sdl2-config ...` is supported also on windows
 | |
| #flag windows -I/msys64/mingw64/include/SDL2
 | |
| #flag windows -L/mingw64/lib -lSDL2_image
 | |
| 
 | |
| //////////////////////////////////////////////////////////
 | |
| // SDL_Image.h
 | |
| //////////////////////////////////////////////////////////
 | |
| pub const (
 | |
| 	IMG_INIT_JPG = 0x00000001
 | |
|     IMG_INIT_PNG = 0x00000002
 | |
|     IMG_INIT_TIF = 0x00000004
 | |
|     IMG_INIT_WEBP = 0x00000008
 | |
| )
 | |
| 
 | |
| fn C.IMG_Init(flags int) int
 | |
| fn C.IMG_Quit()
 | |
| 
 | |
| /* Load an image from an SDL data source. The 'type' may be one of: "BMP", "GIF", "PNG", etc. */
 | |
| fn C.IMG_LoadTyped_RW(src &SDL_RWops, freesrc int, _type byteptr) &SDL_Surface
 | |
| fn C.IMG_Load(file byteptr) &SDL_Surface
 | |
| fn C.IMG_Load_RW(src &SDL_RWops, freesrc int) &SDL_Surface
 | |
| 
 | |
| /* Load an image directly into a render texture. */
 | |
| fn C.IMG_LoadTexture(renderer &SDL_Renderer, file byteptr) &SDL_Texture
 | |
| fn C.IMG_LoadTexture_RW(renderer &SDL_Renderer, src &SDL_RWops, freesrc int) &SDL_Texture
 | |
| fn C.IMG_LoadTextureTyped_RW(renderer &SDL_Renderer, src &SDL_RWops, freesrc int, _type byteptr) &SDL_Texture
 | |
| 
 | |
| /* Functions to detect a file type, given a seekable source */
 | |
| fn C.IMG_isPNG(src &SDL_RWops) int
 | |
| fn C.IMG_isBMP(src &SDL_RWops) int
 | |
| fn C.IMG_isJPG(src &SDL_RWops) int
 | |
| fn C.IMG_isWEBP(src &SDL_RWops) int
 | |
| 
 | |
| /* Individual loading functions */
 | |
| fn C.IMG_LoadPNG_RW(src &SDL_RWops) &SDL_Surface
 | |
| fn C.IMG_LoadBMP_RW(src &SDL_RWops) &SDL_Surface
 | |
| fn C.IMG_LoadJPG_RW(src &SDL_RWops) &SDL_Surface
 | |
| fn C.IMG_LoadWEBP_RW(src &SDL_RWops) &SDL_Surface
 | |
| 
 | |
| /* Individual saving functions */
 | |
| fn C.IMG_SavePNG(surface voidptr, file byteptr) int
 | |
| fn C.IMG_SavePNG_RW(surface voidptr, dst &SDL_RWops, freedst int) int
 | |
| fn C.IMG_SaveJPG(surface voidptr, file byteptr) int
 | |
| fn C.IMG_SaveJPG_RW(surface voidptr, dst &SDL_RWops, freedst int) int
 | |
| 
 | |
| pub fn img_init(flags int) int {
 | |
| 	return C.IMG_Init(flags)
 | |
| }
 | |
| 
 | |
| pub fn quit() {
 | |
| 	C.IMG_Quit()
 | |
| }
 | |
| 
 | |
| pub fn load(file string) &SDL_Surface {
 | |
| 	res := C.IMG_Load(file.str)
 | |
| 	return res
 | |
| }
 | |
| 
 | |
| pub const (
 | |
|   version = sdl.version // TODO: remove this hack to mark sdl as used; avoids warning
 | |
| )
 |