Esempio n. 1
0
        private static IntPtr CreateShader(UInt32[] byte_code, char *label = null)
        {
            IntPtr shader;

            fixed(uint *code = byte_code)
            {
                WGPUShaderModuleSPIRVDescriptor spirv = new WGPUShaderModuleSPIRVDescriptor()
                {
                    chain = new WGPUChainedStruct()
                    {
                        sType = WGPUSType.WGPUSType_ShaderModuleSPIRVDescriptor
                    },
                    codeSize = (uint)byte_code.Length,
                    code     = code
                };

                WGPUShaderModuleDescriptor desc = new WGPUShaderModuleDescriptor()
                {
                    nextInChain = (WGPUChainedStruct *)&spirv,
                    label       = label
                };

                shader = WebGPUNative.wgpuDeviceCreateShaderModule(Device, &desc);
            }

            return(shader);
        }