static bool compile_buffer (const std::string &sourcecode, const std::string &shadername, std::string &errormessage) { // std::cout << "source was\n---\n" << sourcecode << "---\n\n"; errormessage.clear (); std::string osobuffer; OSLCompiler compiler (&errhandler); std::vector<std::string> options; if (! compiler.compile_buffer (sourcecode, osobuffer, options)) { if (errhandler.haserror()) errormessage = errhandler.geterror(); else errormessage = Strutil::format ("OSL: Could not compile \"%s\"", shadername); return false; } // std::cout << "Compiled to oso:\n---\n" << osobuffer << "---\n\n"; if (! shadingsys->LoadMemoryCompiledShader (shadername, osobuffer)) { if (errhandler.haserror()) errormessage = errhandler.geterror(); else errormessage = Strutil::format ("OSL: Could not load compiled buffer from \"%s\"", shadername); return false; } return true; }
static void compile_buffer (const std::string &sourcecode, const std::string &shadername) { // std::cout << "source was\n---\n" << sourcecode << "---\n\n"; std::string osobuffer; OSLCompiler compiler; std::vector<std::string> options; if (! compiler.compile_buffer (sourcecode, osobuffer, options)) { std::cerr << "Could not compile \"" << shadername << "\"\n"; exit (EXIT_FAILURE); } // std::cout << "Compiled to oso:\n---\n" << osobuffer << "---\n\n"; if (! shadingsys->LoadMemoryCompiledShader (shadername, osobuffer)) { std::cerr << "Could not load compiled buffer from \"" << shadername << "\"\n"; exit (EXIT_FAILURE); } }