Revert "Handle conflicts between epoxy and manually resolved function pointers"
This reverts commit ac1dbac8b1
.
This commit is contained in:
parent
e71a230213
commit
01451eea36
7 changed files with 26 additions and 26 deletions
|
@ -208,7 +208,7 @@ void EglGbmBackend::endRenderingFrame(const QRegion &renderedRegion, const QRegi
|
||||||
glFlush();
|
glFlush();
|
||||||
if (m_backend->saveFrames()) {
|
if (m_backend->saveFrames()) {
|
||||||
QImage img = QImage(QSize(m_backBuffer->width(), m_backBuffer->height()), QImage::Format_ARGB32);
|
QImage img = QImage(QSize(m_backBuffer->width(), m_backBuffer->height()), QImage::Format_ARGB32);
|
||||||
kwinGlReadnPixels(0, 0, m_backBuffer->width(), m_backBuffer->height(), GL_RGBA, GL_UNSIGNED_BYTE, img.byteCount(), (GLvoid*)img.bits());
|
glReadnPixels(0, 0, m_backBuffer->width(), m_backBuffer->height(), GL_RGBA, GL_UNSIGNED_BYTE, img.byteCount(), (GLvoid*)img.bits());
|
||||||
convertFromGLImage(img, m_backBuffer->width(), m_backBuffer->height());
|
convertFromGLImage(img, m_backBuffer->width(), m_backBuffer->height());
|
||||||
img.save(QStringLiteral("%1/%2.png").arg(m_backend->saveFrames()).arg(QString::number(m_frameCounter++)));
|
img.save(QStringLiteral("%1/%2.png").arg(m_backend->saveFrames()).arg(QString::number(m_frameCounter++)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ void ScreenShotEffect::postPaintScreen()
|
||||||
|
|
||||||
// copy content from framebuffer into image
|
// copy content from framebuffer into image
|
||||||
img = QImage(QSize(width, height), QImage::Format_ARGB32);
|
img = QImage(QSize(width, height), QImage::Format_ARGB32);
|
||||||
kwinGlReadnPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, img.byteCount(), (GLvoid*)img.bits());
|
glReadnPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, img.byteCount(), (GLvoid*)img.bits());
|
||||||
GLRenderTarget::popRenderTarget();
|
GLRenderTarget::popRenderTarget();
|
||||||
ScreenShotEffect::convertFromGLImage(img, width, height);
|
ScreenShotEffect::convertFromGLImage(img, width, height);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ ecm_setup_version(${PROJECT_VERSION}
|
||||||
VARIABLE_PREFIX KWINEFFECTS
|
VARIABLE_PREFIX KWINEFFECTS
|
||||||
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kwineffects_version.h"
|
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kwineffects_version.h"
|
||||||
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
|
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
|
||||||
SOVERSION 8
|
SOVERSION 7
|
||||||
)
|
)
|
||||||
|
|
||||||
### xrenderutils lib ###
|
### xrenderutils lib ###
|
||||||
|
|
|
@ -605,7 +605,7 @@ QMatrix4x4 GLShader::getUniformMatrix4x4(const char* name)
|
||||||
int location = uniformLocation(name);
|
int location = uniformLocation(name);
|
||||||
if (location >= 0) {
|
if (location >= 0) {
|
||||||
GLfloat m[16];
|
GLfloat m[16];
|
||||||
kwinGlGetnUniformfv(mProgram, location, sizeof(m), m);
|
glGetnUniformfv(mProgram, location, sizeof(m), m);
|
||||||
QMatrix4x4 matrix(m[0], m[4], m[8], m[12],
|
QMatrix4x4 matrix(m[0], m[4], m[8], m[12],
|
||||||
m[1], m[5], m[9], m[13],
|
m[1], m[5], m[9], m[13],
|
||||||
m[2], m[6], m[10], m[14],
|
m[2], m[6], m[10], m[14],
|
||||||
|
@ -675,7 +675,7 @@ static bool fuzzyCompare(const QVector4D &lhs, const QVector4D &rhs)
|
||||||
static bool checkPixel(int x, int y, const QVector4D &expected, const char *file, int line)
|
static bool checkPixel(int x, int y, const QVector4D &expected, const char *file, int line)
|
||||||
{
|
{
|
||||||
uint8_t data[4];
|
uint8_t data[4];
|
||||||
kwinGlReadnPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, 4, data);
|
glReadnPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, 4, data);
|
||||||
|
|
||||||
const QVector4D pixel{data[0] / 255.f, data[1] / 255.f, data[2] / 255.f, data[3] / 255.f};
|
const QVector4D pixel{data[0] / 255.f, data[1] / 255.f, data[2] / 255.f, data[3] / 255.f};
|
||||||
|
|
||||||
|
|
|
@ -54,9 +54,9 @@ static void GetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLflo
|
||||||
glXSwapIntervalMESA_func glXSwapIntervalMESA;
|
glXSwapIntervalMESA_func glXSwapIntervalMESA;
|
||||||
|
|
||||||
// GL_ARB_robustness / GL_EXT_robustness
|
// GL_ARB_robustness / GL_EXT_robustness
|
||||||
kwinGlGetGraphicsResetStatus_func kwinGlGetGraphicsResetStatus;
|
glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
|
||||||
kwinGlReadnPixels_func kwinGlReadnPixels;
|
glReadnPixels_func glReadnPixels;
|
||||||
kwinGlGetnUniformfv_func kwinGlGetnUniformfv;
|
glGetnUniformfv_func glGetnUniformfv;
|
||||||
|
|
||||||
typedef void (*glXFuncPtr)();
|
typedef void (*glXFuncPtr)();
|
||||||
|
|
||||||
|
@ -105,18 +105,18 @@ void glResolveFunctions(OpenGLPlatformInterface platformInterface)
|
||||||
}
|
}
|
||||||
if (robustContext && haveArbRobustness) {
|
if (robustContext && haveArbRobustness) {
|
||||||
// See http://www.opengl.org/registry/specs/ARB/robustness.txt
|
// See http://www.opengl.org/registry/specs/ARB/robustness.txt
|
||||||
GL_RESOLVE_WITH_EXT(kwinGlGetGraphicsResetStatus, glGetGraphicsResetStatusARB);
|
GL_RESOLVE_WITH_EXT(glGetGraphicsResetStatus, glGetGraphicsResetStatusARB);
|
||||||
GL_RESOLVE_WITH_EXT(kwinGlReadnPixels, glReadnPixelsARB);
|
GL_RESOLVE_WITH_EXT(glReadnPixels, glReadnPixelsARB);
|
||||||
GL_RESOLVE_WITH_EXT(kwinGlGetnUniformfv, glGetnUniformfvARB);
|
GL_RESOLVE_WITH_EXT(glGetnUniformfv, glGetnUniformfvARB);
|
||||||
} else if (robustContext && haveExtRobustness) {
|
} else if (robustContext && haveExtRobustness) {
|
||||||
// See http://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt
|
// See http://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt
|
||||||
kwinGlGetGraphicsResetStatus = (kwinGlGetGraphicsResetStatus_func) eglGetProcAddress("glGetGraphicsResetStatusEXT");
|
glGetGraphicsResetStatus = (glGetGraphicsResetStatus_func) eglGetProcAddress("glGetGraphicsResetStatusEXT");
|
||||||
kwinGlReadnPixels = (kwinGlReadnPixels_func) eglGetProcAddress("glReadnPixelsEXT");
|
glReadnPixels = (glReadnPixels_func) eglGetProcAddress("glReadnPixelsEXT");
|
||||||
kwinGlGetnUniformfv = (kwinGlGetnUniformfv_func) eglGetProcAddress("glGetnUniformfvEXT");
|
glGetnUniformfv = (glGetnUniformfv_func) eglGetProcAddress("glGetnUniformfvEXT");
|
||||||
} else {
|
} else {
|
||||||
kwinGlGetGraphicsResetStatus = KWin::GetGraphicsResetStatus;
|
glGetGraphicsResetStatus = KWin::GetGraphicsResetStatus;
|
||||||
kwinGlReadnPixels = KWin::ReadnPixels;
|
glReadnPixels = KWin::ReadnPixels;
|
||||||
kwinGlGetnUniformfv = KWin::GetnUniformfv;
|
glGetnUniformfv = KWin::GetnUniformfv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,14 +58,14 @@ using glXSwapIntervalMESA_func = int (*)(unsigned int interval);
|
||||||
extern KWINGLUTILS_EXPORT glXSwapIntervalMESA_func glXSwapIntervalMESA;
|
extern KWINGLUTILS_EXPORT glXSwapIntervalMESA_func glXSwapIntervalMESA;
|
||||||
|
|
||||||
// GL_ARB_robustness / GL_EXT_robustness
|
// GL_ARB_robustness / GL_EXT_robustness
|
||||||
using kwinGlGetGraphicsResetStatus_func = GLenum (*)();
|
using glGetGraphicsResetStatus_func = GLenum (*)();
|
||||||
using kwinGlReadnPixels_func = void (*)(GLint x, GLint y, GLsizei width, GLsizei height,
|
using glReadnPixels_func = void (*)(GLint x, GLint y, GLsizei width, GLsizei height,
|
||||||
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
|
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
|
||||||
using kwinGlGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
using glGetnUniformfv_func = void (*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
|
||||||
|
|
||||||
extern KWINGLUTILS_EXPORT kwinGlGetGraphicsResetStatus_func kwinGlGetGraphicsResetStatus;
|
extern KWINGLUTILS_EXPORT glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
|
||||||
extern KWINGLUTILS_EXPORT kwinGlReadnPixels_func kwinGlReadnPixels;
|
extern KWINGLUTILS_EXPORT glReadnPixels_func glReadnPixels;
|
||||||
extern KWINGLUTILS_EXPORT kwinGlGetnUniformfv_func kwinGlGetnUniformfv;
|
extern KWINGLUTILS_EXPORT glGetnUniformfv_func glGetnUniformfv;
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
|
@ -666,7 +666,7 @@ void SceneOpenGL::handleGraphicsReset(GLenum status)
|
||||||
timer.start();
|
timer.start();
|
||||||
|
|
||||||
// Wait until the reset is completed or max 10 seconds
|
// Wait until the reset is completed or max 10 seconds
|
||||||
while (timer.elapsed() < 10000 && kwinGlGetGraphicsResetStatus() != GL_NO_ERROR)
|
while (timer.elapsed() < 10000 && glGetGraphicsResetStatus() != GL_NO_ERROR)
|
||||||
usleep(50);
|
usleep(50);
|
||||||
|
|
||||||
qCDebug(KWIN_CORE) << "Attempting to reset compositing.";
|
qCDebug(KWIN_CORE) << "Attempting to reset compositing.";
|
||||||
|
@ -712,7 +712,7 @@ qint64 SceneOpenGL::paint(QRegion damage, ToplevelList toplevels)
|
||||||
// prepare rendering makes context current on the output
|
// prepare rendering makes context current on the output
|
||||||
QRegion repaint = m_backend->prepareRenderingForScreen(i);
|
QRegion repaint = m_backend->prepareRenderingForScreen(i);
|
||||||
|
|
||||||
const GLenum status = kwinGlGetGraphicsResetStatus();
|
const GLenum status = glGetGraphicsResetStatus();
|
||||||
if (status != GL_NO_ERROR) {
|
if (status != GL_NO_ERROR) {
|
||||||
handleGraphicsReset(status);
|
handleGraphicsReset(status);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -731,7 +731,7 @@ qint64 SceneOpenGL::paint(QRegion damage, ToplevelList toplevels)
|
||||||
m_backend->makeCurrent();
|
m_backend->makeCurrent();
|
||||||
QRegion repaint = m_backend->prepareRenderingFrame();
|
QRegion repaint = m_backend->prepareRenderingFrame();
|
||||||
|
|
||||||
const GLenum status = kwinGlGetGraphicsResetStatus();
|
const GLenum status = glGetGraphicsResetStatus();
|
||||||
if (status != GL_NO_ERROR) {
|
if (status != GL_NO_ERROR) {
|
||||||
handleGraphicsReset(status);
|
handleGraphicsReset(status);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue