[Mingw-w64-public] [PATCH] Add -Wno-expansion-to-defined when building with -Wextra

2018-11-08 Thread Steve Lhomme
Otherwise it leads to a lot of annoying warnings in intrin-impl.h like:

 #if __INTRINSIC_PROLOG(__stosd)
 ^~~
./../mingw-w64-headers/include/psdk_inc/intrin-impl.h:1622:1: warning: this use 
of "defined" may not be portable [-Wexpansion-to-defined]
./../mingw-w64-headers/include/psdk_inc/intrin-impl.h:1622:1: warning: this use 
of "defined" may not be portable [-Wexpansion-to-defined]
./../mingw-w64-headers/include/psdk_inc/intrin-impl.h:1622:1: warning: this use 
of "defined" may not be portable [-Wexpansion-to-defined]
./../mingw-w64-headers/include/psdk_inc/intrin-impl.h:1631:1: warning: this use 
of "defined" may not be portable [-Wexpansion-to-defined]

on each call to __INTRINSIC_PROLOG
---
 mingw-w64-crt/configure.ac | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/mingw-w64-crt/configure.ac b/mingw-w64-crt/configure.ac
index b388cb20..f2e0360e 100644
--- a/mingw-w64-crt/configure.ac
+++ b/mingw-w64-crt/configure.ac
@@ -400,19 +400,19 @@ AC_MSG_RESULT([Level $warning_level])
 AS_CASE([$warning_level],
   [0],[ADD_C_CXX_WARNING_FLAGS="-Wall"],
   [1],[
-ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra"
+ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wno-expansion-to-defined"
 ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration"],
   [2],[
-ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing -Wshadow 
-Wpacked -Winline" 
+ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wno-expansion-to-defined -Wformat 
-Wstrict-aliasing -Wshadow -Wpacked -Winline" 
 ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration"],
   [3],[
-ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing -Wshadow 
-Wpacked -Winline" 
+ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wno-expansion-to-defined -Wformat 
-Wstrict-aliasing -Wshadow -Wpacked -Winline" 
 ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration 
-Wmissing-noreturn -Wmissing-prototypes"],
   [4],[
-ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing=2 
-Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked -Winline -Werror 
-pedantic" 
+ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wno-expansion-to-defined -Wformat 
-Wstrict-aliasing=2 -Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked 
-Winline -Werror -pedantic" 
 ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration 
-Wmissing-noreturn -Wmissing-prototypes"],
   [5],[
-ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wformat -Wstrict-aliasing=2 
-Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked -Wredundant-decls 
-Winline -Werror -Wfatal-errors -pedantic -pedantic-errors" 
+ADD_C_CXX_WARNING_FLAGS="-Wall -Wextra -Wno-expansion-to-defined -Wformat 
-Wstrict-aliasing=2 -Wsystem-headers -Wshadow -Wmissing-declarations -Wpacked 
-Wredundant-decls -Winline -Werror -Wfatal-errors -pedantic -pedantic-errors" 
 ADD_C_ONLY_WARNING_FLAGS="-Wimplicit-function-declaration 
-Wmissing-noreturn -Wmissing-prototypes"]
)
 
-- 
2.17.1



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH v2] windowsapp: add gamemode.dll APIs

2018-11-08 Thread Steve Lhomme
---
 mingw-w64-crt/Makefile.am |  1 +
 mingw-w64-crt/lib-common/gamemode.def |  7 +++
 mingw-w64-crt/lib-common/windowsapp.mri   |  1 +
 mingw-w64-crt/lib32/gamemode.def  |  7 +++
 mingw-w64-headers/include/expandedresources.h | 20 +++
 5 files changed, 36 insertions(+)
 create mode 100644 mingw-w64-crt/lib-common/gamemode.def
 create mode 100644 mingw-w64-crt/lib32/gamemode.def
 create mode 100644 mingw-w64-headers/include/expandedresources.h

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 4a4ce5a2..735e21bb 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -1730,6 +1730,7 @@ endif
$(RANLIB) $@
 
 %/libwindowsapp.a: lib-common/windowsapp.mri \
+   %/libgamemode.a \
%/libapi-ms-win-core-com-l1-1-1.a \
%/libapi-ms-win-core-com-l2-1-1.a \
%/libapi-ms-win-core-com-midlproxystub-l1-1-0.a \
diff --git a/mingw-w64-crt/lib-common/gamemode.def 
b/mingw-w64-crt/lib-common/gamemode.def
new file mode 100644
index ..9fb96813
--- /dev/null
+++ b/mingw-w64-crt/lib-common/gamemode.def
@@ -0,0 +1,7 @@
+LIBRARY gamemode.dll
+
+EXPORTS
+
+GetExpandedResourceExclusiveCpuCount
+HasExpandedResources
+ReleaseExclusiveCpuSets
diff --git a/mingw-w64-crt/lib-common/windowsapp.mri 
b/mingw-w64-crt/lib-common/windowsapp.mri
index f7e17753..003b7cc2 100644
--- a/mingw-w64-crt/lib-common/windowsapp.mri
+++ b/mingw-w64-crt/lib-common/windowsapp.mri
@@ -1,4 +1,5 @@
 CREATE libwindowsapp.a
+ADDLIB libgamemode.a
 ADDLIB libapi-ms-win-core-com-l1-1-1.a
 ADDLIB libapi-ms-win-core-com-l2-1-1.a
 ADDLIB libapi-ms-win-core-com-midlproxystub-l1-1-0.a
diff --git a/mingw-w64-crt/lib32/gamemode.def b/mingw-w64-crt/lib32/gamemode.def
new file mode 100644
index ..9a11ad6a
--- /dev/null
+++ b/mingw-w64-crt/lib32/gamemode.def
@@ -0,0 +1,7 @@
+LIBRARY gamemode.dll
+
+EXPORTS
+
+GetExpandedResourceExclusiveCpuCount@4
+HasExpandedResources@4
+ReleaseExclusiveCpuSets@0
diff --git a/mingw-w64-headers/include/expandedresources.h 
b/mingw-w64-headers/include/expandedresources.h
new file mode 100644
index ..fa9cb0d6
--- /dev/null
+++ b/mingw-w64-headers/include/expandedresources.h
@@ -0,0 +1,20 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef __EXPANDEDRESOURCES_H__
+#define __EXPANDEDRESOURCES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI GetExpandedResourceExclusiveCpuCount(ULONG *exclusiveCpuCount);
+HRESULT WINAPI HasExpandedResources(BOOL *hasExpandedResources);
+HRESULT WINAPI ReleaseExclusiveCpuSets(VOID);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __EXPANDEDRESOURCES_H__ */
-- 
2.17.1



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] windowsapp: add gamemode.dll APIs

2018-11-08 Thread Steve Lhomme



On 08/11/2018 14:19, Liu Hao wrote:

在 2018/11/8 下午8:39, Steve Lhomme 写道:

diff --git a/mingw-w64-crt/lib32/gamemode.def
b/mingw-w64-crt/lib32/gamemode.def
new file mode 100644
index ..d908c1d2
--- /dev/null
+++ b/mingw-w64-crt/lib32/gamemode.def
@@ -0,0 +1,7 @@
+LIBRARY gamemode.dll
+
+EXPORTS
+
+GetExpandedResourceExclusiveCpuCount@4
+HasExpandedResources@4
+ReleaseExclusiveCpuSets

The last entry looks incorrect. If it indeed uses the `__stdcall`
calling convention then there should be an `@0` suffix.


OK, I didn't know this existed.


diff --git a/mingw-w64-headers/include/expandedresources.h
b/mingw-w64-headers/include/expandedresources.h
new file mode 100644
index ..c02b3803
--- /dev/null
+++ b/mingw-w64-headers/include/expandedresources.h
@@ -0,0 +1,20 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef __EXPANDEDRESOURCES_H__
+#define __EXPANDEDRESOURCES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT GetExpandedResourceExclusiveCpuCount(ULONG *exclusiveCpuCount);
+HRESULT HasExpandedResources(BOOL *hasExpandedResources);
+HRESULT ReleaseExclusiveCpuSets();

You missed the `WINAPI` calling convention.


Indeed.



In case of C, a function taking no parameters shall have `(void)` as its
parameter list. Absence of the `void` makes the function take arbitrary
number of parameters, which is almost always undesired.


OK, I'll fix that in the next version.


___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH] windowsapp: add gamemode.dll APIs

2018-11-08 Thread Steve Lhomme

On 08/11/2018 14:24, Jacek Caban wrote:

On 11/08/2018 02:07 PM, Martin Storsjö wrote:

On Thu, 8 Nov 2018, Steve Lhomme wrote:


The 3 calls defined in expandedresources.h are supposed to be linked
with windowsapp.lib but actually use gamemode.dll.

The DLL should be available on Win32 as well.

---
  mingw-w64-crt/Makefile.am |  1 +
  mingw-w64-crt/lib-common/gamemode.def |  7 +++
  mingw-w64-crt/lib-common/windowsapp.mri   |  1 +
  mingw-w64-crt/lib32/gamemode.def  |  7 +++
  mingw-w64-crt/lib64/Makefile.am   |  1 +
  mingw-w64-crt/lib64/gamemode.def  |  7 +++
  mingw-w64-crt/libarm32/Makefile.am    |  1 +
  mingw-w64-crt/libarm32/gamemode.def   |  7 +++
  mingw-w64-headers/include/expandedresources.h | 20 +++
  9 files changed, 52 insertions(+)
  create mode 100644 mingw-w64-crt/lib-common/gamemode.def
  create mode 100644 mingw-w64-crt/lib32/gamemode.def
  create mode 100644 mingw-w64-crt/lib64/gamemode.def
  create mode 100644 mingw-w64-crt/libarm32/gamemode.def
  create mode 100644 mingw-w64-headers/include/expandedresources.h

There shouldn't be any need to add the def files to lib64/libarm32 if
you add it to lib-common. And please add installing the libgamemode.a
to libarm64/Makefile.am as well.

Should we distribute libgamemode.a at all? I don't see such importlib in


No it doesn't exist in the MS SDKs.


windows SDK, so libwindowsapp.a should be used instead. This means that
changes to lib*/Makefile.am files should be dropped from this patch.


OK I'll do that.


___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 2/2] crt: build libraries using our own headers

2018-11-08 Thread Steve Lhomme

On 08/11/2018 14:36, Jacek Caban wrote:

On 11/08/2018 02:27 PM, Steve Lhomme wrote:

In any case it doesn't seem right to rely on the system to build
something that will overwrite it in the end.

You change crt module, which will not override system headers (maybe
system crt, if that's how you condfigured it).

I guess your argument holds when top-level mingw-w64 configure is used
to build both crt and headers. When using top-level configure, I think
that the behaviour that you described is desired. Is it what you're
using? If yes, then that's the place where such fix would be better (I
must admit that I don't have experience with using top-level configure).


Yes that's what I used. I didn't even know it was possible to have a 
different configuration per folder. It seems odd that when you're adding 
a header in include and some code in CRT it doesn't have to match.


In that case how would the top configure enforce the same config on both 
sub-folders ? Should there be a list of includes generated during 
configure that will need be passed to sub-configure ?



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] [PATCH 2/2] crt: build libraries using our own headers

2018-11-08 Thread Steve Lhomme

On 08/11/2018 14:03, Martin Storsjö wrote:

On Thu, 8 Nov 2018, Steve Lhomme wrote:


don't depend on possibly outdated system ones
---
mingw-w64-crt/Makefile.am | 220 +++---
1 file changed, 110 insertions(+), 110 deletions(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 68c966e8..4a4ce5a2 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -526,110 +526,110 @@ endif
lib32_LIBRARIES += lib32/libshell32.a
lib32_libshell32_a_SOURCES = $(src_libshell32)
lib32_libshell32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
-lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) 
$(sysincludes)


It looks to me like extra_include only gets you mingw-w64-crt/include, 
not everything from mingw-w64-headers/{crt,include} - this probably 
isn't enough for what you intended?


That said I don't have much issue with the current setup of requiring 
the headers to be installed/updated before; I remember cases where the 
compiler would warn lots about the headers if they were in a different 
location, because the compiler would normally auto-silence a whole set 
of warnings for things that are in "system header" directories (next 
to the compiler).


I'm using an outdated version of msys2 with an old mingw64 and some new 
things used by the current master are not found there and not looked 
elsewhere.


In any case it doesn't seem right to rely on the system to build 
something that will overwrite it in the end.



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 1/2] crt: use our own CRT headers to build

2018-11-08 Thread Steve Lhomme
The system ones may be outdated.
---
 mingw-w64-crt/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index e27557fc..68c966e8 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -57,7 +57,7 @@ LDFLAGSARM32= -L$(top_builddir)/libarm32
 LDFLAGSARM64= -L$(top_builddir)/libarm64
 LDFLAGS32=-m32 -L$(top_builddir)/lib32
 LDFLAGS64=-m64 -L$(top_builddir)/lib64
-extra_include=-I$(top_srcdir)/include
+extra_include=-I$(top_srcdir)/include -I$(top_srcdir)/../mingw-w64-headers/crt 
-I$(top_srcdir)/../mingw-w64-headers/include
 processed_defs=
 
 noinst_LIBRARIES =
-- 
2.17.1



___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH 2/2] crt: build libraries using our own headers

2018-11-08 Thread Steve Lhomme
don't depend on possibly outdated system ones
---
 mingw-w64-crt/Makefile.am | 220 +++---
 1 file changed, 110 insertions(+), 110 deletions(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 68c966e8..4a4ce5a2 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -526,110 +526,110 @@ endif
 lib32_LIBRARIES += lib32/libshell32.a
 lib32_libshell32_a_SOURCES = $(src_libshell32)
 lib32_libshell32_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
-lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libshell32_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdinput.a
 lib32_libdinput_a_SOURCES = $(src_libdinput)
 lib32_libdinput_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
-lib32_libdinput_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdinput_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdinput8.a
 lib32_libdinput8_a_SOURCES = $(src_libdinput8)
 lib32_libdinput8_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
-lib32_libdinput8_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdinput8_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdmoguids.a
 lib32_libdmoguids_a_SOURCES = $(src_libdmoguids)
-lib32_libdmoguids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdmoguids_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdxerr8.a
 lib32_libdxerr8_a_SOURCES = $(src_libdxerr8)
-lib32_libdxerr8_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdxerr8_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdxerr9.a
 lib32_libdxerr9_a_SOURCES = $(src_libdxerr9)
-lib32_libdxerr9_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdxerr9_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libmfuuid.a
 lib32_libmfuuid_a_SOURCES = $(src_libmfuuid)
-lib32_libmfuuid_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes)
+lib32_libmfuuid_a_CPPFLAGS = $(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libamstrmid.a
 lib32_libamstrmid_a_SOURCES = $(src_libamstrmid)
-lib32_libamstrmid_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes)
+lib32_libamstrmid_a_CPPFLAGS = $(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libwmcodecdspuuid.a
 lib32_libwmcodecdspuuid_a_SOURCES = $(src_libwmcodecdspuuid)
-lib32_libwmcodecdspuuid_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes)
+lib32_libwmcodecdspuuid_a_CPPFLAGS = $(CPPFLAGS32) $(extra_include) 
$(sysincludes)
 
 lib32_LIBRARIES += lib32/libwindowscodecs.a
 lib32_libwindowscodecs_a_SOURCES = $(src_libwindowscodecs)
