public void Set(Texture2DI resource) { var texture = (Texture2D)resource; video.currentPixelTextures[index] = texture; this.texture = new WeakReference(texture); Apply = setTexture2D; }
public void Set(Texture2DI resource) { var texture = (Texture2D)resource; #if SILVERLIGHT video.Device.Textures[resourceIndex] = texture.texture; #else parameter.SetValue(texture.texture); #endif }
public Font(DisposableI parent, ShaderI shader, Texture2DI texture, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback) : base(parent) { new StreamLoader(metricsFileName, delegate(object sender, bool succeeded) { if (succeeded) { init(shader, texture, ((StreamLoader)sender).LoadedStream, metricsFileName, loadedCallback); } else { FailedToLoad = true; Dispose(); if (loadedCallback != null) loadedCallback(this, false); } }); }
public Font(DisposableI parent, ShaderI shader, Texture2DI texture, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback) : base(parent) { new StreamLoader(metricsFileName, delegate(object sender, bool succeeded) { if (succeeded) { init(shader, texture, ((StreamLoader)sender).LoadedStream, metricsFileName, loadedCallback); } else { FailedToLoad = true; Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } }); }
private void init(ShaderI shader, Texture2DI texture, Stream stream, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback) { try { // load characters var metrics = new FontMetrics(); metrics.Load(stream); Characters = new Character[metrics.Characters.Length]; for (int i = 0; i != metrics.Characters.Length; ++i) { var character = metrics.Characters[i]; Characters[i] = new Character(character.Key, new Vector2(character.X, character.Y), new Vector2(character.Width, character.Height)); } // get shader variables this.texture = texture; this.shader = shader; shaderCamera = shader.Variable("Camera"); shaderPosition = shader.Variable("Position"); shaderSize = shader.Variable("Size"); shaderPositionUV = shader.Variable("PositionUV"); shaderSizeUV = shader.Variable("SizeUV"); texelOffset = shader.Variable("TexelOffset"); shaderColor = shader.Variable("Color"); shaderTexture = shader.Resource("DiffuseTexture"); // create buffers var layoutDesc = BufferLayoutDescAPI.New(BufferLayoutTypes.Position2); layout = BufferLayoutAPI.New(this, shader, layoutDesc); var Indices = new int[6] { 0, 1, 2, 0, 2, 3 }; var Vertices = new float[8] { 0, 0, 0, 1, 1, 1, 1, 0, }; indexBuffer = IndexBufferAPI.New(this, BufferUsages.Default, Indices); vertexBuffer = VertexBufferAPI.New(this, layoutDesc, BufferUsages.Default, VertexBufferTopologys.Triangle, Vertices); } catch (Exception e) { FailedToLoad = true; Loader.AddLoadableException(e); Dispose(); if (loadedCallback != null) { loadedCallback(this, false); } } Loaded = true; if (loadedCallback != null) { loadedCallback(this, true); } }
public void Copy(Texture2DI texture) { throw new NotImplementedException(); }
private void init(ShaderI shader, Texture2DI texture, Stream stream, string metricsFileName, Loader.LoadedCallbackMethod loadedCallback) { try { // load characters var metrics = new FontMetrics(); metrics.Load(stream); Characters = new Character[metrics.Characters.Length]; for (int i = 0; i != metrics.Characters.Length; ++i) { var character = metrics.Characters[i]; Characters[i] = new Character(character.Key, new Vector2(character.X, character.Y), new Vector2(character.Width, character.Height)); } // get shader variables this.texture = texture; this.shader = shader; shaderCamera = shader.Variable("Camera"); shaderPosition = shader.Variable("Position"); shaderSize = shader.Variable("Size"); shaderPositionUV = shader.Variable("PositionUV"); shaderSizeUV = shader.Variable("SizeUV"); texelOffset = shader.Variable("TexelOffset"); shaderColor = shader.Variable("Color"); shaderTexture = shader.Resource("DiffuseTexture"); // create buffers var layoutDesc = BufferLayoutDescAPI.New(BufferLayoutTypes.Position2); layout = BufferLayoutAPI.New(this, shader, layoutDesc); var Indices = new int[6] { 0, 1, 2, 0, 2, 3 }; var Vertices = new float[8] { 0, 0, 0, 1, 1, 1, 1, 0, }; indexBuffer = IndexBufferAPI.New(this, BufferUsages.Default, Indices); vertexBuffer = VertexBufferAPI.New(this, layoutDesc, BufferUsages.Default, VertexBufferTopologys.Triangle, Vertices); } catch (Exception e) { FailedToLoad = true; Loader.AddLoadableException(e); Dispose(); if (loadedCallback != null) loadedCallback(this, false); } Loaded = true; if (loadedCallback != null) loadedCallback(this, true); }
public override void Shown() { try { root = new RootDisposable(); VideoTypes videoType; #if WIN32 video = Video.Init(VideoTypes.D3D11 | VideoTypes.D3D9 | VideoTypes.OpenGL, out videoType, root, this, true); #elif METRO video = Video.Create(VideoTypes.D3D11, out videoType, root, this, true); #elif XNA video = Video.Create(VideoTypes.XNA, out videoType, root, this); #endif FontMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null); fontTexture = Texture2DAPI.New(video, "Data/Font.png", null); font = new Font(video, FontMaterial.Shader, fontTexture, "Data/Font.font", null); var frame = FrameSize; viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height); camera = new Camera(viewPort, new Vector3(5, 5, 5), new Vector3(), new Vector3(5, 5+1, 5), 1, 50, MathUtilities.DegToRad(45)); rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullNone)); depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less)); samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap)); blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.Alpha)); loaded = true; } catch (Exception e) { dispose(); Message.Show("Error", e.Message); } }