Ejemplo n.º 1
0
        private void SetupBatch(WmoRenderBatch batch)
        {
            var cullingDisabled = (batch.Material.MaterialFlags & 0x04) != 0;
            Mesh.UpdateRasterizerState(cullingDisabled ? gNoCullState : gCullState);
            Mesh.UpdateBlendState((batch.Batch.BlendMode != 0) ? gAlphaBlendState : gNoBlendState);
            ShaderProgram newProgram;
            if(Data.IsIndoor)
                newProgram = (batch.Batch.BlendMode != 0) ? gIndoorBlendProgram : gIndoorNoBlendProgram;
            else
                newProgram = (batch.Batch.BlendMode != 0) ? gBlendProgram : gNoBlendProgram;

            if(newProgram != Mesh.Program)
            {
                Mesh.Program = newProgram;
                Mesh.Program.Bind();
            }
            Mesh.Program.SetPixelTextures(0, batch.Material.Textures);
        }
Ejemplo n.º 2
0
        private void SetupBatch(WmoRenderBatch batch)
        {
            var cullingDisabled = (batch.Material.MaterialFlags & 0x04) != 0;

            Mesh.UpdateRasterizerState(cullingDisabled ? gNoCullState : gCullState);
            Mesh.UpdateBlendState((batch.Batch.BlendMode != 0) ? gAlphaBlendState : gNoBlendState);
            ShaderProgram newProgram;

            if (Data.IsIndoor)
            {
                newProgram = (batch.Batch.BlendMode != 0) ? gIndoorBlendProgram : gIndoorNoBlendProgram;
            }
            else
            {
                newProgram = (batch.Batch.BlendMode != 0) ? gBlendProgram : gNoBlendProgram;
            }

            if (newProgram != Mesh.Program)
            {
                Mesh.Program = newProgram;
                Mesh.Program.Bind();
            }
            Mesh.Program.SetPixelTextures(0, batch.Material.Textures);
        }