使用SDL_ttf将分段错误显示到窗口

时间:2015-11-03 14:14:00

标签: sdl sdl-2 sdl-ttf

这只是一项训练,可以让我自己使用SDL,忽略缺少功能,警告以及一切都在主要内容。我一直遇到分段错误,这肯定是我对//Initialise TTF, create font pointer, set font and colour then render.部分下的部分所做的,因为没有它的代码工作正常。

#include <SDL2/SDL.h>
#include <SDL/SDL_ttf.h>
#include <stdio.h>

const int SCREEN_WIDTH = 1000;
const int SCREEN_HEIGHT = 1000;

int main(int argc, char* args[])
{
// Set up window, surface, image and font pointers
SDL_Window* gWindow = NULL;
SDL_Surface* gScreenSurface = NULL;
SDL_Surface* gImage1 = NULL;
SDL_Surface* gImage2 = NULL;
SDL_Surface* text = NULL;

// Get a window surface, load images
gWindow = SDL_CreateWindow( "Image in a window, and some text", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
gScreenSurface = SDL_GetWindowSurface(gWindow);
gImage1 = SDL_GetWindowSurface(gWindow);
gImage2 = SDL_GetWindowSurface(gWindow);
gImage1 = SDL_LoadBMP("./Image1.bmp");
gImage2 = SDL_LoadBMP("./Image2.bmp");
------------------------------------------------------
//Initialise TTF, create font pointer, set font and colour then render. 
TTF_Init();
TTF_Font* font;
font = TTF_OpenFont("./LucidaBrightDemiBold.ttf", 24);
SDL_Color text_color = {255, 255, 255, 255};
text = TTF_RenderText_Solid(font, "Using TTF to write stuff", text_color);
-------------------------------------------------------
// Apply the image, update the surface with the image
SDL_BlitSurface(gImage1, NULL, gScreenSurface, NULL); 
SDL_BlitSurface(gImage2, NULL, gScreenSurface, NULL);
SDL_BlitSurface(text, NULL, gScreenSurface, NULL); 
SDL_UpdateWindowSurface( gWindow );                           
SDL_Delay(5000);

// Free surfaces
SDL_FreeSurface(gImage1); 
SDL_FreeSurface(gImage2);
SDL_FreeSurface(text);
//  Nullify surfaces
gImage1 = NULL;
gImage2 = NULL;
text = NULL;      
//Close and nullify window          
SDL_DestroyWindow(gWindow);     
gWindow = NULL;
//Quit images
TTF_Quit();                     
SDL_Quit(); 

return 0;

}

我认为问题出在-------&#39>之间。

0 个答案:

没有答案