commit
da7ae29c7d
10 changed files with 215 additions and 34 deletions
@ -0,0 +1,9 @@ |
|||||||
|
#version 330 core |
||||||
|
|
||||||
|
out vec4 FragColor; |
||||||
|
|
||||||
|
in vec3 color; |
||||||
|
|
||||||
|
void main() { |
||||||
|
FragColor = vec4(color, 1); |
||||||
|
} |
@ -0,0 +1,6 @@ |
|||||||
|
<RCC> |
||||||
|
<qresource prefix="/shaders/"> |
||||||
|
<file>vertex.glsl</file> |
||||||
|
<file>fragment.glsl</file> |
||||||
|
</qresource> |
||||||
|
</RCC> |
@ -0,0 +1,13 @@ |
|||||||
|
#version 330 core |
||||||
|
|
||||||
|
layout (location = 0) in vec2 vPos; |
||||||
|
layout (location = 1) in vec3 vColor; |
||||||
|
|
||||||
|
uniform mat2 VP; |
||||||
|
|
||||||
|
out vec3 color; |
||||||
|
|
||||||
|
void main() { |
||||||
|
gl_Position = vec4(VP * vPos, 0.0, 1.0); |
||||||
|
color = vColor; |
||||||
|
} |
@ -1,18 +1,35 @@ |
|||||||
#include <QOpenGLWidget> |
#pragma once |
||||||
#include <QOpenGLFunctions> |
|
||||||
|
|
||||||
|
|
||||||
|
#include <QOpenGLWidget> |
||||||
|
#include <QOpenGLExtraFunctions> |
||||||
|
#include <QMatrix2x2> |
||||||
|
|
||||||
|
class Pendulum; |
||||||
class Simulation; |
class Simulation; |
||||||
class FPS; |
class FPS; |
||||||
|
class QOpenGLShaderProgram; |
||||||
|
|
||||||
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions { |
class GLWidget : public QOpenGLWidget, protected QOpenGLExtraFunctions { |
||||||
public: |
public: |
||||||
explicit GLWidget(Simulation *); |
explicit GLWidget(Simulation *); |
||||||
protected: |
protected: |
||||||
void paintEvent(QPaintEvent* e) override; |
|
||||||
void timerEvent(QTimerEvent* e) override; |
void timerEvent(QTimerEvent* e) override; |
||||||
|
void initializeGL() override; |
||||||
|
void paintGL() override; |
||||||
|
void resizeGL(int w, int h) override; |
||||||
|
private slots: |
||||||
|
void initGPUMemory(const std::vector<Pendulum *> *pendula); |
||||||
|
void changePosition(const std::vector<Pendulum *> *pendula); |
||||||
private: |
private: |
||||||
|
QOpenGLShaderProgram * program; |
||||||
|
GLuint VAO; |
||||||
|
GLuint positionVBO; |
||||||
|
GLuint colorVBO; |
||||||
|
GLuint EBO; |
||||||
|
GLsizei indexCount = 0; |
||||||
|
GLsizei positionCount = 0; |
||||||
|
QMatrix2x2 VP; |
||||||
|
|
||||||
Simulation * simulation; |
Simulation * simulation; |
||||||
FPS * fps; |
FPS * fps; |
||||||
static bool AnyDialogOpen(); |
static bool AnyDialogOpen(); |
||||||
|
Loading…
Reference in new issue