我正在尝试将图形(drawing.c)
与屏幕的创建与窗口和渲染器(initialize.c)
的分离。我希望它们都在不同的源文件中。绘图代码会运行并执行,但是图形不会更新。
如果我将图形文件中的代码放在创建窗口和渲染文件中,则它可以工作。窗口中的颜色现在变成红色。
main.c-主文件
SDL_Window *window;
SDL_Renderer *renderer;
int main()
{
initialize(window,renderer);
draw(renderer);
SDL_Dealy(5000);
SDL_Quit();
}
initialize.c-创建窗口和渲染器
void initialize(SDL_Window *window,SDL_Renderer *renderer)
{
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("Title",SDL_WINDOWPOS_UNDEFINED,640,480,0);
renderer = SDL_CreateRenderer(window,-1,0);
}
draw.c-将图形绘制到窗口
void draw(SDL_Renderer *renderer)
{
SDL_SetRenderDrawColor(renderer,255,255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
运行代码时,窗口显示为黑色。应该以红色填充。运行代码时,我没有收到任何错误消息。新的彩色图形永远不会显示。