diff options
author | Jorgen Lind <jorgen.lind@digia.com> | 2014-01-07 09:20:15 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-09 12:25:11 +0100 |
commit | 3323630585ea40842db42ad64ad45fe5b465a5b8 (patch) | |
tree | e0a11de2279210ff22f57799e576e2f069cbeba0 /src/hardwareintegration | |
parent | 10700eb19191879caf41bc188dca807b68a4146c (diff) |
Adjust the serverbufferintegrations to use bind texture api
It mapps closer to the underlying OpenGL architecture
Change-Id: I4e0dca4d54670846488c86df2a0fa0c58d49734d
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/hardwareintegration')
4 files changed, 5 insertions, 16 deletions
diff --git a/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp b/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp index 999347fbd..beb9106b5 100644 --- a/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp +++ b/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp @@ -98,22 +98,17 @@ DrmServerBuffer::~DrmServerBuffer() m_integration->eglDestroyImageKHR(m_image); } -GLuint DrmServerBuffer::createTexture() +void DrmServerBuffer::bindTextureToBuffer() { if (!QOpenGLContext::currentContext()) qWarning("DrmServerBuffer: creating texture with no current context"); - GLuint texture_id = 0; - glGenTextures(1,&texture_id); - glBindTexture(GL_TEXTURE_2D, texture_id); m_integration->glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_image); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - return texture_id; - } void DrmEglServerBufferIntegration::initialize(QWaylandDisplay *display) diff --git a/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h b/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h index cb54534f1..f74b8aca5 100644 --- a/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h +++ b/src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h @@ -71,7 +71,7 @@ class DrmServerBuffer : public QWaylandServerBuffer public: DrmServerBuffer(DrmEglServerBufferIntegration *integration, int32_t name, int32_t width, int32_t height, int32_t stride, int32_t format); ~DrmServerBuffer(); - GLuint createTexture() Q_DECL_OVERRIDE; + void bindTextureToBuffer() Q_DECL_OVERRIDE; private: DrmEglServerBufferIntegration *m_integration; EGLImageKHR m_image; diff --git a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp index d43fc70b4..9c7440dc6 100644 --- a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp +++ b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp @@ -102,25 +102,19 @@ struct ::wl_resource *DrmEglServerBuffer::resourceForClient(struct ::wl_client * return (*it)->handle; } -GLuint DrmEglServerBuffer::createTexture() +void DrmEglServerBuffer::bindTextureToBuffer() { if (!QOpenGLContext::currentContext()) { qWarning("DrmEglServerBuffer: No current context when creating buffer. Texture loading will fail"); - return 0; + return; } - GLuint texture; - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - m_integration->glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_image); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - return texture; } DrmEglServerBufferIntegration::DrmEglServerBufferIntegration() diff --git a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h index 33c453a49..659b261e0 100644 --- a/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h +++ b/src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h @@ -80,7 +80,7 @@ public: DrmEglServerBuffer(DrmEglServerBufferIntegration *integration, const QSize &size, QWaylandServerBuffer::Format format); struct ::wl_resource *resourceForClient(struct ::wl_client *) Q_DECL_OVERRIDE; - GLuint createTexture() Q_DECL_OVERRIDE; + void bindTextureToBuffer() Q_DECL_OVERRIDE; private: DrmEglServerBufferIntegration *m_integration; |