merged in bartbes' FSAA checking

This commit is contained in:
Bill Meltsner
2010-04-18 10:16:13 -04:00
+17 -7
View File
@@ -192,8 +192,18 @@ namespace opengl
// Have SDL set the video mode. // Have SDL set the video mode.
if(SDL_SetVideoMode(width, height, 32, sdlflags ) == 0) if(SDL_SetVideoMode(width, height, 32, sdlflags ) == 0)
{ {
std::cerr << "Could not set video mode: " << SDL_GetError() << std::endl; bool failed = true;
return false; if(fsaa > 0)
{
// FSAA might have failed, disable it and try again
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 0);
failed = SDL_SetVideoMode(width, height, 32, sdlflags ) == 0;
}
if(failed)
{
std::cerr << "Could not set video mode: " << SDL_GetError() << std::endl;
return false;
}
} }
// Check if FSAA failed or not // Check if FSAA failed or not
@@ -207,7 +217,7 @@ namespace opengl
// Don't fail because of this, but issue a warning. // Don't fail because of this, but issue a warning.
if ( ! buffers || (samples != fsaa)) if ( ! buffers || (samples != fsaa))
std::cerr << "Warning, quality setting failed! (Result: buffers: " << buffers << ", samples: " << samples << std::endl; std::cerr << "Warning, quality setting failed! (Result: buffers: " << buffers << ", samples: " << samples << ")" << std::endl;
} }
// Okay, setup OpenGL. // Okay, setup OpenGL.
@@ -822,13 +832,13 @@ namespace opengl
glPopMatrix(); glPopMatrix();
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
} }
int Graphics::polyline( lua_State * L) int Graphics::polyline( lua_State * L)
{ {
// Get number of params. // Get number of params.
int args = lua_gettop(L); int args = lua_gettop(L);
bool table = false; bool table = false;
if (args == 1) { // we've got a table, hopefully if (args == 1) { // we've got a table, hopefully
int type = lua_type(L, 1); int type = lua_type(L, 1);
if (type != LUA_TTABLE) if (type != LUA_TTABLE)
@@ -836,10 +846,10 @@ namespace opengl
table = true; table = true;
args = lua_objlen(L, 1); args = lua_objlen(L, 1);
} }
if (args % 2) // an odd number of arguments, no good for a polyline if (args % 2) // an odd number of arguments, no good for a polyline
return luaL_error(L, "Number of vertices must be a multiple of two"); return luaL_error(L, "Number of vertices must be a multiple of two");
// right, let's draw this polyline, then // right, let's draw this polyline, then
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
glBegin(GL_LINE_STRIP); glBegin(GL_LINE_STRIP);