c++ - SDL/opengl 多重采样不起作用

标签 c++ opengl ubuntu sdl multisampling

我正在尝试使用 SDL/opengl 进行多重采样,但 SDL 不接受设置 SDL_MULTISAMPLEBUFFERS 和 SDL_MULTISAMPLESAMPLES。相反,它们保留为 0,之后 SDL_SetVideoMode() 将失败。我知道我的硬件可以通过 4 倍多重采样处理这种像素格式。我正在运行 Ubuntu 10.10。

代码:

SDL_Init( SDL_INIT_VIDEO );
SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );
SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 0 );
SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
SDL_GL_SetAttribute( SDL_GL_SWAP_CONTROL, 0 );
SDL_GL_SetAttribute( SDL_GL_ACCELERATED_VISUAL, 1 );
SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 );
SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, 4 );

Uint32 flags;
flags = SDL_OPENGL;
if( m_bFullscreen )
{
    flags = flags | SDL_FULLSCREEN;
}
SDL_SetVideoMode( m_sizeX, m_sizeY, 0, flags );

最佳答案

添加那些测试:

if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
    fprintf(stderr, "Unable to initialize SDL: %s\n", SDL_GetError());
    EXIT_FAILURE;
}

if ( SDL_SetVideoMode(m_sizeX, m_sizeY, 0, flags) == NULL ) {
    fprintf(stderr, "Unable to create OpenGL screen: %s\n", SDL_GetError());
    SDL_Quit();
    EXIT_FAILURE;
}

然后观察你的 stderr 输出。

关于c++ - SDL/opengl 多重采样不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683094/

相关文章:

c - 当我按下一个键时,如何使这个球体围绕另一个球体旋转?

java - OpenGL Z 索引问题?

opengl - 哪里可以找到简单的 YUV(可能是 YUV420P)图像来测试? (我可以用ffmpeg提取吗?)

c++ - Qt 和 OpenGL : render a 2D texture

c++ - Boost 库 iostream::copy 不起作用

c++ - Visual C++ 2008 Boost 问题

ubuntu - hadoop示例作业因网络错误而失败

c++ - 我可以在不调用未定义行为的情况下存储指向不存在数据的指针吗?

linux - 无法在 Ubuntu 上更新 Git

php - Nginx + PHP5-FPM 保持文件 404 未找到