public void Constructor_ThrowsNullArgumentException_OnNullAdapter() { IShaderAdapter nullAdapter = null; Action construct = () => program = new ShaderProgram(nullAdapter); construct.ShouldThrow<ArgumentNullException>(); }
public void SetUp() { adapter = new Mock<IShaderAdapter>(); adapter.SetupSequence(a => a.CreateProgram()) .Returns(1) .Returns(2); adapter.SetupSequence(a => a.CreateShader(It.IsAny<ShaderType>())) .Returns(1) .Returns(2); adapter.Setup(a => a.GetShaderProgramStatus( It.IsAny<int>(), GetProgramParameterName.LinkStatus)) .Returns(true); vertexShader = new Shader(adapter.Object, ShaderType.VertexShader); fragmentShader = new Shader(adapter.Object, ShaderType.FragmentShader); program = new ShaderProgram(adapter.Object, vertexShader, fragmentShader); }
private static IShaderProgram SpriteProgram() { var vertexShader = new Shader(EngineCore.GlAdapter, ShaderType.VertexShader); var fragmentShader = new Shader(EngineCore.GlAdapter, ShaderType.FragmentShader); vertexShader.Load(Shaders.VertexShaders.Sprite); fragmentShader.Load(Shaders.FragmentShaders.Sprite); var program = new ShaderProgram( EngineCore.GlAdapter, vertexShader, fragmentShader ); program.Link(); program.DetachShaders(); program.DeleteShaders(); return program; }
public void Attach_IsNotInvokedOnConstruction_WhenNoShadersAreSupplied() { var otherProgram = new ShaderProgram(adapter.Object); adapter.Verify(a => a.AttachShader(otherProgram.Handle, It.IsAny<int>()), Times.Never); otherProgram.AttachedShaders.ShouldNotBeNull(); otherProgram.AttachedShaders.ShouldBeEmpty(); }