internal CShaderRegistry(Device device) { // Register Shader classes m_shaderClassMap.Add(new SHashedName("colorShader"), typeof(CColorShader)); m_shaderClassMap.Add(new SHashedName("simpleLitShader"), typeof(CSimpleLitShader)); m_shaderClassMap.Add(new SHashedName("textureShader"), typeof(CTextureShader)); m_shaderClassMap.Add(new SHashedName("uiShader"), typeof(CUIShader)); m_shaderClassMap.Add(new SHashedName("depthShader"), typeof(CDepthShader)); m_shaderClassMap.Add(new SHashedName("depthCubeShader"), typeof(CDepthCubeShader)); // Preload basic shaders CColorShader colorShader = new CColorShader(); CSimpleLitShader simpleLitShader = new CSimpleLitShader(); CTextureShader textureShader = new CTextureShader(); CUIShader uiShader = new CUIShader(); CDepthShader depthShader = new CDepthShader(); CDepthCubeShader depthCubeShader = new CDepthCubeShader(); Parallel.Invoke(() => colorShader.Init(device), () => simpleLitShader.Init(device), () => textureShader.Init(device), () => uiShader.Init(device), () => depthShader.Init(device), () => depthCubeShader.Init(device)); m_shaders.Add(new SHashedName("colorShader"), colorShader); m_shaders.Add(new SHashedName("simpleLitShader"), simpleLitShader); m_shaders.Add(new SHashedName("textureShader"), textureShader); m_shaders.Add(new SHashedName("uiShader"), uiShader); m_shaders.Add(new SHashedName("depthShader"), depthShader); m_shaders.Add(new SHashedName("depthCubeShader"), depthCubeShader); m_device = device; }
private void CreateDeviceResources() { m_shader = new CUIShader(); m_shader.Init(m_d3Device); CreateVertexIndexBuffer(); CreateBlendState(); CreateRasterizerState(); CreateDepthStencilState(); }