-lib32_libwindowscodecs_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes)
+lib32_libwindowscodecs_a_CPPFLAGS = $(CPPFLAGS32) $(extra_include) 
$(sysincludes)
 lib32_libwindowscodecs_a_AR = $(DTDEF32) $(top_srcdir)/lib32/windowscodecs.def 
&& $(AR) $(ARFLAGS)
 
 lib32_LIBRARIES += lib32/libwbemuuid.a
 lib32_libwbemuuid_a_SOURCES = $(src_libwbemuuid)
-lib32_libwbemuuid_a_CPPFLAGS = $(CPPFLAGS32) $(sysincludes)
+lib32_libwbemuuid_a_CPPFLAGS = $(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libdxguid.a
 lib32_libdxguid_a_SOURCES = $(src_libdxguid)
-lib32_libdxguid_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libdxguid_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libksuser.a
 lib32_libksuser_a_SOURCES = $(src_libksuser)
-lib32_libksuser_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libksuser_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 lib32_libksuser_a_AR = $(DTLIB32) && $(AR) $(ARFLAGS)
 
 lib32_LIBRARIES += lib32/libksguid.a
 lib32_libksguid_a_SOURCES = $(src_libksguid)
-lib32_libksguid_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libksguid_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/liblocationapi.a
 lib32_liblocationapi_a_SOURCES = $(src_liblocationapi)
-lib32_liblocationapi_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_liblocationapi_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libsapi.a
 lib32_libsapi_a_SOURCES = $(src_libsapi)
-lib32_libsapi_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libsapi_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libsensorsapi.a
 lib32_libsensorsapi_a_SOURCES = $(src_libsensorsapi)
-lib32_libsensorsapi_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libsensorsapi_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) $(sysincludes)
 
 lib32_LIBRARIES += lib32/libportabledeviceguids.a
 lib32_libportabledeviceguids_a_SOURCES = $(src_libportabledeviceguids)
-lib32_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)
+lib32_libportabledeviceguids_a_CPPFLAGS=$(CPPFLAGS32) $(extra_include) 
$(sysincludes)
 
 lib32_LIBRARIES += lib32/libscrnsave.a
 lib32_libscrnsave_a_SOURCES = $(src_libscrnsave)
-lib32_libscrnsave_a_CPPFLAGS=$(CPPFLAGS32) $(sysincludes)

Re: [Mingw-w64-public] [PATCH] add dxgidebug.idl

2015-05-14 Thread Steve Lhomme
On Wed, May 13, 2015 at 11:21 PM, Kai Tietz ktiet...@googlemail.com wrote:
 Hi,

 the same applies as for the other patch.  Just one comment I see about
 this idl-file (it isn't necessary to attach generated header to
 patch).  It seems to me that a lot of stuff is missing here.  On quick
 research I miss a lot of required interfaces, and some types.

Yes, I only added the interface I needed.

At least the generated .h file has something like
__IDXGIDebug_FWD_DEFINED__ (also present in the MS headers). So it's
possible to detect if some parts of headers are missing.
Also since d3d11.idl is missing some interfaces, I assume it's ok to
define IDL files with only a partial set of interfaces.

In general I find the whole process awkward. Wine should only add IDL
definitions when the classes are supported. Otherwise they just add
entry points that are not working. On the other hand mingw should not
have such requirements since the goal is to run on a functional
Windows. But it seems it's tied to Wine for definitions.

 Anyway, let us way for Wine's review on this.

 Regards,
 Kai

 2015-05-12 16:40 GMT+02:00 Steve Lhomme rob...@videolabs.io:
 ---
  mingw-w64-headers/Makefile.am|  1 +
  mingw-w64-headers/Makefile.in|  1 +
  mingw-w64-headers/direct-x/include/dxgidebug.idl | 44 
 
  3 files changed, 46 insertions(+)
  create mode 100644 mingw-w64-headers/direct-x/include/dxgidebug.idl

 diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
 index a8f0990..09e8ad7 100644
 --- a/mingw-w64-headers/Makefile.am
 +++ b/mingw-w64-headers/Makefile.am
 @@ -82,6 +82,7 @@ IDL_SRCS = \
