Я написал следующий код, чтобы загрузить изображение BMP как поверхность и затем перетащить это изображение в окно:
#include "stdafx.h"
#include "SDL.h"
#include <iostream>
int main(int argc, char *argv[])
{
//init
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow("Playground", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 500, 500, 0);
std::cout << SDL_GetError() << std::endl;
SDL_Surface* surface = SDL_GetWindowSurface(window);
//load file and convert to texture
SDL_Surface* bmp = SDL_LoadBMP("sample.bmp");
std::cout << SDL_GetError() << std::endl;
//render texture
SDL_Rect area;
area.x, area.y = 3;
area.h, area.w = 25;
SDL_BlitSurface(bmp, &area, surface, &area);
std::cout << SDL_GetError() << std::endl;
SDL_UpdateWindowSurface(window);
std::cout << SDL_GetError() << std::endl;
SDL_Delay(3000);
//clean up
SDL_FreeSurface(bmp);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Когда я нажимаю клавишу F5 (я работаю в Visual Studio Express 2017) для создания и запуска программы, созданная программа запускается, создает окно, а затем окно остается полностью черным во время выполнения программы.Я не получаю сообщений об ошибках от VS, SDL_GetError () или Windows.Кажется, нет никаких проблем, но изображение просто теряется где-то, кажется.Кто-нибудь сможет мне помочь?
PS Вот bmp, который я пытаюсь отобразить: