ac1dbac8b1
For the functions from GL_FOO_robustness we want to resolve it by ourselves in order to add a custom implementation if it's not available. Unfortunately once epoxy.h is included this breaks as epoxy defines the names and so through the preprocessor epoxy always wins. So we need different names: all functions from robustness get a "kwin" prefix and the usage is changed everywhere in kwin source code. REVIEW: 125883
72 lines
2.5 KiB
C++
72 lines
2.5 KiB
C++
/********************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
Copyright (C) 2007 Rivo Laks <rivolaks@hot.ee>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*********************************************************************/
|
|
|
|
#ifndef KWIN_GLUTILS_FUNCS_H
|
|
#define KWIN_GLUTILS_FUNCS_H
|
|
|
|
#include <kwinglutils_export.h>
|
|
#include <kwinconfig.h>
|
|
#include <kwinglobals.h>
|
|
|
|
#include <epoxy/egl.h>
|
|
|
|
#include <fixx11h.h>
|
|
|
|
#include <epoxy/gl.h>
|
|
|
|
// qopengl.h declares GLdouble as a typedef of float when Qt is built
|
|
// with GLES support. This conflicts with the epoxy/gl_generated.h
|
|
// declaration, so we have to prevent the Qt header from being #included.
|
|
#define QOPENGL_H
|
|
|
|
#ifndef QOPENGLF_APIENTRY
|
|
#define QOPENGLF_APIENTRY GLAPIENTRY
|
|
#endif
|
|
|
|
#ifndef QOPENGLF_APIENTRYP
|
|
#define QOPENGLF_APIENTRYP GLAPIENTRYP
|
|
#endif
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
void KWINGLUTILS_EXPORT glxResolveFunctions();
|
|
|
|
void KWINGLUTILS_EXPORT eglResolveFunctions();
|
|
|
|
void KWINGLUTILS_EXPORT glResolveFunctions(OpenGLPlatformInterface platformInterface);
|
|
|
|
// GLX_MESA_swap_interval
|
|
using glXSwapIntervalMESA_func = int (*)(unsigned int interval);
|
|
extern KWINGLUTILS_EXPORT glXSwapIntervalMESA_func glXSwapIntervalMESA;
|
|
|
|
// GL_ARB_robustness / GL_EXT_robustness
|
|
using kwinGlGetGraphicsResetStatus_func = GLenum (*)();
|
|
using kwinGlReadnPixels_func = void (*)(GLint x, GLint y, GLsizei width, GLsizei height,
|
|
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
|
|
using kwinGlGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
|
|
|
extern KWINGLUTILS_EXPORT kwinGlGetGraphicsResetStatus_func kwinGlGetGraphicsResetStatus;
|
|
extern KWINGLUTILS_EXPORT kwinGlReadnPixels_func kwinGlReadnPixels;
|
|
extern KWINGLUTILS_EXPORT kwinGlGetnUniformfv_func kwinGlGetnUniformfv;
|
|
|
|
} // namespace
|
|
|
|
#endif // KWIN_GLUTILS_FUNCS_H
|