Exemple #1
0
        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;
        }
Exemple #2
0
 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;
 }
Exemple #4
0
        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;
                }
            }
        }