Commit 0ad583f3 authored by Roberto Raggi's avatar Roberto Raggi

Detect the type of the shader.

parent 1bf87c67
<?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>
......@@ -276,8 +276,10 @@ void GLSLTextEditor::updateDocumentNow()
Semantic sem;
Scope *globalScope = engine.newNamespace();
sem.translationUnit(plugin->shaderInit()->ast, globalScope, plugin->shaderInit()->engine);
sem.translationUnit(plugin->vertexShaderInit()->ast, globalScope, plugin->vertexShaderInit()->engine);
sem.translationUnit(plugin->fragmentShaderInit()->ast, globalScope, plugin->fragmentShaderInit()->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);
QTextCharFormat errorFormat;
......@@ -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");
}
......@@ -65,6 +65,9 @@ public:
QSet<QString> identifiers() const;
bool isVertexShader() const;
bool isFragmentShader() const;
public slots:
virtual void setFontSettings(const TextEditor::FontSettings &);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment