Пример #1
0
CAMLprim value
caml_SDL_LoadBMP(value filename)
{
    SDL_Surface *surf = SDL_LoadBMP(String_val(filename));
    if (surf == NULL)
        caml_failwith("Sdlsurface.load_bmp");
    return Val_SDL_Surface(surf);
}
Пример #2
0
CAMLprim value sdlimagestub_load(value file)
{
	CAMLparam1(file);
	SDL_Surface *new_surface = IMG_Load(String_val(file));
	if(new_surface == NULL){
		raise_failure();
	}
	value result = Val_SDL_Surface(new_surface);
	CAMLreturn(result);
}
Пример #3
0
CAMLprim value sdlimagestub_read_xpm_from_array(value xpm)
{
	CAMLparam1(xpm);
	size_t i;
	size_t length = Wosize_val(xpm);
	char **data = malloc((length + 1) * sizeof(char *));
	if(data == NULL){
		caml_raise_out_of_memory();
	}
	for(i = 0; i < length; ++i){
		data[i] = String_val(Field(xpm, i));
	}
	data[length] = NULL;
	SDL_Surface *new_surface = IMG_ReadXPMFromArray(data);
	free(data);
	if(new_surface == NULL){
		raise_failure();
	}
	value result = Val_SDL_Surface(new_surface);
	CAMLreturn(result);
}
Пример #4
0
CAMLprim value
caml_SDL_CreateRGBSurface(
        value width,
        value height,
        value depth)
{
    Uint32 flags = 0;
    Uint32 Rmask = 0;
    Uint32 Gmask = 0;
    Uint32 Bmask = 0;
    Uint32 Amask = 0;

    SDL_Surface *surf = SDL_CreateRGBSurface(
        flags,
        Int_val(width),
        Int_val(height),
        Int_val(depth),
        Rmask,
        Gmask,
        Bmask,
        Amask);
    return Val_SDL_Surface(surf);
}