我正在浏览SDL文档,但我找到WindowData
(SDL_SetWindowData和SDL_GetWindowData)。
这些功能有什么用?它存储与名称相关联的void
指针,因此它只用于存储我的对象,我以后可以使用它?或者它在SDL
?
答案 0 :(得分:3)
这些函数应该允许您使用窗口对象存储指向任意数据的指针(例如您选择的内存缓冲区或对象):
MyObject *object_ptr = new MyObject(); // Your custom object
object_ptr->data = 42; // Your custom data
SDL_SetWindowData(window, "mycustomdata", object_ptr);
// Somewhere else in your code in a place where you have access to 'window'
MyObject *object_ptr = SDL_GetWindowData(window, "mycustomdata");
// do whatever you want with object_ptr..
此行为模仿win32 API的SetWindowLong(hwnd, GWL_USERDATA, pointer);
调用。