diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2018-06-23 12:10:52 +0000 |
---|---|---|
committer | Miodrag Milanović <mmicko@gmail.com> | 2018-06-23 12:10:52 +0000 |
commit | b63fdfbeab5abb390c5c2c7b069672c9c8e06c82 (patch) | |
tree | b4a38469c49b36e0460cc68487bed89f34c64fe2 /gui/fpgaviewwidget.h | |
parent | d72fe0c230f79248a56e47c2f31f14b15c7f13fe (diff) | |
parent | ac1fcefdb10917e2887de617d810cdb8312ca5bf (diff) | |
download | nextpnr-b63fdfbeab5abb390c5c2c7b069672c9c8e06c82.tar.gz nextpnr-b63fdfbeab5abb390c5c2c7b069672c9c8e06c82.tar.bz2 nextpnr-b63fdfbeab5abb390c5c2c7b069672c9c8e06c82.zip |
Merge branch 'q3k/gl-vbo' into 'master'
OpenGL 3.1, VAO/VBO
See merge request SymbioticEDA/nextpnr!2
Diffstat (limited to 'gui/fpgaviewwidget.h')
-rw-r--r-- | gui/fpgaviewwidget.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gui/fpgaviewwidget.h b/gui/fpgaviewwidget.h index 0cfcbb3e..9f9dc024 100644 --- a/gui/fpgaviewwidget.h +++ b/gui/fpgaviewwidget.h @@ -24,6 +24,7 @@ #include <QOpenGLBuffer> #include <QOpenGLFunctions> #include <QOpenGLShaderProgram> +#include <QOpenGLVertexArrayObject> #include <QOpenGLWidget> #include <QPainter> @@ -162,6 +163,15 @@ class LineShader GLuint miter; } attributes_; + // GL buffers + struct + { + QOpenGLBuffer position; + QOpenGLBuffer normal; + QOpenGLBuffer miter; + QOpenGLBuffer index; + } buffers_; + // GL uniform locations. struct { @@ -173,8 +183,23 @@ class LineShader GLuint color; } uniforms_; + QOpenGLVertexArrayObject vao_; + public: - LineShader(QObject *parent) : parent_(parent), program_(nullptr) {} + LineShader(QObject *parent) : parent_(parent), program_(nullptr) + { + buffers_.position = QOpenGLBuffer(QOpenGLBuffer::VertexBuffer); + buffers_.position.setUsagePattern(QOpenGLBuffer::StaticDraw); + + buffers_.normal = QOpenGLBuffer(QOpenGLBuffer::VertexBuffer); + buffers_.normal.setUsagePattern(QOpenGLBuffer::StaticDraw); + + buffers_.miter = QOpenGLBuffer(QOpenGLBuffer::VertexBuffer); + buffers_.miter.setUsagePattern(QOpenGLBuffer::StaticDraw); + + buffers_.index = QOpenGLBuffer(QOpenGLBuffer::IndexBuffer); + buffers_.index.setUsagePattern(QOpenGLBuffer::StaticDraw); + } static constexpr const char *vertexShaderSource_ = "attribute highp vec2 position;\n" @@ -238,7 +263,7 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions float startDragX_; float startDragY_; - Context *ctx; + Context *ctx_; }; NEXTPNR_NAMESPACE_END |