void Create() { float newX = ((VideoSettings.ScreenWidth / 2f) * -1f) + screenPosition.X; float newY = (VideoSettings.ScreenHeight / 2f) - screenPosition.Y; if (!ResourceManager.Contains(text)) ResourceManager.Add(text, TextManager.DrawText(text)); Texture2D texture = (Texture2D)ResourceManager.GetResource(text).Resource; Texture2DDescription tDesc = texture.Description; TexturedPolygon newQuad = Polygon.CreateTexturedQuad(new Vector4(newX, newY, screenPosition.Z, 1.0f), tDesc.Width, tDesc.Height); if (quad != null) { //DataBox db = new DataBox(4 * TexturedVertex.Stride, 0, ); DataBox db = RenderForm11.Device.ImmediateContext.MapSubresource(quad.Vertices, 0, quad.Vertices.Description.SizeInBytes, MapMode.WriteDiscard, MapFlags.None); Create2(new Vector3(newX, newY, screenPosition.Z), tDesc.Width, tDesc.Height, db.Data); //db.Data = Create2(new Vector3(newX, newY, screenPosition.Z), tDesc.Width, tDesc.Height); //RenderForm11.Device.ImmediateContext.UpdateSubresource(db,quad.Vertices, 0 ); RenderForm11.Device.ImmediateContext.UnmapSubresource(quad.Vertices, 0); //quad.Vertices = newQuad.Vertices; //newQuad.Vertices.Dispose(); } else { quad = newQuad; } quad.DiffuseMapKey = text; this.text = text; }
void ISpriteObject.CreateShape() { quad = TexturedPolygon.CreateTexturedQuad(Id, Vector3.Zero, Size.Width, Size.Height, false); quad.PositionV3 = AbsoluteOrthoPosition; quad.DiffuseMapResource = srvTexture; }
public static TexturedPolygon CreateTexturedQuad(string tag, Vector3 topLeftVertex, float width, float height, bool dynamic = false) { TexturedPolygon texturedPolygon = new TexturedPolygon(tag, topLeftVertex, width, height, dynamic); texturedPolygon.Init(); return texturedPolygon; }
public override void CreateShape() { if (quad == null) { quad = TexturedPolygon.CreateTexturedQuad(Key, Vector3.Zero, Size.Width, Size.Height, IsDynamic); quad.PositionV3 = AbsoluteOrthoPosition; if (CacheText) quad.DiffuseMapKey = Key; else quad.DiffuseMapResource = srvTexture; } else { ushort[] indices; TexturedVertex[] vertices = TexturedPolygon.CreateTexturedQuad (Vector3.Zero, Size.Width, Size.Height, out indices); DataBox db = Game.Context.Immediate.MapSubresource(quad.VertexBuffer, 0, MapMode.WriteDiscard, MapFlags.None); db.Data.WriteRange(vertices); db.Data.Position = 0; Game.Context.Immediate.UnmapSubresource(quad.VertexBuffer, 0); if (CacheText) { quad.DiffuseMapKey = Key; quad.Name = Key; } else { quad.DiffuseMapResource.Resource.Dispose(); quad.DiffuseMapResource.Dispose(); quad.DiffuseMapResource = srvTexture; } } }