aboutsummaryrefslogtreecommitdiff
path: root/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java')
-rw-r--r--src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java64
1 files changed, 30 insertions, 34 deletions
diff --git a/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java b/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java
index 4c4cc182d..fa7b746d1 100644
--- a/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java
+++ b/src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,51 +25,47 @@
package sun.java2d.d3d;
-import java.awt.AlphaComposite;
+import java.awt.Composite;
import sun.font.GlyphList;
import sun.java2d.SunGraphics2D;
-import sun.java2d.SurfaceData;
import sun.java2d.loops.GraphicsPrimitive;
-import sun.java2d.pipe.GlyphListPipe;
-import sun.java2d.pipe.Region;
+import sun.java2d.pipe.BufferedTextPipe;
+import sun.java2d.pipe.RenderQueue;
-public class D3DTextRenderer extends GlyphListPipe {
+class D3DTextRenderer extends BufferedTextPipe {
- protected native void doDrawGlyphList(long pData, long pCtx,
- Region clip, GlyphList gl);
-
- protected void drawGlyphList(SunGraphics2D sg2d, GlyphList gl) {
- AlphaComposite comp = (AlphaComposite)sg2d.composite;
- // We can only get here if the comp is Src or SrcOver (see
- // pipeline validation in D3DSurfaceData, so we force
- // it to be SrcOver.
- if (comp.getRule() != AlphaComposite.SRC_OVER) {
- comp = AlphaComposite.SrcOver;
- }
+ D3DTextRenderer(RenderQueue rq) {
+ super(rq);
+ }
- synchronized (D3DContext.LOCK) {
- SurfaceData dstData = sg2d.surfaceData;
- long pCtx = D3DContext.getContext(dstData, dstData,
- sg2d.getCompClip(), comp,
- null, sg2d.eargb,
- D3DContext.NO_CONTEXT_FLAGS);
+ @Override
+ protected native void drawGlyphList(int numGlyphs, boolean usePositions,
+ boolean subPixPos, boolean rgbOrder,
+ int lcdContrast,
+ float glOrigX, float glOrigY,
+ long[] images, float[] positions);
- doDrawGlyphList(dstData.getNativeOps(), pCtx,
- sg2d.getCompClip(), gl);
- }
+ @Override
+ protected void validateContext(SunGraphics2D sg2d, Composite comp) {
+ // assert rq.lock.isHeldByCurrentThread();
+ D3DSurfaceData d3dDst = (D3DSurfaceData)sg2d.surfaceData;
+ D3DContext.validateContext(d3dDst, d3dDst,
+ sg2d.getCompClip(), comp,
+ null, sg2d.paint, sg2d,
+ D3DContext.NO_CONTEXT_FLAGS);
}
- public D3DTextRenderer traceWrap() {
- return new Tracer();
+ D3DTextRenderer traceWrap() {
+ return new Tracer(this);
}
- public static class Tracer extends D3DTextRenderer {
- @Override
- protected void doDrawGlyphList(long pData, long pCtx,
- Region clip, GlyphList gl)
- {
+ private static class Tracer extends D3DTextRenderer {
+ Tracer(D3DTextRenderer d3dtr) {
+ super(d3dtr.rq);
+ }
+ protected void drawGlyphList(SunGraphics2D sg2d, GlyphList gl) {
GraphicsPrimitive.tracePrimitive("D3DDrawGlyphs");
- super.doDrawGlyphList(pData, pCtx, clip, gl);
+ super.drawGlyphList(sg2d, gl);
}
}
}