APIdia Launch Partner
Top Inners Fields Constructors Methods
sun.java2d.loops

public Class ProcessPath

extends Object
Class Inheritance
Imports
java.awt.geom.Path2D, .PathIterator, .QuadCurve2D, sun.awt.SunHints, java.util.*

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
public abstract static class
private static class
private static class
public static interface
private static class
private static class
private static class
public abstract static class

Field Summary

Modifier and TypeField and Description
private static final float
private static final float
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
public static final float
public static final int
private static final int
private static final float
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
public static ProcessPath.EndSubPathHandler
public static final int
public static final int
private static final int
private static final int
private static final int
private static final int
private static final float
private static final int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static float
CLIP(float a1, float b1, float a2, float b2, double t)

private static int
CLIP(int a1, int b1, int a2, int b2, double t)

private static int
CLIPCLAMP(float LINE_MIN, float LINE_MAX, float[] c, int a1, int b1, int a2, int b2, int a3, int b3)

private static int
CLIPCLAMP(int LINE_MIN, int LINE_MAX, int[] c, int a1, int b1, int a2, int b2, int a3, int b3)

private static boolean
doProcessPath(ProcessPath.ProcessHandler hnd, Path2D.Float p2df, float transXf, float transYf)

private static void
DrawMonotonicCubic(ProcessPath.ProcessHandler hnd, float[] coords, boolean checkBounds, int[] pixelInfo)

private static void
DrawMonotonicQuad(ProcessPath.ProcessHandler hnd, float[] coords, boolean checkBounds, int[] pixelInfo)

public static boolean
drawPath(ProcessPath.DrawHandler dhnd, ProcessPath.EndSubPathHandler endSubPath, Path2D.Float p2df, int transX, int transY)

public static boolean
drawPath(ProcessPath.DrawHandler dhnd, Path2D.Float p2df, int transX, int transY)

public static boolean
fillPath(ProcessPath.DrawHandler dhnd, Path2D.Float p2df, int transX, int transY)

private static void
private static boolean
IS_CLIPPED(int res)

private static void
ProcessCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)

private static void
ProcessFirstMonotonicPartOfCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo, float t)

private static void
ProcessFirstMonotonicPartOfQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo, float t)

private static void
ProcessLine(ProcessPath.ProcessHandler hnd, float x1, float y1, float x2, float y2, int[] pixelInfo)

private static void
ProcessMonotonicCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)

private static void
ProcessMonotonicQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)

private static void
ProcessQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)

private static int
TESTANDCLIP(float LINE_MIN, float LINE_MAX, float[] c, int a1, int b1, int a2, int b2)

private static int
TESTANDCLIP(int LINE_MIN, int LINE_MAX, int[] c, int a1, int b1, int a2, int b2)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CALC_LBNDback to summary
private static final float CALC_LBND
CALC_UBNDback to summary
private static final float CALC_UBND
CRES_INVISIBLEback to summary
private static final int CRES_INVISIBLE
CRES_MAX_CLIPPEDback to summary
private static final int CRES_MAX_CLIPPED
CRES_MIN_CLIPPEDback to summary
private static final int CRES_MIN_CLIPPED
CRES_NOT_CLIPPEDback to summary
private static final int CRES_NOT_CLIPPED
CUB_A_MDP_MULTback to summary
private static final int CUB_A_MDP_MULT
CUB_A_SHIFTback to summary
private static final int CUB_A_SHIFT
CUB_B_MDP_MULTback to summary
private static final int CUB_B_MDP_MULT
CUB_B_SHIFTback to summary
private static final int CUB_B_SHIFT
CUB_C_MDP_MULTback to summary
private static final int CUB_C_MDP_MULT
CUB_C_SHIFTback to summary
private static final int CUB_C_SHIFT
DF_CUB_COUNTback to summary
private static final int DF_CUB_COUNT
DF_CUB_DEC_BNDback to summary
private static final int DF_CUB_DEC_BND
DF_CUB_INC_BNDback to summary
private static final int DF_CUB_INC_BND
DF_CUB_SHIFTback to summary
private static final int DF_CUB_SHIFT
DF_CUB_STEPSback to summary
private static final int DF_CUB_STEPS
DF_MAX_POINTback to summary
private static final int DF_MAX_POINT
DF_QUAD_COUNTback to summary
private static final int DF_QUAD_COUNT
DF_QUAD_DEC_BNDback to summary
private static final int DF_QUAD_DEC_BND
DF_QUAD_INC_BNDback to summary
private static final int DF_QUAD_INC_BND
DF_QUAD_SHIFTback to summary
private static final int DF_QUAD_SHIFT
DF_QUAD_STEPSback to summary
private static final int DF_QUAD_STEPS
EPSFback to summary
public static final float EPSF
EPSFXback to summary
public static final int EPSFX
FWD_PRECback to summary
private static final int FWD_PREC
LOWER_BNDback to summary
private static final float LOWER_BND
LOWER_OUT_BNDback to summary
private static final int LOWER_OUT_BND
MAX_CUB_SIZEback to summary
private static final int MAX_CUB_SIZE
MAX_QUAD_SIZEback to summary
private static final int MAX_QUAD_SIZE
MDP_F_MASKback to summary
private static final int MDP_F_MASK
MDP_HALF_MULTback to summary
private static final int MDP_HALF_MULT
MDP_MULTback to summary
private static final int MDP_MULT
MDP_PRECback to summary
private static final int MDP_PREC
MDP_W_MASKback to summary
private static final int MDP_W_MASK
noopEndSubPathHandlerback to summary
public static ProcessPath.EndSubPathHandler noopEndSubPathHandler
PH_MODE_DRAW_CLIPback to summary
public static final int PH_MODE_DRAW_CLIP
PH_MODE_FILL_CLIPback to summary
public static final int PH_MODE_FILL_CLIP
QUAD_A_MDP_MULTback to summary
private static final int QUAD_A_MDP_MULT
QUAD_A_SHIFTback to summary
private static final int QUAD_A_SHIFT
QUAD_B_MDP_MULTback to summary
private static final int QUAD_B_MDP_MULT
QUAD_B_SHIFTback to summary
private static final int QUAD_B_SHIFT
UPPER_BNDback to summary
private static final float UPPER_BND
UPPER_OUT_BNDback to summary
private static final int UPPER_OUT_BND

