summaryrefslogtreecommitdiffstats
path: root/src/hardwareintegration
diff options
context:
space:
mode:
authorJorgen Lind <jorgen.lind@digia.com>2014-01-07 09:20:15 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-09 12:25:11 +0100
commit3323630585ea40842db42ad64ad45fe5b465a5b8 (patch)
treee0a11de2279210ff22f57799e576e2f069cbeba0 /src/hardwareintegration
parent10700eb19191879caf41bc188dca807b68a4146c (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')
-rw-r--r--src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp7
-rw-r--r--src/hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h2
-rw-r--r--src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp10
-rw-r--r--src/hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h2
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;