]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/module.cpp
Enable creation of SPIR-V modules from GLSL source code
[libs/gl.git] / source / core / module.cpp
index 6f7fbdb93e9799dc488b7b10646c48cf2bc0c4ac..72a6abca43781a20e84f07abc8dbb1373f2eb295 100644 (file)
@@ -127,6 +127,18 @@ void SpirVModule::load_code(IO::Base &io)
                code.insert(code.end(), buffer, buffer+len);
        }
 
+       reflect();
+}
+
+void SpirVModule::compile(SL::Compiler &compiler)
+{
+       compiler.compile(SL::Compiler::SPIRV);
+       code = compiler.get_combined_spirv();
+       reflect();
+}
+
+void SpirVModule::reflect()
+{
        if(code.empty())
                throw invalid_module("Empty SPIR-V code");
 
@@ -216,11 +228,6 @@ void SpirVModule::load_code(IO::Base &io)
                spec_constants.push_back(i->second);
 }
 
-void SpirVModule::compile(SL::Compiler &)
-{
-       throw logic_error("Not implemented yet");
-}
-
 
 SpirVModule::EntryPoint::EntryPoint():
        stage(VERTEX)