gpt4 book ai didi

c++ - 从回调函数中检索数据

转载 作者:行者123 更新时间:2023-11-30 03:46:05 24 4
gpt4 key购买 nike

假设我要在 GLFW 中设置回调函数

glfwSetCursorPosCallback(window, mouse);

检索光标位置最明显的方法是

vec2 m;

void mouse (GLFWwindow* window, GLdouble x, GLdouble y)
{
m = vec2 (x, y);
}

但是,我更愿意在不使用全局变量的情况下这样做。可以吗?

最佳答案

您可以将用户指针关联到 GLFWindow。参见 glfwSetWindowUserPointer .

可以通过 glfwGetWindowUserPointer 一次从 GLFWWindow 对象中检索指针

struct MyWindowData
{
GLdouble x;
GLdouble y;
}

将指向 windowData 的指针关联到 window:

MyWindowData windowData;

glfwSetWindowUserPointer( window, &windowData );
glfwSetCursorPosCallback( window, mouse );

window 获取指针并将 void* 类型的指针转​​换为 MyWindowData * (遗憾的是你必须进行转换) .

void mouse(GLFWwindow* window, GLdouble x, GLdouble y)
{
MyWindowData *dataPtr = (MyWindowData*)glfwGetWindowUserPointer( window );
dataPtr->x = x;
dataPtr->y = y;
}

关于c++ - 从回调函数中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com