Commit cd9499c4 authored by ubbn's avatar ubbn
Browse files

Fix #176: Blurry text when overlapped with colored background

Showing with 18 additions and 2 deletions
+18 -2
...@@ -93,7 +93,11 @@ namespace SVGViewer ...@@ -93,7 +93,11 @@ namespace SVGViewer
_transform.Translate(dx, dy, order); _transform.Translate(dx, dy, order);
} }
public CompositingMode CompositingMode
{
get { return System.Drawing.Drawing2D.CompositingMode.SourceOver; /* default value */ }
set { /* Do Nothing */ }
}
public SmoothingMode SmoothingMode public SmoothingMode SmoothingMode
{ {
......
...@@ -19,6 +19,7 @@ namespace Svg ...@@ -19,6 +19,7 @@ namespace Svg
void ScaleTransform(float sx, float sy, MatrixOrder order = MatrixOrder.Append); void ScaleTransform(float sx, float sy, MatrixOrder order = MatrixOrder.Append);
void SetBoundable(ISvgBoundable boundable); void SetBoundable(ISvgBoundable boundable);
void SetClip(Region region, CombineMode combineMode = CombineMode.Replace); void SetClip(Region region, CombineMode combineMode = CombineMode.Replace);
CompositingMode CompositingMode { get; set; }
SmoothingMode SmoothingMode { get; set; } SmoothingMode SmoothingMode { get; set; }
Matrix Transform { get; set; } Matrix Transform { get; set; }
void TranslateTransform(float dx, float dy, MatrixOrder order = MatrixOrder.Append); void TranslateTransform(float dx, float dy, MatrixOrder order = MatrixOrder.Append);
......
...@@ -79,7 +79,11 @@ namespace Svg ...@@ -79,7 +79,11 @@ namespace Svg
this._innerGraphics.TranslateTransform(dx, dy, order); this._innerGraphics.TranslateTransform(dx, dy, order);
} }
public CompositingMode CompositingMode
{
get { return this._innerGraphics.CompositingMode; }
set { this._innerGraphics.CompositingMode = value; }
}
public SmoothingMode SmoothingMode public SmoothingMode SmoothingMode
{ {
......
...@@ -259,6 +259,11 @@ namespace Svg ...@@ -259,6 +259,11 @@ namespace Svg
renderer.SmoothingMode = SmoothingMode.AntiAlias; renderer.SmoothingMode = SmoothingMode.AntiAlias;
} }
// If text color blends with background color, text will be rendered blurry
// To avoid it, we set SourceCopy which overwrite background color
var compositingMode = renderer.CompositingMode;
renderer.CompositingMode = CompositingMode.SourceCopy;
this.RenderFill(renderer); this.RenderFill(renderer);
this.RenderStroke(renderer); this.RenderStroke(renderer);
this.RenderChildren(renderer); this.RenderChildren(renderer);
...@@ -269,6 +274,8 @@ namespace Svg ...@@ -269,6 +274,8 @@ namespace Svg
renderer.SmoothingMode = SmoothingMode.Default; renderer.SmoothingMode = SmoothingMode.Default;
} }
renderer.CompositingMode = compositingMode;
this.ResetClip(renderer); this.ResetClip(renderer);
this.PopTransforms(renderer); this.PopTransforms(renderer);
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment