On 9/26/06, Richard Liang <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote: > > > On 9/25/06, Oleg Khaschansky <[EMAIL PROTECTED] > 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 < [EMAIL PROTECTED]> wrote: > > > > > On 9/23/06, Alexey Varlamov <[EMAIL PROTECTED] > 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 < [EMAIL PROTECTED]>: > > > > > > > On 9/22/06, Ilya Okomin < [EMAIL PROTECTED]> 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: > > [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html > > > > > > To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > > > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Richard Liang > > > > > China Development Lab, IBM > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > Terms of use : http://incubator.apache.org/harmony/mailing.html > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > -- > > > -- > > > Ilya Okomin > > > Intel Middleware Products Division > > > > > > > > > > --------------------------------------------------------------------- > > Terms of use : http://incubator.apache.org/harmony/mailing.html > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > -- > 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- -- Ilya Okomin Intel Middleware Products Division