c - SDL_GetError() 在 macOS 上返回一个未记录的错误
问题描述
所以我正在为 SDL2 开发一组包装实用程序,但遇到了一个奇怪的问题。每当我SDL_GetError
在帧结束时轮询错误时,如果我触摸触控板,我会收到以下奇怪的错误消息Unknown touch device id -1, cannot reset
:引号中的此错误仅在 google 上显示一个结果,这似乎是 macOS 的一个问题,尽管只有一次出现很难确定。
这是一个最小的可重现示例:
#include <SDL2/SDL.h>
#include <stdio.h>
int main() {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow("Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 100, 100, SDL_WINDOW_SHOWN);
while(1) {
SDL_Event e;
while(SDL_PollEvent(&e))
switch(e.type) {
case SDL_QUIT: {
SDL_DestroyWindow(window);
SDL_Quit();
exit(0);
break;
}
}
const char* err = SDL_GetError();
if(err[0]) {
printf("%s", err);
exit(-1);
}
}
}
我知道这是一个奇怪的问题(并且可能无法回答),所以我非常感谢任何答案或建议。
我正在使用运行 macOS Catalina(10.15.6) 的 MacBook Pro 13 英寸 2012 年中。使用 clang 12.0.0 编译
编辑:我已经下载了 SDL2 源代码来查找错误,根本原因似乎是这个函数:
static int
SDL_GetTouchIndex(SDL_TouchID id)
{
int index;
SDL_Touch *touch;
for (index = 0; index < SDL_num_touch; ++index) {
touch = SDL_touchDevices[index];
if (touch->id == id) {
return index;
}
}
return -1;
}
我正在寻找触发此错误的确切原因,并将为以后遇到此错误的任何人更新此帖子,并向 SDL 开发团队提交错误报告
解决方案
推荐阅读
- string - 为什么我不能用 VBA 编写公式?
- c# - 尝试使用 Selenium 在 C# 中获取下拉菜单的当前值
- typescript - 如何在 Typescript 中组合多个属性装饰器?
- python - TensorFlow 占位符形状
- php - 根据用户输入的值在弹性搜索中排序
- vba - 为什么这个使用范围的类别搜索例程什么都不输出?
- javascript - 在 v8 中将异常作为字符串抛出
- html - T车身轮廓闪烁然后关闭
- python - 使用 merge 和 groupby 将 DF 带入新方案
- php - 如何将已由 SimpleXMLElement 和 xpath 转换的 xml 转换回 php 中的字符串?