03231942bb
So far it was bound to whether we build for GLES. But this is semantically wrong. It might be possible that even on desktop gl epoxy is built without GLX support, thus we need to reflect this. This change ensures that epoxy/glx.h is only included if available, that relevant code is bound to it and that checks are in place to enforce EGL if not build with glx support. In addtion the glxbackend.cpp is now only included in the build set if available.
72 lines
2.4 KiB
C++
72 lines
2.4 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 glGetGraphicsResetStatus_func = GLenum (*)();
|
|
using glReadnPixels_func = void (*)(GLint x, GLint y, GLsizei width, GLsizei height,
|
|
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
|
|
using glGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
|
|
|
extern KWINGLUTILS_EXPORT glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
|
|
extern KWINGLUTILS_EXPORT glReadnPixels_func glReadnPixels;
|
|
extern KWINGLUTILS_EXPORT glGetnUniformfv_func glGetnUniformfv;
|
|
|
|
} // namespace
|
|
|
|
#endif // KWIN_GLUTILS_FUNCS_H
|