【发布时间】:2015-02-22 18:28:39
【问题描述】:
我正在关注 Youtube 上的教程,但是当我尝试它时它并没有按预期工作。
代码如下:
#include <stdio.h>
#include <SDL2/SDL.h>
void start(SDL_Window* window, SDL_Renderer* renderer)
{
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow("Hello", 200, 200, 200, 200, 0);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_Rect rect = {220, 140, 200, 200};
SDL_RenderFillRect(renderer, &rect);
}
void stop(SDL_Window* window, SDL_Renderer* renderer)
{
SDL_DestroyWindow(window);
SDL_DestroyRenderer(renderer);
}
int main(int argc, char **argv)
{
SDL_Window* window;
SDL_Renderer* renderer;
start(window, renderer);
SDL_Delay(5000);
stop(window, renderer);
return 0;
}
它应该在窗口中间创建一个白色矩形并用蓝色填充其余部分,但是当我运行它时不会发生这种情况。相反,它会“捕获”其下程序的图片,例如背景。为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
尝试添加
SDL_RenderPresent(renderer);更新屏幕。 -
我应该把它放在哪里?