You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2008/01/08 11:55:41 UTC
svn commit: r609928 [1/5] - in /harmony/enhanced/classlib/branches/java6: ./
make/ modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/
modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/
modules/awt/src/main/native/gl/share...
Author: tonywu
Date: Tue Jan 8 02:55:24 2008
New Revision: 609928
URL: http://svn.apache.org/viewvc?rev=609928&view=rev
Log:
Merge updates from classlib trunk@609631 since r601283
Added:
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/XGraphics2D.cpp
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/awt/src/main/native/gl/unix/XGraphics2D.cpp
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/include/
- copied from r609631, harmony/enhanced/classlib/trunk/modules/awt/src/main/native/gl/unix/include/
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/include/org_apache_harmony_awt_gl_linux_XGraphics2D.h
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/awt/src/main/native/gl/unix/include/org_apache_harmony_awt_gl_linux_XGraphics2D.h
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/NewAttributeBands.java
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/NewAttributeBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/NewAttribute.java
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/NewAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/LookupSwitchForm.java
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/LookupSwitchForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/TableSwitchForm.java
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/TableSwitchForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/VariableInstructionForm.java
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/VariableInstructionForm.java
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/shared/
- copied from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/shared/
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/shared/security_copyright.c
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/shared/security_copyright.c
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/unix/
- copied from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/unix/
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/unix/exports.txt
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/unix/exports.txt
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/unix/getUnixSystemRandom.c
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/unix/getUnixSystemRandom.c
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/unix/makefile
- copied unchanged from r609631, harmony/enhanced/classlib/trunk/modules/security/src/main/native/security/unix/makefile
Removed:
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/windows/security_copyright.c
Modified:
harmony/enhanced/classlib/branches/java6/THIRD_PARTY_NOTICES.txt
harmony/enhanced/classlib/branches/java6/make/build-native.xml
harmony/enhanced/classlib/branches/java6/make/depends.properties
harmony/enhanced/classlib/branches/java6/make/depends.xml
harmony/enhanced/classlib/branches/java6/make/properties.xml
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/XGraphics2D.java
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/WinGDIPGraphics2D.java
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/SurfaceDataStructure.cpp
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/blitter.cpp
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/exports.txt
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/makefile
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/GDIBlitter.cpp
harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/WinGDIPGraphics2D.cpp
harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/IIOParam.java
harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/ImageReader.java
harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/org/apache/harmony/x/imageio/internal/nls/messages.properties
harmony/enhanced/classlib/branches/java6/modules/jndi/src/main/java/javax/naming/InitialContext.java
harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/InitialContextAppTest.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/DataInputStream.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/FileDescriptor.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/ObjectOutputStream.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/ObjectStreamClass.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/SocketImpl.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLConnection.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/HashMap.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedHashMap.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/include/unix/jclprots.h
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/include/windows/jclprots.h
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/filedesc.c
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/luniglob.c
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.c
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/OSNetworkSystemLinux.c
harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/makefile
harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/DataInputStreamTest.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileOutputStreamTest.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/ObjectInputStreamTest.java
harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/windows/org/apache/harmony/luni/tests/java/io/WinFileTest.java
harmony/enhanced/classlib/branches/java6/modules/nio/src/main/java/common/org/apache/harmony/nio/internal/SelectorImpl.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttrDefinitionBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayout.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayoutMap.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/ClassBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/CpBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/FileBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/IcBands.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/SegmentConstantPool.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/SegmentUtils.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/Attribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/ByteCode.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPClass.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPDouble.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPFieldRef.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPFloat.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPInteger.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPInterfaceMethodRef.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPLong.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPMember.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPMethodRef.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPNameAndType.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPRef.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPString.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CPUTF8.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/ClassConstantPool.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/CodeAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/ConstantPoolEntry.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/EnclosingMethodAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/LineNumberTableAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/LocalVariableTableAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/OperandManager.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/SourceFileAttribute.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/ByteCodeForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/ByteForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/IMethodRefForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/IincForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/LabelForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/LocalForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/MultiANewArrayForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/NewClassRefForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/NoArgumentForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/ReferenceForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/ShortForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/SwitchForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/bytecode/forms/WideForm.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/BandSetTest.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/BcBandsTest.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodeAttributeTest.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/SegmentUtilsTest.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/bytecode/ClassFileEntryTest.java
harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/bytecode/ConstantPoolTest.java
harmony/enhanced/classlib/branches/java6/modules/print/src/main/java/windows/org/apache/harmony/x/print/WinPrintJob.java
harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/unix/org/apache/harmony/security/provider/crypto/RandomBitsSupplier.java
harmony/enhanced/classlib/branches/java6/modules/security/src/main/native/security/windows/makefile
harmony/enhanced/classlib/branches/java6/modules/swing/src/main/java/common/javax/swing/JList.java
harmony/enhanced/classlib/branches/java6/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicListUI.java
harmony/enhanced/classlib/branches/java6/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTableHeaderUI.java
harmony/enhanced/classlib/branches/java6/modules/swing/src/main/java/common/javax/swing/plaf/basic/BasicTableUI.java
harmony/enhanced/classlib/branches/java6/modules/swing/src/main/java/common/javax/swing/plaf/metal/MetalFileChooserUI.java
harmony/enhanced/classlib/branches/java6/modules/text/src/main/java/java/text/MessageFormat.java
harmony/enhanced/classlib/branches/java6/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/MessageFormatTest.java
Modified: harmony/enhanced/classlib/branches/java6/THIRD_PARTY_NOTICES.txt
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/THIRD_PARTY_NOTICES.txt?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/THIRD_PARTY_NOTICES.txt (original)
+++ harmony/enhanced/classlib/branches/java6/THIRD_PARTY_NOTICES.txt Tue Jan 8 02:55:24 2008
@@ -49,14 +49,14 @@
-License Notice for ICU4J version 3.4
+License Notice for ICU4J version 3.8
====================================
ICU4J license - ICU4J 1.3.1 and later
COPYRIGHT AND PERMISSION NOTICE
-Copyright (c) 1995-2005 International Business Machines Corporation and others
+Copyright (c) 1995-2007 International Business Machines Corporation and others
All rights reserved.
@@ -202,7 +202,10 @@
========================
The file msvcr71.dll is the Microsoft(R) C Runtime Library.
-This file is redistributed from Microsoft(R) Visual Studio 7.1.
+The file msvcp71.dll is the Microsoft Multithreaded Standard C++ Library.
+
+These files are redistributed from Microsoft(R) Visual Studio 7.1 as described in
+the file "redist.txt" available with that product.
@@ -213,7 +216,7 @@
-License Notice for Bouncy Castle version 1.36
+License Notice for Bouncy Castle version 1.38
============================================
Copyright (c) 2000 - 2006 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
Modified: harmony/enhanced/classlib/branches/java6/make/build-native.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/build-native.xml?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/make/build-native.xml (original)
+++ harmony/enhanced/classlib/branches/java6/make/build-native.xml Tue Jan 8 02:55:24 2008
@@ -133,6 +133,7 @@
<target name="layout.windows" if="is.windows" depends="-select-win-deps-x86_64,-select-win-deps-x86">
<!-- workaround until msdll is moved. -->
<copy file="${msvcr.dll}" todir="${hy.jdk}/jre/bin" overwrite="yes" />
+ <copy file="${msvcp.dll}" todir="${hy.jdk}/jre/bin" overwrite="yes" />
</target>
<target name="layout.zos" if="is.zos">
Modified: harmony/enhanced/classlib/branches/java6/make/depends.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/depends.properties?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/make/depends.properties (original)
+++ harmony/enhanced/classlib/branches/java6/make/depends.properties Tue Jan 8 02:55:24 2008
@@ -46,19 +46,31 @@
msvcr.dir.x86=${depends.dir}/libs/windows.x86
msvcr.dll.x86=${msvcr.dir.x86}/msvcr71.dll
-msvcr.dll.file.x86=msvcr71.dll
msvcr.url.x86=file:///${hyenv.SystemRoot}/system32/msvcr71.dll
# This is the md5 hash for the VS2003 version, 7.10.3052.4
msvcr_VS2003.md5.x86=86f1895ae8c5e8b17d99ece768a70732
# This is the md5 hash for the VS2003 SP1 version, 7.10.6030.0
msvcr_VS2003SP1.md5.x86=ca2f560921b7b8be1cf555a5a18d54c3
+msvcp.dir.x86=${depends.dir}/libs/windows.x86
+msvcp.dll.x86=${msvcr.dir.x86}/msvcp71.dll
+msvcp.url.x86=file:///${hyenv.SystemRoot}/system32/msvcp71.dll
+# This is the md5 hash for the VS2003 version, 7.10.3077.0
+msvcp_VS2003.md5.x86=561fa2abb31dfa8fab762145f81667c2
+# This is the md5 hash for the VS2003 SP1 version, 7.10.6030.0
+msvcp_VS2003SP1.md5.x86=a94dc60a90efd7a35c36d971e3ee7470
+
msvcr.dir.x86_64=${depends.dir}/libs/windows.x86_64
msvcr.dll.x86_64=${msvcr.dir.x86_64}/msvcr80.dll
-msvcr.dll.file.x86_64=msvcr80.dll
-#msvcr.url.x86_64=file:///${hyenv.SystemRoot}/system32/msvcr80.dll
msvcr.url.x86_64=file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%208/VC/redist/amd64/Microsoft.VC80.CRT/msvcr80.dll
+# VS2005 version 8.00.50727.42
msvcr.md5.x86_64=465cebd7da2ceaba5e552fc9118a1415
+
+msvcp.dir.x86_64=${depends.dir}/libs/windows.x86_64
+msvcp.dll.x86_64=${msvcp.dir.x86_64}/msvcp80.dll
+msvcp.url.x86_64=file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%208/VC/redist/amd64/Microsoft.VC80.CRT/msvcp80.dll
+# VS2005 version 8.00.50727.42
+msvcp.md5.x86_64=5ae0f01f02a03558da0cbd249e4df263
mx4j.dir=${depends.jars}/mx4j_3.0.2
mx4j.zip=${mx4j.dir}/mx4j.zip
Modified: harmony/enhanced/classlib/branches/java6/make/depends.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/depends.xml?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/make/depends.xml (original)
+++ harmony/enhanced/classlib/branches/java6/make/depends.xml Tue Jan 8 02:55:24 2008
@@ -64,9 +64,14 @@
<property name="msvcr.dir" value="${msvcr.dir.x86}"/>
<property name="msvcr.dll" value="${msvcr.dll.x86}"/>
<property name="msvcr.url" value="${msvcr.url.x86}"/>
- <property name="msvcr.dll.file" value="${msvcr.dll.file.x86}"/>
<property name="msvcr.md5" value="${msvcr_VS2003SP1.md5.x86}"/>
<property name="msvcr.md5.deprecated" value="${msvcr_VS2003.md5.x86}"/>
+
+ <property name="msvcp.dir" value="${msvcp.dir.x86}"/>
+ <property name="msvcp.dll" value="${msvcp.dll.x86}"/>
+ <property name="msvcp.url" value="${msvcp.url.x86}"/>
+ <property name="msvcp.md5" value="${msvcp_VS2003SP1.md5.x86}"/>
+ <property name="msvcp.md5.deprecated" value="${msvcp_VS2003.md5.x86}"/>
</target>
<target name="-select-win-deps-x86_64" if="is.x86_64">
@@ -81,14 +86,19 @@
<property name="msvcr.dir" value="${msvcr.dir.x86_64}"/>
<property name="msvcr.dll" value="${msvcr.dll.x86_64}"/>
<property name="msvcr.url" value="${msvcr.url.x86_64}"/>
- <property name="msvcr.dll.file" value="${msvcr.dll.file.x86_64}"/>
<property name="msvcr.md5" value="${msvcr.md5.x86_64}"/>
+
+ <property name="msvcp.dir" value="${msvcp.dir.x86_64}"/>
+ <property name="msvcp.dll" value="${msvcp.dll.x86_64}"/>
+ <property name="msvcp.url" value="${msvcp.url.x86_64}"/>
+ <property name="msvcp.md5" value="${msvcp.md5.x86_64}"/>
</target>
<target name="-really-check-win" if="is.windows" depends="-select-win-deps-x86_64,-select-win-deps-x86">
<property environment="hyenv" />
<check-one-file src="${msvcr.url}" dest="${msvcr.dll}" />
+ <check-one-file src="${msvcp.url}" dest="${msvcp.dll}" />
<check-one-file src="${awtdeps.url}" dest="${awtdeps.tar}" />
<uptodate property="awtdeps.uptodate"
srcfile="${awtdeps.tar}"
@@ -238,15 +248,24 @@
</target>
<target name="-check-unix-x86_64" if="is.x86_64" unless="is.windows" depends="-check-unix-common">
- <check-one-link src="${lcms.home}/lib/liblcms.so"
+ <condition property="lcms.lib.home" value="${lcms.home}/lib64" else="${lcms.home}/lib">
+ <available file="${lcms.home}/lib64/liblcms.so"/>
+ </condition>
+ <check-one-link src="${lcms.lib.home}/liblcms.so"
dest="depends/libs/build/lcms/liblcms.${hy.platform}"
message="${lcms.msg}" />
- <check-one-link src="${png.home}/lib/libpng.so"
+ <condition property="png.lib.home" value="${png.home}/lib64" else="${png.home}/lib">
+ <available file="${png.home}/lib64/libpng.so"/>
+ </condition>
+ <check-one-link src="${png.lib.home}/libpng.so"
dest="depends/libs/build/png/libpng.${hy.platform}"
message="${png.msg}" />
- <check-one-link src="${jpeg.home}/lib/libjpeg.so"
+ <condition property="jpeg.lib.home" value="${jpeg.home}/lib64" else="${jpeg.home}/lib">
+ <available file="${jpeg.home}/lib64/libjpeg.so"/>
+ </condition>
+ <check-one-link src="${jpeg.lib.home}/libjpeg.so"
dest="depends/libs/build/jpeg/libjpeg.${hy.platform}"
message="${jpeg.msg}" />
</target>
@@ -404,6 +423,12 @@
dest="${msvcr.dll}"
md5="${msvcr.md5}"
md5-deprecated="${msvcr.md5.deprecated}" />
+
+ <mkdir dir="${msvcp.dir}" />
+ <download-one-file src="${msvcp.url}"
+ dest="${msvcp.dll}"
+ md5="${msvcp.md5}"
+ md5-deprecated="${msvcp.md5.deprecated}" />
<mkdir dir="${awtdeps.dir}" />
<download-one-file src="${awtdeps.url}"
Modified: harmony/enhanced/classlib/branches/java6/make/properties.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/properties.xml?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/make/properties.xml (original)
+++ harmony/enhanced/classlib/branches/java6/make/properties.xml Tue Jan 8 02:55:24 2008
@@ -210,6 +210,11 @@
<isset property="is.windows" />
</condition>
+ <condition property="object.suffix" value=".obj">
+ <isset property="is.windows" />
+ </condition>
+ <property name="object.suffix" value=".o" />
+
<condition property="linklib.suffix" value=".lib">
<isset property="is.windows"/>
</condition>
@@ -220,6 +225,10 @@
<isset property="is.macosx"/>
</condition>
<property name="linklib.suffix" value=".so" />
+
+ <condition property="shlib.is.linklib">
+ <equals arg1="${shlib.suffix}" arg2="${linklib.suffix}"/>
+ </condition>
<property name="manifest.suffix" value=".manifest" />
@@ -494,14 +503,23 @@
<!-- To use with -Dtest.case=... option -->
<!-- if ${test.case} is provided in package+class form -->
<!-- it is converted to dir+filename form -->
- <pathconvert property="converted.tc" >
- <path path="${test.case}"/>
- <compositemapper>
- <unpackagemapper from="${basedir}${file.separator}*Test" to="*Test.java" />
- <globmapper from="${basedir}${file.separator}*.java" to="*.java" />
- </compositemapper>
- </pathconvert>
-
+ <macrodef name="convert-test">
+ <attribute name="from"/>
+ <attribute name="to"/>
+ <sequential>
+ <pathconvert property="@{to}" setonempty="no">
+ <path path="${@{from}}"/>
+ <chainedmapper>
+ <filtermapper>
+ <replaceregex pattern="\.java$$"/>
+ </filtermapper>
+ <unpackagemapper from="${basedir}${file.separator}*" to="*.java"/>
+ </chainedmapper>
+ </pathconvert>
+ </sequential>
+ </macrodef>
+ <convert-test from="test.case" to="converted.tc" />
+
<!-- Concatenate several exclude lists into single list -->
<macrodef name="prepare-exclude-list">
<attribute name="moduleName"/>
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/XGraphics2D.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/XGraphics2D.java?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/XGraphics2D.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/unix/org/apache/harmony/awt/gl/linux/XGraphics2D.java Tue Jan 8 02:55:24 2008
@@ -33,6 +33,7 @@
import org.apache.harmony.awt.gl.MultiRectArea;
import org.apache.harmony.awt.gl.Surface;
import org.apache.harmony.awt.gl.Utils;
+import org.apache.harmony.awt.gl.XORComposite;
import org.apache.harmony.awt.gl.font.FontManager;
import org.apache.harmony.awt.gl.font.LinuxNativeFont;
import org.apache.harmony.awt.wtk.NativeWindow;
@@ -61,10 +62,14 @@
boolean nativeLines = true;
boolean nativePaint = true;
boolean transparentColor = false;
- boolean scalingTransform = false;
boolean simpleComposite = true;
+ boolean xor_mode = false;
boolean indexModel = false;
+
+ static{
+ System.loadLibrary("gl");
+ }
public XGraphics2D(long drawable, int tx, int ty, MultiRectArea clip) {
super(tx, ty, clip);
@@ -124,8 +129,8 @@
return draw;
}
- private static final long createGC(long display, long win) {
- return x11.XCreateGC(display, win, 0, 0);
+ private final long createGC(long display, long win) {
+ return createGC(display, win, 0L, 0L);
}
public GraphicsConfiguration getDeviceConfiguration() {
@@ -137,7 +142,7 @@
x += transform.getTranslateX();
y += transform.getTranslateY();
- x11.XCopyArea(display, drawable, drawable, gc, x, y, width, height, dx+x, dy+y);
+ copyArea(display, drawable, drawable, gc, x, y, width, height, dx+x, dy+y);
}
// Caller should free native pointer to rects after using it
@@ -158,18 +163,6 @@
return x11.createXRectangle(rects);
}
- protected void fillMultiRectAreaColor(MultiRectArea mra) {
- if (transparentColor || !simpleComposite) {
- super.fillMultiRectAreaColor(mra);
- } else {
- int vertices[] = mra.rect;
- int nRects = (vertices[0]-1) >> 2;
- X11.XRectangle xRects = createXRects(vertices);
- x11.XFillRectangles(display, drawable, gc, xRects, nRects);
- xRects.free();
- }
- }
-
public void setPaint(Paint paint) {
if (paint == null)
return;
@@ -210,22 +203,8 @@
argb_val = icm.getRGB(pixel);
}
- short xRed = (short) ((argb_val & 0x00FF0000) >> 8);
- short xGreen = (short) (argb_val & 0x0000FF00);
- short xBlue = (short) ((argb_val & 0x000000FF) << 8);
-
- // Create XColor
- X11.XColor xcolor = x11.createXColor(true);
- xcolor.set_red(xRed);
- xcolor.set_green(xGreen);
- xcolor.set_blue(xBlue);
-
- // Allocate cmap cell
- x11.XAllocColor(display, xConfig.xcolormap, xcolor);
- x11.XSetForeground(display, gc, xcolor.get_pixel());
+ setForeground(display, gc, xConfig.xcolormap, argb_val);
- // Cleanup
- xcolor.free();
}
public void dispose() {
@@ -237,11 +216,11 @@
}
if (gc != 0) {
- x11.XFreeGC(display, gc);
+ freeGC(display, gc);
gc = 0;
}
if (imageGC != 0) {
- x11.XFreeGC(display, imageGC);
+ freeGC(display, imageGC);
imageGC = 0;
}
}
@@ -250,15 +229,14 @@
if (mra == null) {
resetXClip(gc);
} else {
- int nRects = mra.getRectCount();
- X11.XRectangle xrects = createXRects(mra.rect);
- x11.XSetClipRectangles(display, gc, 0, 0, xrects, nRects, X11Defs.Unsorted);
- xrects.free();
+ int vertices[] = mra.rect;
+ int numVert = vertices[0] - 1;
+ setClipRectangles(display, gc, 0, 0, vertices, numVert);
}
}
void resetXClip(long gc) {
- x11.XSetClipMask(display, gc, X11Defs.None);
+ setClipMask(display, gc, X11Defs.None);
}
void setXftClip(MultiRectArea mra) {
@@ -287,10 +265,11 @@
}
void setGCFunction(int func) {
- x11.XSetFunction(display, gc, func);
+ setFunction(display, gc, func);
}
+
void setImageGCFunction(int func) { // Note: works with imageGC
- x11.XSetFunction(display, imageGC, func);
+ setFunction(display, imageGC, func);
}
Surface getSurface() {
@@ -306,51 +285,26 @@
return;
}
- X11.XGCValues gcVals = x11.createXGCValues(true);
- gcVals.set_line_width(Math.round(bs.getLineWidth()));
- gcVals.set_join_style(bs.getLineJoin());
- gcVals.set_cap_style(bs.getEndCap()+1);
- gcVals.set_dash_offset(Math.round(bs.getDashPhase()));
-
- int n = 0;
-
- if (bs.getDashArray() == null) {
- gcVals.set_line_style(X11Defs.LineSolid);
- gcVals.set_dashes((byte)1);
- } else {
- gcVals.set_line_style(X11Defs.LineOnOffDash);
-
- n = bs.getDashArray().length;
+ int line_width = (int)(bs.getLineWidth() + 0.5f);
+ int join_style = bs.getLineJoin();
+ int cap_style = bs.getEndCap()+1;
+ int dash_offset = (int)(bs.getDashPhase() + 0.5f);
+
+ float fdashes[] = bs.getDashArray();
+
+ int len = 0;
+ byte bdashes[] = null;
+
+ if(fdashes != null){
+ len = fdashes.length;
+ bdashes = new byte[len];
- if (n == 1) {
- gcVals.set_dashes((byte)Math.round(bs.getDashArray()[0]));
- } else {
- long dashList = Utils.memaccess.malloc(n);
- float[] dashArray = bs.getDashArray();
- for (int i = 0; i < n; i++) {
- Utils.memaccess.setByte(dashList+i, (byte) Math.round(dashArray[i]));
- }
- x11.XSetDashes(
- display,
- gc,
- Math.round(bs.getDashPhase()),
- dashList,
- bs.getDashArray().length
- );
- Utils.memaccess.free(dashList);
+ for(int i = 0; i < len; i++){
+ bdashes[i] = (byte)(fdashes[i] + 0.5f);
}
}
- x11.XChangeGC(
- display,
- gc,
- X11Defs.GCLineWidth | X11Defs.GCJoinStyle |
- X11Defs.GCCapStyle | X11Defs.GCDashOffset |
- X11Defs.GCLineStyle | (n==1 ? X11Defs.GCDashList : 0),
- gcVals
- );
-
- gcVals.free();
+ setStroke(display, gc, line_width, join_style, cap_style, dash_offset, bdashes, len);
nativeLines = true;
} else {
@@ -360,173 +314,545 @@
public void setTransform(AffineTransform transform) {
super.setTransform(transform);
+ }
+
+ public void drawLine(int x1, int y1, int x2, int y2) {
+ if (
+ nativeLines && nativePaint &&
+ !transparentColor && simpleComposite
+ ) {
+ int type = transform.getType();
+ if (type < 2) {
+
+ int tx = (int) transform.getTranslateX();
+ int ty = (int) transform.getTranslateY();
+
+ x1 += tx;
+ y1 += ty;
+ x2 += tx;
+ y2 += ty;
+
+ drawLine(display, drawable, gc, x1, y1, x2, y2);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawLine(display, drawable, gc, x1, y1, x2, y2);
+ xSetForeground(fgColor.getRGB());
+ }
+ } else {
+
+ float points[] = new float[]{x1, y1, x2, y2};
+ transform.transform(points, 0, points, 0, 2);
- if ((transform.getType() & AffineTransform.TYPE_MASK_SCALE) != 0) {
- scalingTransform = true;
+ x1 = (int)points[0];
+ y1 = (int)points[1];
+ x2 = (int)points[2];
+ y2 = (int)points[3];
+
+ drawLine(display, drawable, gc, x1, y1, x2, y2);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawLine(display, drawable, gc, x1, y1, x2, y2);
+ xSetForeground(fgColor.getRGB());
+ }
+ }
} else {
- scalingTransform = false;
+ super.drawLine(x1, y1, x2, y2);
}
}
- public void drawLine(int x1, int y1, int x2, int y2) {
+ @Override
+ public void drawPolyline(int[] xpoints, int[] ypoints, int npoints) {
if (
nativeLines && nativePaint &&
- !scalingTransform && !transparentColor &&
- simpleComposite
+ !transparentColor && simpleComposite
) {
- float points[] = new float[]{x1, y1, x2, y2};
- transform.transform(points, 0, points, 0, 2);
- x11.XDrawLine(
- display,
- drawable,
- gc,
- (int) points[0], (int) points[1],
- (int) points[2], (int) points[3]
- );
+
+ short points[] = new short[npoints << 1];
+
+ int type = transform.getType();
+ if (type < 2) {
+
+ int tx = (int) transform.getTranslateX();
+ int ty = (int) transform.getTranslateY();
+
+ for (int idx = 0, i = 0; i < npoints; i++){
+ points[idx++] = (short)(xpoints[i] + tx);
+ points[idx++] = (short)(ypoints[i] + ty);
+ }
+
+ drawLines(display, drawable, gc, points, points.length);
+ } else {
+
+ float fpoints[] = new float[npoints << 1];
+
+ for (int idx = 0, i = 0; i < npoints; i++){
+ fpoints[idx++] = xpoints[i];
+ fpoints[idx++] = ypoints[i];
+ }
+
+ transform.transform(fpoints, 0, fpoints, 0, npoints);
+ for (int i = 0; i < fpoints.length; i++)
+ points[i] = (short)(fpoints[i] + 0.5f);
+
+ drawLines(display, drawable, gc, points, points.length);
+ }
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawLines(display, drawable, gc, points, points.length);
+ xSetForeground(fgColor.getRGB());
+ }
} else {
- super.drawLine(x1, y1, x2, y2);
+ super.drawPolyline(xpoints, ypoints, npoints);
}
}
+ @Override
public void drawPolygon(int[] xpoints, int[] ypoints, int npoints) {
if (
nativeLines && nativePaint &&
- !scalingTransform && !transparentColor &&
- simpleComposite
+ !transparentColor && simpleComposite
) {
- float points[] = new float[npoints<<1];
- int i;
- for (i = 0; i < npoints; i++) {
- points[i<<1] = xpoints[i];
- points[(i<<1) + 1] = ypoints[i];
- }
- transform.transform(points, 0, points, 0, npoints);
-
- // Create XPoint's
- long xPoints = Utils.memaccess.malloc((npoints+1) << 2); // sizeof XPoint = 4
- long ptr = xPoints;
-
- for (i = 0; i < npoints; i++) {
- Utils.memaccess.setShort(ptr, (short) points[i<<1]);
- Utils.memaccess.setShort(ptr+2, (short) points[(i<<1)+1]);
- ptr += 4; // sizeof XPoint = 4
- }
- // Add first point again to close path
- Utils.memaccess.setShort(ptr, (short) points[0]);
- Utils.memaccess.setShort(ptr+2, (short) points[1]);
- x11.XDrawLines(
- display,
- drawable,
- gc,
- xPoints,
- npoints+1,
- X11Defs.CoordModeOrigin
- );
+ short points[] = new short[(npoints << 1) + 2];
- Utils.memaccess.free(xPoints);
+ int type = transform.getType();
+ if (type < 2) {
+
+ int tx = (int) transform.getTranslateX();
+ int ty = (int) transform.getTranslateY();
+
+ int idx = 0;
+ for (int i = 0; i < npoints; i++){
+ points[idx++] = (short)(xpoints[i] + tx);
+ points[idx++] = (short)(ypoints[i] + ty);
+ }
+ points[idx++] = (short)(xpoints[0] + tx);
+ points[idx++] = (short)(ypoints[0] + ty);
+
+ drawLines(display, drawable, gc, points, points.length);
+ } else {
+
+ float fpoints[] = new float[npoints << 1];
+
+ for (int idx = 0, i = 0; i < npoints; i++){
+ fpoints[idx++] = xpoints[i];
+ fpoints[idx++] = ypoints[i];
+ }
+
+ transform.transform(fpoints, 0, fpoints, 0, npoints);
+ int i = 0;
+ for (; i < fpoints.length; i++)
+ points[i] = (short)(fpoints[i] + 0.5f);
+ points[i++] = (short)(fpoints[0] + 0.5f);
+ points[i++] = (short)(fpoints[1] + 0.5f);
+
+ drawLines(display, drawable, gc, points, points.length);
+ }
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawLines(display, drawable, gc, points, points.length);
+ xSetForeground(fgColor.getRGB());
+ }
} else {
super.drawPolygon(xpoints, ypoints, npoints);
}
}
+ @Override
public void drawPolygon(Polygon polygon) {
drawPolygon(polygon.xpoints, polygon.ypoints, polygon.npoints);
}
- public void drawPolyline(int[] xpoints, int[] ypoints, int npoints) {
+ @Override
+ public void drawRect(int x, int y, int width, int height) {
if (
nativeLines && nativePaint &&
- !scalingTransform && !transparentColor &&
- simpleComposite
+ !transparentColor && simpleComposite
) {
- float points[] = new float[npoints<<1];
- for (int i = 0; i < npoints; i++) {
- points[i<<1] = xpoints[i];
- points[(i<<1) + 1] = ypoints[i];
- }
- transform.transform(points, 0, points, 0, npoints);
+ int type = transform.getType();
+ if (type < 2) {
+ x += (int)transform.getTranslateX();
+ y += (int)transform.getTranslateY();
+ drawRectangle(display, drawable, gc, x, y, width, height);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawRectangle(display, drawable, gc, x, y, width, height);
+ xSetForeground(fgColor.getRGB());
+ }
- // Create XPoint's
- long xPoints = Utils.memaccess.malloc((npoints) << 2); // sizeof XPoint = 4
- long ptr = xPoints;
+ } else if (type < 7) {
+ float points[] = new float[]{x, y, x + width - 1, y + height - 1};
+ transform.transform(points, 0, points, 0, 2);
+
+ if (points[0] < points[2]){
+ x = (int)points[0];
+ width = (int)(points[2] - points[0]) + 1;
+ } else {
+ x = (int)points[2];
+ width = (int)(points[0] - points[2]) + 1;
+ }
- for (int i = 0; i < npoints; i++) {
- Utils.memaccess.setShort(ptr, (short) points[i<<1]);
- Utils.memaccess.setShort(ptr+2, (short) points[(i<<1)+1]);
- ptr += 4; // sizeof XPoint = 4
- }
+ if (points[1] < points[3]){
+ y = (int)points[1];
+ height = (int)(points[3] - points[1]) + 1;
+ } else {
+ y = (int)points[3];
+ height = (int)(points[1] - points[3]) + 1;
+ }
- x11.XDrawLines(
- display,
- drawable,
- gc,
- xPoints,
- npoints,
- X11Defs.CoordModeOrigin
- );
+ drawRectangle(display, drawable, gc, x, y, width, height);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawRectangle(display, drawable, gc, x, y, width, height);
+ xSetForeground(fgColor.getRGB());
+ }
+ } else {
+ float fpoints[] = new float[]{x, y, x + width - 1, y, x + width - 1, y + height - 1, x, y + height - 1};
+ transform.transform(fpoints, 0, fpoints, 0, 4);
+
+ short points[] = new short[fpoints.length + 2];
- Utils.memaccess.free(xPoints);
+ int i = 0;
+ for (; i < fpoints.length; i++)
+ points[i] = (short)(fpoints[i] + 0.5f);
+ points[i++] = (short)(fpoints[0] + 0.5f);
+ points[i++] = (short)(fpoints[1] + 0.5f);
+
+ drawLines(display, drawable, gc, points, points.length);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawLines(display, drawable, gc, points, points.length);
+ xSetForeground(fgColor.getRGB());
+ }
+ }
} else {
- super.drawPolyline(xpoints, ypoints, npoints);
+ super.drawRect(x, y, width, height);
}
}
- public void drawRect(int x, int y, int width, int height) {
+ @Override
+ public void drawArc(int x, int y, int width, int height, int sa, int ea) {
if (
nativeLines && nativePaint &&
!transparentColor && simpleComposite &&
- (transform.getType() & AffineTransform.TYPE_TRANSLATION) != 0
+ transform.getType() < 2
) {
- Point2D rectOrig = new Point2D.Float(x, y);
- transform.transform(rectOrig, rectOrig);
- x11.XDrawRectangle(
+ x += (int)transform.getTranslateX();
+ y += (int)transform.getTranslateY();
+ drawArc(
display,
drawable,
gc,
- (int) rectOrig.getX(), (int) rectOrig.getY(),
- width, height
+ x, y,
+ width, height,
+ sa << 6, ea << 6
);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ drawArc(
+ display,
+ drawable,
+ gc,
+ x, y,
+ width, height,
+ sa << 6, ea << 6
+ );
+ xSetForeground(fgColor.getRGB());
+ }
} else {
- super.drawRect(x, y, width, height);
+ super.drawArc(x, y, width, height, sa, ea);
}
}
- public void drawArc(int x, int y, int width, int height, int sa, int ea) {
+ @Override
+ public void drawOval(int x, int y, int width, int height) {
+ drawArc(x, y, width, height, 0, 360);
+ }
+
+ @Override
+ public void fillRect(int x, int y, int width, int height) {
+ if (
+ nativeLines && nativePaint &&
+ !transparentColor && simpleComposite
+ ) {
+ int type = transform.getType();
+ if (type < 2) {
+
+ x += (int)transform.getTranslateX();
+ y += (int)transform.getTranslateY();
+ fillRectangle(display, drawable, gc, x, y, width, height);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillRectangle(display, drawable, gc, x, y, width, height);
+ xSetForeground(fgColor.getRGB());
+ }
+
+ } else if (type < 7) {
+ float points[] = new float[]{x, y, x + width - 1, y + height - 1};
+ transform.transform(points, 0, points, 0, 2);
+
+ if (points[0] < points[2]){
+ x = (int)points[0];
+ width = (int)(points[2] - points[0]) + 1;
+ } else {
+ x = (int)points[2];
+ width = (int)(points[0] - points[2]) + 1;
+ }
+
+ if (points[1] < points[3]){
+ y = (int)points[1];
+ height = (int)(points[3] - points[1]) + 1;
+ } else {
+ y = (int)points[3];
+ height = (int)(points[1] - points[3]) + 1;
+ }
+
+ fillRectangle(display, drawable, gc, x, y, width, height);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillRectangle(display, drawable, gc, x, y, width, height);
+ xSetForeground(fgColor.getRGB());
+ }
+ } else {
+ float points[] = new float[]{x, y, x + width - 1, y, x + width - 1, y + height - 1, x, y + height - 1};
+ transform.transform(points, 0, points, 0, 4);
+
+ short spoints[] = new short[points.length];
+ for (int i = 0; i < points.length; i++)
+ spoints[i] = (short)(points[i] + 0.5f);
+ fillPolygon(display, drawable, gc, spoints, spoints.length);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillPolygon(display, drawable, gc, spoints, spoints.length);
+ xSetForeground(fgColor.getRGB());
+ }
+ }
+ } else {
+ super.fill(new Rectangle(x, y, width, height));
+ }
+ }
+
+ protected void fillMultiRectAreaColor(MultiRectArea mra) {
+ if (
+ nativeLines && nativePaint &&
+ !transparentColor && simpleComposite
+ ) {
+ int vertices[] = mra.rect;
+ int numVert = vertices[0] - 1;
+ fillRectangles(display, drawable, gc, vertices, numVert);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillRectangles(display, drawable, gc, vertices, numVert);
+ xSetForeground(fgColor.getRGB());
+ }
+ } else {
+ super.fillMultiRectAreaColor(mra);
+ }
+ }
+
+ @Override
+ public void fillPolygon(Polygon p) {
+ fillPolygon(p.xpoints, p.ypoints, p.npoints);
+ }
+
+ @Override
+ public void fillPolygon(int[] xpoints, int[] ypoints, int npoints ) {
+ if (
+ nativeLines && nativePaint &&
+ !transparentColor && simpleComposite
+ ) {
+
+ short points[] = new short[npoints << 1];
+
+ int type = transform.getType();
+ if (type < 2) {
+
+ int tx = (int) transform.getTranslateX();
+ int ty = (int) transform.getTranslateY();
+
+ for (int idx = 0, i = 0; i < npoints; i++){
+ points[idx++] = (short)(xpoints[i] + tx);
+ points[idx++] = (short)(ypoints[i] + ty);
+ }
+
+ fillPolygon(display, drawable, gc, points, points.length);
+ } else {
+
+ float fpoints[] = new float[npoints << 1];
+
+ for (int idx = 0, i = 0; i < npoints; i++){
+ fpoints[idx++] = xpoints[i];
+ fpoints[idx++] = ypoints[i];
+
+ }
+ transform.transform(fpoints, 0, fpoints, 0, npoints);
+
+ for (int i = 0; i < fpoints.length; i++)
+ points[i] = (short)(fpoints[i] + 0.5f);
+
+ fillPolygon(display, drawable, gc, points, points.length);
+ }
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillPolygon(display, drawable, gc, points, points.length);
+ xSetForeground(fgColor.getRGB());
+ }
+ } else {
+ super.fillPolygon(xpoints, ypoints, npoints);
+ }
+ }
+
+ @Override
+ public void fillArc(int x, int y, int width, int height, int sa, int ea) {
if (
nativeLines && nativePaint &&
!transparentColor && simpleComposite &&
- (transform.getType() & AffineTransform.TYPE_TRANSLATION) != 0
+ transform.getType() < 2
) {
- Point2D orig = new Point2D.Float(x, y);
- transform.transform(orig, orig);
- x11.XDrawArc(
+ x += (int)transform.getTranslateX();
+ y += (int)transform.getTranslateY();
+ fillArc(
display,
drawable,
gc,
- (int) orig.getX(), (int) orig.getY(),
+ x, y,
width, height,
sa << 6, ea << 6
);
+
+ if (xor_mode) {
+ XORComposite xor = (XORComposite)composite;
+ Color xorcolor = xor.getXORColor();
+ xSetForeground(xorcolor.getRGB());
+ fillArc(
+ display,
+ drawable,
+ gc,
+ x, y,
+ width, height,
+ sa << 6, ea << 6
+ );
+ xSetForeground(fgColor.getRGB());
+ }
} else {
- super.drawArc(x, y, width, height, sa, ea);
+ super.fillArc(x, y, width, height, sa, ea);
}
}
- public void drawOval(int x, int y, int width, int height) {
- drawArc(x, y, width, height, 0, 360);
+ @Override
+ public void fillOval(int x, int y, int width, int height) {
+ fillArc(x, y, width, height, 0, 360);
+ }
+
+ @Override
+ public void setXORMode(Color color) {
+ super.setXORMode(color);
+ setFunction(display, gc, X11Defs.GXxor);
+ xor_mode = true;
+ simpleComposite = true;
+ }
+
+ @Override
+ public void setPaintMode() {
+ setComposite(AlphaComposite.SrcOver);
}
public void setComposite(Composite composite) {
super.setComposite(composite);
+ xor_mode = false;
if (composite instanceof AlphaComposite) {
AlphaComposite acomp = (AlphaComposite) composite;
- if (acomp.getRule() == AlphaComposite.SRC) {
- simpleComposite = true;
- } else if (acomp.getAlpha() != 1.0f) {
- simpleComposite = false;
- } else {
- simpleComposite = true;
+ int rule = acomp.getRule();
+ float srca = acomp.getAlpha();
+
+ switch(rule){
+ case AlphaComposite.CLEAR:
+ case AlphaComposite.SRC_OUT:
+ setFunction(display, gc, X11Defs.GXclear);
+ simpleComposite = true;
+ break;
+
+ case AlphaComposite.SRC:
+ case AlphaComposite.SRC_IN:
+ if(srca == 0.0f) setFunction(display, gc, X11Defs.GXclear);
+ else setFunction(display, gc, X11Defs.GXcopy);
+ simpleComposite = true;
+ break;
+
+ case AlphaComposite.DST:
+ case AlphaComposite.DST_OVER:
+ setFunction(display, gc, X11Defs.GXnoop);
+ simpleComposite = true;
+ break;
+
+ case AlphaComposite.SRC_ATOP:
+ case AlphaComposite.SRC_OVER:
+ setFunction(display, gc, X11Defs.GXcopy);
+ if(srca == 1.0f){
+ simpleComposite = true;
+ }else{
+ simpleComposite = false;
+ }
+ break;
+
+ case AlphaComposite.DST_IN:
+ case AlphaComposite.DST_ATOP:
+ if(srca != 0.0f){
+ setFunction(display, gc, X11Defs.GXnoop);
+ } else {
+ setFunction(display, gc, X11Defs.GXclear);
+ }
+ simpleComposite = true;
+ break;
+
+ case AlphaComposite.DST_OUT:
+ case AlphaComposite.XOR:
+ if(srca != 1.0f){
+ setFunction(display, gc, X11Defs.GXnoop);
+ } else {
+ setFunction(display, gc, X11Defs.GXclear);
+ }
+ simpleComposite = true;
+ break;
}
} else {
simpleComposite = false;
@@ -589,4 +915,41 @@
this.fill(sh);
}
+
+ // Native methods
+
+ // GC methods
+ // Creating and Releasing
+ private native long createGC(long display, long drawable, long valuemask, long values);
+ private native int freeGC(long display, long gc);
+
+ // Setting GC function
+ private native int setFunction(long display, long gc, int func);
+
+ // Stroke (line attributes)
+ private native int setStroke(long display, long gc, int line_width, int join_style, int cap_style, int dash_offset, byte dashes[], int len);
+
+ // Foreground
+ private native int setForeground(long display, long gc, long colormap, int argb_val);
+
+ // Clipping
+ private native int setClipMask(long display, long gc, long pixmap);
+ private native int setClipRectangles(long display, long gc, int clip_x_origin, int clip_y_origin, int clip_rects[], int num_rects);
+
+ // Drawing methods
+
+ private native int drawArc(long display, long drawable, long gc, int x, int y, int width, int height, int startAngle, int angle);
+ private native int drawLine(long display, long drawable, long gc, int x1, int y1, int x2, int y2);
+ private native int drawLines(long display, long drawable, long gc, short points[], int numPoints);
+ private native int drawRectangle(long display, long drawable, long gc, int x, int y, int width, int height);
+
+ // Filling methods
+
+ private native int fillRectangles(long display, long drawable, long gc, int vertices[], int numVert);
+ private native int fillRectangle(long display, long drawable, long gc, int x, int y, int width, int height);
+ private native int fillPolygon(long display, long drawable, long gc, short points[], int numPoints);
+ private native int fillArc(long display, long drawable, long gc, int x, int y, int width, int height, int startAngle, int angle);
+
+ private native int copyArea(long display, long src, long dst, long gc, int src_x, int src_y, int width, int height, int dst_x, int dst_y);
+
}
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/WinGDIPGraphics2D.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/WinGDIPGraphics2D.java?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/WinGDIPGraphics2D.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/windows/org/apache/harmony/awt/gl/windows/WinGDIPGraphics2D.java Tue Jan 8 02:55:24 2008
@@ -55,6 +55,7 @@
private NativeWindow nw = null;
private long hdc = 0;
private long gi = 0;
+ private char pageUnit = 1;
private final Dimension size;
@@ -155,6 +156,8 @@
*/
public WinGDIPGraphics2D(final long hdc, final char pageUnit,
final int width, final int height) {
+ this.hdc = hdc;
+ this.pageUnit = pageUnit;
size = new Dimension(width, height);
gi = createGraphicsInfoFor(hdc, pageUnit);
@@ -190,12 +193,18 @@
System.err.println("WinGDIPGraphics2D.create()"); //$NON-NLS-1$
}
- WinGDIPGraphics2D res = null;
- if (img == null) {
- res = new WinGDIPGraphics2D(nw, origPoint.x, origPoint.y, size.width, size.height);
- } else {
+ final WinGDIPGraphics2D res;
+
+ if (img != null) {
res = new WinGDIPGraphics2D(img, gi, size.width, size.height);
+ } else if (nw != null) {
+ res = new WinGDIPGraphics2D(nw, origPoint.x, origPoint.y,
+ size.width, size.height);
+ } else {
+ res = new WinGDIPGraphics2D(getDC(), pageUnit, size.width,
+ size.height);
}
+
copyInternalFields(res);
return res;
}
@@ -203,10 +212,11 @@
@Override
public GraphicsConfiguration getDeviceConfiguration() {
if (config == null) {
- if (img == null) {
+ if (nw != null) {
config = new WinGraphicsConfiguration(nw.getId(), getDC());
- } else {
- long hwnd = img.getHWND();
+ } else if (img != null) {
+ final long hwnd = img.getHWND();
+
if(hwnd != 0){
config = new WinGraphicsConfiguration(hwnd, getDC());
}else{
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/SurfaceDataStructure.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/SurfaceDataStructure.cpp?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/SurfaceDataStructure.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/SurfaceDataStructure.cpp Tue Jan 8 02:55:24 2008
@@ -99,17 +99,17 @@
case INT_ARGB:
{
- unsigned char *src, *s, *dst, *d, sa;
+ if(alphaPre){
+ unsigned char *src, *s, *dst, *d, sa;
- src_stride = srcSurf->scanline_stride_byte;
- dst_stride = srcSurf->width << 2;
+ src_stride = srcSurf->scanline_stride_byte;
+ dst_stride = srcSurf->width << 2;
- src_offset = y * src_stride + ((x + w) << 2) - 1;
- dst_offset = y * dst_stride + ((x + w) << 2) - 1;
- src = (unsigned char *)srcDataPtr + src_offset;
- dst = (unsigned char *)bmpDataPtr + dst_offset;
+ src_offset = y * src_stride + ((x + w) << 2) - 1;
+ dst_offset = y * dst_stride + ((x + w) << 2) - 1;
+ src = (unsigned char *)srcDataPtr + src_offset;
+ dst = (unsigned char *)bmpDataPtr + dst_offset;
- if(alphaPre){
for(int _y = h; _y > 0; _y--, src += src_stride, dst += dst_stride){
s = src;
d = dst;
@@ -129,28 +129,23 @@
}
}
}
+
srcSurf->isAlphaPre = true;
}else{
- for(int _y = h; _y > 0; _y--, src += src_stride, dst += dst_stride){
- s = src;
- d = dst;
+ unsigned int *src, *dst;
- for(int _x = w; _x > 0; _x--){
- sa = *s--;
- if(sa == 0){
- *d-- = 0;
- *d-- = 0;
- *d-- = 0;
- *d-- = 0;
- s -= 3;
- }else{
- *d-- = sa;
- *d-- = MUL(sa, *s--);
- *d-- = MUL(sa, *s--);
- *d-- = MUL(sa, *s--);
- }
- }
+ src_stride = srcSurf->scanline_stride;
+ dst_stride = srcSurf->width;
+
+ src_offset = y * src_stride + x;
+ dst_offset = y * dst_stride + x;
+ src = (unsigned int *)srcDataPtr + src_offset;
+ dst = (unsigned int *)bmpDataPtr + dst_offset;
+
+ for(int _y = 0; _y < h; _y++, src += src_stride, dst += dst_stride){
+ memcpy(dst, src, w * sizeof(int));
}
+
srcSurf->isAlphaPre = false;
}
}
@@ -303,17 +298,10 @@
g = *s--;
b = *s--;
a = *s--;
- if(a == 0){
- *d-- = 0;
- *d-- = 0;
- *d-- = 0;
- *d-- = 0;
- }else{
- *d-- = a;
- *d-- = r;
- *d-- = g;
- *d-- = b;
- }
+ *d-- = a;
+ *d-- = r;
+ *d-- = g;
+ *d-- = b;
}
}
srcSurf->isAlphaPre = false;
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/blitter.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/blitter.cpp?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/blitter.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/shared/blitter.cpp Tue Jan 8 02:55:24 2008
@@ -819,10 +819,10 @@
r = (unsigned char)((xorcolor >> 16) & 0xff);
g = (unsigned char)((xorcolor >> 8) & 0xff);
b = (unsigned char)(xorcolor & 0xff);
-
for(int _sy = srcY, _dy = dstY, maxY = srcY + height; _sy < maxY; _sy++, _dy++){
for(int _sx = srcX, _dx = dstX, maxX = srcX + width; _sx < maxX; _sx++, _dx++){
getRGB(_sx, _sy, srcStruct, srcData, sr, sg, sb, sa, false);
+ if(sa < 128) continue;
getRGB(_dx, _dy, dstStruct, dstData, dr, dg, db, da, false);
dr ^= (r ^ sr);
dg ^= (g ^ sg);
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/exports.txt
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/exports.txt?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/exports.txt (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/exports.txt Tue Jan 8 02:55:24 2008
@@ -16,3 +16,19 @@
Java_org_apache_harmony_awt_gl_render_NativeImageBlitter_xor
Java_org_apache_harmony_awt_gl_ImageSurface_updateCache
Java_org_apache_harmony_awt_gl_Surface_initIDs
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_copyArea
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_createGC
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_drawArc
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_drawLine
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_drawLines
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_drawRectangle
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_fillArc
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_fillPolygon
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_fillRectangle
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_fillRectangles
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_freeGC
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_setClipMask
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_setClipRectangles
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_setForeground
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_setFunction
+Java_org_apache_harmony_awt_gl_linux_XGraphics2D_setStroke
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/makefile?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/makefile (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/unix/makefile Tue Jan 8 02:55:24 2008
@@ -17,7 +17,7 @@
PNG_DIR=$(HY_HDK)/../depends/libs/build/png
-INCLUDES += -I$(SHARED)common -I$(SHAREDSUB)/include -I$(PNG_DIR)
+INCLUDES += -I$(SHARED)common -I$(SHAREDSUB)/include -I$(PNG_DIR) -I/usr/X11R6/include -I/usr/include -Iinclude
BUILDFILES = \
$(SHAREDSUB)/blitter.o \
@@ -25,6 +25,7 @@
$(SHAREDSUB)/LUTTables.o \
$(SHAREDSUB)/pngdecoder.o \
$(SHAREDSUB)/SurfaceDataStructure.o \
+ XGraphics2D.o \
libpng.a
ifneq ($(HY_ZIP_API),true)
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/GDIBlitter.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/GDIBlitter.cpp?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/GDIBlitter.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/GDIBlitter.cpp Tue Jan 8 02:55:24 2008
@@ -70,22 +70,20 @@
SelectObject(tmpDC, brush);
PatBlt(tmpDC, 0, 0, w, h, PATCOPY);
- int count;
int *regions;
if(dirtyRegions == 0){
- regCount = 1;
+ regCount = 4;
regions = (int *)malloc(4 * sizeof(int));
regions[0] = 0;
regions[1] = 0;
regions[2] = srcSurf->width - 1;
regions[3] = srcSurf->height - 1;
} else {
- count = regCount;
- regions = (int *)malloc(count * sizeof(int));
- env->GetIntArrayRegion(dirtyRegions, 1, count, regions);
+ regions = (int *)malloc(regCount * sizeof(int));
+ env->GetIntArrayRegion(dirtyRegions, 1, regCount, regions);
}
- if(initBitmap(srcSurf, env, srcData, true, regions, count)){
+ if(initBitmap(srcSurf, env, srcData, true, regions, regCount)){
BLENDFUNCTION bf;
bf.AlphaFormat = AC_SRC_ALPHA;
bf.BlendOp = AC_SRC_OVER;
@@ -213,22 +211,20 @@
srcSurf->invalidated = invalidated != 0;
- int count;
int *regions;
if(dirtyRegions == 0){
- regCount = 1;
+ regCount = 4;
regions = (int *)malloc(4 * sizeof(int));
regions[0] = 0;
regions[1] = 0;
regions[2] = srcSurf->width - 1;
regions[3] = srcSurf->height - 1;
} else {
- count = regCount;
- regions = (int *)malloc(count * sizeof(int));
- env->GetIntArrayRegion(dirtyRegions, 1, count, regions);
+ regions = (int *)malloc(regCount * sizeof(int));
+ env->GetIntArrayRegion(dirtyRegions, 1, regCount, regions);
}
- if(!initBlitData(srcSurf, env, srcData, compType, srca, &blitStruct, regions, count)){
+ if(!initBlitData(srcSurf, env, srcData, compType, srca, &blitStruct, regions, regCount)){
return;
}
@@ -409,21 +405,19 @@
srcSurf->invalidated = invalidated != 0;
- int count;
int *regions;
if(dirtyRegions == 0){
- regCount = 1;
+ regCount = 4;
regions = (int *)malloc(4 * sizeof(int));
regions[0] = 0;
regions[1] = 0;
regions[2] = srcSurf->width - 1;
regions[3] = srcSurf->height - 1;
} else {
- count = regCount;
- regions = (int *)malloc(count * sizeof(int));
- env->GetIntArrayRegion(dirtyRegions, 1, count, regions);
+ regions = (int *)malloc(regCount * sizeof(int));
+ env->GetIntArrayRegion(dirtyRegions, 1, regCount, regions);
}
- if(!initBitmap(srcSurf, env, srcData, true, regions, count)) return;
+ if(!initBitmap(srcSurf, env, srcData, false, regions, regCount)) return;
BYTE r = (BYTE)((xorcolor >> 16) & 0xff);
BYTE g = (BYTE)((xorcolor >> 8) & 0xff);
@@ -456,8 +450,38 @@
HGDIOBJ oldBrush = SelectObject(dstSurf->gi->hdc, brush);
- BitBlt(dstSurf->gi->hdc, dstX, dstY, width, height, srcSurf->srcDC,
- srcX, srcY, 0x960169);
+ if(srcSurf->has_alpha){
+
+ int scanline_word = srcSurf->width / 16;
+ if(srcSurf->width % 16 != 0) scanline_word++;
+
+ BYTE *pm = (BYTE *)calloc(scanline_word * srcSurf->height * 2, 1);
+
+ int byteIdx = 0;
+ unsigned int *p = (unsigned int *)srcSurf->bmpData;
+ for(int y = 0; y < srcSurf->height; y++){
+ for(int x = 0, shift = 7; x < srcSurf->width; x++, shift--, p++){
+ if(shift < 0 ){
+ shift = 7;
+ byteIdx++;
+ }
+ unsigned int pixel = (*p >> 24) & 0xff;
+ if(pixel > 127) pm[byteIdx] |= 1 << shift;
+ }
+ if(byteIdx % 2 != 0) byteIdx++;
+ else byteIdx += 2;
+ }
+
+ HBITMAP mask = CreateBitmap(srcSurf->width, srcSurf->height, 1, 1, pm);
+ free(pm);
+ MaskBlt(dstSurf->gi->hdc, dstX, dstY, width, height, srcSurf->srcDC,
+ srcX, srcY, mask, srcX, srcY, MAKEROP4(0x960169, 0xAA0029));
+ DeleteObject(mask);
+ }else{
+
+ BitBlt(dstSurf->gi->hdc, dstX, dstY, width, height, srcSurf->srcDC,
+ srcX, srcY, 0x960169);
+ }
SelectObject(dstSurf->gi->hdc, oldBrush);
Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/WinGDIPGraphics2D.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/WinGDIPGraphics2D.cpp?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/WinGDIPGraphics2D.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/gl/windows/WinGDIPGraphics2D.cpp Tue Jan 8 02:55:24 2008
@@ -118,7 +118,7 @@
*/
JNIEXPORT jlong JNICALL Java_org_apache_harmony_awt_gl_windows_WinGDIPGraphics2D_createGraphicsInfoFor
(JNIEnv * env, jobject obj, jlong hdc, jchar pageUnit) {
- GraphicsInfo * gi = (GraphicsInfo *) malloc(sizeof(GraphicsInfo));
+ GraphicsInfo * gi = (GraphicsInfo *) calloc(1, sizeof(GraphicsInfo));
gi->hdc = (HDC) hdc;
gi->graphics = new Graphics(gi->hdc);
Modified: harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/IIOParam.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/IIOParam.java?rev=609928&r1=609927&r2=609928&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/IIOParam.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/imageio/src/main/java/javax/imageio/IIOParam.java Tue Jan 8 02:55:24 2008
@@ -22,8 +22,6 @@
import java.awt.*;
-import org.apache.harmony.luni.util.NotImplementedException;
-
public abstract class IIOParam {
protected Rectangle sourceRegion;
protected int sourceXSubsampling = 1;
@@ -87,11 +85,11 @@
throw new IllegalArgumentException("sourceYSubsampling <= 0");
}
- if (subsamplingXOffset <= 0 || subsamplingXOffset >= sourceXSubsampling) {
+ if ((subsamplingXOffset < 0) || (subsamplingXOffset >= sourceXSubsampling)) {
throw new IllegalArgumentException("subsamplingXOffset is wrong");
}
- if (subsamplingYOffset <= 0 || subsamplingYOffset >= sourceYSubsampling) {
+ if ((subsamplingYOffset < 0) || (subsamplingYOffset >= sourceYSubsampling)) {
throw new IllegalArgumentException("subsamplingYOffset is wrong");
}
@@ -125,24 +123,36 @@
return subsamplingYOffset;
}
- public void setSourceBands(int[] sourceBands) throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public void setSourceBands(final int[] sourceBands) {
+ if (sourceBands == null) {
+ this.sourceBands = null;
+ } else {
+ for (int i = 0; i < sourceBands.length; i++) {
+ if (sourceBands[i] < 0) {
+ throw new IllegalArgumentException("negative value");
+ }
+
+ for (int j = i + 1; j < sourceBands.length; j++) {
+ if (sourceBands[i] == sourceBands[j]) {
+ throw new IllegalArgumentException("duplicate value");
+ }
+ }
+ }
+
+ this.sourceBands = sourceBands.clone();
+ }
}
- public int[] getSourceBands() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public int[] getSourceBands() {
+ return (sourceBands != null) ? sourceBands.clone() : null;
}
- public void setDestinationType(ImageTypeSpecifier destinationType) throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public void setDestinationType(final ImageTypeSpecifier destinationType) {
+ this.destinationType = destinationType;
}
- public ImageTypeSpecifier getDestinationType() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public ImageTypeSpecifier getDestinationType() {
+ return destinationType;
}
public void setDestinationOffset(Point destinationOffset) {
@@ -157,28 +167,29 @@
return (Point) destinationOffset.clone();
}
- public void setController(IIOParamController controller) throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public void setController(final IIOParamController controller) {
+ this.controller = controller;
}
- public IIOParamController getController() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public IIOParamController getController(){
+ return controller;
}
- public IIOParamController getDefaultController() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public IIOParamController getDefaultController() {
+ return defaultController;
}
- public boolean hasController() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public boolean hasController() {
+ return (controller != null);
}
- public boolean activateController() throws NotImplementedException {
- // TODO implement
- throw new NotImplementedException();
+ public boolean activateController() {
+ final IIOParamController controller = getController();
+
+ if (controller == null) {
+ throw new IllegalStateException("controller wasn't set");
+ }
+
+ return controller.activate(this);
}
}