sig
external allegro_init : unit -> unit = "ml_allegro_init"
external allegro_exit : unit -> unit = "ml_allegro_exit"
external allegro_message : string -> unit = "ml_allegro_message"
external get_allegro_error : unit -> string = "ml_get_allegro_error"
external allegro_id : unit -> string = "ml_get_allegro_id"
external allegro_version :
unit -> int * int * int * string * int * int * int = "ml_alleg_version"
external set_window_title : name:string -> unit = "ml_set_window_title"
external cpu_vendor : unit -> string = "ml_cpu_vendor"
type cpu_family =
CPU_FAMILY_UNKNOWN
| CPU_FAMILY_I386
| CPU_FAMILY_I486
| CPU_FAMILY_I586
| CPU_FAMILY_I686
| CPU_FAMILY_ITANIUM
| CPU_FAMILY_POWERPC
| CPU_FAMILY_EXTENDED
| CPU_FAMILY_NOT_FOUND
external get_cpu_family : unit -> Allegro.cpu_family = "ml_get_cpu_family"
external os_version : unit -> int = "ml_os_version"
external os_revision : unit -> int = "ml_os_revision"
external os_multitasking : unit -> bool = "ml_os_multitasking"
external desktop_color_depth : unit -> int = "ml_desktop_color_depth"
external get_desktop_resolution : unit -> int * int
= "ml_get_desktop_resolution"
external set_color_depth : depth:int -> unit = "ml_set_color_depth"
external get_color_depth : unit -> int = "ml_get_color_depth"
external get_screen_width : unit -> int = "ml_get_screen_w"
external get_screen_height : unit -> int = "ml_get_screen_h"
external get_virtual_width : unit -> int = "ml_get_virtual_w"
external get_virtual_height : unit -> int = "ml_get_virtual_h"
external request_refresh_rate : rate:int -> unit
= "ml_request_refresh_rate"
external get_refresh_rate : unit -> int = "ml_get_refresh_rate"
type gfx_driver =
GFX_AUTODETECT
| GFX_AUTODETECT_FULLSCREEN
| GFX_AUTODETECT_WINDOWED
| GFX_SAFE
| GFX_TEXT
external set_gfx_mode :
gfx_driver:Allegro.gfx_driver ->
width:int ->
height:int -> virtual_width:int -> virtual_height:int -> unit
= "ml_set_gfx_mode"
external get_gfx_driver_name : unit -> string = "get_gfx_driver_name"
external enable_triple_buffer : unit -> bool = "ml_enable_triple_buffer"
external vsync : unit -> unit = "ml_vsync"
external scroll_screen : x:int -> y:int -> unit = "ml_scroll_screen"
external request_scroll : x:int -> y:int -> unit = "ml_request_scroll"
external poll_scroll : unit -> bool = "ml_poll_scroll"
type gfx_capabilities =
GFX_CAN_SCROLL
| GFX_CAN_TRIPLE_BUFFER
| GFX_HW_CURSOR
| GFX_SYSTEM_CURSOR
| GFX_HW_HLINE
| GFX_HW_HLINE_XOR
| GFX_HW_HLINE_SOLID_PATTERN
| GFX_HW_HLINE_COPY_PATTERN
| GFX_HW_FILL
| GFX_HW_FILL_XOR
| GFX_HW_FILL_SOLID_PATTERN
| GFX_HW_FILL_COPY_PATTERN
| GFX_HW_LINE
| GFX_HW_LINE_XOR
| GFX_HW_TRIANGLE
| GFX_HW_TRIANGLE_XOR
| GFX_HW_GLYPH
| GFX_HW_VRAM_BLIT
| GFX_HW_VRAM_BLIT_MASKED
| GFX_HW_MEM_BLIT
| GFX_HW_MEM_BLIT_MASKED
| GFX_HW_SYS_TO_VRAM_BLIT
| GFX_HW_SYS_TO_VRAM_BLIT_MASKED
| GFX_HW_VRAM_STRETCH_BLIT
| GFX_HW_SYS_STRETCH_BLIT
| GFX_HW_VRAM_STRETCH_BLIT_MASKED
| GFX_HW_SYS_STRETCH_BLIT_MASKED
external get_gfx_capabilities : unit -> Allegro.gfx_capabilities list
= "get_gfx_capabilities"
type switch_mode =
SWITCH_NONE
| SWITCH_PAUSE
| SWITCH_AMNESIA
| SWITCH_BACKGROUND
| SWITCH_BACKAMNESIA
external set_display_switch_mode : Allegro.switch_mode -> unit
= "ml_set_display_switch_mode"
external get_display_switch_mode : unit -> Allegro.switch_mode
= "ml_get_display_switch_mode"
external is_windowed_mode : unit -> bool = "ml_is_windowed_mode"
external allegro_vram_single_surface : unit -> bool
= "ml_vram_single_surface"
external allegro_dos : unit -> bool = "ml_allegro_dos"
type color
external makecol : r:int -> g:int -> b:int -> Allegro.color = "ml_makecol"
external makecol_depth :
depth:int -> r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol_depth"
external transparent : unit -> Allegro.color = "get_transparent"
external makeacol : r:int -> g:int -> b:int -> a:int -> Allegro.color
= "ml_makeacol"
external makeacol_depth :
depth:int -> r:int -> g:int -> b:int -> a:int -> Allegro.color
= "ml_makeacol_depth"
external color_index : int -> Allegro.color = "%identity"
external getr : Allegro.color -> int = "ml_getr"
external getg : Allegro.color -> int = "ml_getg"
external getb : Allegro.color -> int = "ml_getb"
external geta : Allegro.color -> int = "ml_geta"
external palette_color : int -> Allegro.color = "ml_palette_color"
external makecol8 : r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol8"
external makecol15 : r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol15"
external makecol16 : r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol16"
external makecol24 : r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol24"
external makecol32 : r:int -> g:int -> b:int -> Allegro.color
= "ml_makecol32"
external makeacol32 : r:int -> g:int -> b:int -> a:int -> Allegro.color
= "ml_makeacol32"
external makecol15_dither :
r:int -> g:int -> b:int -> x:int -> y:int -> Allegro.color
= "ml_makecol15_dither"
external makecol16_dither :
r:int -> g:int -> b:int -> x:int -> y:int -> Allegro.color
= "ml_makecol16_dither"
external getr8 : Allegro.color -> int = "ml_getr8"
external getg8 : Allegro.color -> int = "ml_getg8"
external getb8 : Allegro.color -> int = "ml_getb8"
external getr15 : Allegro.color -> int = "ml_getr15"
external getg15 : Allegro.color -> int = "ml_getg15"
external getb15 : Allegro.color -> int = "ml_getb15"
external getr16 : Allegro.color -> int = "ml_getr16"
external getg16 : Allegro.color -> int = "ml_getg16"
external getb16 : Allegro.color -> int = "ml_getb16"
external getr24 : Allegro.color -> int = "ml_getr24"
external getg24 : Allegro.color -> int = "ml_getg24"
external getb24 : Allegro.color -> int = "ml_getb24"
external getr32 : Allegro.color -> int = "ml_getr32"
external getg32 : Allegro.color -> int = "ml_getg32"
external getb32 : Allegro.color -> int = "ml_getb32"
external geta32 : Allegro.color -> int = "ml_geta32"
external getr_depth : depth:int -> Allegro.color -> int = "ml_getr_depth"
external getg_depth : depth:int -> Allegro.color -> int = "ml_getg_depth"
external getb_depth : depth:int -> Allegro.color -> int = "ml_getb_depth"
external geta_depth : depth:int -> Allegro.color -> int = "ml_geta_depth"
type palette
external new_palette : unit -> Allegro.palette = "new_palette"
external free_palette : pal:Allegro.palette -> unit = "free_palette"
external set_palette : pal:Allegro.palette -> unit = "ml_set_palette"
external get_palette : pal:Allegro.palette -> unit = "ml_get_palette"
external set_color : index:int -> r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_color"
external get_desktop_palette : unit -> Allegro.palette
= "ml_get_desktop_palette"
external generate_332_palette : pal:Allegro.palette -> unit
= "ml_generate_332_palette"
external select_palette : pal:Allegro.palette -> unit = "ml_select_palette"
external unselect_palette : unit -> unit = "ml_unselect_palette"
external palette_set_rgb :
pal:Allegro.palette -> i:int -> r:int -> g:int -> b:int -> unit
= "ml_palette_set_rgb"
external palette_set_rgba :
pal:Allegro.palette -> i:int -> r:int -> g:int -> b:int -> a:int -> unit
= "ml_palette_set_rgba_bytecode" "ml_palette_set_rgba_native"
external palette_get_rgb : pal:Allegro.palette -> i:int -> int * int * int
= "ml_palette_get_rgb"
external palette_get_rgba :
pal:Allegro.palette -> i:int -> int * int * int * int
= "ml_palette_get_rgba"
external palette_copy_index :
src:Allegro.palette -> dst:Allegro.palette -> i:int -> unit
= "ml_palette_copy_index"
external hsv_to_rgb : h:float -> s:float -> v:float -> int * int * int
= "ml_hsv_to_rgb"
external rgb_to_hsv : r:int -> g:int -> b:int -> float * float * float
= "ml_rgb_to_hsv"
type bitmap
external get_screen : unit -> Allegro.bitmap = "ml_get_screen"
external create_bitmap : width:int -> height:int -> Allegro.bitmap
= "ml_create_bitmap"
external create_sub_bitmap :
parent:Allegro.bitmap ->
x:int -> y:int -> width:int -> height:int -> Allegro.bitmap
= "ml_create_sub_bitmap"
external create_video_bitmap : width:int -> height:int -> Allegro.bitmap
= "ml_create_video_bitmap"
external create_system_bitmap : width:int -> height:int -> Allegro.bitmap
= "ml_create_system_bitmap"
external create_bitmap_ex :
color_depth:int -> width:int -> height:int -> Allegro.bitmap
= "ml_create_bitmap_ex"
external bitmap_color_depth : bmp:Allegro.bitmap -> int
= "ml_bitmap_color_depth"
external destroy_bitmap : bmp:Allegro.bitmap -> unit = "ml_destroy_bitmap"
external get_bitmap_width : bmp:Allegro.bitmap -> int = "get_bitmap_width"
external get_bitmap_height : bmp:Allegro.bitmap -> int
= "get_bitmap_height"
external acquire_bitmap : bmp:Allegro.bitmap -> unit = "ml_acquire_bitmap"
external release_bitmap : bmp:Allegro.bitmap -> unit = "ml_release_bitmap"
external acquire_screen : unit -> unit = "ml_acquire_screen"
external release_screen : unit -> unit = "ml_release_screen"
external bitmap_mask_color : bmp:Allegro.bitmap -> Allegro.color
= "ml_bitmap_mask_color"
external is_same_bitmap :
bmp1:Allegro.bitmap -> bmp2:Allegro.bitmap -> bool = "ml_is_same_bitmap"
external show_video_bitmap : bmp:Allegro.bitmap -> unit
= "ml_show_video_bitmap"
external request_video_bitmap : bmp:Allegro.bitmap -> unit
= "ml_request_video_bitmap"
external clear_bitmap : bmp:Allegro.bitmap -> unit = "ml_clear_bitmap"
external clear_to_color : bmp:Allegro.bitmap -> color:Allegro.color -> unit
= "ml_clear_to_color"
external add_clip_rect :
bmp:Allegro.bitmap -> x1:int -> y1:int -> x2:int -> y2:int -> unit
= "ml_add_clip_rect"
external set_clip_rect :
bmp:Allegro.bitmap -> x1:int -> y1:int -> x2:int -> y2:int -> unit
= "ml_set_clip_rect"
external set_clip_state : bmp:Allegro.bitmap -> bool -> unit
= "ml_set_clip_state"
external get_clip_state : bmp:Allegro.bitmap -> bool = "ml_get_clip_state"
external is_planar_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_planar_bitmap"
external is_linear_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_linear_bitmap"
external is_memory_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_memory_bitmap"
external is_screen_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_screen_bitmap"
external is_video_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_video_bitmap"
external is_system_bitmap : bmp:Allegro.bitmap -> bool
= "ml_is_system_bitmap"
external is_sub_bitmap : bmp:Allegro.bitmap -> bool = "ml_is_sub_bitmap"
external load_bitmap : string -> Allegro.palette -> Allegro.bitmap
= "ml_load_bitmap"
external load_bmp : string -> Allegro.palette -> Allegro.bitmap
= "ml_load_bmp"
external load_lbm : string -> Allegro.palette -> Allegro.bitmap
= "ml_load_lbm"
external load_pcx : string -> Allegro.palette -> Allegro.bitmap
= "ml_load_pcx"
external load_tga : string -> Allegro.palette -> Allegro.bitmap
= "ml_load_tga"
external blit :
src:Allegro.bitmap ->
dest:Allegro.bitmap ->
src_x:int ->
src_y:int -> dest_x:int -> dest_y:int -> width:int -> height:int -> unit
= "ml_blit_bytecode" "ml_blit_native"
external masked_blit :
src:Allegro.bitmap ->
dest:Allegro.bitmap ->
src_x:int ->
src_y:int -> dest_x:int -> dest_y:int -> width:int -> height:int -> unit
= "ml_masked_blit_bytecode" "ml_masked_blit_native"
external stretch_blit :
src:Allegro.bitmap ->
dest:Allegro.bitmap ->
src_x:int ->
src_y:int ->
src_width:int ->
src_height:int ->
dest_x:int -> dest_y:int -> dest_width:int -> dest_height:int -> unit
= "ml_stretch_blit_bytecode" "ml_stretch_blit_native"
external masked_stretch_blit :
src:Allegro.bitmap ->
dest:Allegro.bitmap ->
src_x:int ->
src_y:int ->
src_width:int ->
src_height:int ->
dest_x:int -> dest_y:int -> dest_width:int -> dest_height:int -> unit
= "ml_masked_stretch_blit_bytecode" "ml_masked_stretch_blit_native"
type color_conversion =
COLORCONV_NONE
| COLORCONV_8_TO_15
| COLORCONV_8_TO_16
| COLORCONV_8_TO_24
| COLORCONV_8_TO_32
| COLORCONV_15_TO_8
| COLORCONV_15_TO_16
| COLORCONV_15_TO_24
| COLORCONV_15_TO_32
| COLORCONV_16_TO_8
| COLORCONV_16_TO_15
| COLORCONV_16_TO_24
| COLORCONV_16_TO_32
| COLORCONV_24_TO_8
| COLORCONV_24_TO_15
| COLORCONV_24_TO_16
| COLORCONV_24_TO_32
| COLORCONV_32_TO_8
| COLORCONV_32_TO_15
| COLORCONV_32_TO_16
| COLORCONV_32_TO_24
| COLORCONV_32A_TO_8
| COLORCONV_32A_TO_15
| COLORCONV_32A_TO_16
| COLORCONV_32A_TO_24
| COLORCONV_DITHER_PAL
| COLORCONV_DITHER_HI
| COLORCONV_KEEP_TRANS
| COLORCONV_EXPAND_256
| COLORCONV_REDUCE_TO_256
| COLORCONV_EXPAND_15_TO_16
| COLORCONV_REDUCE_16_TO_15
| COLORCONV_EXPAND_HI_TO_TRUE
| COLORCONV_REDUCE_TRUE_TO_HI
| COLORCONV_24_EQUALS_32
| COLORCONV_TOTAL
| COLORCONV_PARTIAL
| COLORCONV_MOST
| COLORCONV_DITHER
external set_color_conversion : Allegro.color_conversion -> unit
= "ml_set_color_conversion"
external install_keyboard : unit -> unit = "ml_install_keyboard"
external poll_keyboard : unit -> unit = "ml_poll_keyboard"
external keypressed : unit -> bool = "ml_keypressed"
external readkey : unit -> char = "ml_readkey"
external key_esc : unit -> bool = "ml_key_key_esc"
external key_enter : unit -> bool = "ml_key_key_enter"
external key_left : unit -> bool = "ml_key_key_left"
external key_right : unit -> bool = "ml_key_key_right"
external key_up : unit -> bool = "ml_key_key_up"
external key_down : unit -> bool = "ml_key_key_down"
type kb_flag =
KB_SHIFT_FLAG
| KB_CTRL_FLAG
| KB_ALT_FLAG
| KB_LWIN_FLAG
| KB_RWIN_FLAG
| KB_MENU_FLAG
| KB_COMMAND_FLAG
| KB_SCROLOCK_FLAG
| KB_NUMLOCK_FLAG
| KB_CAPSLOCK_FLAG
| KB_INALTSEQ_FLAG
| KB_ACCENT1_FLAG
| KB_ACCENT2_FLAG
| KB_ACCENT3_FLAG
| KB_ACCENT4_FLAG
external get_kb_flag : Allegro.kb_flag -> bool = "get_kb_flag"
type scancode =
KEY_A
| KEY_B
| KEY_C
| KEY_D
| KEY_E
| KEY_F
| KEY_G
| KEY_H
| KEY_I
| KEY_J
| KEY_K
| KEY_L
| KEY_M
| KEY_N
| KEY_O
| KEY_P
| KEY_Q
| KEY_R
| KEY_S
| KEY_T
| KEY_U
| KEY_V
| KEY_W
| KEY_X
| KEY_Y
| KEY_Z
| KEY_0
| KEY_1
| KEY_2
| KEY_3
| KEY_4
| KEY_5
| KEY_6
| KEY_7
| KEY_8
| KEY_9
| KEY_0_PAD
| KEY_1_PAD
| KEY_2_PAD
| KEY_3_PAD
| KEY_4_PAD
| KEY_5_PAD
| KEY_6_PAD
| KEY_7_PAD
| KEY_8_PAD
| KEY_9_PAD
| KEY_F1
| KEY_F2
| KEY_F3
| KEY_F4
| KEY_F5
| KEY_F6
| KEY_F7
| KEY_F8
| KEY_F9
| KEY_F10
| KEY_F11
| KEY_F12
| KEY_ESC
| KEY_TILDE
| KEY_MINUS
| KEY_EQUALS
| KEY_BACKSPACE
| KEY_TAB
| KEY_OPENBRACE
| KEY_CLOSEBRACE
| KEY_ENTER
| KEY_COLON
| KEY_QUOTE
| KEY_BACKSLASH
| KEY_BACKSLASH2
| KEY_COMMA
| KEY_STOP
| KEY_SLASH
| KEY_SPACE
| KEY_INSERT
| KEY_DEL
| KEY_HOME
| KEY_END
| KEY_PGUP
| KEY_PGDN
| KEY_LEFT
| KEY_RIGHT
| KEY_UP
| KEY_DOWN
| KEY_SLASH_PAD
| KEY_ASTERISK
| KEY_MINUS_PAD
| KEY_PLUS_PAD
| KEY_DEL_PAD
| KEY_ENTER_PAD
| KEY_PRTSCR
| KEY_PAUSE
| KEY_ABNT_C1
| KEY_YEN
| KEY_KANA
| KEY_CONVERT
| KEY_NOCONVERT
| KEY_AT
| KEY_CIRCUMFLEX
| KEY_COLON2
| KEY_KANJI
| KEY_LSHIFT
| KEY_RSHIFT
| KEY_LCONTROL
| KEY_RCONTROL
| KEY_ALT
| KEY_ALTGR
| KEY_LWIN
| KEY_RWIN
| KEY_MENU
| KEY_SCRLOCK
| KEY_NUMLOCK
| KEY_CAPSLOCK
| KEY_EQUALS_PAD
| KEY_BACKQUOTE
| KEY_SEMICOLON
| KEY_COMMAND
external readkey_scancode : unit -> Allegro.scancode
= "ml_readkey_scancode"
external clear_keybuf : unit -> unit = "ml_clear_keybuf"
external set_keyboard_rate : delay:int -> repeat:int -> unit
= "ml_set_keyboard_rate"
external remove_keyboard : unit -> unit = "ml_remove_keyboard"
external install_timer : unit -> unit = "ml_install_timer"
external retrace_count : unit -> int = "get_retrace_count"
external rest : time:int -> unit = "ml_rest"
external install_mouse : unit -> int = "ml_install_mouse"
external poll_mouse : unit -> unit = "ml_poll_mouse"
external mouse_driver_name : unit -> string = "get_mouse_driver_name"
external enable_hardware_cursor : unit -> unit
= "ml_enable_hardware_cursor"
external disable_hardware_cursor : unit -> unit
= "ml_disable_hardware_cursor"
type mouse_cursor =
MOUSE_CURSOR_NONE
| MOUSE_CURSOR_ALLEGRO
| MOUSE_CURSOR_ARROW
| MOUSE_CURSOR_BUSY
| MOUSE_CURSOR_QUESTION
| MOUSE_CURSOR_EDIT
external select_mouse_cursor : Allegro.mouse_cursor -> unit
= "ml_select_mouse_cursor"
external set_mouse_cursor_bitmap :
Allegro.mouse_cursor -> bmp:Allegro.bitmap -> unit
= "ml_set_mouse_cursor_bitmap"
external show_mouse : bmp:Allegro.bitmap -> unit = "ml_show_mouse"
external hide_mouse : unit -> unit = "ml_hide_mouse"
external scare_mouse : unit -> unit = "ml_scare_mouse"
external scare_mouse_area : x:int -> y:int -> w:int -> h:int -> unit
= "ml_scare_mouse_area"
external unscare_mouse : unit -> unit = "ml_unscare_mouse"
external position_mouse : x:int -> y:int -> unit = "ml_position_mouse"
external position_mouse_z : z:int -> unit = "ml_position_mouse_z"
external set_mouse_range : x1:int -> y1:int -> x2:int -> y2:int -> unit
= "ml_set_mouse_range"
external set_mouse_speed : xspeed:int -> yspeed:int -> unit
= "ml_set_mouse_speed"
external set_mouse_sprite : sprite:Allegro.bitmap -> unit
= "ml_set_mouse_sprite"
external set_mouse_sprite_focus : x:int -> y:int -> unit
= "ml_set_mouse_sprite_focus"
external get_mouse_mickeys : unit -> int * int = "ml_get_mouse_mickeys"
external get_mouse_x : unit -> int = "ml_mouse_x"
external get_mouse_y : unit -> int = "ml_mouse_y"
external get_mouse_z : unit -> int = "ml_mouse_z"
external get_mouse_x_focus : unit -> int = "ml_mouse_x_focus"
external get_mouse_y_focus : unit -> int = "ml_mouse_y_focus"
external left_button_pressed : unit -> bool = "left_button_pressed"
external right_button_pressed : unit -> bool = "right_button_pressed"
external middle_button_pressed : unit -> bool = "middle_button_pressed"
external get_mouse_b : unit -> int = "get_mouse_b"
external get_mouse_pos : unit -> int * int = "get_mouse_pos"
type fixed
external itofix : int -> Allegro.fixed = "ml_itofix"
external fixtoi : Allegro.fixed -> int = "ml_fixtoi"
external ftofix : float -> Allegro.fixed = "ml_ftofix"
external fixtof : Allegro.fixed -> float = "ml_fixtof"
external fixadd : Allegro.fixed -> Allegro.fixed -> Allegro.fixed
= "ml_fixadd"
external fixsub : Allegro.fixed -> Allegro.fixed -> Allegro.fixed
= "ml_fixsub"
external fixdiv : Allegro.fixed -> Allegro.fixed -> Allegro.fixed
= "ml_fixdiv"
external fixmul : Allegro.fixed -> Allegro.fixed -> Allegro.fixed
= "ml_fixmul"
external fixhypot : Allegro.fixed -> Allegro.fixed -> Allegro.fixed
= "ml_fixhypot"
external fixceil : Allegro.fixed -> int = "ml_fixceil"
external fixfloor : Allegro.fixed -> int = "ml_fixfloor"
external fixsin : Allegro.fixed -> Allegro.fixed = "ml_fixsin"
external fixcos : Allegro.fixed -> Allegro.fixed = "ml_fixcos"
external fixtan : Allegro.fixed -> Allegro.fixed = "ml_fixtan"
external fixasin : Allegro.fixed -> Allegro.fixed = "ml_fixasin"
external fixacos : Allegro.fixed -> Allegro.fixed = "ml_fixacos"
external fixatan : Allegro.fixed -> Allegro.fixed = "ml_fixatan"
external fixsqrt : Allegro.fixed -> Allegro.fixed = "ml_fixsqrt"
external to_rad : Allegro.fixed -> Allegro.fixed = "ml_fixtorad"
external of_rad : Allegro.fixed -> Allegro.fixed = "ml_fixofrad"
external fixminus : Allegro.fixed -> Allegro.fixed = "ml_fixminus"
external fixatan2 : y:Allegro.fixed -> x:Allegro.fixed -> Allegro.fixed
= "ml_fixatan2"
external putpixel :
bmp:Allegro.bitmap -> x:int -> y:int -> color:Allegro.color -> unit
= "ml_putpixel"
external rect :
bmp:Allegro.bitmap ->
x1:int -> y1:int -> x2:int -> y2:int -> color:Allegro.color -> unit
= "ml_rect_bytecode" "ml_rect_native"
external rectfill :
bmp:Allegro.bitmap ->
x1:int -> y1:int -> x2:int -> y2:int -> color:Allegro.color -> unit
= "ml_rectfill_bytecode" "ml_rectfill_native"
external arc :
bmp:Allegro.bitmap ->
x:int ->
y:int ->
angle1:Allegro.fixed ->
angle2:Allegro.fixed -> r:int -> color:Allegro.color -> unit
= "ml_arc_bytecode" "ml_arc_native"
external floodfill :
bmp:Allegro.bitmap -> x:int -> y:int -> color:Allegro.color -> unit
= "ml_floodfill"
external spline :
bmp:Allegro.bitmap ->
x1:int ->
y1:int ->
x2:int ->
y2:int ->
x3:int -> y3:int -> x4:int -> y4:int -> color:Allegro.color -> unit
= "ml_spline_bytecode" "ml_spline_native"
external circle :
bmp:Allegro.bitmap ->
x:int -> y:int -> radius:int -> color:Allegro.color -> unit = "ml_circle"
external circlefill :
bmp:Allegro.bitmap ->
x:int -> y:int -> radius:int -> color:Allegro.color -> unit
= "ml_circlefill"
external ellipse :
bmp:Allegro.bitmap ->
x:int -> y:int -> rx:int -> ry:int -> color:Allegro.color -> unit
= "ml_ellipse_bytecode" "ml_ellipse_native"
external ellipsefill :
bmp:Allegro.bitmap ->
x:int -> y:int -> rx:int -> ry:int -> color:Allegro.color -> unit
= "ml_ellipsefill_bytecode" "ml_ellipsefill_native"
external triangle :
bmp:Allegro.bitmap ->
x1:int ->
y1:int ->
x2:int -> y2:int -> x3:int -> y3:int -> color:Allegro.color -> unit
= "ml_triangle_bytecode" "ml_triangle_native"
external line :
bmp:Allegro.bitmap ->
x1:int -> y1:int -> x2:int -> y2:int -> color:Allegro.color -> unit
= "ml_line_bytecode" "ml_line_native"
external fastline :
bmp:Allegro.bitmap ->
x1:int -> y1:int -> x2:int -> y2:int -> color:Allegro.color -> unit
= "ml_fastline_bytecode" "ml_fastline_native"
external vline :
bmp:Allegro.bitmap ->
x:int -> y1:int -> y2:int -> color:Allegro.color -> unit = "ml_vline"
external hline :
bmp:Allegro.bitmap ->
x1:int -> y:int -> x2:int -> color:Allegro.color -> unit = "ml_hline"
external getpixel : bmp:Allegro.bitmap -> x:int -> y:int -> Allegro.color
= "ml_getpixel"
val do_circle :
bmp:Allegro.bitmap ->
x:int ->
y:int ->
radius:int ->
d:int ->
proc:(bmp:Allegro.bitmap -> x:int -> y:int -> d:int -> unit) -> unit
val do_ellipse :
bmp:Allegro.bitmap ->
x:int ->
y:int ->
rx:int ->
ry:int ->
d:int ->
proc:(bmp:Allegro.bitmap -> x:int -> y:int -> d:int -> unit) -> unit
external draw_sprite :
bmp:Allegro.bitmap -> sprite:Allegro.bitmap -> x:int -> y:int -> unit
= "ml_draw_sprite"
external draw_sprite_v_flip :
bmp:Allegro.bitmap -> sprite:Allegro.bitmap -> x:int -> y:int -> unit
= "draw_sprite_v_flip"
external draw_sprite_h_flip :
bmp:Allegro.bitmap -> sprite:Allegro.bitmap -> x:int -> y:int -> unit
= "draw_sprite_h_flip"
external draw_sprite_vh_flip :
bmp:Allegro.bitmap -> sprite:Allegro.bitmap -> x:int -> y:int -> unit
= "draw_sprite_vh_flip"
external rotate_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap -> x:int -> y:int -> angle:Allegro.fixed -> unit
= "ml_rotate_sprite"
external rotate_sprite_v_flip :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap -> x:int -> y:int -> angle:Allegro.fixed -> unit
= "ml_rotate_sprite_v_flip"
external rotate_scaled_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int -> y:int -> angle:Allegro.fixed -> scale:Allegro.fixed -> unit
= "ml_rotate_scaled_sprite_bytecode" "ml_rotate_scaled_sprite_native"
external rotate_scaled_sprite_v_flip :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int -> y:int -> angle:Allegro.fixed -> scale:Allegro.fixed -> unit
= "ml_rotate_scaled_sprite_v_flip_bytecode"
"ml_rotate_scaled_sprite_v_flip_native"
external pivot_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int -> y:int -> cx:int -> cy:int -> angle:Allegro.fixed -> unit
= "ml_pivot_sprite_bytecode" "ml_pivot_sprite_native"
external pivot_sprite_v_flip :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int -> y:int -> cx:int -> cy:int -> angle:Allegro.fixed -> unit
= "ml_pivot_sprite_v_flip_bytecode" "ml_pivot_sprite_v_flip_native"
external pivot_scaled_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int ->
y:int ->
cx:int -> cy:int -> angle:Allegro.fixed -> scale:Allegro.fixed -> unit
= "ml_pivot_scaled_sprite_bytecode" "ml_pivot_scaled_sprite_native"
external pivot_scaled_sprite_v_flip :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int ->
y:int ->
cx:int -> cy:int -> angle:Allegro.fixed -> scale:Allegro.fixed -> unit
= "ml_pivot_scaled_sprite_v_flip_bytecode"
"ml_pivot_scaled_sprite_v_flip_native"
external stretch_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap -> x:int -> y:int -> w:int -> h:int -> unit
= "ml_stretch_sprite_bytecode" "ml_stretch_sprite_native"
external draw_character_ex :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int -> y:int -> color:Allegro.color -> bg:Allegro.color -> unit
= "ml_draw_character_ex_bytecode" "ml_draw_character_ex_native"
external draw_lit_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap -> x:int -> y:int -> color:Allegro.color -> unit
= "ml_draw_lit_sprite"
external draw_trans_sprite :
bmp:Allegro.bitmap -> sprite:Allegro.bitmap -> x:int -> y:int -> unit
= "ml_draw_trans_sprite"
external draw_gouraud_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.bitmap ->
x:int ->
y:int ->
c1:Allegro.color ->
c2:Allegro.color -> c3:Allegro.color -> c4:Allegro.color -> unit
= "ml_draw_gouraud_sprite_bytecode" "ml_draw_gouraud_sprite_native"
type rle_sprite
external get_rle_sprite : tmp:Allegro.bitmap -> Allegro.rle_sprite
= "ml_get_rle_sprite"
external destroy_rle_sprite : Allegro.rle_sprite -> unit
= "ml_destroy_rle_sprite"
external draw_rle_sprite :
bmp:Allegro.bitmap -> sprite:Allegro.rle_sprite -> x:int -> y:int -> unit
= "ml_draw_rle_sprite"
external draw_trans_rle_sprite :
bmp:Allegro.bitmap -> sprite:Allegro.rle_sprite -> x:int -> y:int -> unit
= "ml_draw_trans_rle_sprite"
external draw_lit_rle_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.rle_sprite ->
x:int -> y:int -> color:Allegro.color -> unit = "ml_draw_lit_rle_sprite"
type compiled_sprite
external get_compiled_sprite :
bmp:Allegro.bitmap -> planar:bool -> Allegro.compiled_sprite
= "ml_get_compiled_sprite"
external destroy_compiled_sprite : sprite:Allegro.compiled_sprite -> unit
= "ml_destroy_compiled_sprite"
external draw_compiled_sprite :
bmp:Allegro.bitmap ->
sprite:Allegro.compiled_sprite -> x:int -> y:int -> unit
= "ml_draw_compiled_sprite"
type font
external get_font : unit -> Allegro.font = "get_font"
external allegro_404_char : char -> unit = "ml_allegro_404_char"
external text_length : f:Allegro.font -> string -> int = "ml_text_length"
external text_height : f:Allegro.font -> int = "ml_text_height"
external textout_ex :
bmp:Allegro.bitmap ->
f:Allegro.font ->
str:string ->
x:int -> y:int -> color:Allegro.color -> bg:Allegro.color -> unit
= "ml_textout_ex_bytecode" "ml_textout_ex_native"
external textout_centre_ex :
bmp:Allegro.bitmap ->
f:Allegro.font ->
str:string ->
x:int -> y:int -> color:Allegro.color -> bg:Allegro.color -> unit
= "ml_textout_centre_ex_bytecode" "ml_textout_centre_ex_native"
external textout_justify_ex :
bmp:Allegro.bitmap ->
f:Allegro.font ->
str:string ->
x1:int ->
x2:int ->
y:int -> diff:int -> color:Allegro.color -> bg:Allegro.color -> unit
= "ml_textout_justify_ex_bytecode" "ml_textout_justify_ex_native"
external textout_right_ex :
bmp:Allegro.bitmap ->
f:Allegro.font ->
str:string ->
x:int -> y:int -> color:Allegro.color -> bg:Allegro.color -> unit
= "ml_textout_right_ex_bytecode" "ml_textout_right_ex_native"
val textprintf_ex :
Allegro.bitmap ->
Allegro.font ->
int ->
int ->
Allegro.color -> Allegro.color -> ('a, unit, string, unit) format4 -> 'a
val textprintf_centre_ex :
Allegro.bitmap ->
Allegro.font ->
int ->
int ->
Allegro.color -> Allegro.color -> ('a, unit, string, unit) format4 -> 'a
val textprintf_justify_ex :
Allegro.bitmap ->
Allegro.font ->
int ->
int ->
int ->
int ->
Allegro.color -> Allegro.color -> ('a, unit, string, unit) format4 -> 'a
val textprintf_right_ex :
Allegro.bitmap ->
Allegro.font ->
int ->
int ->
Allegro.color -> Allegro.color -> ('a, unit, string, unit) format4 -> 'a
external load_font : filename:string -> Allegro.font * Allegro.palette
= "ml_load_font"
external merge_fonts : f1:Allegro.font -> f2:Allegro.font -> Allegro.font
= "ml_merge_fonts"
external destroy_font : f:Allegro.font -> unit = "ml_destroy_font"
type draw_mode =
DRAW_MODE_SOLID
| DRAW_MODE_XOR
| DRAW_MODE_COPY_PATTERN of Allegro.bitmap * int * int
| DRAW_MODE_SOLID_PATTERN of Allegro.bitmap * int * int
| DRAW_MODE_MASKED_PATTERN of Allegro.bitmap * int * int
| DRAW_MODE_TRANS
val drawing_mode : draw_mode:Allegro.draw_mode -> unit
external xor_mode : on:bool -> unit = "ml_xor_mode"
external solid_mode : unit -> unit = "ml_solid_mode"
external set_trans_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_trans_blender"
external set_alpha_blender : unit -> unit = "ml_set_alpha_blender"
external set_write_alpha_blender : unit -> unit
= "ml_set_write_alpha_blender"
external set_add_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_add_blender"
external set_burn_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_burn_blender"
external set_color_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_color_blender"
external set_difference_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_difference_blender"
external set_dissolve_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_dissolve_blender"
external set_dodge_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_dodge_blender"
external set_hue_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_hue_blender"
external set_invert_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_invert_blender"
external set_luminance_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_luminance_blender"
external set_multiply_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_multiply_blender"
external set_saturation_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_saturation_blender"
external set_screen_blender : r:int -> g:int -> b:int -> a:int -> unit
= "ml_set_screen_blender"
external digi_driver_name : unit -> string = "ml_digi_driver_name"
type digi = DIGI_AUTODETECT | DIGI_NONE
type midi = MIDI_AUTODETECT | MIDI_NONE
external install_sound : Allegro.digi -> Allegro.midi -> unit
= "ml_install_sound"
external remove_sound : unit -> unit = "ml_remove_sound"
external reserve_voices : digi_voices:int -> midi_voices:int -> unit
= "ml_reserve_voices"
external set_volume_per_voice : scale:int -> unit
= "ml_set_volume_per_voice"
external set_volume : digi_volume:int -> midi_volume:int -> unit
= "ml_set_volume"
external set_hardware_volume : digi_volume:int -> midi_volume:int -> unit
= "ml_set_hardware_volume"
type sample
external load_sample : filename:string -> Allegro.sample = "ml_load_sample"
external destroy_sample : spl:Allegro.sample -> unit = "ml_destroy_sample"
external adjust_sample :
spl:Allegro.sample -> vol:int -> pan:int -> freq:int -> loop:bool -> unit
= "ml_adjust_sample"
external play_sample :
spl:Allegro.sample -> vol:int -> pan:int -> freq:int -> loop:bool -> int
= "ml_play_sample"
external stop_sample : spl:Allegro.sample -> unit = "ml_stop_sample"
external replace_filename : path:string -> filename:string -> string
= "ml_replace_filename"
type datafile
external load_datafile : filename:string -> Allegro.datafile
= "ml_load_datafile"
external unload_datafile : dat:Allegro.datafile -> unit
= "ml_unload_datafile"
external fixup_datafile : dat:Allegro.datafile -> unit
= "ml_fixup_datafile"
external palette_dat : dat:Allegro.datafile -> idx:int -> Allegro.palette
= "datafile_index"
external bitmap_dat : dat:Allegro.datafile -> idx:int -> Allegro.bitmap
= "datafile_index"
external font_dat : dat:Allegro.datafile -> idx:int -> Allegro.font
= "datafile_index"
external sample_dat : dat:Allegro.datafile -> idx:int -> Allegro.sample
= "datafile_index"
external item_dat : dat:Allegro.datafile -> idx:int -> 'a
= "datafile_index"
external gfx_mode_select_ex : unit -> Allegro.gfx_driver * int * int * int
= "ml_gfx_mode_select_ex"
type polytype =
POLYTYPE_ATEX
| POLYTYPE_ATEX_LIT
| POLYTYPE_ATEX_MASK
| POLYTYPE_ATEX_MASK_LIT
| POLYTYPE_ATEX_MASK_TRANS
| POLYTYPE_ATEX_TRANS
| POLYTYPE_FLAT
| POLYTYPE_GCOL
| POLYTYPE_GRGB
| POLYTYPE_PTEX
| POLYTYPE_PTEX_LIT
| POLYTYPE_PTEX_MASK
| POLYTYPE_PTEX_MASK_LIT
| POLYTYPE_PTEX_MASK_TRANS
| POLYTYPE_PTEX_TRANS
type 'a _v3d = {
x : 'a;
y : 'a;
z : 'a;
u : 'a;
v : 'a;
c : Allegro.color;
}
type v3d = Allegro.fixed Allegro._v3d
type v3d_f = float Allegro._v3d
external triangle3d :
bmp:Allegro.bitmap ->
polytype:Allegro.polytype ->
tex:Allegro.bitmap ->
v1:Allegro.v3d -> v2:Allegro.v3d -> v3:Allegro.v3d -> unit
= "ml_triangle3d_bytecode" "ml_triangle3d_native"
external triangle3d_f :
bmp:Allegro.bitmap ->
polytype:Allegro.polytype ->
tex:Allegro.bitmap ->
v1:Allegro.v3d_f -> v2:Allegro.v3d_f -> v3:Allegro.v3d_f -> unit
= "ml_triangle3d_f_bytecode" "ml_triangle3d_f_native"
external quad3d :
bmp:Allegro.bitmap ->
polytype:Allegro.polytype ->
tex:Allegro.bitmap ->
v1:Allegro.v3d ->
v2:Allegro.v3d -> v3:Allegro.v3d -> v4:Allegro.v3d -> unit
= "ml_quad3d_bytecode" "ml_quad3d_native"
external quad3d_f :
bmp:Allegro.bitmap ->
polytype:Allegro.polytype ->
tex:Allegro.bitmap ->
v1:Allegro.v3d_f ->
v2:Allegro.v3d_f -> v3:Allegro.v3d_f -> v4:Allegro.v3d_f -> unit
= "ml_quad3d_f_bytecode" "ml_quad3d_f_native"
external clear_scene : bmp:Allegro.bitmap -> unit = "ml_clear_scene"
external render_scene : unit -> unit = "ml_render_scene"
external create_scene : nedge:int -> npoly:int -> int = "ml_create_scene"
external destroy_scene : unit -> unit = "ml_destroy_scene"
type zbuffer
external create_zbuffer : bmp:Allegro.bitmap -> Allegro.zbuffer
= "ml_create_zbuffer"
external create_sub_zbuffer :
parent:Allegro.zbuffer ->
x:int -> y:int -> width:int -> height:int -> Allegro.zbuffer
= "ml_create_sub_zbuffer"
external set_zbuffer : zbuffer:Allegro.zbuffer -> unit = "ml_set_zbuffer"
external clear_zbuffer : zbuffer:Allegro.zbuffer -> z:float -> unit
= "ml_clear_zbuffer"
external destroy_zbuffer : zbuffer:Allegro.zbuffer -> unit
= "ml_destroy_zbuffer"
type matrix
type matrix_f
external get_identity_matrix : unit -> Allegro.matrix
= "ml_get_identity_matrix"
external get_identity_matrix_f : unit -> Allegro.matrix_f
= "ml_get_identity_matrix_f"
external free_matrix : Allegro.matrix -> unit = "ml_free_matrix"
external make_matrix :
v:(float * float * float) * (float * float * float) *
(float * float * float) ->
t:float * float * float -> Allegro.matrix = "ml_make_matrix"
external make_matrix_f :
v:(float * float * float) * (float * float * float) *
(float * float * float) ->
t:float * float * float -> Allegro.matrix_f = "ml_make_matrix_f"
external new_matrix : unit -> Allegro.matrix = "ml_new_matrix"
external new_matrix_f : unit -> Allegro.matrix_f = "ml_new_matrix_f"
external get_translation_matrix :
m:Allegro.matrix ->
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> unit
= "ml_get_translation_matrix"
external get_translation_matrix_f :
m:Allegro.matrix -> x:float -> y:float -> z:float -> unit
= "ml_get_translation_matrix_f"
external get_scaling_matrix :
m:Allegro.matrix ->
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> unit
= "ml_get_scaling_matrix"
external get_scaling_matrix_f :
m:Allegro.matrix -> x:float -> y:float -> z:float -> unit
= "ml_get_scaling_matrix_f"
external get_x_rotate_matrix : m:Allegro.matrix -> r:Allegro.fixed -> unit
= "ml_get_x_rotate_matrix"
external get_x_rotate_matrix_f : m:Allegro.matrix -> r:float -> unit
= "ml_get_x_rotate_matrix_f"
external get_y_rotate_matrix : m:Allegro.matrix -> r:Allegro.fixed -> unit
= "ml_get_y_rotate_matrix"
external get_y_rotate_matrix_f : m:Allegro.matrix -> r:float -> unit
= "ml_get_y_rotate_matrix_f"
external get_z_rotate_matrix : m:Allegro.matrix -> r:Allegro.fixed -> unit
= "ml_get_z_rotate_matrix"
external get_z_rotate_matrix_f : m:Allegro.matrix -> r:float -> unit
= "ml_get_z_rotate_matrix_f"
external get_rotation_matrix :
m:Allegro.matrix ->
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> unit
= "ml_get_rotation_matrix"
external get_rotation_matrix_f :
m:Allegro.matrix -> x:float -> y:float -> z:float -> unit
= "ml_get_rotation_matrix_f"
external get_align_matrix :
m:Allegro.matrix ->
xfront:Allegro.fixed ->
yfront:Allegro.fixed ->
zfront:Allegro.fixed ->
xup:Allegro.fixed -> yup:Allegro.fixed -> zup:Allegro.fixed -> unit
= "ml_get_align_matrix_bytecode" "ml_get_align_matrix_native"
external get_align_matrix_f :
m:Allegro.matrix_f ->
xfront:float ->
yfront:float ->
zfront:float -> xup:float -> yup:float -> zup:float -> unit
= "ml_get_align_matrix_f_bytecode" "ml_get_align_matrix_f_native"
external get_vector_rotation_matrix :
m:Allegro.matrix ->
x:Allegro.fixed ->
y:Allegro.fixed -> z:Allegro.fixed -> a:Allegro.fixed -> unit
= "ml_get_vector_rotation_matrix"
external get_vector_rotation_matrix_f :
m:Allegro.matrix_f -> x:float -> y:float -> z:float -> a:float -> unit
= "ml_get_vector_rotation_matrix_f"
external get_transformation_matrix :
m:Allegro.matrix ->
scale:Allegro.fixed ->
xrot:Allegro.fixed ->
yrot:Allegro.fixed ->
zrot:Allegro.fixed ->
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> unit
= "ml_get_transformation_matrix_bytecode"
"ml_get_transformation_matrix_native"
external get_transformation_matrix_f :
m:Allegro.matrix_f ->
scale:float ->
xrot:float ->
yrot:float -> zrot:float -> x:float -> y:float -> z:float -> unit
= "ml_get_transformation_matrix_f_bytecode"
"ml_get_transformation_matrix_f_native"
external get_camera_matrix :
m:Allegro.matrix ->
x:Allegro.fixed ->
y:Allegro.fixed ->
z:Allegro.fixed ->
xfront:Allegro.fixed ->
yfront:Allegro.fixed ->
zfront:Allegro.fixed ->
xup:Allegro.fixed ->
yup:Allegro.fixed ->
zup:Allegro.fixed -> fov:Allegro.fixed -> aspect:Allegro.fixed -> unit
= "ml_get_camera_matrix_bytecode" "ml_get_camera_matrix_native"
external get_camera_matrix_f :
m:Allegro.matrix_f ->
x:float ->
y:float ->
z:float ->
xfront:float ->
yfront:float ->
zfront:float ->
xup:float -> yup:float -> zup:float -> fov:float -> aspect:float -> unit
= "ml_get_camera_matrix_f_bytecode" "ml_get_camera_matrix_f_native"
external qtranslate_matrix :
m:Allegro.matrix ->
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> unit
= "ml_qtranslate_matrix"
external qtranslate_matrix_f :
m:Allegro.matrix_f -> x:float -> y:float -> z:float -> unit
= "ml_qtranslate_matrix_f"
external qscale_matrix : m:Allegro.matrix -> scale:Allegro.fixed -> unit
= "ml_qscale_matrix"
external qscale_matrix_f : m:Allegro.matrix_f -> scale:float -> unit
= "ml_qscale_matrix_f"
external matrix_mul :
m1:Allegro.matrix -> m2:Allegro.matrix -> out:Allegro.matrix -> unit
= "ml_matrix_mul"
external matrix_mul_f :
m1:Allegro.matrix_f ->
m2:Allegro.matrix_f -> out:Allegro.matrix_f -> unit = "ml_matrix_mul_f"
external vector_length :
x:Allegro.fixed -> y:Allegro.fixed -> z:Allegro.fixed -> Allegro.fixed
= "ml_vector_length"
external vector_length_f : x:float -> y:float -> z:float -> float
= "ml_vector_length_f"
external apply_matrix :
m:Allegro.matrix ->
x:Allegro.fixed ->
y:Allegro.fixed ->
z:Allegro.fixed -> Allegro.fixed * Allegro.fixed * Allegro.fixed
= "ml_apply_matrix"
external apply_matrix_f :
m:Allegro.matrix_f ->
x:float -> y:float -> z:float -> float * float * float
= "ml_apply_matrix_f"
external set_projection_viewport : x:int -> y:int -> w:int -> h:int -> unit
= "ml_set_projection_viewport"
external persp_project :
x:Allegro.fixed ->
y:Allegro.fixed -> z:Allegro.fixed -> Allegro.fixed * Allegro.fixed
= "ml_persp_project"
external persp_project_f : x:float -> y:float -> z:float -> float * float
= "ml_persp_project_f"
type quat
external make_quat :
w:float -> x:float -> y:float -> z:float -> Allegro.quat = "ml_make_quat"
external free_quat : q:Allegro.quat -> unit = "ml_free_quat"
external get_identity_quat : unit -> Allegro.quat = "ml_get_identity_quat"
external get_x_rotate_quat : q:Allegro.quat -> r:float -> unit
= "ml_get_x_rotate_quat"
external get_y_rotate_quat : q:Allegro.quat -> r:float -> unit
= "ml_get_y_rotate_quat"
external get_z_rotate_quat : q:Allegro.quat -> r:float -> unit
= "ml_get_z_rotate_quat"
external get_rotation_quat :
q:Allegro.quat -> x:float -> y:float -> z:float -> unit
= "ml_get_rotation_quat"
external get_vector_rotation_quat :
q:Allegro.quat -> x:float -> y:float -> z:float -> a:float -> unit
= "ml_get_vector_rotation_quat"
external quat_to_matrix : q:Allegro.quat -> Allegro.matrix_f
= "ml_quat_to_matrix"
external matrix_to_quat : m:Allegro.matrix_f -> Allegro.quat
= "ml_matrix_to_quat"
external quat_mul : p:Allegro.quat -> q:Allegro.quat -> Allegro.quat
= "ml_quat_mul"
external apply_quat :
q:Allegro.quat -> x:float -> y:float -> z:float -> float * float * float
= "ml_apply_quat"
external quat_interpolate :
from:Allegro.quat -> to_:Allegro.quat -> t:float -> Allegro.quat
= "ml_quat_interpolate"
type how_slerp = QUAT_SHORT | QUAT_LONG | QUAT_CW | QUAT_CCW | QUAT_USER
external quat_slerp :
from:Allegro.quat ->
to_:Allegro.quat -> t:float -> how:Allegro.how_slerp -> Allegro.quat
= "ml_quat_slerp"
end