public void TestIsValid() { SceneLayer testLayer = Scene.CreateLayer("Test layer"); Window testWindow = new Window("Test window"); ConstantBuffer <Matrix> instanceBuffer = BufferFactory.NewConstantBuffer <Matrix>().WithUsage(ResourceUsage.DiscardWrite); VertexShader testShader = VertexShader.NewDefaultShader(instanceBuffer); HUDPass testPass = new HUDPass("Test pass"); Assert.IsFalse(testPass.IsValid); testPass.Input = new Camera(); testPass.AddLayer(testLayer); testPass.Output = testWindow; testPass.VertexShader = testShader; Assert.IsFalse(testPass.IsValid); testPass.RasterizerState = new RasterizerState(true, TriangleCullMode.FrontfaceCulling, false); testPass.DepthStencilState = new DepthStencilState(); Assert.IsTrue(testPass.IsValid); testPass.RasterizerState.Dispose(); Assert.IsFalse(testPass.IsValid); testPass.DepthStencilState.Dispose(); testPass.Dispose(); testShader.Dispose(); instanceBuffer.Dispose(); testWindow.Close(); testLayer.Dispose(); }
public void TestAddRemoveClearRenderPasses() { // Define variables and constants RenderPass a = new HUDPass("a"); RenderPass b = new HUDPass("b"); RenderPass c = new HUDPass("c"); // Set up context RenderingModule.AddRenderPass(b); try { RenderingModule.AddRenderPass(b); Assert.Fail(); } catch (InvalidOperationException) { } try { RenderingModule.RemoveRenderPass(c); Assert.Fail(); } catch (InvalidOperationException) { } RenderingModule.AddRenderPass(c); RenderingModule.InsertRenderPass(a, b); IReadOnlyList <RenderPass> passList = RenderingModule.AddedPasses; Assert.AreEqual(a, passList[0]); Assert.AreEqual(b, passList[1]); Assert.AreEqual(c, passList[2]); RenderingModule.ClearPasses(); passList = RenderingModule.AddedPasses; // Assert outcome Assert.AreEqual(0, passList.Count); a.Dispose(); b.Dispose(); c.Dispose(); }