include/devicetopology.idl \
include/downloadmgr.idl \
include/dxva2api.idl \
 +  include/dxgidebug.idl \
include/endpointvolume.idl \
include/exdisp.idl \
include/filter.idl \
 diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
 index 901ff18..0cd19ce 100644
 --- a/mingw-w64-headers/Makefile.in
 +++ b/mingw-w64-headers/Makefile.in
 @@ -306,6 +306,7 @@ EXTRA_HEADERS = \
  @HAVE_WIDL_TRUE@  include/devicetopology.idl \
  @HAVE_WIDL_TRUE@  include/downloadmgr.idl \
  @HAVE_WIDL_TRUE@  include/dxva2api.idl \
 +@HAVE_WIDL_TRUE@  include/dxgidebug.idl \
  @HAVE_WIDL_TRUE@  include/endpointvolume.idl \
  @HAVE_WIDL_TRUE@  include/exdisp.idl \
  @HAVE_WIDL_TRUE@  include/filter.idl \
 diff --git a/mingw-w64-headers/direct-x/include/dxgidebug.idl 
 b/mingw-w64-headers/direct-x/include/dxgidebug.idl
 new file mode 100644
 index 000..94f57da
 --- /dev/null
 +++ b/mingw-w64-headers/direct-x/include/dxgidebug.idl
 @@ -0,0 +1,44 @@
 +/*
 + * Copyright 2015 Steve Lhomme
 + *
 + * 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
 + */
 +
 +import oaidl.idl;
 +
 +cpp_quote(DEFINE_GUID(DXGI_DEBUG_ALL,   0xe48ae283, 0xda80, 0x490b, 0x87, 
 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);)
 +cpp_quote(DEFINE_GUID(DXGI_DEBUG_DX,0x35cdd7fc, 0x13b2, 0x421d, 0xa5, 
 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);)
 +cpp_quote(DEFINE_GUID(DXGI_DEBUG_DXGI,  0x25cddaa4, 0xb1c6, 0x47e1, 0xac, 
 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);)
 +cpp_quote(DEFINE_GUID(DXGI_DEBUG_APP,   0x06cd6e01, 0x4219, 0x4ebd, 0x87, 
 0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62);)
 +
 +typedef enum DXGI_DEBUG_RLO_FLAGS {
 +DXGI_DEBUG_RLO_SUMMARY = 0x0001,
 +DXGI_DEBUG_RLO_DETAIL  = 0x0002,
 +DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x0004,
 +DXGI_DEBUG_RLO_ALL = 0x0007
 +} DXGI_DEBUG_RLO_FLAGS;
 +
 +[
 +object,
 +local,
 +uuid(119e7452-de9e-40fe-8806-88f90c12b441)
 +]
 +interface IDXGIDebug : IUnknown
 +{
 +HRESULT ReportLiveObjects(
 +[in] GUID apiid,
 +[in] DXGI_DEBUG_RLO_FLAGS flags);
 +}
 +
 --
 2.4.0


 --
 One dashboard for servers and applications across Physical-Virtual-Cloud
 Widest out-of-the-box monitoring support with 50+ applications
 Performance metrics, stats and reports that give you Actionable Insights
 Deep dive visibility with transaction tracing using APM Insight.
 http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
 ___
 Mingw-w64-public mailing list
 Mingw-w64