Constructor Detail

ProcessPathback to summary
public ProcessPath()

Method Detail

CLIPback to summary
private static float CLIP(float a1, float b1, float a2, float b2, double t)
CLIPback to summary
private static int CLIP(int a1, int b1, int a2, int b2, double t)
CLIPCLAMPback to summary
private static int CLIPCLAMP(float LINE_MIN, float LINE_MAX, float[] c, int a1, int b1, int a2, int b2, int a3, int b3)
CLIPCLAMPback to summary
private static int CLIPCLAMP(int LINE_MIN, int LINE_MAX, int[] c, int a1, int b1, int a2, int b2, int a3, int b3)
doProcessPathback to summary
private static boolean doProcessPath(ProcessPath.ProcessHandler hnd, Path2D.Float p2df, float transXf, float transYf)
DrawMonotonicCubicback to summary
private static void DrawMonotonicCubic(ProcessPath.ProcessHandler hnd, float[] coords, boolean checkBounds, int[] pixelInfo)
DrawMonotonicQuadback to summary
private static void DrawMonotonicQuad(ProcessPath.ProcessHandler hnd, float[] coords, boolean checkBounds, int[] pixelInfo)
drawPathback to summary
public static boolean drawPath(ProcessPath.DrawHandler dhnd, ProcessPath.EndSubPathHandler endSubPath, Path2D.Float p2df, int transX, int transY)
drawPathback to summary
public static boolean drawPath(ProcessPath.DrawHandler dhnd, Path2D.Float p2df, int transX, int transY)
fillPathback to summary
public static boolean fillPath(ProcessPath.DrawHandler dhnd, Path2D.Float p2df, int transX, int transY)
FillPolygonback to summary
private static void FillPolygon(ProcessPath.FillProcessHandler hnd, int fillRule)
IS_CLIPPEDback to summary
private static boolean IS_CLIPPED(int res)
ProcessCubicback to summary
private static void ProcessCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)
ProcessFirstMonotonicPartOfCubicback to summary
private static void ProcessFirstMonotonicPartOfCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo, float t)
ProcessFirstMonotonicPartOfQuadback to summary
private static void ProcessFirstMonotonicPartOfQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo, float t)
ProcessLineback to summary
private static void ProcessLine(ProcessPath.ProcessHandler hnd, float x1, float y1, float x2, float y2, int[] pixelInfo)
ProcessMonotonicCubicback to summary
private static void ProcessMonotonicCubic(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)
ProcessMonotonicQuadback to summary
private static void ProcessMonotonicQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)
ProcessQuadback to summary
private static void ProcessQuad(ProcessPath.ProcessHandler hnd, float[] coords, int[] pixelInfo)
TESTANDCLIPback to summary
private static int TESTANDCLIP(float LINE_MIN, float LINE_MAX, float[] c, int a1, int b1, int a2, int b2)
TESTANDCLIPback to summary
private static int TESTANDCLIP(int LINE_MIN, int LINE_MAX, int[] c, int a1, int b1, int a2, int b2)
sun.java2d.loops back to summary

