summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2019-05-14 20:42:01 +0200
committerMarc Mutz <marc.mutz@kdab.com>2019-07-25 14:17:51 +0000
commit082f10c9eb12972efb7f194e49eb2b11928e1337 (patch)
tree3ad94b9fad913e1664c4f142f13a5792ff06df97
parent7303218e42ea03a8e163d57935b01472de76748a (diff)
QOpenGLWindow example: use std::unique_ptr instead of QScopedPointer
QScopedPointer is scheduled for deprecation, and can't decide whether it wants to be a scoped, or a unique pointer. The use of a unique_ptr members requires that the destructor be out-of-line, since the payload classes are only forward-declared in the header file. Change-Id: Id0dcdde52cb3adc30d3051d2eed1d24c76154921 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--examples/opengl/qopenglwindow/background_renderer.cpp11
-rw-r--r--examples/opengl/qopenglwindow/background_renderer.h11
2 files changed, 14 insertions, 8 deletions
diff --git a/examples/opengl/qopenglwindow/background_renderer.cpp b/examples/opengl/qopenglwindow/background_renderer.cpp
index 9da1b9bf99..acbbe74841 100644
--- a/examples/opengl/qopenglwindow/background_renderer.cpp
+++ b/examples/opengl/qopenglwindow/background_renderer.cpp
@@ -91,6 +91,9 @@ FragmentToy::FragmentToy(const QString &fragmentSource, QObject *parent)
}
}
+FragmentToy::~FragmentToy()
+ = default;
+
void FragmentToy::draw(const QSize &windowSize)
{
if (!m_program)
@@ -120,7 +123,7 @@ void FragmentToy::draw(const QSize &windowSize)
if (!m_vertex_shader->compileSourceCode(vertex_shader)) {
qWarning() << "Failed to compile the vertex shader:" << m_vertex_shader->log();
}
- if (!m_program->addShader(m_vertex_shader.data())) {
+ if (!m_program->addShader(m_vertex_shader.get())) {
qWarning() << "Failed to add vertex shader to program:" << m_program->log();
}
}
@@ -153,7 +156,7 @@ void FragmentToy::draw(const QSize &windowSize)
}
if (m_fragment_shader) {
- if (!m_program->addShader(m_fragment_shader.data())) {
+ if (!m_program->addShader(m_fragment_shader.get())) {
qWarning() << "Failed to add fragment shader to program:" << m_program->log();
}
}
@@ -197,14 +200,14 @@ void FragmentToy::fileChanged(const QString &path)
m_fragment_file_last_modified = fragment_source.lastModified();
m_recompile_shaders = true;
if (m_program) {
- m_program->removeShader(m_fragment_shader.data());
+ m_program->removeShader(m_fragment_shader.get());
m_fragment_shader.reset(nullptr);
}
}
} else {
m_recompile_shaders = true;
if (m_program) {
- m_program->removeShader(m_fragment_shader.data());
+ m_program->removeShader(m_fragment_shader.get());
m_fragment_shader.reset(nullptr);
}
}
diff --git a/examples/opengl/qopenglwindow/background_renderer.h b/examples/opengl/qopenglwindow/background_renderer.h
index d99b7ddbeb..0e3caf5981 100644
--- a/examples/opengl/qopenglwindow/background_renderer.h
+++ b/examples/opengl/qopenglwindow/background_renderer.h
@@ -62,11 +62,14 @@
#include <QOpenGLShaderProgram>
#include <QOpenGLFunctions>
+#include <memory>
+
class FragmentToy : public QObject, protected QOpenGLFunctions
{
Q_OBJECT
public:
- FragmentToy(const QString &fragmentSource, QObject *parent = 0);
+ explicit FragmentToy(const QString &fragmentSource, QObject *parent = nullptr);
+ ~FragmentToy();
void draw(const QSize &windowSize);
@@ -79,9 +82,9 @@ private:
QString m_fragment_file;
QDateTime m_fragment_file_last_modified;
- QScopedPointer<QOpenGLShaderProgram> m_program;
- QScopedPointer<QOpenGLShader> m_vertex_shader;
- QScopedPointer<QOpenGLShader> m_fragment_shader;
+ std::unique_ptr<QOpenGLShaderProgram> m_program;
+ std::unique_ptr<QOpenGLShader> m_vertex_shader;
+ std::unique_ptr<QOpenGLShader> m_fragment_shader;
QOpenGLVertexArrayObject m_vao;
QOpenGLBuffer m_vertex_buffer;
GLuint m_vertex_coord_pos;