예제 #1
0
        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;
        }
예제 #2
0
        private void CreateDeviceResources()
        {
            m_shader = new CUIShader();
            m_shader.Init(m_d3Device);

            CreateVertexIndexBuffer();
            CreateBlendState();
            CreateRasterizerState();
            CreateDepthStencilState();
        }