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 Tue, 26 Sep 2006 12:18:33 GMT
On 9/26/06, Richard Liang <richard.liangyx@gmail.com> wrote:
>
> Agree. We may follow Java 6.0 Spec.


Finally, I'll open issue on this problem. I suppose it will be "non-bug
difference" with suggested fix to use default font size if size parameter is
negative.

Regards,
Ilya.

Richard.
>
> On 9/25/06, Ilya Okomin <ilya.okomin@gmail.com> wrote:
> > 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
> >
> >
>
>
> --
> 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
>
>


-- 
--
Ilya Okomin
Intel Middleware Products Division

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