private Class ProcessPath.ActiveEdgeList

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv ProcessPath.Edge

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public void
public void
insert(ProcessPath.Point pnt, int cy)

public boolean
public void
sort()

Bubble sorting in the ascending order of the linked list.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

headback to summary
pack-priv ProcessPath.Edge head

Constructor Detail

ActiveEdgeListback to summary
private ActiveEdgeList()

Method Detail

deleteback to summary
public void delete(ProcessPath.Edge e)
insertback to summary
public void insert(ProcessPath.Point pnt, int cy)
isEmptyback to summary
public boolean isEmpty()
sortback to summary
public void sort()

Bubble sorting in the ascending order of the linked list. This implementation stops processing the list if there were no changes during the previous pass. We could not use O(N) Radix sort here because in most cases list of edges almost sorted. So, bubble sort (O(N^2)) is working much better. Note, in case of array of edges Shell sort is more efficient.

sun.java2d.loops back to summary

public abstract Class ProcessPath.DrawHandler

extends Object
Class Inheritance
Known Direct Subclasses
sun.java2d.pipe.BufferedRenderPipe.BufferedDrawHandler, sun.java2d.xr.XRRenderer.XRDrawHandler, sun.java2d.loops.PixelWriterDrawHandler

Field Summary

Modifier and TypeField and Description
public int
public int
public float
public int
public float
public int
public float
public int
public float

Constructor Summary

AccessConstructor and Description
public
DrawHandler(int xMin, int yMin, int xMax, int yMax, int strokeControl)

public
DrawHandler(int xMin, int yMin, int xMax, int yMax)

Method Summary

Modifier and TypeMethod and Description
public void
adjustBounds(int bxMin, int byMin, int bxMax, int byMax)

public abstract void
drawLine(int x0, int y0, int x1, int y1)

public abstract void
drawPixel(int x0, int y0)

public abstract void
drawScanline(int x0, int x1, int y0)

public void
setBounds(int xMin, int yMin, int xMax, int yMax)

public void
setBounds(int xMin, int yMin, int xMax, int yMax, int strokeControl)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

strokeControlback to summary
public int strokeControl
xMaxback to summary
public int xMax
xMaxfback to summary
public float xMaxf
xMinback to summary
public int xMin
xMinfback to summary
public float xMinf
yMaxback to summary
public int yMax
yMaxfback to summary
public float yMaxf
yMinback to summary
public int yMin
yMinfback to summary
public float yMinf

Constructor Detail

DrawHandlerback to summary
public DrawHandler(int xMin, int yMin, int xMax, int yMax, int strokeControl)
DrawHandlerback to summary
public DrawHandler(int xMin, int yMin, int xMax, int yMax)

Method Detail

adjustBoundsback to summary
public void adjustBounds(int bxMin, int byMin, int bxMax, int byMax)
drawLineback to summary
public abstract void drawLine(int x0, int y0, int x1, int y1)
drawPixelback to summary
public abstract void drawPixel(int x0, int y0)
drawScanlineback to summary
public abstract void drawScanline(int x0, int x1, int y0)
setBoundsback to summary
public void setBounds(int xMin, int yMin, int xMax, int yMax)
setBoundsback to summary
public void setBounds(int xMin, int yMin, int xMax, int yMax, int strokeControl)
sun.java2d.loops back to summary

private Class ProcessPath.DrawProcessHandler

extends ProcessHandler
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv ProcessPath.EndSubPathHandler
Inherited from sun.java2d.loops.ProcessPath.ProcessHandler:
clipModedhnd

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
pack-priv void
PROCESS_LINE(int fX0, int fY0, int fX1, int fY1, boolean checkBounds, int[] pixelInfo)

pack-priv void
PROCESS_POINT(int fX, int fY, boolean checkBounds, int[] pixelInfo)

public void
public void
processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)

Implements abstract sun.java2d.loops.ProcessPath.ProcessHandler.processFixedLine.

Field Detail

processESPback to summary
pack-priv ProcessPath.EndSubPathHandler processESP

Constructor Detail

DrawProcessHandlerback to summary
public DrawProcessHandler(ProcessPath.DrawHandler dhnd, ProcessPath.EndSubPathHandler processESP)

Method Detail

PROCESS_LINEback to summary
pack-priv void PROCESS_LINE(int fX0, int fY0, int fX1, int fY1, boolean checkBounds, int[] pixelInfo)
PROCESS_POINTback to summary
pack-priv void PROCESS_POINT(int fX, int fY, boolean checkBounds, int[] pixelInfo)
processEndSubPathback to summary
public void processEndSubPath()

