aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quickcl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quickcl')
-rw-r--r--examples/quickcl/histogram/histogram.cpp10
-rw-r--r--examples/quickcl/imageprocess/imageprocess.cpp6
-rw-r--r--examples/quickcl/particles/particles.cpp15
3 files changed, 19 insertions, 12 deletions
diff --git a/examples/quickcl/histogram/histogram.cpp b/examples/quickcl/histogram/histogram.cpp
index 6ba0b65..3bd062d 100644
--- a/examples/quickcl/histogram/histogram.cpp
+++ b/examples/quickcl/histogram/histogram.cpp
@@ -46,6 +46,7 @@
#include <QQmlEngine>
#include <QQuickCLItem>
#include <QQuickCLImageRunnable>
+#include <QQuickCLContext>
#include <QAbstractListModel>
static bool profile = false;
@@ -159,9 +160,10 @@ CLRunnable::CLRunnable(CLItem *item)
m_sharedBuf(0),
m_doneEvent(0)
{
- QByteArray platform = m_item->platformName();
+ QQuickCLContext *clctx = m_item->context();
+ QByteArray platform = clctx->platformName();
qDebug("Using platform %s", platform.constData());
- m_program = m_item->buildProgramFromFile(QStringLiteral(":/histogram.cl"));
+ m_program = clctx->buildProgramFromFile(QStringLiteral(":/histogram.cl"));
if (!m_program)
return;
cl_int err;
@@ -175,7 +177,7 @@ CLRunnable::CLRunnable(CLItem *item)
qWarning("Failed to create sum histogram OpenCL kernel: %d", err);
return;
}
- m_resultBuf = clCreateBuffer(m_item->context(), CL_MEM_WRITE_ONLY, 256 * sizeof(cl_uint), 0, &err);
+ m_resultBuf = clCreateBuffer(clctx->context(), CL_MEM_WRITE_ONLY, 256 * sizeof(cl_uint), 0, &err);
if (!m_resultBuf) {
qWarning("Failed to create OpenCL buffer: %d", err);
return;
@@ -235,7 +237,7 @@ void CLRunnable::runKernel(cl_mem inImage, cl_mem, const QSize &size)
cl_int err;
if (!m_sharedBuf) {
const size_t sharedBufSize = num_groups * 256 * sizeof(cl_uint);
- m_sharedBuf = clCreateBuffer(m_item->context(), CL_MEM_READ_WRITE, sharedBufSize, 0, &err);
+ m_sharedBuf = clCreateBuffer(m_item->context()->context(), CL_MEM_READ_WRITE, sharedBufSize, 0, &err);
if (!m_sharedBuf) {
qWarning("Failed to create shared buffer: %d", err);
return;
diff --git a/examples/quickcl/imageprocess/imageprocess.cpp b/examples/quickcl/imageprocess/imageprocess.cpp
index 9738ea4..5534bbb 100644
--- a/examples/quickcl/imageprocess/imageprocess.cpp
+++ b/examples/quickcl/imageprocess/imageprocess.cpp
@@ -46,6 +46,7 @@
#include <QQmlEngine>
#include <QQuickCLItem>
#include <QQuickCLImageRunnable>
+#include <QQuickCLContext>
static bool profile = false;
@@ -120,9 +121,10 @@ CLRunnable::CLRunnable(CLItem *item)
m_clProgram(0),
m_clKernel(0)
{
- QByteArray platform = m_item->platformName();
+ QQuickCLContext *clctx = m_item->context();
+ QByteArray platform = clctx->platformName();
qDebug("Using platform %s", platform.constData());
- m_clProgram = m_item->buildProgram(openclSrc);
+ m_clProgram = clctx->buildProgram(openclSrc);
if (!m_clProgram)
return;
cl_int err;
diff --git a/examples/quickcl/particles/particles.cpp b/examples/quickcl/particles/particles.cpp
index e687084..c1e89df 100644
--- a/examples/quickcl/particles/particles.cpp
+++ b/examples/quickcl/particles/particles.cpp
@@ -49,6 +49,7 @@
#include <QOpenGLShaderProgram>
#include <QQuickCLItem>
#include <QQuickCLRunnable>
+#include <QQuickCLContext>
#include <time.h>
const int PARTICLE_COUNT = 1024;
@@ -219,16 +220,18 @@ CLRunnable::CLRunnable(CLItem *item)
m_lastT(-1),
m_clBufParticleInfo(0)
{
- qDebug() << "Platform" << m_item->platformName() << "Device extensions" << m_item->deviceExtensions();
+ QQuickCLContext *clctx = m_item->context();
+
+ qDebug() << "Platform" << clctx->platformName() << "Device extensions" << clctx->deviceExtensions();
cl_int err;
- m_queue = clCreateCommandQueue(m_item->context(), m_item->device(), 0, &err);
+ m_queue = clCreateCommandQueue(clctx->context(), clctx->device(), 0, &err);
if (!m_queue) {
qWarning("Failed to create OpenCL command queue: %d", err);
return;
}
- m_program = m_item->buildProgramFromFile(QStringLiteral(":/particles.cl"));
+ m_program = clctx->buildProgramFromFile(QStringLiteral(":/particles.cl"));
if (!m_program)
return;
m_kernel = clCreateKernel(m_program, "updateParticles", &err);
@@ -237,11 +240,11 @@ CLRunnable::CLRunnable(CLItem *item)
return;
}
- m_needsExplicitSync = !m_item->deviceExtensions().contains(QByteArrayLiteral("cl_khr_gl_event"));
+ m_needsExplicitSync = !clctx->deviceExtensions().contains(QByteArrayLiteral("cl_khr_gl_event"));
// m_clBufParticleInfo is an ordinary OpenCL buffer.
size_t velBufSize = PARTICLE_COUNT * sizeof(cl_float) * 4;
- m_clBufParticleInfo = clCreateBuffer(m_item->context(), CL_MEM_READ_ONLY | CL_MEM_ALLOC_HOST_PTR, velBufSize, 0, &err);
+ m_clBufParticleInfo = clCreateBuffer(clctx->context(), CL_MEM_READ_ONLY | CL_MEM_ALLOC_HOST_PTR, velBufSize, 0, &err);
if (!m_clBufParticleInfo) {
qWarning("Failed to create CL buffer: %d", err);
return;
@@ -292,7 +295,7 @@ void CLRunnable::createBuffer()
if (m_node->m_clBuf)
clReleaseMemObject(m_node->m_clBuf);
cl_int err;
- m_node->m_clBuf = clCreateFromGLBuffer(m_item->context(), CL_MEM_READ_WRITE, buf, &err);
+ m_node->m_clBuf = clCreateFromGLBuffer(m_item->context()->context(), CL_MEM_READ_WRITE, buf, &err);
if (!m_node->m_clBuf)
qWarning("Failed to create OpenCL object for OpenGL buffer: %d", err);
}