sig
  type t
  external create_rgb : width:int -> height:int -> depth:int -> Sdlsurface.t
    = "caml_SDL_CreateRGBSurface"
  external free : Sdlsurface.t -> unit = "caml_SDL_FreeSurface"
  external load_bmp : filename:string -> Sdlsurface.t = "caml_SDL_LoadBMP"
  external save_bmp : Sdlsurface.t -> filename:string -> unit
    = "caml_SDL_SaveBMP"
  external fill_rect :
    dst:Sdlsurface.t -> rect:Sdlrect.t -> color:int32 -> unit
    = "caml_SDL_FillRect"
  external blit_surface :
    src:Sdlsurface.t ->
    src_rect:Sdlrect.t -> dst:Sdlsurface.t -> dst_rect:Sdlrect.t -> Sdlrect.t
    = "caml_SDL_BlitSurface"
  external blit_surf :
    src:Sdlsurface.t -> dst:Sdlsurface.t -> dst_rect:Sdlrect.t -> Sdlrect.t
    = "caml_SDL_BlitSurf"
  external blit_surfs :
    src:Sdlsurface.t -> dst:Sdlsurface.t -> dst_rect:Sdlrect.t -> unit
    = "caml_SDL_BlitSurfs"
  external blit_pixels_unsafe : Sdlsurface.t -> string -> unit
    = "caml_SDL_Surface_Blit_Pixels"
  external set_color_key : Sdlsurface.t -> enable:bool -> key:int32 -> unit
    = "caml_SDL_SetColorKey"
  external set_color_key_map_rgb :
    Sdlsurface.t -> enable:bool -> rgb:int * int * int -> unit
    = "caml_SDL_SetColorKey_MapRGB"
  external get_width : Sdlsurface.t -> int = "caml_SDL_SurfaceGetWidth"
  external get_height : Sdlsurface.t -> int = "caml_SDL_SurfaceGetHeight"
  external get_dims : Sdlsurface.t -> int * int = "caml_SDL_SurfaceGetDims"
  external get_pitch : Sdlsurface.t -> int = "caml_SDL_SurfaceGetPitch"
  external get_pixel32_unsafe : Sdlsurface.t -> x:int -> y:int -> int32
    = "caml_SDL_SurfaceGetPixel32"
  external get_pixel16_unsafe : Sdlsurface.t -> x:int -> y:int -> int32
    = "caml_SDL_SurfaceGetPixel16"
  external get_pixel8_unsafe : Sdlsurface.t -> x:int -> y:int -> int32
    = "caml_SDL_SurfaceGetPixel8"
  external get_bits_per_pixel : Sdlsurface.t -> int
    = "caml_SDL_SurfaceGetBitsPerPixel"
  external has_palette : Sdlsurface.t -> bool = "caml_SDL_SurfaceHasPalette"
  external palette_num_colors : Sdlsurface.t -> int
    = "caml_SDL_SurfacePaletteColors"
  external set_blend_mode : Sdlsurface.t -> SdlblendMode.t -> unit
    = "caml_SDL_SetSurfaceBlendMode"
  external get_pixelformat_t : Sdlsurface.t -> SdlpixelFormat.t
    = "caml_SDL_Surface_get_pixelformat_t"
  external get_pixels : Sdlsurface.t -> string
    = "caml_SDL_Surface_get_pixels"
end