Implements sun.java2d.loops.ProcessPath.EndSubPathHandler.processEndSubPath.

processFixedLineback to summary
public void processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)

Implements abstract sun.java2d.loops.ProcessPath.ProcessHandler.processFixedLine.

sun.java2d.loops back to summary

private Class ProcessPath.Edge

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv int
pack-priv int
pack-priv ProcessPath.Edge
pack-priv ProcessPath.Point
p

pack-priv ProcessPath.Edge
pack-priv int
x

Constructor Summary

AccessConstructor and Description
public
Edge(ProcessPath.Point p, int x, int dx, int dir)

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

dirback to summary
pack-priv int dir
dxback to summary
pack-priv int dx
nextback to summary
pack-priv ProcessPath.Edge next
pback to summary
pack-priv ProcessPath.Point p
prevback to summary
pack-priv ProcessPath.Edge prev
xback to summary
pack-priv int x

Constructor Detail

Edgeback to summary
public Edge(ProcessPath.Point p, int x, int dx, int dir)
sun.java2d.loops back to summary

public Interface ProcessPath.EndSubPathHandler

Known Direct Implementers
sun.java2d.loops.ProcessPath.ProcessHandler

Method Summary

Modifier and TypeMethod and Description
public void

Method Detail

processEndSubPathback to summary
public void processEndSubPath()
sun.java2d.loops back to summary

private Class ProcessPath.FillData

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv List<ProcessPath.Point>
public int
public int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
addPoint(int x, int y, boolean lastPoint)

public boolean
public boolean
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

plgPntsback to summary
pack-priv List<ProcessPath.Point> plgPnts
plgYMaxback to summary
public int plgYMax
plgYMinback to summary
public int plgYMin

Constructor Detail

FillDataback to summary
public FillData()

Method Detail

addPointback to summary
public void addPoint(int x, int y, boolean lastPoint)
isEmptyback to summary
public boolean isEmpty()
isEndedback to summary
public boolean isEnded()
setEndedback to summary
public boolean setEnded()
sun.java2d.loops back to summary

private Class ProcessPath.FillProcessHandler

extends ProcessHandler
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv ProcessPath.FillData
Inherited from sun.java2d.loops.ProcessPath.ProcessHandler:
clipModedhnd

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
public void
processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)

Implements abstract sun.java2d.loops.ProcessPath.ProcessHandler.processFixedLine.

Field Detail

fdback to summary
pack-priv ProcessPath.FillData fd

Constructor Detail

FillProcessHandlerback to summary
pack-priv FillProcessHandler(ProcessPath.DrawHandler dhnd)

Method Detail

processEndSubPathback to summary
public void processEndSubPath()

Implements sun.java2d.loops.ProcessPath.EndSubPathHandler.processEndSubPath.

processFixedLineback to summary
public void processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)

Implements abstract sun.java2d.loops.ProcessPath.ProcessHandler.processFixedLine.

sun.java2d.loops back to summary

private Class ProcessPath.Point

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
public ProcessPath.Edge
public boolean
public ProcessPath.Point
public ProcessPath.Point
public ProcessPath.Point
public int
x

public int
y

Constructor Summary

AccessConstructor and Description
public
Point(int x, int y, boolean lastPoint)

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

edgeback to summary
public ProcessPath.Edge edge
lastPointback to summary
public boolean lastPoint
nextback to summary
public ProcessPath.Point next
nextByYback to summary
public ProcessPath.Point nextByY
prevback to summary
public ProcessPath.Point prev
xback to summary
public int x
yback to summary
public int y

Constructor Detail

Pointback to summary
public Point(int x, int y, boolean lastPoint)
sun.java2d.loops back to summary

public abstract Class ProcessPath.ProcessHandler

extends Object
implements EndSubPathHandler
Class Inheritance
All Implemented Interfaces
sun.java2d.loops.ProcessPath.EndSubPathHandler
Known Direct Subclasses
sun.java2d.loops.ProcessPath.DrawProcessHandler, sun.java2d.loops.ProcessPath.FillProcessHandler

Field Summary

Modifier and TypeField and Description
pack-priv int
pack-priv ProcessPath.DrawHandler

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public abstract void
processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

clipModeback to summary
pack-priv int clipMode
dhndback to summary
pack-priv ProcessPath.DrawHandler dhnd

Constructor Detail

ProcessHandlerback to summary
public ProcessHandler(ProcessPath.DrawHandler dhnd, int clipMode)

Method Detail

processFixedLineback to summary
public abstract void processFixedLine(int x1, int y1, int x2, int y2, int[] pixelInfo, boolean checkBounds, boolean endSubPath)