From 3ee5f667794026e144bd26256fe46f9099b7fe20 Mon Sep 17 00:00:00 2001 From: Linloir <3145078758@qq.com> Date: Tue, 13 Dec 2022 13:07:19 +0800 Subject: [PATCH] Fix QFile not overriding existing shader - fix shader not responding to changes --- FinalProject/sceneviewer.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/FinalProject/sceneviewer.cpp b/FinalProject/sceneviewer.cpp index eaad25a..dd77e69 100644 --- a/FinalProject/sceneviewer.cpp +++ b/FinalProject/sceneviewer.cpp @@ -29,8 +29,16 @@ SceneViewer::SceneViewer(QWidget* parent) } // Copy the shaders to the folder + if (QFile::exists("./temp/shaders/vertexshader.vs")) { + QFile::remove("./temp/shaders/vertexshader.vs"); + } QFile::copy(":/shaders/vertexshader.vs", "./temp/shaders/vertexshader.vs"); + QFile::setPermissions("./temp/shaders/vertexshader.vs", QFileDevice::ReadOwner | QFileDevice::WriteOwner); + if (QFile::exists("./temp/shaders/fragmentshader.fs")) { + QFile::remove("./temp/shaders/fragmentshader.fs"); + } QFile::copy(":/shaders/fragmentshader.fs", "./temp/shaders/fragmentshader.fs"); + QFile::setPermissions("./temp/shaders/fragmentshader.fs", QFile::ReadOwner | QFile::WriteOwner); } SceneViewer::~SceneViewer() { @@ -85,7 +93,7 @@ void SceneViewer::paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); _shaderProgram.bind(); - + for (auto object : _objects) { object.render(_shaderProgram); }