大家好,我是切换 Homebrew 开发的新手。我从 Switch Homebrew 的 SDL2 开始。我已经下载并安装了 devout pro。并打开graphics sdl2-simple example c++ program并编译。它编译成功并生成一个 .nro 文件。然后我将它放到 Yuzu 模拟器中,它与 Joy con 输入一起按预期工作。但现在我需要使该程序更简单,以便它在模拟器中启动时更改 SDL 窗口的背景颜色。我通过删除不必要的方法(以特定模式绘制矩形的用户定义方法)修改了示例代码,因为我的代码不需要它。然后我编译它编译成功并生成一个 .nro 文件。而且我使用原始 sdl2-simple 示例中的相同 Make 文件,因为我不知道如何创建 MakeFile。但是当我将它拖放到柚子模拟器中时,它会卡在启动进度条上。如何修改我的代码,以便在启动时更改窗口颜色。代码在启动时更简单,它应该将窗口颜色设置为白色。这是我的代码。它完全编译成功并生成 .nro 文件。但是当我把它放在 Yuzu 中时,它卡在启动进度条屏幕上。我不知道我哪里错了
#include <stdlib.h>
#include <stdio.h>
#include<iostream>
#include <SDL.h>
#include<SDL2/SDL.h>
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window* Window = NULL;
Window = SDL_CreateWindow("demo",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,800,450,SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL);
if(Window == NULL)
{
std::cout<<"Error in window initialization\n"<<SDL_GetError()<<"\n";
return -1;
}
for (int i = 0; i < 2; i++) {
if (SDL_JoystickOpen(i) == NULL) {
SDL_Log("SDL_JoystickOpen: %s\n", SDL_GetError());
SDL_Quit();
return -1;
}
}
SDL_Surface* Screen = SDL_GetWindowSurface(Window);
bool running = true;
SDL_Event event;
Uint32 white = SDL_MapRGB(Screen->format,255,255,255);
SDL_FillRect(Screen,NULL,white);
SDL_UpdateWindowSurface(Window);
while (running)
{
while (SDL_PollEvent(&event))
{
if(event.type == SDL_QUIT)
{
running = false;
break;
}
}
}
SDL_DestroyWindow(Window);
SDL_Quit();
return 0;
}