Esempio n. 1
0
        public CShaderDesc CompileHLSLFromFile(string file, string entry, string sm, CShaderDefinitions defines, EPlatformType platforms)
        {
            //defines.SetDefine("ShaderModel", CEngine.Instance.RenderContext.ShaderModel.ToString());
            defines.SetDefine("ShaderModel", CRenderContext.ShaderModel.ToString());

            unsafe
            {
                int TempIsCrossPlatform = CEngine.mGenerateShaderForMobilePlatform == true ? 1 : 0;

                CShaderDesc.NativePointer obj;
                if (defines == null)
                {
                    obj = SDK_IRenderContext_CompileHLSLFromFile(CoreObject, file, entry, sm, CShaderDefinitions.GetEmptyNativePointer(), (UInt32)platforms, vBOOL.FromBoolean(IsDebugHLSL));
                }
                else
                {
                    obj = SDK_IRenderContext_CompileHLSLFromFile(CoreObject, file, entry, sm, defines.CoreObject, (UInt32)platforms, vBOOL.FromBoolean(IsDebugHLSL));
                }

                defines.RemoveDefine("ShaderModel");
                if (obj.Pointer == IntPtr.Zero)
                {
                    return(null);
                }
                return(new CShaderDesc(obj));
            }
        }