Add 'shf/' from commit 'b6c5a95b664aeb861d7b33ffc9eefe447ba99dd7'

git-subtree-dir: shf
git-subtree-mainline: 401408448f
git-subtree-split: b6c5a95b66
This commit is contained in:
2026-04-24 00:27:49 +01:00
83 changed files with 43952 additions and 0 deletions

91
shf/ffi/glfw-input.sml Normal file
View File

@@ -0,0 +1,91 @@
structure Input =
struct
type window = MLton.Pointer.t
(* Constants. *)
val (PRESS, _) =
_symbol "PRESS" public : ( unit -> int ) * ( int -> unit );
val PRESS = PRESS ()
val (REPEAT, _) =
_symbol "REPEAT" public : ( unit -> int ) * ( int -> unit );
val REPEAT = REPEAT ()
val (RELEASE, _) =
_symbol "RELEASE" public : ( unit -> int ) * ( int -> unit );
val RELEASE = RELEASE ()
val exportFramebufferSizeCallback =
_export "mltonFramebufferSizeCallback" public : (int * int -> unit) -> unit;
val setFramebufferSizeCallback =
_import "setFramebufferSizeCallback" public : window -> unit;
val exportCharCallback =
_export "mltonCharCallback" public : (Word32.word -> unit) -> unit;
val setCharCallback =
_import "setCharCallback" public : window -> unit;
val exportKeyCallback =
_export "mltonKeyCallback" public : (int * int * int * int -> unit) -> unit;
val setKeyCallback =
_import "setKeyCallback" public : window -> unit;
val (KEY_ESC, _) =
_symbol "KEY_ESC" public : ( unit -> int ) * ( int -> unit );
val KEY_ESC = KEY_ESC ()
val (KEY_ENTER, _) =
_symbol "KEY_ENTER" public : ( unit -> int ) * ( int -> unit );
val KEY_ENTER = KEY_ENTER ()
val (KEY_BACKSPACE, _) =
_symbol "KEY_BACKSPACE" public : ( unit -> int ) * ( int -> unit );
val KEY_BACKSPACE = KEY_BACKSPACE ()
val (KEY_ARROW_LEFT, _) =
_symbol "KEY_ARROW_LEFT" public : ( unit -> int ) * ( int -> unit );
val KEY_ARROW_LEFT = KEY_ARROW_LEFT ()
val (KEY_ARROW_UP, _) =
_symbol "KEY_ARROW_UP" public : ( unit -> int ) * ( int -> unit );
val KEY_ARROW_UP = KEY_ARROW_UP ()
val (KEY_ARROW_RIGHT, _) =
_symbol "KEY_ARROW_RIGHT" public : ( unit -> int ) * ( int -> unit );
val KEY_ARROW_RIGHT = KEY_ARROW_RIGHT ()
val (KEY_ARROW_DOWN, _) =
_symbol "KEY_ARROW_DOWN" public : ( unit -> int ) * ( int -> unit );
val KEY_ARROW_DOWN = KEY_ARROW_DOWN ()
(* gamepad bindings below *)
val getGamepadState =
_import "getGamepadState" public : int -> int;
val getLeftJoystickXAxisState =
_import "getLeftJoystickXAxisState" public : unit -> Real32.real;
val getLeftJoystickYAxisState =
_import "getLeftJoystickYAxisState" public : unit -> Real32.real;
val isCrossButtonPressed =
_import "isCrossButtonPressed" public : unit -> int;
val isCircleButtonPressed =
_import "isCircleButtonPressed" public : unit -> int;
val isSquareButtonPressed =
_import "isSquareButtonPressed" public : unit -> int;
val isTriangleButtonPressed =
_import "isTriangleButtonPressed" public : unit -> int;
val isR1ButtonPressed =
_import "isR1ButtonPressed" public : unit -> int;
val isL1ButtonPressed =
_import "isL1ButtonPressed" public : unit -> int;
val isDpadUpButtonPressed =
_import "isDpadUpButtonPressed" public : unit -> int;
val isDpadDownButtonPressed =
_import "isDpadDownButtonPressed" public : unit -> int;
val isDpadLeftButtonPressed =
_import "isDpadLeftButtonPressed" public : unit -> int;
val isDpadRightButtonPressed =
_import "isDpadRightButtonPressed" public : unit -> int;
val getR2State =
_import "getR2State" public : unit -> Real32.real;
val getL2State =
_import "getL2State" public : unit -> Real32.real;
end