2015-05-10 2 views
-1

Я пишу программу в SDL и C, и я хочу, чтобы сохранить окно в качестве изображения.SDL Сохранение окна как BMP

Это мой код:

screen = SDL_GetWindowSurface(win); 
SDL_SaveBMP(screen,"screen"); 

Но когда я исполняю его я получаю:

Segmentation Fault 

Из других источников я заключаю, что его об указателях и доступе к памяти. Любая помощь?

+1

Вы видели это? - https://wiki.libsdl.org/SDL_RWFromMem – alok

ответ

1

Вызов SDL_LockSurface на поверхности окна перед сохранением растрового изображения и SDL_UnlockSurface после этого.

+0

Пробовал ваше решение, но кажется screen = SDL_GetWindowSurface (win); возвращает NULL – jtmwanakhu

0
SDL_Surface *sshot = SDL_CreateRGBSurface(0, 750, 750, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); 
    SDL_RenderReadPixels(renderer, NULL, SDL_PIXELFORMAT_ARGB8888, sshot->pixels, sshot->pitch); 
    SDL_SaveBMP(sshot, "screenshot.bmp"); 
    SDL_FreeSurface(sshot); 
+0

Вам не нужно блокировать 'sshot'? –

Смежные вопросы