Мой код ничего не отображает.Все, что я получаю, это окно без изображения.
#include <iostream>
#include <stdio.h>
#include <SDL2/SDL.h>
using namespace std;
SDL_Window *gWindow=NULL;
SDL_Surface *gScreenSurface=NULL;
SDL_Surface *gHelloWorld=NULL;
const int SCREEN_WIDTH=640, SCREEN_HEIGHT=480;
bool init(){
bool success = true;
if(SDL_Init (SDL_INIT_VIDEO) < 0 ) {
printf("SDL could not initialize! SDL_Error : %s \n", SDL_GetError() );
success=false;
}
else{
gWindow = SDL_CreateWindow ( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
if( gWindow == NULL ){
printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
success=false;
}
else {
gScreenSurface = SDL_GetWindowSurface (gWindow);
}
}
return success;
}
bool loadMedia(){
bool success=true;
gHelloWorld = SDL_LoadBMP ( "hello_world.bmp" );
if (gHelloWorld == NULL ){
printf( "Unable to load image %s! SDL Error: %s\n", "hello_world.bmp", SDL_GetError() );
success=false;
}
return success;
}
void close(){
SDL_FreeSurface( gHelloWorld );
gHelloWorld=NULL;
SDL_DestroyWindow( gWindow );
gWindow=NULL;
SDL_Quit();
}
int main(int argc, char* args[]){
if(!init()){
printf( "failed to initialize!\n" );
}
else {
if( !loadMedia() ) {
printf ("failed to laod media! \n");
}
else {
SDL_BlitSurface( gHelloWorld, NULL, SDL_GetWindowSurface(gWindow), NULL );
SDL_UpdateWindowSurface ( gWindow );
SDL_Delay (2000);
}
}
close();
Я ожидаю, что оно покажет мне изображение bmp, которое находится по пути, указанному здесь в функции loadBMP()
, но все, что я получаю, это пустое прозрачное окно.
Я использую KDE Konsole, если это как-то связано с этим.