From df7548ef62c02b9ab1cc5addecaa6b6c150f2750 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 5 Feb 2021 14:36:07 -0800 Subject: Shader-Object example (#1694) --- tools/gfx/open-gl/render-gl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tools/gfx/open-gl/render-gl.cpp') diff --git a/tools/gfx/open-gl/render-gl.cpp b/tools/gfx/open-gl/render-gl.cpp index b84db44b6..03736cfa4 100644 --- a/tools/gfx/open-gl/render-gl.cpp +++ b/tools/gfx/open-gl/render-gl.cpp @@ -1489,6 +1489,15 @@ SLANG_NO_THROW Result SLANG_MCALL Result GLRenderer::createProgram(const IShaderProgram::Desc& desc, IShaderProgram** outProgram) { + if (desc.slangProgram && desc.slangProgram->getSpecializationParamCount() != 0) + { + // For a specializable program, we don't invoke any actual slang compilation yet. + RefPtr shaderProgram = new ShaderProgramImpl(m_weakRenderer, 0); + initProgramCommon(shaderProgram, desc); + *outProgram = shaderProgram.detach(); + return SLANG_OK; + } + if( desc.kernelCount == 0 ) { return createProgramFromSlang(this, desc, outProgram); -- cgit v1.2.3