mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-18 16:08:11 +08:00
[CORE][CHG] Use thumbnail shader
- Fix no texture in thumbnail after main shader changed
This commit is contained in:
parent
7b9d8766d0
commit
5dd1200a6e
@ -19,21 +19,25 @@ ModelThumbnailWidget::ModelThumbnailWidget(Model* model, QWidget* parent) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Copy the shaders to the folder
|
// Copy the shaders to the folder
|
||||||
if (QFile::exists("./temp/shaders/vertexshader.vs")) {
|
extractShaderResource("thumbnailvertexshader.glsl");
|
||||||
QFile::remove("./temp/shaders/vertexshader.vs");
|
extractShaderResource("thumbnailfragmentshader.glsl");
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelThumbnailWidget::~ModelThumbnailWidget() {
|
ModelThumbnailWidget::~ModelThumbnailWidget() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModelThumbnailWidget::extractShaderResource(const QString& shaderName) {
|
||||||
|
QString shaderResourcePath = ":/shaders/" + shaderName;
|
||||||
|
QString shaderTempPath = "./temp/shaders/" + shaderName;
|
||||||
|
|
||||||
|
if (QFile::exists(shaderTempPath))
|
||||||
|
{
|
||||||
|
QFile::remove(shaderTempPath);
|
||||||
|
}
|
||||||
|
QFile::copy(shaderResourcePath, shaderTempPath);
|
||||||
|
QFile::setPermissions(shaderTempPath, QFile::ReadOwner | QFile::WriteOwner);
|
||||||
|
}
|
||||||
|
|
||||||
void ModelThumbnailWidget::initializeGL() {
|
void ModelThumbnailWidget::initializeGL() {
|
||||||
initializeOpenGLFunctions();
|
initializeOpenGLFunctions();
|
||||||
|
|
||||||
@ -44,8 +48,8 @@ void ModelThumbnailWidget::initializeGL() {
|
|||||||
|
|
||||||
_shaderProgram.ensureInitialized();
|
_shaderProgram.ensureInitialized();
|
||||||
|
|
||||||
VertexShader vertexShader("./temp/shaders/vertexshader.vs");
|
VertexShader vertexShader("./temp/shaders/thumbnailvertexshader.glsl");
|
||||||
FragmentShader fragmentShader("./temp/shaders/fragmentshader.fs");
|
FragmentShader fragmentShader("./temp/shaders/thumbnailfragmentshader.glsl");
|
||||||
_shaderProgram.attachShader(vertexShader);
|
_shaderProgram.attachShader(vertexShader);
|
||||||
_shaderProgram.attachShader(fragmentShader);
|
_shaderProgram.attachShader(fragmentShader);
|
||||||
vertexShader.dispose();
|
vertexShader.dispose();
|
||||||
|
|||||||
@ -23,6 +23,9 @@ private:
|
|||||||
ShaderProgram _shaderProgram = ShaderProgram::empty();
|
ShaderProgram _shaderProgram = ShaderProgram::empty();
|
||||||
Camera _camera;
|
Camera _camera;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void extractShaderResource(const QString& shaderName);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void initializeGL() override;
|
virtual void initializeGL() override;
|
||||||
virtual void paintGL() override;
|
virtual void paintGL() override;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user