private void CalculateTransform(ref ItemTransform transform, AptContext context) { var movie = (Movie)context.Root.Character; var movieSize = new Vector2(movie.ScreenWidth, movie.ScreenHeight); var scaling = _outputSize / movieSize; transform.GeometryRotation.M11 *= scaling.X; transform.GeometryRotation.M22 *= scaling.Y; transform.GeometryRotation.Translation = transform.GeometryTranslation * scaling; }
private void CalculateTransform(ref ItemTransform transform) { if (Window == null) { return; } var scaling = Window.GetScaling(); transform.GeometryRotation.M11 *= scaling.X; transform.GeometryRotation.M22 *= scaling.Y; transform.GeometryRotation.Translation = transform.GeometryTranslation * scaling; }
public void RenderText(DrawingContext2D drawingContext, AptContext context, Text text, ItemTransform transform) { var font = _contentManager.FontManager.GetOrCreateFont("Arial", text.FontHeight, FontWeight.Normal); CalculateTransform(ref transform, context); drawingContext.DrawText( text.Content, font, TextAlignment.Center, text.Color.ToColorRgbaF() * transform.ColorTransform, RectangleF.Transform(text.Bounds, transform.GeometryRotation)); }
public static void RenderText(DrawingContext2D drawingContext, AptContext context, Text text, ItemTransform transform) { var content = context.ContentManager; var font = context.ContentManager.GetOrCreateFont("Arial", text.FontHeight, FontWeight.Normal); var matrix = transform.GeometryRotation; matrix.Translation = transform.GeometryTranslation; drawingContext.DrawText( text.Content, font, TextAlignment.Center, text.Color.ToColorRgbaF() * transform.ColorTransform, RectangleF.Transform(text.Bounds, matrix)); }
public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } //calculate the transform for this element var cTransform = pTransform * Transform; //render all subItems foreach (var item in Content.Items.Values) { item.Render(renderer, cTransform, dc); } }
public void Render(ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } //calculate the transform for this element var cTransform = pTransform * Transform; //render all subitems foreach (var item in _content.Items.Values) { item.Render(cTransform, dc); } }
public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { var button = Character as Button; _curTransform = pTransform * Transform; _curTransform.GeometryTranslation *= renderer.Window.GetScaling(); _curTransform.GeometryRotation.M11 *= renderer.Window.GetScaling().X; _curTransform.GeometryRotation.M22 *= renderer.Window.GetScaling().Y; var transform = _curTransform.GeometryRotation; transform.Translation = _curTransform.GeometryTranslation; ApplyCurrentRecord(ref transform); var verts = button.Vertices; foreach (var tri in button.Triangles) { var v1 = Vector2.Transform(verts[tri.IDX0], transform); var v2 = Vector2.Transform(verts[tri.IDX1], transform); var v3 = Vector2.Transform(verts[tri.IDX2], transform); var color = ColorRgbaF.White; if (button.IsMenu) { color = new ColorRgbaF(1.0f, 0.0f, 0.0f, 1.0f); } if (_isHovered) { color = new ColorRgbaF(0.0f, 1.0f, 1.0f, 1.0f); } dc.DrawLine(new Line2D(v1, v2), 1.0f, color); dc.DrawLine(new Line2D(v2, v3), 1.0f, color); dc.DrawLine(new Line2D(v3, v1), 1.0f, color); } }
public static void RenderGeometry(DrawingContext2D drawingContext, AptContext context, Geometry shape, ItemTransform transform) { var matrix = transform.GeometryRotation; matrix.Translation = transform.GeometryTranslation; foreach (var e in shape.Entries) { switch (e) { case GeometryLines l: { var color = l.Color.ToColorRgbaF() * transform.ColorTransform; foreach (var line in l.Lines) { drawingContext.DrawLine( Line2D.Transform(line, matrix), l.Thickness, color); } break; } case GeometrySolidTriangles st: { var color = st.Color.ToColorRgbaF() * transform.ColorTransform; foreach (var tri in st.Triangles) { drawingContext.FillTriangle( Triangle2D.Transform(tri, matrix), color); } break; } case GeometryTexturedTriangles tt: { var coordinatesTransform = new Matrix3x2 { M11 = tt.RotScale.M11, M12 = tt.RotScale.M12, M21 = tt.RotScale.M21, M22 = tt.RotScale.M22, M31 = tt.Translation.X, M32 = tt.Translation.Y }; foreach (var tri in tt.Triangles) { //if (assignment is RectangleAssignment) // throw new NotImplementedException(); var tex = context.GetTexture(tt.Image, shape); drawingContext.FillTriangle( tex, Triangle2D.Transform(tri, coordinatesTransform), Triangle2D.Transform(tri, matrix), transform.ColorTransform); } break; } } } }
public void RenderGeometry(DrawingContext2D drawingContext, AptContext context, Geometry shape, ItemTransform transform, Texture solidTexture) { CalculateTransform(ref transform, context); var matrix = transform.GeometryRotation; foreach (var e in shape.Entries) { switch (e) { case GeometryLines l: { var color = l.Color.ToColorRgbaF() * transform.ColorTransform; foreach (var line in l.Lines) { drawingContext.DrawLine( Line2D.Transform(line, matrix), l.Thickness, color); } break; } case GeometrySolidTriangles st: { var color = st.Color.ToColorRgbaF() * transform.ColorTransform; foreach (var tri in st.Triangles) { if (solidTexture == null) { drawingContext.FillTriangle( Triangle2D.Transform(tri, matrix), color); } else { var destTri = Triangle2D.Transform(tri, matrix); var coordTri = new Triangle2D(new Vector2(tri.V0.X / 100.0f * solidTexture.Width, tri.V0.Y / 100.0f * solidTexture.Height), new Vector2(tri.V1.X / 100.0f * solidTexture.Width, tri.V1.Y / 100.0f * solidTexture.Height), new Vector2(tri.V2.X / 100.0f * solidTexture.Width, tri.V2.Y / 100.0f * solidTexture.Height)); drawingContext.FillTriangle( solidTexture, coordTri, destTri, new ColorRgbaF(1.0f, 1.0f, 1.0f, color.A)); } } break; } case GeometryTexturedTriangles tt: { var coordinatesTransform = new Matrix3x2 { M11 = tt.RotScale.M11, M12 = tt.RotScale.M12, M21 = tt.RotScale.M21, M22 = tt.RotScale.M22, M31 = tt.Translation.X, M32 = tt.Translation.Y }; foreach (var tri in tt.Triangles) { //if (assignment is RectangleAssignment) // throw new NotImplementedException(); var tex = context.GetTexture(tt.Image, shape); drawingContext.FillTriangle( tex, Triangle2D.Transform(tri, coordinatesTransform), Triangle2D.Transform(tri, matrix), transform.ColorTransform); } break; } } } }