[Mingw-w64-public] [PATCH] add dxgidebug.idl

2015-05-12 Thread Steve Lhomme
---
 mingw-w64-headers/Makefile.am|  1 +
 mingw-w64-headers/Makefile.in|  1 +
 mingw-w64-headers/direct-x/include/dxgidebug.idl | 44 
 3 files changed, 46 insertions(+)
 create mode 100644 mingw-w64-headers/direct-x/include/dxgidebug.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index a8f0990..09e8ad7 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -82,6 +82,7 @@ IDL_SRCS = \
   include/devicetopology.idl \
   include/downloadmgr.idl \
   include/dxva2api.idl \
+  include/dxgidebug.idl \
   include/endpointvolume.idl \
   include/exdisp.idl \
   include/filter.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 901ff18..0cd19ce 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -306,6 +306,7 @@ EXTRA_HEADERS = \
 @HAVE_WIDL_TRUE@  include/devicetopology.idl \
 @HAVE_WIDL_TRUE@  include/downloadmgr.idl \
 @HAVE_WIDL_TRUE@  include/dxva2api.idl \
+@HAVE_WIDL_TRUE@  include/dxgidebug.idl \
 @HAVE_WIDL_TRUE@  include/endpointvolume.idl \
 @HAVE_WIDL_TRUE@  include/exdisp.idl \
 @HAVE_WIDL_TRUE@  include/filter.idl \
diff --git a/mingw-w64-headers/direct-x/include/dxgidebug.idl 
b/mingw-w64-headers/direct-x/include/dxgidebug.idl
new file mode 100644
index 000..94f57da
--- /dev/null
+++ b/mingw-w64-headers/direct-x/include/dxgidebug.idl
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2015 Steve Lhomme
+ *
+ * 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
+ */
+
+import oaidl.idl;
+
+cpp_quote(DEFINE_GUID(DXGI_DEBUG_ALL,   0xe48ae283, 0xda80, 0x490b, 0x87, 
0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);)
+cpp_quote(DEFINE_GUID(DXGI_DEBUG_DX,0x35cdd7fc, 0x13b2, 0x421d, 0xa5, 
0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);)
+cpp_quote(DEFINE_GUID(DXGI_DEBUG_DXGI,  0x25cddaa4, 0xb1c6, 0x47e1, 0xac, 
0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);)
+cpp_quote(DEFINE_GUID(DXGI_DEBUG_APP,   0x06cd6e01, 0x4219, 0x4ebd, 0x87, 
0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62);)
+
+typedef enum DXGI_DEBUG_RLO_FLAGS {
+DXGI_DEBUG_RLO_SUMMARY = 0x0001,
+DXGI_DEBUG_RLO_DETAIL  = 0x0002,
+DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x0004,
+DXGI_DEBUG_RLO_ALL = 0x0007
+} DXGI_DEBUG_RLO_FLAGS;
+
+[
+object,
+local,
+uuid(119e7452-de9e-40fe-8806-88f90c12b441)
+]
+interface IDXGIDebug : IUnknown
+{
+HRESULT ReportLiveObjects(
+[in] GUID apiid,
+[in] DXGI_DEBUG_RLO_FLAGS flags);
+}
+
-- 
2.4.0


--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] d3d11.idl: add the necessary interfaces to use the D3D11 video decoder

2015-05-11 Thread Steve Lhomme
---
These COM classes are needed by VLC
---
 mingw-w64-headers/direct-x/include/d3d11.h   | 811 +++
 mingw-w64-headers/direct-x/include/d3d11.idl | 199 +++
 2 files changed, 1010 insertions(+)

diff --git a/mingw-w64-headers/direct-x/include/d3d11.h 
b/mingw-w64-headers/direct-x/include/d3d11.h
index cc64c3f..c81905a 100644
--- a/mingw-w64-headers/direct-x/include/d3d11.h
+++ b/mingw-w64-headers/direct-x/include/d3d11.h
@@ -172,6 +172,26 @@ typedef interface ID3D11DeviceContext ID3D11DeviceContext;
 typedef interface ID3D11Device ID3D11Device;
 #endif
 
+#ifndef __ID3D11VideoDecoder_FWD_DEFINED__
+#define __ID3D11VideoDecoder_FWD_DEFINED__
+typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
+#endif
+
+#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
+#endif
+
+#ifndef __ID3D11VideoContext_FWD_DEFINED__
+#define __ID3D11VideoContext_FWD_DEFINED__
+typedef interface ID3D11VideoContext ID3D11VideoContext;
+#endif
+
+#ifndef __ID3D11VideoDevice_FWD_DEFINED__
+#define __ID3D11VideoDevice_FWD_DEFINED__
+typedef interface ID3D11VideoDevice ID3D11VideoDevice;
+#endif
+
 /* Headers for imported files */
 
 #include oaidl.h
