Merge "Issue #2920 Allow strings to use mulitple styles." into development

Former-commit-id: 1b07e87178947df4d579dbc32057e883b61a7de2
This commit is contained in:
Nate Jensen 2014-04-08 14:28:44 -05:00 committed by Gerrit Code Review
commit 3fff4e77d4
8 changed files with 196 additions and 182 deletions

View file

@ -62,10 +62,11 @@ import com.raytheon.uf.viz.core.exception.VizException;
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 25, 2012 bsteffen Initial creation
* Jul 18, 2013 2189 mschenke Added ability to specify font type
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* Jun 25, 2012 bsteffen Initial creation
* Jul 18, 2013 2189 mschenke Added ability to specify font type
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -179,8 +180,8 @@ public abstract class AbstractGraphicsTarget implements IGraphicsTarget {
}
if (bounds != null) {
if (parameters.textStyle == TextStyle.BLANKED
|| parameters.textStyle == TextStyle.BOXED) {
if (parameters.getTextStyles().contains(TextStyle.BOXED)
|| parameters.getTextStyles().contains(TextStyle.BLANKED)) {
maxWidth += 1.0f;
}
bounds.setRect(0, 0, maxWidth, totalHeight);
@ -397,8 +398,14 @@ public abstract class AbstractGraphicsTarget implements IGraphicsTarget {
HorizontalAlignment horizontalAlignment,
VerticalAlignment verticalAlignment, Double rotation)
throws VizException {
drawString(font, text, x, y, z, textStyle, color, horizontalAlignment,
verticalAlignment, rotation, 1.0f, 1.0f);
DrawableString params = new DrawableString(text, color);
params.font = font;
params.setCoordinates(x, y, z);
params.addTextStyle(textStyle);
params.horizontalAlignment = horizontalAlignment;
params.verticallAlignment = verticalAlignment;
params.rotation = rotation != null ? rotation : 0.0;
drawStrings(params);
}
@Override
@ -418,30 +425,12 @@ public abstract class AbstractGraphicsTarget implements IGraphicsTarget {
DrawableString params = new DrawableString(text, colors);
params.font = font;
params.setCoordinates(x, y, z);
params.textStyle = textStyle;
params.addTextStyle(textStyle);
params.horizontalAlignment = horizontalAlignment;
params.verticallAlignment = verticalAlignment;
drawStrings(params);
}
@Override
public void drawString(IFont font, String string, double xPos, double yPos,
double zPos, TextStyle textStyle, RGB color,
HorizontalAlignment horizontalAlignment,
VerticalAlignment verticalAlignment, Double rotation, float alpha,
double magnification) throws VizException {
DrawableString params = new DrawableString(string, color);
params.font = font;
params.setCoordinates(xPos, yPos, zPos);
params.textStyle = textStyle;
params.horizontalAlignment = horizontalAlignment;
params.verticallAlignment = verticalAlignment;
params.rotation = rotation != null ? rotation : 0.0;
params.basics.alpha = alpha;
params.magnification = magnification;
drawStrings(params);
}
@Override
public Rectangle2D getStringBounds(IFont font, String text) {
if (font == null) {
@ -466,7 +455,7 @@ public abstract class AbstractGraphicsTarget implements IGraphicsTarget {
TextStyle style) {
DrawableString params = new DrawableString(text, (RGB[]) null);
params.font = font;
params.textStyle = style;
params.addTextStyle(style);
return getStringsBounds(params);
}

View file

@ -19,6 +19,8 @@
**/
package com.raytheon.uf.viz.core;
import java.util.EnumSet;
import org.eclipse.swt.graphics.RGB;
import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment;
@ -34,9 +36,10 @@ import com.raytheon.uf.viz.core.drawables.IFont;
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Dec 14, 2010 mschenke Initial creation
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* Dec 14, 2010 mschenke Initial creation
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -71,9 +74,12 @@ public class DrawableString extends AbstractDrawableObject {
/** The colors to use for the strings */
private RGB[] colors;
/** The text style to use when drawing */
/** @deprecated use {@link #addTextStyle(TextStyle)} */
@Deprecated
public TextStyle textStyle = TextStyle.NORMAL;
private EnumSet<TextStyle> textStyles = EnumSet.noneOf(TextStyle.class);
/** The color of the shadow created when using TextStyle.DROP_SHADOW */
public RGB shadowColor = new RGB(0, 0, 0);
@ -95,6 +101,7 @@ public class DrawableString extends AbstractDrawableObject {
this.verticallAlignment = that.verticallAlignment;
this.magnification = that.magnification;
this.rotation = that.rotation;
this.textStyles = that.textStyles;
this.textStyle = that.textStyle;
this.shadowColor = that.shadowColor;
this.boxColor = that.boxColor;
@ -184,4 +191,43 @@ public class DrawableString extends AbstractDrawableObject {
return colors;
}
public void addTextStyle(TextStyle textStyle) {
textStyles.add(textStyle);
/*
* This check is the best we can do to support targets that don't know
* about textStyles yet.
*/
if (this.textStyle == null) {
this.textStyle = textStyle;
}
}
public void removeTextStyle(TextStyle textStyle) {
textStyles.remove(textStyle);
/*
* This check is the best we can do to support targets that don't know
* about textStyles yet.
*/
if (textStyle == this.textStyle) {
if (textStyles.isEmpty()) {
this.textStyle = null;
} else {
this.textStyle = textStyles.iterator().next();
}
}
}
public EnumSet<TextStyle> getTextStyles() {
EnumSet<TextStyle> textStyles = this.textStyles.clone();
/*
* Add in textStyle to support any renderables that don't know about
* textStyles yet.
*/
if (textStyle != null) {
textStyles.add(textStyle);
}
return textStyles;
}
}

View file

@ -46,20 +46,22 @@ import com.raytheon.uf.viz.core.exception.VizException;
/**
*
* Base for any graphics target (GL, Swing, AWT, Postscript, etc.)
* Base class for accessing all the drawing functionality available for
* displaying things on a renderable display.
*
* <pre>
*
* SOFTWARE HISTORY
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 7/1/06 chammack Initial Creation.
* 7/19/10 #5952 bkowal Created a new member and method that could
* track any needed updates to the Target extents.
* This functionality is primarily used by the
* Feature Following Zoom Tool at this time.
* 7/18/13 #2189 mschenke Added ability to specify font type
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* Jul 01, 2006 chammack Initial Creation.
* Jul 19, 2010 5952 bkowal Created a new member and method that could
* track any needed updates to the Target extents.
* This functionality is primarily used by the
* Feature Following Zoom Tool at this time.
* Jul 18, 2013 2189 mschenke Added ability to specify font type
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -79,7 +81,14 @@ public interface IGraphicsTarget extends IImagingExtension {
/** Defines text characteristics */
public static enum TextStyle {
NORMAL, BLANKED, BOXED, WORD_WRAP, DROP_SHADOW, OUTLINE, UNDERLINE, OVERLINE, STRIKETHROUGH;
/**
* @deprecated Normal is indicated by adding no other styles to a
* {@link DrawableString}
*/
@Deprecated
NORMAL,
BLANKED, BOXED, WORD_WRAP, DROP_SHADOW, UNDERLINE, OVERLINE, STRIKETHROUGH;
};
/**
@ -858,16 +867,6 @@ public interface IGraphicsTarget extends IImagingExtension {
HorizontalAlignment horizontalAlignment,
VerticalAlignment verticalAlignment) throws VizException;
/**
* Use drawStrings(DrawableString parameters)
*/
@Deprecated
public void drawString(IFont font, String string, double xPos, double yPos,
double zPos, TextStyle textStyle, RGB color,
HorizontalAlignment horizontalAlignment,
VerticalAlignment verticalAlignment, Double rotation, float alpha,
double magnification) throws VizException;
/**
* Use getStringsBounds(DrawableStrings...) functions
*

View file

@ -27,6 +27,7 @@ import com.raytheon.uf.viz.core.DrawableImage;
import com.raytheon.uf.viz.core.DrawableLine;
import com.raytheon.uf.viz.core.DrawableString;
import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle;
import com.raytheon.uf.viz.core.IView;
import com.raytheon.uf.viz.core.PixelCoverage;
import com.raytheon.uf.viz.core.PixelExtent;
@ -49,6 +50,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* parameters, disable colormap interpolation
* by default.
* Jan 14, 2014 2313 bsteffen Add method to draw images.
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
*
* </pre>
@ -76,7 +78,9 @@ public class GeneralCanvasRenderingExtension extends
mapString.magnification = screenString.magnification;
mapString.rotation = screenString.rotation;
mapString.shadowColor = screenString.shadowColor;
mapString.textStyle = screenString.textStyle;
for (TextStyle textStyle : screenString.getTextStyles()) {
mapString.addTextStyle(textStyle);
}
mapString.verticallAlignment = screenString.verticallAlignment;
mapString.basics.alpha = screenString.basics.alpha;
mapString.basics.xOrColors = screenString.basics.xOrColors;

View file

@ -69,8 +69,9 @@ import de.micromata.opengis.kml.v_2_2_0.Vec2;
*
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* Jun 26, 2012 bsteffen Initial creation
* Jan 14, 2013 2313 bsteffen Add image rendering
* Jun 26, 2012 bsteffen Initial creation
* Jan 14, 2013 2313 bsteffen Add image rendering
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -309,7 +310,7 @@ public class KmlCanvasRenderingExtension extends
} else if (VerticalAlignment.MIDDLE == string.verticallAlignment) {
realY -= bounds.getY() / 2;
}
if (string.textStyle == TextStyle.BLANKED) {
if (string.getTextStyles().contains(TextStyle.BLANKED)) {
setColor(graphics, backgroundColor);
graphics.fillRect((int) realX,
(int) (realY + bounds.getY()),

View file

@ -107,9 +107,10 @@ import com.raytheon.uf.viz.remote.graphics.objects.DispatchingWireframeShape;
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Feb 28, 2012 mschenke Initial creation
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* Feb 28, 2012 mschenke Initial creation
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -1147,7 +1148,7 @@ public class DispatchGraphicsTarget extends DispatchingObject<IGraphicsTarget>
DrawableString string = new DrawableString(text, color);
string.setCoordinates(x, y, z);
string.font = font;
string.textStyle = textStyle;
string.addTextStyle(textStyle);
string.horizontalAlignment = horizontalAlignment;
string.verticallAlignment = verticalAlignment;
string.rotation = rotation;
@ -1180,7 +1181,7 @@ public class DispatchGraphicsTarget extends DispatchingObject<IGraphicsTarget>
DrawableString string = new DrawableString(text, color);
string.setCoordinates(x, y, z);
string.font = font;
string.textStyle = textStyle;
string.addTextStyle(textStyle);
string.horizontalAlignment = horizontalAlignment;
string.rotation = rotation;
drawStrings(string);
@ -1212,52 +1213,12 @@ public class DispatchGraphicsTarget extends DispatchingObject<IGraphicsTarget>
DrawableString string = new DrawableString(text, colors);
string.setCoordinates(x, y, z);
string.font = font;
string.textStyle = textStyle;
string.addTextStyle(textStyle);
string.horizontalAlignment = horizontalAlignment;
string.verticallAlignment = verticalAlignment;
drawStrings(string);
}
/**
* @param font
* @param string
* @param xPos
* @param yPos
* @param zPos
* @param textStyle
* @param color
* @param horizontalAlignment
* @param verticalAlignment
* @param rotation
* @param alpha
* @param magnification
* @throws VizException
* @deprecated
* @see com.raytheon.uf.viz.core.IGraphicsTarget#drawString(com.raytheon.uf.viz.core.drawables.IFont,
* java.lang.String, double, double, double,
* com.raytheon.uf.viz.core.IGraphicsTarget.TextStyle,
* org.eclipse.swt.graphics.RGB,
* com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment,
* com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment,
* java.lang.Double, float, double)
*/
public void drawString(IFont font, String text, double x, double y,
double z, TextStyle textStyle, RGB color,
HorizontalAlignment horizontalAlignment,
VerticalAlignment verticalAlignment, Double rotation, float alpha,
double magnification) throws VizException {
DrawableString string = new DrawableString(text, color);
string.setCoordinates(x, y, z);
string.font = font;
string.textStyle = textStyle;
string.horizontalAlignment = horizontalAlignment;
string.verticallAlignment = verticalAlignment;
string.rotation = rotation;
string.basics.alpha = alpha;
string.magnification = magnification;
drawStrings(string);
}
/**
* @param font
* @param text

View file

@ -20,6 +20,7 @@
package com.raytheon.uf.viz.remote.graphics.events.strings;
import java.util.Arrays;
import java.util.EnumSet;
import org.eclipse.swt.graphics.RGB;
@ -40,9 +41,10 @@ import com.raytheon.uf.viz.remote.graphics.objects.DispatchingFont;
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 10, 2012 mschenke Initial creation
* Date Ticket# Engineer Description
* ------------- -------- ----------- --------------------------
* May 10, 2012 mschenke Initial creation
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
@ -72,7 +74,7 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
private VerticalAlignment verticalAlignment;
@DynamicSerializeElement
private TextStyle textStyle;
private EnumSet<TextStyle> textStyles;
@DynamicSerializeElement
private RGB boxColor;
@ -126,8 +128,8 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
if (verticalAlignment != diffEvent.verticalAlignment) {
diffObject.verticalAlignment = diffEvent.verticalAlignment;
}
if (textStyle != diffEvent.textStyle) {
diffObject.textStyle = diffEvent.textStyle;
if (!textStyles.equals(diffEvent.textStyles)) {
diffObject.textStyles = diffEvent.textStyles;
}
return diffObject;
}
@ -164,8 +166,8 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
if (diffObject.text != null) {
text = diffObject.text;
}
if (diffObject.textStyle != null) {
textStyle = diffObject.textStyle;
if (diffObject.textStyles != null) {
textStyles = diffObject.textStyles;
}
}
@ -178,7 +180,7 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
this.xOrColors = string.basics.xOrColors;
this.horizontalAlignment = string.horizontalAlignment;
this.verticalAlignment = string.verticallAlignment;
this.textStyle = string.textStyle;
this.textStyles = string.getTextStyles();
this.magnification = string.magnification;
this.point = new double[] { string.basics.x, string.basics.y,
string.basics.z };
@ -196,7 +198,9 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
ds.shadowColor = shadowColor;
ds.horizontalAlignment = horizontalAlignment;
ds.verticallAlignment = verticalAlignment;
ds.textStyle = textStyle;
for (TextStyle textStyle : textStyles) {
ds.addTextStyle(textStyle);
}
ds.magnification = magnification;
ds.setCoordinates(point[0], point[1], point[2]);
ds.rotation = rotation;
@ -296,16 +300,16 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
/**
* @return the textStyle
*/
public TextStyle getTextStyle() {
return textStyle;
public EnumSet<TextStyle> getTextStyles() {
return textStyles;
}
/**
* @param textStyle
* the textStyle to set
*/
public void setTextStyle(TextStyle textStyle) {
this.textStyle = textStyle;
public void setTextStyle(EnumSet<TextStyle> textStyles) {
this.textStyles = textStyles;
}
/**
@ -435,7 +439,7 @@ public class DrawStringEvent extends AbstractRemoteGraphicsRenderEvent {
return false;
if (!Arrays.equals(text, other.text))
return false;
if (textStyle != other.textStyle)
if (!textStyles.equals(other.textStyles))
return false;
if (verticalAlignment != other.verticalAlignment)
return false;

View file

@ -30,6 +30,7 @@ import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -105,41 +106,45 @@ import com.sun.opengl.util.j2d.TextRenderer;
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 7/1/06 chammack Initial Creation.
* 7/24/07 njensen Colormaps can reload in drawRaster().
* 10/01/07 467 brockwoo Fix for disabling interpolation of plot data textures
* 10/16/07 468 njensen drawString() supports rotation.
* 03/18/08 chammack Improve legend rendering
* 03/12/09 2092 njensen Added offscreen rendering support
* 07/01/10 6146 bkowal The offset that is needed to set the &quot;Y&quot; coordinate
* of the legend text that is drawn is now calculated based on
* the font size rather than being hard-coded.
* 07/08/10 6146 bkowal The font size will now be adjusted automatically by comparing
* the current size of the pane of interest to the overall
* size of the screen.
* 07/19/10 5952 bkowal GLTarget will now check for the existence of updated extents
* before drawing. A method has also been added to notify
* GLTarget of when there are updated extents to load.
* Feb 14, 2013 1616 bsteffen Add option for interpolation of colormap
* parameters, disable colormap
* interpolation by default.
* Apr 18, 2013 1638 mschenke Made string rendering always occur in canvas space so
* strings are always readable despite extent
* May 28, 2013 1638 mschenke Made sure {@link TextStyle#BLANKED} text is drawing correct size
* box around text
* Nov 4, 2013 2492 mschenke Switched colormap drawing to use 1D texture object for alpha mask
* Mar 3, 2014 2804 mschenke Added clipping pane field to only setup if changed
* Date Ticket# Engineer Description
* ------------- -------- ----------- -----------------------------------------
* Jul 01, 2006 chammack Initial Creation.
* Jul 24, 2007 njensen Colormaps can reload in drawRaster().
* Oct 01, 2007 467 brockwoo Fix for disabling interpolation of plot
* data textures
* Oct 16, 2007 468 njensen drawString() supports rotation.
* Mar 18, 2008 chammack Improve legend rendering
* Mar 12, 2009 2092 njensen Added offscreen rendering support
* Jul 01, 2010 6146 bkowal The offset that is needed to set the
* &quot;Y&quot; coordinate of the legend
* text that is drawn is now calculated based
* on the font size rather than being
* hard-coded.
* Jul 08, 2010 6146 bkowal The font size will now be adjusted
* automatically by comparing the current
* size of the pane of interest to the
* overall size of the screen.
* Jul 19, 2010 5952 bkowal GLTarget will now check for the existence
* of updated extents before drawing. A
* method has also been added to notify
* GLTarget of when there are updated extents
* to load.
* Feb 14, 2013 1616 bsteffen Add option for interpolation of colormap
* parameters, disable colormap interpolation
* by default.
* Apr 18, 2013 1638 mschenke Made string rendering always occur in
* canvas space so strings are always
* readable despite extent
* May 28, 2013 1638 mschenke Made sure {@link TextStyle#BLANKED} text
* is drawing correct size box around text
* Nov 04, 2013 2492 mschenke Switched colormap drawing to use 1D
* texture object for alpha mask
* Mar 03, 2014 2804 mschenke Added clipping pane field to only setup
* if changed
* Apr 04, 2014 2920 bsteffen Allow strings to use mulitple styles.
*
* </pre>
*
* TODO The current code draws "flat" objects (circles, arcs, strings, etc...)
* on the plane z = the given z argument. Eventually, these objects should be
* oriented on a plane parallel to the camera's plane at the time they are
* drawn. For strings, we may want the plane they are drawn on to follow the
* camera plane as it moves, so that they are always readable to the user.
*
* @author chammack
* @version 1
*
@ -1871,12 +1876,14 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
// This loop just draws the box or a blank rectangle.
for (DrawableString dString : parameters) {
switch (dString.textStyle) {
case BOXED:
case BLANKED:
case UNDERLINE:
case OVERLINE:
case STRIKETHROUGH:
EnumSet<TextStyle> textStyles = dString.getTextStyles();
boolean boxed = textStyles.contains(TextStyle.BOXED);
boolean blanked = textStyles.contains(TextStyle.BLANKED);
boolean underline = textStyles.contains(TextStyle.UNDERLINE);
boolean overline = textStyles.contains(TextStyle.OVERLINE);
boolean strikethrough = textStyles
.contains(TextStyle.STRIKETHROUGH);
if (boxed || blanked || underline || overline || strikethrough) {
double yPos = dString.basics.y;
VerticalAlignment verticalAlignment = dString.verticallAlignment;
double fontPercentage = this
@ -1927,15 +1934,14 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
double x2 = xy[0] + width + scaleX;
double y2 = (xy[1] - diff) + height + scaleY;
if (dString.textStyle == TextStyle.BOXED
|| dString.textStyle == TextStyle.BLANKED) {
if (boxed || blanked) {
gl.glPolygonMode(GL.GL_BACK, GL.GL_FILL);
if (dString.textStyle == TextStyle.BOXED
&& dString.boxColor != null) {
if (boxed && dString.boxColor != null) {
gl.glColor4d(dString.boxColor.red / 255.0,
dString.boxColor.green / 255.0,
dString.boxColor.blue / 255.0, alpha);
} else {
}
if (blanked) {
gl.glColor4d(backgroundColor.red / 255.0,
backgroundColor.green / 255.0,
backgroundColor.blue / 255.0, alpha);
@ -1944,10 +1950,7 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
gl.glRectd(x1, y2, x2, y1);
}
if (dString.textStyle == TextStyle.BOXED
|| dString.textStyle == TextStyle.UNDERLINE
|| dString.textStyle == TextStyle.OVERLINE
|| dString.textStyle == TextStyle.STRIKETHROUGH) {
if (boxed || underline || overline || strikethrough) {
gl.glPolygonMode(GL.GL_BACK, GL.GL_LINE);
RGB color = dString.getColors()[c];
@ -1958,20 +1961,29 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
color.green / 255.0, color.blue / 255.0,
alpha);
if (dString.textStyle == TextStyle.BOXED) {
if (boxed) {
gl.glLineWidth(2);
gl.glRectd(x1, y2, x2, y1);
} else {
}
if (underline) {
gl.glLineWidth(1);
double percent;
if (dString.textStyle == TextStyle.UNDERLINE) {
percent = .2;
} else if (dString.textStyle == TextStyle.OVERLINE) {
percent = 1.;
} else { // TextStyle.STRIKETHROUGH
percent = .5;
}
double lineY = y1 + (y2 - y1) * percent;
double lineY = y1 + (y2 - y1) * .2;
gl.glBegin(GL.GL_LINES);
gl.glVertex2d(x1, lineY);
gl.glVertex2d(x2, lineY);
gl.glEnd();
}
if (overline) {
gl.glLineWidth(1);
double lineY = y1 + (y2 - y1);
gl.glBegin(GL.GL_LINES);
gl.glVertex2d(x1, lineY);
gl.glVertex2d(x2, lineY);
gl.glEnd();
}
if (strikethrough) {
gl.glLineWidth(1);
double lineY = y1 + (y2 - y1) * .5;
gl.glBegin(GL.GL_LINES);
gl.glVertex2d(x1, lineY);
gl.glVertex2d(x2, lineY);
@ -1991,9 +2003,6 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
gl.glRotated(-dString.rotation, 0.0, 0.0, 1.0);
gl.glTranslated(-rotatedPoint[0], -rotatedPoint[1], 0.0);
}
break;
default:
break;
}
}
@ -2016,7 +2025,7 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
"Font was not prepared using GLTarget");
}
if (dString.rotation != 0.0 && rotatedPoint == null) {
if (dString.rotation != 0.0) {
if (textRenderer != null) {
textRenderer.flush();
}
@ -2097,7 +2106,7 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
color.green / 255.0f, color.blue / 255.0f,
alpha);
}
if (dString.textStyle == TextStyle.WORD_WRAP) {
if (dString.getTextStyles().contains(TextStyle.WORD_WRAP)) {
int i = 0;
int j = -1;
float y = xy[1];
@ -2119,7 +2128,8 @@ public class GLTarget extends AbstractGraphicsTarget implements IGLTarget {
textRenderer.draw3D(string.substring(i), x, y, 0.0f,
scaleY);
} else if (dString.textStyle == TextStyle.DROP_SHADOW) {
} else if (dString.getTextStyles().contains(
TextStyle.DROP_SHADOW)) {
RGB shadowColor = dString.shadowColor;
textRenderer.setColor(shadowColor.red / 255.0f,
shadowColor.green / 255.0f,