Add gdiplus from mingw.org sources: Original work was by Markus Koenig <basilo@users.sourceforge.net>. Patch to integrate into mingw-w64 was provided by Mark Dootson <mark.dootson@znix.com>. mingw-w64-headers/include/ * gdiplus.h: New. * gdiplus/gdiplus.h: New. * gdiplus/gdiplusbase.h: New. * gdiplus/gdiplusbrush.h: New. * gdiplus/gdipluscolor.h: New. * gdiplus/gdipluscolormatrix.h: New. * gdiplus/gdipluseffects.h: New. * gdiplus/gdiplusenums.h: New. * gdiplus/gdiplusflat.h: New. * gdiplus/gdiplusgpstubs.h: New. * gdiplus/gdiplusgraphics.h: New. * gdiplus/gdiplusheaders.h: New. * gdiplus/gdiplusimageattributes.h: New. * gdiplus/gdiplusimagecodec.h: New. * gdiplus/gdiplusimaging.h: New. * gdiplus/gdiplusimpl.h: New. * gdiplus/gdiplusinit.h: New. * gdiplus/gdipluslinecaps.h: New. * gdiplus/gdiplusmatrix.h: New. * gdiplus/gdiplusmem.h: New. * gdiplus/gdiplusmetafile.h: New. * gdiplus/gdiplusmetaheader.h: New. * gdiplus/gdipluspath.h: New. * gdiplus/gdipluspen.h: New. * gdiplus/gdipluspixelformats.h: New. * gdiplus/gdiplusstringformat.h: New. * gdiplus/gdiplustypes.h: New. * configure.ac: Add GDIPLUSHEAD_LIST as a new header list. * configure: Regenerate. * Makefile.am: Add gdiplusheaddir and gdiplushead_HEADERS. * Makefile.in: Regenerate. mingw-w64-crt/ * lib32/gdiplus.def: New, generated from version 1.1.7601.17514 dll. * lib64/gdiplus.def: New, generated from version 1.1.7601.17514 dll. * libsrc/gdiplus.c: New. * Makefile.am: Add gdiplus defs and sources to build. * Makefile.in: Regenerate. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@4613 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/aclocal.m4 b/aclocal.m4 index 079f7e4..44a9874 100644 --- a/aclocal.m4 +++ b/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/configure b/configure index ac221f9..f821668 100755 --- a/configure +++ b/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64 3.0b. +# Generated by GNU Autoconf 2.68 for mingw-w64 3.0b. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -215,11 +216,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1066,7 +1074,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1359,7 +1367,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64 configure 3.0b -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1376,7 +1384,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64 $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -1798,7 +1806,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -1975,7 +1983,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2015,7 +2023,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2068,7 +2076,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2119,7 +2127,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2159,7 +2167,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2264,7 +2272,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2298,7 +2306,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2590,10 +2598,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -2654,7 +2673,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -2755,6 +2774,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3062,7 +3082,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64 $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -3124,7 +3144,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64 config.status 3.0b -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -3272,9 +3292,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -3282,12 +3303,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -3309,7 +3331,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -3337,7 +3359,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -3385,7 +3407,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -3417,7 +3439,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -3451,7 +3473,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -3463,8 +3485,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -3584,7 +3606,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -3619,7 +3641,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -3756,21 +3778,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -3781,20 +3804,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog index 55f3ba3..b4db312 100644 --- a/mingw-w64-crt/ChangeLog +++ b/mingw-w64-crt/ChangeLog
@@ -1,5 +1,17 @@ 2011-11-17 Ozkan Sezer <sezeroz@gmail.com> + Add gdiplus from mingw.org sources: Original work was by Markus Koenig + <basilo@users.sourceforge.net>. Patch to integrate into mingw-w64 was + provided by Mark Dootson <mark.dootson@znix.com>. + + * lib32/gdiplus.def: New, generated from version 1.1.7601.17514 dll. + * lib64/gdiplus.def: New, generated from version 1.1.7601.17514 dll. + * libsrc/gdiplus.c: New. + * Makefile.am: Add gdiplus defs and sources to build. + * Makefile.in: Regenerate. + +2011-11-17 Ozkan Sezer <sezeroz@gmail.com> + * Makefile.am: Add $(sysincludes) to all build rules' CPPGLAGS. * Makefile.in: Regenerate.
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 37c81dd..8fef4f4 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am
@@ -90,6 +90,8 @@ src_libstrmiids=libsrc/strmiids.c src_libmingwthrd=libsrc/mingwthrd_mt.c +src_libgdiplus=libsrc/gdiplus.c + src_libuuid=libsrc/uuid.c libsrc/guid_nul.c libsrc/devguid.c libsrc/agtctl_i.c libsrc/agtsvr_i.c \ libsrc/cdoex_i.c libsrc/cdoexm_i.c libsrc/cdosys_i.c libsrc/emostore_i.c libsrc/iisext_i.c \ libsrc/mtsadmin_i.c libsrc/mtxadmin_i.c libsrc/scardssp_i.c libsrc/tsuserex_i.c libsrc/fwp-uuid.c \ @@ -403,6 +405,11 @@ lib32_libuuid_a_SOURCES = $(src_libuuid) lib32_libuuid_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes) +lib32_LIBRARIES += lib32/libgdiplus.a +lib32_libgdiplus_a_SOURCES = $(src_libgdiplus) +lib32_libgdiplus_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes) +lib32_libgdiplus_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS) + lib32_LIBRARIES += lib32/libws2_32.a lib32_libws2_32_a_SOURCES = $(src_libws2_32) lib32_libws2_32_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes) @@ -677,6 +684,11 @@ lib64_LIBRARIES += lib64/libdelayimp.a lib64_libdelayimp_a_SOURCES = +lib64_LIBRARIES += lib64/libgdiplus.a +lib64_libgdiplus_a_SOURCES = $(src_libgdiplus) +lib64_libgdiplus_a_CPPFLAGS=$(CPPFLAGS64) $(sysincludes) +lib64_libgdiplus_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS) + lib64_DATA = \ lib64/libwinusb.a \ lib64/lib6to4svc.a lib64/libaaaamon.a lib64/libacledit.a lib64/libaclui.a \
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in index 858bdab..563f3d0 100644 --- a/mingw-w64-crt/Makefile.in +++ b/mingw-w64-crt/Makefile.in
@@ -221,6 +221,11 @@ am__objects_6 = libsrc/lib32_libdxguid_a-dxguid.$(OBJEXT) @LIB32_TRUE@am_lib32_libdxguid_a_OBJECTS = $(am__objects_6) lib32_libdxguid_a_OBJECTS = $(am_lib32_libdxguid_a_OBJECTS) +lib32_libgdiplus_a_LIBADD = +am__lib32_libgdiplus_a_SOURCES_DIST = libsrc/gdiplus.c +am__objects_7 = libsrc/lib32_libgdiplus_a-gdiplus.$(OBJEXT) +@LIB32_TRUE@am_lib32_libgdiplus_a_OBJECTS = $(am__objects_7) +lib32_libgdiplus_a_OBJECTS = $(am_lib32_libgdiplus_a_OBJECTS) lib32_libgmon_a_AR = $(AR) $(ARFLAGS) lib32_libgmon_a_LIBADD = am__lib32_libgmon_a_SOURCES_DIST = profile/mcount.c profile/profil.h \ @@ -234,19 +239,19 @@ lib32_libgmon_a_OBJECTS = $(am_lib32_libgmon_a_OBJECTS) lib32_libksuser_a_LIBADD = am__lib32_libksuser_a_SOURCES_DIST = libsrc/ksuser.c -am__objects_7 = libsrc/lib32_libksuser_a-ksuser.$(OBJEXT) -@LIB32_TRUE@am_lib32_libksuser_a_OBJECTS = $(am__objects_7) +am__objects_8 = libsrc/lib32_libksuser_a-ksuser.$(OBJEXT) +@LIB32_TRUE@am_lib32_libksuser_a_OBJECTS = $(am__objects_8) lib32_libksuser_a_OBJECTS = $(am_lib32_libksuser_a_OBJECTS) lib32_liblargeint_a_AR = $(AR) $(ARFLAGS) lib32_liblargeint_a_LIBADD = am__lib32_liblargeint_a_SOURCES_DIST = libsrc/largeint.c -am__objects_8 = libsrc/lib32_liblargeint_a-largeint.$(OBJEXT) -@LIB32_TRUE@am_lib32_liblargeint_a_OBJECTS = $(am__objects_8) +am__objects_9 = libsrc/lib32_liblargeint_a-largeint.$(OBJEXT) +@LIB32_TRUE@am_lib32_liblargeint_a_OBJECTS = $(am__objects_9) lib32_liblargeint_a_OBJECTS = $(am_lib32_liblargeint_a_OBJECTS) lib32_libm_a_AR = $(AR) $(ARFLAGS) lib32_libm_a_LIBADD = -am__objects_9 = lib32_libm_a-_libm_dummy.$(OBJEXT) -@LIB32_TRUE@nodist_lib32_libm_a_OBJECTS = $(am__objects_9) +am__objects_10 = lib32_libm_a-_libm_dummy.$(OBJEXT) +@LIB32_TRUE@nodist_lib32_libm_a_OBJECTS = $(am__objects_10) lib32_libm_a_OBJECTS = $(nodist_lib32_libm_a_OBJECTS) lib32_libmingw32_a_AR = $(AR) $(ARFLAGS) lib32_libmingw32_a_LIBADD = @@ -260,7 +265,7 @@ crt/mingw_custom.c crt/mingw_helpers.c crt/pseudo-reloc.c \ crt/udll_argv.c crt/xtxtmode.c crt/crt_handler.c crt/tlsthrd.c \ crt/tlsmthread.c crt/tlsmcrt.c -am__objects_10 = crt/lib32_libmingw32_a-atonexit.$(OBJEXT) \ +am__objects_11 = crt/lib32_libmingw32_a-atonexit.$(OBJEXT) \ crt/lib32_libmingw32_a-crt0_c.$(OBJEXT) \ crt/lib32_libmingw32_a-dll_argv.$(OBJEXT) \ crt/lib32_libmingw32_a-gccmain.$(OBJEXT) \ @@ -290,7 +295,7 @@ crt/lib32_libmingw32_a-tlsthrd.$(OBJEXT) \ crt/lib32_libmingw32_a-tlsmthread.$(OBJEXT) \ crt/lib32_libmingw32_a-tlsmcrt.$(OBJEXT) -@LIB32_TRUE@am_lib32_libmingw32_a_OBJECTS = $(am__objects_10) +@LIB32_TRUE@am_lib32_libmingw32_a_OBJECTS = $(am__objects_11) lib32_libmingw32_a_OBJECTS = $(am_lib32_libmingw32_a_OBJECTS) lib32_libmingwex_a_AR = $(AR) $(ARFLAGS) lib32_libmingwex_a_LIBADD = @@ -458,7 +463,7 @@ intrincs/writefsbyte.c intrincs/writefsword.c \ intrincs/writefsdword.c intrincs/_rotl64.c intrincs/_rotr64.c \ intrincs/membarrier.c -am__objects_11 = crt/lib32_libmingwex_a-dllentry.$(OBJEXT) \ +am__objects_12 = crt/lib32_libmingwex_a-dllentry.$(OBJEXT) \ crt/lib32_libmingwex_a-dllmain.$(OBJEXT) \ intrincs/lib32_libmingwex_a-inbyte.$(OBJEXT) \ intrincs/lib32_libmingwex_a-inbytestring.$(OBJEXT) \ @@ -938,7 +943,7 @@ intrincs/lib32_libmingwex_a-ilockor64.$(OBJEXT) \ intrincs/lib32_libmingwex_a-ilockxor64.$(OBJEXT) \ intrincs/lib32_libmingwex_a-ilockexchadd64.$(OBJEXT) -am__objects_12 = intrincs/lib32_libmingwex_a-readfsbyte.$(OBJEXT) \ +am__objects_13 = intrincs/lib32_libmingwex_a-readfsbyte.$(OBJEXT) \ intrincs/lib32_libmingwex_a-readfsword.$(OBJEXT) \ intrincs/lib32_libmingwex_a-readfsdword.$(OBJEXT) \ intrincs/lib32_libmingwex_a-writefsbyte.$(OBJEXT) \ @@ -947,50 +952,50 @@ intrincs/lib32_libmingwex_a-_rotl64.$(OBJEXT) \ intrincs/lib32_libmingwex_a-_rotr64.$(OBJEXT) \ intrincs/lib32_libmingwex_a-membarrier.$(OBJEXT) -@LIB32_TRUE@am_lib32_libmingwex_a_OBJECTS = $(am__objects_11) \ -@LIB32_TRUE@ $(am__objects_12) +@LIB32_TRUE@am_lib32_libmingwex_a_OBJECTS = $(am__objects_12) \ +@LIB32_TRUE@ $(am__objects_13) lib32_libmingwex_a_OBJECTS = $(am_lib32_libmingwex_a_OBJECTS) lib32_libmingwthrd_a_AR = $(AR) $(ARFLAGS) lib32_libmingwthrd_a_LIBADD = am__lib32_libmingwthrd_a_SOURCES_DIST = libsrc/mingwthrd_mt.c -am__objects_13 = libsrc/lib32_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) -@LIB32_TRUE@am_lib32_libmingwthrd_a_OBJECTS = $(am__objects_13) +am__objects_14 = libsrc/lib32_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) +@LIB32_TRUE@am_lib32_libmingwthrd_a_OBJECTS = $(am__objects_14) lib32_libmingwthrd_a_OBJECTS = $(am_lib32_libmingwthrd_a_OBJECTS) lib32_libmoldname_a_LIBADD = am__lib32_libmoldname_a_SOURCES_DIST = crt/isascii.c crt/iscsym.c \ crt/iscsymf.c crt/toascii.c crt/strcasecmp.c crt/strncasecmp.c \ crt/wcscmpi.c -am__objects_14 = crt/lib32_libmoldname_a-isascii.$(OBJEXT) \ +am__objects_15 = crt/lib32_libmoldname_a-isascii.$(OBJEXT) \ crt/lib32_libmoldname_a-iscsym.$(OBJEXT) \ crt/lib32_libmoldname_a-iscsymf.$(OBJEXT) \ crt/lib32_libmoldname_a-toascii.$(OBJEXT) \ crt/lib32_libmoldname_a-strcasecmp.$(OBJEXT) \ crt/lib32_libmoldname_a-strncasecmp.$(OBJEXT) \ crt/lib32_libmoldname_a-wcscmpi.$(OBJEXT) -@LIB32_TRUE@am_lib32_libmoldname_a_OBJECTS = $(am__objects_14) +@LIB32_TRUE@am_lib32_libmoldname_a_OBJECTS = $(am__objects_15) lib32_libmoldname_a_OBJECTS = $(am_lib32_libmoldname_a_OBJECTS) lib32_libscrnsave_a_AR = $(AR) $(ARFLAGS) lib32_libscrnsave_a_LIBADD = am__lib32_libscrnsave_a_SOURCES_DIST = libsrc/scrnsave.c -am__objects_15 = libsrc/lib32_libscrnsave_a-scrnsave.$(OBJEXT) -@LIB32_TRUE@am_lib32_libscrnsave_a_OBJECTS = $(am__objects_15) +am__objects_16 = libsrc/lib32_libscrnsave_a-scrnsave.$(OBJEXT) +@LIB32_TRUE@am_lib32_libscrnsave_a_OBJECTS = $(am__objects_16) lib32_libscrnsave_a_OBJECTS = $(am_lib32_libscrnsave_a_OBJECTS) lib32_libscrnsavw_a_AR = $(AR) $(ARFLAGS) lib32_libscrnsavw_a_LIBADD = am__lib32_libscrnsavw_a_SOURCES_DIST = libsrc/scrnsave.c -am__objects_16 = libsrc/lib32_libscrnsavw_a-scrnsave.$(OBJEXT) -@LIB32_TRUE@am_lib32_libscrnsavw_a_OBJECTS = $(am__objects_16) +am__objects_17 = libsrc/lib32_libscrnsavw_a-scrnsave.$(OBJEXT) +@LIB32_TRUE@am_lib32_libscrnsavw_a_OBJECTS = $(am__objects_17) lib32_libscrnsavw_a_OBJECTS = $(am_lib32_libscrnsavw_a_OBJECTS) lib32_libshell32_a_LIBADD = am__lib32_libshell32_a_SOURCES_DIST = libsrc/shell32.c -am__objects_17 = libsrc/lib32_libshell32_a-shell32.$(OBJEXT) -@LIB32_TRUE@am_lib32_libshell32_a_OBJECTS = $(am__objects_17) +am__objects_18 = libsrc/lib32_libshell32_a-shell32.$(OBJEXT) +@LIB32_TRUE@am_lib32_libshell32_a_OBJECTS = $(am__objects_18) lib32_libshell32_a_OBJECTS = $(am_lib32_libshell32_a_OBJECTS) lib32_libstrmiids_a_AR = $(AR) $(ARFLAGS) lib32_libstrmiids_a_LIBADD = am__lib32_libstrmiids_a_SOURCES_DIST = libsrc/strmiids.c -am__objects_18 = libsrc/lib32_libstrmiids_a-strmiids.$(OBJEXT) -@LIB32_TRUE@am_lib32_libstrmiids_a_OBJECTS = $(am__objects_18) +am__objects_19 = libsrc/lib32_libstrmiids_a-strmiids.$(OBJEXT) +@LIB32_TRUE@am_lib32_libstrmiids_a_OBJECTS = $(am__objects_19) lib32_libstrmiids_a_OBJECTS = $(am_lib32_libstrmiids_a_OBJECTS) lib32_libuuid_a_AR = $(AR) $(ARFLAGS) lib32_libuuid_a_LIBADD = @@ -1016,7 +1021,7 @@ libsrc/ntddpar-uuid.c libsrc/ntddser-uuid.c \ libsrc/ntddscsi-uuid.c libsrc/ntddstor-uuid.c \ libsrc/ntddvdeo-uuid.c -am__objects_19 = libsrc/lib32_libuuid_a-uuid.$(OBJEXT) \ +am__objects_20 = libsrc/lib32_libuuid_a-uuid.$(OBJEXT) \ libsrc/lib32_libuuid_a-guid_nul.$(OBJEXT) \ libsrc/lib32_libuuid_a-devguid.$(OBJEXT) \ libsrc/lib32_libuuid_a-agtctl_i.$(OBJEXT) \ @@ -1071,7 +1076,7 @@ libsrc/lib32_libuuid_a-ntddscsi-uuid.$(OBJEXT) \ libsrc/lib32_libuuid_a-ntddstor-uuid.$(OBJEXT) \ libsrc/lib32_libuuid_a-ntddvdeo-uuid.$(OBJEXT) -@LIB32_TRUE@am_lib32_libuuid_a_OBJECTS = $(am__objects_19) +@LIB32_TRUE@am_lib32_libuuid_a_OBJECTS = $(am__objects_20) lib32_libuuid_a_OBJECTS = $(am_lib32_libuuid_a_OBJECTS) lib32_libws2_32_a_LIBADD = am__lib32_libws2_32_a_SOURCES_DIST = libsrc/ws2_32.c \ @@ -1108,7 +1113,7 @@ libsrc/wspiapi/WspiapiGetAddrInfo.c \ libsrc/wspiapi/WspiapiGetNameInfo.c \ libsrc/wspiapi/WspiapiFreeAddrInfo.c -am__objects_20 = libsrc/lib32_libws2_32_a-ws2_32.$(OBJEXT) \ +am__objects_21 = libsrc/lib32_libws2_32_a-ws2_32.$(OBJEXT) \ libsrc/ws2tcpip/lib32_libws2_32_a-in6_addr_equal.$(OBJEXT) \ libsrc/ws2tcpip/lib32_libws2_32_a-in6addr_isany.$(OBJEXT) \ libsrc/ws2tcpip/lib32_libws2_32_a-in6addr_isloopback.$(OBJEXT) \ @@ -1143,7 +1148,7 @@ libsrc/wspiapi/lib32_libws2_32_a-WspiapiGetAddrInfo.$(OBJEXT) \ libsrc/wspiapi/lib32_libws2_32_a-WspiapiGetNameInfo.$(OBJEXT) \ libsrc/wspiapi/lib32_libws2_32_a-WspiapiFreeAddrInfo.$(OBJEXT) -@LIB32_TRUE@am_lib32_libws2_32_a_OBJECTS = $(am__objects_20) +@LIB32_TRUE@am_lib32_libws2_32_a_OBJECTS = $(am__objects_21) lib32_libws2_32_a_OBJECTS = $(am_lib32_libws2_32_a_OBJECTS) lib64_libdelayimp_a_AR = $(AR) $(ARFLAGS) lib64_libdelayimp_a_LIBADD = @@ -1153,50 +1158,55 @@ am__lib64_libdinput_a_SOURCES_DIST = libsrc/dinput_kbd.c \ libsrc/dinput_joy.c libsrc/dinput_joy2.c libsrc/dinput_mouse.c \ libsrc/dinput_mouse2.c -am__objects_21 = libsrc/lib64_libdinput_a-dinput_kbd.$(OBJEXT) \ +am__objects_22 = libsrc/lib64_libdinput_a-dinput_kbd.$(OBJEXT) \ libsrc/lib64_libdinput_a-dinput_joy.$(OBJEXT) \ libsrc/lib64_libdinput_a-dinput_joy2.$(OBJEXT) \ libsrc/lib64_libdinput_a-dinput_mouse.$(OBJEXT) \ libsrc/lib64_libdinput_a-dinput_mouse2.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdinput_a_OBJECTS = $(am__objects_21) +@LIB64_TRUE@am_lib64_libdinput_a_OBJECTS = $(am__objects_22) lib64_libdinput_a_OBJECTS = $(am_lib64_libdinput_a_OBJECTS) lib64_libdinput8_a_LIBADD = am__lib64_libdinput8_a_SOURCES_DIST = libsrc/dinput_private.h \ libsrc/dinput_joy.c libsrc/dinput_joy2.c libsrc/dinput_mouse.c \ libsrc/dinput_mouse2.c libsrc/dinput_kbd.c -am__objects_22 = libsrc/lib64_libdinput8_a-dinput_joy.$(OBJEXT) \ +am__objects_23 = libsrc/lib64_libdinput8_a-dinput_joy.$(OBJEXT) \ libsrc/lib64_libdinput8_a-dinput_joy2.$(OBJEXT) \ libsrc/lib64_libdinput8_a-dinput_mouse.$(OBJEXT) \ libsrc/lib64_libdinput8_a-dinput_mouse2.$(OBJEXT) \ libsrc/lib64_libdinput8_a-dinput_kbd.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdinput8_a_OBJECTS = $(am__objects_22) +@LIB64_TRUE@am_lib64_libdinput8_a_OBJECTS = $(am__objects_23) lib64_libdinput8_a_OBJECTS = $(am_lib64_libdinput8_a_OBJECTS) lib64_libdmoguids_a_AR = $(AR) $(ARFLAGS) lib64_libdmoguids_a_LIBADD = am__lib64_libdmoguids_a_SOURCES_DIST = libsrc/dmoguids.c -am__objects_23 = libsrc/lib64_libdmoguids_a-dmoguids.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdmoguids_a_OBJECTS = $(am__objects_23) +am__objects_24 = libsrc/lib64_libdmoguids_a-dmoguids.$(OBJEXT) +@LIB64_TRUE@am_lib64_libdmoguids_a_OBJECTS = $(am__objects_24) lib64_libdmoguids_a_OBJECTS = $(am_lib64_libdmoguids_a_OBJECTS) lib64_libdxerr8_a_AR = $(AR) $(ARFLAGS) lib64_libdxerr8_a_LIBADD = am__lib64_libdxerr8_a_SOURCES_DIST = libsrc/dxerr8.c libsrc/dxerr8w.c -am__objects_24 = libsrc/lib64_libdxerr8_a-dxerr8.$(OBJEXT) \ +am__objects_25 = libsrc/lib64_libdxerr8_a-dxerr8.$(OBJEXT) \ libsrc/lib64_libdxerr8_a-dxerr8w.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdxerr8_a_OBJECTS = $(am__objects_24) +@LIB64_TRUE@am_lib64_libdxerr8_a_OBJECTS = $(am__objects_25) lib64_libdxerr8_a_OBJECTS = $(am_lib64_libdxerr8_a_OBJECTS) lib64_libdxerr9_a_AR = $(AR) $(ARFLAGS) lib64_libdxerr9_a_LIBADD = am__lib64_libdxerr9_a_SOURCES_DIST = libsrc/dxerr9.c libsrc/dxerr9w.c -am__objects_25 = libsrc/lib64_libdxerr9_a-dxerr9.$(OBJEXT) \ +am__objects_26 = libsrc/lib64_libdxerr9_a-dxerr9.$(OBJEXT) \ libsrc/lib64_libdxerr9_a-dxerr9w.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdxerr9_a_OBJECTS = $(am__objects_25) +@LIB64_TRUE@am_lib64_libdxerr9_a_OBJECTS = $(am__objects_26) lib64_libdxerr9_a_OBJECTS = $(am_lib64_libdxerr9_a_OBJECTS) lib64_libdxguid_a_AR = $(AR) $(ARFLAGS) lib64_libdxguid_a_LIBADD = am__lib64_libdxguid_a_SOURCES_DIST = libsrc/dxguid.c -am__objects_26 = libsrc/lib64_libdxguid_a-dxguid.$(OBJEXT) -@LIB64_TRUE@am_lib64_libdxguid_a_OBJECTS = $(am__objects_26) +am__objects_27 = libsrc/lib64_libdxguid_a-dxguid.$(OBJEXT) +@LIB64_TRUE@am_lib64_libdxguid_a_OBJECTS = $(am__objects_27) lib64_libdxguid_a_OBJECTS = $(am_lib64_libdxguid_a_OBJECTS) +lib64_libgdiplus_a_LIBADD = +am__lib64_libgdiplus_a_SOURCES_DIST = libsrc/gdiplus.c +am__objects_28 = libsrc/lib64_libgdiplus_a-gdiplus.$(OBJEXT) +@LIB64_TRUE@am_lib64_libgdiplus_a_OBJECTS = $(am__objects_28) +lib64_libgdiplus_a_OBJECTS = $(am_lib64_libgdiplus_a_OBJECTS) lib64_libgmon_a_AR = $(AR) $(ARFLAGS) lib64_libgmon_a_LIBADD = am__lib64_libgmon_a_SOURCES_DIST = profile/mcount.c profile/profil.h \ @@ -1210,19 +1220,19 @@ lib64_libgmon_a_OBJECTS = $(am_lib64_libgmon_a_OBJECTS) lib64_libksuser_a_LIBADD = am__lib64_libksuser_a_SOURCES_DIST = libsrc/ksuser.c -am__objects_27 = libsrc/lib64_libksuser_a-ksuser.$(OBJEXT) -@LIB64_TRUE@am_lib64_libksuser_a_OBJECTS = $(am__objects_27) +am__objects_29 = libsrc/lib64_libksuser_a-ksuser.$(OBJEXT) +@LIB64_TRUE@am_lib64_libksuser_a_OBJECTS = $(am__objects_29) lib64_libksuser_a_OBJECTS = $(am_lib64_libksuser_a_OBJECTS) lib64_liblargeint_a_AR = $(AR) $(ARFLAGS) lib64_liblargeint_a_LIBADD = am__lib64_liblargeint_a_SOURCES_DIST = libsrc/largeint.c -am__objects_28 = libsrc/lib64_liblargeint_a-largeint.$(OBJEXT) -@LIB64_TRUE@am_lib64_liblargeint_a_OBJECTS = $(am__objects_28) +am__objects_30 = libsrc/lib64_liblargeint_a-largeint.$(OBJEXT) +@LIB64_TRUE@am_lib64_liblargeint_a_OBJECTS = $(am__objects_30) lib64_liblargeint_a_OBJECTS = $(am_lib64_liblargeint_a_OBJECTS) lib64_libm_a_AR = $(AR) $(ARFLAGS) lib64_libm_a_LIBADD = -am__objects_29 = lib64_libm_a-_libm_dummy.$(OBJEXT) -@LIB64_TRUE@nodist_lib64_libm_a_OBJECTS = $(am__objects_29) +am__objects_31 = lib64_libm_a-_libm_dummy.$(OBJEXT) +@LIB64_TRUE@nodist_lib64_libm_a_OBJECTS = $(am__objects_31) lib64_libm_a_OBJECTS = $(nodist_lib64_libm_a_OBJECTS) lib64_libmingw32_a_AR = $(AR) $(ARFLAGS) lib64_libmingw32_a_LIBADD = @@ -1236,7 +1246,7 @@ crt/mingw_custom.c crt/mingw_helpers.c crt/pseudo-reloc.c \ crt/udll_argv.c crt/xtxtmode.c crt/crt_handler.c crt/tlsthrd.c \ crt/tlsmthread.c crt/tlsmcrt.c -am__objects_30 = crt/lib64_libmingw32_a-atonexit.$(OBJEXT) \ +am__objects_32 = crt/lib64_libmingw32_a-atonexit.$(OBJEXT) \ crt/lib64_libmingw32_a-crt0_c.$(OBJEXT) \ crt/lib64_libmingw32_a-dll_argv.$(OBJEXT) \ crt/lib64_libmingw32_a-gccmain.$(OBJEXT) \ @@ -1266,7 +1276,7 @@ crt/lib64_libmingw32_a-tlsthrd.$(OBJEXT) \ crt/lib64_libmingw32_a-tlsmthread.$(OBJEXT) \ crt/lib64_libmingw32_a-tlsmcrt.$(OBJEXT) -@LIB64_TRUE@am_lib64_libmingw32_a_OBJECTS = $(am__objects_30) +@LIB64_TRUE@am_lib64_libmingw32_a_OBJECTS = $(am__objects_32) lib64_libmingw32_a_OBJECTS = $(am_lib64_libmingw32_a_OBJECTS) lib64_libmingwex_a_AR = $(AR) $(ARFLAGS) lib64_libmingwex_a_LIBADD = @@ -1442,7 +1452,7 @@ intrincs/_umul128.c intrincs/__movsq.c \ intrincs/__shiftright128.c intrincs/__shiftleft128.c \ intrincs/__stosq.c intrincs/_rotl64.c intrincs/_rotr64.c -am__objects_31 = crt/lib64_libmingwex_a-dllentry.$(OBJEXT) \ +am__objects_33 = crt/lib64_libmingwex_a-dllentry.$(OBJEXT) \ crt/lib64_libmingwex_a-dllmain.$(OBJEXT) \ intrincs/lib64_libmingwex_a-inbyte.$(OBJEXT) \ intrincs/lib64_libmingwex_a-inbytestring.$(OBJEXT) \ @@ -1922,7 +1932,7 @@ intrincs/lib64_libmingwex_a-ilockor64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-ilockxor64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-ilockexchadd64.$(OBJEXT) -am__objects_32 = intrincs/lib64_libmingwex_a-bittest64.$(OBJEXT) \ +am__objects_34 = intrincs/lib64_libmingwex_a-bittest64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-bittestc64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-bittestr64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-bittestri64.$(OBJEXT) \ @@ -1949,33 +1959,33 @@ intrincs/lib64_libmingwex_a-__stosq.$(OBJEXT) \ intrincs/lib64_libmingwex_a-_rotl64.$(OBJEXT) \ intrincs/lib64_libmingwex_a-_rotr64.$(OBJEXT) -@LIB64_TRUE@am_lib64_libmingwex_a_OBJECTS = $(am__objects_31) \ -@LIB64_TRUE@ $(am__objects_32) +@LIB64_TRUE@am_lib64_libmingwex_a_OBJECTS = $(am__objects_33) \ +@LIB64_TRUE@ $(am__objects_34) lib64_libmingwex_a_OBJECTS = $(am_lib64_libmingwex_a_OBJECTS) lib64_libmingwthrd_a_AR = $(AR) $(ARFLAGS) lib64_libmingwthrd_a_LIBADD = am__lib64_libmingwthrd_a_SOURCES_DIST = libsrc/mingwthrd_mt.c -am__objects_33 = libsrc/lib64_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) -@LIB64_TRUE@am_lib64_libmingwthrd_a_OBJECTS = $(am__objects_33) +am__objects_35 = libsrc/lib64_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) +@LIB64_TRUE@am_lib64_libmingwthrd_a_OBJECTS = $(am__objects_35) lib64_libmingwthrd_a_OBJECTS = $(am_lib64_libmingwthrd_a_OBJECTS) lib64_libmoldname_a_LIBADD = am__lib64_libmoldname_a_SOURCES_DIST = crt/isascii.c crt/iscsym.c \ crt/iscsymf.c crt/toascii.c crt/strcasecmp.c crt/strncasecmp.c \ crt/wcscmpi.c -am__objects_34 = crt/lib64_libmoldname_a-isascii.$(OBJEXT) \ +am__objects_36 = crt/lib64_libmoldname_a-isascii.$(OBJEXT) \ crt/lib64_libmoldname_a-iscsym.$(OBJEXT) \ crt/lib64_libmoldname_a-iscsymf.$(OBJEXT) \ crt/lib64_libmoldname_a-toascii.$(OBJEXT) \ crt/lib64_libmoldname_a-strcasecmp.$(OBJEXT) \ crt/lib64_libmoldname_a-strncasecmp.$(OBJEXT) \ crt/lib64_libmoldname_a-wcscmpi.$(OBJEXT) -@LIB64_TRUE@am_lib64_libmoldname_a_OBJECTS = $(am__objects_34) +@LIB64_TRUE@am_lib64_libmoldname_a_OBJECTS = $(am__objects_36) lib64_libmoldname_a_OBJECTS = $(am_lib64_libmoldname_a_OBJECTS) lib64_libscrnsave_a_AR = $(AR) $(ARFLAGS) lib64_libscrnsave_a_LIBADD = am__lib64_libscrnsave_a_SOURCES_DIST = libsrc/scrnsave.c -am__objects_35 = libsrc/lib64_libscrnsave_a-scrnsave.$(OBJEXT) -@LIB64_TRUE@am_lib64_libscrnsave_a_OBJECTS = $(am__objects_35) +am__objects_37 = libsrc/lib64_libscrnsave_a-scrnsave.$(OBJEXT) +@LIB64_TRUE@am_lib64_libscrnsave_a_OBJECTS = $(am__objects_37) lib64_libscrnsave_a_OBJECTS = $(am_lib64_libscrnsave_a_OBJECTS) lib64_libscrnsavw_a_AR = $(AR) $(ARFLAGS) lib64_libscrnsavw_a_LIBADD = @@ -1985,14 +1995,14 @@ lib64_libscrnsavw_a_OBJECTS = $(am_lib64_libscrnsavw_a_OBJECTS) lib64_libshell32_a_LIBADD = am__lib64_libshell32_a_SOURCES_DIST = libsrc/shell32.c -am__objects_36 = libsrc/lib64_libshell32_a-shell32.$(OBJEXT) -@LIB64_TRUE@am_lib64_libshell32_a_OBJECTS = $(am__objects_36) +am__objects_38 = libsrc/lib64_libshell32_a-shell32.$(OBJEXT) +@LIB64_TRUE@am_lib64_libshell32_a_OBJECTS = $(am__objects_38) lib64_libshell32_a_OBJECTS = $(am_lib64_libshell32_a_OBJECTS) lib64_libstrmiids_a_AR = $(AR) $(ARFLAGS) lib64_libstrmiids_a_LIBADD = am__lib64_libstrmiids_a_SOURCES_DIST = libsrc/strmiids.c -am__objects_37 = libsrc/lib64_libstrmiids_a-strmiids.$(OBJEXT) -@LIB64_TRUE@am_lib64_libstrmiids_a_OBJECTS = $(am__objects_37) +am__objects_39 = libsrc/lib64_libstrmiids_a-strmiids.$(OBJEXT) +@LIB64_TRUE@am_lib64_libstrmiids_a_OBJECTS = $(am__objects_39) lib64_libstrmiids_a_OBJECTS = $(am_lib64_libstrmiids_a_OBJECTS) lib64_libuuid_a_AR = $(AR) $(ARFLAGS) lib64_libuuid_a_LIBADD = @@ -2018,7 +2028,7 @@ libsrc/ntddpar-uuid.c libsrc/ntddser-uuid.c \ libsrc/ntddscsi-uuid.c libsrc/ntddstor-uuid.c \ libsrc/ntddvdeo-uuid.c -am__objects_38 = libsrc/lib64_libuuid_a-uuid.$(OBJEXT) \ +am__objects_40 = libsrc/lib64_libuuid_a-uuid.$(OBJEXT) \ libsrc/lib64_libuuid_a-guid_nul.$(OBJEXT) \ libsrc/lib64_libuuid_a-devguid.$(OBJEXT) \ libsrc/lib64_libuuid_a-agtctl_i.$(OBJEXT) \ @@ -2073,7 +2083,7 @@ libsrc/lib64_libuuid_a-ntddscsi-uuid.$(OBJEXT) \ libsrc/lib64_libuuid_a-ntddstor-uuid.$(OBJEXT) \ libsrc/lib64_libuuid_a-ntddvdeo-uuid.$(OBJEXT) -@LIB64_TRUE@am_lib64_libuuid_a_OBJECTS = $(am__objects_38) +@LIB64_TRUE@am_lib64_libuuid_a_OBJECTS = $(am__objects_40) lib64_libuuid_a_OBJECTS = $(am_lib64_libuuid_a_OBJECTS) lib64_libws2_32_a_LIBADD = am__lib64_libws2_32_a_SOURCES_DIST = libsrc/ws2_32.c \ @@ -2110,7 +2120,7 @@ libsrc/wspiapi/WspiapiGetAddrInfo.c \ libsrc/wspiapi/WspiapiGetNameInfo.c \ libsrc/wspiapi/WspiapiFreeAddrInfo.c -am__objects_39 = libsrc/lib64_libws2_32_a-ws2_32.$(OBJEXT) \ +am__objects_41 = libsrc/lib64_libws2_32_a-ws2_32.$(OBJEXT) \ libsrc/ws2tcpip/lib64_libws2_32_a-in6_addr_equal.$(OBJEXT) \ libsrc/ws2tcpip/lib64_libws2_32_a-in6addr_isany.$(OBJEXT) \ libsrc/ws2tcpip/lib64_libws2_32_a-in6addr_isloopback.$(OBJEXT) \ @@ -2145,7 +2155,7 @@ libsrc/wspiapi/lib64_libws2_32_a-WspiapiGetAddrInfo.$(OBJEXT) \ libsrc/wspiapi/lib64_libws2_32_a-WspiapiGetNameInfo.$(OBJEXT) \ libsrc/wspiapi/lib64_libws2_32_a-WspiapiFreeAddrInfo.$(OBJEXT) -@LIB64_TRUE@am_lib64_libws2_32_a_OBJECTS = $(am__objects_39) +@LIB64_TRUE@am_lib64_libws2_32_a_OBJECTS = $(am__objects_41) lib64_libws2_32_a_OBJECTS = $(am_lib64_libws2_32_a_OBJECTS) tests32_libnewcomplextests_a_AR = $(AR) $(ARFLAGS) tests32_libnewcomplextests_a_LIBADD = @@ -2162,7 +2172,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_40 = \ +am__objects_42 = \ testcases/complex/tests32_libnewcomplextests_a-cabs.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextests_a-cacos.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextests_a-cacosh.$(OBJEXT) \ @@ -2186,7 +2196,7 @@ testcases/complex/tests32_libnewcomplextests_a-ctan.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextests_a-ctanh.$(OBJEXT) @LIB32_TRUE@am_tests32_libnewcomplextests_a_OBJECTS = \ -@LIB32_TRUE@ $(am__objects_40) +@LIB32_TRUE@ $(am__objects_42) tests32_libnewcomplextests_a_OBJECTS = \ $(am_tests32_libnewcomplextests_a_OBJECTS) tests32_libnewcomplextestsf_a_AR = $(AR) $(ARFLAGS) @@ -2204,7 +2214,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_41 = testcases/complex/tests32_libnewcomplextestsf_a-cabs.$(OBJEXT) \ +am__objects_43 = testcases/complex/tests32_libnewcomplextestsf_a-cabs.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsf_a-cacos.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsf_a-cacosh.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsf_a-carg.$(OBJEXT) \ @@ -2227,7 +2237,7 @@ testcases/complex/tests32_libnewcomplextestsf_a-ctan.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsf_a-ctanh.$(OBJEXT) @LIB32_TRUE@am_tests32_libnewcomplextestsf_a_OBJECTS = \ -@LIB32_TRUE@ $(am__objects_41) +@LIB32_TRUE@ $(am__objects_43) tests32_libnewcomplextestsf_a_OBJECTS = \ $(am_tests32_libnewcomplextestsf_a_OBJECTS) tests32_libnewcomplextestsld_a_AR = $(AR) $(ARFLAGS) @@ -2245,7 +2255,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_42 = testcases/complex/tests32_libnewcomplextestsld_a-cabs.$(OBJEXT) \ +am__objects_44 = testcases/complex/tests32_libnewcomplextestsld_a-cabs.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsld_a-cacos.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsld_a-cacosh.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsld_a-carg.$(OBJEXT) \ @@ -2268,7 +2278,7 @@ testcases/complex/tests32_libnewcomplextestsld_a-ctan.$(OBJEXT) \ testcases/complex/tests32_libnewcomplextestsld_a-ctanh.$(OBJEXT) @LIB32_TRUE@am_tests32_libnewcomplextestsld_a_OBJECTS = \ -@LIB32_TRUE@ $(am__objects_42) +@LIB32_TRUE@ $(am__objects_44) tests32_libnewcomplextestsld_a_OBJECTS = \ $(am_tests32_libnewcomplextestsld_a_OBJECTS) tests64_libnewcomplextests_a_AR = $(AR) $(ARFLAGS) @@ -2286,7 +2296,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_43 = \ +am__objects_45 = \ testcases/complex/tests64_libnewcomplextests_a-cabs.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextests_a-cacos.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextests_a-cacosh.$(OBJEXT) \ @@ -2310,7 +2320,7 @@ testcases/complex/tests64_libnewcomplextests_a-ctan.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextests_a-ctanh.$(OBJEXT) @LIB64_TRUE@am_tests64_libnewcomplextests_a_OBJECTS = \ -@LIB64_TRUE@ $(am__objects_43) +@LIB64_TRUE@ $(am__objects_45) tests64_libnewcomplextests_a_OBJECTS = \ $(am_tests64_libnewcomplextests_a_OBJECTS) tests64_libnewcomplextestsf_a_AR = $(AR) $(ARFLAGS) @@ -2328,7 +2338,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_44 = testcases/complex/tests64_libnewcomplextestsf_a-cabs.$(OBJEXT) \ +am__objects_46 = testcases/complex/tests64_libnewcomplextestsf_a-cabs.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsf_a-cacos.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsf_a-cacosh.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsf_a-carg.$(OBJEXT) \ @@ -2351,7 +2361,7 @@ testcases/complex/tests64_libnewcomplextestsf_a-ctan.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsf_a-ctanh.$(OBJEXT) @LIB64_TRUE@am_tests64_libnewcomplextestsf_a_OBJECTS = \ -@LIB64_TRUE@ $(am__objects_44) +@LIB64_TRUE@ $(am__objects_46) tests64_libnewcomplextestsf_a_OBJECTS = \ $(am_tests64_libnewcomplextestsf_a_OBJECTS) tests64_libnewcomplextestsld_a_AR = $(AR) $(ARFLAGS) @@ -2369,7 +2379,7 @@ testcases/complex/csin.c testcases/complex/csinh.c \ testcases/complex/csqrt.c testcases/complex/ctan.c \ testcases/complex/ctanh.c -am__objects_45 = testcases/complex/tests64_libnewcomplextestsld_a-cabs.$(OBJEXT) \ +am__objects_47 = testcases/complex/tests64_libnewcomplextestsld_a-cabs.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsld_a-cacos.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsld_a-cacosh.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsld_a-carg.$(OBJEXT) \ @@ -2392,7 +2402,7 @@ testcases/complex/tests64_libnewcomplextestsld_a-ctan.$(OBJEXT) \ testcases/complex/tests64_libnewcomplextestsld_a-ctanh.$(OBJEXT) @LIB64_TRUE@am_tests64_libnewcomplextestsld_a_OBJECTS = \ -@LIB64_TRUE@ $(am__objects_45) +@LIB64_TRUE@ $(am__objects_47) tests64_libnewcomplextestsld_a_OBJECTS = \ $(am_tests64_libnewcomplextestsld_a_OBJECTS) @ENABLE_TESTS_UNICODE_TRUE@am__EXEEXT_1 = \ @@ -2847,17 +2857,18 @@ SOURCES = $(lib32_libdelayimp_a_SOURCES) $(lib32_libdinput_a_SOURCES) \ $(lib32_libdinput8_a_SOURCES) $(lib32_libdmoguids_a_SOURCES) \ $(lib32_libdxerr8_a_SOURCES) $(lib32_libdxerr9_a_SOURCES) \ - $(lib32_libdxguid_a_SOURCES) $(lib32_libgmon_a_SOURCES) \ - $(lib32_libksuser_a_SOURCES) $(lib32_liblargeint_a_SOURCES) \ - $(nodist_lib32_libm_a_SOURCES) $(lib32_libmingw32_a_SOURCES) \ - $(lib32_libmingwex_a_SOURCES) $(lib32_libmingwthrd_a_SOURCES) \ - $(lib32_libmoldname_a_SOURCES) $(lib32_libscrnsave_a_SOURCES) \ - $(lib32_libscrnsavw_a_SOURCES) $(lib32_libshell32_a_SOURCES) \ - $(lib32_libstrmiids_a_SOURCES) $(lib32_libuuid_a_SOURCES) \ - $(lib32_libws2_32_a_SOURCES) $(lib64_libdelayimp_a_SOURCES) \ - $(lib64_libdinput_a_SOURCES) $(lib64_libdinput8_a_SOURCES) \ - $(lib64_libdmoguids_a_SOURCES) $(lib64_libdxerr8_a_SOURCES) \ - $(lib64_libdxerr9_a_SOURCES) $(lib64_libdxguid_a_SOURCES) \ + $(lib32_libdxguid_a_SOURCES) $(lib32_libgdiplus_a_SOURCES) \ + $(lib32_libgmon_a_SOURCES) $(lib32_libksuser_a_SOURCES) \ + $(lib32_liblargeint_a_SOURCES) $(nodist_lib32_libm_a_SOURCES) \ + $(lib32_libmingw32_a_SOURCES) $(lib32_libmingwex_a_SOURCES) \ + $(lib32_libmingwthrd_a_SOURCES) $(lib32_libmoldname_a_SOURCES) \ + $(lib32_libscrnsave_a_SOURCES) $(lib32_libscrnsavw_a_SOURCES) \ + $(lib32_libshell32_a_SOURCES) $(lib32_libstrmiids_a_SOURCES) \ + $(lib32_libuuid_a_SOURCES) $(lib32_libws2_32_a_SOURCES) \ + $(lib64_libdelayimp_a_SOURCES) $(lib64_libdinput_a_SOURCES) \ + $(lib64_libdinput8_a_SOURCES) $(lib64_libdmoguids_a_SOURCES) \ + $(lib64_libdxerr8_a_SOURCES) $(lib64_libdxerr9_a_SOURCES) \ + $(lib64_libdxguid_a_SOURCES) $(lib64_libgdiplus_a_SOURCES) \ $(lib64_libgmon_a_SOURCES) $(lib64_libksuser_a_SOURCES) \ $(lib64_liblargeint_a_SOURCES) $(nodist_lib64_libm_a_SOURCES) \ $(lib64_libmingw32_a_SOURCES) $(lib64_libmingwex_a_SOURCES) \ @@ -2912,6 +2923,7 @@ $(am__lib32_libdxerr8_a_SOURCES_DIST) \ $(am__lib32_libdxerr9_a_SOURCES_DIST) \ $(am__lib32_libdxguid_a_SOURCES_DIST) \ + $(am__lib32_libgdiplus_a_SOURCES_DIST) \ $(am__lib32_libgmon_a_SOURCES_DIST) \ $(am__lib32_libksuser_a_SOURCES_DIST) \ $(am__lib32_liblargeint_a_SOURCES_DIST) \ @@ -2932,6 +2944,7 @@ $(am__lib64_libdxerr8_a_SOURCES_DIST) \ $(am__lib64_libdxerr9_a_SOURCES_DIST) \ $(am__lib64_libdxguid_a_SOURCES_DIST) \ + $(am__lib64_libgdiplus_a_SOURCES_DIST) \ $(am__lib64_libgmon_a_SOURCES_DIST) \ $(am__lib64_libksuser_a_SOURCES_DIST) \ $(am__lib64_liblargeint_a_SOURCES_DIST) \ @@ -3201,6 +3214,7 @@ src_libscrnsavw = libsrc/scrnsave.c src_libstrmiids = libsrc/strmiids.c src_libmingwthrd = libsrc/mingwthrd_mt.c +src_libgdiplus = libsrc/gdiplus.c src_libuuid = libsrc/uuid.c libsrc/guid_nul.c libsrc/devguid.c libsrc/agtctl_i.c libsrc/agtsvr_i.c \ libsrc/cdoex_i.c libsrc/cdoexm_i.c libsrc/cdosys_i.c libsrc/emostore_i.c libsrc/iisext_i.c \ libsrc/mtsadmin_i.c libsrc/mtxadmin_i.c libsrc/scardssp_i.c libsrc/tsuserex_i.c libsrc/fwp-uuid.c \ @@ -3414,8 +3428,8 @@ @LIB32_TRUE@ lib32/libmingwex.a lib32/libmoldname.a \ @LIB32_TRUE@ lib32/libscrnsave.a lib32/libscrnsavw.a \ @LIB32_TRUE@ lib32/libstrmiids.a lib32/libmingwthrd.a \ -@LIB32_TRUE@ lib32/libuuid.a lib32/libws2_32.a \ -@LIB32_TRUE@ lib32/libdelayimp.a +@LIB32_TRUE@ lib32/libuuid.a lib32/libgdiplus.a \ +@LIB32_TRUE@ lib32/libws2_32.a lib32/libdelayimp.a @LIB32_TRUE@nodist_lib32_libm_a_SOURCES = $(src_libm) @LIB32_TRUE@lib32_libm_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes) @LIB32_TRUE@lib32_libgmon_a_SOURCES = profile/mcount.c \ @@ -3464,6 +3478,9 @@ @LIB32_TRUE@lib32_libmingwthrd_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes) @LIB32_TRUE@lib32_libuuid_a_SOURCES = $(src_libuuid) @LIB32_TRUE@lib32_libuuid_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes) +@LIB32_TRUE@lib32_libgdiplus_a_SOURCES = $(src_libgdiplus) +@LIB32_TRUE@lib32_libgdiplus_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes) +@LIB32_TRUE@lib32_libgdiplus_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS) @LIB32_TRUE@lib32_libws2_32_a_SOURCES = $(src_libws2_32) @LIB32_TRUE@lib32_libws2_32_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes) @LIB32_TRUE@lib32_libws2_32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS) @@ -3586,7 +3603,7 @@ @LIB64_TRUE@ lib64/libmingw32.a lib64/libmingwex.a \ @LIB64_TRUE@ lib64/libmoldname.a lib64/libmingwthrd.a \ @LIB64_TRUE@ lib64/libuuid.a lib64/libws2_32.a \ -@LIB64_TRUE@ lib64/libdelayimp.a +@LIB64_TRUE@ lib64/libdelayimp.a lib64/libgdiplus.a @LIB64_TRUE@nodist_lib64_libm_a_SOURCES = $(src_libm) @LIB64_TRUE@lib64_libm_a_CPPFLAGS = $(CPPFLAGS64) $(sysincludes) @LIB64_TRUE@lib64_libshell32_a_SOURCES = $(src_libshell32) @@ -3639,6 +3656,9 @@ @LIB64_TRUE@lib64_libws2_32_a_CPPFLAGS = $(CPPFLAGS64) $(sysincludes) @LIB64_TRUE@lib64_libws2_32_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS) @LIB64_TRUE@lib64_libdelayimp_a_SOURCES = +@LIB64_TRUE@lib64_libgdiplus_a_SOURCES = $(src_libgdiplus) +@LIB64_TRUE@lib64_libgdiplus_a_CPPFLAGS = $(CPPFLAGS64) $(sysincludes) +@LIB64_TRUE@lib64_libgdiplus_a_AR = $(DTLIB64) && $(AR) $(ARFLAGS) @LIB64_TRUE@lib64_DATA = \ @LIB64_TRUE@ lib64/libwinusb.a \ @LIB64_TRUE@ lib64/lib6to4svc.a lib64/libaaaamon.a lib64/libacledit.a lib64/libaclui.a \ @@ -4451,6 +4471,12 @@ -rm -f lib32/libdxguid.a $(lib32_libdxguid_a_AR) lib32/libdxguid.a $(lib32_libdxguid_a_OBJECTS) $(lib32_libdxguid_a_LIBADD) $(RANLIB) lib32/libdxguid.a +libsrc/lib32_libgdiplus_a-gdiplus.$(OBJEXT): libsrc/$(am__dirstamp) \ + libsrc/$(DEPDIR)/$(am__dirstamp) +lib32/libgdiplus.a: $(lib32_libgdiplus_a_OBJECTS) $(lib32_libgdiplus_a_DEPENDENCIES) lib32/$(am__dirstamp) + -rm -f lib32/libgdiplus.a + $(lib32_libgdiplus_a_AR) lib32/libgdiplus.a $(lib32_libgdiplus_a_OBJECTS) $(lib32_libgdiplus_a_LIBADD) + $(RANLIB) lib32/libgdiplus.a profile/$(am__dirstamp): @$(MKDIR_P) profile @: > profile/$(am__dirstamp) @@ -5916,6 +5942,12 @@ -rm -f lib64/libdxguid.a $(lib64_libdxguid_a_AR) lib64/libdxguid.a $(lib64_libdxguid_a_OBJECTS) $(lib64_libdxguid_a_LIBADD) $(RANLIB) lib64/libdxguid.a +libsrc/lib64_libgdiplus_a-gdiplus.$(OBJEXT): libsrc/$(am__dirstamp) \ + libsrc/$(DEPDIR)/$(am__dirstamp) +lib64/libgdiplus.a: $(lib64_libgdiplus_a_OBJECTS) $(lib64_libgdiplus_a_DEPENDENCIES) lib64/$(am__dirstamp) + -rm -f lib64/libgdiplus.a + $(lib64_libgdiplus_a_AR) lib64/libgdiplus.a $(lib64_libgdiplus_a_OBJECTS) $(lib64_libgdiplus_a_LIBADD) + $(RANLIB) lib64/libgdiplus.a profile/lib64_libgmon_a-mcount.$(OBJEXT): profile/$(am__dirstamp) \ profile/$(DEPDIR)/$(am__dirstamp) profile/lib64_libgmon_a-profil.$(OBJEXT): profile/$(am__dirstamp) \ @@ -8520,6 +8552,7 @@ -rm -f libsrc/lib32_libdxerr9_a-dxerr9.$(OBJEXT) -rm -f libsrc/lib32_libdxerr9_a-dxerr9w.$(OBJEXT) -rm -f libsrc/lib32_libdxguid_a-dxguid.$(OBJEXT) + -rm -f libsrc/lib32_libgdiplus_a-gdiplus.$(OBJEXT) -rm -f libsrc/lib32_libksuser_a-ksuser.$(OBJEXT) -rm -f libsrc/lib32_liblargeint_a-largeint.$(OBJEXT) -rm -f libsrc/lib32_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) @@ -8599,6 +8632,7 @@ -rm -f libsrc/lib64_libdxerr9_a-dxerr9.$(OBJEXT) -rm -f libsrc/lib64_libdxerr9_a-dxerr9w.$(OBJEXT) -rm -f libsrc/lib64_libdxguid_a-dxguid.$(OBJEXT) + -rm -f libsrc/lib64_libgdiplus_a-gdiplus.$(OBJEXT) -rm -f libsrc/lib64_libksuser_a-ksuser.$(OBJEXT) -rm -f libsrc/lib64_liblargeint_a-largeint.$(OBJEXT) -rm -f libsrc/lib64_libmingwthrd_a-mingwthrd_mt.$(OBJEXT) @@ -10028,6 +10062,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libdxerr9_a-dxerr9.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libdxerr9_a-dxerr9w.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libdxguid_a-dxguid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libksuser_a-ksuser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_liblargeint_a-largeint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib32_libmingwthrd_a-mingwthrd_mt.Po@am__quote@ @@ -10107,6 +10142,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libdxerr9_a-dxerr9.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libdxerr9_a-dxerr9w.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libdxguid_a-dxguid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libksuser_a-ksuser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_liblargeint_a-largeint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libsrc/$(DEPDIR)/lib64_libmingwthrd_a-mingwthrd_mt.Po@am__quote@ @@ -12453,6 +12489,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libdxguid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib32_libdxguid_a-dxguid.obj `if test -f 'libsrc/dxguid.c'; then $(CYGPATH_W) 'libsrc/dxguid.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/dxguid.c'; fi` +libsrc/lib32_libgdiplus_a-gdiplus.o: libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsrc/lib32_libgdiplus_a-gdiplus.o -MD -MP -MF libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Tpo -c -o libsrc/lib32_libgdiplus_a-gdiplus.o `test -f 'libsrc/gdiplus.c' || echo '$(srcdir)/'`libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(am__mv) libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Tpo libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsrc/gdiplus.c' object='libsrc/lib32_libgdiplus_a-gdiplus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib32_libgdiplus_a-gdiplus.o `test -f 'libsrc/gdiplus.c' || echo '$(srcdir)/'`libsrc/gdiplus.c + +libsrc/lib32_libgdiplus_a-gdiplus.obj: libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsrc/lib32_libgdiplus_a-gdiplus.obj -MD -MP -MF libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Tpo -c -o libsrc/lib32_libgdiplus_a-gdiplus.obj `if test -f 'libsrc/gdiplus.c'; then $(CYGPATH_W) 'libsrc/gdiplus.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/gdiplus.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Tpo libsrc/$(DEPDIR)/lib32_libgdiplus_a-gdiplus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsrc/gdiplus.c' object='libsrc/lib32_libgdiplus_a-gdiplus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib32_libgdiplus_a-gdiplus.obj `if test -f 'libsrc/gdiplus.c'; then $(CYGPATH_W) 'libsrc/gdiplus.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/gdiplus.c'; fi` + profile/lib32_libgmon_a-mcount.o: profile/mcount.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libgmon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT profile/lib32_libgmon_a-mcount.o -MD -MP -MF profile/$(DEPDIR)/lib32_libgmon_a-mcount.Tpo -c -o profile/lib32_libgmon_a-mcount.o `test -f 'profile/mcount.c' || echo '$(srcdir)/'`profile/mcount.c @am__fastdepCC_TRUE@ $(am__mv) profile/$(DEPDIR)/lib32_libgmon_a-mcount.Tpo profile/$(DEPDIR)/lib32_libgmon_a-mcount.Po @@ -20923,6 +20973,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libdxguid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib64_libdxguid_a-dxguid.obj `if test -f 'libsrc/dxguid.c'; then $(CYGPATH_W) 'libsrc/dxguid.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/dxguid.c'; fi` +libsrc/lib64_libgdiplus_a-gdiplus.o: libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsrc/lib64_libgdiplus_a-gdiplus.o -MD -MP -MF libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Tpo -c -o libsrc/lib64_libgdiplus_a-gdiplus.o `test -f 'libsrc/gdiplus.c' || echo '$(srcdir)/'`libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(am__mv) libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Tpo libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsrc/gdiplus.c' object='libsrc/lib64_libgdiplus_a-gdiplus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib64_libgdiplus_a-gdiplus.o `test -f 'libsrc/gdiplus.c' || echo '$(srcdir)/'`libsrc/gdiplus.c + +libsrc/lib64_libgdiplus_a-gdiplus.obj: libsrc/gdiplus.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsrc/lib64_libgdiplus_a-gdiplus.obj -MD -MP -MF libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Tpo -c -o libsrc/lib64_libgdiplus_a-gdiplus.obj `if test -f 'libsrc/gdiplus.c'; then $(CYGPATH_W) 'libsrc/gdiplus.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/gdiplus.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Tpo libsrc/$(DEPDIR)/lib64_libgdiplus_a-gdiplus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsrc/gdiplus.c' object='libsrc/lib64_libgdiplus_a-gdiplus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libgdiplus_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib64_libgdiplus_a-gdiplus.obj `if test -f 'libsrc/gdiplus.c'; then $(CYGPATH_W) 'libsrc/gdiplus.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/gdiplus.c'; fi` + profile/lib64_libgmon_a-mcount.o: profile/mcount.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libgmon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT profile/lib64_libgmon_a-mcount.o -MD -MP -MF profile/$(DEPDIR)/lib64_libgmon_a-mcount.Tpo -c -o profile/lib64_libgmon_a-mcount.o `test -f 'profile/mcount.c' || echo '$(srcdir)/'`profile/mcount.c @am__fastdepCC_TRUE@ $(am__mv) profile/$(DEPDIR)/lib64_libgmon_a-mcount.Tpo profile/$(DEPDIR)/lib64_libgmon_a-mcount.Po
diff --git a/mingw-w64-crt/aclocal.m4 b/mingw-w64-crt/aclocal.m4 index 1ccc7ec..6dd95e1 100644 --- a/mingw-w64-crt/aclocal.m4 +++ b/mingw-w64-crt/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-crt/configure b/mingw-w64-crt/configure index d5e17cf..d4022c0 100755 --- a/mingw-w64-crt/configure +++ b/mingw-w64-crt/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64-runtime 3.0b. +# Generated by GNU Autoconf 2.68 for mingw-w64-runtime 3.0b. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1162,7 +1170,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1484,7 +1492,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64-runtime configure 3.0b -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1530,7 +1538,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1568,7 +1576,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile @@ -1605,7 +1613,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1618,10 +1626,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1688,7 +1696,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1697,7 +1705,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1738,7 +1746,7 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1752,7 +1760,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1770,7 +1778,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile cat >config.log <<_ACEOF @@ -1778,7 +1786,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64-runtime $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2177,7 +2185,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2354,7 +2362,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2394,7 +2402,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2447,7 +2455,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2498,7 +2506,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2538,7 +2546,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2666,7 +2674,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2700,7 +2708,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2791,7 +2799,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -2868,7 +2876,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2908,7 +2916,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2961,7 +2969,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3001,7 +3009,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3060,7 +3068,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3104,7 +3112,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3463,7 +3471,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3514,7 +3522,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3551,7 +3559,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3629,7 +3637,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3790,7 +3798,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3929,7 +3937,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then : +if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then @@ -3973,7 +3981,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : +if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then @@ -4051,7 +4059,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : +if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4088,7 +4096,7 @@ ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then : +if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag @@ -4174,7 +4182,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -4303,7 +4311,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -4343,7 +4351,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -4395,7 +4403,7 @@ set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then @@ -4435,7 +4443,7 @@ set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then @@ -4493,7 +4501,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CCAS_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -4619,7 +4627,7 @@ set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -4659,7 +4667,7 @@ set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -4711,7 +4719,7 @@ set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then : +if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then @@ -4751,7 +4759,7 @@ set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : +if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then @@ -4807,7 +4815,7 @@ fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5244,7 +5252,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -5372,7 +5380,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -5435,7 +5443,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -5502,7 +5510,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5630,7 +5638,7 @@ ac_fn_c_check_header_mongrel "$LINENO" "_mingw_mac.h" "ac_cv_header__mingw_mac_h" "$ac_includes_default" -if test "x$ac_cv_header__mingw_mac_h" = x""yes; then : +if test "x$ac_cv_header__mingw_mac_h" = xyes; then : else as_fn_error $? "Please check if the mingw-w64 header set and the build/host option are set properly." "$LINENO" 5 @@ -5758,10 +5766,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -5853,7 +5872,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -5954,6 +5973,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6261,7 +6281,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64-runtime $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -6327,7 +6347,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64-runtime config.status 3.0b -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -6482,9 +6502,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -6492,12 +6513,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -6519,7 +6541,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -6547,7 +6569,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -6595,7 +6617,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -6627,7 +6649,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -6661,7 +6683,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -6673,8 +6695,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -6794,7 +6816,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -6829,7 +6851,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -6966,21 +6988,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -6991,20 +7014,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-crt/lib32/gdiplus.def b/mingw-w64-crt/lib32/gdiplus.def new file mode 100644 index 0000000..06fb38b --- /dev/null +++ b/mingw-w64-crt/lib32/gdiplus.def
@@ -0,0 +1,616 @@ +; +; Definition file of gdiplus.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "gdiplus.dll" +EXPORTS +GdipAddPathArc@28 +GdipAddPathArcI@28 +GdipAddPathBezier@36 +GdipAddPathBezierI@36 +GdipAddPathBeziers@12 +GdipAddPathBeziersI@12 +GdipAddPathClosedCurve2@16 +GdipAddPathClosedCurve2I@16 +GdipAddPathClosedCurve@12 +GdipAddPathClosedCurveI@12 +GdipAddPathCurve2@16 +GdipAddPathCurve2I@16 +GdipAddPathCurve3@24 +GdipAddPathCurve3I@24 +GdipAddPathCurve@12 +GdipAddPathCurveI@12 +GdipAddPathEllipse@20 +GdipAddPathEllipseI@20 +GdipAddPathLine2@12 +GdipAddPathLine2I@12 +GdipAddPathLine@20 +GdipAddPathLineI@20 +GdipAddPathPath@12 +GdipAddPathPie@28 +GdipAddPathPieI@28 +GdipAddPathPolygon@12 +GdipAddPathPolygonI@12 +GdipAddPathRectangle@20 +GdipAddPathRectangleI@20 +GdipAddPathRectangles@12 +GdipAddPathRectanglesI@12 +GdipAddPathString@32 +GdipAddPathStringI@32 +GdipAlloc@4 +GdipBeginContainer2@8 +GdipBeginContainer@20 +GdipBeginContainerI@20 +GdipBitmapGetPixel@16 +GdipBitmapLockBits@20 +GdipBitmapSetPixel@16 +GdipBitmapSetResolution@12 +GdipBitmapUnlockBits@8 +GdipClearPathMarkers@4 +GdipCloneBitmapArea@28 +GdipCloneBitmapAreaI@28 +GdipCloneBrush@8 +GdipCloneCustomLineCap@8 +GdipCloneFont@8 +GdipCloneFontFamily@8 +GdipCloneImage@8 +GdipCloneImageAttributes@8 +GdipCloneMatrix@8 +GdipClonePath@8 +GdipClonePen@8 +GdipCloneRegion@8 +GdipCloneStringFormat@8 +GdipClosePathFigure@4 +GdipClosePathFigures@4 +GdipCombineRegionPath@12 +GdipCombineRegionRect@12 +GdipCombineRegionRectI@12 +GdipCombineRegionRegion@12 +GdipComment@12 +GdipCreateAdjustableArrowCap@16 +GdipCreateBitmapFromDirectDrawSurface@8 +GdipCreateBitmapFromFile@8 +GdipCreateBitmapFromFileICM@8 +GdipCreateBitmapFromGdiDib@12 +GdipCreateBitmapFromGraphics@16 +GdipCreateBitmapFromHBITMAP@12 +GdipCreateBitmapFromHICON@8 +GdipCreateBitmapFromResource@12 +GdipCreateBitmapFromScan0@24 +GdipCreateBitmapFromStream@8 +GdipCreateBitmapFromStreamICM@8 +GdipCreateCachedBitmap@12 +GdipCreateCustomLineCap@20 +GdipCreateFont@20 +GdipCreateFontFamilyFromName@12 +GdipCreateFontFromDC@8 +GdipCreateFontFromLogfontA@12 +GdipCreateFontFromLogfontW@12 +GdipCreateFromHDC2@12 +GdipCreateFromHDC@8 +GdipCreateFromHWND@8 +GdipCreateFromHWNDICM@8 +GdipCreateHBITMAPFromBitmap@12 +GdipCreateHICONFromBitmap@8 +GdipCreateHalftonePalette@0 +GdipCreateHatchBrush@16 +GdipCreateImageAttributes@4 +GdipCreateLineBrush@24 +GdipCreateLineBrushFromRect@24 +GdipCreateLineBrushFromRectI@24 +GdipCreateLineBrushFromRectWithAngle@28 +GdipCreateLineBrushFromRectWithAngleI@28 +GdipCreateLineBrushI@24 +GdipCreateMatrix2@28 +GdipCreateMatrix3@12 +GdipCreateMatrix3I@12 +GdipCreateMatrix@4 +GdipCreateMetafileFromEmf@12 +GdipCreateMetafileFromFile@8 +GdipCreateMetafileFromStream@8 +GdipCreateMetafileFromWmf@16 +GdipCreateMetafileFromWmfFile@12 +GdipCreatePath2@20 +GdipCreatePath2I@20 +GdipCreatePath@8 +GdipCreatePathGradient@16 +GdipCreatePathGradientFromPath@8 +GdipCreatePathGradientI@16 +GdipCreatePathIter@8 +GdipCreatePen1@16 +GdipCreatePen2@16 +GdipCreateRegion@4 +GdipCreateRegionHrgn@8 +GdipCreateRegionPath@8 +GdipCreateRegionRect@8 +GdipCreateRegionRectI@8 +GdipCreateRegionRgnData@12 +GdipCreateSolidFill@8 +GdipCreateStreamOnFile@12 +GdipCreateStringFormat@12 +GdipCreateTexture2@28 +GdipCreateTexture2I@28 +GdipCreateTexture@12 +GdipCreateTextureIA@28 +GdipCreateTextureIAI@28 +GdipDeleteBrush@4 +GdipDeleteCachedBitmap@4 +GdipDeleteCustomLineCap@4 +GdipDeleteFont@4 +GdipDeleteFontFamily@4 +GdipDeleteGraphics@4 +GdipDeleteMatrix@4 +GdipDeletePath@4 +GdipDeletePathIter@4 +GdipDeletePen@4 +GdipDeletePrivateFontCollection@4 +GdipDeleteRegion@4 +GdipDeleteStringFormat@4 +GdipDisposeImage@4 +GdipDisposeImageAttributes@4 +GdipDrawArc@32 +GdipDrawArcI@32 +GdipDrawBezier@40 +GdipDrawBezierI@40 +GdipDrawBeziers@16 +GdipDrawBeziersI@16 +GdipDrawCachedBitmap@16 +GdipDrawClosedCurve2@20 +GdipDrawClosedCurve2I@20 +GdipDrawClosedCurve@16 +GdipDrawClosedCurveI@16 +GdipDrawCurve2@20 +GdipDrawCurve2I@20 +GdipDrawCurve3@28 +GdipDrawCurve3I@28 +GdipDrawCurve@16 +GdipDrawCurveI@16 +GdipDrawDriverString@32 +GdipDrawEllipse@24 +GdipDrawEllipseI@24 +GdipDrawImage@16 +GdipDrawImageI@16 +GdipDrawImagePointRect@36 +GdipDrawImagePointRectI@36 +GdipDrawImagePoints@16 +GdipDrawImagePointsI@16 +GdipDrawImagePointsRect@48 +GdipDrawImagePointsRectI@48 +GdipDrawImageRect@24 +GdipDrawImageRectI@24 +GdipDrawImageRectRect@56 +GdipDrawImageRectRectI@56 +GdipDrawLine@24 +GdipDrawLineI@24 +GdipDrawLines@16 +GdipDrawLinesI@16 +GdipDrawPath@12 +GdipDrawPie@32 +GdipDrawPieI@32 +GdipDrawPolygon@16 +GdipDrawPolygonI@16 +GdipDrawRectangle@24 +GdipDrawRectangleI@24 +GdipDrawRectangles@16 +GdipDrawRectanglesI@16 +GdipDrawString@28 +GdipEmfToWmfBits@20 +GdipEndContainer@8 +GdipEnumerateMetafileDestPoint@24 +GdipEnumerateMetafileDestPointI@24 +GdipEnumerateMetafileDestPoints@28 +GdipEnumerateMetafileDestPointsI@28 +GdipEnumerateMetafileDestRect@24 +GdipEnumerateMetafileDestRectI@24 +GdipEnumerateMetafileSrcRectDestPoint@32 +GdipEnumerateMetafileSrcRectDestPointI@32 +GdipEnumerateMetafileSrcRectDestPoints@36 +GdipEnumerateMetafileSrcRectDestPointsI@36 +GdipEnumerateMetafileSrcRectDestRect@32 +GdipEnumerateMetafileSrcRectDestRectI@32 +GdipFillClosedCurve2@24 +GdipFillClosedCurve2I@24 +GdipFillClosedCurve@16 +GdipFillClosedCurveI@16 +GdipFillEllipse@24 +GdipFillEllipseI@24 +GdipFillPath@12 +GdipFillPie@32 +GdipFillPieI@32 +GdipFillPolygon2@16 +GdipFillPolygon2I@16 +GdipFillPolygon@20 +GdipFillPolygonI@20 +GdipFillRectangle@24 +GdipFillRectangleI@24 +GdipFillRectangles@16 +GdipFillRectanglesI@16 +GdipFillRegion@12 +GdipFlattenPath@12 +GdipFlush@8 +GdipFree@4 +GdipGetAdjustableArrowCapFillState@8 +GdipGetAdjustableArrowCapHeight@8 +GdipGetAdjustableArrowCapMiddleInset@8 +GdipGetAdjustableArrowCapWidth@8 +GdipGetAllPropertyItems@16 +GdipGetBrushType@8 +GdipGetCellAscent@12 +GdipGetCellDescent@12 +GdipGetClip@8 +GdipGetClipBounds@8 +GdipGetClipBoundsI@8 +GdipGetCompositingMode@8 +GdipGetCompositingQuality@8 +GdipGetCustomLineCapBaseCap@8 +GdipGetCustomLineCapBaseInset@8 +GdipGetCustomLineCapStrokeCaps@12 +GdipGetCustomLineCapStrokeJoin@8 +GdipGetCustomLineCapType@8 +GdipGetCustomLineCapWidthScale@8 +GdipGetDC@8 +GdipGetDpiX@8 +GdipGetDpiY@8 +GdipGetEmHeight@12 +GdipGetEncoderParameterList@16 +GdipGetEncoderParameterListSize@12 +GdipGetFamily@8 +GdipGetFamilyName@12 +GdipGetFontCollectionFamilyCount@8 +GdipGetFontCollectionFamilyList@16 +GdipGetFontHeight@12 +GdipGetFontHeightGivenDPI@12 +GdipGetFontSize@8 +GdipGetFontStyle@8 +GdipGetFontUnit@8 +GdipGetGenericFontFamilyMonospace@4 +GdipGetGenericFontFamilySansSerif@4 +GdipGetGenericFontFamilySerif@4 +GdipGetHatchBackgroundColor@8 +GdipGetHatchForegroundColor@8 +GdipGetHatchStyle@8 +GdipGetHemfFromMetafile@8 +GdipGetImageAttributesAdjustedPalette@12 +GdipGetImageBounds@12 +GdipGetImageDecoders@12 +GdipGetImageDecodersSize@8 +GdipGetImageDimension@12 +GdipGetImageEncoders@12 +GdipGetImageEncodersSize@8 +GdipGetImageFlags@8 +GdipGetImageGraphicsContext@8 +GdipGetImageHeight@8 +GdipGetImageHorizontalResolution@8 +GdipGetImagePalette@12 +GdipGetImagePaletteSize@8 +GdipGetImagePixelFormat@8 +GdipGetImageRawFormat@8 +GdipGetImageThumbnail@24 +GdipGetImageType@8 +GdipGetImageVerticalResolution@8 +GdipGetImageWidth@8 +GdipGetInterpolationMode@8 +GdipGetLineBlend@16 +GdipGetLineBlendCount@8 +GdipGetLineColors@8 +GdipGetLineGammaCorrection@8 +GdipGetLinePresetBlend@16 +GdipGetLinePresetBlendCount@8 +GdipGetLineRect@8 +GdipGetLineRectI@8 +GdipGetLineSpacing@12 +GdipGetLineTransform@8 +GdipGetLineWrapMode@8 +GdipGetLogFontA@12 +GdipGetLogFontW@12 +GdipGetMatrixElements@8 +GdipGetMetafileDownLevelRasterizationLimit@8 +GdipGetMetafileHeaderFromEmf@8 +GdipGetMetafileHeaderFromFile@8 +GdipGetMetafileHeaderFromMetafile@8 +GdipGetMetafileHeaderFromStream@8 +GdipGetMetafileHeaderFromWmf@12 +GdipGetNearestColor@8 +GdipGetPageScale@8 +GdipGetPageUnit@8 +GdipGetPathData@8 +GdipGetPathFillMode@8 +GdipGetPathGradientBlend@16 +GdipGetPathGradientBlendCount@8 +GdipGetPathGradientCenterColor@8 +GdipGetPathGradientCenterPoint@8 +GdipGetPathGradientCenterPointI@8 +GdipGetPathGradientFocusScales@12 +GdipGetPathGradientGammaCorrection@8 +GdipGetPathGradientPath@8 +GdipGetPathGradientPointCount@8 +GdipGetPathGradientPresetBlend@16 +GdipGetPathGradientPresetBlendCount@8 +GdipGetPathGradientRect@8 +GdipGetPathGradientRectI@8 +GdipGetPathGradientSurroundColorCount@8 +GdipGetPathGradientSurroundColorsWithCount@12 +GdipGetPathGradientTransform@8 +GdipGetPathGradientWrapMode@8 +GdipGetPathLastPoint@8 +GdipGetPathPoints@12 +GdipGetPathPointsI@12 +GdipGetPathTypes@12 +GdipGetPathWorldBounds@16 +GdipGetPathWorldBoundsI@16 +GdipGetPenBrushFill@8 +GdipGetPenColor@8 +GdipGetPenCompoundArray@12 +GdipGetPenCompoundCount@8 +GdipGetPenCustomEndCap@8 +GdipGetPenCustomStartCap@8 +GdipGetPenDashArray@12 +GdipGetPenDashCap197819@8 +GdipGetPenDashCount@8 +GdipGetPenDashOffset@8 +GdipGetPenDashStyle@8 +GdipGetPenEndCap@8 +GdipGetPenFillType@8 +GdipGetPenLineJoin@8 +GdipGetPenMiterLimit@8 +GdipGetPenMode@8 +GdipGetPenStartCap@8 +GdipGetPenTransform@8 +GdipGetPenUnit@8 +GdipGetPenWidth@8 +GdipGetPixelOffsetMode@8 +GdipGetPointCount@8 +GdipGetPropertyCount@8 +GdipGetPropertyIdList@12 +GdipGetPropertyItem@16 +GdipGetPropertyItemSize@12 +GdipGetPropertySize@12 +GdipGetRegionBounds@12 +GdipGetRegionBoundsI@12 +GdipGetRegionData@16 +GdipGetRegionDataSize@8 +GdipGetRegionHRgn@12 +GdipGetRegionScans@16 +GdipGetRegionScansCount@12 +GdipGetRegionScansI@16 +GdipGetRenderingOrigin@12 +GdipGetSmoothingMode@8 +GdipGetSolidFillColor@8 +GdipGetStringFormatAlign@8 +GdipGetStringFormatDigitSubstitution@12 +GdipGetStringFormatFlags@8 +GdipGetStringFormatHotkeyPrefix@8 +GdipGetStringFormatLineAlign@8 +GdipGetStringFormatMeasurableCharacterRangeCount@8 +GdipGetStringFormatTabStopCount@8 +GdipGetStringFormatTabStops@16 +GdipGetStringFormatTrimming@8 +GdipGetTextContrast@8 +GdipGetTextRenderingHint@8 +GdipGetTextureImage@8 +GdipGetTextureTransform@8 +GdipGetTextureWrapMode@8 +GdipGetVisibleClipBounds@8 +GdipGetVisibleClipBoundsI@8 +GdipGetWorldTransform@8 +GdipGraphicsClear@8 +GdipImageForceValidation@4 +GdipImageGetFrameCount@12 +GdipImageGetFrameDimensionsCount@8 +GdipImageGetFrameDimensionsList@12 +GdipImageRotateFlip@8 +GdipImageSelectActiveFrame@12 +GdipInvertMatrix@4 +GdipIsClipEmpty@8 +GdipIsEmptyRegion@12 +GdipIsEqualRegion@16 +GdipIsInfiniteRegion@12 +GdipIsMatrixEqual@12 +GdipIsMatrixIdentity@8 +GdipIsMatrixInvertible@8 +GdipIsOutlineVisiblePathPoint@24 +GdipIsOutlineVisiblePathPointI@24 +GdipIsStyleAvailable@12 +GdipIsVisibleClipEmpty@8 +GdipIsVisiblePathPoint@20 +GdipIsVisiblePathPointI@20 +GdipIsVisiblePoint@16 +GdipIsVisiblePointI@16 +GdipIsVisibleRect@24 +GdipIsVisibleRectI@24 +GdipIsVisibleRegionPoint@20 +GdipIsVisibleRegionPointI@20 +GdipIsVisibleRegionRect@28 +GdipIsVisibleRegionRectI@28 +GdipLoadImageFromFile@8 +GdipLoadImageFromFileICM@8 +GdipLoadImageFromStream@8 +GdipLoadImageFromStreamICM@8 +GdipMeasureCharacterRanges@32 +GdipMeasureDriverString@32 +GdipMeasureString@36 +GdipMultiplyLineTransform@12 +GdipMultiplyMatrix@12 +GdipMultiplyPathGradientTransform@12 +GdipMultiplyPenTransform@12 +GdipMultiplyTextureTransform@12 +GdipMultiplyWorldTransform@12 +GdipNewInstalledFontCollection@4 +GdipNewPrivateFontCollection@4 +GdipPathIterCopyData@24 +GdipPathIterEnumerate@20 +GdipPathIterGetCount@8 +GdipPathIterGetSubpathCount@8 +GdipPathIterHasCurve@8 +GdipPathIterIsValid@8 +GdipPathIterNextMarker@16 +GdipPathIterNextMarkerPath@12 +GdipPathIterNextPathType@20 +GdipPathIterNextSubpath@20 +GdipPathIterNextSubpathPath@16 +GdipPathIterRewind@4 +GdipPlayMetafileRecord@20 +GdipPrivateAddFontFile@8 +GdipPrivateAddMemoryFont@12 +GdipRecordMetafile@24 +GdipRecordMetafileFileName@28 +GdipRecordMetafileFileNameI@28 +GdipRecordMetafileI@24 +GdipRecordMetafileStream@28 +GdipRecordMetafileStreamI@28 +GdipReleaseDC@8 +GdipRemovePropertyItem@8 +GdipResetClip@4 +GdipResetImageAttributes@8 +GdipResetLineTransform@4 +GdipResetPageTransform@4 +GdipResetPath@4 +GdipResetPathGradientTransform@4 +GdipResetPenTransform@4 +GdipResetTextureTransform@4 +GdipResetWorldTransform@4 +GdipRestoreGraphics@8 +GdipReversePath@4 +GdipRotateLineTransform@12 +GdipRotateMatrix@12 +GdipRotatePathGradientTransform@12 +GdipRotatePenTransform@12 +GdipRotateTextureTransform@12 +GdipRotateWorldTransform@12 +GdipSaveAdd@8 +GdipSaveAddImage@12 +GdipSaveGraphics@8 +GdipSaveImageToFile@16 +GdipSaveImageToStream@16 +GdipScaleLineTransform@16 +GdipScaleMatrix@16 +GdipScalePathGradientTransform@16 +GdipScalePenTransform@16 +GdipScaleTextureTransform@16 +GdipScaleWorldTransform@16 +GdipSetAdjustableArrowCapFillState@8 +GdipSetAdjustableArrowCapHeight@8 +GdipSetAdjustableArrowCapMiddleInset@8 +GdipSetAdjustableArrowCapWidth@8 +GdipSetClipGraphics@12 +GdipSetClipHrgn@12 +GdipSetClipPath@12 +GdipSetClipRect@24 +GdipSetClipRectI@24 +GdipSetClipRegion@12 +GdipSetCompositingMode@8 +GdipSetCompositingQuality@8 +GdipSetCustomLineCapBaseCap@8 +GdipSetCustomLineCapBaseInset@8 +GdipSetCustomLineCapStrokeCaps@12 +GdipSetCustomLineCapStrokeJoin@8 +GdipSetCustomLineCapWidthScale@8 +GdipSetEmpty@4 +GdipSetImageAttributesCachedBackground@8 +GdipSetImageAttributesColorKeys@20 +GdipSetImageAttributesColorMatrix@24 +GdipSetImageAttributesGamma@16 +GdipSetImageAttributesNoOp@12 +GdipSetImageAttributesOutputChannel@16 +GdipSetImageAttributesOutputChannelColorProfile@16 +GdipSetImageAttributesRemapTable@20 +GdipSetImageAttributesThreshold@16 +GdipSetImageAttributesToIdentity@8 +GdipSetImageAttributesWrapMode@16 +GdipSetImagePalette@8 +GdipSetInfinite@4 +GdipSetInterpolationMode@8 +GdipSetLineBlend@16 +GdipSetLineColors@12 +GdipSetLineGammaCorrection@8 +GdipSetLineLinearBlend@12 +GdipSetLinePresetBlend@16 +GdipSetLineSigmaBlend@12 +GdipSetLineTransform@8 +GdipSetLineWrapMode@8 +GdipSetMatrixElements@28 +GdipSetMetafileDownLevelRasterizationLimit@8 +GdipSetPageScale@8 +GdipSetPageUnit@8 +GdipSetPathFillMode@8 +GdipSetPathGradientBlend@16 +GdipSetPathGradientCenterColor@8 +GdipSetPathGradientCenterPoint@8 +GdipSetPathGradientCenterPointI@8 +GdipSetPathGradientFocusScales@12 +GdipSetPathGradientGammaCorrection@8 +GdipSetPathGradientLinearBlend@12 +GdipSetPathGradientPath@8 +GdipSetPathGradientPresetBlend@16 +GdipSetPathGradientSigmaBlend@12 +GdipSetPathGradientSurroundColorsWithCount@12 +GdipSetPathGradientTransform@8 +GdipSetPathGradientWrapMode@8 +GdipSetPathMarker@4 +GdipSetPenBrushFill@8 +GdipSetPenColor@8 +GdipSetPenCompoundArray@12 +GdipSetPenCustomEndCap@8 +GdipSetPenCustomStartCap@8 +GdipSetPenDashArray@12 +GdipSetPenDashCap197819@8 +GdipSetPenDashOffset@8 +GdipSetPenDashStyle@8 +GdipSetPenEndCap@8 +GdipSetPenLineCap197819@16 +GdipSetPenLineJoin@8 +GdipSetPenMiterLimit@8 +GdipSetPenMode@8 +GdipSetPenStartCap@8 +GdipSetPenTransform@8 +GdipSetPenUnit@8 +GdipSetPenWidth@8 +GdipSetPixelOffsetMode@8 +GdipSetPropertyItem@8 +GdipSetRenderingOrigin@12 +GdipSetSmoothingMode@8 +GdipSetSolidFillColor@8 +GdipSetStringFormatAlign@8 +GdipSetStringFormatDigitSubstitution@12 +GdipSetStringFormatFlags@8 +GdipSetStringFormatHotkeyPrefix@8 +GdipSetStringFormatLineAlign@8 +GdipSetStringFormatMeasurableCharacterRanges@12 +GdipSetStringFormatTabStops@16 +GdipSetStringFormatTrimming@8 +GdipSetTextContrast@8 +GdipSetTextRenderingHint@8 +GdipSetTextureTransform@8 +GdipSetTextureWrapMode@8 +GdipSetWorldTransform@8 +GdipShearMatrix@16 +GdipStartPathFigure@4 +GdipStringFormatGetGenericDefault@4 +GdipStringFormatGetGenericTypographic@4 +GdipTestControl@8 +GdipTransformMatrixPoints@12 +GdipTransformMatrixPointsI@12 +GdipTransformPath@8 +GdipTransformPoints@20 +GdipTransformPointsI@20 +GdipTransformRegion@8 +GdipTranslateClip@12 +GdipTranslateClipI@12 +GdipTranslateLineTransform@16 +GdipTranslateMatrix@16 +GdipTranslatePathGradientTransform@16 +GdipTranslatePenTransform@16 +GdipTranslateRegion@12 +GdipTranslateRegionI@12 +GdipTranslateTextureTransform@16 +GdipTranslateWorldTransform@16 +GdipVectorTransformMatrixPoints@12 +GdipVectorTransformMatrixPointsI@12 +GdipWarpPath@40 +GdipWidenPath@16 +GdipWindingModeOutline@12 +GdiplusNotificationHook@4 +GdiplusNotificationUnhook@4 +GdiplusShutdown@4 +GdiplusStartup@12
diff --git a/mingw-w64-crt/lib64/gdiplus.def b/mingw-w64-crt/lib64/gdiplus.def new file mode 100644 index 0000000..dbc82c6 --- /dev/null +++ b/mingw-w64-crt/lib64/gdiplus.def
@@ -0,0 +1,637 @@ +; +; Definition file of gdiplus.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "gdiplus.dll" +EXPORTS +GdipAddPathArc +GdipAddPathArcI +GdipAddPathBezier +GdipAddPathBezierI +GdipAddPathBeziers +GdipAddPathBeziersI +GdipAddPathClosedCurve +GdipAddPathClosedCurve2 +GdipAddPathClosedCurve2I +GdipAddPathClosedCurveI +GdipAddPathCurve +GdipAddPathCurve2 +GdipAddPathCurve2I +GdipAddPathCurve3 +GdipAddPathCurve3I +GdipAddPathCurveI +GdipAddPathEllipse +GdipAddPathEllipseI +GdipAddPathLine +GdipAddPathLine2 +GdipAddPathLine2I +GdipAddPathLineI +GdipAddPathPath +GdipAddPathPie +GdipAddPathPieI +GdipAddPathPolygon +GdipAddPathPolygonI +GdipAddPathRectangle +GdipAddPathRectangleI +GdipAddPathRectangles +GdipAddPathRectanglesI +GdipAddPathString +GdipAddPathStringI +GdipAlloc +GdipBeginContainer +GdipBeginContainer2 +GdipBeginContainerI +GdipBitmapGetPixel +GdipBitmapLockBits +GdipBitmapSetPixel +GdipBitmapSetResolution +GdipBitmapUnlockBits +GdipClearPathMarkers +GdipCloneBitmapArea +GdipCloneBitmapAreaI +GdipCloneBrush +GdipCloneCustomLineCap +GdipCloneFont +GdipCloneFontFamily +GdipCloneImage +GdipCloneImageAttributes +GdipCloneMatrix +GdipClonePath +GdipClonePen +GdipCloneRegion +GdipCloneStringFormat +GdipClosePathFigure +GdipClosePathFigures +GdipCombineRegionPath +GdipCombineRegionRect +GdipCombineRegionRectI +GdipCombineRegionRegion +GdipComment +GdipCreateAdjustableArrowCap +GdipCreateBitmapFromDirectDrawSurface +GdipCreateBitmapFromFile +GdipCreateBitmapFromFileICM +GdipCreateBitmapFromGdiDib +GdipCreateBitmapFromGraphics +GdipCreateBitmapFromHBITMAP +GdipCreateBitmapFromHICON +GdipCreateBitmapFromResource +GdipCreateBitmapFromScan0 +GdipCreateBitmapFromStream +GdipCreateBitmapFromStreamICM +GdipCreateCachedBitmap +GdipCreateCustomLineCap +GdipCreateFont +GdipCreateFontFamilyFromName +GdipCreateFontFromDC +GdipCreateFontFromLogfontA +GdipCreateFontFromLogfontW +GdipCreateFromHDC +GdipCreateFromHDC2 +GdipCreateFromHWND +GdipCreateFromHWNDICM +GdipCreateHBITMAPFromBitmap +GdipCreateHICONFromBitmap +GdipCreateHalftonePalette +GdipCreateHatchBrush +GdipCreateImageAttributes +GdipCreateLineBrush +GdipCreateLineBrushFromRect +GdipCreateLineBrushFromRectI +GdipCreateLineBrushFromRectWithAngle +GdipCreateLineBrushFromRectWithAngleI +GdipCreateLineBrushI +GdipCreateMatrix +GdipCreateMatrix2 +GdipCreateMatrix3 +GdipCreateMatrix3I +GdipCreateMetafileFromEmf +GdipCreateMetafileFromFile +GdipCreateMetafileFromStream +GdipCreateMetafileFromWmf +GdipCreateMetafileFromWmfFile +GdipCreatePath +GdipCreatePath2 +GdipCreatePath2I +GdipCreatePathGradient +GdipCreatePathGradientFromPath +GdipCreatePathGradientI +GdipCreatePathIter +GdipCreatePen1 +GdipCreatePen2 +GdipCreateRegion +GdipCreateRegionHrgn +GdipCreateRegionPath +GdipCreateRegionRect +GdipCreateRegionRectI +GdipCreateRegionRgnData +GdipCreateSolidFill +GdipCreateStreamOnFile +GdipCreateStringFormat +GdipCreateTexture +GdipCreateTexture2 +GdipCreateTexture2I +GdipCreateTextureIA +GdipCreateTextureIAI +GdipDeleteBrush +GdipDeleteCachedBitmap +GdipDeleteCustomLineCap +GdipDeleteFont +GdipDeleteFontFamily +GdipDeleteGraphics +GdipDeleteMatrix +GdipDeletePath +GdipDeletePathIter +GdipDeletePen +GdipDeletePrivateFontCollection +GdipDeleteRegion +GdipDeleteStringFormat +GdipDisposeImage +GdipDisposeImageAttributes +GdipDrawArc +GdipDrawArcI +GdipDrawBezier +GdipDrawBezierI +GdipDrawBeziers +GdipDrawBeziersI +GdipDrawCachedBitmap +GdipDrawClosedCurve +GdipDrawClosedCurve2 +GdipDrawClosedCurve2I +GdipDrawClosedCurveI +GdipDrawCurve +GdipDrawCurve2 +GdipDrawCurve2I +GdipDrawCurve3 +GdipDrawCurve3I +GdipDrawCurveI +GdipDrawDriverString +GdipDrawEllipse +GdipDrawEllipseI +GdipDrawImage +GdipDrawImageI +GdipDrawImagePointRect +GdipDrawImagePointRectI +GdipDrawImagePoints +GdipDrawImagePointsI +GdipDrawImagePointsRect +GdipDrawImagePointsRectI +GdipDrawImageRect +GdipDrawImageRectI +GdipDrawImageRectRect +GdipDrawImageRectRectI +GdipDrawLine +GdipDrawLineI +GdipDrawLines +GdipDrawLinesI +GdipDrawPath +GdipDrawPie +GdipDrawPieI +GdipDrawPolygon +GdipDrawPolygonI +GdipDrawRectangle +GdipDrawRectangleI +GdipDrawRectangles +GdipDrawRectanglesI +GdipDrawString +GdipEmfToWmfBits +GdipEndContainer +GdipEnumerateMetafileDestPoint +GdipEnumerateMetafileDestPointI +GdipEnumerateMetafileDestPoints +GdipEnumerateMetafileDestPointsI +GdipEnumerateMetafileDestRect +GdipEnumerateMetafileDestRectI +GdipEnumerateMetafileSrcRectDestPoint +GdipEnumerateMetafileSrcRectDestPointI +GdipEnumerateMetafileSrcRectDestPoints +GdipEnumerateMetafileSrcRectDestPointsI +GdipEnumerateMetafileSrcRectDestRect +GdipEnumerateMetafileSrcRectDestRectI +GdipFillClosedCurve +GdipFillClosedCurve2 +GdipFillClosedCurve2I +GdipFillClosedCurveI +GdipFillEllipse +GdipFillEllipseI +GdipFillPath +GdipFillPie +GdipFillPieI +GdipFillPolygon +GdipFillPolygon2 +GdipFillPolygon2I +GdipFillPolygonI +GdipFillRectangle +GdipFillRectangleI +GdipFillRectangles +GdipFillRectanglesI +GdipFillRegion +GdipFlattenPath +GdipFlush +GdipFree +GdipGetAdjustableArrowCapFillState +GdipGetAdjustableArrowCapHeight +GdipGetAdjustableArrowCapMiddleInset +GdipGetAdjustableArrowCapWidth +GdipGetAllPropertyItems +GdipGetBrushType +GdipGetCellAscent +GdipGetCellDescent +GdipGetClip +GdipGetClipBounds +GdipGetClipBoundsI +GdipGetCompositingMode +GdipGetCompositingQuality +GdipGetCustomLineCapBaseCap +GdipGetCustomLineCapBaseInset +GdipGetCustomLineCapStrokeCaps +GdipGetCustomLineCapStrokeJoin +GdipGetCustomLineCapType +GdipGetCustomLineCapWidthScale +GdipGetDC +GdipGetDpiX +GdipGetDpiY +GdipGetEmHeight +GdipGetEncoderParameterList +GdipGetEncoderParameterListSize +GdipGetFamily +GdipGetFamilyName +GdipGetFontCollectionFamilyCount +GdipGetFontCollectionFamilyList +GdipGetFontHeight +GdipGetFontHeightGivenDPI +GdipGetFontSize +GdipGetFontStyle +GdipGetFontUnit +GdipGetGenericFontFamilyMonospace +GdipGetGenericFontFamilySansSerif +GdipGetGenericFontFamilySerif +GdipGetHatchBackgroundColor +GdipGetHatchForegroundColor +GdipGetHatchStyle +GdipGetHemfFromMetafile +GdipGetImageAttributesAdjustedPalette +GdipGetImageBounds +GdipGetImageDecoders +GdipGetImageDecodersSize +GdipGetImageDimension +GdipGetImageEncoders +GdipGetImageEncodersSize +GdipGetImageFlags +GdipGetImageGraphicsContext +GdipGetImageHeight +GdipGetImageHorizontalResolution +GdipGetImagePalette +GdipGetImagePaletteSize +GdipGetImagePixelFormat +GdipGetImageRawFormat +GdipGetImageThumbnail +GdipGetImageType +GdipGetImageVerticalResolution +GdipGetImageWidth +GdipGetInterpolationMode +GdipGetLineBlend +GdipGetLineBlendCount +GdipGetLineColors +GdipGetLineGammaCorrection +GdipGetLinePresetBlend +GdipGetLinePresetBlendCount +GdipGetLineRect +GdipGetLineRectI +GdipGetLineSpacing +GdipGetLineTransform +GdipGetLineWrapMode +GdipGetLogFontA +GdipGetLogFontW +GdipGetMatrixElements +GdipGetMetafileDownLevelRasterizationLimit +GdipGetMetafileHeaderFromEmf +GdipGetMetafileHeaderFromFile +GdipGetMetafileHeaderFromMetafile +GdipGetMetafileHeaderFromStream +GdipGetMetafileHeaderFromWmf +GdipGetNearestColor +GdipGetPageScale +GdipGetPageUnit +GdipGetPathData +GdipGetPathFillMode +GdipGetPathGradientBlend +GdipGetPathGradientBlendCount +GdipGetPathGradientCenterColor +GdipGetPathGradientCenterPoint +GdipGetPathGradientCenterPointI +GdipGetPathGradientFocusScales +GdipGetPathGradientGammaCorrection +GdipGetPathGradientPath +GdipGetPathGradientPointCount +GdipGetPathGradientPresetBlend +GdipGetPathGradientPresetBlendCount +GdipGetPathGradientRect +GdipGetPathGradientRectI +GdipGetPathGradientSurroundColorCount +GdipGetPathGradientSurroundColorsWithCount +GdipGetPathGradientTransform +GdipGetPathGradientWrapMode +GdipGetPathLastPoint +GdipGetPathPoints +GdipGetPathPointsI +GdipGetPathTypes +GdipGetPathWorldBounds +GdipGetPathWorldBoundsI +GdipGetPenBrushFill +GdipGetPenColor +GdipGetPenCompoundArray +GdipGetPenCompoundCount +GdipGetPenCustomEndCap +GdipGetPenCustomStartCap +GdipGetPenDashArray +GdipGetPenDashCap197819 +GdipGetPenDashCount +GdipGetPenDashOffset +GdipGetPenDashStyle +GdipGetPenEndCap +GdipGetPenFillType +GdipGetPenLineJoin +GdipGetPenMiterLimit +GdipGetPenMode +GdipGetPenStartCap +GdipGetPenTransform +GdipGetPenUnit +GdipGetPenWidth +GdipGetPixelOffsetMode +GdipGetPointCount +GdipGetPropertyCount +GdipGetPropertyIdList +GdipGetPropertyItem +GdipGetPropertyItemSize +GdipGetPropertySize +GdipGetRegionBounds +GdipGetRegionBoundsI +GdipGetRegionData +GdipGetRegionDataSize +GdipGetRegionHRgn +GdipGetRegionScans +GdipGetRegionScansCount +GdipGetRegionScansI +GdipGetRenderingOrigin +GdipGetSmoothingMode +GdipGetSolidFillColor +GdipGetStringFormatAlign +GdipGetStringFormatDigitSubstitution +GdipGetStringFormatFlags +GdipGetStringFormatHotkeyPrefix +GdipGetStringFormatLineAlign +GdipGetStringFormatMeasurableCharacterRangeCount +GdipGetStringFormatTabStopCount +GdipGetStringFormatTabStops +GdipGetStringFormatTrimming +GdipGetTextContrast +GdipGetTextRenderingHint +GdipGetTextureImage +GdipGetTextureTransform +GdipGetTextureWrapMode +GdipGetVisibleClipBounds +GdipGetVisibleClipBoundsI +GdipGetWorldTransform +GdipGraphicsClear +GdipImageForceValidation +GdipImageGetFrameCount +GdipImageGetFrameDimensionsCount +GdipImageGetFrameDimensionsList +GdipImageRotateFlip +GdipImageSelectActiveFrame +GdipInvertMatrix +GdipIsClipEmpty +GdipIsEmptyRegion +GdipIsEqualRegion +GdipIsInfiniteRegion +GdipIsMatrixEqual +GdipIsMatrixIdentity +GdipIsMatrixInvertible +GdipIsOutlineVisiblePathPoint +GdipIsOutlineVisiblePathPointI +GdipIsStyleAvailable +GdipIsVisibleClipEmpty +GdipIsVisiblePathPoint +GdipIsVisiblePathPointI +GdipIsVisiblePoint +GdipIsVisiblePointI +GdipIsVisibleRect +GdipIsVisibleRectI +GdipIsVisibleRegionPoint +GdipIsVisibleRegionPointI +GdipIsVisibleRegionRect +GdipIsVisibleRegionRectI +GdipLoadImageFromFile +GdipLoadImageFromFileICM +GdipLoadImageFromStream +GdipLoadImageFromStreamICM +GdipMeasureCharacterRanges +GdipMeasureDriverString +GdipMeasureString +GdipMultiplyLineTransform +GdipMultiplyMatrix +GdipMultiplyPathGradientTransform +GdipMultiplyPenTransform +GdipMultiplyTextureTransform +GdipMultiplyWorldTransform +GdipNewInstalledFontCollection +GdipNewPrivateFontCollection +GdipPathIterCopyData +GdipPathIterEnumerate +GdipPathIterGetCount +GdipPathIterGetSubpathCount +GdipPathIterHasCurve +GdipPathIterIsValid +GdipPathIterNextMarker +GdipPathIterNextMarkerPath +GdipPathIterNextPathType +GdipPathIterNextSubpath +GdipPathIterNextSubpathPath +GdipPathIterRewind +GdipPlayMetafileRecord +GdipPrivateAddFontFile +GdipPrivateAddMemoryFont +GdipRecordMetafile +GdipRecordMetafileFileName +GdipRecordMetafileFileNameI +GdipRecordMetafileI +GdipRecordMetafileStream +GdipRecordMetafileStreamI +GdipReleaseDC +GdipRemovePropertyItem +GdipResetClip +GdipResetImageAttributes +GdipResetLineTransform +GdipResetPageTransform +GdipResetPath +GdipResetPathGradientTransform +GdipResetPenTransform +GdipResetTextureTransform +GdipResetWorldTransform +GdipRestoreGraphics +GdipReversePath +GdipRotateLineTransform +GdipRotateMatrix +GdipRotatePathGradientTransform +GdipRotatePenTransform +GdipRotateTextureTransform +GdipRotateWorldTransform +GdipSaveAdd +GdipSaveAddImage +GdipSaveGraphics +GdipSaveImageToFile +GdipSaveImageToStream +GdipScaleLineTransform +GdipScaleMatrix +GdipScalePathGradientTransform +GdipScalePenTransform +GdipScaleTextureTransform +GdipScaleWorldTransform +GdipSetAdjustableArrowCapFillState +GdipSetAdjustableArrowCapHeight +GdipSetAdjustableArrowCapMiddleInset +GdipSetAdjustableArrowCapWidth +GdipSetClipGraphics +GdipSetClipHrgn +GdipSetClipPath +GdipSetClipRect +GdipSetClipRectI +GdipSetClipRegion +GdipSetCompositingMode +GdipSetCompositingQuality +GdipSetCustomLineCapBaseCap +GdipSetCustomLineCapBaseInset +GdipSetCustomLineCapStrokeCaps +GdipSetCustomLineCapStrokeJoin +GdipSetCustomLineCapWidthScale +GdipSetEmpty +GdipSetImageAttributesCachedBackground +GdipSetImageAttributesColorKeys +GdipSetImageAttributesColorMatrix +GdipSetImageAttributesGamma +GdipSetImageAttributesNoOp +GdipSetImageAttributesOutputChannel +GdipSetImageAttributesOutputChannelColorProfile +GdipSetImageAttributesRemapTable +GdipSetImageAttributesThreshold +GdipSetImageAttributesToIdentity +GdipSetImageAttributesWrapMode +GdipSetImagePalette +GdipSetInfinite +GdipSetInterpolationMode +GdipSetLineBlend +GdipSetLineColors +GdipSetLineGammaCorrection +GdipSetLineLinearBlend +GdipSetLinePresetBlend +GdipSetLineSigmaBlend +GdipSetLineTransform +GdipSetLineWrapMode +GdipSetMatrixElements +GdipSetMetafileDownLevelRasterizationLimit +GdipSetPageScale +GdipSetPageUnit +GdipSetPathFillMode +GdipSetPathGradientBlend +GdipSetPathGradientCenterColor +GdipSetPathGradientCenterPoint +GdipSetPathGradientCenterPointI +GdipSetPathGradientFocusScales +GdipSetPathGradientGammaCorrection +GdipSetPathGradientLinearBlend +GdipSetPathGradientPath +GdipSetPathGradientPresetBlend +GdipSetPathGradientSigmaBlend +GdipSetPathGradientSurroundColorsWithCount +GdipSetPathGradientTransform +GdipSetPathGradientWrapMode +GdipSetPathMarker +GdipSetPenBrushFill +GdipSetPenColor +GdipSetPenCompoundArray +GdipSetPenCustomEndCap +GdipSetPenCustomStartCap +GdipSetPenDashArray +GdipSetPenDashCap197819 +GdipSetPenDashOffset +GdipSetPenDashStyle +GdipSetPenEndCap +GdipSetPenLineCap197819 +GdipSetPenLineJoin +GdipSetPenMiterLimit +GdipSetPenMode +GdipSetPenStartCap +GdipSetPenTransform +GdipSetPenUnit +GdipSetPenWidth +GdipSetPixelOffsetMode +GdipSetPropertyItem +GdipSetRenderingOrigin +GdipSetSmoothingMode +GdipSetSolidFillColor +GdipSetStringFormatAlign +GdipSetStringFormatDigitSubstitution +GdipSetStringFormatFlags +GdipSetStringFormatHotkeyPrefix +GdipSetStringFormatLineAlign +GdipSetStringFormatMeasurableCharacterRanges +GdipSetStringFormatTabStops +GdipSetStringFormatTrimming +GdipSetTextContrast +GdipSetTextRenderingHint +GdipSetTextureTransform +GdipSetTextureWrapMode +GdipSetWorldTransform +GdipShearMatrix +GdipStartPathFigure +GdipStringFormatGetGenericDefault +GdipStringFormatGetGenericTypographic +GdipTestControl +GdipTransformMatrixPoints +GdipTransformMatrixPointsI +GdipTransformPath +GdipTransformPoints +GdipTransformPointsI +GdipTransformRegion +GdipTranslateClip +GdipTranslateClipI +GdipTranslateLineTransform +GdipTranslateMatrix +GdipTranslatePathGradientTransform +GdipTranslatePenTransform +GdipTranslateRegion +GdipTranslateRegionI +GdipTranslateTextureTransform +GdipTranslateWorldTransform +GdipVectorTransformMatrixPoints +GdipVectorTransformMatrixPointsI +GdipWarpPath +GdipWidenPath +GdipWindingModeOutline +GdiplusNotificationHook +GdiplusNotificationUnhook +GdiplusShutdown +GdiplusStartup +GdipFindFirstImageItem +GdipFindNextImageItem +GdipGetImageItemData +GdipCreateEffect +GdipDeleteEffect +GdipGetEffectParameterSize +GdipGetEffectParameters +GdipSetEffectParameters +GdipBitmapCreateApplyEffect +GdipBitmapApplyEffect +GdipBitmapGetHistogram +GdipBitmapGetHistogramSize +GdipBitmapConvertFormat +GdipInitializePalette +GdipImageSetAbort +GdipGraphicsSetAbort +GdipDrawImageFX +GdipConvertToEmfPlus +GdipConvertToEmfPlusToFile +GdipConvertToEmfPlusToStream +GdipPlayTSClientRecord
diff --git a/mingw-w64-crt/libsrc/gdiplus.c b/mingw-w64-crt/libsrc/gdiplus.c new file mode 100644 index 0000000..70c62f3 --- /dev/null +++ b/mingw-w64-crt/libsrc/gdiplus.c
@@ -0,0 +1,66 @@ +/* + * Generate GUIDs for GDI+ + * + * The Image Format GUIDs were generated by loading example images of + * various types with GdipLoadImageFromFile and then extracting the + * image format with GdipGetImageRawFormat. + * + * The Encoder Parameter GUIDs were taken from this .NET MSDN page: + * http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx + * + * The Frame Dimension GUIDs were generated by loading example multi-frame + * images (multi-page TIFF; animated GIF) and querying the frame dimension list + * using GdipImageGetFrameDimensionsList. + */ + +/* TODO: find the remaining GUIDs */ + +#include <initguid.h> + +void *_GdipFontFamilyCachedGenericMonospace = 0; +void *_GdipFontFamilyCachedGenericSansSerif = 0; +void *_GdipFontFamilyCachedGenericSerif = 0; +void *_GdipStringFormatCachedGenericDefault = 0; +void *_GdipStringFormatCachedGenericTypographic = 0; + +DEFINE_GUID(EncoderChrominanceTable,0xF2E455DC,0x09B3,0x4316,0x82,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C); +DEFINE_GUID(EncoderColorDepth,0x66087055,0xAD66,0x4C7C,0x9A,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37); +/* EncoderColorSpace missing */ +DEFINE_GUID(EncoderCompression,0xE09D739D,0xCCD4,0x44EE,0x8E,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58); +/* EncoderImageItems missing */ +DEFINE_GUID(EncoderLuminanceTable,0xEDB33BCE,0x0266,0x4A77,0xB9,0x04,0x27,0x21,0x60,0x99,0xE7,0x17); +DEFINE_GUID(EncoderQuality,0x1D5BE4B5,0xFA4A,0x452D,0x9C,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB); +DEFINE_GUID(EncoderRenderMethod,0x6D42C53A,0x229A,0x4825,0x8B,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8); +/* EncoderSaveAsCMYK missing */ +DEFINE_GUID(EncoderSaveFlag,0x292266FC,0xAC40,0x47BF,0x8C,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE); +DEFINE_GUID(EncoderScanMethod,0x3A4E2661,0x3109,0x4E56,0x85,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA); +DEFINE_GUID(EncoderTransformation,0x8D0EB2D1,0xA58E,0x4EA8,0xAA,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9); +DEFINE_GUID(EncoderVersion,0x24D18C76,0x814A,0x41A4,0xBF,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97); + +DEFINE_GUID(ImageFormatBMP,0xB96B3CAB,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatEMF,0xB96B3CAC,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +/* ImageFormatEXIF missing */ +DEFINE_GUID(ImageFormatGIF,0xB96B3CB0,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatIcon,0xB96B3CB5,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatJPEG,0xB96B3CAE,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatMemoryBMP,0xB96B3CAA,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatPNG,0xB96B3CAF,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +DEFINE_GUID(ImageFormatTIFF,0xB96B3CB1,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); +/* ImageFormatUndefined missing */ +DEFINE_GUID(ImageFormatWMF,0xB96B3CAD,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); + +DEFINE_GUID(FrameDimensionPage,0x7462DC86,0x6180,0x4C7E,0x8E,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83); +/* FrameDimensionResolution missing */ +DEFINE_GUID(FrameDimensionTime,0x6AEDBD6D,0x3FB5,0x418A,0x83,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72); + +/* BlurEffectGuid missing */ +/* BrightnessContrastEffectGuid missing */ +/* ColorBalanceEffectGuid missing */ +/* ColorCurveEffectGuid missing */ +/* ColorLUTEffectGuid missing */ +/* ColorMatrixEffectGuid missing */ +/* HueSaturationLightnessEffectGuid missing */ +/* LevelsEffectGuid missing */ +/* RedEyeCorrectionEffectGuid missing */ +/* SharpenEffectGuid missing */ +/* TintEffectGuid missing */
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am index 005d04d..e1dca6f 100644 --- a/mingw-w64-headers/Makefile.am +++ b/mingw-w64-headers/Makefile.am
@@ -4,6 +4,7 @@ secheaddir = $(baseheaddir)/sec_api secsysheaddir = $(baseheaddir)/sec_api/sys glheaddir = $(baseheaddir)/GL +gdiplusheaddir = $(baseheaddir)/gdiplus mingwhelperheaddir = $(baseheaddir)/psdk_inc sdksheaddir = $(baseheaddir)/sdks @@ -12,6 +13,7 @@ sechead_HEADERS = @SECHEAD_LIST@ secsyshead_HEADERS = @SECSYSHEAD_LIST@ glhead_HEADERS = @GLHEAD_LIST@ +gdiplushead_HEADERS = @GDIPLUSHEAD_LIST@ mingwhelperhead_HEADERS = @MINGWHELPERHEAD_LIST@ sdkshead_HEADERS = _mingw_directx.h _mingw_ddk.h @@ -35,6 +37,7 @@ include/*.ver \ include/GL/*.h \ include/psdk_inc/*.h \ + include/gdiplus/*.h \ crt/*.h \ crt/sys/*.h \ crt/sec_api/*.h \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in index 11f08cc..5b52e23 100644 --- a/mingw-w64-headers/Makefile.in +++ b/mingw-w64-headers/Makefile.in
@@ -36,11 +36,11 @@ host_triplet = @host@ subdir = . DIST_COMMON = $(am__configure_deps) $(basehead_HEADERS) \ - $(ddkhead_HEADERS) $(dxhead_HEADERS) $(glhead_HEADERS) \ - $(idlhead_HEADERS) $(mingwhelperhead_HEADERS) \ - $(sdkshead_HEADERS) $(sechead_HEADERS) $(secsyshead_HEADERS) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/config.h.in $(syshead_HEADERS) \ + $(ddkhead_HEADERS) $(dxhead_HEADERS) $(gdiplushead_HEADERS) \ + $(glhead_HEADERS) $(idlhead_HEADERS) \ + $(mingwhelperhead_HEADERS) $(sdkshead_HEADERS) \ + $(sechead_HEADERS) $(secsyshead_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in $(syshead_HEADERS) \ $(top_srcdir)/configure $(top_srcdir)/crt/_mingw.h.in \ ChangeLog build-aux/config.guess build-aux/config.sub \ build-aux/install-sh build-aux/missing @@ -78,12 +78,13 @@ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(baseheaddir)" "$(DESTDIR)$(ddkheaddir)" \ - "$(DESTDIR)$(dxheaddir)" "$(DESTDIR)$(glheaddir)" \ - "$(DESTDIR)$(idlheaddir)" "$(DESTDIR)$(mingwhelperheaddir)" \ - "$(DESTDIR)$(sdksheaddir)" "$(DESTDIR)$(secheaddir)" \ - "$(DESTDIR)$(secsysheaddir)" "$(DESTDIR)$(sysheaddir)" + "$(DESTDIR)$(dxheaddir)" "$(DESTDIR)$(gdiplusheaddir)" \ + "$(DESTDIR)$(glheaddir)" "$(DESTDIR)$(idlheaddir)" \ + "$(DESTDIR)$(mingwhelperheaddir)" "$(DESTDIR)$(sdksheaddir)" \ + "$(DESTDIR)$(secheaddir)" "$(DESTDIR)$(secsysheaddir)" \ + "$(DESTDIR)$(sysheaddir)" HEADERS = $(basehead_HEADERS) $(ddkhead_HEADERS) $(dxhead_HEADERS) \ - $(glhead_HEADERS) $(idlhead_HEADERS) \ + $(gdiplushead_HEADERS) $(glhead_HEADERS) $(idlhead_HEADERS) \ $(mingwhelperhead_HEADERS) $(sdkshead_HEADERS) \ $(sechead_HEADERS) $(secsyshead_HEADERS) $(syshead_HEADERS) ETAGS = etags @@ -113,6 +114,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +GDIPLUSHEAD_LIST = @GDIPLUSHEAD_LIST@ GLHEAD_LIST = @GLHEAD_LIST@ IDLHEAD_LIST = @IDLHEAD_LIST@ INSTALL = @INSTALL@ @@ -198,6 +200,7 @@ secheaddir = $(baseheaddir)/sec_api secsysheaddir = $(baseheaddir)/sec_api/sys glheaddir = $(baseheaddir)/GL +gdiplusheaddir = $(baseheaddir)/gdiplus mingwhelperheaddir = $(baseheaddir)/psdk_inc sdksheaddir = $(baseheaddir)/sdks basehead_HEADERS = @BASEHEAD_LIST@ @@ -205,6 +208,7 @@ sechead_HEADERS = @SECHEAD_LIST@ secsyshead_HEADERS = @SECSYSHEAD_LIST@ glhead_HEADERS = @GLHEAD_LIST@ +gdiplushead_HEADERS = @GDIPLUSHEAD_LIST@ mingwhelperhead_HEADERS = @MINGWHELPERHEAD_LIST@ sdkshead_HEADERS = _mingw_directx.h _mingw_ddk.h ddkheaddir = $(baseheaddir)/ddk @@ -224,6 +228,7 @@ include/*.ver \ include/GL/*.h \ include/psdk_inc/*.h \ + include/gdiplus/*.h \ crt/*.h \ crt/sys/*.h \ crt/sec_api/*.h \ @@ -354,6 +359,26 @@ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(dxheaddir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(dxheaddir)" && rm -f $$files +install-gdiplusheadHEADERS: $(gdiplushead_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(gdiplusheaddir)" || $(MKDIR_P) "$(DESTDIR)$(gdiplusheaddir)" + @list='$(gdiplushead_HEADERS)'; test -n "$(gdiplusheaddir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(gdiplusheaddir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(gdiplusheaddir)" || exit $$?; \ + done + +uninstall-gdiplusheadHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(gdiplushead_HEADERS)'; test -n "$(gdiplusheaddir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(gdiplusheaddir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gdiplusheaddir)" && rm -f $$files install-glheadHEADERS: $(glhead_HEADERS) @$(NORMAL_INSTALL) test -z "$(glheaddir)" || $(MKDIR_P) "$(DESTDIR)$(glheaddir)" @@ -699,7 +724,7 @@ $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(HEADERS) config.h installdirs: - for dir in "$(DESTDIR)$(baseheaddir)" "$(DESTDIR)$(ddkheaddir)" "$(DESTDIR)$(dxheaddir)" "$(DESTDIR)$(glheaddir)" "$(DESTDIR)$(idlheaddir)" "$(DESTDIR)$(mingwhelperheaddir)" "$(DESTDIR)$(sdksheaddir)" "$(DESTDIR)$(secheaddir)" "$(DESTDIR)$(secsysheaddir)" "$(DESTDIR)$(sysheaddir)"; do \ + for dir in "$(DESTDIR)$(baseheaddir)" "$(DESTDIR)$(ddkheaddir)" "$(DESTDIR)$(dxheaddir)" "$(DESTDIR)$(gdiplusheaddir)" "$(DESTDIR)$(glheaddir)" "$(DESTDIR)$(idlheaddir)" "$(DESTDIR)$(mingwhelperheaddir)" "$(DESTDIR)$(sdksheaddir)" "$(DESTDIR)$(secheaddir)" "$(DESTDIR)$(secsysheaddir)" "$(DESTDIR)$(sysheaddir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) @@ -751,10 +776,11 @@ info-am: install-data-am: install-baseheadHEADERS install-ddkheadHEADERS \ - install-dxheadHEADERS install-glheadHEADERS \ - install-idlheadHEADERS install-mingwhelperheadHEADERS \ - install-sdksheadHEADERS install-secheadHEADERS \ - install-secsysheadHEADERS install-sysheadHEADERS + install-dxheadHEADERS install-gdiplusheadHEADERS \ + install-glheadHEADERS install-idlheadHEADERS \ + install-mingwhelperheadHEADERS install-sdksheadHEADERS \ + install-secheadHEADERS install-secsysheadHEADERS \ + install-sysheadHEADERS install-dvi: install-dvi-am @@ -801,10 +827,11 @@ ps-am: uninstall-am: uninstall-baseheadHEADERS uninstall-ddkheadHEADERS \ - uninstall-dxheadHEADERS uninstall-glheadHEADERS \ - uninstall-idlheadHEADERS uninstall-mingwhelperheadHEADERS \ - uninstall-sdksheadHEADERS uninstall-secheadHEADERS \ - uninstall-secsysheadHEADERS uninstall-sysheadHEADERS + uninstall-dxheadHEADERS uninstall-gdiplusheadHEADERS \ + uninstall-glheadHEADERS uninstall-idlheadHEADERS \ + uninstall-mingwhelperheadHEADERS uninstall-sdksheadHEADERS \ + uninstall-secheadHEADERS uninstall-secsysheadHEADERS \ + uninstall-sysheadHEADERS .MAKE: all check install install-am install-strip @@ -817,20 +844,21 @@ install-baseheadHEADERS install-data install-data-am \ install-ddkheadHEADERS install-dvi install-dvi-am \ install-dxheadHEADERS install-exec install-exec-am \ - install-glheadHEADERS install-html install-html-am \ - install-idlheadHEADERS install-info install-info-am \ - install-man install-mingwhelperheadHEADERS install-pdf \ - install-pdf-am install-ps install-ps-am \ + install-gdiplusheadHEADERS install-glheadHEADERS install-html \ + install-html-am install-idlheadHEADERS install-info \ + install-info-am install-man install-mingwhelperheadHEADERS \ + install-pdf install-pdf-am install-ps install-ps-am \ install-sdksheadHEADERS install-secheadHEADERS \ install-secsysheadHEADERS install-strip install-sysheadHEADERS \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-baseheadHEADERS uninstall-ddkheadHEADERS \ - uninstall-dxheadHEADERS uninstall-glheadHEADERS \ - uninstall-idlheadHEADERS uninstall-mingwhelperheadHEADERS \ - uninstall-sdksheadHEADERS uninstall-secheadHEADERS \ - uninstall-secsysheadHEADERS uninstall-sysheadHEADERS + uninstall-dxheadHEADERS uninstall-gdiplusheadHEADERS \ + uninstall-glheadHEADERS uninstall-idlheadHEADERS \ + uninstall-mingwhelperheadHEADERS uninstall-sdksheadHEADERS \ + uninstall-secheadHEADERS uninstall-secsysheadHEADERS \ + uninstall-sysheadHEADERS _mingw_directx.h: $(srcdir)/crt/sdks/_mingw_directx.h.in
diff --git a/mingw-w64-headers/aclocal.m4 b/mingw-w64-headers/aclocal.m4 index cf1c902..fced0e9 100644 --- a/mingw-w64-headers/aclocal.m4 +++ b/mingw-w64-headers/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-headers/configure b/mingw-w64-headers/configure index 866349b..40715a1 100755 --- a/mingw-w64-headers/configure +++ b/mingw-w64-headers/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64-headers 3.0b. +# Generated by GNU Autoconf 2.68 for mingw-w64-headers 3.0b. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -571,6 +579,7 @@ SYSHEAD_LIST MINGWHELPERHEAD_LIST GLHEAD_LIST +GDIPLUSHEAD_LIST BASEHEAD_LIST ENABLE_CRT_FALSE ENABLE_CRT_TRUE @@ -1062,7 +1071,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1350,7 +1359,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64-headers configure 3.0b -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1367,7 +1376,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64-headers $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -1766,7 +1775,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -1943,7 +1952,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -1983,7 +1992,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2036,7 +2045,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2087,7 +2096,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2127,7 +2136,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2255,7 +2264,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2289,7 +2298,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2324,7 +2333,7 @@ # Checks for programs. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then : +if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ @@ -2421,7 +2430,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_crt" >&5 $as_echo "$enable_crt" >&6; } -if test "x$enable_crt" = x""yes; then : +if test "x$enable_crt" = xyes; then : BASEHEAD_LIST="$BASEHEAD_LIST "$srcdir/crt/*.h SYSHEAD_LIST=$srcdir/crt/sys/*.h @@ -2429,6 +2438,7 @@ SECSYSHEAD_LIST=$srcdir/crt/sec_api/sys/*.h fi +GDIPLUSHEAD_LIST=$srcdir/include/gdiplus/*.h GLHEAD_LIST=$srcdir/include/GL/*.h MINGWHELPERHEAD_LIST=$srcdir/include/psdk_inc/*.h @@ -2438,6 +2448,7 @@ + enable_directx=no enable_ddk=no enable_idl=no @@ -2474,7 +2485,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_sdk" >&5 $as_echo "$enable_sdk" >&6; } -if test "x$enable_directx" = x""yes; then : +if test "x$enable_directx" = xyes; then : DXHEAD_LIST=$srcdir/direct-x/include/*.[hi]* MINGW_HAS_DX=1 @@ -2487,7 +2498,7 @@ -if test "x$enable_ddk" = x""yes; then : +if test "x$enable_ddk" = xyes; then : DDKHEAD_LIST=$srcdir/ddk/include/ddk/*.h MINGW_HAS_DDK=1 @@ -2500,7 +2511,7 @@ -if test "x$enable_idl" = x""yes; then : +if test "x$enable_idl" = xyes; then : IDLHEAD_LIST=$srcdir/idl/*.idl fi @@ -2515,7 +2526,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_secure_api" >&5 $as_echo "$enable_secure_api" >&6; } -if test "x$enable_secure_api" = x""yes; then : +if test "x$enable_secure_api" = xyes; then : MINGW_HAS_SECURE_API="#define MINGW_HAS_SECURE_API 1" else MINGW_HAS_SECURE_API="" @@ -2592,10 +2603,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -2636,7 +2658,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -2737,6 +2759,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3044,7 +3067,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64-headers $as_me 3.0b, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -3106,7 +3129,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64-headers config.status 3.0b -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -3255,9 +3278,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -3265,12 +3289,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -3292,7 +3317,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -3320,7 +3345,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -3368,7 +3393,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -3400,7 +3425,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -3434,7 +3459,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -3446,8 +3471,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -3567,7 +3592,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -3602,7 +3627,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -3739,21 +3764,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -3764,20 +3790,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-headers/configure.ac b/mingw-w64-headers/configure.ac index 4d47e82..6d2d37e 100644 --- a/mingw-w64-headers/configure.ac +++ b/mingw-w64-headers/configure.ac
@@ -39,9 +39,11 @@ SECHEAD_LIST=$srcdir/crt/sec_api/*.h SECSYSHEAD_LIST=$srcdir/crt/sec_api/sys/*.h ]) +GDIPLUSHEAD_LIST=$srcdir/include/gdiplus/*.h GLHEAD_LIST=$srcdir/include/GL/*.h MINGWHELPERHEAD_LIST=$srcdir/include/psdk_inc/*.h AC_SUBST([BASEHEAD_LIST]) +AC_SUBST([GDIPLUSHEAD_LIST]) AC_SUBST([GLHEAD_LIST]) AC_SUBST([MINGWHELPERHEAD_LIST]) AC_SUBST([SYSHEAD_LIST])
diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog index a275bfc..9a5a96f 100644 --- a/mingw-w64-headers/include/ChangeLog +++ b/mingw-w64-headers/include/ChangeLog
@@ -1,3 +1,41 @@ +2011-11-17 Ozkan Sezer <sezeroz@gmail.com> + + Add gdiplus from mingw.org sources: Original work was by Markus Koenig + <basilo@users.sourceforge.net>. Patch to integrate into mingw-w64 was + provided by Mark Dootson <mark.dootson@znix.com>. + + * gdiplus.h: New. + * gdiplus/gdiplus.h: New. + * gdiplus/gdiplusbase.h: New. + * gdiplus/gdiplusbrush.h: New. + * gdiplus/gdipluscolor.h: New. + * gdiplus/gdipluscolormatrix.h: New. + * gdiplus/gdipluseffects.h: New. + * gdiplus/gdiplusenums.h: New. + * gdiplus/gdiplusflat.h: New. + * gdiplus/gdiplusgpstubs.h: New. + * gdiplus/gdiplusgraphics.h: New. + * gdiplus/gdiplusheaders.h: New. + * gdiplus/gdiplusimageattributes.h: New. + * gdiplus/gdiplusimagecodec.h: New. + * gdiplus/gdiplusimaging.h: New. + * gdiplus/gdiplusimpl.h: New. + * gdiplus/gdiplusinit.h: New. + * gdiplus/gdipluslinecaps.h: New. + * gdiplus/gdiplusmatrix.h: New. + * gdiplus/gdiplusmem.h: New. + * gdiplus/gdiplusmetafile.h: New. + * gdiplus/gdiplusmetaheader.h: New. + * gdiplus/gdipluspath.h: New. + * gdiplus/gdipluspen.h: New. + * gdiplus/gdipluspixelformats.h: New. + * gdiplus/gdiplusstringformat.h: New. + * gdiplus/gdiplustypes.h: New. + * configure.ac: Add GDIPLUSHEAD_LIST as a new header list. + * configure: Regenerate. + * Makefile.am: Add gdiplusheaddir and gdiplushead_HEADERS. + * Makefile.in: Regenerate. + 2011-11-16 Ozkan Sezer <sezeroz@gmail.com> * wincon.h (SetConsoleDisplayMode): Add missing prototype from
diff --git a/mingw-w64-headers/include/gdiplus.h b/mingw-w64-headers/include/gdiplus.h new file mode 100644 index 0000000..214dd22 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus.h
@@ -0,0 +1 @@ +#include "gdiplus/gdiplus.h"
diff --git a/mingw-w64-headers/include/gdiplus/gdiplus.h b/mingw-w64-headers/include/gdiplus/gdiplus.h new file mode 100644 index 0000000..79366ea --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplus.h
@@ -0,0 +1,86 @@ +/* + * gdiplus.h + * + * GDI+ main header + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_H +#define __GDIPLUS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef RC_INVOKED + +#include <stddef.h> +#include <math.h> +#include <windef.h> +#include <wingdi.h> + +#include <basetyps.h> + +#ifndef _COM_interface +#define _COM_interface struct +#endif + +typedef _COM_interface IStream IStream; +typedef _COM_interface IDirectDrawSurface7 IDirectDrawSurface7; + +#ifdef __cplusplus +namespace Gdiplus { +#endif + +typedef float REAL; +typedef SHORT INT16; +typedef WORD UINT16; + +#include "gdiplusenums.h" +#include "gdiplustypes.h" +#include "gdiplusgpstubs.h" +#include "gdiplusimaging.h" +#include "gdiplusinit.h" +#include "gdiplusmem.h" +#include "gdiplusmetaheader.h" +#include "gdipluspixelformats.h" +#include "gdipluscolor.h" +#include "gdipluscolormatrix.h" +#include "gdiplusflat.h" +#include "gdipluseffects.h" +#include "gdiplusimagecodec.h" + +#ifdef __cplusplus +#include "gdiplusbase.h" +#include "gdiplusheaders.h" +#include "gdiplusimageattributes.h" +#include "gdiplusmatrix.h" +#include "gdiplusbrush.h" +#include "gdiplusmetafile.h" +#include "gdipluspen.h" +#include "gdiplusstringformat.h" +#include "gdipluspath.h" +#include "gdiplusgraphics.h" +#include "gdipluslinecaps.h" +#include "gdiplusimpl.h" + +} /* namespace Gdiplus */ +#endif /* __cplusplus */ + +#endif /* !RC_INVOKED */ + +#endif /* __GDIPLUS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusbase.h b/mingw-w64-headers/include/gdiplus/gdiplusbase.h new file mode 100644 index 0000000..e0430d1 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusbase.h
@@ -0,0 +1,54 @@ +/* + * gdiplusbase.h + * + * GDI+ base class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_BASE_H +#define __GDIPLUS_BASE_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusbase.h." +#endif + +class GdiplusBase +{ +public: + static void* operator new(size_t in_size) + { + return DllExports::GdipAlloc(in_size); + } + static void* operator new[](size_t in_size) + { + return DllExports::GdipAlloc(in_size); + } + static void operator delete(void *in_pVoid) + { + DllExports::GdipFree(in_pVoid); + } + static void operator delete[](void *in_pVoid) + { + DllExports::GdipFree(in_pVoid); + } +}; + +#endif /* __GDIPLUS_BASE_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusbrush.h b/mingw-w64-headers/include/gdiplus/gdiplusbrush.h new file mode 100644 index 0000000..6283705 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusbrush.h
@@ -0,0 +1,606 @@ +/* + * gdiplusbrush.h + * + * GDI+ brush classes + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_BRUSH_H +#define __GDIPLUS_BRUSH_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusbrush.h." +#endif + +class Brush: public GdiplusBase +{ + friend class HatchBrush; + friend class LinearGradientBrush; + friend class PathGradientBrush; + friend class SolidBrush; + friend class TextureBrush; + friend class Graphics; + friend class Pen; + +public: + virtual ~Brush() + { + DllExports::GdipDeleteBrush(nativeBrush); + } + virtual Brush* Clone() const // each subclass must implement this + { + lastStatus = NotImplemented; + return NULL; + } + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + BrushType GetType() const + { + BrushType result = BrushTypeSolidColor; + updateStatus(DllExports::GdipGetBrushType(nativeBrush, &result)); + return result; + } + +private: + Brush(): nativeBrush(NULL), lastStatus(Ok) {} + Brush(GpBrush *brush, Status status): + nativeBrush(brush), lastStatus(status) {} + Brush(const Brush& brush); + Brush& operator=(const Brush&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpBrush *nativeBrush; + mutable Status lastStatus; +}; + +class HatchBrush: public Brush +{ +public: + HatchBrush(HatchStyle hatchStyle, + const Color& foreColor, + const Color& backColor = Color()) + { + GpHatch *nativeHatch = NULL; + lastStatus = DllExports::GdipCreateHatchBrush(hatchStyle, + foreColor.GetValue(), backColor.GetValue(), + &nativeHatch); + nativeBrush = nativeHatch; + } + virtual HatchBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + HatchBrush *result = + new HatchBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBackgroundColor(Color *color) const + { + return updateStatus(DllExports::GdipGetHatchBackgroundColor( + (GpHatch*) nativeBrush, + color ? &color->Value : NULL)); + } + Status GetForegroundColor(Color *color) const + { + return updateStatus(DllExports::GdipGetHatchForegroundColor( + (GpHatch*) nativeBrush, + color ? &color->Value : NULL)); + } + HatchStyle GetHatchStyle() const + { + HatchStyle result; + updateStatus(DllExports::GdipGetHatchStyle( + (GpHatch*) nativeBrush, &result)); + return result; + } + +private: + HatchBrush(GpBrush *brush, Status status): Brush(brush, status) {} + HatchBrush(const HatchBrush& brush); + HatchBrush& operator=(const HatchBrush&); +}; + +class LinearGradientBrush: public Brush +{ +public: + LinearGradientBrush(const PointF& point1, const PointF& point2, + const Color& color1, const Color& color2) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrush( + &point1, &point2, + color1.GetValue(), color2.GetValue(), + WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Point& point1, const Point& point2, + const Color& color1, const Color& color2) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushI( + &point1, &point2, + color1.GetValue(), color2.GetValue(), + WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const RectF& rect, const Color& color1, + const Color& color2, LinearGradientMode mode) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRect( + &rect, color1.GetValue(), color2.GetValue(), + mode, WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Rect& rect, const Color& color1, + const Color& color2, LinearGradientMode mode) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectI( + &rect, color1.GetValue(), color2.GetValue(), + mode, WrapModeTile, &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const RectF& rect, const Color& color1, + const Color& color2, REAL angle, + BOOL isAngleScalable = FALSE) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngle( + &rect, color1.GetValue(), color2.GetValue(), + angle, isAngleScalable, WrapModeTile, + &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + LinearGradientBrush(const Rect& rect, const Color& color1, + const Color& color2, REAL angle, + BOOL isAngleScalable = FALSE) + { + GpLineGradient *nativeLineGradient = NULL; + lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngleI( + &rect, color1.GetValue(), color2.GetValue(), + angle, isAngleScalable, WrapModeTile, + &nativeLineGradient); + nativeBrush = nativeLineGradient; + } + virtual LinearGradientBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + LinearGradientBrush *result = + new LinearGradientBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBlend(REAL *blendFactors, REAL *blendPositions, + INT count) const + { + return updateStatus(DllExports::GdipGetLineBlend( + (GpLineGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + INT GetBlendCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetLineBlendCount( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + BOOL GetGammaCorrection() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetLineGammaCorrection( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + INT GetInterpolationColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetLinePresetBlendCount( + (GpLineGradient*) nativeBrush, &result)); + return result; + } + Status GetInterpolationColors(Color *presetColors, + REAL *blendPositions, INT count) const + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetLinePresetBlend( + (GpLineGradient*) nativeBrush, presetArgb, + blendPositions, count)); + for (INT i = 0; i < count; ++i) { + presetColors[i].SetValue(presetArgb[i]); + } + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status GetLinearColors(Color *colors) const + { + if (!colors) return lastStatus = InvalidParameter; + + ARGB colorsArgb[2]; + Status status = updateStatus(DllExports::GdipGetLineColors( + (GpLineGradient*) nativeBrush, colorsArgb)); + colors[0].SetValue(colorsArgb[0]); + colors[1].SetValue(colorsArgb[1]); + return status; + } + Status GetRectangle(RectF *rect) const + { + return updateStatus(DllExports::GdipGetLineRect( + (GpLineGradient*) nativeBrush, rect)); + } + Status GetRectangle(Rect *rect) const + { + return updateStatus(DllExports::GdipGetLineRectI( + (GpLineGradient*) nativeBrush, rect)); + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode wrapMode = WrapModeTile; + updateStatus(DllExports::GdipGetLineWrapMode( + (GpLineGradient*) nativeBrush, &wrapMode)); + return wrapMode; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetLineTransform( + (GpLineGradient*) nativeBrush)); + } + Status RotateTranform(REAL angle, MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateLineTransform( + (GpLineGradient*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleLineTransform( + (GpLineGradient*) nativeBrush, sx, sy, order)); + } + Status SetBlend(const REAL *blendFactors, + const REAL *blendPositions, INT count) + { + return updateStatus(DllExports::GdipSetLineBlend( + (GpLineGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetLineSigmaBlend( + (GpLineGradient*) nativeBrush, + focus, scale)); + } + Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetLineLinearBlend( + (GpLineGradient*) nativeBrush, + focus, scale)); + } + Status SetGammaCorrection(BOOL useGammaCorrection) + { + return updateStatus(DllExports::GdipSetLineGammaCorrection( + (GpLineGradient*) nativeBrush, + useGammaCorrection)); + } + Status SetInterpolationColors(const Color *presetColors, + const REAL *blendPositions, INT count) + { + if (!presetColors || count < 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < count; ++i) { + presetArgb[i] = presetColors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetLinePresetBlend( + (GpLineGradient*) nativeBrush, + presetArgb, blendPositions, count)); + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status SetLinearColors(const Color& color1, const Color& color2) + { + return updateStatus(DllExports::GdipSetLineColors( + (GpLineGradient*) nativeBrush, + color1.GetValue(), color2.GetValue())); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetLineTransform( + (GpLineGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetLineWrapMode( + (GpLineGradient*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateLineTransform( + (GpLineGradient*) nativeBrush, dx, dy, order)); + } + +private: + LinearGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} + LinearGradientBrush(const LinearGradientBrush& brush); + LinearGradientBrush& operator=(const LinearGradientBrush&); +}; + +class SolidBrush: public Brush +{ +public: + SolidBrush(const Color& color) + { + GpSolidFill *nativeSolidFill = NULL; + lastStatus = DllExports::GdipCreateSolidFill( + color.GetValue(), &nativeSolidFill); + nativeBrush = nativeSolidFill; + } + virtual SolidBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + SolidBrush *result = + new SolidBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetColor(Color *color) const + { + return updateStatus(DllExports::GdipGetSolidFillColor( + (GpSolidFill*) nativeBrush, + color ? &color->Value : NULL)); + } + Status SetColor(const Color& color) + { + return updateStatus(DllExports::GdipSetSolidFillColor( + (GpSolidFill*) nativeBrush, color.GetValue())); + } + +private: + SolidBrush(GpBrush *brush, Status status): Brush(brush, status) {} + SolidBrush(const SolidBrush&); + SolidBrush& operator=(const SolidBrush&); +}; + +class TextureBrush: public Brush +{ +public: + TextureBrush(Image *image, WrapMode wrapMode = WrapModeTile) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture( + image ? image->nativeImage : NULL, + wrapMode, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, + REAL dstX, REAL dstY, REAL dstWidth, REAL dstHeight) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2( + image ? image->nativeImage : NULL, + wrapMode, dstX, dstY, dstWidth, dstHeight, + &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, + INT dstX, INT dstY, INT dstWidth, INT dstHeight) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2I( + image ? image->nativeImage : NULL, + wrapMode, dstX, dstY, dstWidth, dstHeight, + &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, const RectF& dstRect) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2( + image ? image->nativeImage : NULL, wrapMode, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, WrapMode wrapMode, const Rect& dstRect) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTexture2I( + image ? image->nativeImage : NULL, wrapMode, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, const RectF& dstRect, + ImageAttributes *imageAttributes = NULL) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTextureIA( + image ? image->nativeImage : NULL, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + TextureBrush(Image *image, const Rect& dstRect, + ImageAttributes *imageAttributes = NULL) + { + GpTexture *nativeTexture = NULL; + lastStatus = DllExports::GdipCreateTextureIAI( + image ? image->nativeImage : NULL, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + dstRect.X, dstRect.Y, + dstRect.Width, dstRect.Height, &nativeTexture); + nativeBrush = nativeTexture; + } + virtual TextureBrush* Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + TextureBrush *result = + new TextureBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + //TODO: implement TextureBrush::GetImage() + //Image *GetImage() const + //{ + // // where is the Image allocated (static,member,new,other)? + // // GdipGetTextureImage just returns a GpImage* + // updateStatus(NotImplemented); + // return NULL; + //} + Status GetTransfrom(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode result = WrapModeTile; + updateStatus(DllExports::GdipGetTextureWrapMode( + (GpTexture*) nativeBrush, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetTextureTransform( + (GpTexture*) nativeBrush)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateTextureTransform( + (GpTexture*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleTextureTransform( + (GpTexture*) nativeBrush, sx, sy, order)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetTextureTransform( + (GpTexture*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetTextureWrapMode( + (GpTexture*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateTextureTransform( + (GpTexture*) nativeBrush, dx, dy, order)); + } + +private: + TextureBrush(GpBrush *brush, Status status): Brush(brush, status) {} + TextureBrush(const TextureBrush&); + TextureBrush& operator=(const TextureBrush&); +}; + +#endif /* __GDIPLUS_BRUSH_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluscolor.h b/mingw-w64-headers/include/gdiplus/gdipluscolor.h new file mode 100644 index 0000000..9f39e59 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluscolor.h
@@ -0,0 +1,262 @@ +/* + * gdipluscolor.h + * + * GDI+ color + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_COLOR_H +#define __GDIPLUS_COLOR_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ColorChannelFlags { + ColorChannelFlagsC = 0, + ColorChannelFlagsM = 1, + ColorChannelFlagsY = 2, + ColorChannelFlagsK = 3, + ColorChannelFlagsLast = 4 +} ColorChannelFlags; + +typedef struct Color +{ + #ifdef __cplusplus + private: + #endif + ARGB Value; + + #ifdef __cplusplus + public: + friend class Bitmap; + friend class Graphics; + friend class HatchBrush; + friend class PathGradientBrush; + friend class Pen; + friend class SolidBrush; + + static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b) + { + return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16) + | (((DWORD) g) << 8) | ((DWORD) b)); + } + + static const ARGB AlphaMask = 0xFF000000UL; + + static const ARGB AliceBlue = 0xFFF0F8FFUL; + static const ARGB AntiqueWhite = 0xFFFAEBD7UL; + static const ARGB Aqua = 0xFF00FFFFUL; + static const ARGB Aquamarine = 0xFF7FFFD4UL; + static const ARGB Azure = 0xFFF0FFFFUL; + static const ARGB Beige = 0xFFF5F5DCUL; + static const ARGB Bisque = 0xFFFFE4C4UL; + static const ARGB Black = 0xFF000000UL; + static const ARGB BlanchedAlmond = 0xFFFFEBCDUL; + static const ARGB Blue = 0xFF0000FFUL; + static const ARGB BlueViolet = 0xFF8A2BE2UL; + static const ARGB Brown = 0xFFA52A2AUL; + static const ARGB BurlyWood = 0xFFDEB887UL; + static const ARGB CadetBlue = 0xFF5F9EA0UL; + static const ARGB Chartreuse = 0xFF7FFF00UL; + static const ARGB Chocolate = 0xFFD2691EUL; + static const ARGB Coral = 0xFFFF7F50UL; + static const ARGB CornflowerBlue = 0xFF6495EDUL; + static const ARGB Cornsilk = 0xFFFFF8DCUL; + static const ARGB Crimson = 0xFFDC143CUL; + static const ARGB Cyan = 0xFF00FFFFUL; + static const ARGB DarkBlue = 0xFF00008BUL; + static const ARGB DarkCyan = 0xFF008B8BUL; + static const ARGB DarkGoldenrod = 0xFFB8860BUL; + static const ARGB DarkGray = 0xFFA9A9A9UL; + static const ARGB DarkGreen = 0xFF006400UL; + static const ARGB DarkKhaki = 0xFFBDB76BUL; + static const ARGB DarkMagenta = 0xFF8B008BUL; + static const ARGB DarkOliveGreen = 0xFF556B2FUL; + static const ARGB DarkOrange = 0xFFFF8C00UL; + static const ARGB DarkOrchid = 0xFF9932CCUL; + static const ARGB DarkRed = 0xFF8B0000UL; + static const ARGB DarkSalmon = 0xFFE9967AUL; + static const ARGB DarkSeaGreen = 0xFF8FBC8FUL; + static const ARGB DarkSlateBlue = 0xFF483D8BUL; + static const ARGB DarkSlateGray = 0xFF2F4F4FUL; + static const ARGB DarkTurquoise = 0xFF00CED1UL; + static const ARGB DarkViolet = 0xFF9400D3UL; + static const ARGB DeepPink = 0xFFFF1493UL; + static const ARGB DeepSkyBlue = 0xFF00BFFFUL; + static const ARGB DimGray = 0xFF696969UL; + static const ARGB DodgerBlue = 0xFF1E90FFUL; + static const ARGB Firebrick = 0xFFB22222UL; + static const ARGB FloralWhite = 0xFFFFFAF0UL; + static const ARGB ForestGreen = 0xFF228B22UL; + static const ARGB Fuchsia = 0xFFFF00FFUL; + static const ARGB Gainsboro = 0xFFDCDCDCUL; + static const ARGB GhostWhite = 0xFFF8F8FFUL; + static const ARGB Gold = 0xFFFFD700UL; + static const ARGB Goldenrod = 0xFFDAA520UL; + static const ARGB Gray = 0xFF808080UL; + static const ARGB Green = 0xFF008000UL; + static const ARGB GreenYellow = 0xFFADFF2FUL; + static const ARGB Honeydew = 0xFFF0FFF0UL; + static const ARGB HotPink = 0xFFFF69B4UL; + static const ARGB IndianRed = 0xFFCD5C5CUL; + static const ARGB Indigo = 0xFF4B0082UL; + static const ARGB Ivory = 0xFFFFFFF0UL; + static const ARGB Khaki = 0xFFF0E68CUL; + static const ARGB Lavender = 0xFFE6E6FAUL; + static const ARGB LavenderBlush = 0xFFFFF0F5UL; + static const ARGB LawnGreen = 0xFF7CFC00UL; + static const ARGB LemonChiffon = 0xFFFFFACDUL; + static const ARGB LightBlue = 0xFFADD8E6UL; + static const ARGB LightCoral = 0xFFF08080UL; + static const ARGB LightCyan = 0xFFE0FFFFUL; + static const ARGB LightGoldenrodYellow = 0xFFFAFAD2UL; + static const ARGB LightGray = 0xFFD3D3D3UL; + static const ARGB LightGreen = 0xFF90EE90UL; + static const ARGB LightPink = 0xFFFFB6C1UL; + static const ARGB LightSalmon = 0xFFFFA07AUL; + static const ARGB LightSeaGreen = 0xFF20B2AAUL; + static const ARGB LightSkyBlue = 0xFF87CEFAUL; + static const ARGB LightSlateGray = 0xFF778899UL; + static const ARGB LightSteelBlue = 0xFFB0C4DEUL; + static const ARGB LightYellow = 0xFFFFFFE0UL; + static const ARGB Lime = 0xFF00FF00UL; + static const ARGB LimeGreen = 0xFF32CD32UL; + static const ARGB Linen = 0xFFFAF0E6UL; + static const ARGB Magenta = 0xFFFF00FFUL; + static const ARGB Maroon = 0xFF800000UL; + static const ARGB MediumAquamarine = 0xFF66CDAAUL; + static const ARGB MediumBlue = 0xFF0000CDUL; + static const ARGB MediumOrchid = 0xFFBA55D3UL; + static const ARGB MediumPurple = 0xFF9370DBUL; + static const ARGB MediumSeaGreen = 0xFF3CB371UL; + static const ARGB MediumSlateBlue = 0xFF7B68EEUL; + static const ARGB MediumSpringGreen = 0xFF00FA9AUL; + static const ARGB MediumTurquoise = 0xFF48D1CCUL; + static const ARGB MediumVioletRed = 0xFFC71585UL; + static const ARGB MidnightBlue = 0xFF191970UL; + static const ARGB MintCream = 0xFFF5FFFAUL; + static const ARGB MistyRose = 0xFFFFE4E1UL; + static const ARGB Moccasin = 0xFFFFE4B5UL; + static const ARGB NavajoWhite = 0xFFFFDEADUL; + static const ARGB Navy = 0xFF000080UL; + static const ARGB OldLace = 0xFFFDF5E6UL; + static const ARGB Olive = 0xFF808000UL; + static const ARGB OliveDrab = 0xFF6B8E23UL; + static const ARGB Orange = 0xFFFFA500UL; + static const ARGB OrangeRed = 0xFFFF4500UL; + static const ARGB Orchid = 0xFFDA70D6UL; + static const ARGB PaleGoldenrod = 0xFFEEE8AAUL; + static const ARGB PaleGreen = 0xFF98FB98UL; + static const ARGB PaleTurquoise = 0xFFAFEEEEUL; + static const ARGB PaleVioletRed = 0xFFDB7093UL; + static const ARGB PapayaWhip = 0xFFFFEFD5UL; + static const ARGB PeachPuff = 0xFFFFDAB9UL; + static const ARGB Peru = 0xFFCD853FUL; + static const ARGB Pink = 0xFFFFC0CBUL; + static const ARGB Plum = 0xFFDDA0DDUL; + static const ARGB PowderBlue = 0xFFB0E0E6UL; + static const ARGB Purple = 0xFF800080UL; + static const ARGB Red = 0xFFFF0000UL; + static const ARGB RosyBrown = 0xFFBC8F8FUL; + static const ARGB RoyalBlue = 0xFF4169E1UL; + static const ARGB SaddleBrown = 0xFF8B4513UL; + static const ARGB Salmon = 0xFFFA8072UL; + static const ARGB SandyBrown = 0xFFF4A460UL; + static const ARGB SeaGreen = 0xFF2E8B57UL; + static const ARGB SeaShell = 0xFFFFF5EEUL; + static const ARGB Sienna = 0xFFA0522DUL; + static const ARGB Silver = 0xFFC0C0C0UL; + static const ARGB SkyBlue = 0xFF87CEEBUL; + static const ARGB SlateBlue = 0xFF6A5ACDUL; + static const ARGB SlateGray = 0xFF708090UL; + static const ARGB Snow = 0xFFFFFAFAUL; + static const ARGB SpringGreen = 0xFF00FF7FUL; + static const ARGB SteelBlue = 0xFF4682B4UL; + static const ARGB Tan = 0xFFD2B48CUL; + static const ARGB Teal = 0xFF008080UL; + static const ARGB Thistle = 0xFFD8BFD8UL; + static const ARGB Tomato = 0xFFFF6347UL; + static const ARGB Transparent = 0x00FFFFFFUL; + static const ARGB Turquoise = 0xFF40E0D0UL; + static const ARGB Violet = 0xFFEE82EEUL; + static const ARGB Wheat = 0xFFF5DEB3UL; + static const ARGB White = 0xFFFFFFFFUL; + static const ARGB WhiteSmoke = 0xFFF5F5F5UL; + static const ARGB Yellow = 0xFFFFFF00UL; + static const ARGB YellowGreen = 0xFF9ACD32UL; + + Color(): Value(0xFF000000) {} + Color(ARGB argb): Value(argb) {} + Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {} + Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {} + + BYTE GetA() const + { + return (BYTE) (Value >> 24); + } + BYTE GetAlpha() const + { + return (BYTE) (Value >> 24); + } + BYTE GetB() const + { + return (BYTE) Value; + } + BYTE GetBlue() const + { + return (BYTE) Value; + } + BYTE GetG() const + { + return (BYTE) (Value >> 8); + } + BYTE GetGreen() const + { + return (BYTE) (Value >> 8); + } + BYTE GetR() const + { + return (BYTE) (Value >> 16); + } + BYTE GetRed() const + { + return (BYTE) (Value >> 16); + } + ARGB GetValue() const + { + return Value; + } + VOID SetFromCOLORREF(COLORREF rgb) + { + BYTE r = (BYTE) rgb; + BYTE g = (BYTE) (rgb >> 8); + BYTE b = (BYTE) (rgb >> 16); + Value = MakeARGB(0xFF, r, g, b); + } + VOID SetValue(ARGB argb) + { + Value = argb; + } + COLORREF ToCOLORREF() const + { + return RGB(GetRed(), GetGreen(), GetBlue()); + } + #endif /* __cplusplus */ +} Color; + +#endif /* __GDIPLUS_COLOR_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluscolormatrix.h b/mingw-w64-headers/include/gdiplus/gdipluscolormatrix.h new file mode 100644 index 0000000..c01113d --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluscolormatrix.h
@@ -0,0 +1,67 @@ +/* + * gdipluscolormatrix.h + * + * GDI+ color mappings + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_COLORMATRIX_H +#define __GDIPLUS_COLORMATRIX_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ColorAdjustType { + ColorAdjustTypeDefault = 0, + ColorAdjustTypeBitmap = 1, + ColorAdjustTypeBrush = 2, + ColorAdjustTypePen = 3, + ColorAdjustTypeText = 4, + ColorAdjustTypeCount = 5, + ColorAdjustTypeAny = 6 +} ColorAdjustType; + +typedef enum ColorMatrixFlags { + ColorMatrixFlagsDefault = 0, + ColorMatrixFlagsSkipGrays = 1, + ColorMatrixFlagsAltGray = 2 +} ColorMatrixFlags; + +typedef enum HistogramFormat { + HistogramFormatARGB = 0, + HistogramFormatPARGB = 1, + HistogramFormatRGB = 2, + HistogramFormatGray = 3, + HistogramFormatB = 4, + HistogramFormatG = 5, + HistogramFormatR = 6, + HistogramFormatA = 7 +} HistogramFormat; + +typedef struct ColorMap { + Color oldColor; + Color newColor; +} ColorMap; + +typedef struct ColorMatrix { + REAL m[5][5]; +} ColorMatrix; + +typedef BYTE ColorChannelLUT[256]; + +#endif /* __GDIPLUS_COLORMATRIX_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluseffects.h b/mingw-w64-headers/include/gdiplus/gdipluseffects.h new file mode 100644 index 0000000..7f51aea --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluseffects.h
@@ -0,0 +1,116 @@ +/* + * gdipluseffects.h + * + * GDI+ filters and effects + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_EFFECTS_H +#define __GDIPLUS_EFFECTS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum CurveAdjustments { + AdjustExposure = 0, + AdjustDensity = 1, + AdjustContrast = 2, + AdjustHighlight = 3, + AdjustShadow = 4, + AdjustMidtone = 5, + AdjustWhiteSaturation = 6, + AdjustBlackSaturation = 7 +} CurveAdjustments; + +typedef enum CurveChannel { + CurveChannelAll = 0, + CurveChannelRed = 1, + CurveChannelGreen = 2, + CurveChannelBlue = 3 +} CurveChannel; + +typedef struct BlurParams { + REAL radius; + BOOL expandEdge; +} BlurParams; + +typedef struct BrightnessContrastParams { + INT brightnessLevel; + INT contrastLevel; +} BrightnessContrastParams; + +typedef struct ColorBalanceParams { + INT cyanRed; + INT magentaGreen; + INT yellowBlue; +} ColorBalanceParams; + +typedef struct ColorCurveParams { + CurveAdjustments adjustment; + CurveChannel channel; + INT adjustValue; +} ColorCurveParams; + +typedef struct ColorLUTParams { + ColorChannelLUT lutB; + ColorChannelLUT lutG; + ColorChannelLUT lutR; + ColorChannelLUT lutA; +} ColorLUTParams; + +typedef struct HueSaturationLightnessParams { + INT hueLevel; + INT saturationLevel; + INT lightnessLevel; +} HueSaturationLightnessParams; + +typedef struct LevelsParams { + INT highlight; + INT midtone; + INT shadow; +} LevelsParams; + +typedef struct RedEyeCorrectionParams { + UINT numberOfAreas; + RECT *areas; +} RedEyeCorrectionParams; + +typedef struct SharpenParams { + REAL radius; + REAL amount; +} SharpenParams; + +typedef struct TintParams { + INT hue; + INT amount; +} TintParams; + +extern const GUID BlurEffectGuid; /* ? */ +extern const GUID BrightnessContrastEffectGuid; /* ? */ +extern const GUID ColorBalanceEffectGuid; /* ? */ +extern const GUID ColorCurveEffectGuid; /* ? */ +extern const GUID ColorLUTEffectGuid; /* ? */ +extern const GUID ColorMatrixEffectGuid; /* ? */ +extern const GUID HueSaturationLightnessEffectGuid; /* ? */ +extern const GUID LevelsEffectGuid; /* ? */ +extern const GUID RedEyeCorrectionEffectGuid; /* ? */ +extern const GUID SharpenEffectGuid; /* ? */ +extern const GUID TintEffectGuid; /* ? */ + + +#endif /* __GDIPLUS_EFFECTS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusenums.h b/mingw-w64-headers/include/gdiplus/gdiplusenums.h new file mode 100644 index 0000000..e4e1656 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusenums.h
@@ -0,0 +1,755 @@ +/* + * gdiplusenums.h + * + * GDI+ enumerations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_ENUMS_H +#define __GDIPLUS_ENUMS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum BrushType { + BrushTypeSolidColor = 0, + BrushTypeHatchFill = 1, + BrushTypeTextureFill = 2, + BrushTypePathGradient = 3, + BrushTypeLinearGradient = 4 +} BrushType; + +typedef enum CombineMode { + CombineModeReplace = 0, + CombineModeIntersect = 1, + CombineModeUnion = 2, + CombineModeXor = 3, + CombineModeExclude = 4, + CombineModeComplement = 5 +} CombineMode; + +typedef enum CompositingMode { + CompositingModeSourceOver = 0, + CompositingModeSourceCopy = 1 +} CompositingMode; + +typedef enum CompositingQuality { + CompositingQualityDefault = 0, + CompositingQualityHighSpeed = 1, + CompositingQualityHighQuality = 2, + CompositingQualityGammaCorrected = 3, + CompositingQualityAssumeLinear = 4 +} CompositingQuality; + +typedef enum CoordinateSpace { + CoordinateSpaceWorld = 0, + CoordinateSpacePage = 1, + CoordinateSpaceDevice = 2 +} CoordinateSpace; + +typedef enum CustomLineCapType { + CustomLineCapTypeDefault = 0, + CustomLineCapTypeAdjustableArrow = 1 +} CustomLineCapType; + +typedef enum DashCap { + DashCapFlat = 0, + DashCapRound = 2, + DashCapTriangle = 3 +} DashCap; + +typedef enum DashStyle { + DashStyleSolid = 0, + DashStyleDash = 1, + DashStyleDot = 2, + DashStyleDashDot = 3, + DashStyleDashDotDot = 4, + DashStyleCustom = 5 +} DashStyle; + +typedef enum DitherType { + DitherTypeNone = 0, + DitherTypeSolid = 1, + DitherTypeOrdered4x4 = 2, + DitherTypeOrdered8x8 = 3, + DitherTypeOrdered16x16 = 4, + DitherTypeOrdered91x91 = 5, + DitherTypeSpiral4x4 = 6, + DitherTypeSpiral8x8 = 7, + DitherTypeDualSpiral4x4 = 8, + DitherTypeDualSpiral8x8 = 9, + DitherTypeErrorDiffusion = 10 +} DitherType; + +typedef enum DriverStringOptions { + DriverStringOptionsCmapLookup = 1, + DriverStringOptionsVertical = 2, + DriverStringOptionsRealizedAdvance = 4, + DriverStringOptionsLimitSubpixel = 8 +} DriverStringOptions; + +#define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000) +#define GDIP_EMFPLUS_RECORD_BASE (0x4000) +typedef enum EmfPlusRecordType { + WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR), + WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE), + WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE), + WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2), + WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS), + WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE), + WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE), + WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA), + WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR), + WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION), + WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG), + WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT), + WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG), + WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT), + WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG), + WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT), + WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG), + WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT), + WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO), + WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO), + WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT), + WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT), + WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC), + WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE), + WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL), + WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE), + WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE), + WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT), + WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT), + WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC), + WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL), + WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN), + WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT), + WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT), + WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT), + WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON), + WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE), + WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE), + WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC), + WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION), + WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION), + WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION), + WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION), + WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION), + WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT), + WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN), + WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F), + WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD), + WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS), + WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT), + WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV), + WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE), + WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE), + WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE), + WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES), + WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON), + WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE), + WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT), + WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT), + WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH), + WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB), + WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL), + WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149), + WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), + WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), + WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), + WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), + WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), + WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), + WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT), + WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE), + WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), + WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH), + WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT), + WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT), + WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT), + WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD), + WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), + WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION), + EmfRecordTypeHeader = EMR_HEADER, + EmfRecordTypePolyBezier = EMR_POLYBEZIER, + EmfRecordTypePolygon = EMR_POLYGON, + EmfRecordTypePolyline = EMR_POLYLINE, + EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO, + EmfRecordTypePolyLineTo = EMR_POLYLINETO, + EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE, + EmfRecordTypePolyPolygon = EMR_POLYPOLYGON, + EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX, + EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX, + EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX, + EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX, + EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX, + EmfRecordTypeEOF = EMR_EOF, + EmfRecordTypeSetPixelV = EMR_SETPIXELV, + EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS, + EmfRecordTypeSetMapMode = EMR_SETMAPMODE, + EmfRecordTypeSetBkMode = EMR_SETBKMODE, + EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE, + EmfRecordTypeSetROP2 = EMR_SETROP2, + EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE, + EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN, + EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT, + EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR, + EmfRecordTypeSetBkColor = EMR_SETBKCOLOR, + EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN, + EmfRecordTypeMoveToEx = EMR_MOVETOEX, + EmfRecordTypeSetMetaRgn = EMR_SETMETARGN, + EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT, + EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT, + EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX, + EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX, + EmfRecordTypeSaveDC = EMR_SAVEDC, + EmfRecordTypeRestoreDC = EMR_RESTOREDC, + EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM, + EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM, + EmfRecordTypeSelectObject = EMR_SELECTOBJECT, + EmfRecordTypeCreatePen = EMR_CREATEPEN, + EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT, + EmfRecordTypeDeleteObject = EMR_DELETEOBJECT, + EmfRecordTypeAngleArc = EMR_ANGLEARC, + EmfRecordTypeEllipse = EMR_ELLIPSE, + EmfRecordTypeRectangle = EMR_RECTANGLE, + EmfRecordTypeRoundRect = EMR_ROUNDRECT, + EmfRecordTypeArc = EMR_ARC, + EmfRecordTypeChord = EMR_CHORD, + EmfRecordTypePie = EMR_PIE, + EmfRecordTypeSelectPalette = EMR_SELECTPALETTE, + EmfRecordTypeCreatePalette = EMR_CREATEPALETTE, + EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES, + EmfRecordTypeResizePalette = EMR_RESIZEPALETTE, + EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE, + EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL, + EmfRecordTypeLineTo = EMR_LINETO, + EmfRecordTypeArcTo = EMR_ARCTO, + EmfRecordTypePolyDraw = EMR_POLYDRAW, + EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION, + EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT, + EmfRecordTypeBeginPath = EMR_BEGINPATH, + EmfRecordTypeEndPath = EMR_ENDPATH, + EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE, + EmfRecordTypeFillPath = EMR_FILLPATH, + EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH, + EmfRecordTypeStrokePath = EMR_STROKEPATH, + EmfRecordTypeFlattenPath = EMR_FLATTENPATH, + EmfRecordTypeWidenPath = EMR_WIDENPATH, + EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH, + EmfRecordTypeAbortPath = EMR_ABORTPATH, + EmfRecordTypeReserved_069 = 69, + EmfRecordTypeGdiComment = EMR_GDICOMMENT, + EmfRecordTypeFillRgn = EMR_FILLRGN, + EmfRecordTypeFrameRgn = EMR_FRAMERGN, + EmfRecordTypeInvertRgn = EMR_INVERTRGN, + EmfRecordTypePaintRgn = EMR_PAINTRGN, + EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN, + EmfRecordTypeBitBlt = EMR_BITBLT, + EmfRecordTypeStretchBlt = EMR_STRETCHBLT, + EmfRecordTypeMaskBlt = EMR_MASKBLT, + EmfRecordTypePlgBlt = EMR_PLGBLT, + EmfRecordTypeSetDIBitsToDevice = EMR_SETDIBITSTODEVICE, + EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS, + EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW, + EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA, + EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW, + EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16, + EmfRecordTypePolygon16 = EMR_POLYGON16, + EmfRecordTypePolyline16 = EMR_POLYLINE16, + EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16, + EmfRecordTypePolylineTo16 = EMR_POLYLINETO16, + EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16, + EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16, + EmfRecordTypePolyDraw16 = EMR_POLYDRAW16, + EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH, + EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT, + EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN, + EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA, + EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW, + EmfRecordTypeSetICMMode = 98, + EmfRecordTypeCreateColorSpace = 99, + EmfRecordTypeSetColorSpace = 100, + EmfRecordTypeDeleteColorSpace = 101, + EmfRecordTypeGLSRecord = 102, + EmfRecordTypeGLSBoundedRecord = 103, + EmfRecordTypePixelFormat = 104, + EmfRecordTypeDrawEscape = 105, + EmfRecordTypeExtEscape = 106, + EmfRecordTypeStartDoc = 107, + EmfRecordTypeSmallTextOut = 108, + EmfRecordTypeForceUFIMapping = 109, + EmfRecordTypeNamedEscape = 110, + EmfRecordTypeColorCorrectPalette = 111, + EmfRecordTypeSetICMProfileA = 112, + EmfRecordTypeSetICMProfileW = 113, + EmfRecordTypeAlphaBlend = 114, + EmfRecordTypeSetLayout = 115, + EmfRecordTypeTransparentBlt = 116, + EmfRecordTypeReserved_117 = 117, + EmfRecordTypeGradientFill = 118, + EmfRecordTypeSetLinkedUFIs = 119, + EmfRecordTypeSetTextJustification = 120, + EmfRecordTypeColorMatchToTargetW = 121, + EmfRecordTypeCreateColorSpaceW = 122, + EmfRecordTypeMax = 122, + EmfRecordTypeMin = 1, + EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE, + EmfPlusRecordTypeHeader, + EmfPlusRecordTypeEndOfFile, + EmfPlusRecordTypeComment, + EmfPlusRecordTypeGetDC, + EmfPlusRecordTypeMultiFormatStart, + EmfPlusRecordTypeMultiFormatSection, + EmfPlusRecordTypeMultiFormatEnd, + EmfPlusRecordTypeObject, + EmfPlusRecordTypeClear, + EmfPlusRecordTypeFillRects, + EmfPlusRecordTypeDrawRects, + EmfPlusRecordTypeFillPolygon, + EmfPlusRecordTypeDrawLines, + EmfPlusRecordTypeFillEllipse, + EmfPlusRecordTypeDrawEllipse, + EmfPlusRecordTypeFillPie, + EmfPlusRecordTypeDrawPie, + EmfPlusRecordTypeDrawArc, + EmfPlusRecordTypeFillRegion, + EmfPlusRecordTypeFillPath, + EmfPlusRecordTypeDrawPath, + EmfPlusRecordTypeFillClosedCurve, + EmfPlusRecordTypeDrawClosedCurve, + EmfPlusRecordTypeDrawCurve, + EmfPlusRecordTypeDrawBeziers, + EmfPlusRecordTypeDrawImage, + EmfPlusRecordTypeDrawImagePoints, + EmfPlusRecordTypeDrawString, + EmfPlusRecordTypeSetRenderingOrigin, + EmfPlusRecordTypeSetAntiAliasMode, + EmfPlusRecordTypeSetTextRenderingHint, + EmfPlusRecordTypeSetTextContrast, + EmfPlusRecordTypeSetGammaValue, + EmfPlusRecordTypeSetInterpolationMode, + EmfPlusRecordTypeSetPixelOffsetMode, + EmfPlusRecordTypeSetCompositingMode, + EmfPlusRecordTypeSetCompositingQuality, + EmfPlusRecordTypeSave, + EmfPlusRecordTypeRestore, + EmfPlusRecordTypeBeginContainer, + EmfPlusRecordTypeBeginContainerNoParams, + EmfPlusRecordTypeEndContainer, + EmfPlusRecordTypeSetWorldTransform, + EmfPlusRecordTypeResetWorldTransform, + EmfPlusRecordTypeMultiplyWorldTransform, + EmfPlusRecordTypeTranslateWorldTransform, + EmfPlusRecordTypeScaleWorldTransform, + EmfPlusRecordTypeRotateWorldTransform, + EmfPlusRecordTypeSetPageTransform, + EmfPlusRecordTypeResetClip, + EmfPlusRecordTypeSetClipRect, + EmfPlusRecordTypeSetClipPath, + EmfPlusRecordTypeSetClipRegion, + EmfPlusRecordTypeOffsetClip, + EmfPlusRecordTypeDrawDriverString, + EmfPlusRecordTypeStrokeFillPath, + EmfPlusRecordTypeSerializableObject, + EmfPlusRecordTypeSetTSGraphics, + EmfPlusRecordTypeSetTSClip, + EmfPlusRecordTotal, + EmfPlusRecordTypeMax = EmfPlusRecordTotal-1, + EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader +} EmfPlusRecordType; + +typedef enum EmfToWmfBitsFlags { + EmfToWmfBitsFlagsDefault = 0, + EmfToWmfBitsFlagsEmbedEmf = 1, + EmfToWmfBitsFlagsIncludePlaceable = 2, + EmfToWmfBitsFlagsNoXORClip = 4 +} EmfToWmfBitsFlags; + +typedef enum EmfType { + EmfTypeEmfOnly = 3, + EmfTypeEmfPlusOnly = 4, + EmfTypeEmfPlusDual = 5 +} EmfType; + +typedef enum EncoderParameterValueType { + EncoderParameterValueTypeByte = 1, + EncoderParameterValueTypeASCII = 2, + EncoderParameterValueTypeShort = 3, + EncoderParameterValueTypeLong = 4, + EncoderParameterValueTypeRational = 5, + EncoderParameterValueTypeLongRange = 6, + EncoderParameterValueTypeUndefined = 7, + EncoderParameterValueTypeRationalRange = 8, + EncoderParameterValueTypePointer = 9 +} EncoderParameterValueType; + +typedef enum EncoderValue { + EncoderValueColorTypeCMYK = 0, + EncoderValueColorTypeYCCK = 1, + EncoderValueCompressionLZW = 2, + EncoderValueCompressionCCITT3 = 3, + EncoderValueCompressionCCITT4 = 4, + EncoderValueCompressionRle = 5, + EncoderValueCompressionNone = 6, + EncoderValueScanMethodInterlaced = 7, + EncoderValueScanMethodNonInterlaced = 8, + EncoderValueVersionGif87 = 9, + EncoderValueVersionGif89 = 10, + EncoderValueRenderProgressive = 11, + EncoderValueRenderNonProgressive = 12, + EncoderValueTransformRotate90 = 13, + EncoderValueTransformRotate180 = 14, + EncoderValueTransformRotate270 = 15, + EncoderValueTransformFlipHorizontal = 16, + EncoderValueTransformFlipVertical = 17, + EncoderValueMultiFrame = 18, + EncoderValueLastFrame = 19, + EncoderValueFlush = 20, + EncoderValueFrameDimensionTime = 21, + EncoderValueFrameDimensionResolution = 22, + EncoderValueFrameDimensionPage = 23 +} EncoderValue; + +typedef enum FillMode { + FillModeAlternate = 0, + FillModeWinding = 1 +} FillMode; + +typedef enum FlushIntention { + FlushIntentionFlush = 0, + FlushIntentionSync = 1 +} FlushIntention; + +typedef enum FontStyle { + FontStyleRegular = 0, + FontStyleBold = 1, + FontStyleItalic = 2, + FontStyleBoldItalic = 3, + FontStyleUnderline = 4, + FontStyleStrikeout = 8 +} FontStyle; + +typedef enum HatchStyle { + HatchStyleHorizontal = 0, + HatchStyleVertical = 1, + HatchStyleForwardDiagonal = 2, + HatchStyleBackwardDiagonal = 3, + HatchStyleCross = 4, + HatchStyleLargeGrid = 4, + HatchStyleDiagonalCross = 5, + HatchStyle05Percent = 6, + HatchStyle10Percent = 7, + HatchStyle20Percent = 8, + HatchStyle25Percent = 9, + HatchStyle30Percent = 10, + HatchStyle40Percent = 11, + HatchStyle50Percent = 12, + HatchStyle60Percent = 13, + HatchStyle70Percent = 14, + HatchStyle75Percent = 15, + HatchStyle80Percent = 16, + HatchStyle90Percent = 17, + HatchStyleLightDownwardDiagonal = 18, + HatchStyleLightUpwardDiagonal = 19, + HatchStyleDarkDownwardDiagonal = 20, + HatchStyleDarkUpwardDiagonal = 21, + HatchStyleWideDownwardDiagonal = 22, + HatchStyleWideUpwardDiagonal = 23, + HatchStyleLightVertical = 24, + HatchStyleLightHorizontal = 25, + HatchStyleNarrowVertical = 26, + HatchStyleNarrowHorizontal = 27, + HatchStyleDarkVertical = 28, + HatchStyleDarkHorizontal = 29, + HatchStyleDashedDownwardDiagonal = 30, + HatchStyleDashedUpwardDiagonal = 31, + HatchStyleDashedHorizontal = 32, + HatchStyleDashedVertical = 33, + HatchStyleSmallConfetti = 34, + HatchStyleLargeConfetti = 35, + HatchStyleZigZag = 36, + HatchStyleWave = 37, + HatchStyleDiagonalBrick = 38, + HatchStyleHorizontalBrick = 39, + HatchStyleWeave = 40, + HatchStylePlaid = 41, + HatchStyleDivot = 42, + HatchStyleDottedGrid = 43, + HatchStyleDottedDiamond = 44, + HatchStyleShingle = 45, + HatchStyleTrellis = 46, + HatchStyleSphere = 47, + HatchStyleSmallGrid = 48, + HatchStyleSmallCheckerBoard = 49, + HatchStyleLargeCheckerBoard = 50, + HatchStyleOutlinedDiamond = 51, + HatchStyleSolidDiamond = 52, + HatchStyleTotal = 53, + HatchStyleMin = HatchStyleHorizontal, + HatchStyleMax = HatchStyleTotal - 1 +} HatchStyle; + +typedef enum HotkeyPrefix { + HotkeyPrefixNone = 0, + HotkeyPrefixShow = 1, + HotkeyPrefixHide = 2 +} HotkeyPrefix; + +typedef enum ImageType { + ImageTypeUnknown = 0, + ImageTypeBitmap = 1, + ImageTypeMetafile = 2 +} ImageType; + +/* TODO: InterpolationMode */ +typedef enum InterpolationMode { + /*InterpolationModeInvalid = QualityModeInvalid,*/ + InterpolationModeDefault = 0, + InterpolationModeLowQuality = 1, + InterpolationModeHighQuality = 2, + InterpolationModeBilinear = 3, + InterpolationModeBicubic = 4, + InterpolationModeNearestNeighbor = 5, + InterpolationModeHighQualityBilinear = 6, + InterpolationModeHighQualityBicubic = 7 +} InterpolationMode; + +typedef enum LinearGradientMode { + LinearGradientModeHorizontal = 0, + LinearGradientModeVertical = 1, + LinearGradientModeForwardDiagonal = 2, + LinearGradientModeBackwardDiagonal = 3 +} LinearGradientMode; + +typedef enum LineCap { + LineCapFlat = 0, + LineCapSquare = 1, + LineCapRound = 2, + LineCapTriangle = 3, + LineCapNoAnchor = 16, + LineCapSquareAnchor = 17, + LineCapRoundAnchor = 18, + LineCapDiamondAnchor = 19, + LineCapArrowAnchor = 20, + LineCapCustom = 255 +} LineCap; + +typedef enum LineJoin { + LineJoinMiter = 0, + LineJoinBevel = 1, + LineJoinRound = 2, + LineJoinMiterClipped = 3 +} LineJoin; + +typedef enum MatrixOrder { + MatrixOrderPrepend = 0, + MatrixOrderAppend = 1 +} MatrixOrder; + +typedef enum MetafileFrameUnit { + MetafileFrameUnitPixel = 2, + MetafileFrameUnitPoint = 3, + MetafileFrameUnitInch = 4, + MetafileFrameUnitDocument = 5, + MetafileFrameUnitMillimeter = 6, + MetafileFrameUnitGdi = 7 +} MetafileFrameUnit; + +typedef enum MetafileType { + MetafileTypeInvalid = 0, + MetafileTypeWmf = 1, + MetafileTypeWmfPlaceable = 2, + MetafileTypeEmf = 3, + MetafileTypeEmfPlusOnly = 4, + MetafileTypeEmfPlusDual = 5 +} MetafileType; + +typedef enum ObjectType { + ObjectTypeInvalid = 0, + ObjectTypeBrush = 1, + ObjectTypePen = 2, + ObjectTypePath = 3, + ObjectTypeRegion = 4, + ObjectTypeFont = 5, + ObjectTypeStringFormat = 6, + ObjectTypeImageAttributes = 7, + ObjectTypeCustomLineCap = 8, + ObjectTypeGraphics = 9, + ObjectTypeMin = ObjectTypeBrush, + ObjectTypeMax = ObjectTypeGraphics +} ObjectType; + +typedef enum PathPointType { + PathPointTypeStart = 0x00, + PathPointTypeLine = 0x01, + PathPointTypeBezier = 0x03, + PathPointTypeBezier3 = 0x03, + PathPointTypePathTypeMask = 0x07, + PathPointTypePathDashMode = 0x10, + PathPointTypePathMarker = 0x20, + PathPointTypeCloseSubpath = 0x80 +} PathPointType; + +typedef enum PenAlignment { + PenAlignmentCenter = 0, + PenAlignmentInset = 1 +} PenAlignment; + +typedef enum PenType { + PenTypeUnknown = -1, + PenTypeSolidColor = 0, + PenTypeHatchFill = 1, + PenTypeTextureFill = 2, + PenTypePathGradient = 3, + PenTypeLinearGradient = 4 +} PenType; + +/* TODO: PixelOffsetMode */ +typedef enum PixelOffsetMode { + /*PixelOffsetModeInvalid = QualityModeInvalid,*/ + PixelOffsetModeDefault = 0, + PixelOffsetModeHighSpeed = 1, + PixelOffsetModeHighQuality = 2, + PixelOffsetModeNone = 3, + PixelOffsetModeHalf = 4 +} PixelOffsetMode; + +/* TODO: QualityMode */ +typedef enum QualityMode { + /*QualityModeInvalid = ?,*/ + QualityModeDefault = 0, + QualityModeLow = 1, + QualityModeHigh = 2 +} QualityMode; + +/* TODO: SmoothingMode */ +typedef enum SmoothingMode { + /*SmoothingModeInvalid = QualityModeInvalid,*/ + SmoothingModeDefault = 0, + SmoothingModeHighSpeed = 1, + SmoothingModeHighQuality = 2, + SmoothingModeNone = 3, + SmoothingModeAntiAlias8x4 = 4, + SmoothingModeAntiAlias = 4, + SmoothingModeAntiAlias8x8 = 5 +} SmoothingMode; + +typedef enum StringAlignment { + StringAlignmentNear = 0, + StringAlignmentCenter = 1, + StringAlignmentFar = 2 +} StringAlignment; + +typedef enum StringDigitSubstitute { + StringDigitSubstituteUser = 0, + StringDigitSubstituteNone = 1, + StringDigitSubstituteNational = 2, + StringDigitSubstituteTraditional = 3 +} StringDigitSubstitute; + +typedef enum StringFormatFlags { + StringFormatFlagsDirectionRightToLeft = 0x00000001, + StringFormatFlagsDirectionVertical = 0x00000002, + StringFormatFlagsNoFitBlackBox = 0x00000004, + StringFormatFlagsDisplayFormatControl = 0x00000020, + StringFormatFlagsNoFontFallback = 0x00000400, + StringFormatFlagsMeasureTrailingSpaces = 0x00000800, + StringFormatFlagsNoWrap = 0x00001000, + StringFormatFlagsLineLimit = 0x00002000, + StringFormatFlagsNoClip = 0x00004000 +} StringFormatFlags; + +typedef enum StringTrimming { + StringTrimmingNone = 0, + StringTrimmingCharacter = 1, + StringTrimmingWord = 2, + StringTrimmingEllipsisCharacter = 3, + StringTrimmingEllipsisWord = 4, + StringTrimmingEllipsisPath = 5 +} StringTrimming; + +typedef enum TextRenderingHint { + TextRenderingHintSystemDefault = 0, + TextRenderingHintSingleBitPerPixelGridFit = 1, + TextRenderingHintSingleBitPerPixel = 2, + TextRenderingHintAntiAliasGridFit = 3, + TextRenderingHintAntiAlias = 4, + TextRenderingHintClearTypeGridFit = 5 +} TextRenderingHint; + +typedef enum Unit { + UnitWorld = 0, + UnitDisplay = 1, + UnitPixel = 2, + UnitPoint = 3, + UnitInch = 4, + UnitDocument = 5, + UnitMillimeter = 6 +} Unit; + +typedef enum WarpMode { + WarpModePerspective = 0, + WarpModeBilinear = 1 +} WarpMode; + +typedef enum WrapMode { + WrapModeTile = 0, + WrapModeTileFlipX = 1, + WrapModeTileFlipY = 2, + WrapModeTileFlipXY = 3, + WrapModeClamp = 4 +} WrapMode; + +typedef enum GpTestControlEnum { + TestControlForceBilinear = 0, + TestControlForceNoICM = 1, + TestControlGetBuildNumber = 2 +} GpTestControlEnum; + +/* Opaque handles to information blocks on an internal GDI+ stack. */ +typedef DWORD GraphicsContainer; +typedef DWORD GraphicsState; + +/* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */ +/* FIXME: Is FlatnessDefault = 0.25f correct? */ +#ifdef __cplusplus +const REAL FlatnessDefault = 0.25f; +#else +#define FlatnessDefault ((REAL) 0.25f) +#endif + +static __inline__ BOOL ObjectTypeIsValid(ObjectType type) +{ + switch (type) { + case ObjectTypeBrush: + case ObjectTypePen: + case ObjectTypePath: + case ObjectTypeRegion: + case ObjectTypeFont: + case ObjectTypeStringFormat: + case ObjectTypeImageAttributes: + case ObjectTypeCustomLineCap: + case ObjectTypeGraphics: + return TRUE; + default: + return FALSE; + } +} + +#endif /* __GDIPLUS_ENUMS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusflat.h b/mingw-w64-headers/include/gdiplus/gdiplusflat.h new file mode 100644 index 0000000..5747834 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusflat.h
@@ -0,0 +1,722 @@ +/* + * gdiplusflat.h + * + * GDI+ Flat API + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_FLAT_H +#define __GDIPLUS_FLAT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +namespace DllExports { +extern "C" { +#endif + +/* AdjustableArrowCap functions */ +GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL*); +GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL); +GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*); + +/* Bitmap functions */ +GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO*,VOID*,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP,HPALETTE,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap*,HBITMAP*,ARGB); +GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON,GpBitmap**); +GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap*,HICON*); +GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE,GDIPCONST WCHAR*,GpBitmap**); +GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL,REAL,REAL,REAL,PixelFormat,GpBitmap*,GpBitmap**); +GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT,INT,INT,INT,PixelFormat,GpBitmap*,GpBitmap**); +GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,PixelFormat,BitmapData*); +GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap*,BitmapData*); +GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*); +GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB); +GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap*,REAL,REAL); +GpStatus WINGDIPAPI GdipBitmapConvertFormat(GpBitmap*,PixelFormat,DitherType,PaletteType,ColorPalette*,REAL); +GpStatus WINGDIPAPI GdipInitializePalette(ColorPalette*,PaletteType,INT,BOOL,GpBitmap*); +GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap*,CGpEffect*,RECT*,BOOL,VOID**,INT*); +GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap**,INT,CGpEffect*,RECT*,RECT*,GpBitmap**,BOOL,VOID**,INT*); +GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap*,HistogramFormat,UINT,UINT*,UINT*,UINT*,UINT*); +GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(HistogramFormat,UINT*); + +/* Brush functions */ +GpStatus WINGDIPAPI GdipCloneBrush(GpBrush*,GpBrush**); +GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); +GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); + +/* CachedBitmap functions */ +GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap*,GpGraphics*,GpCachedBitmap**); +GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap*); +GpStatus WINGDIPAPI GdipDrawCachedBitmap(GpGraphics*,GpCachedBitmap*,INT,INT); + +/* CustomLineCap functions */ +GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath*,GpPath*,GpLineCap,REAL,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*); +GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipGetCustomLineCapType(GpCustomLineCap*,CustomLineCapType*); +GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,GpLineCap); +GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap*,GpLineCap*); +GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin); +GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*); +GpStatus WINGDIPAPI GdipSetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap); +GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*); +GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL); +GpStatus WINGDIPAPI GdipGetCustomLineCapBaseInset(GpCustomLineCap*,REAL*); +GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap*,REAL); +GpStatus WINGDIPAPI GdipGetCustomLineCapWidthScale(GpCustomLineCap*,REAL*); + +/* Effect functions */ +GpStatus WINGDIPAPI GdipCreateEffect(GDIPCONST GUID,CGpEffect**); +GpStatus WINGDIPAPI GdipDeleteEffect(CGpEffect*); +GpStatus WINGDIPAPI GdipGetEffectParameterSize(CGpEffect*,UINT*); +GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect*,GDIPCONST VOID*,UINT); +GpStatus WINGDIPAPI GdipGetEffectParameters(CGpEffect*,UINT*,VOID*); + +/* Font functions */ +GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**); +GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**); +GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**); +GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily*,REAL,INT,Unit,GpFont**); +GpStatus WINGDIPAPI GdipCloneFont(GpFont*,GpFont**); +GpStatus WINGDIPAPI GdipDeleteFont(GpFont*); +GpStatus WINGDIPAPI GdipGetFamily(GpFont*,GpFontFamily**); +GpStatus WINGDIPAPI GdipGetFontStyle(GpFont*,INT*); +GpStatus WINGDIPAPI GdipGetFontSize(GpFont*,REAL*); +GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*,Unit*); +GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont*,GDIPCONST GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont*,REAL,REAL*); +GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*); +GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*); +GpStatus WINGDIPAPI GdipNewInstalledFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection**); +GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount(GpFontCollection*,INT*); +GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(GpFontCollection*,INT,GpFontFamily**,INT*); +GpStatus WINGDIPAPI GdipPrivateAddFontFile(GpFontCollection*,GDIPCONST WCHAR*); +GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection*,GDIPCONST void*,INT); + +/* FontFamily functions */ +GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR*,GpFontCollection*,GpFontFamily**); +GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily*); +GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily*,GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilySansSerif(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilySerif(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetGenericFontFamilyMonospace(GpFontFamily**); +GpStatus WINGDIPAPI GdipGetFamilyName(GDIPCONST GpFontFamily*,WCHAR[LF_FACESIZE],LANGID); +GpStatus WINGDIPAPI GdipIsStyleAvailable(GDIPCONST GpFontFamily*,INT,BOOL*); +GpStatus WINGDIPAPI GdipFontCollectionEnumerable(GpFontCollection*,GpGraphics*,INT*); +GpStatus WINGDIPAPI GdipFontCollectionEnumerate(GpFontCollection*,INT,GpFontFamily**,INT*,GpGraphics*); +GpStatus WINGDIPAPI GdipGetEmHeight(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetCellAscent(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetCellDescent(GDIPCONST GpFontFamily*,INT,UINT16*); +GpStatus WINGDIPAPI GdipGetLineSpacing(GDIPCONST GpFontFamily*,INT,UINT16*); + +/* Graphics functions */ +GpStatus WINGDIPAPI GdipFlush(GpGraphics*,GpFlushIntention); +GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC,HANDLE,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**); +GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND,GpGraphics**); +GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics*); +GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*); +GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics*,HDC); +GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode); +GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*); +GpStatus WINGDIPAPI GdipSetRenderingOrigin(GpGraphics*,INT,INT); +GpStatus WINGDIPAPI GdipGetRenderingOrigin(GpGraphics*,INT*,INT*); +GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality); +GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*); +GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode); +GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*); +GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode); +GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*); +GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics*,TextRenderingHint); +GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*); +GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics*,UINT); +GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*); +GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode); +GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics*,GdiplusAbort*); +GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*); +GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics*); +GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics*); +GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*); +GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit); +GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL); +GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*); +GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPointF*,INT); +GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics*,ARGB*); +HPALETTE WINGDIPAPI GdipCreateHalftonePalette(void); +GpStatus WINGDIPAPI GdipDrawLine(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics*,GpPen*,INT,INT,INT,INT,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics*,GpPen*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*); +GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB); +GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,GpFillMode); +GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,GpFillMode); +GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics*,GpBrush*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipFillPieI(GpGraphics*,GpBrush*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*); +GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,REAL,GpFillMode); +GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,REAL,GpFillMode); +GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*); +GpStatus WINGDIPAPI GdipDrawImage(GpGraphics*,GpImage*,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawImageI(GpGraphics*,GpImage*,INT,INT); +GpStatus WINGDIPAPI GdipDrawImageRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipDrawImageRectI(GpGraphics*,GpImage*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipDrawImagePoints(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipDrawImagePointsI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit); +GpStatus WINGDIPAPI GdipDrawImagePointRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,GpUnit); +GpStatus WINGDIPAPI GdipDrawImageRectRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImagePointsRectI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); +GpStatus WINGDIPAPI GdipDrawImageFX(GpGraphics*,GpImage*,GpRectF*,GpMatrix*,CGpEffect*,GpImageAttributes*,GpUnit); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#endif +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); +#endif +GpStatus WINGDIPAPI GdipSetClipGraphics(GpGraphics*,GpGraphics*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode); +GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode); +GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode); +GpStatus WINGDIPAPI GdipResetClip(GpGraphics*); +GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL); +GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT); +GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*); +GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipIsVisibleClipEmpty(GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics*,REAL,REAL,REAL,REAL,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics*,INT,INT,INT,INT,BOOL*); +GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*); +GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState); +GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics*,GDIPCONST GpRectF*,GDIPCONST GpRectF*,GpUnit,GraphicsContainer*); +GpStatus WINGDIPAPI GdipBeginContainerI(GpGraphics*,GDIPCONST GpRect*,GDIPCONST GpRect*,GpUnit,GraphicsContainer*); +GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics*,GraphicsContainer*); +GpStatus WINGDIPAPI GdipEndContainer(GpGraphics*,GraphicsContainer); +GpStatus WINGDIPAPI GdipComment(GpGraphics*,UINT,GDIPCONST BYTE*); + +/* GraphicsPath functions */ +GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); +GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**); +GpStatus WINGDIPAPI GdipDeletePath(GpPath*); +GpStatus WINGDIPAPI GdipResetPath(GpPath*); +GpStatus WINGDIPAPI GdipGetPointCount(GpPath*,INT*); +GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT); +GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*); +GpStatus WINGDIPAPI GdipSetPathFillMode(GpPath*,GpFillMode); +GpStatus WINGDIPAPI GdipGetPathData(GpPath*,GpPathData*); +GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*); +GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*); +GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*); +GpStatus WINGDIPAPI GdipSetPathMarker(GpPath*); +GpStatus WINGDIPAPI GdipClearPathMarkers(GpPath*); +GpStatus WINGDIPAPI GdipReversePath(GpPath*); +GpStatus WINGDIPAPI GdipGetPathLastPoint(GpPath*,GpPointF*); +GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath*,GDIPCONST GpPointF*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathClosedCurve(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath*,GDIPCONST GpRectF*,INT); +GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPie(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath*,GDIPCONST GpPointF*,INT); +GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL); +GpStatus WINGDIPAPI GdipAddPathString(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST RectF*,GDIPCONST GpStringFormat*); +GpStatus WINGDIPAPI GdipAddPathStringI(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST Rect*,GDIPCONST GpStringFormat*); +GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathCurveI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath*,GDIPCONST GpPoint*,INT,INT,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathClosedCurveI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); +GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath*,GDIPCONST GpRect*,INT); +GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT); +GpStatus WINGDIPAPI GdipAddPathPieI(GpPath*,INT,INT,INT,INT,REAL,REAL); +GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath*,GDIPCONST GpPoint*,INT); +GpStatus WINGDIPAPI GdipFlattenPath(GpPath*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWindingModeOutline(GpPath*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWidenPath(GpPath*,GpPen*,GpMatrix*,REAL); +GpStatus WINGDIPAPI GdipWarpPath(GpPath*,GpMatrix*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,WarpMode,REAL); +GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetPathWorldBounds(GpPath*,GpRectF*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); +GpStatus WINGDIPAPI GdipGetPathWorldBoundsI(GpPath*,GpRect*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); +GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath*,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath*,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath*,REAL,REAL,GpPen*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath*,INT,INT,GpPen*,GpGraphics*,BOOL*); + +/* HatchBrush functions */ +GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle,ARGB,ARGB,GpHatch**); +GpStatus WINGDIPAPI GdipGetHatchStyle(GpHatch*,GpHatchStyle*); +GpStatus WINGDIPAPI GdipGetHatchForegroundColor(GpHatch*,ARGB*); +GpStatus WINGDIPAPI GdipGetHatchBackgroundColor(GpHatch*,ARGB*); + +/* Image functions */ +GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromStreamICM(IStream*,GpImage**); +GpStatus WINGDIPAPI GdipLoadImageFromFileICM(GDIPCONST WCHAR*,GpImage**); +GpStatus WINGDIPAPI GdipCloneImage(GpImage*,GpImage**); +GpStatus WINGDIPAPI GdipDisposeImage(GpImage*); +GpStatus WINGDIPAPI GdipSaveImageToFile(GpImage*,GDIPCONST WCHAR*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage*,IStream*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveAdd(GpImage*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipSaveAddImage(GpImage*,GpImage*,GDIPCONST EncoderParameters*); +GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage*,GpGraphics**); +GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*); +GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*); +GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*); +GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage*,REAL*); +GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*); +GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*); +GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage*,PixelFormat*); +GpStatus WINGDIPAPI GdipGetImageThumbnail(GpImage*,UINT,UINT,GpImage**,GetThumbnailImageAbort,VOID*); +GpStatus WINGDIPAPI GdipGetEncoderParameterListSize(GpImage*,GDIPCONST CLSID*,UINT*); +GpStatus WINGDIPAPI GdipGetEncoderParameterList(GpImage*,GDIPCONST CLSID*,UINT,EncoderParameters*); +GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT); +GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*); +GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT); +GpStatus WINGDIPAPI GdipImageRotateFlip(GpImage*,RotateFlipType); +GpStatus WINGDIPAPI GdipGetImagePalette(GpImage*,ColorPalette*,INT); +GpStatus WINGDIPAPI GdipSetImagePalette(GpImage*,GDIPCONST ColorPalette*); +GpStatus WINGDIPAPI GdipGetImagePaletteSize(GpImage*,INT*); +GpStatus WINGDIPAPI GdipGetPropertyCount(GpImage*,UINT*); +GpStatus WINGDIPAPI GdipGetPropertyIdList(GpImage*,UINT,PROPID*); +GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*); +GpStatus WINGDIPAPI GdipGetPropertyItem(GpImage*,PROPID,UINT,PropertyItem*); +GpStatus WINGDIPAPI GdipGetPropertySize(GpImage*,UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage*,UINT,UINT,PropertyItem*); +GpStatus WINGDIPAPI GdipRemovePropertyItem(GpImage*,PROPID); +GpStatus WINGDIPAPI GdipSetPropertyItem(GpImage*,GDIPCONST PropertyItem*); +GpStatus WINGDIPAPI GdipFindFirstImageItem(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipFindNextImageItem(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipGetImageItemData(GpImage*,ImageItemData*); +GpStatus WINGDIPAPI GdipImageSetAbort(GpImage*,GdiplusAbort*); +GpStatus WINGDIPAPI GdipImageForceValidation(GpImage*); + +/* Image codec functions */ +GpStatus WINGDIPAPI GdipGetImageDecodersSize(UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetImageDecoders(UINT,UINT,ImageCodecInfo*); +GpStatus WINGDIPAPI GdipGetImageEncodersSize(UINT*,UINT*); +GpStatus WINGDIPAPI GdipGetImageEncoders(UINT,UINT,ImageCodecInfo*); + +/* ImageAttributes functions */ +GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**); +GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes*,GpImageAttributes**); +GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes*); +GpStatus WINGDIPAPI GdipSetImageAttributesToIdentity(GpImageAttributes*,ColorAdjustType); +GpStatus WINGDIPAPI GdipResetImageAttributes(GpImageAttributes*,ColorAdjustType); +GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST ColorMatrix*,GDIPCONST ColorMatrix*,ColorMatrixFlags); +GpStatus WINGDIPAPI GdipSetImageAttributesThreshold(GpImageAttributes*,ColorAdjustType,BOOL,REAL); +GpStatus WINGDIPAPI GdipSetImageAttributesGamma(GpImageAttributes*,ColorAdjustType,BOOL,REAL); +GpStatus WINGDIPAPI GdipSetImageAttributesNoOp(GpImageAttributes*,ColorAdjustType,BOOL); +GpStatus WINGDIPAPI GdipSetImageAttributesColorKeys(GpImageAttributes*,ColorAdjustType,BOOL,ARGB,ARGB); +GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannel(GpImageAttributes*,ColorAdjustType,BOOL,ColorChannelFlags); +GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST WCHAR*); +GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes*,ColorAdjustType,BOOL,UINT,GDIPCONST ColorMap*); +GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes*,WrapMode,ARGB,BOOL); +GpStatus WINGDIPAPI GdipSetImageAttributesICMMode(GpImageAttributes*,BOOL); +GpStatus WINGDIPAPI GdipGetImageAttributesAdjustedPalette(GpImageAttributes*,ColorPalette*,ColorAdjustType); +GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes*,BOOL); + +/* LinearGradientBrush functions */ +GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF*,GDIPCONST GpPointF*,ARGB,ARGB,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushI(GDIPCONST GpPoint*,GDIPCONST GpPoint*,ARGB,ARGB,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); +GpStatus WINGDIPAPI GdipSetLineColors(GpLineGradient*,ARGB,ARGB); +GpStatus WINGDIPAPI GdipGetLineColors(GpLineGradient*,ARGB*); +GpStatus WINGDIPAPI GdipGetLineRect(GpLineGradient*,GpRectF*); +GpStatus WINGDIPAPI GdipGetLineRectI(GpLineGradient*,GpRect*); +GpStatus WINGDIPAPI GdipSetLineGammaCorrection(GpLineGradient*,BOOL); +GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient*,BOOL*); +GpStatus WINGDIPAPI GdipGetLineBlendCount(GpLineGradient*,INT*); +GpStatus WINGDIPAPI GdipGetLineBlend(GpLineGradient*,REAL*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetLinePresetBlendCount(GpLineGradient*,INT*); +GpStatus WINGDIPAPI GdipGetLinePresetBlend(GpLineGradient*,ARGB*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipSetLineSigmaBlend(GpLineGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetLineLinearBlend(GpLineGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetLineWrapMode(GpLineGradient*,GpWrapMode*); +GpStatus WINGDIPAPI GdipGetLineTransform(GpLineGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetLineTransform(GpLineGradient*,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipResetLineTransform(GpLineGradient*); +GpStatus WINGDIPAPI GdipMultiplyLineTransform(GpLineGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateLineTransform(GpLineGradient*,REAL,GpMatrixOrder); + +/* Matrix functions */ +GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF*,GDIPCONST GpPointF*,GpMatrix**); +GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**); +GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); +GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); +GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL); +GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix*); +GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix*,GpPointF*,INT); +GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); +GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*); +GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix*,BOOL*); +GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*,BOOL*); +GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*,GDIPCONST GpMatrix*,BOOL*); + +/* Metafile functions */ +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*); +GpStatus WINGDIPAPI GdipGetHemfFromMetafile(GpMetafile*,HENHMETAFILE*); +GpStatus WINGDIPAPI GdipCreateStreamOnFile(GDIPCONST WCHAR*,UINT,IStream**); +GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE,BOOL,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE,BOOL,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR*,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); +GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafile(HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileI(HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileFileNameI(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileStream(IStream*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipRecordMetafileStreamI(IStream*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile*,EmfPlusRecordType,UINT,UINT,GDIPCONST BYTE*); +GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile*,UINT); +GpStatus WINGDIPAPI GdipGetMetafileDownLevelRasterizationLimit(GDIPCONST GpMetafile*,UINT*); +GpStatus WINGDIPAPI GdipConvertToEmfPlus(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipConvertToEmfPlusToFile(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,GDIPCONST WCHAR*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +GpStatus WINGDIPAPI GdipConvertToEmfPlusToStream(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,IStream*,EmfType,GDIPCONST WCHAR*,GpMetafile**); +UINT WINGDIPAPI GdipEmfToWmfBits(HENHMETAFILE,UINT,LPBYTE,INT,INT); + +/* PathGradientBrush functions */ +GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF*,INT,GpWrapMode,GpPathGradient**); +GpStatus WINGDIPAPI GdipCreatePathGradientI(GDIPCONST GpPoint*,INT,GpWrapMode,GpPathGradient**); +GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*,GpPathGradient**); +GpStatus WINGDIPAPI GdipGetPathGradientCenterColor(GpPathGradient*,ARGB*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); +GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*,ARGB*,INT*); +GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,GDIPCONST ARGB*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientPath(GpPathGradient*,GpPath*); +GpStatus WINGDIPAPI GdipSetPathGradientPath(GpPathGradient*,GDIPCONST GpPath*); +GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*); +GpStatus WINGDIPAPI GdipGetPathGradientCenterPointI(GpPathGradient*,GpPoint*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GDIPCONST GpPointF*); +GpStatus WINGDIPAPI GdipSetPathGradientCenterPointI(GpPathGradient*,GDIPCONST GpPoint*); +GpStatus WINGDIPAPI GdipGetPathGradientRect(GpPathGradient*,GpRectF*); +GpStatus WINGDIPAPI GdipGetPathGradientRectI(GpPathGradient*,GpRect*); +GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL); +GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*); +GpStatus WINGDIPAPI GdipGetPathGradientBlendCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientBlend(GpPathGradient*,REAL*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPathGradientPresetBlendCount(GpPathGradient*,INT*); +GpStatus WINGDIPAPI GdipGetPathGradientPresetBlend(GpPathGradient*,ARGB*,REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipSetPathGradientLinearBlend(GpPathGradient*,REAL,REAL); +GpStatus WINGDIPAPI GdipGetPathGradientWrapMode(GpPathGradient*,GpWrapMode*); +GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPathGradientTransform(GpPathGradient*); +GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipGetPathGradientFocusScales(GpPathGradient*,REAL*,REAL*); +GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL); + +/* PathIterator functions */ +GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*); +GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*); +GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator*,INT*,INT*,INT*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator*,INT*,GpPath*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator*,INT*,BYTE*,INT*,INT*); +GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator*,INT*,INT*,INT*); +GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator*,INT*,GpPath*); +GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator*,INT*); +GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator*,INT*); +GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator*,BOOL*); +GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator*); +GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator*,INT*,GpPointF*,BYTE*,INT); +GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator*,INT*,GpPointF*,BYTE*,INT,INT); + +/* Pen functions */ +GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**); +GpStatus WINGDIPAPI GdipCreatePen2(GpBrush*,REAL,GpUnit,GpPen**); +GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**); +GpStatus WINGDIPAPI GdipDeletePen(GpPen*); +GpStatus WINGDIPAPI GdipSetPenWidth(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenWidth(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenUnit(GpPen*,GpUnit); +GpStatus WINGDIPAPI GdipGetPenUnit(GpPen*,GpUnit*); +GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap); +GpStatus WINGDIPAPI GdipSetPenStartCap(GpPen*,GpLineCap); +GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap); +GpStatus WINGDIPAPI GdipSetPenDashCap197819(GpPen*,GpDashCap); +GpStatus WINGDIPAPI GdipGetPenStartCap(GpPen*,GpLineCap*); +GpStatus WINGDIPAPI GdipGetPenEndCap(GpPen*,GpLineCap*); +GpStatus WINGDIPAPI GdipGetPenDashCap197819(GpPen*,GpDashCap*); +GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin); +GpStatus WINGDIPAPI GdipGetPenLineJoin(GpPen*,GpLineJoin*); +GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*); +GpStatus WINGDIPAPI GdipGetPenCustomStartCap(GpPen*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*); +GpStatus WINGDIPAPI GdipGetPenCustomEndCap(GpPen*,GpCustomLineCap**); +GpStatus WINGDIPAPI GdipSetPenMiterLimit(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenMiterLimit(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenMode(GpPen*,GpPenAlignment); +GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*); +GpStatus WINGDIPAPI GdipSetPenTransform(GpPen*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetPenTransform(GpPen*,GpMatrix*); +GpStatus WINGDIPAPI GdipResetPenTransform(GpPen*); +GpStatus WINGDIPAPI GdipMultiplyPenTransform(GpPen*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslatePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScalePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotatePenTransform(GpPen*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB); +GpStatus WINGDIPAPI GdipGetPenColor(GpPen*,ARGB*); +GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*); +GpStatus WINGDIPAPI GdipGetPenBrushFill(GpPen*,GpBrush**); +GpStatus WINGDIPAPI GdipGetPenFillType(GpPen*,GpPenType*); +GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*); +GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle); +GpStatus WINGDIPAPI GdipGetPenDashOffset(GpPen*,REAL*); +GpStatus WINGDIPAPI GdipSetPenDashOffset(GpPen*,REAL); +GpStatus WINGDIPAPI GdipGetPenDashCount(GpPen*,INT*); +GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenDashArray(GpPen*,REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenCompoundCount(GpPen*,INT*); +GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT); +GpStatus WINGDIPAPI GdipGetPenCompoundArray(GpPen*,REAL*,INT); + +/* Region functions */ +GpStatus WINGDIPAPI GdipCreateRegion(GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath*,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE*,INT,GpRegion**); +GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN,GpRegion**); +GpStatus WINGDIPAPI GdipCloneRegion(GpRegion*,GpRegion**); +GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion*); +GpStatus WINGDIPAPI GdipSetInfinite(GpRegion*); +GpStatus WINGDIPAPI GdipSetEmpty(GpRegion*); +GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion*,GDIPCONST GpRectF*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion*,GDIPCONST GpRect*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion*,GpPath*,CombineMode); +GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion*,GpRegion*,CombineMode); +GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion*,REAL,REAL); +GpStatus WINGDIPAPI GdipTranslateRegionI(GpRegion*,INT,INT); +GpStatus WINGDIPAPI GdipTransformRegion(GpRegion*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion*,GpGraphics*,GpRectF*); +GpStatus WINGDIPAPI GdipGetRegionBoundsI(GpRegion*,GpGraphics*,GpRect*); +GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion*,GpGraphics*,HRGN*); +GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion*,GpRegion*,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion*,UINT*); +GpStatus WINGDIPAPI GdipGetRegionData(GpRegion*,BYTE*,UINT,UINT*); +GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion*,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion*,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion*,REAL,REAL,REAL,REAL,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion*,INT,INT,INT,INT,GpGraphics*,BOOL*); +GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion*,UINT*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion*,GpRectF*,INT*,GpMatrix*); +GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion*,GpRect*,INT*,GpMatrix*); + +/* SolidBrush functions */ +GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**); +GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB); +GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); + +/* StringFormat functions */ +GpStatus WINGDIPAPI GdipCreateStringFormat(INT,LANGID,GpStringFormat**); +GpStatus WINGDIPAPI GdipStringFormatGetGenericDefault(GpStringFormat**); +GpStatus WINGDIPAPI GdipStringFormatGetGenericTypographic(GpStringFormat**); +GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat*); +GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringFormat**); +GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat*,INT); +GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatAlign(GpStringFormat*,StringAlignment); +GpStatus WINGDIPAPI GdipGetStringFormatAlign(GDIPCONST GpStringFormat*,StringAlignment*); +GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat*,StringAlignment); +GpStatus WINGDIPAPI GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat*,StringAlignment*); +GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat*,StringTrimming); +GpStatus WINGDIPAPI GdipGetStringFormatTrimming(GDIPCONST GpStringFormat*,StringTrimming*); +GpStatus WINGDIPAPI GdipSetStringFormatHotkeyPrefix(GpStringFormat*,INT); +GpStatus WINGDIPAPI GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat*,REAL,INT,GDIPCONST REAL*); +GpStatus WINGDIPAPI GdipGetStringFormatTabStops(GDIPCONST GpStringFormat*,INT,REAL*,REAL*); +GpStatus WINGDIPAPI GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatDigitSubstitution(GpStringFormat*,LANGID,StringDigitSubstitute); +GpStatus WINGDIPAPI GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat*,LANGID*,StringDigitSubstitute*); +GpStatus WINGDIPAPI GdipGetStringFormatMeasurableCharacterRangeCount(GDIPCONST GpStringFormat*,INT*); +GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(GpStringFormat*,INT,GDIPCONST CharacterRange*); + +/* Text functions */ +GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,GDIPCONST GpBrush*); +GpStatus WINGDIPAPI GdipMeasureString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,RectF*,INT*,INT*); +#ifdef __cplusplus +GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF&,GDIPCONST GpStringFormat*,INT,GpRegion**); +#endif +GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST GpBrush*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*,RectF*); + +/* TextureBrush functions */ +GpStatus WINGDIPAPI GdipCreateTexture(GpImage*,GpWrapMode,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTexture2(GpImage*,GpWrapMode,REAL,REAL,REAL,REAL,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTexture2I(GpImage*,GpWrapMode,INT,INT,INT,INT,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage*,GDIPCONST GpImageAttributes*,REAL,REAL,REAL,REAL,GpTexture**); +GpStatus WINGDIPAPI GdipCreateTextureIAI(GpImage*,GDIPCONST GpImageAttributes*,INT,INT,INT,INT,GpTexture**); +GpStatus WINGDIPAPI GdipGetTextureTransform(GpTexture*,GpMatrix*); +GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture*,GDIPCONST GpMatrix*); +GpStatus WINGDIPAPI GdipResetTextureTransform(GpTexture*); +GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture*,GDIPCONST GpMatrix*,GpMatrixOrder); +GpStatus WINGDIPAPI GdipTranslateTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipScaleTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipRotateTextureTransform(GpTexture*,REAL,GpMatrixOrder); +GpStatus WINGDIPAPI GdipSetTextureWrapMode(GpTexture*,GpWrapMode); +GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture*,GpWrapMode*); +GpStatus WINGDIPAPI GdipGetTextureImage(GpTexture*,GpImage**); + +/* uncategorized functions */ +GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*); + +#ifdef __cplusplus +} /* extern "C" */ +} /* namespace DllExports */ +#endif + +#endif /* __GDIPLUS_FLAT_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusgpstubs.h b/mingw-w64-headers/include/gdiplus/gdiplusgpstubs.h new file mode 100644 index 0000000..b11d416 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusgpstubs.h
@@ -0,0 +1,139 @@ +/* + * gdiplusgpstubs.h + * + * GDI+ Gp* type declarations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_GPSTUBS_H +#define __GDIPLUS_GPSTUBS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef Point GpPoint; +typedef PointF GpPointF; +typedef Rect GpRect; +typedef RectF GpRectF; +typedef Size GpSize; +typedef SizeF GpSizeF; + +typedef enum BrushType GpBrushType; +typedef enum CombineMode GpCombineMode; +typedef enum CompositingMode GpCompositingMode; +typedef enum CompositingQuality GpCompositingQuality; +typedef enum CoordinateSpace GpCoordinateSpace; +typedef enum CustomLineCapType GpCustomLineCapType; +typedef enum DashCap GpDashCap; +typedef enum DashStyle GpDashStyle; +typedef enum DitherType GpDitherType; +typedef enum DriverStringOptions GpDriverStringOptions; +typedef enum EmfPlusRecordType GpEmfPlusRecordType; +typedef enum EmfToWmfBitsFlags GpEmfToWmfBitsFlags; +typedef enum EmfType GpEmfType; +typedef enum EncoderParameterValueType GpEncoderParameterValueType; +typedef enum EncoderValue GpEncoderValue; +typedef enum FillMode GpFillMode; +typedef enum FlushIntention GpFlushIntention; +typedef enum FontStyle GpFontStyle; +typedef enum HatchStyle GpHatchStyle; +typedef enum HotkeyPrefix GpHotkeyPrefix; +typedef enum ImageType GpImageType; +typedef enum InterpolationMode GpInterpolationMode; +typedef enum LinearGradientMode GpLinearGradientMode; +typedef enum LineCap GpLineCap; +typedef enum LineJoin GpLineJoin; +typedef enum MatrixOrder GpMatrixOrder; +typedef enum MetafileFrameUnit GpMetafileFrameUnit; +typedef enum MetafileType GpMetafileType; +typedef enum ObjectType GpObjectType; +typedef enum PathPointType GpPathPointType; +typedef enum PenAlignment GpPenAlignment; +typedef enum PenType GpPenType; +typedef enum PixelOffsetMode GpPixelOffsetMode; +typedef enum QualityMode GpQualityMode; +typedef enum SmoothingMode GpSmoothingMode; +typedef enum StringAlignment GpStringAlignment; +typedef enum StringDigitSubstitute GpStringDigitSubstitute; +typedef enum StringFormatFlags GpStringFormatFlags; +typedef enum StringTrimming GpStringTrimming; +typedef enum TextRenderingHint GpTextRenderingHint; +typedef enum Unit GpUnit; +typedef enum WarpMode GpWarpMode; +typedef enum WrapMode GpWrapMode; + +#ifdef __cplusplus + +class CGpEffect {}; +class GpCustomLineCap {}; +class GpImage {}; + +class GpAdjustableArrowCap: public GpCustomLineCap {}; +class GpBitmap: public GpImage {}; +class GpBrush {}; +class GpCachedBitmap {}; +class GpFont {}; +class GpFontCollection {}; +class GpFontFamily {}; +class GpGraphics {}; +class GpHatch: public GpBrush {}; /* HatchBrush */ +class GpImageAttributes {}; +class GpLineGradient: public GpBrush {}; /* LinearGradientBrush */ +class GpMatrix {}; +class GpMetafile: public GpImage {}; +class GpPath {}; /* GraphicsPath */ +class GpPathData {}; +class GpPathGradient: public GpBrush {}; /* PathGradientBrush */ +class GpPathIterator {}; /* GraphicsPathIterator */ +class GpPen {}; +class GpRegion {}; +class GpSolidFill: public GpBrush {}; /* SolidBrush */ +class GpStringFormat {}; +class GpTexture: public GpBrush {}; /* TextureBrush */ + +#else /* !__cplusplus */ + +typedef void CGpEffect; +typedef void GpAdjustableArrowCap; +typedef void GpBitmap; +typedef void GpBrush; +typedef void GpCachedBitmap; +typedef void GpCustomLineCap; +typedef void GpFont; +typedef void GpFontFamily; +typedef void GpFontCollection; +typedef void GpGraphics; +typedef void GpHatch; +typedef void GpImage; +typedef void GpImageAttributes; +typedef void GpLineGradient; +typedef void GpMatrix; +typedef void GpMetafile; +typedef void GpPath; +typedef void GpPathData; +typedef void GpPathGradient; +typedef void GpPathIterator; +typedef void GpPen; +typedef void GpRegion; +typedef void GpSolidFill; +typedef void GpStringFormat; +typedef void GpTexture; + +#endif /* !__cplusplus */ + +#endif /* __GDIPLUS_GPSTUBS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusgraphics.h b/mingw-w64-headers/include/gdiplus/gdiplusgraphics.h new file mode 100644 index 0000000..360c897 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusgraphics.h
@@ -0,0 +1,1540 @@ +/* + * gdiplusgraphics.h + * + * GDI+ Graphics class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_GRAPHICS_H +#define __GDIPLUS_GRAPHICS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusgraphics.h." +#endif + +class Graphics: public GdiplusBase +{ + friend class Bitmap; + friend class CachedBitmap; + friend class Font; + friend class GraphicsPath; + friend class Metafile; + friend class Region; + +public: + static Graphics* FromHDC(HDC hdc) + { + return new Graphics(hdc); + } + static Graphics* FromHDC(HDC hdc, HANDLE hdevice) + { + return new Graphics(hdc, hdevice); + } + static Graphics* FromHWND(HWND hwnd, BOOL icm = FALSE) + { + return new Graphics(hwnd, icm); + } + static Graphics* FromImage(Image *image) + { + return new Graphics(image); + } + static HPALETTE GetHalftonePalette() + { + return DllExports::GdipCreateHalftonePalette(); + } + + Graphics(Image *image): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipGetImageGraphicsContext( + image ? image->nativeImage : NULL, + &nativeGraphics); + } + Graphics(HDC hdc): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateFromHDC( + hdc, &nativeGraphics); + } + Graphics(HDC hdc, HANDLE hdevice): nativeGraphics(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateFromHDC2( + hdc, hdevice, &nativeGraphics); + } + Graphics(HWND hwnd, BOOL icm = FALSE): + nativeGraphics(NULL), lastStatus(Ok) + { + if (icm) { + lastStatus = DllExports::GdipCreateFromHWNDICM( + hwnd, &nativeGraphics); + } else { + lastStatus = DllExports::GdipCreateFromHWND( + hwnd, &nativeGraphics); + } + } + ~Graphics() + { + DllExports::GdipDeleteGraphics(nativeGraphics); + } + + Status AddMetafileComment(const BYTE *data, UINT sizeData) + { + return updateStatus(DllExports::GdipComment( + nativeGraphics, sizeData, data)); + } + GraphicsContainer BeginContainer() + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainer2( + nativeGraphics, &result)); + return result; + } + GraphicsContainer BeginContainer(const RectF& dstrect, + const RectF& srcrect, Unit unit) + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainer( + nativeGraphics, &dstrect, &srcrect, unit, + &result)); + return result; + } + GraphicsContainer BeginContainer(const Rect& dstrect, + const Rect& srcrect, Unit unit) + { + GraphicsContainer result = 0; + updateStatus(DllExports::GdipBeginContainerI( + nativeGraphics, &dstrect, &srcrect, unit, + &result)); + return result; + } + Status Clear(const Color& color) + { + return updateStatus(DllExports::GdipGraphicsClear( + nativeGraphics, color.GetValue())); + } + Status DrawArc(const Pen *pen, REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArc( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArcI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArc( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawArc(const Pen *pen, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawArcI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawBezier(const Pen *pen, + REAL x1, REAL y1, REAL x2, REAL y2, + REAL x3, REAL y3, REAL x4, REAL y4) + { + return updateStatus(DllExports::GdipDrawBezier( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status DrawBezier(const Pen *pen, + INT x1, INT y1, INT x2, INT y2, + INT x3, INT y3, INT x4, INT y4) + { + return updateStatus(DllExports::GdipDrawBezierI( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status DrawBezier(const Pen *pen, + const PointF& pt1, const PointF& pt2, + const PointF& pt3, const PointF& pt4) + { + return updateStatus(DllExports::GdipDrawBezier( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status DrawBezier(const Pen *pen, + const Point& pt1, const Point& pt2, + const Point& pt3, const Point& pt4) + { + return updateStatus(DllExports::GdipDrawBezierI( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status DrawBeziers(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawBeziers( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawBeziers(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawBeziersI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCachedBitmap(CachedBitmap *cb, INT x, INT y) + { + return updateStatus(DllExports::GdipDrawCachedBitmap( + nativeGraphics, + cb ? cb->nativeCachedBitmap : NULL, + x, y)); + } + Status DrawClosedCurve(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawClosedCurve( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawClosedCurve(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawClosedCurveI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawClosedCurve(const Pen *pen, const PointF *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawClosedCurve2( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawClosedCurve(const Pen *pen, const Point *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawClosedCurve2I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawCurve( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawCurveI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve2( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count, + REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve2I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, tension)); + } + Status DrawCurve(const Pen *pen, const PointF *points, INT count, + INT offset, INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve3( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, offset, + numberOfSegments, tension)); + } + Status DrawCurve(const Pen *pen, const Point *points, INT count, + INT offset, INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipDrawCurve3I( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count, offset, + numberOfSegments, tension)); + } + Status DrawDriverString(const UINT16 *text, INT length, + const Font *font, const Brush *brush, + const PointF *positions, INT flags, + const Matrix *matrix) + { + return updateStatus(DllExports::GdipDrawDriverString( + nativeGraphics, text, length, + font ? font->nativeFont : NULL, + brush ? brush->nativeBrush : NULL, + positions, flags, + matrix ? matrix->nativeMatrix : NULL)); + } + Status DrawEllipse(const Pen *pen, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawEllipse( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawEllipse(const Pen *pen, INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawEllipseI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawEllipse(const Pen *pen, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawEllipse( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawEllipse(const Pen *pen, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawEllipseI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, REAL x, REAL y) + { + return updateStatus(DllExports::GdipDrawImage( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y)); + } + Status DrawImage(Image *image, INT x, INT y) + { + return updateStatus(DllExports::GdipDrawImageI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y)); + } + Status DrawImage(Image *image, const PointF& point) + { + return updateStatus(DllExports::GdipDrawImage( + nativeGraphics, + image ? image->nativeImage : NULL, + point.X, point.Y)); + } + Status DrawImage(Image *image, const Point& point) + { + return updateStatus(DllExports::GdipDrawImageI( + nativeGraphics, + image ? image->nativeImage : NULL, + point.X, point.Y)); + } + Status DrawImage(Image *image, REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawImageRect( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, width, height)); + } + Status DrawImage(Image *image, INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawImageRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, width, height)); + } + Status DrawImage(Image *image, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawImageRect( + nativeGraphics, + image ? image->nativeImage : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawImageRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawImage(Image *image, const PointF *destPoints, INT count) + { + return updateStatus(DllExports::GdipDrawImagePoints( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count)); + } + Status DrawImage(Image *image, const Point *destPoints, INT count) + { + return updateStatus(DllExports::GdipDrawImagePointsI( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count)); + } + Status DrawImage(Image *image, REAL x, REAL y, REAL srcx, REAL srcy, + REAL srcwidth, REAL srcheight, Unit srcUnit) + { + return updateStatus(DllExports::GdipDrawImagePointRect( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, srcx, srcy, srcwidth, srcheight, + srcUnit)); + } + Status DrawImage(Image *image, INT x, INT y, INT srcx, INT srcy, + INT srcwidth, INT srcheight, Unit srcUnit) + { + return updateStatus(DllExports::GdipDrawImagePointRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + x, y, srcx, srcy, srcwidth, srcheight, + srcUnit)); + } + Status DrawImage(Image *image, const RectF& destRect, + REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRect( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const Rect& destRect, + INT srcx, INT srcy, INT srcwidth, INT srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const RectF& destRect, + const RectF& sourceRect, Unit srcUnit, + const ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipDrawImageRectRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destRect.X, destRect.Y, + destRect.Width, destRect.Height, + sourceRect.X, sourceRect.Y, + sourceRect.Width, sourceRect.Height, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + NULL, NULL)); + } + Status DrawImage(Image *image, const PointF *destPoints, INT count, + REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImagePointsRect( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + Status DrawImage(Image *image, const Point *destPoints, INT count, + INT srcx, INT srcy, INT srcwidth, INT srcheight, + Unit srcUnit, + const ImageAttributes *imageAttributes = NULL, + DrawImageAbort callback = NULL, + VOID *callbackData = NULL) + { + return updateStatus(DllExports::GdipDrawImagePointsRectI( + nativeGraphics, + image ? image->nativeImage : NULL, + destPoints, count, + srcx, srcy, srcwidth, srcheight, srcUnit, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + callback, callbackData)); + } + // TODO: [GDI+ 1.1] Graphics::DrawImage(..Effect..) + //Status DrawImage(Image *image, RectF *sourceRect, Matrix *matrix, + // Effect *effect, ImageAttributes *imageAttributes, + // Unit srcUnit) + //{ + // return updateStatus(DllExports::GdipDrawImageFX( + // nativeGraphics, + // image ? image->nativeImage : NULL, + // sourceRect, + // matrix ? matrix->nativeMatrix : NULL, + // effect ? effect->nativeEffect : NULL, + // imageAttributes ? imageAttributes->nativeImageAttributes : NULL, + // srcUnit)); + //} + Status DrawLine(const Pen *pen, REAL x1, REAL y1, REAL x2, REAL y2) + { + return updateStatus(DllExports::GdipDrawLine( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2)); + } + Status DrawLine(const Pen *pen, INT x1, INT y1, INT x2, INT y2) + { + return updateStatus(DllExports::GdipDrawLineI( + nativeGraphics, pen ? pen->nativePen : NULL, + x1, y1, x2, y2)); + } + Status DrawLine(const Pen *pen, const PointF& pt1, const PointF& pt2) + { + return updateStatus(DllExports::GdipDrawLine( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status DrawLine(const Pen *pen, const Point& pt1, const Point& pt2) + { + return updateStatus(DllExports::GdipDrawLineI( + nativeGraphics, pen ? pen->nativePen : NULL, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status DrawLines(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawLines( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawLines(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawLinesI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawPath(const Pen *pen, const GraphicsPath *path) + { + return updateStatus(DllExports::GdipDrawPath( + nativeGraphics, pen ? pen->nativePen : NULL, + path ? path->nativePath : NULL)); + } + Status DrawPie(const Pen *pen, REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPie( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPieI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPie( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawPie(const Pen *pen, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipDrawPieI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status DrawPolygon(const Pen *pen, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipDrawPolygon( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawPolygon(const Pen *pen, const Point *points, INT count) + { + return updateStatus(DllExports::GdipDrawPolygonI( + nativeGraphics, pen ? pen->nativePen : NULL, + points, count)); + } + Status DrawRectangle(const Pen *pen, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipDrawRectangle( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawRectangle(const Pen *pen, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipDrawRectangleI( + nativeGraphics, pen ? pen->nativePen : NULL, + x, y, width, height)); + } + Status DrawRectangle(const Pen *pen, const RectF& rect) + { + return updateStatus(DllExports::GdipDrawRectangle( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawRectangle(const Pen *pen, const Rect& rect) + { + return updateStatus(DllExports::GdipDrawRectangleI( + nativeGraphics, pen ? pen->nativePen : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status DrawRectangles(const Pen *pen, const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipDrawRectangles( + nativeGraphics, pen ? pen->nativePen : NULL, + rects, count)); + } + Status DrawRectangles(const Pen *pen, const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipDrawRectanglesI( + nativeGraphics, pen ? pen->nativePen : NULL, + rects, count)); + } + Status DrawString(const WCHAR *string, INT length, const Font *font, + const PointF& origin, const Brush *brush) + { + RectF layoutRect(origin.X, origin.Y, 0.0f, 0.0f); + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, + brush ? brush->nativeBrush : NULL)); + } + Status DrawString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + const StringFormat *stringFormat, const Brush *brush) + { + RectF layoutRect(origin.X, origin.Y, 0.0f, 0.0f); + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + brush ? brush->nativeBrush : NULL)); + } + Status DrawString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, const Brush *brush) + { + return updateStatus(DllExports::GdipDrawString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + brush ? brush->nativeBrush : NULL)); + } + Status EndContainer(GraphicsContainer state) + { + return updateStatus(DllExports::GdipEndContainer( + nativeGraphics, state)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF& destPoint, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPoint( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point& destPoint, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPointI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const RectF& destRect, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestRect( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Rect& destRect, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestRectI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF *destPoints, INT count, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPoints( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point *destPoints, INT count, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileDestPointsI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF& destPoint, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoint( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point& destPoint, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoint, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const RectF& destRect, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestRect( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Rect& destRect, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestRectI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destRect, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const PointF* destPoints, INT count, + const RectF& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPoints( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status EnumerateMetafile(const Metafile *metafile, + const Point* destPoints, INT count, + const Rect& srcRect, Unit srcUnit, + EnumerateMetafileProc callback, + VOID *callbackData = NULL, + ImageAttributes *imageAttributes = NULL) + { + return updateStatus(DllExports::GdipEnumerateMetafileSrcRectDestPointsI( + nativeGraphics, + metafile ? ((GpMetafile*) metafile->nativeImage) : NULL, + destPoints, count, srcRect, srcUnit, + callback, callbackData, + imageAttributes ? imageAttributes->nativeImageAttributes : NULL)); + } + Status ExcludeClip(const RectF& rect) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeExclude)); + } + Status ExcludeClip(const Rect& rect) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeExclude)); + } + Status ExcludeClip(const Region *region) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + CombineModeExclude)); + } + Status FillClosedCurve(const Brush *brush, + const PointF *points, INT count) + { + return updateStatus(DllExports::GdipFillClosedCurve( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count)); + } + Status FillClosedCurve(const Brush *brush, + const Point *points, INT count) + { + return updateStatus(DllExports::GdipFillClosedCurveI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count)); + } + Status FillClosedCurve(const Brush *brush, + const PointF *points, INT count, + FillMode fillMode, REAL tension = 0.5f) + { + return updateStatus(DllExports::GdipFillClosedCurve2( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, tension, fillMode)); + } + Status FillClosedCurve(const Brush *brush, + const Point *points, INT count, + FillMode fillMode, REAL tension = 0.5f) + { + return updateStatus(DllExports::GdipFillClosedCurve2I( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, tension, fillMode)); + } + Status FillEllipse(const Brush *brush, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipFillEllipse( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillEllipse(const Brush *brush, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipFillEllipseI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillEllipse(const Brush *brush, const RectF& rect) + { + return updateStatus(DllExports::GdipFillEllipse( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillEllipse(const Brush *brush, const Rect& rect) + { + return updateStatus(DllExports::GdipFillEllipseI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillPath(const Brush *brush, const GraphicsPath *path) + { + return updateStatus(DllExports::GdipFillPath( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + path ? path->nativePath : NULL)); + } + Status FillPie(const Brush *brush, + REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPie( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPieI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height, startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, const RectF& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPie( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status FillPie(const Brush *brush, const Rect& rect, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipFillPieI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status FillPolygon(const Brush *brush, const PointF *points, INT count) + { + return updateStatus(DllExports::GdipFillPolygon( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, FillModeAlternate)); + } + Status FillPolygon(const Brush *brush, const Point *points, INT count) + { + return updateStatus(DllExports::GdipFillPolygonI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, FillModeAlternate)); + } + Status FillPolygon(const Brush *brush, const PointF *points, INT count, + FillMode fillMode) + { + return updateStatus(DllExports::GdipFillPolygon( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, fillMode)); + } + Status FillPolygon(const Brush *brush, const Point *points, INT count, + FillMode fillMode) + { + return updateStatus(DllExports::GdipFillPolygonI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + points, count, fillMode)); + } + Status FillRectangle(const Brush *brush, + REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipFillRectangle( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillRectangle(const Brush *brush, + INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipFillRectangleI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + x, y, width, height)); + } + Status FillRectangle(const Brush *brush, const RectF& rect) + { + return updateStatus(DllExports::GdipFillRectangle( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillRectangle(const Brush *brush, const Rect& rect) + { + return updateStatus(DllExports::GdipFillRectangleI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status FillRectangles(const Brush *brush, const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipFillRectangles( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rects, count)); + } + Status FillRectangles(const Brush *brush, const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipFillRectanglesI( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + rects, count)); + } + Status FillRegion(const Brush *brush, const Region *region) + { + return updateStatus(DllExports::GdipFillRegion( + nativeGraphics, + brush ? brush->nativeBrush : NULL, + region ? region->nativeRegion : NULL)); + } + VOID Flush(FlushIntention intention = FlushIntentionFlush) + { + updateStatus(DllExports::GdipFlush(nativeGraphics, intention)); + } + Status GetClip(Region *region) const + { + return updateStatus(DllExports::GdipGetClip( + nativeGraphics, + region ? region->nativeRegion : NULL)); + } + Status GetClipBounds(RectF *rect) const + { + return updateStatus(DllExports::GdipGetClipBounds( + nativeGraphics, rect)); + } + Status GetClipBounds(Rect *rect) const + { + return updateStatus(DllExports::GdipGetClipBoundsI( + nativeGraphics, rect)); + } + CompositingMode GetCompositingMode() const + { + CompositingMode result = CompositingModeSourceOver; + updateStatus(DllExports::GdipGetCompositingMode( + nativeGraphics, &result)); + return result; + } + CompositingQuality GetCompositingQuality() const + { + CompositingQuality result = CompositingQualityDefault; + updateStatus(DllExports::GdipGetCompositingQuality( + nativeGraphics, &result)); + return result; + } + REAL GetDpiX() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetDpiX(nativeGraphics, &result)); + return result; + } + REAL GetDpiY() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetDpiY(nativeGraphics, &result)); + return result; + } + HDC GetHDC() + { + HDC result = NULL; + updateStatus(DllExports::GdipGetDC(nativeGraphics, &result)); + return result; + } + InterpolationMode GetInterpolationMode() const + { + InterpolationMode result = InterpolationModeDefault; + updateStatus(DllExports::GdipGetInterpolationMode( + nativeGraphics, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status GetNearestColor(Color *color) const + { + return updateStatus(DllExports::GdipGetNearestColor( + nativeGraphics, color ? &color->Value : NULL)); + } + REAL GetPageScale() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetPageScale( + nativeGraphics, &result)); + return result; + } + Unit GetPageUnit() const + { + Unit result = UnitWorld; + updateStatus(DllExports::GdipGetPageUnit( + nativeGraphics, &result)); + return result; + } + PixelOffsetMode GetPixelOffsetMode() const + { + PixelOffsetMode result = PixelOffsetModeDefault; + updateStatus(DllExports::GdipGetPixelOffsetMode( + nativeGraphics, &result)); + return result; + } + Status GetRenderingOrigin(INT *x, INT *y) const + { + return updateStatus(DllExports::GdipGetRenderingOrigin( + nativeGraphics, x, y)); + } + SmoothingMode GetSmoothingMode() const + { + SmoothingMode result = SmoothingModeDefault; + updateStatus(DllExports::GdipGetSmoothingMode( + nativeGraphics, &result)); + return result; + } + UINT GetTextContrast() const + { + UINT result = 0; + updateStatus(DllExports::GdipGetTextContrast( + nativeGraphics, &result)); + return result; + } + TextRenderingHint GetTextRenderingHint() const + { + TextRenderingHint result = TextRenderingHintSystemDefault; + updateStatus(DllExports::GdipGetTextRenderingHint( + nativeGraphics, &result)); + return result; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL)); + } + Status GetVisibleClipBounds(RectF *rect) const + { + return updateStatus(DllExports::GdipGetVisibleClipBounds( + nativeGraphics, rect)); + } + Status GetVisibleClipBounds(Rect *rect) const + { + return updateStatus(DllExports::GdipGetVisibleClipBoundsI( + nativeGraphics, rect)); + } + Status IntersectClip(const RectF& rect) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeIntersect)); + } + Status IntersectClip(const Rect& rect) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + CombineModeIntersect)); + } + Status IntersectClip(const Region *region) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + CombineModeIntersect)); + } + BOOL IsClipEmpty() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsClipEmpty( + nativeGraphics, &result)); + return result; + } + BOOL IsVisible(REAL x, REAL y) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePoint( + nativeGraphics, x, y, &result)); + return result; + } + BOOL IsVisible(INT x, INT y) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePointI( + nativeGraphics, x, y, &result)); + return result; + } + BOOL IsVisible(const PointF& point) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePoint( + nativeGraphics, point.X, point.Y, &result)); + return result; + } + BOOL IsVisible(const Point& point) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePointI( + nativeGraphics, point.X, point.Y, &result)); + return result; + } + BOOL IsVisible(REAL x, REAL y, REAL width, REAL height) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRect( + nativeGraphics, x, y, width, height, &result)); + return result; + } + BOOL IsVisible(INT x, INT y, INT width, INT height) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRectI( + nativeGraphics, x, y, width, height, &result)); + return result; + } + BOOL IsVisible(const RectF& rect) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRect( + nativeGraphics, rect.X, rect.Y, + rect.Width, rect.Height, &result)); + return result; + } + BOOL IsVisible(const Rect& rect) const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRectI( + nativeGraphics, rect.X, rect.Y, + rect.Width, rect.Height, &result)); + return result; + } + BOOL IsVisibleClipEmpty() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleClipEmpty( + nativeGraphics, &result)); + return result; + } + Status MeasureCharacterRanges(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, + INT regionCount, Region *regions) const + { + if (regionCount <= 0 || !regions) + return lastStatus = InvalidParameter; + + GpRegion **nativeRegionArray = (GpRegion**) + DllExports::GdipAlloc(regionCount * sizeof(GpRegion*)); + if (!nativeRegionArray) + return lastStatus = OutOfMemory; + for (int i = 0; i < regionCount; ++i) { + nativeRegionArray[i] = regions[i].nativeRegion; + } + Status status = updateStatus(DllExports::GdipMeasureCharacterRanges( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + regionCount, nativeRegionArray)); + DllExports::GdipFree(nativeRegionArray); + return status; + } + Status MeasureDriverString(const UINT16 *text, INT length, + const Font *font, const PointF *positions, INT flags, + const Matrix *matrix, RectF *boundingBox) const + { + return updateStatus(DllExports::GdipMeasureDriverString( + nativeGraphics, text, length, + font ? font->nativeFont : NULL, + positions, flags, + matrix ? matrix->nativeMatrix : NULL, + boundingBox)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + RectF *boundingBox) const + { + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, boundingBox, NULL, NULL)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const RectF& layoutRect, + const StringFormat *stringFormat, RectF *boundingBox, + INT *codepointsFitted = NULL, + INT *linesFitted = NULL) const + { + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + boundingBox, codepointsFitted, linesFitted)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const SizeF& layoutRectSize, + const StringFormat *stringFormat, SizeF *size, + INT *codepointsFitted = NULL, + INT *linesFitted = NULL) const + { + if (!size) return lastStatus = InvalidParameter; + RectF layoutRect(PointF(0.0f, 0.0f), layoutRectSize); + RectF boundingBox; + Status status = updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + &boundingBox, codepointsFitted, linesFitted)); + boundingBox.GetSize(size); + return status; + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + RectF *boundingBox) const + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, NULL, boundingBox, NULL, NULL)); + } + Status MeasureString(const WCHAR *string, INT length, + const Font *font, const PointF& origin, + const StringFormat *stringFormat, + RectF *boundingBox) const + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipMeasureString( + nativeGraphics, string, length, + font ? font->nativeFont : NULL, + &layoutRect, + stringFormat ? stringFormat->nativeStringFormat : NULL, + boundingBox, NULL, NULL)); + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL, order)); + } + VOID ReleaseHDC(HDC hdc) + { + updateStatus(DllExports::GdipReleaseDC(nativeGraphics, hdc)); + } + Status ResetClip() + { + return updateStatus(DllExports::GdipResetClip(nativeGraphics)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetWorldTransform( + nativeGraphics)); + } + Status Restore(GraphicsState state) + { + return updateStatus(DllExports::GdipRestoreGraphics( + nativeGraphics, state)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateWorldTransform( + nativeGraphics, angle, order)); + } + GraphicsState Save() const + { + GraphicsState result = 0; + updateStatus(DllExports::GdipSaveGraphics( + nativeGraphics, &result)); + return result; + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleWorldTransform( + nativeGraphics, sx, sy, order)); + } + VOID SetAbort() + { + updateStatus(NotImplemented); + } + Status SetClip(const Graphics *g, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipGraphics( + nativeGraphics, g ? g->nativeGraphics : NULL, + combineMode)); + } + Status SetClip(const RectF& rect, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRect( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + combineMode)); + } + Status SetClip(const Rect& rect, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRectI( + nativeGraphics, + rect.X, rect.Y, rect.Width, rect.Height, + combineMode)); + } + Status SetClip(const GraphicsPath *path, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipPath( + nativeGraphics, + path ? path->nativePath : NULL, + combineMode)); + } + Status SetClip(const Region *region, + CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipRegion( + nativeGraphics, + region ? region->nativeRegion : NULL, + combineMode)); + } + Status SetClip(HRGN hRgn, CombineMode combineMode = CombineModeReplace) + { + return updateStatus(DllExports::GdipSetClipHrgn( + nativeGraphics, hRgn, combineMode)); + } + Status SetCompositingMode(CompositingMode compositingMode) + { + return updateStatus(DllExports::GdipSetCompositingMode( + nativeGraphics, compositingMode)); + } + Status SetCompositingQuality(CompositingQuality compositingQuality) + { + return updateStatus(DllExports::GdipSetCompositingQuality( + nativeGraphics, compositingQuality)); + } + Status SetInterpolationMode(InterpolationMode interpolationMode) + { + return updateStatus(DllExports::GdipSetInterpolationMode( + nativeGraphics, interpolationMode)); + } + Status SetPageScale(REAL scale) + { + return updateStatus(DllExports::GdipSetPageScale( + nativeGraphics, scale)); + } + Status SetPageUnit(Unit unit) + { + return updateStatus(DllExports::GdipSetPageUnit( + nativeGraphics, unit)); + } + Status SetPixelOffsetMode(PixelOffsetMode pixelOffsetMode) + { + return updateStatus(DllExports::GdipSetPixelOffsetMode( + nativeGraphics, pixelOffsetMode)); + } + Status SetRenderingOrigin(INT x, INT y) + { + return updateStatus(DllExports::GdipSetRenderingOrigin( + nativeGraphics, x, y)); + } + Status SetSmoothingMode(SmoothingMode smoothingMode) + { + return updateStatus(DllExports::GdipSetSmoothingMode( + nativeGraphics, smoothingMode)); + } + Status SetTextContrast(UINT contrast) + { + return updateStatus(DllExports::GdipSetTextContrast( + nativeGraphics, contrast)); + } + Status SetTextRenderingHint(TextRenderingHint textRenderingHint) + { + return updateStatus(DllExports::GdipSetTextRenderingHint( + nativeGraphics, textRenderingHint)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetWorldTransform( + nativeGraphics, + matrix ? matrix->nativeMatrix : NULL)); + } + Status TransformPoints(CoordinateSpace destSpace, + CoordinateSpace srcSpace, + PointF *pts, INT count) const + { + return updateStatus(DllExports::GdipTransformPoints( + nativeGraphics, destSpace, srcSpace, + pts, count)); + } + Status TransformPoints(CoordinateSpace destSpace, + CoordinateSpace srcSpace, + Point *pts, INT count) const + { + return updateStatus(DllExports::GdipTransformPointsI( + nativeGraphics, destSpace, srcSpace, + pts, count)); + } + Status TranslateClip(REAL dx, REAL dy) + { + return updateStatus(DllExports::GdipTranslateClip( + nativeGraphics, dx, dy)); + } + Status TranslateClip(INT dx, INT dy) + { + return updateStatus(DllExports::GdipTranslateClipI( + nativeGraphics, dx, dy)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateWorldTransform( + nativeGraphics, dx, dy, order)); + } + +private: + Graphics(const Graphics&); + Graphics& operator=(const Graphics&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpGraphics *nativeGraphics; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_GRAPHICS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusheaders.h b/mingw-w64-headers/include/gdiplus/gdiplusheaders.h new file mode 100644 index 0000000..78d0d71 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusheaders.h
@@ -0,0 +1,581 @@ +/* + * gdiplusheaders.h + * + * GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection, + * FontFamily, Image, InstalledFontCollection, PrivateFontCollection, + * Region class definitions. + * Implementation of these classes is in gdiplusimpl.h. + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_HEADERS_H +#define __GDIPLUS_HEADERS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusheaders.h." +#endif + +/* + * Note: Virtual inline functions (dtors, Clone()) are implemented here: If + * these were defined outside class scope, the compiler would always generate + * code for them (and the vtable), even if these classes were never used. + */ + +class Bitmap; +class Effect; +class FontCollection; +class FontFamily; +class Graphics; +class GraphicsPath; +class Matrix; +class Pen; + +class Image: public GdiplusBase +{ + friend class Bitmap; + friend class Metafile; + friend class CachedBitmap; + friend class Graphics; + friend class TextureBrush; + +public: + static Image* FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement = FALSE); + static Image* FromStream(IStream *stream, + BOOL useEmbeddedColorManagement = FALSE); + + Image(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); + Image(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); + + virtual ~Image() + { + DllExports::GdipDisposeImage(nativeImage); + } + virtual Image* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Image *result = new Image(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status FindFirstItem(ImageItemData *item); + Status FindNextItem(ImageItemData *item); + Status GetAllPropertyItems(UINT totalBufferSize, + UINT numProperties, PropertyItem *allItems); + Status GetBounds(RectF *srcRect, Unit *srcUnit); + Status GetEncoderParameterList(const CLSID *clsidEncoder, + UINT size, EncoderParameters *buffer); + UINT GetEncoderParameterListSize(const CLSID *clsidEncoder); + UINT GetFlags(); + UINT GetFrameCount(const GUID *dimensionID); + UINT GetFrameDimensionsCount(); + Status GetFrameDimensionsList(GUID *dimensionIDs, UINT count); + UINT GetHeight(); + REAL GetHorizontalResolution(); + Status GetItemData(ImageItemData *item); + Status GetPalette(ColorPalette *palette, INT size); + INT GetPaletteSize(); + Status GetPhysicalDimension(SizeF *size); + PixelFormat GetPixelFormat(); + UINT GetPropertyCount(); + Status GetPropertyIdList(UINT numOfProperty, PROPID *list); + Status GetPropertyItem(PROPID propId, UINT propSize, + PropertyItem *buffer); + UINT GetPropertyItemSize(PROPID propId); + Status GetPropertySize(UINT *totalBufferSize, UINT *numProperties); + Status GetRawFormat(GUID *format); + Image* GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, + GetThumbnailImageAbort callback, VOID *callbackData); + ImageType GetType() const; + REAL GetVerticalResolution(); + UINT GetWidth(); + Status RemovePropertyItem(PROPID propId); + Status RotateFlip(RotateFlipType rotateFlipType); + Status Save(IStream *stream, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams); + Status Save(const WCHAR *filename, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams); + Status SaveAdd(const EncoderParameters *encoderParams); + Status SaveAdd(Image *newImage, const EncoderParameters *encoderParams); + Status SelectActiveFrame(const GUID *dimensionID, UINT frameIndex); + Status SetAbort(GdiplusAbort *pIAbort); + Status SetPalette(const ColorPalette *palette); + Status SetPropertyItem(const PropertyItem *item); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + Image(GpImage *image, Status status): + nativeImage(image), lastStatus(status) {} + Image(const Image&); + Image& operator=(const Image&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpImage *nativeImage; + mutable Status lastStatus; +}; + +class Bitmap: public Image +{ +public: + static Bitmap* FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo, + VOID *gdiBitmapData); + static Bitmap* FromDirectDrawSurface7(IDirectDrawSurface7 *surface); + static Bitmap* FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement = FALSE); + static Bitmap* FromHBITMAP(HBITMAP hbm, HPALETTE hpal); + static Bitmap* FromHICON(HICON icon); + static Bitmap* FromResource(HINSTANCE hInstance, + const WCHAR *bitmapName); + static Bitmap* FromStream(IStream *stream, + BOOL useEmbeddedColorManagement = FALSE); + static Status ApplyEffect(Bitmap **inputs, INT numInputs, + Effect *effect, RECT *ROI, + RECT *outputRect, Bitmap **output); + static Status InitializePalette(ColorPalette *palette, + PaletteType paletteType, INT optimalColors, + BOOL useTransparentColor, Bitmap *bitmap); + + Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData); + Bitmap(IDirectDrawSurface7 *surface); + Bitmap(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); + Bitmap(HBITMAP hbm, HPALETTE hpal); + Bitmap(HICON hicon); + Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName); + Bitmap(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); + Bitmap(INT width, INT height, Graphics *target); + Bitmap(INT width, INT height, PixelFormat format = PixelFormat32bppARGB); + Bitmap(INT width, INT height, INT stride, PixelFormat format, BYTE *scan0); + + virtual ~Bitmap() + { + } + virtual Bitmap* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Bitmap* Clone(const RectF& rect, PixelFormat format) const; + Bitmap* Clone(const Rect& rect, PixelFormat format) const; + Bitmap* Clone(REAL x, REAL y, REAL width, REAL height, + PixelFormat format) const; + Bitmap* Clone(INT x, INT y, INT width, INT height, + PixelFormat format) const; + + Status ApplyEffect(Effect *effect, RECT *ROI); + Status ConvertFormat(PixelFormat format, DitherType ditherType, + PaletteType paletteType, ColorPalette *palette, + REAL alphaThresholdPercent); + Status GetHBITMAP(const Color& colorBackground, HBITMAP *hbmReturn) const; + Status GetHICON(HICON *icon) const; + Status GetHistogram(HistogramFormat format, UINT numberOfEntries, + UINT *channel0, UINT *channel1, + UINT *channel2, UINT *channel3) const; + Status GetHistogramSize(HistogramFormat format, + UINT *numberOfEntries) const; + Status GetPixel(INT x, INT y, Color *color) const; + Status LockBits(const Rect *rect, UINT flags, PixelFormat format, + BitmapData *lockedBitmapData); + Status SetPixel(INT x, INT y, const Color& color); + Status SetResolution(REAL xdpi, REAL ydpi); + Status UnlockBits(BitmapData *lcokedBitmapData); + +private: + Bitmap(GpImage *image, Status status): Image(image, status) {} + Bitmap(const Bitmap&); + Bitmap& operator=(const Bitmap&); +}; + +class CachedBitmap: public GdiplusBase +{ + friend class Graphics; + +public: + CachedBitmap(Bitmap *bitmap, Graphics *graphics); + ~CachedBitmap(); + + Status GetLastStatus() const + { + return lastStatus; + } + +private: + CachedBitmap(const CachedBitmap&); + CachedBitmap& operator=(const CachedBitmap&); + + GpCachedBitmap *nativeCachedBitmap; + Status lastStatus; +}; + +class CustomLineCap: public GdiplusBase +{ + friend class AdjustableArrowCap; + friend class Pen; + +public: + CustomLineCap(const GraphicsPath *fillPath, + const GraphicsPath *strokePath, + LineCap baseCap = LineCapFlat, + REAL baseInset = 0.0f); + + virtual ~CustomLineCap() + { + DllExports::GdipDeleteCustomLineCap(nativeCustomLineCap); + } + virtual CustomLineCap* Clone() const + { + GpCustomLineCap *cloneCustomLineCap = NULL; + Status status = updateStatus(DllExports::GdipCloneCustomLineCap( + nativeCustomLineCap, &cloneCustomLineCap)); + if (status == Ok) { + CustomLineCap *result = new CustomLineCap( + cloneCustomLineCap, lastStatus); + if (!result) { + DllExports::GdipDeleteCustomLineCap(cloneCustomLineCap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + LineCap GetBaseCap() const; + REAL GetBaseInset() const; + Status GetStrokeCaps(LineCap *startCap, LineCap *endCap) const; + LineJoin GetStrokeJoin() const; + REAL GetWidthScale() const; + Status SetBaseCap(LineCap baseCap); + Status SetBaseInset(REAL inset); + Status SetStrokeCap(LineCap strokeCap); + Status SetStrokeCaps(LineCap startCap, LineCap endCap); + Status SetStrokeJoin(LineJoin lineJoin); + Status SetWidthScale(REAL widthScale); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + CustomLineCap(GpCustomLineCap *customLineCap, Status status): + nativeCustomLineCap(customLineCap), lastStatus(status) {} + CustomLineCap(const CustomLineCap&); + CustomLineCap& operator=(const CustomLineCap&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpCustomLineCap *nativeCustomLineCap; + mutable Status lastStatus; +}; + +class Font: public GdiplusBase +{ + friend class Graphics; + +public: + Font(const FontFamily *family, REAL emSize, + INT style = FontStyleRegular, + Unit unit = UnitPoint); + Font(HDC hdc, HFONT hfont); + Font(HDC hdc, const LOGFONTA *logfont); + Font(HDC hdc, const LOGFONTW *logfont); + Font(HDC hdc); + Font(const WCHAR *familyName, REAL emSize, + INT style = FontStyleRegular, + Unit unit = UnitPoint, + const FontCollection *fontCollection = NULL); + ~Font(); + Font* Clone() const; + + Status GetFamily(FontFamily *family) const; + REAL GetHeight(const Graphics *graphics) const; + REAL GetHeight(REAL dpi) const; + Status GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) const; + Status GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) const; + REAL GetSize() const; + INT GetStyle() const; + Unit GetUnit() const; + + Status GetLastStatus() const + { + return lastStatus; + } + BOOL IsAvailable() const + { + return nativeFont != NULL; + } + +private: + Font(GpFont *font, Status status): + nativeFont(font), lastStatus(status) {} + Font(const Font&); + Font& operator=(const Font&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpFont *nativeFont; + mutable Status lastStatus; +}; + +class FontCollection: public GdiplusBase +{ + friend class InstalledFontCollection; + friend class PrivateFontCollection; + friend class Font; + friend class FontFamily; + +public: + FontCollection(); + virtual ~FontCollection() {} + + Status GetFamilies(INT numSought, FontFamily *families, + INT *numFound) const; + INT GetFamilyCount() const; + + Status GetLastStatus() const + { + return lastStatus; + } + +private: + FontCollection(const FontCollection&); + FontCollection& operator=(const FontCollection&); + + Status updateStatus(Status newStatus) const + { + return lastStatus = newStatus; + } + + GpFontCollection *nativeFontCollection; + mutable Status lastStatus; +}; + +class FontFamily: public GdiplusBase +{ + friend class Font; + friend class FontCollection; + friend class GraphicsPath; + +public: + static const FontFamily* GenericMonospace(); + static const FontFamily* GenericSansSerif(); + static const FontFamily* GenericSerif(); + + FontFamily(); + FontFamily(const WCHAR *name, + const FontCollection *fontCollection = NULL); + ~FontFamily(); + FontFamily* Clone() const; + + UINT16 GetCellAscent(INT style) const; + UINT16 GetCellDescent(INT style) const; + UINT16 GetEmHeight(INT style) const; + Status GetFamilyName(WCHAR name[LF_FACESIZE], + LANGID language = LANG_NEUTRAL) const; + UINT16 GetLineSpacing(INT style) const; + BOOL IsStyleAvailable(INT style) const; + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + BOOL IsAvailable() const + { + return nativeFontFamily != NULL; + } + +private: + FontFamily(GpFontFamily *fontFamily, Status status): + nativeFontFamily(fontFamily), lastStatus(status) {} + FontFamily(const FontFamily&); + FontFamily& operator=(const FontFamily&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpFontFamily *nativeFontFamily; + mutable Status lastStatus; +}; + +class InstalledFontCollection: public FontCollection +{ +public: + InstalledFontCollection(); + virtual ~InstalledFontCollection() {} +}; + +class PrivateFontCollection: public FontCollection +{ +public: + PrivateFontCollection(); + + virtual ~PrivateFontCollection() + { + DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection); + } + + Status AddFontFile(const WCHAR *filename); + Status AddMemoryFont(const VOID *memory, INT length); +}; + +class Region: public GdiplusBase +{ + friend class Graphics; + +public: + static Region* FromHRGN(HRGN hrgn); + + Region(); + Region(const RectF& rect); + Region(const Rect& rect); + Region(const GraphicsPath *path); + Region(const BYTE *regionData, INT size); + Region(HRGN hrgn); + ~Region(); + Region* Clone() const; + + Status Complement(const RectF& rect); + Status Complement(const Rect& rect); + Status Complement(const Region *region); + Status Complement(const GraphicsPath *path); + BOOL Equals(const Region *region, const Graphics *graphics) const; + Status Exclude(const RectF& rect); + Status Exclude(const Rect& rect); + Status Exclude(const Region *region); + Status Exclude(const GraphicsPath *path); + Status GetBounds(RectF *rect, const Graphics *graphics) const; + Status GetBounds(Rect *rect, const Graphics *graphics) const; + Status GetData(BYTE *buffer, UINT bufferSize, UINT *sizeFilled) const; + UINT GetDataSize() const; + HRGN GetHRGN(const Graphics *graphics) const; + Status GetRegionScans(const Matrix *matrix, + RectF *rects, INT *count) const; + Status GetRegionScans(const Matrix *matrix, + Rect *rects, INT *count) const; + UINT GetRegionScansCount(const Matrix *matrix) const; + Status Intersect(const RectF& rect); + Status Intersect(const Rect& rect); + Status Intersect(const Region *region); + Status Intersect(const GraphicsPath *path); + BOOL IsEmpty(const Graphics *graphics) const; + BOOL IsInfinite(const Graphics *graphics) const; + BOOL IsVisible(REAL x, REAL y, + const Graphics *graphics = NULL) const; + BOOL IsVisible(INT x, INT y, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const PointF& point, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const Point& point, + const Graphics *graphics = NULL) const; + BOOL IsVisible(REAL x, REAL y, REAL width, REAL height, + const Graphics *graphics = NULL) const; + BOOL IsVisible(INT x, INT y, INT width, INT height, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const RectF& rect, + const Graphics *graphics = NULL) const; + BOOL IsVisible(const Rect& rect, + const Graphics *graphics = NULL) const; + Status MakeEmpty(); + Status MakeInfinite(); + Status Transform(const Matrix *matrix); + Status Translate(REAL dx, REAL dy); + Status Translate(INT dx, INT dy); + Status Union(const RectF& rect); + Status Union(const Rect& rect); + Status Union(const Region *region); + Status Union(const GraphicsPath *path); + Status Xor(const RectF& rect); + Status Xor(const Rect& rect); + Status Xor(const Region *region); + Status Xor(const GraphicsPath *path); + + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + +private: + Region(GpRegion *region, Status status): + nativeRegion(region), lastStatus(status) {} + Region(const Region&); + Region& operator=(const Region&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpRegion *nativeRegion; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_HEADERS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusimageattributes.h b/mingw-w64-headers/include/gdiplus/gdiplusimageattributes.h new file mode 100644 index 0000000..695b898 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusimageattributes.h
@@ -0,0 +1,236 @@ +/* + * gdiplusimageattributes.h + * + * GDI+ ImageAttributes class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGEATTRIBUTES_H +#define __GDIPLUS_IMAGEATTRIBUTES_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusimageattributes.h." +#endif + +class ImageAttributes: public GdiplusBase +{ + friend class Graphics; + friend class TextureBrush; + +public: + ImageAttributes(): nativeImageAttributes(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateImageAttributes( + &nativeImageAttributes); + } + ~ImageAttributes() + { + DllExports::GdipDisposeImageAttributes(nativeImageAttributes); + } + ImageAttributes* Clone() const + { + GpImageAttributes *cloneImageAttributes = NULL; + Status status = updateStatus(DllExports::GdipCloneImageAttributes( + nativeImageAttributes, &cloneImageAttributes)); + if (status == Ok) { + ImageAttributes *result = new ImageAttributes( + cloneImageAttributes, lastStatus); + if (!result) { + DllExports::GdipDisposeImageAttributes(cloneImageAttributes); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status ClearBrushRemapTable() + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, ColorAdjustTypeBrush, + FALSE, 0, NULL)); + } + Status ClearColorKey(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorKeys( + nativeImageAttributes, type, FALSE, 0, 0)); + } + Status ClearColorMatrices(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, FALSE, + NULL, NULL, ColorMatrixFlagsDefault)); + } + Status ClearColorMatrix(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, FALSE, + NULL, NULL, ColorMatrixFlagsDefault)); + } + Status ClearGamma(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesGamma( + nativeImageAttributes, type, FALSE, 1.0f)); + } + Status ClearNoOp(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesNoOp( + nativeImageAttributes, type, FALSE)); + } + Status ClearOutputChannel(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( + nativeImageAttributes, type, FALSE, + ColorChannelFlagsC)); + } + Status ClearOutputChannelColorProfile( + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( + nativeImageAttributes, type, FALSE, NULL)); + } + Status ClearRemapTable(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, type, FALSE, 0, NULL)); + } + Status ClearThreshold(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesThreshold( + nativeImageAttributes, type, FALSE, 0.0)); + } + Status GetAdjustedPalette(ColorPalette *colorPalette, + ColorAdjustType type) const + { + return updateStatus(DllExports::GdipGetImageAttributesAdjustedPalette( + nativeImageAttributes, colorPalette, type)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status Reset(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipResetImageAttributes( + nativeImageAttributes, type)); + } + Status SetBrushRemapTable(UINT mapSize, ColorMap *map) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, ColorAdjustTypeBrush, + TRUE, mapSize, map)); + } + Status SetColorKey(const Color& colorLow, const Color& colorHigh, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorKeys( + nativeImageAttributes, type, TRUE, + colorLow.GetValue(), colorHigh.GetValue())); + } + Status SetColorMatrices(const ColorMatrix *colorMatrix, + const ColorMatrix *grayMatrix, + ColorMatrixFlags mode = ColorMatrixFlagsDefault, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, TRUE, + colorMatrix, grayMatrix, mode)); + } + Status SetColorMatrix(const ColorMatrix *colorMatrix, + ColorMatrixFlags mode = ColorMatrixFlagsDefault, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( + nativeImageAttributes, type, TRUE, + colorMatrix, NULL, mode)); + } + Status SetGamma(REAL gamma, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesGamma( + nativeImageAttributes, type, TRUE, gamma)); + } + Status SetNoOp(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesNoOp( + nativeImageAttributes, type, TRUE)); + } + Status SetOutputChannel(ColorChannelFlags channelFlags, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( + nativeImageAttributes, type, TRUE, + channelFlags)); + } + Status SetOutputChannelColorProfile(const WCHAR *colorProfileFilename, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( + nativeImageAttributes, type, TRUE, + colorProfileFilename)); + } + Status SetRemapTable(UINT mapSize, const ColorMap *map, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesRemapTable( + nativeImageAttributes, type, TRUE, + mapSize, map)); + } + Status SetThreshold(REAL threshold, + ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesThreshold( + nativeImageAttributes, type, TRUE, threshold)); + } + Status SetToIdentity(ColorAdjustType type = ColorAdjustTypeDefault) + { + return updateStatus(DllExports::GdipSetImageAttributesToIdentity( + nativeImageAttributes, type)); + } + Status SetWrapMode(WrapMode wrap, const Color& color = Color(), + BOOL clamp = FALSE) + { + return updateStatus(DllExports::GdipSetImageAttributesWrapMode( + nativeImageAttributes, wrap, + color.GetValue(), clamp)); + } + +private: + ImageAttributes(GpImageAttributes *imageAttributes, Status status): + nativeImageAttributes(imageAttributes), lastStatus(status) {} + ImageAttributes(const ImageAttributes&); + ImageAttributes& operator=(const ImageAttributes&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpImageAttributes *nativeImageAttributes; + mutable Status lastStatus; +}; + + +#endif /* __GDIPLUS_IMAGEATTRIBUTES_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusimagecodec.h b/mingw-w64-headers/include/gdiplus/gdiplusimagecodec.h new file mode 100644 index 0000000..e897f1e --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusimagecodec.h
@@ -0,0 +1,67 @@ +/* + * gdiplusimagecodec.h + * + * GDI+ image decoders and encoders + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGECODEC_H +#define __GDIPLUS_IMAGECODEC_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +static __inline__ GpStatus GetImageDecoders(UINT numDecoders, UINT size, + ImageCodecInfo *decoders) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageDecoders(numDecoders, size, decoders); + #else + return GdipGetImageDecoders(numDecoders, size, decoders); + #endif +} + +static __inline__ GpStatus GetImageDecodersSize(UINT *numDecoders, UINT *size) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageDecodersSize(numDecoders, size); + #else + return GdipGetImageDecodersSize(numDecoders, size); + #endif +} + +static __inline__ GpStatus GetImageEncoders(UINT numEncoders, UINT size, + ImageCodecInfo *encoders) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageEncoders(numEncoders, size, encoders); + #else + return GdipGetImageEncoders(numEncoders, size, encoders); + #endif +} + +static __inline__ GpStatus GetImageEncodersSize(UINT *numEncoders, UINT *size) +{ + #ifdef __cplusplus + return DllExports::GdipGetImageEncodersSize(numEncoders, size); + #else + return GdipGetImageEncodersSize(numEncoders, size); + #endif +} + +#endif /* __GDIPLUS_IMAGECODEC_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusimaging.h b/mingw-w64-headers/include/gdiplus/gdiplusimaging.h new file mode 100644 index 0000000..c452d77 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusimaging.h
@@ -0,0 +1,411 @@ +/* + * gdiplusimaging.h + * + * GDI+ Imaging and image metadata + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMAGING_H +#define __GDIPLUS_IMAGING_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef enum ImageCodecFlags { + ImageCodecFlagsEncoder = 0x00000001, + ImageCodecFlagsDecoder = 0x00000002, + ImageCodecFlagsSupportBitmap = 0x00000004, + ImageCodecFlagsSupportVector = 0x00000008, + ImageCodecFlagsSeekableEncode = 0x00000010, + ImageCodecFlagsBlockingDecode = 0x00000020, + ImageCodecFlagsBuiltin = 0x00010000, + ImageCodecFlagsSystem = 0x00020000, + ImageCodecFlagsUser = 0x00040000 +} ImageCodecFlags; + +typedef enum ImageFlags { + ImageFlagsNone = 0, + ImageFlagsScalable = 0x00000001, + ImageFlagsHasAlpha = 0x00000002, + ImageFlagsHasTranslucent = 0x00000004, + ImageFlagsPartiallyScalable = 0x00000008, + ImageFlagsColorSpaceRGB = 0x00000010, + ImageFlagsColorSpaceCMYK = 0x00000020, + ImageFlagsColorSpaceGRAY = 0x00000040, + ImageFlagsColorSpaceYCBCR = 0x00000080, + ImageFlagsColorSpaceYCCK = 0x00000100, + ImageFlagsHasRealDPI = 0x00001000, + ImageFlagsHasRealPixelSize = 0x00002000, + ImageFlagsReadOnly = 0x00010000, + ImageFlagsCaching = 0x00020000 +} ImageFlags; + +typedef enum ImageLockMode { + ImageLockModeRead = 1, + ImageLockModeWrite = 2, + ImageLockModeUserInputBuf = 4 +} ImageLockMode; + +typedef enum ItemDataPosition { + ItemDataPositionAfterHeader = 0, + ItemDataPositionAfterPalette = 1, + ItemDataPositionAfterBits = 2 +} ItemDataPosition; + +typedef enum RotateFlipType { + RotateNoneFlipNone = 0, + Rotate90FlipNone = 1, + Rotate180FlipNone = 2, + Rotate270FlipNone = 3, + RotateNoneFlipX = 4, + Rotate90FlipX = 5, + Rotate180FlipX = 6, + Rotate270FlipX = 7, + Rotate180FlipXY = 0, + Rotate270FlipXY = 1, + RotateNoneFlipXY = 2, + Rotate90FlipXY = 3, + Rotate180FlipY = 4, + Rotate270FlipY = 5, + RotateNoneFlipY = 6, + Rotate90FlipY = 7 +} RotateFlipType; + +typedef struct BitmapData { + UINT Width; + UINT Height; + INT Stride; + INT PixelFormat; /* MSDN: "PixelFormat PixelFormat;" */ + VOID *Scan0; + UINT_PTR Reserved; +} BitmapData; + +typedef struct EncoderParameter { + GUID Guid; + ULONG NumberOfValues; + ULONG Type; + VOID *Value; +} EncoderParameter; + +typedef struct EncoderParameters { + UINT Count; + EncoderParameter Parameter[1]; +} EncoderParameters; + +typedef struct ImageCodecInfo { + CLSID Clsid; + GUID FormatID; + WCHAR *CodecName; + WCHAR *DllName; + WCHAR *FormatDescription; + WCHAR *FilenameExtension; + WCHAR *MimeType; + DWORD Flags; + DWORD Version; + DWORD SigCount; + DWORD SigSize; + BYTE *SigPattern; + BYTE *SigMask; +} ImageCodecInfo; + +/* FIXME: The order of fields is probably wrong. Please don't use this + * structure until this problem is resolved! Can't test because + * ImageItemData is not supported by the redistributable GDI+ 1.0 DLL. */ +typedef struct ImageItemData { + UINT Size; + UINT Position; + VOID *Desc; + UINT DescSize; + UINT *Data; + UINT DataSize; + UINT Cookie; +} ImageItemData; + +typedef struct PropertyItem { + PROPID id; + ULONG length; + WORD type; + VOID *value; +} PropertyItem; + +#define PropertyTagGpsVer ((PROPID) 0x0000) +#define PropertyTagGpsLatitudeRef ((PROPID) 0x0001) +#define PropertyTagGpsLatitude ((PROPID) 0x0002) +#define PropertyTagGpsLongitudeRef ((PROPID) 0x0003) +#define PropertyTagGpsLongitude ((PROPID) 0x0004) +#define PropertyTagGpsAltitudeRef ((PROPID) 0x0005) +#define PropertyTagGpsAltitude ((PROPID) 0x0006) +#define PropertyTagGpsGpsTime ((PROPID) 0x0007) +#define PropertyTagGpsGpsSatellites ((PROPID) 0x0008) +#define PropertyTagGpsGpsStatus ((PROPID) 0x0009) +#define PropertyTagGpsGpsMeasureMode ((PROPID) 0x000A) +#define PropertyTagGpsGpsDop ((PROPID) 0x000B) +#define PropertyTagGpsSpeedRef ((PROPID) 0x000C) +#define PropertyTagGpsSpeed ((PROPID) 0x000D) +#define PropertyTagGpsTrackRef ((PROPID) 0x000E) +#define PropertyTagGpsTrack ((PROPID) 0x000F) +#define PropertyTagGpsImgDirRef ((PROPID) 0x0010) +#define PropertyTagGpsImgDir ((PROPID) 0x0011) +#define PropertyTagGpsMapDatum ((PROPID) 0x0012) +#define PropertyTagGpsDestLatRef ((PROPID) 0x0013) +#define PropertyTagGpsDestLat ((PROPID) 0x0014) +#define PropertyTagGpsDestLongRef ((PROPID) 0x0015) +#define PropertyTagGpsDestLong ((PROPID) 0x0016) +#define PropertyTagGpsDestBearRef ((PROPID) 0x0017) +#define PropertyTagGpsDestBear ((PROPID) 0x0018) +#define PropertyTagGpsDestDistRef ((PROPID) 0x0019) +#define PropertyTagGpsDestDist ((PROPID) 0x001A) +#define PropertyTagNewSubfileType ((PROPID) 0x00FE) +#define PropertyTagSubfileType ((PROPID) 0x00FF) +#define PropertyTagImageWidth ((PROPID) 0x0100) +#define PropertyTagImageHeight ((PROPID) 0x0101) +#define PropertyTagBitsPerSample ((PROPID) 0x0102) +#define PropertyTagCompression ((PROPID) 0x0103) +#define PropertyTagPhotometricInterp ((PROPID) 0x0106) +#define PropertyTagThreshHolding ((PROPID) 0x0107) +#define PropertyTagCellWidth ((PROPID) 0x0108) +#define PropertyTagCellHeight ((PROPID) 0x0109) +#define PropertyTagFillOrder ((PROPID) 0x010A) +#define PropertyTagDocumentName ((PROPID) 0x010D) +#define PropertyTagImageDescription ((PROPID) 0x010E) +#define PropertyTagEquipMake ((PROPID) 0x010F) +#define PropertyTagEquipModel ((PROPID) 0x0110) +#define PropertyTagStripOffsets ((PROPID) 0x0111) +#define PropertyTagOrientation ((PROPID) 0x0112) +#define PropertyTagSamplesPerPixel ((PROPID) 0x0115) +#define PropertyTagRowsPerStrip ((PROPID) 0x0116) +#define PropertyTagStripBytesCount ((PROPID) 0x0117) +#define PropertyTagMinSampleValue ((PROPID) 0x0118) +#define PropertyTagMaxSampleValue ((PROPID) 0x0119) +#define PropertyTagXResolution ((PROPID) 0x011A) +#define PropertyTagYResolution ((PROPID) 0x011B) +#define PropertyTagPlanarConfig ((PROPID) 0x011C) +#define PropertyTagPageName ((PROPID) 0x011D) +#define PropertyTagXPosition ((PROPID) 0x011E) +#define PropertyTagYPosition ((PROPID) 0x011F) +#define PropertyTagFreeOffset ((PROPID) 0x0120) +#define PropertyTagFreeByteCounts ((PROPID) 0x0121) +#define PropertyTagGrayResponseUnit ((PROPID) 0x0122) +#define PropertyTagGrayResponseCurve ((PROPID) 0x0123) +#define PropertyTagT4Option ((PROPID) 0x0124) +#define PropertyTagT6Option ((PROPID) 0x0125) +#define PropertyTagResolutionUnit ((PROPID) 0x0128) +#define PropertyTagPageNumber ((PROPID) 0x0129) +#define PropertyTagTransferFunction ((PROPID) 0x012D) +#define PropertyTagSoftwareUsed ((PROPID) 0x0131) +#define PropertyTagDateTime ((PROPID) 0x0132) +#define PropertyTagArtist ((PROPID) 0x013B) +#define PropertyTagHostComputer ((PROPID) 0x013C) +#define PropertyTagPredictor ((PROPID) 0x013D) +#define PropertyTagWhitePoint ((PROPID) 0x013E) +#define PropertyTagPrimaryChromaticities ((PROPID) 0x013F) +#define PropertyTagColorMap ((PROPID) 0x0140) +#define PropertyTagHalftoneHints ((PROPID) 0x0141) +#define PropertyTagTileWidth ((PROPID) 0x0142) +#define PropertyTagTileLength ((PROPID) 0x0143) +#define PropertyTagTileOffset ((PROPID) 0x0144) +#define PropertyTagTileByteCounts ((PROPID) 0x0145) +#define PropertyTagInkSet ((PROPID) 0x014C) +#define PropertyTagInkNames ((PROPID) 0x014D) +#define PropertyTagNumberOfInks ((PROPID) 0x014E) +#define PropertyTagDotRange ((PROPID) 0x0150) +#define PropertyTagTargetPrinter ((PROPID) 0x0151) +#define PropertyTagExtraSamples ((PROPID) 0x0152) +#define PropertyTagSampleFormat ((PROPID) 0x0153) +#define PropertyTagSMinSampleValue ((PROPID) 0x0154) +#define PropertyTagSMaxSampleValue ((PROPID) 0x0155) +#define PropertyTagTransferRange ((PROPID) 0x0156) +#define PropertyTagJPEGProc ((PROPID) 0x0200) +#define PropertyTagJPEGInterFormat ((PROPID) 0x0201) +#define PropertyTagJPEGInterLength ((PROPID) 0x0202) +#define PropertyTagJPEGRestartInterval ((PROPID) 0x0203) +#define PropertyTagJPEGLosslessPredictors ((PROPID) 0x0205) +#define PropertyTagJPEGPointTransforms ((PROPID) 0x0206) +#define PropertyTagJPEGQTables ((PROPID) 0x0207) +#define PropertyTagJPEGDCTables ((PROPID) 0x0208) +#define PropertyTagJPEGACTables ((PROPID) 0x0209) +#define PropertyTagYCbCrCoefficients ((PROPID) 0x0211) +#define PropertyTagYCbCrSubsampling ((PROPID) 0x0212) +#define PropertyTagYCbCrPositioning ((PROPID) 0x0213) +#define PropertyTagREFBlackWhite ((PROPID) 0x0214) +#define PropertyTagGamma ((PROPID) 0x0301) +#define PropertyTagICCProfileDescriptor ((PROPID) 0x0302) +#define PropertyTagSRGBRenderingIntent ((PROPID) 0x0303) +#define PropertyTagImageTitle ((PROPID) 0x0320) +#define PropertyTagResolutionXUnit ((PROPID) 0x5001) +#define PropertyTagResolutionYUnit ((PROPID) 0x5002) +#define PropertyTagResolutionXLengthUnit ((PROPID) 0x5003) +#define PropertyTagResolutionYLengthUnit ((PROPID) 0x5004) +#define PropertyTagPrintFlags ((PROPID) 0x5005) +#define PropertyTagPrintFlagsVersion ((PROPID) 0x5006) +#define PropertyTagPrintFlagsCrop ((PROPID) 0x5007) +#define PropertyTagPrintFlagsBleedWidth ((PROPID) 0x5008) +#define PropertyTagPrintFlagsBleedWidthScale ((PROPID) 0x5009) +#define PropertyTagHalftoneLPI ((PROPID) 0x500A) +#define PropertyTagHalftoneLPIUnit ((PROPID) 0x500B) +#define PropertyTagHalftoneDegree ((PROPID) 0x500C) +#define PropertyTagHalftoneShape ((PROPID) 0x500D) +#define PropertyTagHalftoneMisc ((PROPID) 0x500E) +#define PropertyTagHalftoneScreen ((PROPID) 0x500F) +#define PropertyTagJPEGQuality ((PROPID) 0x5010) +#define PropertyTagGridSize ((PROPID) 0x5011) +#define PropertyTagThumbnailFormat ((PROPID) 0x5012) +#define PropertyTagThumbnailWidth ((PROPID) 0x5013) +#define PropertyTagThumbnailHeight ((PROPID) 0x5014) +#define PropertyTagThumbnailColorDepth ((PROPID) 0x5015) +#define PropertyTagThumbnailPlanes ((PROPID) 0x5016) +#define PropertyTagThumbnailRawBytes ((PROPID) 0x5017) +#define PropertyTagThumbnailSize ((PROPID) 0x5018) +#define PropertyTagThumbnailCompressedSize ((PROPID) 0x5019) +#define PropertyTagColorTransferFunction ((PROPID) 0x501A) +#define PropertyTagThumbnailData ((PROPID) 0x501B) +#define PropertyTagThumbnailImageWidth ((PROPID) 0x5020) +#define PropertyTagThumbnailImageHeight ((PROPID) 0x5021) +#define PropertyTagThumbnailBitsPerSample ((PROPID) 0x5022) +#define PropertyTagThumbnailCompression ((PROPID) 0x5023) +#define PropertyTagThumbnailPhotometricInterp ((PROPID) 0x5024) +#define PropertyTagThumbnailImageDescription ((PROPID) 0x5025) +#define PropertyTagThumbnailEquipMake ((PROPID) 0x5026) +#define PropertyTagThumbnailEquipModel ((PROPID) 0x5027) +#define PropertyTagThumbnailStripOffsets ((PROPID) 0x5028) +#define PropertyTagThumbnailOrientation ((PROPID) 0x5029) +#define PropertyTagThumbnailSamplesPerPixel ((PROPID) 0x502A) +#define PropertyTagThumbnailRowsPerStrip ((PROPID) 0x502B) +#define PropertyTagThumbnailStripBytesCount ((PROPID) 0x502C) +#define PropertyTagThumbnailResolutionX ((PROPID) 0x502D) +#define PropertyTagThumbnailResolutionY ((PROPID) 0x502E) +#define PropertyTagThumbnailPlanarConfig ((PROPID) 0x502F) +#define PropertyTagThumbnailResolutionUnit ((PROPID) 0x5030) +#define PropertyTagThumbnailTransferFunction ((PROPID) 0x5031) +#define PropertyTagThumbnailSoftwareUsed ((PROPID) 0x5032) +#define PropertyTagThumbnailDateTime ((PROPID) 0x5033) +#define PropertyTagThumbnailArtist ((PROPID) 0x5034) +#define PropertyTagThumbnailWhitePoint ((PROPID) 0x5035) +#define PropertyTagThumbnailPrimaryChromaticities ((PROPID) 0x5036) +#define PropertyTagThumbnailYCbCrCoefficients ((PROPID) 0x5037) +#define PropertyTagThumbnailYCbCrSubsampling ((PROPID) 0x5038) +#define PropertyTagThumbnailYCbCrPositioning ((PROPID) 0x5039) +#define PropertyTagThumbnailRefBlackWhite ((PROPID) 0x503A) +#define PropertyTagThumbnailCopyRight ((PROPID) 0x503B) +#define PropertyTagLuminanceTable ((PROPID) 0x5090) +#define PropertyTagChrominanceTable ((PROPID) 0x5091) +#define PropertyTagFrameDelay ((PROPID) 0x5100) +#define PropertyTagLoopCount ((PROPID) 0x5101) +#define PropertyTagGlobalPalette ((PROPID) 0x5102) +#define PropertyTagIndexBackground ((PROPID) 0x5103) +#define PropertyTagIndexTransparent ((PROPID) 0x5104) +#define PropertyTagPixelUnit ((PROPID) 0x5110) +#define PropertyTagPixelPerUnitX ((PROPID) 0x5111) +#define PropertyTagPixelPerUnitY ((PROPID) 0x5112) +#define PropertyTagPaletteHistogram ((PROPID) 0x5113) +#define PropertyTagCopyright ((PROPID) 0x8298) +#define PropertyTagExifExposureTime ((PROPID) 0x829A) +#define PropertyTagExifFNumber ((PROPID) 0x829D) +#define PropertyTagExifIFD ((PROPID) 0x8769) +#define PropertyTagICCProfile ((PROPID) 0x8773) +#define PropertyTagExifExposureProg ((PROPID) 0x8822) +#define PropertyTagExifSpectralSense ((PROPID) 0x8824) +#define PropertyTagGpsIFD ((PROPID) 0x8825) +#define PropertyTagExifISOSpeed ((PROPID) 0x8827) +#define PropertyTagExifOECF ((PROPID) 0x8828) +#define PropertyTagExifVer ((PROPID) 0x9000) +#define PropertyTagExifDTOrig ((PROPID) 0x9003) +#define PropertyTagExifDTDigitized ((PROPID) 0x9004) +#define PropertyTagExifCompConfig ((PROPID) 0x9101) +#define PropertyTagExifCompBPP ((PROPID) 0x9102) +#define PropertyTagExifShutterSpeed ((PROPID) 0x9201) +#define PropertyTagExifAperture ((PROPID) 0x9202) +#define PropertyTagExifBrightness ((PROPID) 0x9203) +#define PropertyTagExifExposureBias ((PROPID) 0x9204) +#define PropertyTagExifMaxAperture ((PROPID) 0x9205) +#define PropertyTagExifSubjectDist ((PROPID) 0x9206) +#define PropertyTagExifMeteringMode ((PROPID) 0x9207) +#define PropertyTagExifLightSource ((PROPID) 0x9208) +#define PropertyTagExifFlash ((PROPID) 0x9209) +#define PropertyTagExifFocalLength ((PROPID) 0x920A) +#define PropertyTagExifMakerNote ((PROPID) 0x927C) +#define PropertyTagExifUserComment ((PROPID) 0x9286) +#define PropertyTagExifDTSubsec ((PROPID) 0x9290) +#define PropertyTagExifDTOrigSS ((PROPID) 0x9291) +#define PropertyTagExifDTDigSS ((PROPID) 0x9292) +#define PropertyTagExifFPXVer ((PROPID) 0xA000) +#define PropertyTagExifColorSpace ((PROPID) 0xA001) +#define PropertyTagExifPixXDim ((PROPID) 0xA002) +#define PropertyTagExifPixYDim ((PROPID) 0xA003) +#define PropertyTagExifRelatedWav ((PROPID) 0xA004) +#define PropertyTagExifInterop ((PROPID) 0xA005) +#define PropertyTagExifFlashEnergy ((PROPID) 0xA20B) +#define PropertyTagExifSpatialFR ((PROPID) 0xA20C) +#define PropertyTagExifFocalXRes ((PROPID) 0xA20E) +#define PropertyTagExifFocalYRes ((PROPID) 0xA20F) +#define PropertyTagExifFocalResUnit ((PROPID) 0xA210) +#define PropertyTagExifSubjectLoc ((PROPID) 0xA214) +#define PropertyTagExifExposureIndex ((PROPID) 0xA215) +#define PropertyTagExifSensingMethod ((PROPID) 0xA217) +#define PropertyTagExifFileSource ((PROPID) 0xA300) +#define PropertyTagExifSceneType ((PROPID) 0xA301) +#define PropertyTagExifCfaPattern ((PROPID) 0xA302) + +#define PropertyTagTypeByte ((WORD) 1) +#define PropertyTagTypeASCII ((WORD) 2) +#define PropertyTagTypeShort ((WORD) 3) +#define PropertyTagTypeLong ((WORD) 4) +#define PropertyTagTypeRational ((WORD) 5) +#define PropertyTagTypeUndefined ((WORD) 7) +#define PropertyTagTypeSLONG ((WORD) 9) +#define PropertyTagTypeSRational ((WORD) 10) + +#ifdef __cplusplus +extern "C" { +#endif + +extern const GUID EncoderChrominanceTable; /* f2e455dc-09b3-4316-8260-676ada32481c */ +extern const GUID EncoderColorDepth; /* 66087055-ad66-4c7c-9a18-38a2310b8337 */ +extern const GUID EncoderColorSpace; /* ? */ +extern const GUID EncoderCompression; /* e09d739d-ccd4-44ee-8eba-3fbf8be4fc58 */ +extern const GUID EncoderImageItems; /* ? */ +extern const GUID EncoderLuminanceTable; /* edb33bce-0266-4a77-b904-27216099e717 */ +extern const GUID EncoderQuality; /* 1d5be4b5-fa4a-452d-9cdd-5db35105e7eb */ +extern const GUID EncoderRenderMethod; /* 6d42c53a-229a-4825-8bb7-5c99e2b9a8b8 */ +extern const GUID EncoderSaveAsCMYK; /* ? */ +extern const GUID EncoderSaveFlag; /* 292266fc-ac40-47bf-8cfc-a85b89a655de */ +extern const GUID EncoderScanMethod; /* 3a4e2661-3109-4e56-8536-42c156e7dcfa */ +extern const GUID EncoderTransformation; /* 8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9 */ +extern const GUID EncoderVersion; /* 24d18c76-814a-41a4-bf53-1c219cccf797 */ + +extern const GUID ImageFormatBMP; /* b96b3cab-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatEMF; /* b96b3cac-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatEXIF; /* ? */ +extern const GUID ImageFormatGIF; /* b96b3cb0-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatIcon; /* b96b3cb5-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatJPEG; /* b96b3cae-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatMemoryBMP; /* b96b3caa-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatPNG; /* b96b3caf-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatTIFF; /* b96b3cb1-0728-11d3-9d7b-0000f81ef32e */ +extern const GUID ImageFormatUndefined; /* ? */ +extern const GUID ImageFormatWMF; /* b96b3cad-0728-11d3-9d7b-0000f81ef32e */ + +extern const GUID FrameDimensionPage; /* 7462dc86-6180-4c7e-8e3f-ee7333a7a483 */ +extern const GUID FrameDimensionResolution; /* ? */ +extern const GUID FrameDimensionTime; /* 6aedbd6d-3fb5-418a-83a6-7f45229dc872 */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __GDIPLUS_IMAGING_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusimpl.h b/mingw-w64-headers/include/gdiplus/gdiplusimpl.h new file mode 100644 index 0000000..13b48ab --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusimpl.h
@@ -0,0 +1,1613 @@ +/* + * gdiplusimpl.h + * + * GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection, FontFamily, + * Image, InstalledFontCollection, PrivateFontCollection, Region + * implementation. Definitions of these classes are in gdiplusheaders.h. + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_IMPL_H +#define __GDIPLUS_IMPL_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusimpl.h." +#endif + +/* + * FIXME: I called this file gdiplusimpl.h, but what should it really be called? + * Or did Microsoft create separate files for each class implemented here? + */ + + +// Image + +__inline__ Image* Image::FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement) +{ + return new Image(filename, useEmbeddedColorManagement); +} + +__inline__ Image* Image::FromStream(IStream *stream, + BOOL useEmbeddedColorManagement) +{ + return new Image(stream, useEmbeddedColorManagement); +} + +__inline__ Image::Image(const WCHAR *filename, BOOL useEmbeddedColorManagement): + nativeImage(NULL), lastStatus(Ok) +{ + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipLoadImageFromFileICM( + filename, &nativeImage); + } else { + lastStatus = DllExports::GdipLoadImageFromFile( + filename, &nativeImage); + } +} + +__inline__ Image::Image(IStream *stream, BOOL useEmbeddedColorManagement): + nativeImage(NULL), lastStatus(Ok) +{ + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipLoadImageFromStreamICM( + stream, &nativeImage); + } else { + lastStatus = DllExports::GdipLoadImageFromStream( + stream, &nativeImage); + } +} + +__inline__ Status Image::FindFirstItem(ImageItemData *item) +{ + // FIXME: can't test GdipFindFirstImageItem b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipFindFirstImageItem( + nativeImage, item)); +} + +__inline__ Status Image::FindNextItem(ImageItemData *item) +{ + // FIXME: can't test GdipFindFirstImageItem b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipFindNextImageItem( + nativeImage, item)); +} + +__inline__ Status Image::GetAllPropertyItems(UINT totalBufferSize, + UINT numProperties, PropertyItem *allItems) +{ + return updateStatus(DllExports::GdipGetAllPropertyItems( + nativeImage, totalBufferSize, numProperties, allItems)); +} + +__inline__ Status Image::GetBounds(RectF *srcRect, Unit *srcUnit) +{ + return updateStatus(DllExports::GdipGetImageBounds( + nativeImage, srcRect, srcUnit)); +} + +__inline__ Status Image::GetEncoderParameterList(const CLSID *clsidEncoder, + UINT size, EncoderParameters *buffer) +{ + return updateStatus(DllExports::GdipGetEncoderParameterList( + nativeImage, clsidEncoder, size, buffer)); +} + +__inline__ UINT Image::GetEncoderParameterListSize(const CLSID *clsidEncoder) +{ + UINT result = 0; + updateStatus(DllExports::GdipGetEncoderParameterListSize( + nativeImage, clsidEncoder, &result)); + return result; +} + +__inline__ UINT Image::GetFlags() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageFlags(nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetFrameCount(const GUID *dimensionID) +{ + UINT result = 0; + updateStatus(DllExports::GdipImageGetFrameCount( + nativeImage, dimensionID, &result)); + return result; +} + +__inline__ UINT Image::GetFrameDimensionsCount() +{ + UINT result = 0; + updateStatus(DllExports::GdipImageGetFrameDimensionsCount( + nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetFrameDimensionsList(GUID *dimensionIDs, UINT count) +{ + return updateStatus(DllExports::GdipImageGetFrameDimensionsList( + nativeImage, dimensionIDs, count)); +} + +__inline__ UINT Image::GetHeight() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageHeight(nativeImage, &result)); + return result; +} + +__inline__ REAL Image::GetHorizontalResolution() +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetImageHorizontalResolution( + nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetItemData(ImageItemData *item) +{ + // FIXME: can't test GdipGetImageItemData b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipGetImageItemData( + nativeImage, item)); +} + +__inline__ Status Image::GetPalette(ColorPalette *palette, INT size) +{ + return updateStatus(DllExports::GdipGetImagePalette( + nativeImage, palette, size)); +} + +__inline__ INT Image::GetPaletteSize() +{ + INT result = 0; + updateStatus(DllExports::GdipGetImagePaletteSize(nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetPhysicalDimension(SizeF *size) +{ + if (!size) return lastStatus = InvalidParameter; + return updateStatus(DllExports::GdipGetImageDimension( + nativeImage, &size->Width, &size->Height)); +} + +__inline__ PixelFormat Image::GetPixelFormat() +{ + PixelFormat result = (PixelFormat) 0; + updateStatus(DllExports::GdipGetImagePixelFormat(nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetPropertyCount() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetPropertyCount(nativeImage, &result)); + return result; +} + +__inline__ Status Image::GetPropertyIdList(UINT numOfProperty, PROPID *list) +{ + return updateStatus(DllExports::GdipGetPropertyIdList( + nativeImage, numOfProperty, list)); +} + +__inline__ Status Image::GetPropertyItem(PROPID propId, UINT propSize, + PropertyItem *buffer) +{ + return updateStatus(DllExports::GdipGetPropertyItem( + nativeImage, propId, propSize, buffer)); +} + +__inline__ UINT Image::GetPropertyItemSize(PROPID propId) +{ + UINT result = 0; + updateStatus(DllExports::GdipGetPropertyItemSize( + nativeImage, propId, &result)); + return result; +} + +__inline__ Status Image::GetPropertySize( + UINT *totalBufferSize, UINT *numProperties) +{ + return updateStatus(DllExports::GdipGetPropertySize( + nativeImage, totalBufferSize, numProperties)); +} + +__inline__ Status Image::GetRawFormat(GUID *format) +{ + return updateStatus(DllExports::GdipGetImageRawFormat( + nativeImage, format)); +} + +__inline__ Image* Image::GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, + GetThumbnailImageAbort callback, VOID *callbackData) +{ + GpImage *thumbImage = NULL; + Status status = updateStatus(DllExports::GdipGetImageThumbnail( + nativeImage, thumbWidth, thumbHeight, &thumbImage, + callback, callbackData)); + + if (status == Ok) { + Image *result = new Image(thumbImage, Ok); + if (!result) { + DllExports::GdipDisposeImage(thumbImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ ImageType Image::GetType() const +{ + ImageType result = ImageTypeUnknown; + updateStatus(DllExports::GdipGetImageType(nativeImage, &result)); + return result; +} + +__inline__ REAL Image::GetVerticalResolution() +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetImageVerticalResolution( + nativeImage, &result)); + return result; +} + +__inline__ UINT Image::GetWidth() +{ + UINT result = 0; + updateStatus(DllExports::GdipGetImageWidth(nativeImage, &result)); + return result; +} + +__inline__ Status Image::RemovePropertyItem(PROPID propId) +{ + return updateStatus(DllExports::GdipRemovePropertyItem( + nativeImage, propId)); +} + +__inline__ Status Image::RotateFlip(RotateFlipType rotateFlipType) +{ + return updateStatus(DllExports::GdipImageRotateFlip( + nativeImage, rotateFlipType)); +} + +__inline__ Status Image::Save(const WCHAR *filename, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveImageToFile( + nativeImage, filename, clsidEncoder, encoderParams)); +} + +__inline__ Status Image::Save(IStream *stream, const CLSID *clsidEncoder, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveImageToStream( + nativeImage, stream, clsidEncoder, encoderParams)); +} + +__inline__ Status Image::SaveAdd(const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveAdd( + nativeImage, encoderParams)); +} + +__inline__ Status Image::SaveAdd(Image *newImage, + const EncoderParameters *encoderParams) +{ + return updateStatus(DllExports::GdipSaveAddImage( + nativeImage, + newImage ? newImage->nativeImage : NULL, + encoderParams)); +} + +__inline__ Status Image::SelectActiveFrame( + const GUID *dimensionID, UINT frameIndex) +{ + return updateStatus(DllExports::GdipImageSelectActiveFrame( + nativeImage, dimensionID, frameIndex)); +} + +__inline__ Status Image::SetAbort(GdiplusAbort *pIAbort) +{ + // FIXME: can't test GdipImageSetAbort because it isn't exported in 1.0 + return updateStatus(DllExports::GdipImageSetAbort( + nativeImage, pIAbort)); +} + +__inline__ Status Image::SetPalette(const ColorPalette *palette) +{ + return updateStatus(DllExports::GdipSetImagePalette( + nativeImage, palette)); +} + +__inline__ Status Image::SetPropertyItem(const PropertyItem *item) +{ + return updateStatus(DllExports::GdipSetPropertyItem(nativeImage, item)); +} + + +// Bitmap + +__inline__ Bitmap* Bitmap::FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo, + VOID *gdiBitmapData) +{ + return new Bitmap(gdiBitmapInfo, gdiBitmapData); +} + +__inline__ Bitmap* Bitmap::FromDirectDrawSurface7(IDirectDrawSurface7 *surface) +{ + return new Bitmap(surface); +} + +__inline__ Bitmap* Bitmap::FromFile(const WCHAR *filename, + BOOL useEmbeddedColorManagement) +{ + return new Bitmap(filename, useEmbeddedColorManagement); +} + +__inline__ Bitmap* Bitmap::FromHBITMAP(HBITMAP hbm, HPALETTE hpal) +{ + return new Bitmap(hbm, hpal); +} + +__inline__ Bitmap* Bitmap::FromHICON(HICON icon) +{ + return new Bitmap(icon); +} + +__inline__ Bitmap* Bitmap::FromResource( + HINSTANCE hInstance, const WCHAR *bitmapName) +{ + return new Bitmap(hInstance, bitmapName); +} + +__inline__ Bitmap* Bitmap::FromStream(IStream *stream, + BOOL useEmbeddedColorManagement) +{ + return new Bitmap(stream, useEmbeddedColorManagement); +} + +//TODO: [GDI+ 1.1] Bitmap::ApplyEffect +//__inline__ Status Bitmap::ApplyEffect(Bitmap **inputs, INT numInputs, +// Effect *effect, RECT *ROI, RECT *outputRect, Bitmap **output) +//{ +// return NotImplemented; +//} + +__inline__ Status Bitmap::InitializePalette(ColorPalette *palette, + PaletteType paletteType, INT optimalColors, + BOOL useTransparentColor, Bitmap *bitmap) +{ + // FIXME: can't test GdipInitializePalette b/c it isn't exported in 1.0 + return DllExports::GdipInitializePalette(palette, paletteType, + optimalColors, useTransparentColor, + bitmap ? (GpBitmap*) bitmap->nativeImage : NULL); +} + +__inline__ Bitmap::Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromGdiDib( + gdiBitmapInfo, gdiBitmapData, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(IDirectDrawSurface7 *surface): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromDirectDrawSurface( + surface, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(const WCHAR *filename, + BOOL useEmbeddedColorManagement): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipCreateBitmapFromFileICM( + filename, &nativeBitmap); + } else { + lastStatus = DllExports::GdipCreateBitmapFromFile( + filename, &nativeBitmap); + } + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HBITMAP hbm, HPALETTE hpal): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromHBITMAP( + hbm, hpal, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HICON hicon): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromHICON(hicon, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromResource( + hInstance, bitmapName, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(IStream *stream, BOOL useEmbeddedColorManagement): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + if (useEmbeddedColorManagement) { + lastStatus = DllExports::GdipCreateBitmapFromStreamICM( + stream, &nativeBitmap); + } else { + lastStatus = DllExports::GdipCreateBitmapFromStream( + stream, &nativeBitmap); + } + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, Graphics *target): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromGraphics( + width, height, target ? target->nativeGraphics : NULL, + &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, PixelFormat format): + Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromScan0( + width, height, 0, format, NULL, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap::Bitmap(INT width, INT height, INT stride, + PixelFormat format, BYTE *scan0): Image(NULL, Ok) +{ + GpBitmap *nativeBitmap = NULL; + lastStatus = DllExports::GdipCreateBitmapFromScan0( + width, height, stride, format, scan0, &nativeBitmap); + nativeImage = nativeBitmap; +} + +__inline__ Bitmap* Bitmap::Clone(const RectF& rect, PixelFormat format) const +{ + return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); +} + +__inline__ Bitmap* Bitmap::Clone(const Rect& rect, PixelFormat format) const +{ + return Clone(rect.X, rect.Y, rect.Width, rect.Height, format); +} + +__inline__ Bitmap* Bitmap::Clone(REAL x, REAL y, REAL width, REAL height, + PixelFormat format) const +{ + GpBitmap *cloneBitmap = NULL; + Status status = updateStatus(DllExports::GdipCloneBitmapArea( + x, y, width, height, format, + (GpBitmap*) nativeImage, &cloneBitmap)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneBitmap, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneBitmap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Bitmap* Bitmap::Clone(INT x, INT y, INT width, INT height, + PixelFormat format) const +{ + GpBitmap *cloneBitmap = NULL; + Status status = updateStatus(DllExports::GdipCloneBitmapAreaI( + x, y, width, height, format, + (GpBitmap*) nativeImage, &cloneBitmap)); + if (status == Ok) { + Bitmap *result = new Bitmap(cloneBitmap, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneBitmap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +//TODO: [GDI+ 1.1] Bitmap::ApplyEffect +//__inline__ Status Bitmap::ApplyEffect(Effect *effect, RECT *ROI) +//{ +// return NotImplemented; +//} + +__inline__ Status Bitmap::ConvertFormat(PixelFormat format, + DitherType ditherType, PaletteType paletteType, + ColorPalette *palette, REAL alphaThresholdPercent) +{ + // FIXME: can't test GdipBitmapConvertFormat b/c it isn't exported in 1.0 + return updateStatus(DllExports::GdipBitmapConvertFormat( + (GpBitmap*) nativeImage, format, ditherType, + paletteType, palette, alphaThresholdPercent)); +} + +__inline__ Status Bitmap::GetHBITMAP( + const Color& colorBackground, HBITMAP *hbmReturn) const +{ + return updateStatus(DllExports::GdipCreateHBITMAPFromBitmap( + (GpBitmap*) nativeImage, hbmReturn, + colorBackground.GetValue())); +} + +__inline__ Status Bitmap::GetHICON(HICON *icon) const +{ + return updateStatus(DllExports::GdipCreateHICONFromBitmap( + (GpBitmap*) nativeImage, icon)); +} + +__inline__ Status Bitmap::GetHistogram(HistogramFormat format, + UINT numberOfEntries, + UINT *channel0, UINT *channel1, + UINT *channel2, UINT *channel3) const +{ + return updateStatus(DllExports::GdipBitmapGetHistogram( + (GpBitmap*) nativeImage, format, numberOfEntries, + channel0, channel1, channel2, channel3)); +} + +__inline__ Status Bitmap::GetHistogramSize(HistogramFormat format, + UINT *numberOfEntries) const +{ + return updateStatus(DllExports::GdipBitmapGetHistogramSize( + format, numberOfEntries)); +} + +__inline__ Status Bitmap::GetPixel(INT x, INT y, Color *color) const +{ + return updateStatus(DllExports::GdipBitmapGetPixel( + (GpBitmap*) nativeImage, x, y, + color ? &color->Value : NULL)); +} + +__inline__ Status Bitmap::LockBits(const Rect *rect, UINT flags, + PixelFormat format, BitmapData *lockedBitmapData) +{ + return updateStatus(DllExports::GdipBitmapLockBits( + (GpBitmap*) nativeImage, rect, flags, format, + lockedBitmapData)); +} + +__inline__ Status Bitmap::SetPixel(INT x, INT y, const Color& color) +{ + return updateStatus(DllExports::GdipBitmapSetPixel( + (GpBitmap*) nativeImage, x, y, color.GetValue())); +} + +__inline__ Status Bitmap::SetResolution(REAL xdpi, REAL ydpi) +{ + return updateStatus(DllExports::GdipBitmapSetResolution( + (GpBitmap*) nativeImage, xdpi, ydpi)); +} + +__inline__ Status Bitmap::UnlockBits(BitmapData *lockedBitmapData) +{ + return updateStatus(DllExports::GdipBitmapUnlockBits( + (GpBitmap*) nativeImage, lockedBitmapData)); +} + + +// CachedBitmap + +__inline__ CachedBitmap::CachedBitmap(Bitmap *bitmap, Graphics *graphics): + nativeCachedBitmap(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateCachedBitmap( + bitmap ? ((GpBitmap*) bitmap->nativeImage) : NULL, + graphics ? graphics->nativeGraphics : NULL, + &nativeCachedBitmap); +} + +__inline__ CachedBitmap::~CachedBitmap() +{ + DllExports::GdipDeleteCachedBitmap(nativeCachedBitmap); +} + + +// CustomLineCap + +__inline__ CustomLineCap::CustomLineCap( + const GraphicsPath *fillPath, + const GraphicsPath *strokePath, + LineCap baseCap, REAL baseInset): + nativeCustomLineCap(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateCustomLineCap( + fillPath ? fillPath->nativePath : NULL, + strokePath ? strokePath->nativePath : NULL, + baseCap, baseInset, &nativeCustomLineCap); +} + +__inline__ LineCap CustomLineCap::GetBaseCap() const +{ + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetCustomLineCapBaseCap( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ REAL CustomLineCap::GetBaseInset() const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetCustomLineCapBaseInset( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ Status CustomLineCap::GetStrokeCaps(LineCap *startCap, + LineCap *endCap) const +{ + return updateStatus(DllExports::GdipGetCustomLineCapStrokeCaps( + nativeCustomLineCap, startCap, endCap)); +} + +__inline__ LineJoin CustomLineCap::GetStrokeJoin() const +{ + LineJoin result = LineJoinMiter; + updateStatus(DllExports::GdipGetCustomLineCapStrokeJoin( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ REAL CustomLineCap::GetWidthScale() const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetCustomLineCapWidthScale( + nativeCustomLineCap, &result)); + return result; +} + +__inline__ Status CustomLineCap::SetBaseCap(LineCap baseCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapBaseCap( + nativeCustomLineCap, baseCap)); +} + +__inline__ Status CustomLineCap::SetBaseInset(REAL inset) +{ + return updateStatus(DllExports::GdipSetCustomLineCapBaseInset( + nativeCustomLineCap, inset)); +} + +__inline__ Status CustomLineCap::SetStrokeCap(LineCap strokeCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeCaps( + nativeCustomLineCap, strokeCap, strokeCap)); +} + +__inline__ Status CustomLineCap::SetStrokeCaps(LineCap startCap, LineCap endCap) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeCaps( + nativeCustomLineCap, startCap, endCap)); +} + +__inline__ Status CustomLineCap::SetStrokeJoin(LineJoin lineJoin) +{ + return updateStatus(DllExports::GdipSetCustomLineCapStrokeJoin( + nativeCustomLineCap, lineJoin)); +} + +__inline__ Status CustomLineCap::SetWidthScale(REAL widthScale) +{ + return updateStatus(DllExports::GdipSetCustomLineCapWidthScale( + nativeCustomLineCap, widthScale)); +} + + +// Font + +__inline__ Font::Font(const FontFamily *family, + REAL emSize, INT style, Unit unit): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFont( + family ? family->nativeFontFamily : NULL, + emSize, style, unit, &nativeFont); +} + +__inline__ Font::Font(HDC hdc, HFONT hfont): + nativeFont(NULL), lastStatus(Ok) +{ + LOGFONTW logfont; + if (GetObject(hfont, sizeof logfont, &logfont)) { + lastStatus = DllExports::GdipCreateFontFromLogfontW( + hdc, &logfont, &nativeFont); + } else { + lastStatus = DllExports::GdipCreateFontFromDC( + hdc, &nativeFont); + } +} + +__inline__ Font::Font(HDC hdc, const LOGFONTA *logfont): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromLogfontA( + hdc, logfont, &nativeFont); +} + +__inline__ Font::Font(HDC hdc, const LOGFONTW *logfont): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromLogfontW( + hdc, logfont, &nativeFont); +} + +__inline__ Font::Font(HDC hdc): + nativeFont(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFromDC(hdc, &nativeFont); +} + +__inline__ Font::Font(const WCHAR *familyName, REAL emSize, INT style, + Unit unit, const FontCollection *fontCollection): + nativeFont(NULL), lastStatus(Ok) +{ + GpFontFamily *nativeFamily = NULL; + lastStatus = DllExports::GdipCreateFontFamilyFromName( + familyName, + fontCollection ? fontCollection->nativeFontCollection : NULL, + &nativeFamily); + + if (nativeFamily) { + lastStatus = DllExports::GdipCreateFont( + nativeFamily, emSize, style, unit, &nativeFont); + DllExports::GdipDeleteFontFamily(nativeFamily); + } +} + +__inline__ Font::~Font() +{ + DllExports::GdipDeleteFont(nativeFont); +} + +__inline__ Font* Font::Clone() const +{ + GpFont *cloneFont = NULL; + Status status = updateStatus(DllExports::GdipCloneFont( + nativeFont, &cloneFont)); + if (status == Ok) { + Font *result = new Font(cloneFont, lastStatus); + if (!result) { + DllExports::GdipDeleteFont(cloneFont); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Status Font::GetFamily(FontFamily *family) const +{ + if (!family) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteFontFamily first? + return family->lastStatus = updateStatus(DllExports::GdipGetFamily( + nativeFont, &family->nativeFontFamily)); +} + +__inline__ REAL Font::GetHeight(const Graphics *graphics) const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetFontHeight( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + &result)); + return result; +} + +__inline__ REAL Font::GetHeight(REAL dpi) const +{ + REAL result = 0.0f; + updateStatus(DllExports::GdipGetFontHeightGivenDPI( + nativeFont, dpi, &result)); + return result; +} + +__inline__ Status Font::GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) +const +{ + return updateStatus(DllExports::GdipGetLogFontA( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + logfontA)); +} + +__inline__ Status Font::GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) +const +{ + return updateStatus(DllExports::GdipGetLogFontW( + nativeFont, graphics ? graphics->nativeGraphics : NULL, + logfontW)); +} + +__inline__ REAL Font::GetSize() const +{ + REAL result = 0.0; + updateStatus(DllExports::GdipGetFontSize(nativeFont, &result)); + return result; +} + +__inline__ INT Font::GetStyle() const +{ + INT result = FontStyleRegular; + updateStatus(DllExports::GdipGetFontStyle(nativeFont, &result)); + return result; +} + +__inline__ Unit Font::GetUnit() const +{ + Unit result = UnitPoint; + updateStatus(DllExports::GdipGetFontUnit(nativeFont, &result)); + return result; +} + + +// FontCollection + +__inline__ FontCollection::FontCollection(): + nativeFontCollection(NULL), lastStatus(Ok) +{ +} + +__inline__ Status FontCollection::GetFamilies(INT numSought, + FontFamily *families, INT *numFound) const +{ + if (numSought <= 0 || !families || !numFound) + return lastStatus = InvalidParameter; + + for (int i = 0; i < numSought; ++i) { + families[i].nativeFontFamily = NULL; + families[i].lastStatus = FontFamilyNotFound; + } + *numFound = 0; + + GpFontFamily **nativeFamilyArray = (GpFontFamily**) + DllExports::GdipAlloc(numSought * sizeof (GpFontFamily*)); + if (!nativeFamilyArray) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetFontCollectionFamilyList( + nativeFontCollection, numSought, nativeFamilyArray, + numFound)); + + // FIXME: must the native GpFontFamily objects be cloned? Seems so. + // (if this is not done, the "Creating a Private Font Collection" + // example crashes on "delete[] pFontFamily") + + if (status == Ok) { + for (int i = 0; i < *numFound; ++i) { + families[i].lastStatus = + updateStatus(DllExports::GdipCloneFontFamily( + nativeFamilyArray[i], + &families[i].nativeFontFamily)); + } + } + + DllExports::GdipFree(nativeFamilyArray); + return status; +} + +__inline__ INT FontCollection::GetFamilyCount() const +{ + INT result = 0; + updateStatus(DllExports::GdipGetFontCollectionFamilyCount( + nativeFontCollection, &result)); + return result; +} + + +// FontFamily + +// FIXME: do FontFamily::GenericMonospace() et al. need to be thread safe? +// FIXME: maybe put parts of this in gdiplus.c + +extern "C" void *_GdipFontFamilyCachedGenericMonospace; +extern "C" void *_GdipFontFamilyCachedGenericSansSerif; +extern "C" void *_GdipFontFamilyCachedGenericSerif; + +__inline__ const FontFamily* FontFamily::GenericMonospace() +{ + if (!_GdipFontFamilyCachedGenericMonospace) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilyMonospace( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericMonospace = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericMonospace; +} + +__inline__ const FontFamily* FontFamily::GenericSansSerif() +{ + if (!_GdipFontFamilyCachedGenericSansSerif) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilySansSerif( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericSansSerif = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericSansSerif; +} + +__inline__ const FontFamily* FontFamily::GenericSerif() +{ + if (!_GdipFontFamilyCachedGenericSerif) { + GpFontFamily *nativeFontFamily = 0; + Status status = DllExports::GdipGetGenericFontFamilySerif( + &nativeFontFamily); + if (status == Ok && nativeFontFamily) { + _GdipFontFamilyCachedGenericSerif = (void*) + new FontFamily(nativeFontFamily, Ok); + } + } + return (FontFamily*) _GdipFontFamilyCachedGenericSerif; +} + +__inline__ FontFamily::FontFamily(): + nativeFontFamily(NULL), lastStatus(Ok) +{ +} + +__inline__ FontFamily::FontFamily(const WCHAR *name, + const FontCollection *fontCollection): + nativeFontFamily(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateFontFamilyFromName(name, + fontCollection ? fontCollection->nativeFontCollection : NULL, + &nativeFontFamily); +} + +__inline__ FontFamily::~FontFamily() +{ + DllExports::GdipDeleteFontFamily(nativeFontFamily); +} + +__inline__ FontFamily* FontFamily::Clone() const +{ + GpFontFamily *cloneFontFamily = NULL; + Status status = updateStatus(DllExports::GdipCloneFontFamily( + nativeFontFamily, &cloneFontFamily)); + if (status == Ok) { + FontFamily *result = new FontFamily(cloneFontFamily, lastStatus); + if (!result) { + DllExports::GdipDeleteFontFamily(cloneFontFamily); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ UINT16 FontFamily::GetCellAscent(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetCellAscent( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ UINT16 FontFamily::GetCellDescent(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetCellDescent( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ UINT16 FontFamily::GetEmHeight(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetEmHeight( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ Status FontFamily::GetFamilyName(WCHAR name[LF_FACESIZE], + LANGID language) const +{ + return updateStatus(DllExports::GdipGetFamilyName( + nativeFontFamily, name, language)); +} + +__inline__ UINT16 FontFamily::GetLineSpacing(INT style) const +{ + UINT16 result = 0; + updateStatus(DllExports::GdipGetLineSpacing( + nativeFontFamily, style, &result)); + return result; +} + +__inline__ BOOL FontFamily::IsStyleAvailable(INT style) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsStyleAvailable( + nativeFontFamily, style, &result)); + return result; +} + + +// InstalledFontCollection + +__inline__ InstalledFontCollection::InstalledFontCollection() +{ + lastStatus = DllExports::GdipNewInstalledFontCollection( + &nativeFontCollection); +} + + +// PrivateFontCollection + +__inline__ PrivateFontCollection::PrivateFontCollection() +{ + lastStatus = DllExports::GdipNewPrivateFontCollection( + &nativeFontCollection); +} + +__inline__ Status PrivateFontCollection::AddFontFile(const WCHAR *filename) +{ + return updateStatus(DllExports::GdipPrivateAddFontFile( + nativeFontCollection, filename)); +} + +__inline__ Status PrivateFontCollection::AddMemoryFont( + const VOID *memory, INT length) +{ + return updateStatus(DllExports::GdipPrivateAddMemoryFont( + nativeFontCollection, memory, length)); +} + + +// Region + +__inline__ Region* Region::FromHRGN(HRGN hrgn) +{ + return new Region(hrgn); +} + +__inline__ Region::Region(): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegion(&nativeRegion); +} + +__inline__ Region::Region(const RectF& rect): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRect(&rect, &nativeRegion); +} + +__inline__ Region::Region(const Rect& rect): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRectI(&rect, &nativeRegion); +} + +__inline__ Region::Region(const GraphicsPath *path): + nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionPath( + path ? path->nativePath : NULL, &nativeRegion); +} + +__inline__ Region::Region(const BYTE *regionData, INT size): + nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionRgnData( + regionData, size, &nativeRegion); +} + +__inline__ Region::Region(HRGN hrgn): nativeRegion(NULL), lastStatus(Ok) +{ + lastStatus = DllExports::GdipCreateRegionHrgn(hrgn, &nativeRegion); +} + +__inline__ Region::~Region() +{ + DllExports::GdipDeleteRegion(nativeRegion); +} + +__inline__ Region* Region::Clone() const +{ + GpRegion *cloneRegion = NULL; + Status status = updateStatus(DllExports::GdipCloneRegion( + nativeRegion, &cloneRegion)); + if (status == Ok) { + Region *result = new Region(cloneRegion, lastStatus); + if (!result) { + DllExports::GdipDeleteRegion(cloneRegion); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } +} + +__inline__ Status Region::Complement(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeComplement)); +} + +__inline__ Status Region::Complement(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeComplement)); +} + +__inline__ Status Region::Complement(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeComplement)); +} + +__inline__ Status Region::Complement(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeComplement)); +} + +__inline__ BOOL Region::Equals(const Region *region, const Graphics *graphics) +const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsEqualRegion( + nativeRegion, region ? region->nativeRegion : NULL, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::Exclude(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeExclude)); +} + +__inline__ Status Region::Exclude(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeExclude)); +} + +__inline__ Status Region::GetBounds(RectF *rect, const Graphics *graphics) const +{ + return updateStatus(DllExports::GdipGetRegionBounds(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, rect)); +} + +__inline__ Status Region::GetBounds(Rect *rect, const Graphics *graphics) const +{ + return updateStatus(DllExports::GdipGetRegionBoundsI(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, rect)); +} + +__inline__ Status Region::GetData(BYTE *buffer, UINT bufferSize, + UINT *sizeFilled) const +{ + return updateStatus(DllExports::GdipGetRegionData( + nativeRegion, buffer, bufferSize, sizeFilled)); +} + +__inline__ UINT Region::GetDataSize() const +{ + UINT result = 0; + updateStatus(DllExports::GdipGetRegionDataSize(nativeRegion, &result)); + return result; +} + +__inline__ HRGN Region::GetHRGN(const Graphics *graphics) const +{ + HRGN result = NULL; + updateStatus(DllExports::GdipGetRegionHRgn(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::GetRegionScans(const Matrix *matrix, + RectF *rects, INT *count) const +{ + return updateStatus(DllExports::GdipGetRegionScans( + nativeRegion, rects, count, + matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ Status Region::GetRegionScans(const Matrix *matrix, + Rect *rects, INT *count) const +{ + return updateStatus(DllExports::GdipGetRegionScansI( + nativeRegion, rects, count, + matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ UINT Region::GetRegionScansCount(const Matrix *matrix) const +{ + UINT result = 0; + updateStatus(DllExports::GdipGetRegionScansCount( + nativeRegion, &result, + matrix ? matrix->nativeMatrix : NULL)); + return result; +} + +__inline__ Status Region::Intersect(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeIntersect)); +} + +__inline__ Status Region::Intersect(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeIntersect)); +} + +__inline__ BOOL Region::IsEmpty(const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsEmptyRegion(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsInfinite(const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsInfiniteRegion(nativeRegion, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(REAL x, REAL y, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPoint( + nativeRegion, x, y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(INT x, INT y, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPointI( + nativeRegion, x, y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const PointF& point, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPoint( + nativeRegion, point.X, point.Y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const Point& point, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionPointI( + nativeRegion, point.X, point.Y, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(REAL x, REAL y, REAL width, REAL height, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRect( + nativeRegion, x, y, width, height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(INT x, INT y, INT width, INT height, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRectI( + nativeRegion, x, y, width, height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const RectF& rect, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRect( + nativeRegion, rect.X, rect.Y, rect.Width, rect.Height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL Region::IsVisible(const Rect& rect, + const Graphics *graphics) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisibleRegionRectI( + nativeRegion, rect.X, rect.Y, rect.Width, rect.Height, + graphics ? graphics->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ Status Region::MakeEmpty() +{ + return updateStatus(DllExports::GdipSetEmpty(nativeRegion)); +} + +__inline__ Status Region::MakeInfinite() +{ + return updateStatus(DllExports::GdipSetInfinite(nativeRegion)); +} + +__inline__ Status Region::Transform(const Matrix *matrix) +{ + return updateStatus(DllExports::GdipTransformRegion( + nativeRegion, matrix ? matrix->nativeMatrix : NULL)); +} + +__inline__ Status Region::Translate(REAL dx, REAL dy) +{ + return updateStatus(DllExports::GdipTranslateRegion( + nativeRegion, dx, dy)); +} + +__inline__ Status Region::Translate(INT dx, INT dy) +{ + return updateStatus(DllExports::GdipTranslateRegionI( + nativeRegion, dx, dy)); +} + +__inline__ Status Region::Union(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeUnion)); +} + +__inline__ Status Region::Union(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeUnion)); +} + +__inline__ Status Region::Union(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeUnion)); +} + +__inline__ Status Region::Union(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeUnion)); +} + +__inline__ Status Region::Xor(const RectF& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRect( + nativeRegion, &rect, CombineModeXor)); +} + +__inline__ Status Region::Xor(const Rect& rect) +{ + return updateStatus(DllExports::GdipCombineRegionRectI( + nativeRegion, &rect, CombineModeXor)); +} + +__inline__ Status Region::Xor(const Region *region) +{ + return updateStatus(DllExports::GdipCombineRegionRegion( + nativeRegion, region ? region->nativeRegion : NULL, + CombineModeXor)); +} + +__inline__ Status Region::Xor(const GraphicsPath *path) +{ + return updateStatus(DllExports::GdipCombineRegionPath( + nativeRegion, path ? path->nativePath : NULL, + CombineModeXor)); +} + + +// GraphicsPath + +__inline__ BOOL GraphicsPath::IsOutlineVisible(REAL x, REAL y, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPoint( + nativePath, x, y, pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(INT x, INT y, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPointI( + nativePath, x, y, pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(const PointF& point, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPoint( + nativePath, point.X, point.Y, + pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsOutlineVisible(const Point& point, const Pen *pen, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsOutlineVisiblePathPointI( + nativePath, point.X, point.Y, + pen ? pen->nativePen : NULL, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(REAL x, REAL y, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPoint( + nativePath, x, y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} +__inline__ BOOL GraphicsPath::IsVisible(INT x, INT y, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPointI( + nativePath, x, y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(const PointF& point, + const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPoint( + nativePath, point.X, point.Y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + +__inline__ BOOL GraphicsPath::IsVisible(const Point& point, const Graphics *g) const +{ + BOOL result = FALSE; + updateStatus(DllExports::GdipIsVisiblePathPointI( + nativePath, point.X, point.Y, + g ? g->nativeGraphics : NULL, &result)); + return result; +} + + +// PathData + +__inline__ Status PathData::AllocateArrays(INT capacity) +{ + if (capacity < 0) { + return InvalidParameter; + } else if (Count < capacity) { + FreeArrays(); + + PointF *pointArray = (PointF*) + DllExports::GdipAlloc(capacity * sizeof(PointF)); + if (!pointArray) + return OutOfMemory; + + BYTE *typeArray = (BYTE*) + DllExports::GdipAlloc(capacity * sizeof(BYTE)); + if (!typeArray) { + DllExports::GdipFree(pointArray); + return OutOfMemory; + } + + Count = capacity; + Points = pointArray; + Types = typeArray; + } + return Ok; +} + +__inline__ VOID PathData::FreeArrays() +{ + if (Points) DllExports::GdipFree(Points); + if (Types) DllExports::GdipFree(Types); + Count = 0; + Points = NULL; + Types = NULL; +} + +#endif /* __GDIPLUS_IMPL_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusinit.h b/mingw-w64-headers/include/gdiplus/gdiplusinit.h new file mode 100644 index 0000000..e9276a6 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusinit.h
@@ -0,0 +1,74 @@ +/* + * gdiplusinit.h + * + * GDI+ Initialization + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_INIT_H +#define __GDIPLUS_INIT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef struct GdiplusStartupInput { + UINT32 GdiplusVersion; + DebugEventProc DebugEventCallback; + BOOL SuppressBackgroundThread; + BOOL SuppressExternalCodecs; + + #ifdef __cplusplus + GdiplusStartupInput(DebugEventProc debugEventCallback = NULL, + BOOL suppressBackgroundThread = FALSE, + BOOL suppressExternalCodecs = FALSE): + GdiplusVersion(1), + DebugEventCallback(debugEventCallback), + SuppressBackgroundThread(suppressBackgroundThread), + SuppressExternalCodecs(suppressExternalCodecs) {} + #endif /* __cplusplus */ +} GdiplusStartupInput; + +typedef GpStatus WINGDIPAPI (*NotificationHookProc)(ULONG_PTR *token); +typedef VOID WINGDIPAPI (*NotificationUnhookProc)(ULONG_PTR token); + +typedef struct GdiplusStartupOutput { + NotificationHookProc NotificationHook; + NotificationUnhookProc NotificationUnhook; + + #ifdef __cplusplus + GdiplusStartupOutput(): + NotificationHook(NULL), + NotificationUnhook(NULL) {} + #endif /* __cplusplus */ +} GdiplusStartupOutput; + +#ifdef __cplusplus +extern "C" { +#endif + +GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*); +VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR); +GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*); +VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + + +#endif /* __GDIPLUS_INIT_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluslinecaps.h b/mingw-w64-headers/include/gdiplus/gdipluslinecaps.h new file mode 100644 index 0000000..3134ede --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluslinecaps.h
@@ -0,0 +1,131 @@ +/* + * gdipluslinecaps.h + * + * GDI+ AdjustableArrowCap class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_LINECAPS_H +#define __GDIPLUS_LINECAPS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluslinecaps.h." +#endif + +class AdjustableArrowCap: public CustomLineCap +{ +public: + AdjustableArrowCap(REAL height, REAL width, BOOL isFilled): + CustomLineCap(NULL, Ok) + { + GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL; + lastStatus = DllExports::GdipCreateAdjustableArrowCap( + height, width, isFilled, + &nativeAdjustableArrowCap); + nativeCustomLineCap = nativeAdjustableArrowCap; + } + virtual ~AdjustableArrowCap() + { + } + virtual AdjustableArrowCap* Clone() const + { + GpCustomLineCap *cloneCustomLineCap = NULL; + Status status = updateStatus(DllExports::GdipCloneCustomLineCap( + nativeCustomLineCap, &cloneCustomLineCap)); + if (status == Ok) { + AdjustableArrowCap *result = new AdjustableArrowCap( + cloneCustomLineCap, lastStatus); + if (!result) { + DllExports::GdipDeleteCustomLineCap( + cloneCustomLineCap); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + REAL GetHeight() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapHeight( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + REAL GetMiddleInset() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + REAL GetWidth() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetAdjustableArrowCapWidth( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + BOOL IsFilled() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetAdjustableArrowCapFillState( + (GpAdjustableArrowCap*) nativeCustomLineCap, + &result)); + return result; + } + Status SetFillState(BOOL isFilled) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState( + (GpAdjustableArrowCap*) nativeCustomLineCap, + isFilled)); + } + Status SetHeight(REAL height) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight( + (GpAdjustableArrowCap*) nativeCustomLineCap, + height)); + } + Status SetMiddleInset(REAL middleInset) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset( + (GpAdjustableArrowCap*) nativeCustomLineCap, + middleInset)); + } + Status SetWidth(REAL width) + { + return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth( + (GpAdjustableArrowCap*) nativeCustomLineCap, + width)); + } + +private: + AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status): + CustomLineCap(customLineCap, status) {} + AdjustableArrowCap(const AdjustableArrowCap&); + AdjustableArrowCap& operator=(const AdjustableArrowCap&); +}; + +#endif /* __GDIPLUS_LINECAPS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusmatrix.h b/mingw-w64-headers/include/gdiplus/gdiplusmatrix.h new file mode 100644 index 0000000..7eb1064 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusmatrix.h
@@ -0,0 +1,240 @@ +/* + * gdiplusmatrix.h + * + * GDI+ Matrix class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_MATRIX_H +#define __GDIPLUS_MATRIX_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusmatrix.h." +#endif + +#define GDIP_MATRIX_PI \ + 3.1415926535897932384626433832795028841971693993751058209749445923078164 + +class Matrix: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + friend class LinearGradientBrush; + friend class PathGradientBrush; + friend class Pen; + friend class Region; + friend class TextureBrush; + +public: + Matrix(): nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix(&nativeMatrix); + } + Matrix(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix2( + m11, m12, m21, m22, dx, dy, + &nativeMatrix); + } + Matrix(const RectF& rect, const PointF *dstplg): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix3( + &rect, dstplg, &nativeMatrix); + } + Matrix(const Rect& rect, const Point *dstplg): + nativeMatrix(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateMatrix3I( + &rect, dstplg, &nativeMatrix); + } + ~Matrix() + { + DllExports::GdipDeleteMatrix(nativeMatrix); + } + Matrix* Clone() const + { + GpMatrix *cloneMatrix = NULL; + Status status = updateStatus(DllExports::GdipCloneMatrix( + nativeMatrix, &cloneMatrix)); + if (status == Ok) { + Matrix *result = new Matrix(cloneMatrix, lastStatus); + if (!result) { + DllExports::GdipDeleteMatrix(cloneMatrix); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + BOOL Equals(const Matrix *matrix) const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixEqual( + nativeMatrix, + matrix ? matrix->nativeMatrix : NULL, &result)); + return result; + } + Status GetElements(REAL *m) const + { + return updateStatus(DllExports::GdipGetMatrixElements( + nativeMatrix, m)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status Invert() + { + return updateStatus(DllExports::GdipInvertMatrix(nativeMatrix)); + } + BOOL IsIdentity() const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixIdentity( + nativeMatrix, &result)); + return result; + } + BOOL IsInvertible() const + { + BOOL result; + updateStatus(DllExports::GdipIsMatrixInvertible( + nativeMatrix, &result)); + return result; + } + Status Multiply(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyMatrix( + nativeMatrix, + matrix ? matrix->nativeMatrix : NULL, order)); + } + REAL OffsetX() const + { + REAL m[6]; + updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); + return m[4]; + } + REAL OffsetY() const + { + REAL m[6]; + updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); + return m[5]; + } + Status Reset() + { + return updateStatus(DllExports::GdipSetMatrixElements( + nativeMatrix, + 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f)); + } + Status Rotate(REAL angle, MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotateMatrix( + nativeMatrix, angle, order)); + } + Status RotateAt(REAL angle, const PointF& center, + MatrixOrder order = MatrixOrderPrepend) + { + REAL angleRadian = angle * GDIP_MATRIX_PI / 180.0f; + REAL cosAngle = ::cos(angleRadian); + REAL sinAngle = ::sin(angleRadian); + REAL x = center.X; + REAL y = center.Y; + + Matrix matrix2(cosAngle, sinAngle, -sinAngle, cosAngle, + x * (1.0f-cosAngle) + y * sinAngle, + -x * sinAngle + y * (1.0f-cosAngle)); + Status status = matrix2.GetLastStatus(); + if (status == Ok) { + return Multiply(&matrix2, order); + } else { + return lastStatus = status; + } + } + Status Scale(REAL scaleX, REAL scaleY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScaleMatrix( + nativeMatrix, scaleX, scaleY, order)); + } + Status SetElements(REAL m11, REAL m12, REAL m21, REAL m22, + REAL dx, REAL dy) + { + return updateStatus(DllExports::GdipSetMatrixElements( + nativeMatrix, m11, m12, m21, m22, dx, dy)); + } + Status Shear(REAL shearX, REAL shearY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipShearMatrix( + nativeMatrix, shearX, shearY, order)); + } + Status TransformPoints(PointF *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipTransformMatrixPoints( + nativeMatrix, pts, count)); + } + Status TransformPoints(Point *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipTransformMatrixPointsI( + nativeMatrix, pts, count)); + } + Status TransformVectors(PointF *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipVectorTransformMatrixPoints( + nativeMatrix, pts, count)); + } + Status TransformVectors(Point *pts, INT count = 1) const + { + return updateStatus(DllExports::GdipVectorTransformMatrixPointsI( + nativeMatrix, pts, count)); + } + Status Translate(REAL offsetX, REAL offsetY, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslateMatrix( + nativeMatrix, offsetX, offsetY, order)); + } + +private: + Matrix(GpMatrix *matrix, Status status): + nativeMatrix(matrix), lastStatus(status) {} + Matrix(const Matrix&); + Matrix& operator=(const Matrix&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpMatrix *nativeMatrix; + mutable Status lastStatus; +}; + +#undef GDIP_MATRIX_PI + +#endif /* __GDIPLUS_MATRIX_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusmem.h b/mingw-w64-headers/include/gdiplus/gdiplusmem.h new file mode 100644 index 0000000..51bb420 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusmem.h
@@ -0,0 +1,42 @@ +/* + * gdiplusmem.h + * + * GDI+ memory allocation + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_MEM_H +#define __GDIPLUS_MEM_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +namespace DllExports { +extern "C" { +#endif + +VOID* WINGDIPAPI GdipAlloc(size_t); +VOID WINGDIPAPI GdipFree(VOID*); + +#ifdef __cplusplus +} /* extern "C" */ +} /* namespace DllExports */ +#endif + +#endif /* __GDIPLUS_MEM_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusmetafile.h b/mingw-w64-headers/include/gdiplus/gdiplusmetafile.h new file mode 100644 index 0000000..f19fb14 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusmetafile.h
@@ -0,0 +1,305 @@ +/* + * gdiplusmetafile.h + * + * GDI+ Metafile class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_METAFILE_H +#define __GDIPLUS_METAFILE_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusmetafile.h." +#endif + +class Metafile: public Image +{ +public: + static UINT EmfToWmfBits(HENHMETAFILE hEmf, + UINT cbData16, LPBYTE pData16, + INT iMapMode = MM_ANISOTROPIC, + EmfToWmfBitsFlags eFlags = EmfToWmfBitsFlagsDefault) + { + return DllExports::GdipEmfToWmfBits(hEmf, + cbData16, pData16, iMapMode, eFlags); + } + static Status GetMetafileHeader(const WCHAR *filename, + MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromFile( + filename, header); + } + static Status GetMetafileHeader(IStream *stream, MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromStream( + stream, header); + } + ////TODO: Metafile::GetMetafileHeader + //static Status GetMetafileHeader(HMETAFILE hWmf, + // const WmfPlaceableFileHeader *wmfPlaceableFileHeader, + // MetafileHeader *header) + //{ + // // WTF: No flat API to do this. + // return NotImplemented; + //} + static Status GetMetafileHeader(HENHMETAFILE hEmf, + MetafileHeader *header) + { + return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header); + } + + Metafile(HMETAFILE hWmf, + const WmfPlaceableFileHeader *wmfPlaceableFileHeader, + BOOL deleteWmf = FALSE): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromWmf( + hWmf, deleteWmf, wmfPlaceableFileHeader, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HENHMETAFILE hEmf, BOOL deleteEmf = FALSE): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromEmf( + hEmf, deleteEmf, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromFile( + filename, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, + const WmfPlaceableFileHeader *wmfPlaceableFileHeader): + Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromWmfFile( + filename, wmfPlaceableFileHeader, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipCreateMetafileFromStream( + stream, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafile( + referenceHdc, type, NULL, MetafileFrameUnitGdi, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafile( + referenceHdc, type, &frameRect, frameUnit, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(HDC referenceHdc, const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileI( + referenceHdc, type, &frameRect, frameUnit, + description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileName( + filename, referenceHdc, type, NULL, + MetafileFrameUnitGdi, description, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileName( + filename, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(const WCHAR *filename, HDC referenceHdc, + const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileFileNameI( + filename, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStream( + stream, referenceHdc, type, NULL, + MetafileFrameUnitGdi, description, + &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, const RectF& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStream( + stream, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + Metafile(IStream *stream, HDC referenceHdc, const Rect& frameRect, + MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, + EmfType type = EmfTypeEmfPlusDual, + const WCHAR *description = NULL): Image(NULL, Ok) + { + GpMetafile *nativeMetafile = NULL; + lastStatus = DllExports::GdipRecordMetafileStreamI( + stream, referenceHdc, type, &frameRect, + frameUnit, description, &nativeMetafile); + nativeImage = nativeMetafile; + } + virtual ~Metafile() + { + } + virtual Metafile* Clone() const + { + GpImage *cloneImage = NULL; + Status status = updateStatus(DllExports::GdipCloneImage( + nativeImage, &cloneImage)); + if (status == Ok) { + Metafile *result = new Metafile(cloneImage, lastStatus); + if (!result) { + DllExports::GdipDisposeImage(cloneImage); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlus because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlus( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, + // conversionSuccess, emfType, description, ???)); + //} + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // const WCHAR *filename, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlusToFile because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlusToFile( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, conversionSuccess, + // filename, emfType, description, ???)); + //} + ////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus + //Status ConvertToEmfPlus(const Graphics *refGraphics, + // IStream *stream, + // BOOL *conversionSuccess = NULL, + // EmfType emfType = EmfTypeEmfPlusOnly, + // const WCHAR *description = NULL) + //{ + // // FIXME: can't test GdipConvertToEmfPlusToStream because it isn't exported in 1.0 + // return updateStatus(DllExports::GdipConvertToEmfPlusToStream( + // refGraphics ? refGraphics->nativeGraphics : NULL, + // (GpMetafile*) nativeImage, conversionSuccess, + // stream, emfType, description, ???)); + //} + UINT GetDownLevelRasterizationLimit() const + { + UINT result = 0; + updateStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit( + (GpMetafile*) nativeImage, &result)); + return result; + } + HENHMETAFILE GetHENHMETAFILE() + { + HENHMETAFILE result = NULL; + updateStatus(DllExports::GdipGetHemfFromMetafile( + (GpMetafile*) nativeImage, &result)); + return result; + } + Status GetMetafileHeader(MetafileHeader *header) const + { + return updateStatus(DllExports::GdipGetMetafileHeaderFromMetafile( + (GpMetafile*) nativeImage, header)); + } + Status PlayRecord(EmfPlusRecordType recordType, UINT flags, + UINT dataSize, const BYTE *data) const + { + return updateStatus(DllExports::GdipPlayMetafileRecord( + (GpMetafile*) nativeImage, + recordType, flags, dataSize, data)); + } + Status SetDownLevelRasterizationLimit(UINT limitDpi) + { + return updateStatus(DllExports::GdipSetMetafileDownLevelRasterizationLimit( + (GpMetafile*) nativeImage, limitDpi)); + } + +private: + Metafile(GpImage *image, Status status): Image(image, status) {} + Metafile(const Metafile&); + Metafile& operator=(const Metafile&); +}; + +#endif /* __GDIPLUS_METAFILE_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusmetaheader.h b/mingw-w64-headers/include/gdiplus/gdiplusmetaheader.h new file mode 100644 index 0000000..499d7a9 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusmetaheader.h
@@ -0,0 +1,193 @@ +/* + * gdiplusmetaheader.h + * + * GDI+ metafile header structure + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_METAHEADER_H +#define __GDIPLUS_METAHEADER_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + + +/* + * FIXME: is 1 the correct value for GDIP_EMFPLUSFLAGS_DISPLAY? This number + * has been determined by calling Metafile::GetMetafileHeader() on a EMF+ + * metafile which was recorded on a display device context (SampleMetafile.emf). + */ +#ifdef __cplusplus +const UINT GDIP_EMFPLUSFLAGS_DISPLAY = 1; +#else +#define GDIP_EMFPLUSFLAGS_DISPLAY ((UINT) 1) +#endif + +typedef struct tagENHMETAHEADER3 { + DWORD iType; + DWORD nSize; + RECTL rclBounds; + RECTL rclFrame; + DWORD dSignature; + DWORD nVersion; + DWORD nBytes; + DWORD nRecords; + WORD nHandles; + WORD sReserved; + DWORD nDescription; + DWORD offDescription; + DWORD nPalEntries; + SIZEL szlDevice; + SIZEL szlMillimeters; +} ENHMETAHEADER3,*LPENHMETAHEADER3; + +typedef struct PWMFRect16 { + INT16 Left; + INT16 Top; + INT16 Right; + INT16 Bottom; +} PWMFRect16; + +typedef struct WmfPlaceableFileHeader { + UINT32 Key; + INT16 Hmf; + PWMFRect16 BoundingBox; + INT16 Inch; + UINT32 Reserved; + INT16 Checksum; +} WmfPlaceableFileHeader; + +typedef struct MetafileHeader { + MetafileType Type; + UINT Size; + UINT Version; + UINT EmfPlusFlags; + REAL DpiX; + REAL DpiY; + INT X; + INT Y; + INT Width; + INT Height; + __extension__ union { + METAHEADER WmfHeader; + ENHMETAHEADER3 EmfHeader; + }; + INT EmfPlusHeaderSize; + INT LogicalDpiX; + INT LogicalDpiY; + + #ifdef __cplusplus + public: + void GetBounds(Rect *rect) const + { + if (rect) + { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + REAL GetDpiX() const + { + return DpiX; + } + REAL GetDpiY() const + { + return DpiY; + } + const ENHMETAHEADER3* GetEmfHeader() const + { + if (Type == MetafileTypeEmf + || Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual) + { + return &EmfHeader; + } + else + { + return NULL; + } + } + UINT GetEmfPlusFlags() const + { + return EmfPlusFlags; + } + UINT GetMetafileSize() const + { + return Size; + } + MetafileType GetType() const + { + return Type; + } + UINT GetVersion() const + { + return Version; + } + const METAHEADER* GetWmfHeader() const + { + if (Type == MetafileTypeWmf || Type == MetafileTypeWmfPlaceable) + { + return &WmfHeader; + } + else + { + return NULL; + } + } + BOOL IsDisplay() const + { + return EmfPlusFlags == GDIP_EMFPLUSFLAGS_DISPLAY; + } + BOOL IsEmf() const + { + return Type == MetafileTypeEmf; + } + BOOL IsEmfOrEmfPlus() const + { + return Type == MetafileTypeEmf + || Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlus() const + { + return Type == MetafileTypeEmfPlusOnly + || Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlusDual() const + { + return Type == MetafileTypeEmfPlusDual; + } + BOOL IsEmfPlusOnly() const + { + return Type == MetafileTypeEmfPlusOnly; + } + BOOL IsWmf() const + { + return Type == MetafileTypeWmf + || Type == MetafileTypeWmfPlaceable; + } + BOOL IsWmfPlaceable() const + { + return Type == MetafileTypeWmfPlaceable; + } + #endif +} MetafileHeader; + +#endif /* __GDIPLUS_METAHEADER_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluspath.h b/mingw-w64-headers/include/gdiplus/gdipluspath.h new file mode 100644 index 0000000..393d917 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluspath.h
@@ -0,0 +1,964 @@ +/* + * gdipluspath.h + * + * GDI+ GraphicsPath class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PATH_H +#define __GDIPLUS_PATH_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluspath.h." +#endif + +// Note that some methods of GraphicsPath are implemented in gdiplusimpl.h. +// This avoids a cyclic dependency on Graphics and Pen. + +class GraphicsPath: public GdiplusBase +{ + friend class CustomLineCap; + friend class Graphics; + friend class GraphicsPathIterator; + friend class PathGradientBrush; + friend class Region; + +public: + GraphicsPath(FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath(fillMode, &nativePath); + } + GraphicsPath(const PointF *points, const BYTE *types, INT count, + FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath2( + points, types, count, fillMode, &nativePath); + } + GraphicsPath(const Point *points, const BYTE *types, INT count, + FillMode fillMode = FillModeAlternate): + nativePath(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePath2I( + points, types, count, fillMode, &nativePath); + } + ~GraphicsPath() + { + DllExports::GdipDeletePath(nativePath); + } + GraphicsPath* Clone() const + { + GpPath *clonePath = NULL; + Status status = updateStatus(DllExports::GdipClonePath( + nativePath, &clonePath)); + if (status == Ok) { + GraphicsPath *result = new GraphicsPath(clonePath, lastStatus); + if (!result) { + DllExports::GdipDeletePath(clonePath); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + Status AddArc(REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArc(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddArc(INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArcI(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddArc(const RectF& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArc(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddArc(const Rect& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathArcI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddBezier(REAL x1, REAL y1, REAL x2, REAL y2, + REAL x3, REAL y3, REAL x4, REAL y4) + { + return updateStatus(DllExports::GdipAddPathBezier(nativePath, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status AddBezier(INT x1, INT y1, INT x2, INT y2, + INT x3, INT y3, INT x4, INT y4) + { + return updateStatus(DllExports::GdipAddPathBezierI(nativePath, + x1, y1, x2, y2, x3, y3, x4, y4)); + } + Status AddBezier(const PointF& pt1, const PointF& pt2, + const PointF& pt3, const PointF& pt4) + { + return updateStatus(DllExports::GdipAddPathBezier(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status AddBezier(const Point& pt1, const Point& pt2, + const Point& pt3, const Point& pt4) + { + return updateStatus(DllExports::GdipAddPathBezierI(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y, + pt3.X, pt3.Y, pt4.X, pt4.Y)); + } + Status AddBeziers(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathBeziers( + nativePath, points, count)); + } + Status AddBeziers(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathBeziersI( + nativePath, points, count)); + } + Status AddClosedCurve(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathClosedCurve( + nativePath, points, count)); + } + Status AddClosedCurve(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathClosedCurveI( + nativePath, points, count)); + } + Status AddClosedCurve(const PointF *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathClosedCurve2( + nativePath, points, count, tension)); + } + Status AddClosedCurve(const Point *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathClosedCurve2I( + nativePath, points, count, tension)); + } + Status AddCurve(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathCurve( + nativePath, points, count)); + } + Status AddCurve(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathCurveI( + nativePath, points, count)); + } + Status AddCurve(const PointF *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve2( + nativePath, points, count, tension)); + } + Status AddCurve(const Point *points, INT count, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve2I( + nativePath, points, count, tension)); + } + Status AddCurve(const PointF *points, INT count, INT offset, + INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve3( + nativePath, points, count, + offset, numberOfSegments, tension)); + } + Status AddCurve(const Point *points, INT count, INT offset, + INT numberOfSegments, REAL tension) + { + return updateStatus(DllExports::GdipAddPathCurve3I( + nativePath, points, count, + offset, numberOfSegments, tension)); + } + Status AddEllipse(REAL x, REAL y, REAL width, REAL height) + { + return updateStatus(DllExports::GdipAddPathEllipse(nativePath, + x, y, width, height)); + } + Status AddEllipse(INT x, INT y, INT width, INT height) + { + return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, + x, y, width, height)); + } + Status AddEllipse(const RectF& rect) + { + return updateStatus(DllExports::GdipAddPathEllipse(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddEllipse(const Rect& rect) + { + return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddLine(REAL x1, REAL y1, REAL x2, REAL y2) + { + return updateStatus(DllExports::GdipAddPathLine(nativePath, + x1, y1, x2, y2)); + } + Status AddLine(INT x1, INT y1, INT x2, INT y2) + { + return updateStatus(DllExports::GdipAddPathLineI(nativePath, + x1, y1, x2, y2)); + } + Status AddLine(const PointF& pt1, const PointF& pt2) + { + return updateStatus(DllExports::GdipAddPathLine(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status AddLine(const Point& pt1, const Point& pt2) + { + return updateStatus(DllExports::GdipAddPathLineI(nativePath, + pt1.X, pt1.Y, pt2.X, pt2.Y)); + } + Status AddLines(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathLine2(nativePath, + points, count)); + } + Status AddLines(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathLine2I(nativePath, + points, count)); + } + Status AddPath(const GraphicsPath *addingPath, BOOL connect) + { + return updateStatus(DllExports::GdipAddPathPath(nativePath, + addingPath ? addingPath->nativePath : NULL, + connect)); + } + Status AddPie(REAL x, REAL y, REAL width, REAL height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPie(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddPie(INT x, INT y, INT width, INT height, + REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPieI(nativePath, + x, y, width, height, startAngle, sweepAngle)); + } + Status AddPie(const RectF& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPie(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddPie(const Rect& rect, REAL startAngle, REAL sweepAngle) + { + return updateStatus(DllExports::GdipAddPathPieI(nativePath, + rect.X, rect.Y, rect.Width, rect.Height, + startAngle, sweepAngle)); + } + Status AddPolygon(const PointF *points, INT count) + { + return updateStatus(DllExports::GdipAddPathPolygon(nativePath, + points, count)); + } + Status AddPolygon(const Point *points, INT count) + { + return updateStatus(DllExports::GdipAddPathPolygonI(nativePath, + points, count)); + } + Status AddRectangle(const RectF& rect) + { + return updateStatus(DllExports::GdipAddPathRectangle(nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddRectangle(const Rect& rect) + { + return updateStatus(DllExports::GdipAddPathRectangleI( + nativePath, + rect.X, rect.Y, rect.Width, rect.Height)); + } + Status AddRectangles(const RectF *rects, INT count) + { + return updateStatus(DllExports::GdipAddPathRectangles( + nativePath, rects, count)); + } + Status AddRectangles(const Rect *rects, INT count) + { + return updateStatus(DllExports::GdipAddPathRectanglesI( + nativePath, rects, count)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const PointF& origin, const StringFormat *format) + { + RectF layoutRect(origin, SizeF(0.0f, 0.0f)); + return updateStatus(DllExports::GdipAddPathString(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const Point& origin, const StringFormat *format) + { + Rect layoutRect(origin, Size(0, 0)); + return updateStatus(DllExports::GdipAddPathStringI(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const RectF& layoutRect, const StringFormat *format) + { + return updateStatus(DllExports::GdipAddPathString(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status AddString(const WCHAR *string, INT length, + const FontFamily *family, INT style, REAL emSize, + const Rect& layoutRect, const StringFormat *format) + { + return updateStatus(DllExports::GdipAddPathStringI(nativePath, + string, length, + family ? family->nativeFontFamily : NULL, + style, emSize, &layoutRect, + format ? format->nativeStringFormat : NULL)); + } + Status ClearMarkers() + { + return updateStatus(DllExports::GdipClearPathMarkers( + nativePath)); + } + Status CloseAllFigures() + { + return updateStatus(DllExports::GdipClosePathFigures( + nativePath)); + } + Status CloseFigure() + { + return updateStatus(DllExports::GdipClosePathFigure( + nativePath)); + } + Status Flatten(const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipFlattenPath(nativePath, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + Status GetBounds(RectF *bounds, const Matrix *matrix = NULL, + const Pen *pen = NULL) const + { + return updateStatus(DllExports::GdipGetPathWorldBounds( + nativePath, bounds, + matrix ? matrix->nativeMatrix : NULL, + pen ? pen->nativePen : NULL)); + } + Status GetBounds(Rect *bounds, const Matrix *matrix = NULL, + const Pen *pen = NULL) const + { + return updateStatus(DllExports::GdipGetPathWorldBoundsI( + nativePath, bounds, + matrix ? matrix->nativeMatrix : NULL, + pen ? pen->nativePen : NULL)); + } + FillMode GetFillMode() const + { + FillMode result = FillModeAlternate; + updateStatus(DllExports::GdipGetPathFillMode(nativePath, + &result)); + return result; + } + Status GetLastPoint(PointF *lastPoint) const + { + return updateStatus(DllExports::GdipGetPathLastPoint( + nativePath, lastPoint)); + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + Status GetPathData(PathData *pathData) const + { + if (!pathData) return lastStatus = InvalidParameter; + + Status status; + INT count; + + status = updateStatus(DllExports::GdipGetPointCount( + nativePath, &count)); + if (status != Ok) return status; + + status = updateStatus(pathData->AllocateArrays(count)); + if (status != Ok) return status; + + return updateStatus(DllExports::GdipGetPathData( + nativePath, (GpPathData*) pathData)); + } + Status GetPathPoints(PointF *points, INT count) const + { + return updateStatus(DllExports::GdipGetPathPoints(nativePath, + points, count)); + } + Status GetPathPoints(Point *points, INT count) const + { + return updateStatus(DllExports::GdipGetPathPointsI(nativePath, + points, count)); + } + Status GetPathTypes(BYTE *types, INT count) const + { + return updateStatus(DllExports::GdipGetPathTypes(nativePath, + types, count)); + } + INT GetPointCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPointCount(nativePath, + &result)); + return result; + } + BOOL IsOutlineVisible(REAL x, REAL y, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(INT x, INT y, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(const PointF& point, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsOutlineVisible(const Point& point, const Pen *pen, + const Graphics *g = NULL) const; + BOOL IsVisible(REAL x, REAL y, const Graphics *g = NULL) const; + BOOL IsVisible(INT x, INT y, const Graphics *g = NULL) const; + BOOL IsVisible(const PointF& point, const Graphics *g = NULL) const; + BOOL IsVisible(const Point& point, const Graphics *g = NULL) const; + Status Outline(const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWindingModeOutline( + nativePath, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + Status Reset() + { + return updateStatus(DllExports::GdipResetPath(nativePath)); + } + Status Reverse() + { + return updateStatus(DllExports::GdipReversePath(nativePath)); + } + Status SetFillMode(FillMode fillMode) + { + return updateStatus(DllExports::GdipSetPathFillMode( + nativePath, fillMode)); + } + Status SetMarker() + { + return updateStatus(DllExports::GdipSetPathMarker(nativePath)); + } + Status StartFigure() + { + return updateStatus(DllExports::GdipStartPathFigure( + nativePath)); + } + Status Transform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipTransformPath( + nativePath, + matrix ? matrix->nativeMatrix : NULL)); + } + Status Warp(const PointF *destPoints, INT count, const RectF& srcRect, + const Matrix *matrix = NULL, + WarpMode warpMode = WarpModePerspective, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWarpPath(nativePath, + matrix ? matrix->nativeMatrix : NULL, + destPoints, count, + srcRect.X, srcRect.Y, + srcRect.Width, srcRect.Height, + warpMode, flatness)); + } + Status Widen(const Pen *pen, const Matrix *matrix = NULL, + REAL flatness = FlatnessDefault) + { + return updateStatus(DllExports::GdipWidenPath(nativePath, + pen ? pen->nativePen : NULL, + matrix ? matrix->nativeMatrix : NULL, + flatness)); + } + +private: + GraphicsPath(GpPath *path, Status status): + nativePath(path), lastStatus(status) {} + GraphicsPath(const GraphicsPath&); + GraphicsPath& operator=(const GraphicsPath&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPath *nativePath; + mutable Status lastStatus; +}; + +class GraphicsPathIterator: public GdiplusBase +{ +public: + GraphicsPathIterator(GraphicsPath *path): + nativePathIterator(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePathIter( + &nativePathIterator, + path ? path->nativePath : NULL); + } + ~GraphicsPathIterator() + { + DllExports::GdipDeletePathIter(nativePathIterator); + } + + INT CopyData(PointF *points, BYTE *types, INT startIndex, INT endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterCopyData( + nativePathIterator, &result, + points, types, startIndex, endIndex)); + return result; + } + INT Enumerate(PointF *points, BYTE *types, INT count) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterEnumerate( + nativePathIterator, &result, + points, types, count)); + return result; + } + INT GetCount() const + { + INT result = 0; + updateStatus(DllExports::GdipPathIterGetCount( + nativePathIterator, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + INT GetSubpathCount() const + { + INT result = 0; + updateStatus(DllExports::GdipPathIterGetSubpathCount( + nativePathIterator, &result)); + return result; + } + BOOL HasCurve() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipPathIterHasCurve( + nativePathIterator, &result)); + return result; + } + INT NextMarker(INT *startIndex, INT *endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextMarker( + nativePathIterator, &result, + startIndex, endIndex)); + return result; + } + INT NextMarker(GraphicsPath *path) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextMarkerPath( + nativePathIterator, &result, + path ? path->nativePath : NULL)); + return result; + } + INT NextPathType(BYTE *pathType, INT *startIndex, INT *endIndex) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextPathType( + nativePathIterator, &result, + pathType, startIndex, endIndex)); + return result; + } + INT NextSubpath(INT *startIndex, INT *endIndex, BOOL *isClosed) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextSubpath( + nativePathIterator, &result, + startIndex, endIndex, isClosed)); + return result; + } + INT NextSubpath(GraphicsPath *path, BOOL *isClosed) + { + INT result = 0; + updateStatus(DllExports::GdipPathIterNextSubpathPath( + nativePathIterator, &result, + path ? path->nativePath : NULL, isClosed)); + return result; + } + VOID Rewind() + { + updateStatus(DllExports::GdipPathIterRewind( + nativePathIterator)); + } + +private: + GraphicsPathIterator(GpPathIterator *pathIterator, Status status): + nativePathIterator(pathIterator), lastStatus(status) {} + GraphicsPathIterator(const GraphicsPathIterator&); + GraphicsPathIterator& operator=(const GraphicsPathIterator&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPathIterator *nativePathIterator; + mutable Status lastStatus; +}; + +class PathGradientBrush: public Brush +{ +public: + PathGradientBrush(const PointF *points, INT count, + WrapMode wrapMode = WrapModeClamp) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradient( + points, count, wrapMode, &nativePathGradient); + nativeBrush = nativePathGradient; + } + PathGradientBrush(const Point *points, INT count, + WrapMode wrapMode = WrapModeClamp) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradientI( + points, count, wrapMode, &nativePathGradient); + nativeBrush = nativePathGradient; + } + PathGradientBrush(const GraphicsPath *path) + { + GpPathGradient *nativePathGradient = NULL; + lastStatus = DllExports::GdipCreatePathGradientFromPath( + path ? path->nativePath : NULL, + &nativePathGradient); + nativeBrush = nativePathGradient; + } + virtual PathGradientBrush *Clone() const + { + GpBrush *cloneBrush = NULL; + Status status = updateStatus(DllExports::GdipCloneBrush( + nativeBrush, &cloneBrush)); + if (status == Ok) { + PathGradientBrush *result = + new PathGradientBrush(cloneBrush, lastStatus); + if (!result) { + DllExports::GdipDeleteBrush(cloneBrush); + updateStatus(OutOfMemory); + } + return result; + } else { + return NULL; + } + } + + Status GetBlend(REAL *blendFactors, REAL *blendPositions, + INT count) const + { + return updateStatus(DllExports::GdipGetPathGradientBlend( + (GpPathGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + INT GetBlendCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientBlendCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetCenterColor(Color *color) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterColor( + (GpPathGradient*) nativeBrush, + color ? &color->Value : NULL)); + } + Status GetCenterPoint(PointF *point) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterPoint( + (GpPathGradient*) nativeBrush, point)); + } + Status GetCenterPoint(Point *point) const + { + return updateStatus(DllExports::GdipGetPathGradientCenterPointI( + (GpPathGradient*) nativeBrush, point)); + } + Status GetFocusScales(REAL *xScale, REAL *yScale) const + { + return updateStatus(DllExports::GdipGetPathGradientFocusScales( + (GpPathGradient*) nativeBrush, xScale, yScale)); + } + BOOL GetGammaCorrection() const + { + BOOL result = FALSE; + updateStatus(DllExports::GdipGetPathGradientGammaCorrection( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + //Status GetGraphicsPath(GraphicsPath *path) const + //{ + // // TODO: implement PathGradientBrush::GetGraphicsPath + // return updateStatus(NotImplemented); + //} + INT GetInterpolationColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientPresetBlendCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetInterpolationColors(Color *presetColors, + REAL *blendPositions, INT count) const + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetPathGradientPresetBlend( + (GpPathGradient*) nativeBrush, + presetArgb, blendPositions, count)); + for (INT i = 0; i < count; ++i) { + presetColors[i].SetValue(presetArgb[i]); + } + DllExports::GdipFree((void*) presetArgb); + return status; + } + INT GetPointCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientPointCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetRectangle(RectF *rect) const + { + return updateStatus(DllExports::GdipGetPathGradientRect( + (GpPathGradient*) nativeBrush, rect)); + } + Status GetRectangle(Rect *rect) const + { + return updateStatus(DllExports::GdipGetPathGradientRectI( + (GpPathGradient*) nativeBrush, rect)); + } + INT GetSurroundColorCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPathGradientSurroundColorCount( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status GetSurroundColors(Color *colors, INT *count) + { + if (!colors || !count || *count <= 0) + return lastStatus = InvalidParameter; + + ARGB *colorsArgb = + (ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); + if (!colorsArgb) + return lastStatus = OutOfMemory; + + Status status = updateStatus(DllExports::GdipGetPathGradientSurroundColorsWithCount( + (GpPathGradient*) nativeBrush, + colorsArgb, count)); + for (INT i = 0; i < *count; ++i) { + colors[i].SetValue(colorsArgb[i]); + } + DllExports::GdipFree((void*) colorsArgb); + return status; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + WrapMode GetWrapMode() const + { + WrapMode result = WrapModeTile; + updateStatus(DllExports::GdipGetPathGradientWrapMode( + (GpPathGradient*) nativeBrush, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetPathGradientTransform( + (GpPathGradient*) nativeBrush)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotatePathGradientTransform( + (GpPathGradient*) nativeBrush, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScalePathGradientTransform( + (GpPathGradient*) nativeBrush, sx, sy, order)); + } + Status SetBlend(REAL *blendFactors, REAL *blendPositions, INT count) + { + return updateStatus(DllExports::GdipSetPathGradientBlend( + (GpPathGradient*) nativeBrush, + blendFactors, blendPositions, count)); + } + Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetPathGradientSigmaBlend( + (GpPathGradient*) nativeBrush, focus, scale)); + } + Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) + { + return updateStatus(DllExports::GdipSetPathGradientLinearBlend( + (GpPathGradient*) nativeBrush, focus, scale)); + } + Status SetCenterColor(const Color& color) + { + return updateStatus(DllExports::GdipSetPathGradientCenterColor( + (GpPathGradient*) nativeBrush, + color.GetValue())); + } + Status SetCenterPoint(const PointF& point) + { + return updateStatus(DllExports::GdipSetPathGradientCenterPoint( + (GpPathGradient*) nativeBrush, &point)); + } + Status SetCenterPoint(const Point& point) + { + return updateStatus(DllExports::GdipSetPathGradientCenterPointI( + (GpPathGradient*) nativeBrush, &point)); + } + Status SetFocusScales(REAL xScale, REAL yScale) + { + return updateStatus(DllExports::GdipSetPathGradientFocusScales( + (GpPathGradient*) nativeBrush, xScale, yScale)); + } + Status SetGammaCorrection(BOOL useGammaCorrection) + { + return updateStatus(DllExports::GdipSetPathGradientGammaCorrection( + (GpPathGradient*) nativeBrush, + useGammaCorrection)); + } + //Status SetGraphicsPath(const GraphicsPath *path) + //{ + // // TODO: implement PathGradientBrush::SetGraphicsPath + // return updateStatus(NotImplemented); + //} + Status SetInterpolationColors(const Color *presetColors, + REAL *blendPositions, INT count) + { + if (!presetColors || count <= 0) + return lastStatus = InvalidParameter; + + ARGB *presetArgb = + (ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); + if (!presetArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < count; ++i) { + presetArgb[i] = presetColors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetPathGradientPresetBlend( + (GpPathGradient*) nativeBrush, + presetArgb, blendPositions, count)); + DllExports::GdipFree((void*) presetArgb); + return status; + } + Status SetSurroundColors(const Color *colors, INT *count) + { + if (!colors || !count || *count <= 0) + return lastStatus = InvalidParameter; + + ARGB *colorsArgb = + (ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); + if (!colorsArgb) + return lastStatus = OutOfMemory; + for (INT i = 0; i < *count; ++i) { + colorsArgb[i] = colors[i].GetValue(); + } + + Status status = updateStatus(DllExports::GdipSetPathGradientSurroundColorsWithCount( + (GpPathGradient*) nativeBrush, + colorsArgb, count)); + DllExports::GdipFree((void*) colorsArgb); + return status; + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetPathGradientTransform( + (GpPathGradient*) nativeBrush, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWrapMode(WrapMode wrapMode) + { + return updateStatus(DllExports::GdipSetPathGradientWrapMode( + (GpPathGradient*) nativeBrush, wrapMode)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslatePathGradientTransform( + (GpPathGradient*) nativeBrush, dx, dy, order)); + } + +private: + PathGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} + PathGradientBrush(const PathGradientBrush&); + PathGradientBrush& operator=(const PathGradientBrush&); +}; + + + +#endif /* __GDIPLUS_PATH_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluspen.h b/mingw-w64-headers/include/gdiplus/gdipluspen.h new file mode 100644 index 0000000..d7efed6 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluspen.h
@@ -0,0 +1,338 @@ +/* + * gdipluspen.h + * + * GDI+ Pen class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PEN_H +#define __GDIPLUS_PEN_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdipluspen.h." +#endif + +class Pen: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + +public: + Pen(const Color& color, REAL width = 1.0f): + nativePen(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePen1( + color.GetValue(), width, UnitWorld, + &nativePen); + } + Pen(const Brush *brush, REAL width = 1.0f): + nativePen(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreatePen2( + brush ? brush->nativeBrush : NULL, + width, UnitWorld, &nativePen); + } + ~Pen() + { + DllExports::GdipDeletePen(nativePen); + } + Pen* Clone() const + { + GpPen *clonePen = NULL; + Status status = updateStatus(DllExports::GdipClonePen( + nativePen, &clonePen)); + if (status == Ok) { + Pen *result = new Pen(clonePen, lastStatus); + if (!result) { + DllExports::GdipDeletePen(clonePen); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + PenAlignment GetAlignment() const + { + PenAlignment result = PenAlignmentCenter; + updateStatus(DllExports::GdipGetPenMode(nativePen, &result)); + return result; + } + // TODO: implement Pen::GetBrush() + //Brush *GetBrush() const + //{ + // // where is the pen brush allocated (static,member,new,other)? + // // GdipGetPenBrushFill just returns a GpBrush* + // updateStatus(NotImplemented); + // return NULL; + //} + Status GetColor(Color *color) const + { + return updateStatus(DllExports::GdipGetPenColor( + nativePen, color ? &color->Value : NULL)); + } + Status GetCompoundArray(REAL *compoundArray, INT count) const + { + return updateStatus(DllExports::GdipGetPenCompoundArray( + nativePen, compoundArray, count)); + } + INT GetCompoundArrayCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPenCompoundCount( + nativePen, &result)); + return result; + } + Status GetCustomEndCap(CustomLineCap *customCap) const + { + if (!customCap) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteCustomLineCap first? + return updateStatus(DllExports::GdipGetPenCustomEndCap( + nativePen, &customCap->nativeCustomLineCap)); + } + Status GetCustomStartCap(CustomLineCap *customCap) const + { + if (!customCap) return lastStatus = InvalidParameter; + // FIXME: do we need to call GdipDeleteCustomLineCap first? + return updateStatus(DllExports::GdipGetPenCustomStartCap( + nativePen, &customCap->nativeCustomLineCap)); + } + DashCap GetDashCap() const + { + DashCap result = DashCapFlat; + updateStatus(DllExports::GdipGetPenDashCap197819( + nativePen, &result)); + return result; + } + REAL GetDashOffset() const + { + REAL result = 0.0f; + updateStatus(DllExports::GdipGetPenDashOffset( + nativePen, &result)); + return result; + } + Status GetDashPattern(REAL *dashArray, INT count) const + { + return updateStatus(DllExports::GdipGetPenDashArray( + nativePen, dashArray, count)); + } + INT GetDashPatternCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetPenDashCount( + nativePen, &result)); + return result; + } + DashStyle GetDashStyle() const + { + DashStyle result = DashStyleSolid; + updateStatus(DllExports::GdipGetPenDashStyle( + nativePen, &result)); + return result; + } + LineCap GetEndCap() const + { + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetPenEndCap(nativePen, &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + LineJoin GetLineJoin() const + { + LineJoin result = LineJoinMiter; + updateStatus(DllExports::GdipGetPenLineJoin( + nativePen, &result)); + return result; + } + REAL GetMiterLimit() const + { + REAL result = 10.0f; + updateStatus(DllExports::GdipGetPenMiterLimit( + nativePen, &result)); + return result; + } + PenType GetPenType() const + { + PenType result = PenTypeUnknown; + updateStatus(DllExports::GdipGetPenFillType( + nativePen, &result)); + return result; + } + LineCap GetStartCap() const + { + LineCap result = LineCapFlat; + updateStatus(DllExports::GdipGetPenStartCap( + nativePen, &result)); + return result; + } + Status GetTransform(Matrix *matrix) const + { + return updateStatus(DllExports::GdipGetPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL)); + } + REAL GetWidth() const + { + REAL result = 1.0f; + updateStatus(DllExports::GdipGetPenWidth(nativePen, &result)); + return result; + } + Status MultiplyTransform(const Matrix *matrix, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipMultiplyPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL, order)); + } + Status ResetTransform() + { + return updateStatus(DllExports::GdipResetPenTransform( + nativePen)); + } + Status RotateTransform(REAL angle, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipRotatePenTransform( + nativePen, angle, order)); + } + Status ScaleTransform(REAL sx, REAL sy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipScalePenTransform( + nativePen, sx, sy, order)); + } + Status SetAlignment(PenAlignment penAlignment) + { + return updateStatus(DllExports::GdipSetPenMode( + nativePen, penAlignment)); + } + Status SetBrush(const Brush *brush) + { + return updateStatus(DllExports::GdipSetPenBrushFill( + nativePen, brush ? brush->nativeBrush : NULL)); + } + Status SetColor(const Color& color) + { + return updateStatus(DllExports::GdipSetPenColor( + nativePen, color.GetValue())); + } + Status SetCompoundArray(const REAL *compoundArray, INT count) + { + return updateStatus(DllExports::GdipSetPenCompoundArray( + nativePen, compoundArray, count)); + } + Status SetCustomEndCap(const CustomLineCap *customCap) + { + return updateStatus(DllExports::GdipSetPenCustomEndCap( + nativePen, + customCap ? customCap->nativeCustomLineCap : NULL)); + } + Status SetCustomStartCap(const CustomLineCap *customCap) + { + return updateStatus(DllExports::GdipSetPenCustomStartCap( + nativePen, + customCap ? customCap->nativeCustomLineCap : NULL)); + } + Status SetDashCap(DashCap dashCap) + { + return updateStatus(DllExports::GdipSetPenDashCap197819( + nativePen, dashCap)); + } + Status SetDashOffset(REAL dashOffset) + { + return updateStatus(DllExports::GdipSetPenDashOffset( + nativePen, dashOffset)); + } + Status SetDashPattern(const REAL *dashArray, INT count) + { + return updateStatus(DllExports::GdipSetPenDashArray( + nativePen, dashArray, count)); + } + Status SetDashStyle(DashStyle dashStyle) + { + return updateStatus(DllExports::GdipSetPenDashStyle( + nativePen, dashStyle)); + } + Status SetEndCap(LineCap endCap) + { + return updateStatus(DllExports::GdipSetPenEndCap( + nativePen, endCap)); + } + Status SetLineCap(LineCap startCap, LineCap endCap, DashCap dashCap) + { + return updateStatus(DllExports::GdipSetPenLineCap197819( + nativePen, startCap, endCap, dashCap)); + } + Status SetLineJoin(LineJoin lineJoin) + { + return updateStatus(DllExports::GdipSetPenLineJoin( + nativePen, lineJoin)); + } + Status SetMiterLimit(REAL miterLimit) + { + return updateStatus(DllExports::GdipSetPenMiterLimit( + nativePen, miterLimit)); + } + Status SetStartCap(LineCap startCap) + { + return updateStatus(DllExports::GdipSetPenStartCap( + nativePen, startCap)); + } + Status SetTransform(const Matrix *matrix) + { + return updateStatus(DllExports::GdipSetPenTransform( + nativePen, + matrix ? matrix->nativeMatrix : NULL)); + } + Status SetWidth(REAL width) + { + return updateStatus(DllExports::GdipSetPenWidth( + nativePen, width)); + } + Status TranslateTransform(REAL dx, REAL dy, + MatrixOrder order = MatrixOrderPrepend) + { + return updateStatus(DllExports::GdipTranslatePenTransform( + nativePen, dx, dy, order)); + } + +private: + Pen(GpPen *pen, Status status): nativePen(pen), lastStatus(status) {} + Pen(const Pen& pen); + Pen& operator=(const Pen&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpPen *nativePen; + mutable Status lastStatus; +}; + +#endif /* __GDIPLUS_PEN_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdipluspixelformats.h b/mingw-w64-headers/include/gdiplus/gdipluspixelformats.h new file mode 100644 index 0000000..ea51cc7 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdipluspixelformats.h
@@ -0,0 +1,120 @@ +/* + * gdipluspixelformats.h + * + * GDI+ pixel formats + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_PIXELFORMATS_H +#define __GDIPLUS_PIXELFORMATS_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +typedef DWORD ARGB; +typedef INT PixelFormat; + +#define PixelFormatIndexed ((INT) 0x00010000) +#define PixelFormatGDI ((INT) 0x00020000) +#define PixelFormatAlpha ((INT) 0x00040000) +#define PixelFormatPAlpha ((INT) 0x00080000) +#define PixelFormatExtended ((INT) 0x00100000) +#define PixelFormatCanonical ((INT) 0x00200000) +#define PixelFormatUndefined ((INT) 0) +#define PixelFormatDontCare ((INT) 0) +#define PixelFormat1bppIndexed ((INT) \ + (1 | (1<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat4bppIndexed ((INT) \ + (2 | (4<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat8bppIndexed ((INT) \ + (3 | (8<<8) | PixelFormatIndexed | PixelFormatGDI)) +#define PixelFormat16bppGrayScale ((INT) \ + (4 | (16<<8) | PixelFormatExtended)) +#define PixelFormat16bppRGB555 ((INT) \ + (5 | (16<<8) | PixelFormatGDI)) +#define PixelFormat16bppRGB565 ((INT) \ + (6 | (16<<8) | PixelFormatGDI)) +#define PixelFormat16bppARGB1555 ((INT) \ + (7 | (16<<8) | PixelFormatAlpha | PixelFormatGDI)) +#define PixelFormat24bppRGB ((INT) \ + (8 | (24<<8) | PixelFormatGDI)) +#define PixelFormat32bppRGB ((INT) \ + (9 | (32<<8) | PixelFormatGDI)) +#define PixelFormat32bppARGB ((INT) \ + (10 | (32<<8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical)) +#define PixelFormat32bppPARGB ((INT) \ + (11 | (32<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI)) +#define PixelFormat48bppRGB ((INT) \ + (12 | (48<<8) | PixelFormatExtended)) +#define PixelFormat64bppARGB ((INT) \ + (13 | (64<<8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended)) +#define PixelFormat64bppPARGB ((INT) \ + (14 | (64<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended)) +#define PixelFormatMax ((INT) 15) + +typedef enum PaletteFlags { + PaletteFlagsHasAlpha = 1, + PaletteFlagsGrayScale = 2, + PaletteFlagsHalftone = 4 +} PaletteFlags; + +typedef enum PaletteType { + PaletteTypeCustom = 0, + PaletteTypeOptimal = 1, + PaletteTypeFixedBW = 2, + PaletteTypeFixedHalftone8 = 3, + PaletteTypeFixedHalftone27 = 4, + PaletteTypeFixedHalftone64 = 5, + PaletteTypeFixedHalftone125 = 6, + PaletteTypeFixedHalftone216 = 7, + PaletteTypeFixedHalftone252 = 8, + PaletteTypeFixedHalftone256 = 9 +} PaletteType; + +typedef struct ColorPalette { + UINT Flags; + UINT Count; + ARGB Entries[1]; +} ColorPalette; + +static __inline__ UINT GetPixelFormatSize(PixelFormat pixfmt) +{ + return (((UINT) pixfmt) & 0xff00U) >> 8; +} + +static __inline__ BOOL IsAlphaPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatAlpha) != 0; +} + +static __inline__ BOOL IsCanonicalPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatCanonical) != 0; +} + +static __inline__ BOOL IsExtendedPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatExtended) != 0; +} + +static __inline__ BOOL IsIndexedPixelFormat(PixelFormat pixfmt) +{ + return (pixfmt & PixelFormatIndexed) != 0; +} + +#endif /* __GDIPLUS_PIXELFORMATS_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplusstringformat.h b/mingw-w64-headers/include/gdiplus/gdiplusstringformat.h new file mode 100644 index 0000000..b95d1c3 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplusstringformat.h
@@ -0,0 +1,251 @@ +/* + * gdiplusstringformat.h + * + * GDI+ StringFormat class + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_STRINGFORMAT_H +#define __GDIPLUS_STRINGFORMAT_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#error "A C++ compiler is required to include gdiplusstringformat.h." +#endif + +class StringFormat: public GdiplusBase +{ + friend class Graphics; + friend class GraphicsPath; + +public: + static const StringFormat* GenericDefault(); + static const StringFormat* GenericTypographic(); + + StringFormat(INT formatFlags = 0, LANGID language = LANG_NEUTRAL): + nativeStringFormat(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCreateStringFormat( + formatFlags, language, &nativeStringFormat); + } + StringFormat(const StringFormat *format): + nativeStringFormat(NULL), lastStatus(Ok) + { + lastStatus = DllExports::GdipCloneStringFormat( + format ? format->nativeStringFormat : NULL, + &nativeStringFormat); + } + ~StringFormat() + { + DllExports::GdipDeleteStringFormat(nativeStringFormat); + } + StringFormat* Clone() const + { + GpStringFormat *cloneStringFormat = NULL; + Status status = updateStatus(DllExports::GdipCloneStringFormat( + nativeStringFormat, &cloneStringFormat)); + if (status == Ok) { + StringFormat *result = new StringFormat( + cloneStringFormat, lastStatus); + if (!result) { + DllExports::GdipDeleteStringFormat(cloneStringFormat); + lastStatus = OutOfMemory; + } + return result; + } else { + return NULL; + } + } + + StringAlignment GetAlignment() const + { + StringAlignment result = StringAlignmentNear; + updateStatus(DllExports::GdipGetStringFormatAlign( + nativeStringFormat, &result)); + return result; + } + LANGID GetDigitSubstitutionLanguage() const + { + LANGID result = 0; + StringDigitSubstitute method; + updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( + nativeStringFormat, &result, &method)); + return result; + } + StringDigitSubstitute GetDigitSubstitutionMethod() const + { + LANGID language; + StringDigitSubstitute result = StringDigitSubstituteUser; + updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( + nativeStringFormat, &language, &result)); + return result; + } + INT GetFormatFlags() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatFlags( + nativeStringFormat, &result)); + return result; + } + HotkeyPrefix GetHotkeyPrefix() const + { + HotkeyPrefix result = HotkeyPrefixNone; + updateStatus(DllExports::GdipGetStringFormatHotkeyPrefix( + nativeStringFormat, (INT*) &result)); + return result; + } + Status GetLastStatus() const + { + Status result = lastStatus; + lastStatus = Ok; + return result; + } + StringAlignment GetLineAlignment() const + { + StringAlignment result = StringAlignmentNear; + updateStatus(DllExports::GdipGetStringFormatLineAlign( + nativeStringFormat, &result)); + return result; + } + INT GetMeasurableCharacterRangeCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatMeasurableCharacterRangeCount( + nativeStringFormat, &result)); + return result; + } + INT GetTabStopCount() const + { + INT result = 0; + updateStatus(DllExports::GdipGetStringFormatTabStopCount( + nativeStringFormat, &result)); + return result; + } + Status GetTabStops(INT count, REAL *firstTabOffset, REAL *tabStops) + { + return updateStatus(DllExports::GdipGetStringFormatTabStops( + nativeStringFormat, count, + firstTabOffset, tabStops)); + } + StringTrimming GetTrimming() const + { + StringTrimming result = StringTrimmingNone; + updateStatus(DllExports::GdipGetStringFormatTrimming( + nativeStringFormat, &result)); + return result; + } + Status SetAlignment(StringAlignment align) + { + return updateStatus(DllExports::GdipSetStringFormatAlign( + nativeStringFormat, align)); + } + Status SetDigitSubstitution(LANGID language, + StringDigitSubstitute substitute) + { + return updateStatus(DllExports::GdipSetStringFormatDigitSubstitution( + nativeStringFormat, language, substitute)); + } + Status SetFormatFlags(INT flags) + { + return updateStatus(DllExports::GdipSetStringFormatFlags( + nativeStringFormat, flags)); + } + Status SetHotkeyPrefix(HotkeyPrefix hotkeyPrefix) + { + return updateStatus(DllExports::GdipSetStringFormatHotkeyPrefix( + nativeStringFormat, (INT) hotkeyPrefix)); + } + Status SetLineAlignment(StringAlignment align) + { + return updateStatus(DllExports::GdipSetStringFormatLineAlign( + nativeStringFormat, align)); + } + Status SetMeasurableCharacterRanges(INT rangeCount, + const CharacterRange *ranges) + { + return updateStatus(DllExports::GdipSetStringFormatMeasurableCharacterRanges( + nativeStringFormat, rangeCount, ranges)); + } + Status SetTabStops(REAL firstTabOffset, INT count, const REAL *tabStops) + { + return updateStatus(DllExports::GdipSetStringFormatTabStops( + nativeStringFormat, firstTabOffset, + count, tabStops)); + } + Status SetTrimming(StringTrimming trimming) + { + return updateStatus(DllExports::GdipSetStringFormatTrimming( + nativeStringFormat, trimming)); + } + +private: + StringFormat(GpStringFormat *stringFormat, Status status): + nativeStringFormat(stringFormat), lastStatus(status) {} + StringFormat(const StringFormat&); + StringFormat& operator=(const StringFormat&); + + Status updateStatus(Status newStatus) const + { + if (newStatus != Ok) lastStatus = newStatus; + return newStatus; + } + + GpStringFormat *nativeStringFormat; + mutable Status lastStatus; +}; + + +// FIXME: do StringFormat::GenericDefault() et al. need to be thread safe? +// FIXME: maybe put this in gdiplus.c? + +extern "C" void *_GdipStringFormatCachedGenericDefault; +extern "C" void *_GdipStringFormatCachedGenericTypographic; + +__inline__ const StringFormat* StringFormat::GenericDefault() +{ + if (!_GdipStringFormatCachedGenericDefault) { + GpStringFormat *nativeStringFormat = 0; + Status status = DllExports::GdipStringFormatGetGenericDefault( + &nativeStringFormat); + if (status == Ok && nativeStringFormat) { + _GdipStringFormatCachedGenericDefault = (void*) + new StringFormat(nativeStringFormat, Ok); + } + } + return (StringFormat*) _GdipStringFormatCachedGenericDefault; +} + +__inline__ const StringFormat* StringFormat::GenericTypographic() +{ + if (!_GdipStringFormatCachedGenericTypographic) { + GpStringFormat *nativeStringFormat = 0; + Status status = DllExports::GdipStringFormatGetGenericTypographic( + &nativeStringFormat); + if (status == Ok && nativeStringFormat) { + _GdipStringFormatCachedGenericTypographic = (void*) + new StringFormat(nativeStringFormat, Ok); + } + } + return (StringFormat*) _GdipStringFormatCachedGenericTypographic; +} + + + +#endif /* __GDIPLUS_STRINGFORMAT_H */
diff --git a/mingw-w64-headers/include/gdiplus/gdiplustypes.h b/mingw-w64-headers/include/gdiplus/gdiplustypes.h new file mode 100644 index 0000000..08a4237 --- /dev/null +++ b/mingw-w64-headers/include/gdiplus/gdiplustypes.h
@@ -0,0 +1,456 @@ +/* + * gdiplustypes.h + * + * GDI+ basic type declarations + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Markus Koenig <markus@stber-koenig.de> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __GDIPLUS_TYPES_H +#define __GDIPLUS_TYPES_H +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#define WINGDIPAPI __stdcall +#define GDIPCONST const + +typedef enum GpStatus { + Ok = 0, + GenericError = 1, + InvalidParameter = 2, + OutOfMemory = 3, + ObjectBusy = 4, + InsufficientBuffer = 5, + NotImplemented = 6, + Win32Error = 7, + WrongState = 8, + Aborted = 9, + FileNotFound = 10, + ValueOverflow = 11, + AccessDenied = 12, + UnknownImageFormat = 13, + FontFamilyNotFound = 14, + FontStyleNotFound = 15, + NotTrueTypeFont = 16, + UnsupportedGdiplusVersion = 17, + GdiplusNotInitialized = 18, + PropertyNotFound = 19, + PropertyNotSupported = 20, + ProfileNotFound = 21 +} GpStatus; + +#ifdef __cplusplus +typedef GpStatus Status; +#endif + +typedef struct Size { + INT Width; + INT Height; + + #ifdef __cplusplus + Size(): Width(0), Height(0) {} + Size(INT width, INT height): Width(width), Height(height) {} + Size(const Size& size): Width(size.Width), Height(size.Height) {} + + BOOL Empty() const { + return Width == 0 && Height == 0; + } + BOOL Equals(const Size& size) const { + return Width == size.Width && Height == size.Height; + } + Size operator+(const Size& size) const { + return Size(Width + size.Width, Height + size.Height); + } + Size operator-(const Size& size) const { + return Size(Width - size.Width, Height - size.Height); + } + #endif /* __cplusplus */ +} Size; + +typedef struct SizeF { + REAL Width; + REAL Height; + + #ifdef __cplusplus + SizeF(): Width(0.0f), Height(0.0f) {} + SizeF(REAL width, REAL height): Width(width), Height(height) {} + SizeF(const SizeF& size): Width(size.Width), Height(size.Height) {} + + BOOL Empty() const { + return Width == 0.0f && Height == 0.0f; + } + BOOL Equals(const SizeF& size) const { + return Width == size.Width && Height == size.Height; + } + SizeF operator+(const SizeF& size) const { + return SizeF(Width + size.Width, Height + size.Height); + } + SizeF operator-(const SizeF& size) const { + return SizeF(Width - size.Width, Height - size.Height); + } + #endif /* __cplusplus */ +} SizeF; + +typedef struct Point { + INT X; + INT Y; + + #ifdef __cplusplus + Point(): X(0), Y(0) {} + Point(INT x, INT y): X(x), Y(y) {} + Point(const Point& point): X(point.X), Y(point.Y) {} + Point(const Size& size): X(size.Width), Y(size.Height) {} + + BOOL Equals(const Point& point) const { + return X == point.X && Y == point.Y; + } + Point operator+(const Point& point) const { + return Point(X + point.X, Y + point.Y); + } + Point operator-(const Point& point) const { + return Point(X - point.X, Y - point.Y); + } + #endif /* __cplusplus */ +} Point; + +typedef struct PointF { + REAL X; + REAL Y; + + #ifdef __cplusplus + PointF(): X(0.0f), Y(0.0f) {} + PointF(REAL x, REAL y): X(x), Y(y) {} + PointF(const PointF& point): X(point.X), Y(point.Y) {} + PointF(const SizeF& size): X(size.Width), Y(size.Height) {} + + BOOL Equals(const PointF& point) const { + return X == point.X && Y == point.Y; + } + PointF operator+(const PointF& point) const { + return PointF(X + point.X, Y + point.Y); + } + PointF operator-(const PointF& point) const { + return PointF(X - point.X, Y - point.Y); + } + #endif /* __cplusplus */ +} PointF; + +typedef struct Rect { + INT X; + INT Y; + INT Width; + INT Height; + + #ifdef __cplusplus + Rect(): X(0), Y(0), Width(0), Height(0) {} + Rect(const Point& location, const Size& size): + X(location.X), Y(location.Y), + Width(size.Width), Height(size.Height) {} + Rect(INT x, INT y, INT width, INT height): + X(x), Y(y), Width(width), Height(height) {} + + Rect* Clone() const { + return new Rect(X, Y, Width, Height); + } + BOOL Contains(INT x, INT y) const { + return X <= x && Y <= y && x < X+Width && y < Y+Height; + } + BOOL Contains(const Point& point) const { + return Contains(point.X, point.Y); + } + BOOL Contains(const Rect& rect) const { + return X <= rect.X && Y <= rect.Y + && rect.X+rect.Width <= X+Width + && rect.Y+rect.Height <= Y+Height; + } + BOOL Equals(const Rect& rect) const { + return X == rect.X && Y == rect.Y + && Width == rect.Width && Height == rect.Height; + } + INT GetBottom() const { + return Y+Height; + } + VOID GetBounds(Rect *rect) const { + if (rect != NULL) { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + INT GetLeft() const { + return X; + } + VOID GetLocation(Point *point) const { + if (point != NULL) { + point->X = X; + point->Y = Y; + } + } + INT GetRight() const { + return X+Width; + } + VOID GetSize(Size *size) const { + if (size != NULL) { + size->Width = Width; + size->Height = Height; + } + } + INT GetTop() const { + return Y; + } + BOOL IsEmptyArea() const { + return Width <= 0 || Height <= 0; + } + VOID Inflate(INT dx, INT dy) { + X -= dx; + Y -= dy; + Width += 2*dx; + Height += 2*dy; + } + VOID Inflate(const Point& point) { + Inflate(point.X, point.Y); + } + static BOOL Intersect(Rect& c, const Rect& a, const Rect& b) { + INT intersectLeft = (a.X < b.X) ? b.X : a.X; + INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y; + INT intersectRight = (a.GetRight() < b.GetRight()) + ? a.GetRight() : b.GetRight(); + INT intersectBottom = (a.GetBottom() < b.GetBottom()) + ? a.GetBottom() : b.GetBottom(); + c.X = intersectLeft; + c.Y = intersectTop; + c.Width = intersectRight - intersectLeft; + c.Height = intersectBottom - intersectTop; + return !c.IsEmptyArea(); + } + BOOL Intersect(const Rect& rect) { + return Intersect(*this, *this, rect); + } + BOOL IntersectsWith(const Rect& rc) const { + INT intersectLeft = (X < rc.X) ? rc.X : X; + INT intersectTop = (Y < rc.Y) ? rc.Y : Y; + INT intersectRight = (GetRight() < rc.GetRight()) + ? GetRight() : rc.GetRight(); + INT intersectBottom = (GetBottom() < rc.GetBottom()) + ? GetBottom() : rc.GetBottom(); + return intersectLeft < intersectRight + && intersectTop < intersectBottom; + } + VOID Offset(INT dx, INT dy) { + X += dx; + Y += dy; + } + VOID Offset(const Point& point) { + Offset(point.X, point.Y); + } + static BOOL Union(Rect& c, const Rect& a, const Rect& b) { + INT unionLeft = (a.X < b.X) ? a.X : b.X; + INT unionTop = (a.Y < b.Y) ? a.Y : b.Y; + INT unionRight = (a.GetRight() < b.GetRight()) + ? b.GetRight() : a.GetRight(); + INT unionBottom = (a.GetBottom() < b.GetBottom()) + ? b.GetBottom() : a.GetBottom(); + c.X = unionLeft; + c.Y = unionTop; + c.Width = unionRight - unionLeft; + c.Height = unionBottom - unionTop; + return !c.IsEmptyArea(); + } + #endif /* __cplusplus */ +} Rect; + +typedef struct RectF { + REAL X; + REAL Y; + REAL Width; + REAL Height; + + #ifdef __cplusplus + RectF(): X(0.0f), Y(0.0f), Width(0.0f), Height(0.0f) {} + RectF(const PointF& location, const SizeF& size): + X(location.X), Y(location.Y), + Width(size.Width), Height(size.Height) {} + RectF(REAL x, REAL y, REAL width, REAL height): + X(x), Y(y), Width(width), Height(height) {} + + RectF* Clone() const { + return new RectF(X, Y, Width, Height); + } + BOOL Contains(REAL x, REAL y) const { + return X <= x && Y <= y && x < X+Width && y < Y+Height; + } + BOOL Contains(const PointF& point) const { + return Contains(point.X, point.Y); + } + BOOL Contains(const RectF& rect) const { + return X <= rect.X && Y <= rect.Y + && rect.X+rect.Width <= X+Width + && rect.Y+rect.Height <= Y+Height; + } + BOOL Equals(const RectF& rect) const { + return X == rect.X && Y == rect.Y + && Width == rect.Width && Height == rect.Height; + } + REAL GetBottom() const { + return Y+Height; + } + VOID GetBounds(RectF *rect) const { + if (rect != NULL) { + rect->X = X; + rect->Y = Y; + rect->Width = Width; + rect->Height = Height; + } + } + REAL GetLeft() const { + return X; + } + VOID GetLocation(PointF *point) const { + if (point != NULL) { + point->X = X; + point->Y = Y; + } + } + REAL GetRight() const { + return X+Width; + } + VOID GetSize(SizeF *size) const { + if (size != NULL) { + size->Width = Width; + size->Height = Height; + } + } + REAL GetTop() const { + return Y; + } + BOOL IsEmptyArea() const { + return Width <= 0.0f || Height <= 0.0f; + } + VOID Inflate(REAL dx, REAL dy) { + X -= dx; + Y -= dy; + Width += 2*dx; + Height += 2*dy; + } + VOID Inflate(const PointF& point) { + Inflate(point.X, point.Y); + } + static BOOL Intersect(RectF& c, const RectF& a, const RectF& b) { + INT intersectLeft = (a.X < b.X) ? b.X : a.X; + INT intersectTop = (a.Y < b.Y) ? b.Y : a.Y; + INT intersectRight = (a.GetRight() < b.GetRight()) + ? a.GetRight() : b.GetRight(); + INT intersectBottom = (a.GetBottom() < b.GetBottom()) + ? a.GetBottom() : b.GetBottom(); + c.X = intersectLeft; + c.Y = intersectTop; + c.Width = intersectRight - intersectLeft; + c.Height = intersectBottom - intersectTop; + return !c.IsEmptyArea(); + } + BOOL Intersect(const RectF& rect) { + return Intersect(*this, *this, rect); + } + BOOL IntersectsWith(const RectF& rc) const { + INT intersectLeft = (X < rc.X) ? rc.X : X; + INT intersectTop = (Y < rc.Y) ? rc.Y : Y; + INT intersectRight = (GetRight() < rc.GetRight()) + ? GetRight() : rc.GetRight(); + INT intersectBottom = (GetBottom() < rc.GetBottom()) + ? GetBottom() : rc.GetBottom(); + return intersectLeft < intersectRight + && intersectTop < intersectBottom; + } + VOID Offset(REAL dx, REAL dy) { + X += dx; + Y += dy; + } + VOID Offset(const PointF& point) { + Offset(point.X, point.Y); + } + static BOOL Union(RectF& c, const RectF& a, const RectF& b) { + INT unionLeft = (a.X < b.X) ? a.X : b.X; + INT unionTop = (a.Y < b.Y) ? a.Y : b.Y; + INT unionRight = (a.GetRight() < b.GetRight()) + ? b.GetRight() : a.GetRight(); + INT unionBottom = (a.GetBottom() < b.GetBottom()) + ? b.GetBottom() : a.GetBottom(); + c.X = unionLeft; + c.Y = unionTop; + c.Width = unionRight - unionLeft; + c.Height = unionBottom - unionTop; + return !c.IsEmptyArea(); + } + #endif /* __cplusplus */ +} RectF; + +/* FIXME: Are descendants of this class, when compiled with g++, + binary compatible with MSVC++ code (especially GDIPLUS.DLL of course)? */ +#ifdef __cplusplus +struct GdiplusAbort { + virtual HRESULT __stdcall Abort(void) {} +}; +#else +typedef struct GdiplusAbort GdiplusAbort; /* incomplete type */ +#endif + +typedef struct CharacterRange { + INT First; + INT Length; + + #ifdef __cplusplus + CharacterRange(): First(0), Length(0) {} + CharacterRange(INT first, INT length): First(first), Length(length) {} + CharacterRange& operator=(const CharacterRange& rhs) { + /* This gracefully handles self-assignment */ + First = rhs.First; + Length = rhs.Length; + return *this; + } + #endif /* __cplusplus */ +} CharacterRange; + +typedef struct PathData { + INT Count; + PointF *Points; + BYTE *Types; + + #ifdef __cplusplus + friend class GraphicsPath; + + PathData(): Count(0), Points(NULL), Types(NULL) {} + ~PathData() { + FreeArrays(); + } +private: + /* used by GraphicsPath::GetPathData, defined in gdipluspath.h */ + Status AllocateArrays(INT capacity); + VOID FreeArrays(); + #endif /* __cplusplus */ +} PathData; + +/* Callback function types */ +/* FIXME: need a correct definition for these function pointer types */ +typedef void *DebugEventProc; +typedef BOOL CALLBACK (*EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*); +typedef void *DrawImageAbort; +typedef void *GetThumbnailImageAbort; + + +#endif /* __GDIPLUS_TYPES_H */
diff --git a/mingw-w64-libraries/libmangle/aclocal.m4 b/mingw-w64-libraries/libmangle/aclocal.m4 index 76b1880..76a1536 100644 --- a/mingw-w64-libraries/libmangle/aclocal.m4 +++ b/mingw-w64-libraries/libmangle/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-libraries/libmangle/configure b/mingw-w64-libraries/libmangle/configure index 01abf9d..c96d73e 100755 --- a/mingw-w64-libraries/libmangle/configure +++ b/mingw-w64-libraries/libmangle/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64-libmangle 1.0. +# Generated by GNU Autoconf 2.68 for mingw-w64-libmangle 1.0. # # Report bugs to <mingw-w64-public@lists.sf.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1103,7 +1111,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1398,7 +1406,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64-libmangle configure 1.0 -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1444,7 +1452,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1481,7 +1489,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1494,10 +1502,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1564,7 +1572,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1573,7 +1581,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1614,7 +1622,7 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1628,7 +1636,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1646,7 +1654,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1659,7 +1667,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1700,7 +1708,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1713,7 +1721,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1753,7 +1761,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t @@ -1798,7 +1806,7 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -1811,7 +1819,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1866,7 +1874,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF @@ -1874,7 +1882,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64-libmangle $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2273,7 +2281,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2450,7 +2458,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2490,7 +2498,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2543,7 +2551,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2594,7 +2602,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2634,7 +2642,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2767,7 +2775,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2807,7 +2815,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2860,7 +2868,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2900,7 +2908,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2959,7 +2967,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3003,7 +3011,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3286,7 +3294,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3337,7 +3345,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3374,7 +3382,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3452,7 +3460,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3613,7 +3621,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3741,7 +3749,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3781,7 +3789,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -3835,7 +3843,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then @@ -3879,7 +3887,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -3945,7 +3953,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -4073,7 +4081,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4136,7 +4144,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4203,7 +4211,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4346,7 +4354,7 @@ # Checks for typedefs, structures, and compiler characteristics. ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; then : +if test "x$ac_cv_type_size_t" = xyes; then : else @@ -4375,7 +4383,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF @@ -4386,7 +4394,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then : +if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -4518,10 +4526,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -4573,7 +4592,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -4674,6 +4693,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4981,7 +5001,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64-libmangle $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5047,7 +5067,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64-libmangle config.status 1.0 -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -5202,9 +5222,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -5212,12 +5233,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -5239,7 +5261,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -5267,7 +5289,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -5315,7 +5337,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -5347,7 +5369,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -5381,7 +5403,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -5393,8 +5415,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -5514,7 +5536,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -5549,7 +5571,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -5686,21 +5708,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -5711,20 +5734,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-libraries/pseh/aclocal.m4 b/mingw-w64-libraries/pseh/aclocal.m4 index 1f8ca69..7730115 100644 --- a/mingw-w64-libraries/pseh/aclocal.m4 +++ b/mingw-w64-libraries/pseh/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-libraries/pseh/configure b/mingw-w64-libraries/pseh/configure index d97b45c..f177a21 100755 --- a/mingw-w64-libraries/pseh/configure +++ b/mingw-w64-libraries/pseh/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for PSEH 2.0. +# Generated by GNU Autoconf 2.68 for PSEH 2.0. # # Report bugs to <hackbunny@reactos.org>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1112,7 +1120,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1410,7 +1418,7 @@ if $ac_init_version; then cat <<\_ACEOF PSEH configure 2.0 -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1456,7 +1464,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1493,7 +1501,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1506,10 +1514,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1576,7 +1584,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1585,7 +1593,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1626,7 +1634,7 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1640,7 +1648,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1658,7 +1666,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile cat >config.log <<_ACEOF @@ -1666,7 +1674,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by PSEH $as_me 2.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2065,7 +2073,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2242,7 +2250,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2282,7 +2290,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2335,7 +2343,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2386,7 +2394,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2426,7 +2434,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2531,7 +2539,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2565,7 +2573,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2617,7 +2625,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2657,7 +2665,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -2710,7 +2718,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2750,7 +2758,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2809,7 +2817,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2853,7 +2861,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3136,7 +3144,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3187,7 +3195,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3224,7 +3232,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3302,7 +3310,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3463,7 +3471,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3591,7 +3599,7 @@ set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then : +if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then @@ -3631,7 +3639,7 @@ set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then @@ -3689,7 +3697,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CCAS_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3827,7 +3835,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -3955,7 +3963,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4018,7 +4026,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4085,7 +4093,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4215,7 +4223,7 @@ for ac_header in stddef.h do : ac_fn_c_check_header_mongrel "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" -if test "x$ac_cv_header_stddef_h" = x""yes; then : +if test "x$ac_cv_header_stddef_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDDEF_H 1 _ACEOF @@ -4295,10 +4303,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -4350,7 +4369,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -4451,6 +4470,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4758,7 +4778,7 @@ # values after options handling. ac_log=" This file was extended by PSEH $as_me 2.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -4824,7 +4844,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ PSEH config.status 2.0 -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -4979,9 +4999,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -4989,12 +5010,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -5016,7 +5038,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -5044,7 +5066,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -5092,7 +5114,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -5124,7 +5146,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -5158,7 +5180,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -5170,8 +5192,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -5291,7 +5313,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -5326,7 +5348,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -5463,21 +5485,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -5488,20 +5511,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-tools/gendef/aclocal.m4 b/mingw-w64-tools/gendef/aclocal.m4 index 76b1880..76a1536 100644 --- a/mingw-w64-tools/gendef/aclocal.m4 +++ b/mingw-w64-tools/gendef/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-tools/gendef/configure b/mingw-w64-tools/gendef/configure index 907e71c..beb61d3 100755 --- a/mingw-w64-tools/gendef/configure +++ b/mingw-w64-tools/gendef/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64-gendef 1.0. +# Generated by GNU Autoconf 2.68 for mingw-w64-gendef 1.0. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1112,7 +1120,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1417,7 +1425,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64-gendef configure 1.0 -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1463,7 +1471,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1500,7 +1508,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1513,10 +1521,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1583,7 +1591,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1592,7 +1600,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1633,7 +1641,7 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1647,7 +1655,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1665,7 +1673,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1710,7 +1718,7 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -1724,7 +1732,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1785,7 +1793,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_intX_t @@ -1798,7 +1806,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1839,7 +1847,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1852,7 +1860,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1892,7 +1900,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t @@ -1904,7 +1912,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1959,7 +1967,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF @@ -1967,7 +1975,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64-gendef $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2366,7 +2374,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2543,7 +2551,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2583,7 +2591,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2636,7 +2644,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2687,7 +2695,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2727,7 +2735,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2855,7 +2863,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2889,7 +2897,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2932,7 +2940,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2972,7 +2980,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3025,7 +3033,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3065,7 +3073,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3124,7 +3132,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3168,7 +3176,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3451,7 +3459,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3502,7 +3510,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3539,7 +3547,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3617,7 +3625,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3778,7 +3786,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3936,7 +3944,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -4064,7 +4072,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4127,7 +4135,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4194,7 +4202,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4321,9 +4329,9 @@ done -if test "x$with_mangle_result" = x""yes; then : +if test "x$with_mangle_result" = xyes; then : - if test "${with_mangle_path+set}" = set; then : + if ${with_mangle_path+:} false; then : extra_cppflags="-I$with_mangle_path/include" extra_ldflags="-L$with_mangle_path/lib" @@ -4333,7 +4341,7 @@ CPPFLAGS="$CPPFLAGS -I$with_mangle_path/include" LDFLAGS="$LDFLAGS -L$with_mangle_path/lib" ac_fn_c_check_header_mongrel "$LINENO" "libmangle.h" "ac_cv_header_libmangle_h" "$ac_includes_default" -if test "x$ac_cv_header_libmangle_h" = x""yes; then : +if test "x$ac_cv_header_libmangle_h" = xyes; then : else as_fn_error $? "libmangle enabled, but the header is not usable." "$LINENO" 5 @@ -4342,7 +4350,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmangle_print_decl in -lmangle" >&5 $as_echo_n "checking for libmangle_print_decl in -lmangle... " >&6; } -if test "${ac_cv_lib_mangle_libmangle_print_decl+set}" = set; then : +if ${ac_cv_lib_mangle_libmangle_print_decl+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -4376,7 +4384,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mangle_libmangle_print_decl" >&5 $as_echo "$ac_cv_lib_mangle_libmangle_print_decl" >&6; } -if test "x$ac_cv_lib_mangle_libmangle_print_decl" = x""yes; then : +if test "x$ac_cv_lib_mangle_libmangle_print_decl" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBMANGLE 1 _ACEOF @@ -4424,7 +4432,7 @@ esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; then : +if test "x$ac_cv_type_size_t" = xyes; then : else @@ -4573,10 +4581,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -4628,7 +4647,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -4729,6 +4748,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5036,7 +5056,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64-gendef $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5102,7 +5122,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64-gendef config.status 1.0 -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -5257,9 +5277,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -5267,12 +5288,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -5294,7 +5316,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -5322,7 +5344,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -5370,7 +5392,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -5402,7 +5424,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -5436,7 +5458,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -5448,8 +5470,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -5569,7 +5591,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -5604,7 +5626,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -5741,21 +5763,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -5766,20 +5789,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.
diff --git a/mingw-w64-tools/genidl/aclocal.m4 b/mingw-w64-tools/genidl/aclocal.m4 index 76b1880..76a1536 100644 --- a/mingw-w64-tools/genidl/aclocal.m4 +++ b/mingw-w64-tools/genidl/aclocal.m4
@@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, +[m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])])
diff --git a/mingw-w64-tools/genidl/configure b/mingw-w64-tools/genidl/configure index 94ee72f..fdea7e0 100755 --- a/mingw-w64-tools/genidl/configure +++ b/mingw-w64-tools/genidl/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for mingw-w64-genidl 1.0. +# Generated by GNU Autoconf 2.68 for mingw-w64-genidl 1.0. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -91,6 +91,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -216,11 +217,18 @@ # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -1108,7 +1116,7 @@ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac @@ -1407,7 +1415,7 @@ if $ac_init_version; then cat <<\_ACEOF mingw-w64-genidl configure 1.0 -generated by GNU Autoconf 2.67 +generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation @@ -1453,7 +1461,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile @@ -1490,7 +1498,7 @@ ac_retval=1 fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp @@ -1503,10 +1511,10 @@ ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -1573,7 +1581,7 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -1582,7 +1590,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel @@ -1623,7 +1631,7 @@ ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run @@ -1637,7 +1645,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1655,7 +1663,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1668,7 +1676,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1729,7 +1737,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_intX_t @@ -1742,7 +1750,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1783,7 +1791,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1796,7 +1804,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" @@ -1836,7 +1844,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t @@ -1881,7 +1889,7 @@ # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link @@ -1894,7 +1902,7 @@ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -1949,7 +1957,7 @@ eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF @@ -1957,7 +1965,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by mingw-w64-genidl $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2356,7 +2364,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then : +if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2533,7 +2541,7 @@ set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then : +if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then @@ -2573,7 +2581,7 @@ set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then @@ -2626,7 +2634,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then : + if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2677,7 +2685,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then : +if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then @@ -2717,7 +2725,7 @@ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -2845,7 +2853,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then : +if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias @@ -2879,7 +2887,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then : +if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then @@ -2922,7 +2930,7 @@ set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -2962,7 +2970,7 @@ set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3015,7 +3023,7 @@ set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3055,7 +3063,7 @@ set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3114,7 +3122,7 @@ set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then : +if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then @@ -3158,7 +3166,7 @@ set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : +if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then @@ -3441,7 +3449,7 @@ ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then : +if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3492,7 +3500,7 @@ ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then : +if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3529,7 +3537,7 @@ ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then : +if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag @@ -3607,7 +3615,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then : +if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no @@ -3768,7 +3776,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : +if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then @@ -3908,7 +3916,7 @@ CPP= fi if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then : + if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded @@ -4036,7 +4044,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then : +if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then @@ -4099,7 +4107,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then : +if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 @@ -4166,7 +4174,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4342,7 +4350,7 @@ esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = x""yes; then : +if test "x$ac_cv_type_size_t" = xyes; then : else @@ -4397,7 +4405,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF @@ -4408,7 +4416,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then : +if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -4464,7 +4472,7 @@ for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" -if test "x$ac_cv_header_stdlib_h" = x""yes; then : +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF @@ -4475,7 +4483,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 $as_echo_n "checking for GNU libc compatible realloc... " >&6; } -if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then : +if ${ac_cv_func_realloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : @@ -4607,10 +4615,21 @@ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && + if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} @@ -4662,7 +4681,7 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -: ${CONFIG_STATUS=./config.status} +: "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" @@ -4763,6 +4782,7 @@ IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. +as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5070,7 +5090,7 @@ # values after options handling. ac_log=" This file was extended by mingw-w64-genidl $as_me 1.0, which was -generated by GNU Autoconf 2.67. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5136,7 +5156,7 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mingw-w64-genidl config.status 1.0 -configured by $0, generated by GNU Autoconf 2.67, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. @@ -5291,9 +5311,10 @@ # after its creation but before its name has been assigned to `$tmp'. $debug || { - tmp= + tmp= ac_tmp= trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } @@ -5301,12 +5322,13 @@ { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" + test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -5328,7 +5350,7 @@ ac_cs_awk_cr=$ac_cr fi -echo 'BEGIN {' >"$tmp/subs1.awk" && +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF @@ -5356,7 +5378,7 @@ rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h @@ -5404,7 +5426,7 @@ rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" @@ -5436,7 +5458,7 @@ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF @@ -5470,7 +5492,7 @@ # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then -cat >"$tmp/defines.awk" <<\_ACAWK || +cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF @@ -5482,8 +5504,8 @@ # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do - ac_t=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_t"; then + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 @@ -5603,7 +5625,7 @@ for ac_f do case $ac_f in - -) ac_f="$tmp/stdin";; + -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. @@ -5638,7 +5660,7 @@ esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ + *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; @@ -5775,21 +5797,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} - rm -f "$tmp/stdin" + rm -f "$ac_tmp/stdin" case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; @@ -5800,20 +5823,20 @@ if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" - } >"$tmp/config.h" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" \ + mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers.