我正在学习SDL,我试图渲染一个.bmp图像,但它只是显示一个黑屏。下面是代码:
#include <SDL.h>
#include "engine.cpp"
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
//Init image's pointers
bool quit = false;
//Render a window
SDL_Event event;
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface *imageSurface = NULL;
SDL_Surface* windowSurface = NULL;
SDL_Window* window = SDL_CreateWindow("SDL2 Displaying Image", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
windowSurface = SDL_GetWindowSurface(window);
imageSurface = SDL_LoadBMP("hello.bmp");
SDL_BlitSurface(imageSurface, NULL, windowSurface, NULL);
SDL_UpdateWindowSurface(window);
SDL_Delay(2000);
while (!quit) {
SDL_WaitEvent(&event);
switch (event.type) {
case SDL_QUIT:
quit = true;
break;
}
}
SDL_Quit();
return 0;
}
我想做的是渲染一个.bmp图像。我目前只是在进行bug测试,所以请不要因为我没有使用SDL_Quit()而嘲笑我。我已经看过任何我能找到的解决这个问题的方法,没有一个有效。请帮助!
编辑:我对这段代码进行了一些编辑,在渲染我的.bmp图像之后放置了while(!quit){}语句。
2条答案
按热度按时间x33g5p2x1#
你告诉电脑等你退出程序,然后画出这幅画。
在退出程序之前,您可能希望立即绘制图片。
oxcyiej72#
我的错,目录/文件位置不正确。现在它是正确的渲染。为了测试错误,我添加了
如果你有类似的问题,试试这个。谢谢!