mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-16 23:18:12 +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
|
||||
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);
|
||||
extractShaderResource("thumbnailvertexshader.glsl");
|
||||
extractShaderResource("thumbnailfragmentshader.glsl");
|
||||
}
|
||||
|
||||
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() {
|
||||
initializeOpenGLFunctions();
|
||||
|
||||
@ -44,8 +48,8 @@ void ModelThumbnailWidget::initializeGL() {
|
||||
|
||||
_shaderProgram.ensureInitialized();
|
||||
|
||||
VertexShader vertexShader("./temp/shaders/vertexshader.vs");
|
||||
FragmentShader fragmentShader("./temp/shaders/fragmentshader.fs");
|
||||
VertexShader vertexShader("./temp/shaders/thumbnailvertexshader.glsl");
|
||||
FragmentShader fragmentShader("./temp/shaders/thumbnailfragmentshader.glsl");
|
||||
_shaderProgram.attachShader(vertexShader);
|
||||
_shaderProgram.attachShader(fragmentShader);
|
||||
vertexShader.dispose();
|
||||
|
||||
@ -22,6 +22,9 @@ private:
|
||||
Renderable _object = Renderable::empty();
|
||||
ShaderProgram _shaderProgram = ShaderProgram::empty();
|
||||
Camera _camera;
|
||||
|
||||
private:
|
||||
void extractShaderResource(const QString& shaderName);
|
||||
|
||||
protected:
|
||||
virtual void initializeGL() override;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user