inline void HandleBuildError(const String& msg, const ErrorInfo& info) { #if OGLPLUS_CUSTOM_ERROR_HANDLING if(aux::_has_error_handler() && aux::_get_error_handler()( ErrorData( GL_INVALID_OPERATION, 0u, 0u, msg.c_str(), info, Error::PropertyMapInit(), false, false, true, false ) )) return; #endif // OGLPLUS_CUSTOM_ERROR_HANDLING throw Exception(msg, info); }
inline void HandleLimitError(GLuint value, GLuint limit, const ErrorInfo& info) { const GLchar* msg = "OpenGL limited value out of range"; #if OGLPLUS_CUSTOM_ERROR_HANDLING if(aux::_has_error_handler() && aux::_get_error_handler()( ErrorData( GL_INVALID_VALUE, value, limit, msg, info, Error::PropertyMapInit(), false, false, false, true ) )) return; #endif // OGLPLUS_CUSTOM_ERROR_HANDLING throw LimitError(value, limit, msg, info); }
inline void HandleMissingFunction(const ErrorInfo& info) { const GLenum code = GL_INVALID_VALUE; const char* msg = "Function called through an invalid pointer"; #if OGLPLUS_CUSTOM_ERROR_HANDLING if(aux::_has_error_handler() && aux::_get_error_handler()( ErrorData( code, 0u, 0u, msg, info, Error::PropertyMapInit(), true, true, false, false ) )) return; #endif // OGLPLUS_CUSTOM_ERROR_HANDLING throw MissingFunction(code, msg, info); }
inline void HandleError( ALenum code, const ALchar* msg, const ErrorInfo& info, bool assertion ) { #if OALPLUS_CUSTOM_ERROR_HANDLING if(aux::_has_error_handler() && aux::_get_error_handler()( ErrorData( code, msg, info, assertion, code == AL_OUT_OF_MEMORY, false, false ) )) return; #endif // OALPLUS_CUSTOM_ERROR_HANDLING throw Error(code, msg?msg:"Unknown error", info, assertion); }
inline void HandleIncompleteFramebuffer( FBStatus status, const ErrorInfo& info ) { const GLchar* msg = "Framebuffer is incomplete"; #if OGLPLUS_CUSTOM_ERROR_HANDLING if(aux::_has_error_handler() && aux::_get_error_handler()( ErrorData( GL_INVALID_FRAMEBUFFER_OPERATION, 0u, 0u, msg, info, Error::PropertyMapInit(), false, false, false, true ) )) return; #endif // OGLPLUS_CUSTOM_ERROR_HANDLING throw Exception(status, msg, info); }