@@ -8850,6 +8870,797 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub(
 
 #endif  /* __ID3D11Device_INTERFACE_DEFINED__ */
 
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT, 0x1b81be64, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,   0x1b81be65, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,   0x1b81be66, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT, 0x1b81be67, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT,0x1b81be68, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT,  0x1b81be69, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,  0xd5f04ff9, 
0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT, 
0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT, 
0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);
+DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,  
0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);
+DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC, 0x1b81be80, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP,   0x1b81be81, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC, 0x1b81be90, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP,   0x1b81be91, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT, 0x1b81be94, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC,  0x1b81beA0, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP,0x1b81beA1, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT,  0x1b81beA2, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD,   0x1b81beA3, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 
0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
+DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,   0xefd64d74, 
0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19);
+DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,  0xed418a9f, 
0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);
+DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,0xab998b5b, 
0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae);
+DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN, 0x5b11d51b, 0x2f4c, 
0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);
+DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,   0x107af0e0, 0xef1a, 
0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);
+DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_MOCOMP,  0xe6a9f44b, 0x61b0, 
0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66);

Re: [Mingw-w64-public] [PATCH] d3d11.idl: add the necessary interfaces to use the D3D11 video decoder

2015-05-11 Thread Steve Lhomme
Discard this patch, I forgot some methods between the ones necessary
and it doesn't work properly.

On Mon, May 11, 2015 at 1:43 PM, Steve Lhomme rob...@videolabs.io wrote:
 ---
 These COM classes are needed by VLC
 ---
  mingw-w64-headers/direct-x/include/d3d11.h   | 811 
 +++
  mingw-w64-headers/direct-x/include/d3d11.idl | 199 +++
  2 files changed, 1010 insertions(+)

 diff --git a/mingw-w64-headers/direct-x/include/d3d11.h 
 b/mingw-w64-headers/direct-x/include/d3d11.h
 index cc64c3f..c81905a 100644
 --- a/mingw-w64-headers/direct-x/include/d3d11.h
 +++ b/mingw-w64-headers/direct-x/include/d3d11.h
 @@ -172,6 +172,26 @@ typedef interface ID3D11DeviceContext 
 ID3D11DeviceContext;
  typedef interface ID3D11Device ID3D11Device;
  #endif

 +#ifndef __ID3D11VideoDecoder_FWD_DEFINED__
 +#define __ID3D11VideoDecoder_FWD_DEFINED__
 +typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
 +#endif
 +
 +#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
 +#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
 +typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
 +#endif
 +
 +#ifndef __ID3D11VideoContext_FWD_DEFINED__
 +#define __ID3D11VideoContext_FWD_DEFINED__
 +typedef interface ID3D11VideoContext ID3D11VideoContext;
 +#endif
 +
 +#ifndef __ID3D11VideoDevice_FWD_DEFINED__
 +#define __ID3D11VideoDevice_FWD_DEFINED__
 +typedef interface ID3D11VideoDevice ID3D11VideoDevice;
 +#endif
 +
  /* Headers for imported files */

  #include oaidl.h
 @@ -8850,6 +8870,797 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub(

  #endif  /* __ID3D11Device_INTERFACE_DEFINED__ */

 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT, 0x1b81be64, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,   0x1b81be65, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,   0x1b81be66, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT, 0x1b81be67, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT,0x1b81be68, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT,  0x1b81be69, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,  0xd5f04ff9, 
 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT, 
 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT, 
 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,  
 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC, 0x1b81be80, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP,   0x1b81be81, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC, 0x1b81be90, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP,   0x1b81be91, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT, 0x1b81be94, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC,  0x1b81beA0, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP,0x1b81beA1, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT,  0x1b81beA2, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD,   0x1b81beA3, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 
 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,   0xefd64d74, 
 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,  0xed418a9f, 
 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,0xab998b5b, 
 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae);
 +DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN, 0x5b11d51b, 0x2f4c, 
 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);
 +DEFINE_GUID

[Mingw-w64-public] [PATCH] d3d11: add the basic interfaces to enable video decoding

2015-05-11 Thread Steve Lhomme
---
 mingw-w64-headers/direct-x/include/d3d11.h   | 939 +++
 mingw-w64-headers/direct-x/include/d3d11.idl | 201 ++
 2 files changed, 1140 insertions(+)

