diff options
-rw-r--r-- | examples/quick/scenegraph/graph/linenode.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/examples/quick/scenegraph/graph/linenode.cpp b/examples/quick/scenegraph/graph/linenode.cpp index 0d1229cf1d..015aa4f0ee 100644 --- a/examples/quick/scenegraph/graph/linenode.cpp +++ b/examples/quick/scenegraph/graph/linenode.cpp @@ -58,17 +58,14 @@ class LineShader : public QSGSimpleMaterialShader<LineMaterial> QSG_DECLARE_SIMPLE_SHADER(LineShader, LineMaterial) public: - const char *vertexShader() const { - QResource r(":/scenegraph/graph/shaders/line.vsh"); - Q_ASSERT(r.isValid()); - return (const char *) r.data(); - } + LineShader() + : vsh(readResource(":/scenegraph/graph/shaders/line.vsh")), + fsh(readResource(":/scenegraph/graph/shaders/line.fsh")) + {} - const char *fragmentShader() const { - QResource r(":/scenegraph/graph/shaders/line.fsh"); - Q_ASSERT(r.isValid()); - return (const char *) r.data(); - } + const char *vertexShader() const { return vsh.constData(); } + + const char *fragmentShader() const { return fsh.constData(); } QList<QByteArray> attributes() const { return QList<QByteArray>() << "pos" << "t"; } @@ -84,7 +81,15 @@ public: id_color = program()->uniformLocation("color"); } + static QByteArray readResource(const char *path) { + QResource r(path); + Q_ASSERT(r.isValid()); + return QByteArray((const char *)r.data(), r.size()); + } + private: + QByteArray vsh; + QByteArray fsh; int id_color; int id_spread; int id_size; |