* Removed a line of long-dead code.
* Make sure that turning off anti-aliased font rendering also works when subpixel-anti-aliasing is used. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38831 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -88,7 +88,6 @@ void
|
|||||||
AGGTextRenderer::SetHinting(bool hinting)
|
AGGTextRenderer::SetHinting(bool hinting)
|
||||||
{
|
{
|
||||||
fHinted = hinting;
|
fHinted = hinting;
|
||||||
// fFontEngine.hinting(fEmbeddedTransformation.IsIdentity() && fHinted);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -97,6 +96,8 @@ AGGTextRenderer::SetAntialiasing(bool antialiasing)
|
|||||||
{
|
{
|
||||||
if (fAntialias != antialiasing) {
|
if (fAntialias != antialiasing) {
|
||||||
fAntialias = antialiasing;
|
fAntialias = antialiasing;
|
||||||
|
// NOTE: The fSubpixRasterizer is not used when anti-aliasing is
|
||||||
|
// disbaled.
|
||||||
if (!fAntialias)
|
if (!fAntialias)
|
||||||
fRasterizer.gamma(agg::gamma_threshold(0.5));
|
fRasterizer.gamma(agg::gamma_threshold(0.5));
|
||||||
else
|
else
|
||||||
@@ -116,6 +117,7 @@ typedef agg::conv_transform<FontCacheEntry::ContourConverter, Transformable>
|
|||||||
class AGGTextRenderer::StringRenderer {
|
class AGGTextRenderer::StringRenderer {
|
||||||
public:
|
public:
|
||||||
StringRenderer(const IntRect& clippingFrame, bool dryRun,
|
StringRenderer(const IntRect& clippingFrame, bool dryRun,
|
||||||
|
bool subpixelAntiAliased,
|
||||||
FontCacheEntry::TransformedOutline& transformedGlyph,
|
FontCacheEntry::TransformedOutline& transformedGlyph,
|
||||||
FontCacheEntry::TransformedContourOutline& transformedContour,
|
FontCacheEntry::TransformedContourOutline& transformedContour,
|
||||||
const Transformable& transform,
|
const Transformable& transform,
|
||||||
@@ -127,9 +129,10 @@ public:
|
|||||||
fTransformOffset(transformOffset),
|
fTransformOffset(transformOffset),
|
||||||
fClippingFrame(clippingFrame),
|
fClippingFrame(clippingFrame),
|
||||||
fDryRun(dryRun),
|
fDryRun(dryRun),
|
||||||
|
fSubpixelAntiAliased(subpixelAntiAliased),
|
||||||
|
fVector(false),
|
||||||
fBounds(LONG_MAX, LONG_MAX, LONG_MIN, LONG_MIN),
|
fBounds(LONG_MAX, LONG_MAX, LONG_MIN, LONG_MIN),
|
||||||
fNextCharPos(nextCharPos),
|
fNextCharPos(nextCharPos),
|
||||||
fVector(false),
|
|
||||||
|
|
||||||
fTransformedGlyph(transformedGlyph),
|
fTransformedGlyph(transformedGlyph),
|
||||||
fTransformedContour(transformedContour),
|
fTransformedContour(transformedContour),
|
||||||
@@ -146,7 +149,7 @@ public:
|
|||||||
void Finish(double x, double y)
|
void Finish(double x, double y)
|
||||||
{
|
{
|
||||||
if (fVector) {
|
if (fVector) {
|
||||||
if (gSubpixelAntialiasing) {
|
if (fSubpixelAntiAliased) {
|
||||||
agg::render_scanlines(fRenderer.fSubpixRasterizer,
|
agg::render_scanlines(fRenderer.fSubpixRasterizer,
|
||||||
fRenderer.fSubpixScanline, fRenderer.fSubpixRenderer);
|
fRenderer.fSubpixScanline, fRenderer.fSubpixRenderer);
|
||||||
} else {
|
} else {
|
||||||
@@ -242,7 +245,7 @@ public:
|
|||||||
|
|
||||||
case glyph_data_outline: {
|
case glyph_data_outline: {
|
||||||
fVector = true;
|
fVector = true;
|
||||||
if (gSubpixelAntialiasing) {
|
if (fSubpixelAntiAliased) {
|
||||||
if (fRenderer.fContour.width() == 0.0) {
|
if (fRenderer.fContour.width() == 0.0) {
|
||||||
fRenderer.fSubpixRasterizer.add_path(
|
fRenderer.fSubpixRasterizer.add_path(
|
||||||
fTransformedGlyph);
|
fTransformedGlyph);
|
||||||
@@ -268,7 +271,7 @@ public:
|
|||||||
p.close_polygon();
|
p.close_polygon();
|
||||||
agg::conv_stroke<agg::path_storage> ps(p);
|
agg::conv_stroke<agg::path_storage> ps(p);
|
||||||
ps.width(1.0);
|
ps.width(1.0);
|
||||||
if (gSubpixelAntialiasing) {
|
if (fSubpixelAntiAliased) {
|
||||||
fRenderer.fSubpixRasterizer.add_path(ps);
|
fRenderer.fSubpixRasterizer.add_path(ps);
|
||||||
} else {
|
} else {
|
||||||
fRenderer.fRasterizer.add_path(ps);
|
fRenderer.fRasterizer.add_path(ps);
|
||||||
@@ -295,9 +298,10 @@ private:
|
|||||||
const BPoint& fTransformOffset;
|
const BPoint& fTransformOffset;
|
||||||
const IntRect& fClippingFrame;
|
const IntRect& fClippingFrame;
|
||||||
bool fDryRun;
|
bool fDryRun;
|
||||||
|
bool fSubpixelAntiAliased;
|
||||||
|
bool fVector;
|
||||||
IntRect fBounds;
|
IntRect fBounds;
|
||||||
BPoint* fNextCharPos;
|
BPoint* fNextCharPos;
|
||||||
bool fVector;
|
|
||||||
|
|
||||||
FontCacheEntry::TransformedOutline& fTransformedGlyph;
|
FontCacheEntry::TransformedOutline& fTransformedGlyph;
|
||||||
FontCacheEntry::TransformedContourOutline& fTransformedContour;
|
FontCacheEntry::TransformedContourOutline& fTransformedContour;
|
||||||
@@ -331,6 +335,7 @@ AGGTextRenderer::RenderString(const char* string, uint32 length,
|
|||||||
transform.Transform(&transformOffset);
|
transform.Transform(&transformOffset);
|
||||||
|
|
||||||
StringRenderer renderer(clippingFrame, dryRun,
|
StringRenderer renderer(clippingFrame, dryRun,
|
||||||
|
gSubpixelAntialiasing && fAntialias,
|
||||||
transformedOutline, transformedContourOutline,
|
transformedOutline, transformedContourOutline,
|
||||||
transform, transformOffset, nextCharPos, *this);
|
transform, transformOffset, nextCharPos, *this);
|
||||||
|
|
||||||
@@ -365,6 +370,7 @@ AGGTextRenderer::RenderString(const char* string, uint32 length,
|
|||||||
transform.Transform(&transformOffset);
|
transform.Transform(&transformOffset);
|
||||||
|
|
||||||
StringRenderer renderer(clippingFrame, dryRun,
|
StringRenderer renderer(clippingFrame, dryRun,
|
||||||
|
gSubpixelAntialiasing && fAntialias,
|
||||||
transformedOutline, transformedContourOutline,
|
transformedOutline, transformedContourOutline,
|
||||||
transform, transformOffset, nextCharPos, *this);
|
transform, transformOffset, nextCharPos, *this);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user