예제 #1
0
 public void ExpectExceptionIfNoShaderDataAreSpecified()
 {
     var data = new ShaderCreationData("NoData", "NoData", "NoData", "NoData",
         VertexFormat.Position2DColor);
     var shader = ContentLoader.Create<NoDataShaderWithFormat>(data);
     Assert.Throws<ShaderWithFormat.NoShaderDataSpecified>(() => shader.ReloadCreationData(data));
 }
예제 #2
0
 protected Shader(ShaderCreationData data)
     : base("<Generated" + data.Flags + "Shader>")
 {
     Data = data;
     // ReSharper disable DoNotCallOverridableMethodsInConstructor
     FillShaderCode();
 }
예제 #3
0
 public void AllowDynamicCreationViaCreationData()
 {
     var data = new ShaderCreationData("AnyData", "AnyData", "AnyData", "AnyData",
         VertexFormat.Position2DColor);
     var shader = ContentLoader.Create<NoDataShaderWithFormat>(data);
     Assert.DoesNotThrow(() => shader.ReloadCreationData(data));
 }
예제 #4
0
		private static Material CreateEmptyTransparentMaterial()
		{
			var ui2DShaderData = new ShaderCreationData(ShaderFlags.Position2DColored);
			return new Material(ContentLoader.Create<Shader>(ui2DShaderData), null)
			{
				DefaultColor = Color.TransparentBlack
			};
		}
예제 #5
0
		public SharpDXShader(ShaderCreationData customShader, SharpDXDevice device)
			: base(customShader)
		{
			this.device = device;
			nativeDevice = device.NativeDevice;
			context = device.NativeDevice.ImmediateContext;
			TryCreateShader();
		}
예제 #6
0
 public void InvalidVertexFormat()
 {
     Assert.Throws<ShaderWithFormat.InvalidVertexFormat>(
         () => ContentLoader.Create<Shader>(new ShaderCreationData("", "", "", "", null)));
     var data = new ShaderCreationData("", "", "", "", new VertexFormat(new VertexElement[0]));
     Assert.Throws<ShaderWithFormat.InvalidVertexFormat>(
         () => ContentLoader.Create<Shader>(data));
 }
예제 #7
0
 public MockShader(ShaderCreationData customShader, Device device)
     : base(customShader)
 {
     this.device = device;
     CallPublicImplementationMethodsToFixCoverage();
 }
예제 #8
0
		private XnaShader(ShaderCreationData creationData, XnaDevice device)
			: base(creationData)
		{
			this.device = device;
		}
예제 #9
0
 private OpenTK20Shader(ShaderCreationData creationData, OpenTK20Device device)
     : base(creationData)
 {
     this.device = device;
     Create();
 }
예제 #10
0
		public OpenGLShader(ShaderCreationData data, OpenGLDevice device)
			: base(data)
		{
			this.device = device;
			TryCreateShader();
		}
예제 #11
0
 public void InvalidVertexAndPixelCode()
 {
     var data = new ShaderCreationData("", "", "", "", VertexFormat.Position2DColor);
     Assert.Throws<ShaderWithFormat.InvalidShaderCode>(() => ContentLoader.Create<Shader>(data));
 }
예제 #12
0
 public void ReloadCreationData(ShaderCreationData creationData)
 {
     byte[] rawData = creationData.VertexCode == "NoData"
         ? new byte[0] : BinaryDataExtensions.ToByteArrayWithTypeInformation(creationData);
     LoadData(new MemoryStream(rawData));
 }
예제 #13
0
 public NoDataShaderWithFormat(ShaderCreationData creationData, Device device)
     : base(creationData, device)
 {
 }
예제 #14
0
		private static Shader CreateShaderByFlags(ShaderFlags flags)
		{
			var creationData = new ShaderCreationData(flags);
			return new FakeShader(creationData);
		}