diff --git a/mingw-w64-headers/direct-x/include/d3d11.h 
b/mingw-w64-headers/direct-x/include/d3d11.h
index cc64c3f..9cfbd18 100644
--- a/mingw-w64-headers/direct-x/include/d3d11.h
+++ b/mingw-w64-headers/direct-x/include/d3d11.h
@@ -172,6 +172,26 @@ typedef interface ID3D11DeviceContext ID3D11DeviceContext;
 typedef interface ID3D11Device ID3D11Device;
 #endif
 
+#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
+typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
+#endif
+
+#ifndef __ID3D11VideoDecoder_FWD_DEFINED__
+#define __ID3D11VideoDecoder_FWD_DEFINED__
+typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
+#endif
+
+#ifndef __ID3D11VideoContext_FWD_DEFINED__
+#define __ID3D11VideoContext_FWD_DEFINED__
+typedef interface ID3D11VideoContext ID3D11VideoContext;
+#endif
+
+#ifndef __ID3D11VideoDevice_FWD_DEFINED__
+#define __ID3D11VideoDevice_FWD_DEFINED__
+typedef interface ID3D11VideoDevice ID3D11VideoDevice;
+#endif
+
 /* Headers for imported files */
 
 #include oaidl.h
@@ -8850,6 +8870,925 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub(
 
 #endif  /* __ID3D11Device_INTERFACE_DEFINED__ */
 
+typedef enum D3D11_VDOV_DIMENSION {
+D3D11_VDOV_DIMENSION_UNKNOWN = 0,
+D3D11_VDOV_DIMENSION_TEXTURE2D = 1
+} D3D11_VDOV_DIMENSION;
+typedef struct D3D11_TEX2D_VDOV {
+UINT ArraySlice;
+} D3D11_TEX2D_VDOV;
+typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC {
+GUID DecodeProfile;
+D3D11_VDOV_DIMENSION ViewDimension;
+__C89_NAMELESS union {
+D3D11_TEX2D_VDOV Texture2D;
+} __C89_NAMELESSUNIONNAME;
+} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC;
+/*
+ * ID3D11VideoDecoderOutputView interface
+ */
+#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
+#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 
0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18);
+#if defined(__cplusplus)  !defined(CINTERFACE)
+MIDL_INTERFACE(c2931aea-2a85-4f20-860f-fba1fd256e18)
+ID3D11VideoDecoderOutputView : public ID3D11View
+{
+virtual void STDMETHODCALLTYPE GetDesc(
+D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, 
0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18)
+#endif
+#else
+typedef struct ID3D11VideoDecoderOutputViewVtbl {
+BEGIN_INTERFACE
+
+/*** IUnknown methods ***/
+HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ID3D11VideoDecoderOutputView* This,
+REFIID riid,
+void **ppvObject);
+
+ULONG (STDMETHODCALLTYPE *AddRef)(
+ID3D11VideoDecoderOutputView* This);
+
+ULONG (STDMETHODCALLTYPE *Release)(
+ID3D11VideoDecoderOutputView* This);
+
+/*** ID3D11DeviceChild methods ***/
+void (STDMETHODCALLTYPE *GetDevice)(
+ID3D11VideoDecoderOutputView* This,
+ID3D11Device **ppDevice);
+
+HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ID3D11VideoDecoderOutputView* This,
+REFGUID guid,
+UINT *pDataSize,
+void *pData);
+
+HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ID3D11VideoDecoderOutputView* This,
+REFGUID guid,
+UINT DataSize,
+const void *pData);
+
+HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ID3D11VideoDecoderOutputView* This,
+REFGUID guid,
+const IUnknown *pData);
+
+/*** ID3D11View methods ***/
+void (STDMETHODCALLTYPE *GetResource)(
+ID3D11VideoDecoderOutputView* This,
+ID3D11Resource **ppResource);
+
+/*** ID3D11VideoDecoderOutputView methods ***/
+void (STDMETHODCALLTYPE *GetDesc)(
+ID3D11VideoDecoderOutputView* This,
+D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
+
+END_INTERFACE
+} ID3D11VideoDecoderOutputViewVtbl;
+interface ID3D11VideoDecoderOutputView {
+CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) 
(This)-lpVtbl-QueryInterface(This,riid,ppvObject)
+#define ID3D11VideoDecoderOutputView_AddRef(This) (This)-lpVtbl-AddRef(This)
+#define ID3D11VideoDecoderOutputView_Release(This) 
(This)-lpVtbl-Release(This)
+/*** ID3D11DeviceChild methods ***/
+#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) 
(This)-lpVtbl-GetDevice(This,ppDevice)
+#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) 
(This)-lpVtbl-GetPrivateData(This,guid,pDataSize,pData)
+#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) 

<    1   2   3   4   5