add framebufferSize callback (FFI scaffolding and creating new variant of input_message type but don't react to this message in a meaningful way yet)
This commit is contained in:
@@ -159,6 +159,7 @@ extern "C" {
|
||||
|
||||
MLLIB_PUBLIC(void mltonMouseMoveCallback (Real32 x0, Real32 x1);)
|
||||
MLLIB_PUBLIC(void mltonMouseClickCallback (Int32 x0, Int32 x1);)
|
||||
MLLIB_PUBLIC(void mltonFramebufferSizeCallback (Int32 x0, Int32 x1);)
|
||||
|
||||
#undef MLLIB_PRIVATE
|
||||
#undef MLLIB_PUBLIC
|
||||
|
||||
@@ -10,16 +10,21 @@ void mouseMoveCallback(GLFWwindow *window, double xpos, double ypos) {
|
||||
mltonMouseMoveCallback((float)xpos, (float)ypos);
|
||||
}
|
||||
|
||||
void mouseClickCallback(GLFWwindow *window, int button, int action, int mods) {
|
||||
mltonMouseClickCallback(button, action);
|
||||
}
|
||||
|
||||
// Call this from MLton to register key callback with GLFW.
|
||||
// Call this from MLton to register callback with GLFW.
|
||||
void setMouseMoveCallback(GLFWwindow *window) {
|
||||
glfwSetCursorPosCallback(window, mouseMoveCallback);
|
||||
}
|
||||
|
||||
void mouseClickCallback(GLFWwindow *window, int button, int action, int mods) {
|
||||
mltonMouseClickCallback(button, action);
|
||||
}
|
||||
void setMouseClickCallback(GLFWwindow *window) {
|
||||
glfwSetMouseButtonCallback(window, mouseClickCallback);
|
||||
}
|
||||
|
||||
void framebufferSizeCallback(GLFWwindow *window, int width, int height) {
|
||||
mltonFramebufferSizeCallback(width, height);
|
||||
}
|
||||
void setFramebufferSizeCallback(GLFWwindow *window, int width, int height) {
|
||||
glfwSetFramebufferSizeCallback(window, framebufferSizeCallback);
|
||||
}
|
||||
|
||||
@@ -11,9 +11,13 @@ struct
|
||||
|
||||
val exportMouseClickCallback =
|
||||
_export "mltonMouseClickCallback" public : (int * int -> unit) -> unit;
|
||||
|
||||
val setMouseClickCallback = _import "setMouseClickCallback" public reentrant : window -> unit;
|
||||
|
||||
val exportFramebufferSizeCallback =
|
||||
_export "mltonFramebufferSizeCallback" public : (int * int -> unit) -> unit;
|
||||
val setFramebufferSizeCallback =
|
||||
_import "setFramebufferSizeCallback" public reentrant : window -> unit;
|
||||
|
||||
(* Constants for mouse input. *)
|
||||
val (MOUSE_PRESSED, _) =
|
||||
_symbol "MOUSE_PRESSED" public : ( unit -> int ) * ( int -> unit );
|
||||
|
||||
Reference in New Issue
Block a user