10 #ifndef INCLUDED_VCL_OPENGL_OPENGLHELPER_HXX
11 #define INCLUDED_VCL_OPENGL_OPENGLHELPER_HXX
18 #include <rtl/ustring.hxx>
20 #include <string_view>
23 #define VCL_GL_INFO(stream) \
25 if (SAL_DETAIL_ENABLE_LOG_INFO) \
27 ::std::ostringstream detail_stream; \
28 detail_stream << stream; \
29 OpenGLHelper::debugMsgStream(detail_stream); \
34 #define VCL_GL_WARN(stream) \
36 if (SAL_DETAIL_ENABLE_LOG_INFO) \
38 ::std::ostringstream detail_stream; \
39 detail_stream << stream; \
40 OpenGLHelper::debugMsgStreamWarn(detail_stream); \
51 static OString GetDigest(
const OUString& rVertexShaderName,
const OUString& rFragmentShaderName, std::string_view preamble );
53 static GLint LoadShaders(
const OUString& rVertexShaderName,
const OUString& rFragmentShaderName,
const OUString& rGeometryShaderName, std::string_view preamble, std::string_view rDigest );
54 static GLint LoadShaders(
const OUString& rVertexShaderName,
const OUString& rFragmentShaderName, std::string_view preamble, std::string_view rDigest );
55 static GLint LoadShaders(
const OUString& rVertexShaderName,
const OUString& rFragmentShaderName,
const OUString& rGeometryShaderName);
56 static GLint LoadShaders(
const OUString& rVertexShaderName,
const OUString& rFragmentShaderName);
67 static GLenum OptimalBufferFormat();
70 static const char* GLErrorString(GLenum errorCode);
85 GLuint& nRenderbufferDepthId, GLuint& nRenderbufferColorId);
88 static float getGLVersion();
90 static void checkGLError(
const char* aFile,
size_t nLine);
99 static void debugMsgPrint(
const int nType,
const char *pFormat, ...);
100 static void debugMsgStream(std::ostringstream
const &pStream);
101 static void debugMsgStreamWarn(std::ostringstream
const &pStream);
106 static bool isDeviceDenylisted();
111 static bool supportsOpenGL();
115 #define CHECK_GL_ERROR() OpenGLHelper::checkGLError(__FILE__, __LINE__)
117 #define CHECK_GL_ERROR() do { } while (false)
unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)))