home *** CD-ROM | disk | FTP | other *** search
- package sun.swing;
-
- import java.awt.Font;
- import java.awt.RenderingHints;
- import java.awt.font.FontRenderContext;
- import java.awt.font.GlyphVector;
-
- class SwingUtilities2$LSBCacheEntry {
- private static final byte UNSET = 127;
- private static final char[] oneChar = new char[1];
- private byte[] lsbCache = new byte[1];
- private Font font;
- private FontRenderContext frc;
- // $FF: synthetic field
- static final boolean $assertionsDisabled = !SwingUtilities2.class.desiredAssertionStatus();
-
- public SwingUtilities2$LSBCacheEntry(FontRenderContext var1, Font var2) {
- this.reset(var1, var2);
- }
-
- public void reset(FontRenderContext var1, Font var2) {
- this.font = var2;
- this.frc = var1;
-
- for(int var3 = this.lsbCache.length - 1; var3 >= 0; --var3) {
- this.lsbCache[var3] = 127;
- }
-
- }
-
- public int getLeftSideBearing(char var1) {
- int var2 = var1 - 87;
- if ($assertionsDisabled || var2 >= 0 && var2 < 1) {
- byte var3 = this.lsbCache[var2];
- if (var3 == 127) {
- oneChar[0] = var1;
- GlyphVector var4 = this.font.createGlyphVector(this.frc, oneChar);
- var3 = (byte)var4.getGlyphPixelBounds(0, this.frc, 0.0F, 0.0F).x;
- if (var3 < 0) {
- Object var5 = this.frc.getAntiAliasingHint();
- if (var5 == RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB || var5 == RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR) {
- ++var3;
- }
- }
-
- this.lsbCache[var2] = var3;
- }
-
- return var3;
- } else {
- throw new AssertionError();
- }
- }
-
- public boolean equals(Object var1) {
- if (var1 == this) {
- return true;
- } else if (!(var1 instanceof SwingUtilities2$LSBCacheEntry)) {
- return false;
- } else {
- SwingUtilities2$LSBCacheEntry var2 = (SwingUtilities2$LSBCacheEntry)var1;
- return this.font.equals(var2.font) && this.frc.equals(var2.frc);
- }
- }
-
- public int hashCode() {
- int var1 = 17;
- if (this.font != null) {
- var1 = 37 * var1 + this.font.hashCode();
- }
-
- if (this.frc != null) {
- var1 = 37 * var1 + this.frc.hashCode();
- }
-
- return var1;
- }
- }
-