Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
41f4f865
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
41f4f865
编写于
11月 20, 2012
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
b34a517d
af1fe60e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
19 deletion
+40
-19
src/solaris/classes/sun/java2d/xr/XRRenderer.java
src/solaris/classes/sun/java2d/xr/XRRenderer.java
+38
-17
src/solaris/classes/sun/java2d/xr/XRUtils.java
src/solaris/classes/sun/java2d/xr/XRUtils.java
+2
-2
未找到文件。
src/solaris/classes/sun/java2d/xr/XRRenderer.java
浏览文件 @
41f4f865
...
...
@@ -27,7 +27,6 @@ package sun.java2d.xr;
import
java.awt.*
;
import
java.awt.geom.*
;
import
sun.awt.SunToolkit
;
import
sun.java2d.SunGraphics2D
;
import
sun.java2d.loops.*
;
...
...
@@ -39,6 +38,9 @@ import sun.java2d.pipe.SpanIterator;
import
sun.java2d.pipe.ShapeSpanIterator
;
import
sun.java2d.pipe.LoopPipe
;
import
static
sun
.
java2d
.
xr
.
XRUtils
.
clampToShort
;
import
static
sun
.
java2d
.
xr
.
XRUtils
.
clampToUShort
;
/**
* XRender provides only accalerated rectangles. To emulate higher "order"
* geometry we have to pass everything else to DoPath/FillSpans.
...
...
@@ -70,17 +72,16 @@ public class XRRenderer implements PixelDrawPipe, PixelFillPipe, ShapeDrawPipe {
public
void
drawLine
(
SunGraphics2D
sg2d
,
int
x1
,
int
y1
,
int
x2
,
int
y2
)
{
Region
compClip
=
sg2d
.
getCompClip
();
int
transX1
=
x1
+
sg2d
.
transX
;
int
transY1
=
y1
+
sg2d
.
transY
;
int
transX2
=
x2
+
sg2d
.
transX
;
int
transY2
=
y2
+
sg2d
.
transY
;
int
transX1
=
Region
.
clipAdd
(
x1
,
sg2d
.
transX
)
;
int
transY1
=
Region
.
clipAdd
(
y1
,
sg2d
.
transY
)
;
int
transX2
=
Region
.
clipAdd
(
x2
,
sg2d
.
transX
)
;
int
transY2
=
Region
.
clipAdd
(
y2
,
sg2d
.
transY
)
;
// Non clipped fast path
if
(
compClip
.
contains
(
transX1
,
transY1
)
&&
compClip
.
contains
(
transX2
,
transY2
))
{
SunToolkit
.
awtLock
();
try
{
SunToolkit
.
awtLock
();
validateSurface
(
sg2d
);
tileManager
.
addLine
(
transX1
,
transY1
,
transX2
,
transY2
);
tileManager
.
fillMask
((
XRSurfaceData
)
sg2d
.
surfaceData
);
...
...
@@ -115,20 +116,40 @@ public class XRRenderer implements PixelDrawPipe, PixelFillPipe, ShapeDrawPipe {
draw
(
sg2d
,
new
Polygon
(
xpoints
,
ypoints
,
npoints
));
}
public
synchronized
void
fillRect
(
SunGraphics2D
sg2d
,
int
x
,
int
y
,
int
width
,
int
height
)
{
SunToolkit
.
awtLock
();
try
{
validateSurface
(
sg2d
);
public
void
fillRect
(
SunGraphics2D
sg2d
,
int
x
,
int
y
,
int
width
,
int
height
)
{
x
=
Region
.
clipAdd
(
x
,
sg2d
.
transX
);
y
=
Region
.
clipAdd
(
y
,
sg2d
.
transY
);
XRSurfaceData
xrsd
=
(
XRSurfaceData
)
sg2d
.
surfaceData
;
/*
* Limit x/y to signed short, width/height to unsigned short,
* to match the X11 coordinate limits for rectangles.
* Correct width/height in case x/y have been modified by clipping.
*/
if
(
x
>
Short
.
MAX_VALUE
||
y
>
Short
.
MAX_VALUE
)
{
return
;
}
x
+=
sg2d
.
transform
.
getTranslateX
(
);
y
+=
sg2d
.
transform
.
getTranslateY
(
);
int
x2
=
Region
.
dimAdd
(
x
,
width
);
int
y2
=
Region
.
dimAdd
(
y
,
height
);
tileManager
.
addRect
(
x
,
y
,
width
,
height
);
tileManager
.
fillMask
(
xrsd
);
if
(
x2
<
Short
.
MIN_VALUE
||
y2
<
Short
.
MIN_VALUE
)
{
return
;
}
x
=
clampToShort
(
x
);
y
=
clampToShort
(
y
);
width
=
clampToUShort
(
x2
-
x
);
height
=
clampToUShort
(
y2
-
y
);
if
(
width
==
0
||
height
==
0
)
{
return
;
}
SunToolkit
.
awtLock
();
try
{
validateSurface
(
sg2d
);
tileManager
.
addRect
(
x
,
y
,
width
,
height
);
tileManager
.
fillMask
((
XRSurfaceData
)
sg2d
.
surfaceData
);
}
finally
{
SunToolkit
.
awtUnlock
();
}
...
...
src/solaris/classes/sun/java2d/xr/XRUtils.java
浏览文件 @
41f4f865
...
...
@@ -255,7 +255,7 @@ public class XRUtils {
:
(
x
<
Short
.
MIN_VALUE
?
Short
.
MIN_VALUE
:
x
));
}
public
static
shor
t
clampToUShort
(
int
x
)
{
return
(
short
)
(
x
>
65535
?
65535
:
(
x
<
0
)
?
0
:
x
);
public
static
in
t
clampToUShort
(
int
x
)
{
return
(
x
>
65535
?
65535
:
(
x
<
0
)
?
0
:
x
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录