增加窗口大小后,我无法在窗口上绘制。我仍然可以借鉴旧的部分。例如,我有一个100x100的窗口,我使用SDL_SetWindowSize将其大小增加到200x200。我可以绘制到旧的100x100区域,但是除非在使用前延迟,否则新区域将不可用。
这里是使用SDL_RenderClear的问题的示例:
int main(void)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *win = SDL_CreateWindow("test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 100, 100, SDL_WINDOW_SHOWN);
SDL_Renderer *rend = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
/* Draw red window */
SDL_SetRenderDrawColor(rend, 255, 0, 0, 255);
SDL_RenderClear(rend);
SDL_RenderPresent(rend); // Completely red
SDL_Delay(3000);
/* Increase window size and draw it green */
SDL_SetWindowSize(win, 800, 800);
SDL_SetRenderDrawColor(rend, 0, 255,0, 255);
SDL_RenderClear(rend);
SDL_RenderPresent(rend); // Partially green
SDL_Delay(3000);
/* Make window blue */
SDL_SetRenderDrawColor(rend, 0, 0, 255, 255);
SDL_RenderClear(rend);
SDL_RenderPresent(rend); // Completely blue
SDL_Delay(3000);
SDL_DestroyRenderer(rend);
SDL_DestroyWindow(win);
SDL_Quit();
return 0;
}
此代码应该:
该代码实际上是这样做的:
当我在SDL_RenderPresent()之前添加100ms延迟时,它可以正常工作。但是,我的一个项目也遇到了同样的问题,必须使用200毫秒的延迟才能工作。
为什么在渲染之前需要延迟?有什么办法知道在SDL_RenderPresent()之前要等待多少时间?
增加窗口大小后,我无法在窗口上绘制。我仍然可以借鉴旧的部分。例如,我有一个100x100的窗口,我使用SDL_SetWindowSize将其大小增加到200x200。我可以画到...
老实说,我不知道您的代码有什么问题。