Beispiel #1
0
		protected void BindTexture(RenderState rstate, int cacheidx, string tex, int unit, SamplerFlags flags, string nullName = null)
		{
			if (tex == null)
			{
				if (nullName == null)
					throw new Exception();
				tex = nullName;
			}
			if (textures[cacheidx] == null || !loaded[cacheidx])
				textures[cacheidx] = (Texture2D)Library.FindTexture(tex);
			if (textures[cacheidx] == null)
			{
				textures[cacheidx] = (Texture2D)Library.FindTexture(ResourceManager.NullTextureName);
				loaded[cacheidx] = false;
			}
			else
				loaded[cacheidx] = true;
			var tex2d = textures[cacheidx];
			if (tex2d.IsDisposed)
				tex2d = textures[cacheidx] = (Texture2D)Library.FindTexture(tex);
			tex2d.BindTo(unit);
			tex2d.SetFiltering(rstate.PreferredFilterLevel);
			if ((flags & SamplerFlags.ClampToEdgeU) == SamplerFlags.ClampToEdgeU)
			{
				tex2d.SetWrapModeS(WrapMode.ClampToEdge);
			}
			if ((flags & SamplerFlags.ClampToEdgeV) == SamplerFlags.ClampToEdgeV)
			{
				tex2d.SetWrapModeT(WrapMode.ClampToEdge);
			}
			if ((flags & SamplerFlags.MirrorRepeatU) == SamplerFlags.MirrorRepeatU)
			{
				tex2d.SetWrapModeS(WrapMode.MirroredRepeat);
			}
			if ((flags & SamplerFlags.MirrorRepeatU) == SamplerFlags.MirrorRepeatV)
			{
				tex2d.SetWrapModeT(WrapMode.MirroredRepeat);
			}

		}
Beispiel #2
0
 private RenderTarget(Texture2D texture, TextureFormat format, SamplerFlags flags)
 {
     Handle           = GraphicsContext.CreateFrameBuffer(texture, format, flags);
     _internalTexture = texture;
 }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RenderTarget"/> struct.
 /// </summary>
 /// <param name="width">The width of the render target.</param>
 /// <param name="height">The height of the render target.</param>
 /// <param name="format">The format of the new surface.</param>
 /// <param name="flags">Texture sampling flags.</param>
 private RenderTarget(int width, int height, TextureFormat format, SamplerFlags flags)
 {
     Handle           = GraphicsContext.CreateFrameBuffer(width, height, format, flags);
     _internalTexture = new Texture2D(GraphicsContext.GetFrameBufferTexture(Handle, 0), width, height, false, false);
 }