SDL 表面返回空值
SDL Surface returning NULL?
我遇到了分割错误,我已经将其跟踪到我的表面,这是空的(但就地检查不会触发(。
我不确定我是否正确创建了表面。在创建 Surface 时,我需要添加一些我错过的东西吗?
bool init()
{
//Initialize SDL
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
printf( "SDL could not initialize! SDL Error: %sn", SDL_GetError() );
return false;
}
else
{
//Set texture filtering to linear
if( !SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "1" ) )
{
printf( "Warning: Linear texture filtering not enabled!" );
return false;
}
else
{
//Create window
gWindow = SDL_CreateWindow( "kPaint", 575, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
GUI = SDL_CreateWindow( "GUI", 0, SDL_WINDOWPOS_UNDEFINED, 573, 542, SDL_WINDOW_SHOWN );
if( gWindow == NULL || GUI == NULL )
{
printf( "Window could not be created! SDL Error: %sn", SDL_GetError() );
return false;
}
else
{
//Create renderer for window
gRenderer = SDL_CreateRenderer( gWindow, -1, SDL_RENDERER_ACCELERATED );
if( gRenderer == NULL )
{
printf( "Renderer could not be created! SDL Error: %sn", SDL_GetError() );
return false;
}
surface = SDL_GetWindowSurface( gWindow );
GUIsurface = SDL_GetWindowSurface( GUI );
if( surface == NULL )
{
printf( "surface could not be created!" );
return false;
}
SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, 255,255,255));
//Initialize PNG loading
int imgFlags = IMG_INIT_PNG;
if( !( IMG_Init( imgFlags ) && imgFlags ) )
{
printf( "SDL_image could not initialize! SDL_image Error: %sn", IMG_GetError() );
return false;
}
}
}
}
return true;
}
谢谢NeoAgglos。
我在表面之前创建了一个渲染器。
bool init()
{
//Initialize SDL
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
printf( "SDL could not initialize! SDL Error: %sn", SDL_GetError() );
return false;
}
else
{
//Set texture filtering to linear
if( !SDL_SetHint( SDL_HINT_RENDER_SCALE_QUALITY, "1" ) )
{
printf( "Warning: Linear texture filtering not enabled!" );
return false;
}
else
{
//Create window
gWindow = SDL_CreateWindow( "kPaint", 575, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
GUI = SDL_CreateWindow( "GUI", 0, SDL_WINDOWPOS_UNDEFINED, 573, 542, SDL_WINDOW_SHOWN );
if( gWindow == NULL || GUI == NULL )
{
printf( "Window could not be created! SDL Error: %sn", SDL_GetError() );
return false;
}
else
{
surface = SDL_GetWindowSurface( gWindow );
GUIsurface = SDL_GetWindowSurface( GUI );
if( surface == NULL )
{
printf( "surface could not be created!" );
return false;
}
SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, 255,255,255));
//Create renderer for window
gRenderer = SDL_CreateRenderer( gWindow, -1, SDL_RENDERER_ACCELERATED );
if( gRenderer == NULL )
{
printf( "Renderer could not be created! SDL Error: %sn", SDL_GetError() );
return false;
}
//Initialize PNG loading
int imgFlags = IMG_INIT_PNG;
if( !( IMG_Init( imgFlags ) && imgFlags ) )
{
printf( "SDL_image could not initialize! SDL_image Error: %sn", IMG_GetError() );
return false;
}
}
}
}
return true;
}
相关文章:
- 返回空值的字符串值
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- 动态强制转换返回空值
- SDL 表面返回空值
- QJsonObject 返回空值
- dynamic_cast<D *>(pb) 返回空值
- env->FindClass 函数返回空值
- C getCurrentThemename返回经典Windows主题的空值
- c++/openCV : cvConvert 返回空值
- TTF_OpenFont返回空值
- std::current_exception 是否应该从类析构函数中的 catch 块返回非空值
- GetWindowTextA,GetWindowText在编辑控件上返回空值
- 方法调用返回空值
- C/C++ Cocos2dx 对象在调用调度后返回空值
- Win8 应用在 Win10 上崩溃 (D3D11CreateDevice 返回空值)
- 字符串流返回空值
- 返回空值或抛出异常
- 从索引越界的c++链表返回空值
- c++的getenv总是返回空值
- MySQL 在询问某些值和空值之间的差异时返回 null