mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-26 18:22:09 +02:00
Add a callback glfw can use to request text rendering
This commit is contained in:
2
glfw/glfw3.h
vendored
2
glfw/glfw3.h
vendored
@@ -1683,6 +1683,7 @@ typedef void (* GLFWjoystickfun)(int,int);
|
|||||||
|
|
||||||
typedef void (* GLFWuserdatafun)(unsigned long long, void*);
|
typedef void (* GLFWuserdatafun)(unsigned long long, void*);
|
||||||
typedef void (* GLFWtickcallback)(void*);
|
typedef void (* GLFWtickcallback)(void*);
|
||||||
|
typedef void (* GLFWdrawtextfun)(const char *text, uint32_t fg, uint32_t bg, uint8_t *output_buf, size_t width, size_t height, float x_offset, float y_offset);
|
||||||
|
|
||||||
/*! @brief Video mode type.
|
/*! @brief Video mode type.
|
||||||
*
|
*
|
||||||
@@ -1839,6 +1840,7 @@ GLFWAPI void glfwStopMainLoop(void);
|
|||||||
GLFWAPI unsigned long long glfwAddTimer(monotonic_t interval, bool repeats, GLFWuserdatafun callback, void * callback_data, GLFWuserdatafun free_callback);
|
GLFWAPI unsigned long long glfwAddTimer(monotonic_t interval, bool repeats, GLFWuserdatafun callback, void * callback_data, GLFWuserdatafun free_callback);
|
||||||
GLFWAPI void glfwUpdateTimer(unsigned long long timer_id, monotonic_t interval, bool enabled);
|
GLFWAPI void glfwUpdateTimer(unsigned long long timer_id, monotonic_t interval, bool enabled);
|
||||||
GLFWAPI void glfwRemoveTimer(unsigned long long);
|
GLFWAPI void glfwRemoveTimer(unsigned long long);
|
||||||
|
GLFWAPI GLFWdrawtextfun glfwSetDrawTextFunction(GLFWdrawtextfun function);
|
||||||
|
|
||||||
/*! @brief Terminates the GLFW library.
|
/*! @brief Terminates the GLFW library.
|
||||||
*
|
*
|
||||||
|
|||||||
7
glfw/init.c
vendored
7
glfw/init.c
vendored
@@ -375,3 +375,10 @@ GLFWAPI GLFWapplicationclosefun glfwSetApplicationCloseCallback(GLFWapplicationc
|
|||||||
_GLFW_SWAP_POINTERS(_glfw.callbacks.application_close, cbfun);
|
_GLFW_SWAP_POINTERS(_glfw.callbacks.application_close, cbfun);
|
||||||
return cbfun;
|
return cbfun;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLFWAPI GLFWdrawtextfun glfwSetDrawTextFunction(GLFWdrawtextfun cbfun)
|
||||||
|
{
|
||||||
|
_GLFW_REQUIRE_INIT_OR_RETURN(NULL);
|
||||||
|
_GLFW_SWAP_POINTERS(_glfw.callbacks.draw_text, cbfun);
|
||||||
|
return cbfun;
|
||||||
|
}
|
||||||
|
|||||||
1
glfw/internal.h
vendored
1
glfw/internal.h
vendored
@@ -614,6 +614,7 @@ struct _GLFWlibrary
|
|||||||
GLFWmonitorfun monitor;
|
GLFWmonitorfun monitor;
|
||||||
GLFWjoystickfun joystick;
|
GLFWjoystickfun joystick;
|
||||||
GLFWapplicationclosefun application_close;
|
GLFWapplicationclosefun application_close;
|
||||||
|
GLFWdrawtextfun draw_text;
|
||||||
} callbacks;
|
} callbacks;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
3
kitty/glfw-wrapper.c
generated
3
kitty/glfw-wrapper.c
generated
@@ -33,6 +33,9 @@ load_glfw(const char* path) {
|
|||||||
*(void **) (&glfwRemoveTimer_impl) = dlsym(handle, "glfwRemoveTimer");
|
*(void **) (&glfwRemoveTimer_impl) = dlsym(handle, "glfwRemoveTimer");
|
||||||
if (glfwRemoveTimer_impl == NULL) fail("Failed to load glfw function glfwRemoveTimer with error: %s", dlerror());
|
if (glfwRemoveTimer_impl == NULL) fail("Failed to load glfw function glfwRemoveTimer with error: %s", dlerror());
|
||||||
|
|
||||||
|
*(void **) (&glfwSetDrawTextFunction_impl) = dlsym(handle, "glfwSetDrawTextFunction");
|
||||||
|
if (glfwSetDrawTextFunction_impl == NULL) fail("Failed to load glfw function glfwSetDrawTextFunction with error: %s", dlerror());
|
||||||
|
|
||||||
*(void **) (&glfwTerminate_impl) = dlsym(handle, "glfwTerminate");
|
*(void **) (&glfwTerminate_impl) = dlsym(handle, "glfwTerminate");
|
||||||
if (glfwTerminate_impl == NULL) fail("Failed to load glfw function glfwTerminate with error: %s", dlerror());
|
if (glfwTerminate_impl == NULL) fail("Failed to load glfw function glfwTerminate with error: %s", dlerror());
|
||||||
|
|
||||||
|
|||||||
5
kitty/glfw-wrapper.h
generated
5
kitty/glfw-wrapper.h
generated
@@ -1421,6 +1421,7 @@ typedef void (* GLFWjoystickfun)(int,int);
|
|||||||
|
|
||||||
typedef void (* GLFWuserdatafun)(unsigned long long, void*);
|
typedef void (* GLFWuserdatafun)(unsigned long long, void*);
|
||||||
typedef void (* GLFWtickcallback)(void*);
|
typedef void (* GLFWtickcallback)(void*);
|
||||||
|
typedef void (* GLFWdrawtextfun)(const char *text, uint32_t fg, uint32_t bg, uint8_t *output_buf, size_t width, size_t height, float x_offset, float y_offset);
|
||||||
|
|
||||||
/*! @brief Video mode type.
|
/*! @brief Video mode type.
|
||||||
*
|
*
|
||||||
@@ -1606,6 +1607,10 @@ typedef void (*glfwRemoveTimer_func)(unsigned long);
|
|||||||
GFW_EXTERN glfwRemoveTimer_func glfwRemoveTimer_impl;
|
GFW_EXTERN glfwRemoveTimer_func glfwRemoveTimer_impl;
|
||||||
#define glfwRemoveTimer glfwRemoveTimer_impl
|
#define glfwRemoveTimer glfwRemoveTimer_impl
|
||||||
|
|
||||||
|
typedef GLFWdrawtextfun (*glfwSetDrawTextFunction_func)(GLFWdrawtextfun);
|
||||||
|
GFW_EXTERN glfwSetDrawTextFunction_func glfwSetDrawTextFunction_impl;
|
||||||
|
#define glfwSetDrawTextFunction glfwSetDrawTextFunction_impl
|
||||||
|
|
||||||
typedef void (*glfwTerminate_func)(void);
|
typedef void (*glfwTerminate_func)(void);
|
||||||
GFW_EXTERN glfwTerminate_func glfwTerminate_impl;
|
GFW_EXTERN glfwTerminate_func glfwTerminate_impl;
|
||||||
#define glfwTerminate glfwTerminate_impl
|
#define glfwTerminate glfwTerminate_impl
|
||||||
|
|||||||
Reference in New Issue
Block a user