mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Added patch to enable second version of wined3d with STAGING_CSMT enabled.
This commit is contained in:
parent
5c6cef5ac8
commit
2971d1f90b
3
debian/tools/patchupdate.py
vendored
3
debian/tools/patchupdate.py
vendored
@ -503,8 +503,7 @@ def resolve_dependencies(all_patches, index):
|
||||
|
||||
# Recusively resolve dependencies
|
||||
all_patches[i].verify_resolved = -1
|
||||
for sub_depends in all_patches[i].depends:
|
||||
_resolve(sub_depends)
|
||||
_resolve(all_patches[i].depends)
|
||||
all_patches[i].verify_resolved = 1
|
||||
resolved.append(i)
|
||||
|
||||
|
@ -1845,14 +1845,17 @@ winebuild-LinkerVersion.ok:
|
||||
# Patchset wined3d-CSMT_Helper
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ddraw/surface.c, dlls/wined3d/resource.c, dlls/wined3d/surface.c, dlls/wined3d/volume.c, dlls/wined3d/wined3d.spec,
|
||||
# | dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# | * configure, configure.ac, dlls/ddraw/surface.c, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc, dlls
|
||||
# | /wined3d-csmt/wined3d-csmt.spec, dlls/wined3d/resource.c, dlls/wined3d/surface.c, dlls/wined3d/volume.c,
|
||||
# | dlls/wined3d/wined3d.spec, dlls/wined3d/wined3d_private.h, include/wine/wined3d.h
|
||||
# |
|
||||
.INTERMEDIATE: wined3d-CSMT_Helper.ok
|
||||
wined3d-CSMT_Helper.ok:
|
||||
wined3d-CSMT_Helper.ok: wined3d-DXTn.ok
|
||||
$(call APPLY_FILE,wined3d-CSMT_Helper/0001-wined3d-Merge-get_pitch-functions.patch)
|
||||
$(call APPLY_FILE,wined3d-CSMT_Helper/0002-wined3d-Add-second-dll-with-STAGING_CSMT-definition-.patch)
|
||||
@( \
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Merge get_pitch functions.", 1 },'; \
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Add second dll with STAGING_CSMT definition set.", 1 },'; \
|
||||
) > wined3d-CSMT_Helper.ok
|
||||
|
||||
# Patchset wined3d-CSMT_Main
|
||||
|
@ -0,0 +1,576 @@
|
||||
From f16446a592dda95a5540edb7b79dad7e075375a1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 14 Dec 2014 20:49:28 +0100
|
||||
Subject: wined3d: Add second dll with STAGING_CSMT definition set.
|
||||
|
||||
---
|
||||
configure | 85 ++++++++++-
|
||||
configure.ac | 1 +
|
||||
dlls/wined3d-csmt/Makefile.in | 37 +++++
|
||||
dlls/wined3d-csmt/version.rc | 27 ++++
|
||||
dlls/wined3d-csmt/wined3d-csmt.spec | 297 ++++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 442 insertions(+), 5 deletions(-)
|
||||
create mode 100644 dlls/wined3d-csmt/Makefile.in
|
||||
create mode 100644 dlls/wined3d-csmt/version.rc
|
||||
create mode 100644 dlls/wined3d-csmt/wined3d-csmt.spec
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index f9124d0..3866d40 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -828,6 +828,7 @@ with_png
|
||||
with_pthread
|
||||
with_sane
|
||||
with_tiff
|
||||
+with_txc_dxtn
|
||||
with_v4l
|
||||
with_xcomposite
|
||||
with_xcursor
|
||||
@@ -1284,6 +1285,7 @@ enable_windowscodecs
|
||||
enable_windowscodecsext
|
||||
enable_winealsa_drv
|
||||
enable_winecoreaudio_drv
|
||||
+enable_wined3d_csmt
|
||||
enable_wined3d
|
||||
enable_winegstreamer
|
||||
enable_winejoystick_drv
|
||||
@@ -2126,6 +2128,7 @@ Optional Packages:
|
||||
--without-pthread do not use the pthread library
|
||||
--without-sane do not use SANE (scanner support)
|
||||
--without-tiff do not use TIFF
|
||||
+ --without-txc_dxtn do not use txc_dxtn lib (DXTn software support)
|
||||
--without-v4l do not use v4l1 (v4l support)
|
||||
--without-xcomposite do not use the Xcomposite extension
|
||||
--without-xcursor do not use the Xcursor extension
|
||||
@@ -3383,6 +3386,12 @@ if test "${with_tiff+set}" = set; then :
|
||||
fi
|
||||
|
||||
|
||||
+# Check whether --with-txc_dxtn was given.
|
||||
+if test "${with_txc_dxtn+set}" = set; then :
|
||||
+ withval=$with_txc_dxtn;
|
||||
+fi
|
||||
+
|
||||
+
|
||||
# Check whether --with-v4l was given.
|
||||
if test "${with_v4l+set}" = set; then :
|
||||
withval=$with_v4l;
|
||||
@@ -6019,7 +6028,7 @@ else
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
@@ -6065,7 +6074,7 @@ else
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
@@ -6089,7 +6098,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
@@ -6134,7 +6143,7 @@ else
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
@@ -6158,7 +6167,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||
since some C++ compilers masquerading as C compilers
|
||||
incorrectly reject 9223372036854775807. */
|
||||
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||
&& LARGE_OFF_T % 2147483647 == 1)
|
||||
? 1 : -1];
|
||||
@@ -13166,6 +13175,71 @@ This is an error since --with-tiff was requested." "$LINENO" 5 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
+if test "x$with_txc_dxtn" != "xno"
|
||||
+then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -ltxc_dxtn" >&5
|
||||
+$as_echo_n "checking for -ltxc_dxtn... " >&6; }
|
||||
+if ${ac_cv_lib_soname_txc_dxtn+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_soname_save_LIBS=$LIBS
|
||||
+LIBS="-ltxc_dxtn $LIBS"
|
||||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char tx_compress_dxtn ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return tx_compress_dxtn ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ case "$LIBEXT" in
|
||||
+ dll) ac_cv_lib_soname_txc_dxtn=`$ac_cv_path_LDD conftest.exe | grep "txc_dxtn" | sed -e "s/dll.*/dll/"';2,$d'` ;;
|
||||
+ dylib) ac_cv_lib_soname_txc_dxtn=`otool -L conftest$ac_exeext | grep "libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
|
||||
+ *) ac_cv_lib_soname_txc_dxtn=`$READELF -d conftest$ac_exeext | grep "NEEDED.*libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\\.$LIBEXT" | sed -e "s/^.*\\[\\(libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\\.$LIBEXT[^ ]*\\)\\].*$/\1/"';2,$d'`
|
||||
+ if ${ac_cv_lib_soname_txc_dxtn:+false} :; then :
|
||||
+ ac_cv_lib_soname_txc_dxtn=`$LDD conftest$ac_exeext | grep "libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\\.$LIBEXT" | sed -e "s/^.*\(libtxc_dxtn\\(_s2tc\\)\\{0,1\\}\.$LIBEXT[^ ]*\).*$/\1/"';2,$d'`
|
||||
+fi ;;
|
||||
+ esac
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+ LIBS=$ac_check_soname_save_LIBS
|
||||
+fi
|
||||
+if ${ac_cv_lib_soname_txc_dxtn:+false} :; then :
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
|
||||
+$as_echo "not found" >&6; }
|
||||
+
|
||||
+else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_txc_dxtn" >&5
|
||||
+$as_echo "$ac_cv_lib_soname_txc_dxtn" >&6; }
|
||||
+
|
||||
+cat >>confdefs.h <<_ACEOF
|
||||
+#define SONAME_LIBTXC_DXTN "$ac_cv_lib_soname_txc_dxtn"
|
||||
+_ACEOF
|
||||
+
|
||||
+
|
||||
+fi
|
||||
+fi
|
||||
+if test "x$ac_cv_lib_soname_txc_dxtn" = "x"; then :
|
||||
+ case "x$with_txc_dxtn" in
|
||||
+ x) as_fn_append wine_notices "|libtxc_dxtn ${notice_platform}development files not found, DXTn software (de)compression won't be supported." ;;
|
||||
+ xno) ;;
|
||||
+ *) as_fn_error $? "libtxc_dxtn ${notice_platform}development files not found, DXTn software (de)compression won't be supported.
|
||||
+This is an error since --with-txc_dxtn was requested." "$LINENO" 5 ;;
|
||||
+esac
|
||||
+fi
|
||||
+
|
||||
if test "x$with_mpg123" != "xno"
|
||||
then
|
||||
if ${MPG123_CFLAGS:+false} :; then :
|
||||
@@ -17483,6 +17557,7 @@ wine_fn_config_test dlls/windowscodecsext/tests windowscodecsext_test
|
||||
wine_fn_config_dll winealsa.drv enable_winealsa_drv
|
||||
wine_fn_config_dll winecoreaudio.drv enable_winecoreaudio_drv
|
||||
wine_fn_config_lib winecrt0
|
||||
+wine_fn_config_dll wined3d-csmt enable_wined3d_csmt
|
||||
wine_fn_config_dll wined3d enable_wined3d implib
|
||||
wine_fn_config_dll winegstreamer enable_winegstreamer
|
||||
wine_fn_config_dll winejoystick.drv enable_winejoystick_drv
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b909ae8..c197db1 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3317,6 +3317,7 @@ WINE_CONFIG_TEST(dlls/windowscodecsext/tests)
|
||||
WINE_CONFIG_DLL(winealsa.drv)
|
||||
WINE_CONFIG_DLL(winecoreaudio.drv)
|
||||
WINE_CONFIG_LIB(winecrt0)
|
||||
+WINE_CONFIG_DLL(wined3d-csmt)
|
||||
WINE_CONFIG_DLL(wined3d,,[implib])
|
||||
WINE_CONFIG_DLL(winegstreamer)
|
||||
WINE_CONFIG_DLL(winejoystick.drv)
|
||||
diff --git a/dlls/wined3d-csmt/Makefile.in b/dlls/wined3d-csmt/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..90b2fba
|
||||
--- /dev/null
|
||||
+++ b/dlls/wined3d-csmt/Makefile.in
|
||||
@@ -0,0 +1,37 @@
|
||||
+EXTRADEFS = -DSTAGING_CSMT
|
||||
+MODULE = wined3d-csmt.dll
|
||||
+IMPORTS = uuid opengl32 user32 gdi32 advapi32
|
||||
+PARENTSRC = ../wined3d
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ arb_program_shader.c \
|
||||
+ ati_fragment_shader.c \
|
||||
+ buffer.c \
|
||||
+ context.c \
|
||||
+ cs.c \
|
||||
+ device.c \
|
||||
+ directx.c \
|
||||
+ drawprim.c \
|
||||
+ dxtn.c \
|
||||
+ gl_compat.c \
|
||||
+ glsl_shader.c \
|
||||
+ nvidia_texture_shader.c \
|
||||
+ palette.c \
|
||||
+ query.c \
|
||||
+ resource.c \
|
||||
+ sampler.c \
|
||||
+ shader.c \
|
||||
+ shader_sm1.c \
|
||||
+ shader_sm4.c \
|
||||
+ state.c \
|
||||
+ stateblock.c \
|
||||
+ surface.c \
|
||||
+ swapchain.c \
|
||||
+ texture.c \
|
||||
+ utils.c \
|
||||
+ vertexdeclaration.c \
|
||||
+ view.c \
|
||||
+ volume.c \
|
||||
+ wined3d_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/wined3d-csmt/version.rc b/dlls/wined3d-csmt/version.rc
|
||||
new file mode 100644
|
||||
index 0000000..0439375
|
||||
--- /dev/null
|
||||
+++ b/dlls/wined3d-csmt/version.rc
|
||||
@@ -0,0 +1,27 @@
|
||||
+/*
|
||||
+ * Copyright 2009 Austin English
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#include "config.h" /* Needed to get PACKAGE_VERSION */
|
||||
+
|
||||
+#define WINE_FILEDESCRIPTION_STR "Wine D3D"
|
||||
+#define WINE_FILENAME_STR "wined3d.dll"
|
||||
+#define WINE_FILEVERSION_STR PACKAGE_VERSION
|
||||
+#define WINE_PRODUCTVERSION_STR PACKAGE_VERSION
|
||||
+#define WINE_PRODUCTNAME_STR "Wine D3D"
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
diff --git a/dlls/wined3d-csmt/wined3d-csmt.spec b/dlls/wined3d-csmt/wined3d-csmt.spec
|
||||
new file mode 100644
|
||||
index 0000000..eca8875
|
||||
--- /dev/null
|
||||
+++ b/dlls/wined3d-csmt/wined3d-csmt.spec
|
||||
@@ -0,0 +1,297 @@
|
||||
+@ stdcall wined3d_mutex_lock()
|
||||
+@ stdcall wined3d_mutex_unlock()
|
||||
+
|
||||
+@ cdecl wined3d_calculate_format_pitch(ptr long long long)
|
||||
+@ cdecl wined3d_check_depth_stencil_match(ptr long long long long long)
|
||||
+@ cdecl wined3d_check_device_format(ptr long long long long long long)
|
||||
+@ cdecl wined3d_check_device_format_conversion(ptr long long long long)
|
||||
+@ cdecl wined3d_check_device_multisample_type(ptr long long long long long ptr)
|
||||
+@ cdecl wined3d_check_device_type(ptr long long long long long)
|
||||
+@ cdecl wined3d_create(long)
|
||||
+@ cdecl wined3d_decref(ptr)
|
||||
+@ cdecl wined3d_enum_adapter_modes(ptr long long long long ptr)
|
||||
+@ cdecl wined3d_get_adapter_count(ptr)
|
||||
+@ cdecl wined3d_get_adapter_display_mode(ptr long ptr ptr)
|
||||
+@ cdecl wined3d_get_adapter_identifier(ptr long long ptr)
|
||||
+@ cdecl wined3d_get_adapter_mode_count(ptr long long long)
|
||||
+@ cdecl wined3d_get_adapter_monitor(ptr long)
|
||||
+@ cdecl wined3d_get_adapter_raster_status(ptr long ptr)
|
||||
+@ cdecl wined3d_get_device_caps(ptr long long ptr)
|
||||
+@ cdecl wined3d_incref(ptr)
|
||||
+@ cdecl wined3d_register_software_device(ptr ptr)
|
||||
+@ cdecl wined3d_set_adapter_display_mode(ptr long ptr)
|
||||
+
|
||||
+@ cdecl wined3d_buffer_create(ptr ptr ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_buffer_create_ib(ptr long long long ptr ptr ptr)
|
||||
+@ cdecl wined3d_buffer_create_vb(ptr long long long ptr ptr ptr)
|
||||
+@ cdecl wined3d_buffer_decref(ptr)
|
||||
+@ cdecl wined3d_buffer_get_parent(ptr)
|
||||
+@ cdecl wined3d_buffer_get_resource(ptr)
|
||||
+@ cdecl wined3d_buffer_incref(ptr)
|
||||
+@ cdecl wined3d_buffer_map(ptr long long ptr long)
|
||||
+@ cdecl wined3d_buffer_preload(ptr)
|
||||
+@ cdecl wined3d_buffer_unmap(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_device_acquire_focus_window(ptr ptr)
|
||||
+@ cdecl wined3d_device_begin_scene(ptr)
|
||||
+@ cdecl wined3d_device_begin_stateblock(ptr)
|
||||
+@ cdecl wined3d_device_clear(ptr long ptr long ptr float long)
|
||||
+@ cdecl wined3d_device_clear_rendertarget_view(ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_device_copy_resource(ptr ptr ptr)
|
||||
+@ cdecl wined3d_device_create(ptr long long ptr long long ptr ptr)
|
||||
+@ cdecl wined3d_device_decref(ptr)
|
||||
+@ cdecl wined3d_device_draw_indexed_primitive(ptr long long)
|
||||
+@ cdecl wined3d_device_draw_indexed_primitive_instanced(ptr long long long long)
|
||||
+@ cdecl wined3d_device_draw_primitive(ptr long long)
|
||||
+@ cdecl wined3d_device_end_scene(ptr)
|
||||
+@ cdecl wined3d_device_end_stateblock(ptr ptr)
|
||||
+@ cdecl wined3d_device_evict_managed_resources(ptr)
|
||||
+@ cdecl wined3d_device_get_available_texture_mem(ptr)
|
||||
+@ cdecl wined3d_device_get_back_buffer(ptr long long long ptr)
|
||||
+@ cdecl wined3d_device_get_base_vertex_index(ptr)
|
||||
+@ cdecl wined3d_device_get_clip_plane(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_clip_status(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_creation_parameters(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_depth_stencil_view(ptr)
|
||||
+@ cdecl wined3d_device_get_device_caps(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_display_mode(ptr long ptr ptr)
|
||||
+@ cdecl wined3d_device_get_front_buffer_data(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_gamma_ramp(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_geometry_shader(ptr)
|
||||
+@ cdecl wined3d_device_get_gs_cb(ptr long)
|
||||
+@ cdecl wined3d_device_get_gs_resource_view(ptr long)
|
||||
+@ cdecl wined3d_device_get_gs_sampler(ptr long)
|
||||
+@ cdecl wined3d_device_get_index_buffer(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_light(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_light_enable(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_material(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_npatch_mode(ptr)
|
||||
+@ cdecl wined3d_device_get_pixel_shader(ptr)
|
||||
+@ cdecl wined3d_device_get_predication(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_primitive_type(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_ps_cb(ptr long)
|
||||
+@ cdecl wined3d_device_get_ps_consts_b(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_ps_consts_f(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_ps_consts_i(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_ps_resource_view(ptr long)
|
||||
+@ cdecl wined3d_device_get_ps_sampler(ptr long)
|
||||
+@ cdecl wined3d_device_get_raster_status(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_render_state(ptr long)
|
||||
+@ cdecl wined3d_device_get_rendertarget_view(ptr long)
|
||||
+@ cdecl wined3d_device_get_sampler_state(ptr long long)
|
||||
+@ cdecl wined3d_device_get_scissor_rect(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_software_vertex_processing(ptr)
|
||||
+@ cdecl wined3d_device_get_stream_output(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_stream_source(ptr long ptr ptr ptr)
|
||||
+@ cdecl wined3d_device_get_stream_source_freq(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_surface_from_dc(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_swapchain(ptr long)
|
||||
+@ cdecl wined3d_device_get_swapchain_count(ptr)
|
||||
+@ cdecl wined3d_device_get_texture(ptr long)
|
||||
+@ cdecl wined3d_device_get_texture_stage_state(ptr long long)
|
||||
+@ cdecl wined3d_device_get_transform(ptr long ptr)
|
||||
+@ cdecl wined3d_device_get_vertex_declaration(ptr)
|
||||
+@ cdecl wined3d_device_get_vertex_shader(ptr)
|
||||
+@ cdecl wined3d_device_get_viewport(ptr ptr)
|
||||
+@ cdecl wined3d_device_get_vs_cb(ptr long)
|
||||
+@ cdecl wined3d_device_get_vs_consts_b(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_vs_consts_f(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_vs_consts_i(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_get_vs_resource_view(ptr long)
|
||||
+@ cdecl wined3d_device_get_vs_sampler(ptr long)
|
||||
+@ cdecl wined3d_device_incref(ptr)
|
||||
+@ cdecl wined3d_device_init_3d(ptr ptr)
|
||||
+@ cdecl wined3d_device_init_gdi(ptr ptr)
|
||||
+@ cdecl wined3d_device_multiply_transform(ptr long ptr)
|
||||
+@ cdecl wined3d_device_present(ptr ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_device_process_vertices(ptr long long long ptr ptr long long)
|
||||
+@ cdecl wined3d_device_release_focus_window(ptr)
|
||||
+@ cdecl wined3d_device_reset(ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_device_restore_fullscreen_window(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_base_vertex_index(ptr long)
|
||||
+@ cdecl wined3d_device_set_clip_plane(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_clip_status(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_cursor_position(ptr long long long)
|
||||
+@ cdecl wined3d_device_set_cursor_properties(ptr long long ptr)
|
||||
+@ cdecl wined3d_device_set_depth_stencil_view(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_dialog_box_mode(ptr long)
|
||||
+@ cdecl wined3d_device_set_gamma_ramp(ptr long long ptr)
|
||||
+@ cdecl wined3d_device_set_geometry_shader(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_gs_cb(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_gs_resource_view(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_gs_sampler(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_index_buffer(ptr ptr long)
|
||||
+@ cdecl wined3d_device_set_light(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_light_enable(ptr long long)
|
||||
+@ cdecl wined3d_device_set_material(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_multithreaded(ptr)
|
||||
+@ cdecl wined3d_device_set_npatch_mode(ptr float)
|
||||
+@ cdecl wined3d_device_set_pixel_shader(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_predication(ptr ptr long)
|
||||
+@ cdecl wined3d_device_set_primitive_type(ptr long)
|
||||
+@ cdecl wined3d_device_set_ps_cb(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_ps_consts_b(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_ps_consts_f(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_ps_consts_i(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_ps_resource_view(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_ps_sampler(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_render_state(ptr long long)
|
||||
+@ cdecl wined3d_device_set_rendertarget_view(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_sampler_state(ptr long long long)
|
||||
+@ cdecl wined3d_device_set_scissor_rect(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_software_vertex_processing(ptr long)
|
||||
+@ cdecl wined3d_device_set_stream_output(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_stream_source(ptr long ptr long long)
|
||||
+@ cdecl wined3d_device_set_stream_source_freq(ptr long long)
|
||||
+@ cdecl wined3d_device_set_texture(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_texture_stage_state(ptr long long long)
|
||||
+@ cdecl wined3d_device_set_transform(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_vertex_declaration(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_vertex_shader(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_viewport(ptr ptr)
|
||||
+@ cdecl wined3d_device_set_vs_cb(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_vs_consts_b(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_vs_consts_f(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_vs_consts_i(ptr long ptr long)
|
||||
+@ cdecl wined3d_device_set_vs_resource_view(ptr long ptr)
|
||||
+@ cdecl wined3d_device_set_vs_sampler(ptr long ptr)
|
||||
+@ cdecl wined3d_device_setup_fullscreen_window(ptr ptr long long)
|
||||
+@ cdecl wined3d_device_show_cursor(ptr long)
|
||||
+@ cdecl wined3d_device_uninit_3d(ptr)
|
||||
+@ cdecl wined3d_device_uninit_gdi(ptr)
|
||||
+@ cdecl wined3d_device_update_surface(ptr ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_device_update_texture(ptr ptr ptr)
|
||||
+@ cdecl wined3d_device_validate_device(ptr ptr)
|
||||
+
|
||||
+@ cdecl wined3d_palette_create(ptr long long ptr ptr)
|
||||
+@ cdecl wined3d_palette_decref(ptr)
|
||||
+@ cdecl wined3d_palette_get_entries(ptr long long long ptr)
|
||||
+@ cdecl wined3d_palette_apply_to_dc(ptr ptr)
|
||||
+@ cdecl wined3d_palette_incref(ptr)
|
||||
+@ cdecl wined3d_palette_set_entries(ptr long long long ptr)
|
||||
+
|
||||
+@ cdecl wined3d_query_create(ptr long ptr ptr)
|
||||
+@ cdecl wined3d_query_decref(ptr)
|
||||
+@ cdecl wined3d_query_get_data(ptr ptr long long)
|
||||
+@ cdecl wined3d_query_get_data_size(ptr)
|
||||
+@ cdecl wined3d_query_get_parent(ptr)
|
||||
+@ cdecl wined3d_query_get_type(ptr)
|
||||
+@ cdecl wined3d_query_incref(ptr)
|
||||
+@ cdecl wined3d_query_issue(ptr long)
|
||||
+
|
||||
+@ cdecl wined3d_resource_get_desc(ptr ptr)
|
||||
+@ cdecl wined3d_resource_get_parent(ptr)
|
||||
+@ cdecl wined3d_resource_get_priority(ptr)
|
||||
+@ cdecl wined3d_resource_set_parent(ptr ptr)
|
||||
+@ cdecl wined3d_resource_set_priority(ptr long)
|
||||
+
|
||||
+@ cdecl wined3d_rendertarget_view_create(ptr ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_create_from_surface(ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_decref(ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_get_parent(ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_get_resource(ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_get_sub_resource_parent(ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_incref(ptr)
|
||||
+@ cdecl wined3d_rendertarget_view_set_parent(ptr ptr)
|
||||
+
|
||||
+@ cdecl wined3d_sampler_create(ptr ptr)
|
||||
+@ cdecl wined3d_sampler_decref(ptr)
|
||||
+@ cdecl wined3d_sampler_get_parent(ptr)
|
||||
+@ cdecl wined3d_sampler_incref(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_shader_create_gs(ptr ptr ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_shader_create_ps(ptr ptr ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_shader_create_vs(ptr ptr ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_shader_decref(ptr)
|
||||
+@ cdecl wined3d_shader_get_byte_code(ptr ptr ptr)
|
||||
+@ cdecl wined3d_shader_get_parent(ptr)
|
||||
+@ cdecl wined3d_shader_incref(ptr)
|
||||
+@ cdecl wined3d_shader_set_local_constants_float(ptr long ptr long)
|
||||
+
|
||||
+@ cdecl wined3d_shader_resource_view_create(ptr ptr ptr)
|
||||
+@ cdecl wined3d_shader_resource_view_decref(ptr)
|
||||
+@ cdecl wined3d_shader_resource_view_get_parent(ptr)
|
||||
+@ cdecl wined3d_shader_resource_view_incref(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_stateblock_apply(ptr)
|
||||
+@ cdecl wined3d_stateblock_capture(ptr)
|
||||
+@ cdecl wined3d_stateblock_create(ptr long ptr)
|
||||
+@ cdecl wined3d_stateblock_decref(ptr)
|
||||
+@ cdecl wined3d_stateblock_incref(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_surface_blt(ptr ptr ptr ptr long ptr long)
|
||||
+@ cdecl wined3d_surface_decref(ptr)
|
||||
+@ cdecl wined3d_surface_from_resource(ptr)
|
||||
+@ cdecl wined3d_surface_get_blt_status(ptr long)
|
||||
+@ cdecl wined3d_surface_get_flip_status(ptr long)
|
||||
+@ cdecl wined3d_surface_get_overlay_position(ptr ptr ptr)
|
||||
+@ cdecl wined3d_surface_get_parent(ptr)
|
||||
+@ cdecl wined3d_surface_get_pitch(ptr)
|
||||
+@ cdecl wined3d_surface_get_render_target_data(ptr ptr)
|
||||
+@ cdecl wined3d_surface_get_resource(ptr)
|
||||
+@ cdecl wined3d_surface_getdc(ptr ptr)
|
||||
+@ cdecl wined3d_surface_incref(ptr)
|
||||
+@ cdecl wined3d_surface_is_lost(ptr)
|
||||
+@ cdecl wined3d_surface_map(ptr ptr ptr long)
|
||||
+@ cdecl wined3d_surface_preload(ptr)
|
||||
+@ cdecl wined3d_surface_releasedc(ptr ptr)
|
||||
+@ cdecl wined3d_surface_restore(ptr)
|
||||
+@ cdecl wined3d_surface_set_overlay_position(ptr long long)
|
||||
+@ cdecl wined3d_surface_unmap(ptr)
|
||||
+@ cdecl wined3d_surface_update_overlay(ptr ptr ptr ptr long ptr)
|
||||
+@ cdecl wined3d_surface_update_overlay_z_order(ptr long ptr)
|
||||
+
|
||||
+@ cdecl wined3d_swapchain_create(ptr ptr ptr ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_decref(ptr)
|
||||
+@ cdecl wined3d_swapchain_get_back_buffer(ptr long long)
|
||||
+@ cdecl wined3d_swapchain_get_device(ptr)
|
||||
+@ cdecl wined3d_swapchain_get_display_mode(ptr ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_get_front_buffer_data(ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_get_gamma_ramp(ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_get_parent(ptr)
|
||||
+@ cdecl wined3d_swapchain_get_desc(ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_get_raster_status(ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_incref(ptr)
|
||||
+@ cdecl wined3d_swapchain_present(ptr ptr ptr ptr ptr long)
|
||||
+@ cdecl wined3d_swapchain_set_gamma_ramp(ptr long ptr)
|
||||
+@ cdecl wined3d_swapchain_set_palette(ptr ptr)
|
||||
+@ cdecl wined3d_swapchain_set_window(ptr ptr)
|
||||
+
|
||||
+@ cdecl wined3d_texture_add_dirty_region(ptr long ptr)
|
||||
+@ cdecl wined3d_texture_create(ptr ptr long long ptr ptr ptr)
|
||||
+@ cdecl wined3d_texture_decref(ptr)
|
||||
+@ cdecl wined3d_texture_generate_mipmaps(ptr)
|
||||
+@ cdecl wined3d_texture_get_autogen_filter_type(ptr)
|
||||
+@ cdecl wined3d_texture_get_level_count(ptr)
|
||||
+@ cdecl wined3d_texture_get_lod(ptr)
|
||||
+@ cdecl wined3d_texture_get_parent(ptr)
|
||||
+@ cdecl wined3d_texture_get_resource(ptr)
|
||||
+@ cdecl wined3d_texture_get_sub_resource(ptr long)
|
||||
+@ cdecl wined3d_texture_incref(ptr)
|
||||
+@ cdecl wined3d_texture_preload(ptr)
|
||||
+@ cdecl wined3d_texture_set_autogen_filter_type(ptr long)
|
||||
+@ cdecl wined3d_texture_set_color_key(ptr long ptr)
|
||||
+@ cdecl wined3d_texture_set_lod(ptr long)
|
||||
+@ cdecl wined3d_texture_update_desc(ptr long long long long long ptr long)
|
||||
+
|
||||
+@ cdecl wined3d_vertex_declaration_create(ptr ptr long ptr ptr ptr)
|
||||
+@ cdecl wined3d_vertex_declaration_create_from_fvf(ptr long ptr ptr ptr)
|
||||
+@ cdecl wined3d_vertex_declaration_decref(ptr)
|
||||
+@ cdecl wined3d_vertex_declaration_get_parent(ptr)
|
||||
+@ cdecl wined3d_vertex_declaration_incref(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_volume_decref(ptr)
|
||||
+@ cdecl wined3d_volume_from_resource(ptr)
|
||||
+@ cdecl wined3d_volume_get_parent(ptr)
|
||||
+@ cdecl wined3d_volume_get_resource(ptr)
|
||||
+@ cdecl wined3d_volume_incref(ptr)
|
||||
+@ cdecl wined3d_volume_map(ptr ptr ptr long)
|
||||
+@ cdecl wined3d_volume_preload(ptr)
|
||||
+@ cdecl wined3d_volume_unmap(ptr)
|
||||
+
|
||||
+@ cdecl wined3d_dxt1_decode(ptr ptr long long long long long)
|
||||
+@ cdecl wined3d_dxt1_encode(ptr ptr long long long long long)
|
||||
+@ cdecl wined3d_dxt3_decode(ptr ptr long long long long long)
|
||||
+@ cdecl wined3d_dxt3_encode(ptr ptr long long long long long)
|
||||
+@ cdecl wined3d_dxt5_decode(ptr ptr long long long long long)
|
||||
+@ cdecl wined3d_dxt5_encode(ptr ptr long long long long long)
|
||||
--
|
||||
2.1.3
|
||||
|
@ -0,0 +1 @@
|
||||
Depends: wined3d-DXTn
|
@ -7072,7 +7072,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -2279,6 +2720,7 @@
|
||||
@@ -2423,6 +2864,7 @@
|
||||
|
||||
static struct wined3d_texture *surface_convert_format(struct wined3d_surface *source, enum wined3d_format_id to_fmt)
|
||||
{
|
||||
@ -7080,7 +7080,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
void *dst_data = NULL, *src_data = NULL;
|
||||
UINT src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch;
|
||||
const struct d3dfmt_converter_desc *conv;
|
||||
@@ -2287,6 +2729,13 @@
|
||||
@@ -2431,6 +2873,13 @@
|
||||
struct wined3d_surface *dst;
|
||||
struct wined3d_context *context = NULL;
|
||||
struct wined3d_device *device = source->resource.device;
|
||||
@ -7094,7 +7094,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
conv = find_converter(source->resource.format->id, to_fmt);
|
||||
if (!conv)
|
||||
@@ -2310,6 +2759,7 @@
|
||||
@@ -2454,6 +2903,7 @@
|
||||
}
|
||||
dst = surface_from_resource(wined3d_texture_get_sub_resource(ret, 0));
|
||||
|
||||
@ -7102,7 +7102,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
wined3d_resource_get_pitch(&source->resource, &src_row_pitch, &src_slice_pitch);
|
||||
wined3d_resource_get_pitch(&ret->resource, &dst_row_pitch, &dst_slice_pitch);
|
||||
|
||||
@@ -2350,6 +2800,32 @@
|
||||
@@ -2494,6 +2944,32 @@
|
||||
if (context)
|
||||
context_release(context);
|
||||
return NULL;
|
||||
@ -7135,7 +7135,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
static HRESULT _Blt_ColorFill(BYTE *buf, unsigned int width, unsigned int height,
|
||||
@@ -2417,6 +2893,7 @@
|
||||
@@ -2561,6 +3037,7 @@
|
||||
|
||||
HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface)
|
||||
{
|
||||
@ -7143,7 +7143,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
HRESULT hr;
|
||||
TRACE("surface %p.\n", surface);
|
||||
|
||||
@@ -2434,6 +2911,39 @@
|
||||
@@ -2578,6 +3055,39 @@
|
||||
{
|
||||
struct wined3d_box box;
|
||||
const struct wined3d_format *format = surface->resource.format;
|
||||
@ -7183,7 +7183,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
if ((format->flags & WINED3DFMT_FLAG_BLOCKS) && rect
|
||||
&& !surface_check_block_align(surface, rect))
|
||||
@@ -2445,6 +2955,13 @@
|
||||
@@ -2589,6 +3099,13 @@
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -7197,7 +7197,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
/* Performance optimization: Count how often a surface is mapped, if it is
|
||||
* mapped regularly do not throw away the system memory copy. This avoids
|
||||
* the need to download the surface from OpenGL all the time. The surface
|
||||
@@ -2460,6 +2977,7 @@
|
||||
@@ -2604,6 +3121,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -7205,7 +7205,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (rect)
|
||||
{
|
||||
surface->lockedRect = *rect;
|
||||
@@ -2524,22 +3042,121 @@
|
||||
@@ -2668,22 +3186,121 @@
|
||||
WARN("Cannot use GetDC on a %s surface.\n", debug_d3dformat(surface->resource.format->id));
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
@ -7339,7 +7339,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
void wined3d_surface_releasedc_cs(struct wined3d_surface *surface)
|
||||
@@ -2565,6 +3182,35 @@
|
||||
@@ -2709,6 +3326,35 @@
|
||||
if (context)
|
||||
context_release(context);
|
||||
}
|
||||
@ -7375,7 +7375,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
@@ -2584,6 +3230,7 @@
|
||||
@@ -2728,6 +3374,7 @@
|
||||
surface->resource.map_count--;
|
||||
surface->flags &= ~SFLAG_DCINUSE;
|
||||
|
||||
@ -7383,7 +7383,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
wined3d_cs_emit_releasedc(surface->resource.device->cs, surface);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -2619,6 +3266,40 @@
|
||||
@@ -2763,6 +3410,40 @@
|
||||
context = context_acquire(device, surface);
|
||||
}
|
||||
|
||||
@ -7424,7 +7424,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
context_apply_blit_state(context, device);
|
||||
gl_info = context->gl_info;
|
||||
|
||||
@@ -2706,12 +3387,16 @@
|
||||
@@ -2850,12 +3531,16 @@
|
||||
checkGLcall("glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0)");
|
||||
}
|
||||
|
||||
@ -7441,7 +7441,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
/* Read the framebuffer contents into a texture. Note that this function
|
||||
@@ -2771,6 +3456,85 @@
|
||||
@@ -2915,6 +3600,85 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -7527,7 +7527,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
/* Does a direct frame buffer -> texture copy. Stretching is done with single
|
||||
* pixel copy calls. */
|
||||
static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struct wined3d_surface *src_surface,
|
||||
@@ -2877,8 +3641,13 @@
|
||||
@@ -3021,8 +3785,13 @@
|
||||
|
||||
/* The texture is now most up to date - If the surface is a render target
|
||||
* and has a drawable, this path is never entered. */
|
||||
@ -7541,7 +7541,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
/* Uses the hardware to stretch and flip the image */
|
||||
@@ -2946,7 +3715,11 @@
|
||||
@@ -3090,7 +3859,11 @@
|
||||
checkGLcall("glEnable(texture_target)");
|
||||
|
||||
/* For now invalidate the texture copy of the back buffer. Drawable and sysmem copy are untouched */
|
||||
@ -7553,7 +7553,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
/* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag
|
||||
@@ -3144,6 +3917,7 @@
|
||||
@@ -3288,6 +4061,7 @@
|
||||
checkGLcall("glDeleteTextures(1, &backup)");
|
||||
}
|
||||
|
||||
@ -7561,7 +7561,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
gl_info->gl_ops.gl.p_glFinish();
|
||||
else if (wined3d_settings.strict_draw_ordering)
|
||||
@@ -3155,6 +3929,17 @@
|
||||
@@ -3299,6 +4073,17 @@
|
||||
* and has a drawable, this path is never entered. */
|
||||
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
wined3d_resource_invalidate_location(&dst_surface->resource, ~WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -7579,7 +7579,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
/* Front buffer coordinates are always full screen coordinates, but our GL
|
||||
@@ -3185,6 +3970,7 @@
|
||||
@@ -3329,6 +4114,7 @@
|
||||
rect->bottom = drawable_height - rect->bottom;
|
||||
}
|
||||
|
||||
@ -7587,7 +7587,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
/* Context activation is done by the caller. */
|
||||
static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
struct wined3d_context *old_ctx,
|
||||
@@ -3219,6 +4005,26 @@
|
||||
@@ -3363,6 +4149,26 @@
|
||||
/* Make sure the surface is up-to-date. This should probably use
|
||||
* wined3d_resource_load_location() and worry about the destination
|
||||
* surface too, unless we're overwriting it completely. */
|
||||
@ -7614,7 +7614,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
wined3d_texture_load(src_surface->container, context, FALSE);
|
||||
|
||||
/* Activate the destination context, set it up for blitting */
|
||||
@@ -3261,6 +4067,7 @@
|
||||
@@ -3405,6 +4211,7 @@
|
||||
/* Leave the opengl state valid for blitting */
|
||||
device->blitter->unset_shader(context->gl_info);
|
||||
|
||||
@ -7622,7 +7622,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
gl_info->gl_ops.gl.p_glFinish();
|
||||
else if (wined3d_settings.strict_draw_ordering
|
||||
@@ -3274,6 +4081,14 @@
|
||||
@@ -3418,6 +4225,14 @@
|
||||
context = context_acquire(device, restore_rt);
|
||||
context_release(context);
|
||||
}
|
||||
@ -7637,7 +7637,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const struct wined3d_color *color)
|
||||
@@ -3297,9 +4112,15 @@
|
||||
@@ -3441,9 +4256,15 @@
|
||||
enum wined3d_texture_filter_type filter)
|
||||
{
|
||||
struct wined3d_device *device = dst_surface->resource.device;
|
||||
@ -7653,7 +7653,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, blt_fx %p, filter %s.\n",
|
||||
dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect),
|
||||
@@ -3424,7 +4245,9 @@
|
||||
@@ -3568,7 +4389,9 @@
|
||||
/* Blit from offscreen surface to render target */
|
||||
struct wined3d_color_key old_blt_key = src_surface->container->src_blt_color_key;
|
||||
DWORD old_color_key_flags = src_surface->container->color_key_flags;
|
||||
@ -7663,7 +7663,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
TRACE("Blt from surface %p to rendertarget %p\n", src_surface, dst_surface);
|
||||
|
||||
@@ -3458,6 +4281,7 @@
|
||||
@@ -3602,6 +4425,7 @@
|
||||
wined3d_texture_set_color_key(src_surface->container, WINEDDSD_CKSRCBLT, NULL);
|
||||
}
|
||||
|
||||
@ -7671,7 +7671,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
context = context_acquire(device, dst_surface);
|
||||
surface_blt_to_drawable(device, context, filter,
|
||||
flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_ALPHATEST),
|
||||
@@ -3470,6 +4294,18 @@
|
||||
@@ -3614,6 +4438,18 @@
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
||||
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);
|
||||
@ -7690,7 +7690,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -3544,6 +4380,7 @@
|
||||
@@ -3688,6 +4524,7 @@
|
||||
{
|
||||
TRACE("surface %p, new location %#x, w %u, h %u.\n", surface, location, w, h);
|
||||
|
||||
@ -7698,7 +7698,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (((surface->resource.locations & WINED3D_LOCATION_TEXTURE_RGB) && !(location & WINED3D_LOCATION_TEXTURE_RGB))
|
||||
|| (!(surface->resource.locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
&& (location & WINED3D_LOCATION_TEXTURE_RGB)))
|
||||
@@ -3552,6 +4389,15 @@
|
||||
@@ -3696,6 +4533,15 @@
|
||||
surface->ds_current_size.cx = w;
|
||||
surface->ds_current_size.cy = h;
|
||||
surface->resource.locations = location;
|
||||
@ -7714,7 +7714,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@@ -3566,7 +4412,11 @@
|
||||
@@ -3710,7 +4556,11 @@
|
||||
/* TODO: Make this work for modes other than FBO */
|
||||
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) return;
|
||||
|
||||
@ -7726,7 +7726,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
{
|
||||
w = surface->ds_current_size.cx;
|
||||
h = surface->ds_current_size.cy;
|
||||
@@ -3592,7 +4442,11 @@
|
||||
@@ -3736,7 +4586,11 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@ -7738,7 +7738,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
{
|
||||
TRACE("Surface was discarded, no need copy data.\n");
|
||||
switch (location)
|
||||
@@ -3609,6 +4463,7 @@
|
||||
@@ -3753,6 +4607,7 @@
|
||||
default:
|
||||
FIXME("Unhandled location %#x\n", location);
|
||||
}
|
||||
@ -7746,7 +7746,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
surface->resource.locations &= ~WINED3D_LOCATION_DISCARDED;
|
||||
surface->resource.locations |= location;
|
||||
surface->ds_current_size.cx = surface->resource.width;
|
||||
@@ -3620,6 +4475,19 @@
|
||||
@@ -3764,6 +4619,19 @@
|
||||
{
|
||||
FIXME("No up to date depth stencil location.\n");
|
||||
surface->resource.locations |= location;
|
||||
@ -7766,7 +7766,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
surface->ds_current_size.cx = surface->resource.width;
|
||||
surface->ds_current_size.cy = surface->resource.height;
|
||||
return;
|
||||
@@ -3684,9 +4552,13 @@
|
||||
@@ -3828,9 +4696,13 @@
|
||||
|
||||
context_invalidate_state(context, STATE_FRAMEBUFFER);
|
||||
|
||||
@ -7780,7 +7780,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */
|
||||
}
|
||||
else if (location == WINED3D_LOCATION_DRAWABLE)
|
||||
@@ -3702,9 +4574,13 @@
|
||||
@@ -3846,9 +4718,13 @@
|
||||
|
||||
context_invalidate_state(context, STATE_FRAMEBUFFER);
|
||||
|
||||
@ -7794,7 +7794,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */
|
||||
}
|
||||
else
|
||||
@@ -3712,6 +4588,7 @@
|
||||
@@ -3856,6 +4732,7 @@
|
||||
ERR("Invalid location (%#x) specified.\n", location);
|
||||
}
|
||||
|
||||
@ -7802,7 +7802,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
surface->resource.locations |= location;
|
||||
surface->ds_current_size.cx = surface->resource.width;
|
||||
surface->ds_current_size.cy = surface->resource.height;
|
||||
@@ -3757,6 +4634,135 @@
|
||||
@@ -3901,6 +4778,135 @@
|
||||
TRACE("Surface was discarded, nothing to do.\n");
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@ -7938,7 +7938,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
if (wined3d_settings.offscreen_rendering_mode == ORM_FBO
|
||||
&& wined3d_resource_is_offscreen(&surface->container->resource))
|
||||
@@ -3766,6 +4772,7 @@
|
||||
@@ -3910,6 +4916,7 @@
|
||||
}
|
||||
|
||||
surface_get_rect(surface, NULL, &r);
|
||||
@ -7946,7 +7946,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
wined3d_resource_load_location(&surface->resource, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
surface_blt_to_drawable(surface->resource.device, context,
|
||||
WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r);
|
||||
@@ -3834,6 +4841,66 @@
|
||||
@@ -3978,6 +4985,66 @@
|
||||
RECT rect = {0, 0, surface->resource.width, surface->resource.height};
|
||||
|
||||
surface_blt_fbo(device, context, WINED3D_TEXF_POINT, surface, src_location,
|
||||
@ -8013,7 +8013,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
&rect, surface, dst_location, &rect);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3843,6 +4910,7 @@
|
||||
@@ -3987,6 +5054,7 @@
|
||||
|
||||
if (srgb)
|
||||
{
|
||||
@ -8021,7 +8021,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if ((surface->resource.locations & (WINED3D_LOCATION_TEXTURE_RGB | surface->resource.map_binding))
|
||||
== WINED3D_LOCATION_TEXTURE_RGB)
|
||||
{
|
||||
@@ -3871,6 +4939,39 @@
|
||||
@@ -4015,6 +5083,39 @@
|
||||
wined3d_resource_prepare_system_memory(&surface->resource);
|
||||
wined3d_resource_load_location(&surface->resource, context, WINED3D_LOCATION_SYSMEM);
|
||||
}
|
||||
@ -8061,7 +8061,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
wined3d_texture_prepare_texture(texture, context, srgb);
|
||||
wined3d_texture_bind_and_dirtify(texture, context, srgb);
|
||||
@@ -3892,7 +4993,11 @@
|
||||
@@ -4036,7 +5137,11 @@
|
||||
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
|
||||
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
|
||||
* getting called. */
|
||||
@ -8073,7 +8073,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
{
|
||||
TRACE("Removing the pbo attached to surface %p.\n", surface);
|
||||
|
||||
@@ -3901,6 +5006,7 @@
|
||||
@@ -4045,6 +5150,7 @@
|
||||
else
|
||||
surface->resource.map_binding = WINED3D_LOCATION_SYSMEM;
|
||||
|
||||
@ -8081,7 +8081,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
wined3d_resource_prepare_map_memory(&surface->resource, context);
|
||||
wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding);
|
||||
wined3d_resource_free_bo(&surface->resource);
|
||||
@@ -3908,6 +5014,14 @@
|
||||
@@ -4052,6 +5158,14 @@
|
||||
}
|
||||
|
||||
wined3d_resource_get_memory(&surface->resource, surface->resource.locations, &data);
|
||||
@ -8096,7 +8096,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (format.convert)
|
||||
{
|
||||
/* This code is entered for texture formats which need a fixup. */
|
||||
@@ -3953,6 +5067,7 @@
|
||||
@@ -4097,6 +5211,7 @@
|
||||
|
||||
surface_upload_data(surface, gl_info, &format, &src_rect, src_row_pitch, &dst_point, srgb, &data);
|
||||
|
||||
@ -8104,7 +8104,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
HeapFree(GetProcessHeap(), 0, mem);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3976,6 +5091,31 @@
|
||||
@@ -4120,6 +5235,31 @@
|
||||
struct wined3d_context *context, DWORD location)
|
||||
{
|
||||
struct wined3d_surface *surface = surface_from_resource(resource);
|
||||
@ -8136,7 +8136,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location));
|
||||
@@ -3983,6 +5123,7 @@
|
||||
@@ -4127,6 +5267,7 @@
|
||||
if (surface->resource.usage & WINED3DUSAGE_DEPTHSTENCIL)
|
||||
{
|
||||
if (location == WINED3D_LOCATION_TEXTURE_RGB
|
||||
@ -8144,7 +8144,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
&& surface->resource.locations & (WINED3D_LOCATION_DRAWABLE | WINED3D_LOCATION_DISCARDED))
|
||||
{
|
||||
surface_load_ds_location(surface, context, location);
|
||||
@@ -4002,11 +5143,53 @@
|
||||
@@ -4146,11 +5287,53 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -8200,7 +8200,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
switch (location)
|
||||
@@ -4015,6 +5198,7 @@
|
||||
@@ -4159,6 +5342,7 @@
|
||||
case WINED3D_LOCATION_USER_MEMORY:
|
||||
case WINED3D_LOCATION_SYSMEM:
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
@ -8208,7 +8208,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
surface_load_sysmem(surface, context, location);
|
||||
break;
|
||||
|
||||
@@ -4032,6 +5216,24 @@
|
||||
@@ -4176,6 +5360,24 @@
|
||||
if (FAILED(hr = surface_load_texture(surface, context,
|
||||
location == WINED3D_LOCATION_TEXTURE_SRGB)))
|
||||
return;
|
||||
@ -8233,7 +8233,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -4039,12 +5241,21 @@
|
||||
@@ -4183,12 +5385,21 @@
|
||||
break;
|
||||
}
|
||||
|
||||
@ -8255,7 +8255,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
static HRESULT ffp_blit_alloc(struct wined3d_device *device) { return WINED3D_OK; }
|
||||
@@ -4138,6 +5349,7 @@
|
||||
@@ -4282,6 +5493,7 @@
|
||||
const RECT *dst_rect, const struct wined3d_color *color)
|
||||
{
|
||||
const RECT draw_rect = {0, 0, dst_surface->resource.width, dst_surface->resource.height};
|
||||
@ -8263,7 +8263,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
struct wined3d_rendertarget_view view, *view_ptr = &view;
|
||||
struct wined3d_fb_state fb = {&view_ptr, NULL, 1};
|
||||
struct wined3d_texture *texture = dst_surface->container;
|
||||
@@ -4158,6 +5370,21 @@
|
||||
@@ -4302,6 +5514,21 @@
|
||||
view.sub_resource_idx = dst_surface->texture_layer * texture->level_count + dst_surface->texture_level;
|
||||
|
||||
device_clear_render_targets(device, 1, &fb, 1, dst_rect, &draw_rect, WINED3DCLEAR_TARGET, color, 0.0f, 0);
|
||||
@ -8285,7 +8285,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -4166,6 +5393,7 @@
|
||||
@@ -4310,6 +5537,7 @@
|
||||
const RECT *dst_rect, float depth)
|
||||
{
|
||||
const RECT draw_rect = {0, 0, dst_surface->resource.width, dst_surface->resource.height};
|
||||
@ -8293,7 +8293,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
struct wined3d_rendertarget_view view;
|
||||
struct wined3d_fb_state fb = {NULL, &view};
|
||||
struct wined3d_texture *texture = dst_surface->container;
|
||||
@@ -4181,6 +5409,20 @@
|
||||
@@ -4325,6 +5553,20 @@
|
||||
view.sub_resource_idx = dst_surface->texture_layer * texture->level_count + dst_surface->texture_level;
|
||||
|
||||
device_clear_render_targets(device, 0, &fb, 1, dst_rect, &draw_rect, WINED3DCLEAR_ZBUFFER, 0, depth, 0);
|
||||
@ -8314,7 +8314,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -4338,6 +5580,7 @@
|
||||
@@ -4482,6 +5724,7 @@
|
||||
int bpp, srcheight, srcwidth, dstheight, dstwidth, width;
|
||||
const struct wined3d_format *src_format, *dst_format;
|
||||
struct wined3d_texture *src_texture = NULL;
|
||||
@ -8322,7 +8322,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
void *src_data = NULL, *dst_data = NULL;
|
||||
UINT src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch;
|
||||
const BYTE *sbase = NULL;
|
||||
@@ -4368,6 +5611,23 @@
|
||||
@@ -4512,6 +5755,23 @@
|
||||
wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch);
|
||||
src_data = dst_data;
|
||||
src_row_pitch = dst_row_pitch;
|
||||
@ -8346,7 +8346,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
src_format = dst_surface->resource.format;
|
||||
dst_format = src_format;
|
||||
}
|
||||
@@ -4376,12 +5636,14 @@
|
||||
@@ -4520,12 +5780,14 @@
|
||||
dst_format = dst_surface->resource.format;
|
||||
if (src_surface)
|
||||
{
|
||||
@ -8361,7 +8361,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (dst_surface->resource.format->id != src_surface->resource.format->id)
|
||||
{
|
||||
if (!(src_texture = surface_convert_format(src_surface, dst_format->id)))
|
||||
@@ -4392,9 +5654,13 @@
|
||||
@@ -4536,9 +5798,13 @@
|
||||
}
|
||||
src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture, 0));
|
||||
}
|
||||
@ -8375,7 +8375,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
src_format = src_surface->resource.format;
|
||||
}
|
||||
else
|
||||
@@ -4402,8 +5668,12 @@
|
||||
@@ -4546,8 +5812,12 @@
|
||||
src_format = dst_format;
|
||||
}
|
||||
|
||||
@ -8388,7 +8388,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
bpp = dst_surface->resource.format->byte_count;
|
||||
@@ -4414,12 +5684,24 @@
|
||||
@@ -4558,12 +5828,24 @@
|
||||
width = (dst_rect->right - dst_rect->left) * bpp;
|
||||
|
||||
if (src_surface)
|
||||
@ -8413,7 +8413,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
if (src_format->flags & dst_format->flags & WINED3DFMT_FLAG_BLOCKS)
|
||||
{
|
||||
@@ -4454,7 +5736,11 @@
|
||||
@@ -4598,7 +5880,11 @@
|
||||
}
|
||||
|
||||
hr = surface_cpu_blt_compressed(sbase, dbuf,
|
||||
@ -8425,7 +8425,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
src_format, flags, fx);
|
||||
goto release;
|
||||
}
|
||||
@@ -4462,7 +5748,11 @@
|
||||
@@ -4606,7 +5892,11 @@
|
||||
/* First, all the 'source-less' blits */
|
||||
if (flags & WINEDDBLT_COLORFILL)
|
||||
{
|
||||
@ -8437,7 +8437,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
flags &= ~WINEDDBLT_COLORFILL;
|
||||
}
|
||||
|
||||
@@ -4476,12 +5766,21 @@
|
||||
@@ -4620,12 +5910,21 @@
|
||||
switch (fx->dwROP)
|
||||
{
|
||||
case BLACKNESS:
|
||||
@ -8459,7 +8459,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
break;
|
||||
case SRCCOPY: /* Well, we do that below? */
|
||||
break;
|
||||
@@ -4532,6 +5831,7 @@
|
||||
@@ -4676,6 +5975,7 @@
|
||||
for (y = 0; y < dstheight; ++y)
|
||||
{
|
||||
memcpy(dbuf, sbuf, width);
|
||||
@ -8467,7 +8467,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
sbuf += src_row_pitch;
|
||||
dbuf += dst_row_pitch;
|
||||
}
|
||||
@@ -4545,6 +5845,21 @@
|
||||
@@ -4689,6 +5989,21 @@
|
||||
{
|
||||
sbuf -= src_row_pitch;
|
||||
dbuf -= dst_row_pitch;
|
||||
@ -8489,7 +8489,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
memcpy(dbuf, sbuf, width);
|
||||
}
|
||||
}
|
||||
@@ -4554,8 +5869,13 @@
|
||||
@@ -4698,8 +6013,13 @@
|
||||
for (y = 0; y < dstheight; ++y)
|
||||
{
|
||||
memmove(dbuf, sbuf, width);
|
||||
@ -8503,7 +8503,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4564,9 +5884,15 @@
|
||||
@@ -4708,9 +6028,15 @@
|
||||
/* Stretching in y direction only. */
|
||||
for (y = sy = 0; y < dstheight; ++y, sy += yinc)
|
||||
{
|
||||
@ -8519,7 +8519,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4576,6 +5902,7 @@
|
||||
@@ -4720,6 +6046,7 @@
|
||||
int last_sy = -1;
|
||||
for (y = sy = 0; y < dstheight; ++y, sy += yinc)
|
||||
{
|
||||
@ -8527,7 +8527,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
sbuf = sbase + (sy >> 16) * src_row_pitch;
|
||||
|
||||
if ((sy >> 16) == (last_sy >> 16))
|
||||
@@ -4583,6 +5910,15 @@
|
||||
@@ -4727,6 +6054,15 @@
|
||||
/* This source row is the same as last source row -
|
||||
* Copy the already stretched row. */
|
||||
memcpy(dbuf, dbuf - dst_row_pitch, width);
|
||||
@ -8543,7 +8543,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4629,6 +5965,7 @@
|
||||
@@ -4773,6 +6109,7 @@
|
||||
}
|
||||
#undef STRETCH_ROW
|
||||
}
|
||||
@ -8551,7 +8551,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
dbuf += dst_row_pitch;
|
||||
last_sy = sy;
|
||||
}
|
||||
@@ -4637,6 +5974,16 @@
|
||||
@@ -4781,6 +6118,16 @@
|
||||
else
|
||||
{
|
||||
LONG dstyinc = dst_row_pitch, dstxinc = bpp;
|
||||
@ -8568,7 +8568,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
DWORD keylow = 0xffffffff, keyhigh = 0, keymask = 0xffffffff;
|
||||
DWORD destkeylow = 0x0, destkeyhigh = 0xffffffff, destkeymask = 0xffffffff;
|
||||
if (flags & (WINEDDBLT_KEYSRC | WINEDDBLT_KEYDEST | WINEDDBLT_KEYSRCOVERRIDE | WINEDDBLT_KEYDESTOVERRIDE))
|
||||
@@ -4686,7 +6033,11 @@
|
||||
@@ -4830,7 +6177,11 @@
|
||||
LONG tmpxy;
|
||||
dTopLeft = dbuf;
|
||||
dTopRight = dbuf + ((dstwidth - 1) * bpp);
|
||||
@ -8580,7 +8580,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
dBottomRight = dBottomLeft + ((dstwidth - 1) * bpp);
|
||||
|
||||
if (fx->dwDDFX & WINEDDBLTFX_ARITHSTRETCHY)
|
||||
@@ -4763,6 +6114,7 @@
|
||||
@@ -4907,6 +6258,7 @@
|
||||
flags &= ~(WINEDDBLT_DDFX);
|
||||
}
|
||||
|
||||
@ -8588,7 +8588,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
#define COPY_COLORKEY_FX(type) \
|
||||
do { \
|
||||
const type *s; \
|
||||
@@ -4784,6 +6136,29 @@
|
||||
@@ -4928,6 +6280,29 @@
|
||||
d = (type *)(((BYTE *)d) + dstyinc); \
|
||||
} \
|
||||
} while(0)
|
||||
@ -8618,7 +8618,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
switch (bpp)
|
||||
{
|
||||
@@ -4802,7 +6177,11 @@
|
||||
@@ -4946,7 +6321,11 @@
|
||||
BYTE *d = dbuf, *dx;
|
||||
for (y = sy = 0; y < dstheight; ++y, sy += yinc)
|
||||
{
|
||||
@ -8630,7 +8630,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
dx = d;
|
||||
for (x = sx = 0; x < dstwidth; ++x, sx+= xinc)
|
||||
{
|
||||
@@ -4833,10 +6212,12 @@
|
||||
@@ -4977,10 +6356,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -8643,7 +8643,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
error:
|
||||
if (flags && FIXME_ON(d3d_surface))
|
||||
{
|
||||
@@ -4844,6 +6225,7 @@
|
||||
@@ -4988,6 +6369,7 @@
|
||||
}
|
||||
|
||||
release:
|
||||
@ -8651,7 +8651,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (dst_data)
|
||||
{
|
||||
wined3d_resource_release_map_ptr(&dst_surface->resource, context);
|
||||
@@ -4862,6 +6244,14 @@
|
||||
@@ -5006,6 +6388,14 @@
|
||||
wined3d_texture_decref(src_texture);
|
||||
if (context)
|
||||
context_release(context);
|
||||
@ -8666,7 +8666,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
return hr;
|
||||
}
|
||||
@@ -4896,6 +6286,7 @@
|
||||
@@ -5040,6 +6430,7 @@
|
||||
cpu_blit_depth_fill,
|
||||
};
|
||||
|
||||
@ -8674,7 +8674,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect,
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags,
|
||||
const WINEDDBLTFX *fx, enum wined3d_texture_filter_type filter)
|
||||
@@ -4903,6 +6294,16 @@
|
||||
@@ -5047,6 +6438,16 @@
|
||||
struct wined3d_swapchain *src_swapchain, *dst_swapchain;
|
||||
struct wined3d_device *device = dst_surface->resource.device;
|
||||
DWORD src_ds_flags, dst_ds_flags;
|
||||
@ -8691,7 +8691,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
BOOL scale, convert;
|
||||
|
||||
static const DWORD simple_blit = WINEDDBLT_ASYNC
|
||||
@@ -4911,6 +6312,106 @@
|
||||
@@ -5055,6 +6456,106 @@
|
||||
| WINEDDBLT_DEPTHFILL
|
||||
| WINEDDBLT_DONOTWAIT;
|
||||
|
||||
@ -8798,7 +8798,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (!device->d3d_initialized)
|
||||
{
|
||||
WARN("D3D not initialized, using fallback.\n");
|
||||
@@ -4953,8 +6454,13 @@
|
||||
@@ -5097,8 +6598,13 @@
|
||||
}
|
||||
|
||||
scale = src_surface
|
||||
@ -8812,7 +8812,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
convert = src_surface && src_surface->resource.format->id != dst_surface->resource.format->id;
|
||||
|
||||
dst_ds_flags = dst_surface->resource.format->flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL);
|
||||
@@ -4972,6 +6478,7 @@
|
||||
@@ -5116,6 +6622,7 @@
|
||||
TRACE("Depth fill.\n");
|
||||
|
||||
if (!surface_convert_depth_to_float(dst_surface, fx->u5.dwFillDepth, &depth))
|
||||
@ -8820,7 +8820,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
return;
|
||||
|
||||
if (SUCCEEDED(wined3d_surface_depth_fill(dst_surface, dst_rect, depth)))
|
||||
@@ -4990,6 +6497,32 @@
|
||||
@@ -5134,6 +6641,32 @@
|
||||
* implement those in the CPU blitter at the moment. */
|
||||
if ((dst_surface->resource.locations & dst_surface->resource.map_binding)
|
||||
&& (!src_surface || (src_surface->resource.locations & src_surface->resource.map_binding)))
|
||||
@ -8853,7 +8853,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
{
|
||||
if (scale)
|
||||
TRACE("Not doing sysmem blit because of scaling.\n");
|
||||
@@ -5008,6 +6541,7 @@
|
||||
@@ -5152,6 +6685,7 @@
|
||||
if (!surface_convert_color_to_float(dst_surface, fx->u5.dwFillColor, &color))
|
||||
goto fallback;
|
||||
|
||||
@ -8861,7 +8861,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
if (SUCCEEDED(surface_color_fill(dst_surface, dst_rect, &color)))
|
||||
return;
|
||||
}
|
||||
@@ -5018,6 +6552,18 @@
|
||||
@@ -5162,6 +6696,18 @@
|
||||
/* Upload */
|
||||
if ((src_surface->resource.locations & WINED3D_LOCATION_SYSMEM)
|
||||
&& !(dst_surface->resource.locations & WINED3D_LOCATION_SYSMEM))
|
||||
@ -8880,7 +8880,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
{
|
||||
if (scale)
|
||||
TRACE("Not doing upload because of scaling.\n");
|
||||
@@ -5025,6 +6571,7 @@
|
||||
@@ -5169,6 +6715,7 @@
|
||||
TRACE("Not doing upload because of format conversion.\n");
|
||||
else
|
||||
{
|
||||
@ -8888,7 +8888,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
POINT dst_point = {dst_rect->left, dst_rect->top};
|
||||
|
||||
if (SUCCEEDED(surface_upload_from_surface(dst_surface, &dst_point, src_surface, src_rect)))
|
||||
@@ -5037,6 +6584,15 @@
|
||||
@@ -5181,6 +6728,15 @@
|
||||
context_release(context);
|
||||
}
|
||||
return;
|
||||
@ -8904,7 +8904,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5061,6 +6617,7 @@
|
||||
@@ -5205,6 +6761,7 @@
|
||||
wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0);
|
||||
dst_swapchain->desc.swap_effect = swap_effect;
|
||||
|
||||
@ -8912,7 +8912,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5257,6 +6814,50 @@
|
||||
@@ -5401,6 +6958,50 @@
|
||||
wined3d_surface_location_invalidated,
|
||||
wined3d_surface_load_location,
|
||||
};
|
||||
@ -8963,7 +8963,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
|
||||
static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_texture *container,
|
||||
const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags)
|
||||
@@ -5324,7 +6925,11 @@
|
||||
@@ -5468,7 +7069,11 @@
|
||||
}
|
||||
|
||||
surface->container = container;
|
||||
@ -8975,7 +8975,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
list_init(&surface->renderbuffers);
|
||||
list_init(&surface->overlays);
|
||||
|
||||
@@ -5356,9 +6961,14 @@
|
||||
@@ -5500,9 +7105,14 @@
|
||||
if (surface->resource.map_binding == WINED3D_LOCATION_DIB)
|
||||
{
|
||||
wined3d_resource_free_sysmem(&surface->resource);
|
||||
@ -8990,7 +8990,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
}
|
||||
|
||||
return hr;
|
||||
@@ -5385,7 +6995,11 @@
|
||||
@@ -5529,7 +7139,11 @@
|
||||
if (FAILED(hr = surface_init(object, container, desc, target, level, layer, flags)))
|
||||
{
|
||||
WARN("Failed to initialize surface, returning %#x.\n", hr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user