gpt4 book ai didi

sdl - Emscripten 调用 SDL_Init 卡住浏览器文本输入

转载 作者:行者123 更新时间:2023-12-02 22:19:52 25 4
gpt4 key购买 nike

我目前正在 mingw 下交叉编译 Sprite 引擎。因此我有 2 个问题。

SDL 的行为由 Emscripten 通过 WebGL 层模拟。使用 emcc 编译时,我什至不必链接 SDL 库。

  1. 问题是:

    如果我像这样初始化我的应用程序:

    if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) == -1)return -1;
    SDL_Surface *screen= SDL_SetVideoMode(640, 480, 24, SDL_SWSURFACE);
    SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 255, 0, 0));
    SDL_Flip(screen);

    然后我无法将文本放入浏览器的文本字段中,但我收到了 SDL_Events。所有其他浏览器输入(如复选框或选择框)均有效。

    如果像这样初始化我的应用程序(Emscripten 也可以在没有 SDL_Init 的情况下工作!):<​​/p>

    SDL_Surface *screen= SDL_SetVideoMode(640, 480,  24, SDL_HWSURFACE);
    SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 255, 0, 0));
    SDL_Flip(screen);

    然后我可以将 tet 放入浏览器文本字段,但我没有收到 SDL_Events。

    是否有使浏览器文本输入字段和 SDL_Events 正常工作的解决方法?

  2. 问题

    这行代码在我的WIN32系统上编译满屏了

    SDL_FillRect(screen,NULL, SDL_MapRGB(screen->format, 255, 0, 0));

    用 Emscripten 编译的同一行将屏幕填满红色。

    有没有办法在 Emscripten 或 SDL header 中切换 SDL 颜色?

最佳答案

在您的 native 代码中,在调用 SDL_CreateWindow 之前添加:

SDL_SetHint(SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT, "#canvas");

更多信息在这里:https://wiki.libsdl.org/SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT

关于sdl - Emscripten 调用 SDL_Init 卡住浏览器文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13892688/

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