Detect the type of the shader.

This commit is contained in:
Roberto Raggi
2010-11-26 15:14:33 +01:00
parent 1bf87c67aa
commit 0ad583f3e7
3 changed files with 31 additions and 4 deletions

View File

@@ -1,14 +1,26 @@
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-glsl">
<alias type="text/x-glsl"/>
<sub-class-of type="text/plain"/>
<comment>GLSL file</comment>
<comment>GLSL Shader file</comment>
<glob pattern="*.glsl"/>
<glob pattern="*.shader"/>
</mime-type>
<mime-type type="text/x-glsl-frag">
<sub-class-of type="text/x-glsl"/>
<comment>GLSL Fragment Shader file</comment>
<glob pattern="*.frag"/>
<glob pattern="*.vert"/>
<glob pattern="*.fsh"/>
</mime-type>
<mime-type type="text/x-glsl-vert">
<sub-class-of type="text/x-glsl"/>
<comment>GLSL Fragment Shader file</comment>
<glob pattern="*.vert"/>
<glob pattern="*.vsh"/>
</mime-type>
</mime-info>

View File

@@ -276,7 +276,9 @@ void GLSLTextEditor::updateDocumentNow()
Semantic sem;
Scope *globalScope = engine.newNamespace();
sem.translationUnit(plugin->shaderInit()->ast, globalScope, plugin->shaderInit()->engine);
if (isVertexShader())
sem.translationUnit(plugin->vertexShaderInit()->ast, globalScope, plugin->vertexShaderInit()->engine);
if (isFragmentShader())
sem.translationUnit(plugin->fragmentShaderInit()->ast, globalScope, plugin->fragmentShaderInit()->engine);
sem.translationUnit(ast, globalScope, &engine);
@@ -314,3 +316,13 @@ void GLSLTextEditor::updateDocumentNow()
// refresh the identifiers.
m_identifiers = engine.identifiers();
}
bool GLSLTextEditor::isVertexShader() const
{
return mimeType() == QLatin1String("text/x-glsl-vert");
}
bool GLSLTextEditor::isFragmentShader() const
{
return mimeType() == QLatin1String("text/x-glsl-frag");
}

View File

@@ -65,6 +65,9 @@ public:
QSet<QString> identifiers() const;
bool isVertexShader() const;
bool isFragmentShader() const;
public slots:
virtual void setFontSettings(const TextEditor::FontSettings &);