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); }
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); }