X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glretrace_main.cpp;h=4e4b8aee8da4cbf942dc4ac8ca1dd3ddb6805d2d;hb=93f0e3f5b7fc212bc993af407dacac24cdab5210;hp=cf250b9e572373d982205f91f762dccfdc68dca0;hpb=a94f2b68f6fc8ff381f26e8cd88e08f92a4e9a60;p=apitrace diff --git a/glretrace_main.cpp b/glretrace_main.cpp index cf250b9..4e4b8ae 100644 --- a/glretrace_main.cpp +++ b/glretrace_main.cpp @@ -38,7 +38,6 @@ namespace glretrace { bool double_buffer = true; bool insideGlBeginEnd = false; Trace::Parser parser; -glws::WindowSystem *ws = NULL; glws::Visual *visual = NULL; glws::Drawable *drawable = NULL; glws::Context *context = NULL; @@ -61,46 +60,42 @@ checkGlError(Trace::Call &call) { return; } - if (retrace::verbosity == 0) { - std::cout << call; - std::cout.flush(); - } + std::ostream & os = retrace::warning(call); - std::cerr << call.no << ": "; - std::cerr << "warning: glGetError("; - std::cerr << call.name(); - std::cerr << ") = "; + os << "glGetError("; + os << call.name(); + os << ") = "; switch (error) { case GL_INVALID_ENUM: - std::cerr << "GL_INVALID_ENUM"; + os << "GL_INVALID_ENUM"; break; case GL_INVALID_VALUE: - std::cerr << "GL_INVALID_VALUE"; + os << "GL_INVALID_VALUE"; break; case GL_INVALID_OPERATION: - std::cerr << "GL_INVALID_OPERATION"; + os << "GL_INVALID_OPERATION"; break; case GL_STACK_OVERFLOW: - std::cerr << "GL_STACK_OVERFLOW"; + os << "GL_STACK_OVERFLOW"; break; case GL_STACK_UNDERFLOW: - std::cerr << "GL_STACK_UNDERFLOW"; + os << "GL_STACK_UNDERFLOW"; break; case GL_OUT_OF_MEMORY: - std::cerr << "GL_OUT_OF_MEMORY"; + os << "GL_OUT_OF_MEMORY"; break; case GL_INVALID_FRAMEBUFFER_OPERATION: - std::cerr << "GL_INVALID_FRAMEBUFFER_OPERATION"; + os << "GL_INVALID_FRAMEBUFFER_OPERATION"; break; case GL_TABLE_TOO_LARGE: - std::cerr << "GL_TABLE_TOO_LARGE"; + os << "GL_TABLE_TOO_LARGE"; break; default: - std::cerr << error; + os << error; break; } - std::cerr << "\n"; + os << "\n"; } /** @@ -231,7 +226,7 @@ static void display(void) { } if (wait) { - while (ws->processEvents()) {} + while (glws::processEvents()) {} } else { exit(0); } @@ -271,6 +266,7 @@ int main(int argc, char **argv) } else if (!strcmp(arg, "-b")) { benchmark = true; retrace::verbosity = -1; + glws::debug = false; } else if (!strcmp(arg, "-c")) { compare_prefix = argv[++i]; if (snapshot_frequency == FREQUENCY_NEVER) { @@ -321,8 +317,8 @@ int main(int argc, char **argv) } } - ws = glws::createNativeWindowSystem(); - visual = ws->createVisual(double_buffer); + glws::init(); + visual = glws::createVisual(double_buffer); for ( ; i < argc; ++i) { if (!parser.open(argv[i])) { @@ -334,6 +330,9 @@ int main(int argc, char **argv) parser.close(); } + + delete visual; + glws::cleanup(); return 0; }