~ updated shader compiler to look for the first function, not just main

should fix #106

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
Alexis Maiquez 2022-06-10 14:04:22 +02:00
parent e51734e4f9
commit e5ef7bd53e
2 changed files with 12 additions and 10 deletions

View File

@ -245,6 +245,7 @@ namespace WallpaperEngine::Render::Shaders
this->m_errorInfo = "";
this->m_compiledContent = "";
this->m_includesContent = "";
this->m_includesProcessed = false;
// search preprocessor macros and parse them
while (it != this->m_content.end () && this->m_error == false)
@ -434,24 +435,24 @@ namespace WallpaperEngine::Render::Shaders
if (this->m_error == false)
{
// check for main, and take it into account, this also helps adding the includes
if (type == "void")
{
std::string name = this->extractName (it);
if (name == "main")
this->ignoreSpaces (it);
if (this->peekString ("(", it) == true)
{
if (this->m_includesProcessed == false)
{
this->m_compiledContent += "\n\n" + this->m_includesContent + "\n\n";
this->m_includesProcessed = true;
}
this->m_compiledContent += type + " " + name + "(";
}
else
{
this->m_compiledContent += type + " " + name;
}
else
{
this->m_compiledContent += name;
}
}
else
{
this->m_compiledContent += type + " ";
}
}
else
{

View File

@ -247,5 +247,6 @@ namespace WallpaperEngine::Render::Shaders
* List of textures that the shader expects (inferred from sampler2D and it's JSON data)
*/
std::map<int, ITexture*> m_textures;
bool m_includesProcessed = false;
};
}