harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Okomin" <ilya.oko...@gmail.com>
Subject Re: [classlib][awt] Fonts with negative size.
Date Mon, 25 Sep 2006 15:40:07 GMT
Guys, I found something in the Java 6.0 documentation.
If you look at the TextAttribute spec there is a note for the SIZE
field, attribute key for the font size:

"Attribute key for the font size. Values are instances of *Number*. The
default value is 12pt.

This corresponds to the size parameter to the Font constructor.

Very large or small sizes will impact rendering performance, and the
rendering system might not render text at these sizes. *Negative sizes are
illegal and result in the default size*."
For this reason I suggest to use default size (12pt) if font has negative
size parameter. Any thoughts?

I believe negative-sized fonts support was erroneous in Java 5.0 and
in the earlier versions of Java.

Regards,
Ilya.


On 9/25/06, Oleg Khaschansky <oleg.v.khaschansky@gmail.com> wrote:
>
> It seems like returning negative metrics is somewhat logical. If the
> font is rotated by -Pi then all offsets becomes negative, but their
> absolute values are equal to the positive ones.
>
> I'll try to give an example. E.g. if descent was, say, 10 and one
> needed to offset 10 pt from the origin (baseline) to the bottom of the
> black box then if -pi rotation is applied to the font, one need to
> offset -10 pt from the baseline since black box is upside down.
>
> Yes, RI failed to be consistent with this on heavyweight components as
> it was noted in the evaluation. But is this bug still there in the RI?
> And if RI is inconsistent with the drawing of negative-sized fonts it
> is still consistent with the negative metrics, right?
>
> IMHO, the ideal behavior in all situations would be the following:
> If the font has negative size we assume that it has all the same
> metrics as the positive font, but the metrics which has a direction
> (like ascent, descent, etc.) are with the different sign. The font is
> drawn as it was rotated by -pi angle.
>
> Personaly my opinion is that this is a bug, not non-bug diff.
> I'd suggest to choose between these options:
> 1. Fix metrics and rendering, close this issue.
> 2. Fix metrics, open a new jira for the rendering of the negative-sized
> fonts.
> 3. Fix nothing, open a new jira or add an evaluation to this one
> both for the rendering and for the metrics. This means that we want to
> have them together.
>
> For the rendering part, why not just add a transform if the size of
> the font is negative?
>
> On 9/25/06, Ilya Okomin <ilya.okomin@gmail.com> wrote:
> > On 9/25/06, Oleg Khaschansky <oleg.v.khaschansky@gmail.com > wrote:
> >
> > > It was evaluated as "not a bug". But it is clear from its evaluation
> > > that negative-sized fonts are treated as positive sized but rotated
> > > around their origin, say with implicit transform. I'd suggest to
> > > follow this behavior.
> >
> >
> > I agree, that the behavior of the negative-sized fonts on RI is looks
> like
> > the behavior of positive ones with -Pi rotation. However, if we look at
> the
> > font metrics, bounds - we can see negative values for height, width
> > values...I'm not sure they have any sence without additional
> documentation
> > that we can't find in the spec.
> > Moreover bug evaluation says that RI handles negative-sized fonts for
> > components in different ways depending on the platform. And it's
> behavior
> > unlike the drawing on the frame surface. What is to add - metrics for
> all
> > these various cases are the same, it means that RI has erroneous
> behavior in
> > some way.
> >
> > I would suggest not to follow the RI and mark it as "non-bug difference"
> as
> > the RI hasn't any clear documentation on this problem and it's
> > behavior erroneous and depends on the platform or component type.
> >
> > Thanks,
> > Ilya.
> >
> >
> >
> >
> > > On 9/23/06, Richard Liang < richard.liangyx@gmail.com> wrote:
> > > > On 9/23/06, Alexey Varlamov <alexey.v.varlamov@gmail.com > wrote:
> > > > > Google said this is the bug of RI in progress [1]. However there
> is no
> > > > > distinct resolution yet...
> > > > >
> > > >
> > > > It's reported again Java 1.1.8 more than 3 years agao. I don't think
> > > > RI will fix this bug.
> > > >
> > > > Richard.
> > > >
> > > > > [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4803825
> > > > >
> > > > >
> > > > > 2006/9/23, Richard Liang < richard.liangyx@gmail.com>:
> > > > > > On 9/22/06, Ilya Okomin < ilya.okomin@gmail.com> wrote:
> > > > > > > Hi, all!
> > > > > > >
> > > > > > > I was playing with fonts and found that Font with negative
> size
> > > can be
> > > > > > > created on RI.
> > > > > > >  Unfortunately spec keep silence about fonts with negative
> sizes.
> > > > > > > On Harmony if font size is negative then it is set to zero.
> > > > > > >
> > > > > > > ------------test.java---------------
> > > > > > > import java.awt.*;
> > > > > > > import java.awt.font.FontRenderContext;
> > > > > > >
> > > > > > > public class NegativeFontTest {
> > > > > > >
> > > > > > >     public static void main(String[] args) {
> > > > > > >         int fontsize=-5;
> > > > > > >         Font localFont = new Font("Arial", 2, fontsize);
> > > > > > >         System.out.println("Size = " + localFont.getSize2D());
> > > > > > >
> > > > > > >         System.out.println("Height = " +
> localFont.getLineMetrics("",
> > > new
> > > > > > > FontRenderContext(null, false, false)).getHeight());
> > > > > > >         System.out.println("MaxCharBounds = " +
> > > localFont.getMaxCharBounds(new
> > > > > > > FontRenderContext(null, false, false)));
> > > > > > >     }
> > > > > > >
> > > > > > > }
> > > > > > > ----------------------------------------
> > > > > > > If you run this test case on RI you can see that output
looks
> > > quite strange:
> > > > > > >
> > > > > > > Size = -5.0
> > > > > > > Height = -5.7495117
> > > > > > > MaxCharBounds = java.awt.geom.Rectangle2D$Float[x=0.0,y=
> 4.6081543
> > > ,w=-5.46875
> > > > > > > ,h=- 5.7495117]
> > > > > > >
> > > > > > >
> > > > > > > Actually, I dont see any sence in negative height and width
> > > metrics and
> > > > > > > I think it is an RI bug.
> > > > > > > If you try to draw text with such font on RI - nothing
is
> happen,
> > > you can't
> > > > > > > see any text on the component.
> > > > > > > I've ran 'xfontsel' tool on Linux and there was suggested
to
> > > choose only
> > > > > > > positive sized fonts. Also I've looked on the GDI LOGFONT
> > > structure
> > > > > > > description in MSDN and I've seen there again that we deal
> with
> > > absolute
> > > > > > > height values.
> > > > > > >
> > > > > > > Any thoughts on this issue, is it RI bug or not?
> > > > > >
> > > > > > We cannot say it's a bug of RI, because the spec does not
> explicitly
> > > > > > describe the requirement of font size.
> > > > > >
> > > > > > I suggest we follow RI.
> > > > > >
> > > > > > Best regards,
> > > > > > Richard
> > > > > >
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Ilya.
> > > > > > >
> > > > > > > --
> > > > > > > --
> > > > > > > Ilya Okomin
> > > > > > > Intel Middleware Products Division
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Richard Liang
> > > > > > China Development Lab, IBM
> > > > > >
> > > > > >
> > > ---------------------------------------------------------------------
> > > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > > > > To unsubscribe, e-mail:
> harmony-dev-unsubscribe@incubator.apache.org
> > > > > > For additional commands, e-mail:
> > > harmony-dev-help@incubator.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > > > To unsubscribe, e-mail:
> harmony-dev-unsubscribe@incubator.apache.org
> > > > > For additional commands, e-mail:
> harmony-dev-help@incubator.apache.org
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Richard Liang
> > > > China Development Lab, IBM
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > > For additional commands, e-mail:
> harmony-dev-help@incubator.apache.org
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > Terms of use : http://incubator.apache.org/harmony/mailing.html
> > > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> > > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
> > >
> > >
> >
> >
> > --
> > --
> > Ilya Okomin
> > Intel Middleware Products Division
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>


-- 
--
Ilya Okomin
Intel Middleware Products Division

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message