progress in handling variable window width/height (mostly only in imperative shell though)

This commit is contained in:
2024-12-16 00:58:59 +00:00
parent cc7f30f718
commit 20c4060124
7 changed files with 39 additions and 19 deletions

View File

@@ -158,6 +158,7 @@ extern "C" {
#endif
MLLIB_PUBLIC(void mltonKeyCallback (Int32 x0, Int32 x1, Int32 x2, Int32 x3);)
MLLIB_PUBLIC(void mltonFramebufferSizeCallback (Real32 x0, Real32 x1);)
#undef MLLIB_PRIVATE
#undef MLLIB_PUBLIC

View File

@@ -18,3 +18,13 @@ void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods
void setKeyCallback(GLFWwindow* window) {
glfwSetKeyCallback(window, keyCallback);
}
void framebufferSizeCallback(GLFWwindow* window, int width, int height) {
glViewport(0, 0, width, height);
mltonFramebufferSizeCallback((float) width, (float) height);
}
void setFramebufferSizeCallback(GLFWwindow* window) {
glfwSetFramebufferSizeCallback(window, framebufferSizeCallback);
}

View File

@@ -31,4 +31,9 @@ struct
_export "mltonKeyCallback" public : (int * int * int * int -> unit) -> unit;
val setKeyCallback =
_import "setKeyCallback" public : window -> unit;
val exportFramebufferSizeCallback =
_export "mltonFramebufferSizeCallback" public : (Real32.real * Real32.real -> unit) -> unit;
val setFramebufferSizeCallback =
_import "setFramebufferSizeCallback" public : window -> unit;
end