Hi,

as subject-line says ...

Regards,
Kai
From b287205bd846dc386a6cd89276c40e23b439136d Mon Sep 17 00:00:00 2001
From: Kai Tietz <[email protected]>
Date: Mon, 24 Nov 2014 18:55:14 +0100
Subject: =?UTF-8?q?Add=20new=20dmemmgr.h=20header=20for=20Video-memory=20m?=
 =?UTF-8?q?emory-API.=0AModify=20dmksctrl.h=20so=20that=20missing=20define?=
 =?UTF-8?q?s=20are=20present,=20and=20the=20interface=0Aworks=20well=20in?=
 =?UTF-8?q?=20C++-mode,=20too.?=

---
 mingw-w64-headers/include/dmemmgr.h  | 134 +++++++++++++++++++++++++++++++++++
 mingw-w64-headers/include/dmksctrl.h | 134 +++++++++++++++++++++++------------
 2 files changed, 224 insertions(+), 44 deletions(-)
 create mode 100644 mingw-w64-headers/include/dmemmgr.h

diff --git a/mingw-w64-headers/include/dmemmgr.h 
b/mingw-w64-headers/include/dmemmgr.h
new file mode 100644
index 0000000..ea473a7
--- /dev/null
+++ b/mingw-w64-headers/include/dmemmgr.h
@@ -0,0 +1,134 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef __DMEMMGR_INCLUDED__
+#define __DMEMMGR_INCLUDED__
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#define VMEMHEAP_LINEAR __MSABI_LONG(0x1)
+#define VMEMHEAP_RECTANGULAR __MSABI_LONG(0x2)
+#define VMEMHEAP_ALIGNMENT __MSABI_LONG(0x4)
+
+#define SURFACEALIGN_DISCARDABLE __MSABI_LONG(0x1)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+  typedef ULONG_PTR FLATPTR;
+
+  typedef struct _SURFACEALIGNMENT {
+    __C89_NAMELESS union {
+      struct {
+       DWORD dwStartAlignment;
+       DWORD dwPitchAlignment;
+       DWORD dwFlags;
+       DWORD dwReserved2;
+      } Linear;
+      struct {
+       DWORD dwXAlignment;
+       DWORD dwYAlignment;
+       DWORD dwFlags;
+       DWORD dwReserved2;
+      } Rectangular;
+    };
+  } SURFACEALIGNMENT;
+
+  typedef struct _HEAPALIGNMENT {
+    DWORD dwSize;
+    DDSCAPS ddsCaps;
+    DWORD dwReserved;
+    SURFACEALIGNMENT ExecuteBuffer;
+    SURFACEALIGNMENT Overlay;
+    SURFACEALIGNMENT Texture;
+    SURFACEALIGNMENT ZBuffer;
+    SURFACEALIGNMENT AlphaBuffer;
+    SURFACEALIGNMENT Offscreen;
+    SURFACEALIGNMENT FlipTarget;
+  } HEAPALIGNMENT;
+
+  typedef struct _DD_GETHEAPALIGNMENTDATA {
+    ULONG_PTR dwInstance;
+    DWORD dwHeap;
+    HRESULT ddRVal;
+    VOID *GetHeapAlignment;
+    HEAPALIGNMENT Alignment;
+  } DD_GETHEAPALIGNMENTDATA;
+
+  typedef struct _VMEML {
+    struct _VMEML *next;
+    FLATPTR ptr;
+    DWORD size;
+    WINBOOL bDiscardable;
+  } VMEML,*LPVMEML,**LPLPVMEML;
+
+  typedef struct _VMEMR {
+    struct _VMEMR *next;
+    struct _VMEMR *prev;
+    struct _VMEMR *pUp;
+    struct _VMEMR *pDown;
+    struct _VMEMR *pLeft;
+    struct _VMEMR *pRight;
+    FLATPTR ptr;
+    DWORD size;
+    DWORD x;
+    DWORD y;
+    DWORD cx;
+    DWORD cy;
+    DWORD flags;
+    FLATPTR pBits;
+    WINBOOL bDiscardable;
+  } VMEMR,*LPVMEMR,**LPLPVMEMR;
+
+  typedef struct _VMEMHEAP {
+    DWORD dwFlags;
+    DWORD stride;
+    LPVOID freeList;
+    LPVOID allocList;
+    DWORD dwTotalSize;
+    FLATPTR fpGARTLin;
+    FLATPTR fpGARTDev;
+    DWORD dwCommitedSize;
+    DWORD dwCoalesceCount;
+    HEAPALIGNMENT Alignment;
+    DDSCAPSEX ddsCapsEx;
+    DDSCAPSEX ddsCapsExAlt;
+#ifndef IS_16
+    LARGE_INTEGER liPhysAGPBase;
+#endif
+    HANDLE hdevAGP;
+    LPVOID pvPhysRsrv;
+#if NTDDI_VERSION >= 0x05010000
+    BYTE *pAgpCommitMask;
+    DWORD dwAgpCommitMaskSize;
+#endif
+  } VMEMHEAP;
+
+#ifndef __NTDDKCOMP__
+  typedef struct _VIDMEM *LPVIDMEM;
+#else
+  typedef struct _VIDEOMEMORY *LPVIDMEM;
+#endif
+
+  typedef struct _SURFACEALIGNMENT *LPSURFACEALIGNMENT;
+  typedef struct _HEAPALIGNMENT *LPHEAPALIGNMENT;
+  typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
+  typedef VMEMHEAP *LPVMEMHEAP;
+
+#ifndef __NTDDKCOMP__
+  extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD 
height);
+#endif
+  extern FLATPTR WINAPI HeapVidMemAllocAligned (LPVIDMEM lpVidMem, DWORD 
dwWidth, DWORD dwHeight, LPSURFACEALIGNMENT lpAlignment, LPLONG lpNewPitch);
+  extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
+#endif
diff --git a/mingw-w64-headers/include/dmksctrl.h 
b/mingw-w64-headers/include/dmksctrl.h
index 25289b1..c1abc3c 100644
--- a/mingw-w64-headers/include/dmksctrl.h
+++ b/mingw-w64-headers/include/dmksctrl.h
@@ -1,59 +1,105 @@
-/*
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ *
  * dmksctrl.h
  *
  * Contributors:
  *   Created by Johannes Anderwald
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *   Reworked by Kai Tietz
  *
  */
 
+#ifndef _DMKSCTRL_
+#define _DMKSCTRL_
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#include <pshpack8.h>
+#include <objbase.h>
+
+#ifndef _NTRTL_
+#ifndef DEFINE_GUIDEX
+#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
+#endif
+
+#ifndef STATICGUIDOF
+#define STATICGUIDOF(guid) STATIC_##guid
+#endif
+#endif
+
+#ifndef STATIC_IID_IKsControl
+#define STATIC_IID_IKsControl 0x28f54685, 0x06fd, 0x11d2, 0xb2, 0x7a, 0x00, 
0xa0, 0xc9, 0x22, 0x31, 0x96
+#endif
+
+#ifndef _KS_
+#define _KS_
+
+typedef struct {
+  __C89_NAMELESS union {
+    __C89_NAMELESS struct {
+      GUID Set;
+      ULONG Id;
+      ULONG Flags;
+    };
+    LONGLONG Alignment;
+  };
+} KSIDENTIFIER,*PKSIDENTIFIER;
+
+typedef KSIDENTIFIER KSPROPERTY,*PKSPROPERTY, KSMETHOD,*PKSMETHOD, 
KSEVENT,*PKSEVENT;
+
+#define KSMETHOD_TYPE_NONE 0x0
+#define KSMETHOD_TYPE_READ 0x1
+#define KSMETHOD_TYPE_SEND 0x1
+#define KSMETHOD_TYPE_WRITE 0x2
+#define KSMETHOD_TYPE_MODIFY 0x3
+#define KSMETHOD_TYPE_SOURCE 0x4
+#define KSMETHOD_TYPE_SETSUPPORT 0x100
+#define KSMETHOD_TYPE_BASICSUPPORT 0x200
+
+#define KSPROPERTY_TYPE_GET 0x1
+#define KSPROPERTY_TYPE_SET 0x2
+#define KSPROPERTY_TYPE_SETSUPPORT 0x100
+#define KSPROPERTY_TYPE_BASICSUPPORT 0x200
+#define KSPROPERTY_TYPE_RELATIONS 0x400
+#define KSPROPERTY_TYPE_SERIALIZESET 0x800
+#define KSPROPERTY_TYPE_UNSERIALIZESET 0x1000
+#define KSPROPERTY_TYPE_SERIALIZERAW 0x2000
+#define KSPROPERTY_TYPE_UNSERIALIZERAW 0x4000
+#define KSPROPERTY_TYPE_SERIALIZESIZE 0x8000
+#define KSPROPERTY_TYPE_DEFAULTVALUES 0x10000
+#define KSPROPERTY_TYPE_TOPOLOGY 0x10000000
+#endif
+
 #ifndef _IKsControl_
 #define _IKsControl_
 
+#ifdef DECLARE_INTERFACE_
 #undef INTERFACE
 #define INTERFACE IKsControl
-DECLARE_INTERFACE_(IKsControl, IUnknown)
-{
-     /* IUnknown */
-    STDMETHOD(QueryInterface)       (THIS_ REFIID, LPVOID FAR *) PURE;
-    STDMETHOD_(ULONG,AddRef)        (THIS) PURE;
-    STDMETHOD_(ULONG,Release)       (THIS) PURE;
-
-    /*IKsControl*/
-    STDMETHOD(KsProperty)(
-        THIS_
-        PKSPROPERTY Property,
-        ULONG PropertyLength,
-        LPVOID PropertyData,
-        ULONG DataLength,
-        ULONG* BytesReturned
-    ) PURE;
-    STDMETHOD(KsMethod)(
-        THIS_
-        PKSMETHOD Method,
-        ULONG MethodLength,
-        LPVOID MethodData,
-        ULONG DataLength,
-        ULONG* BytesReturned
-    ) PURE;
-    STDMETHOD(KsEvent)(
-        THIS_
-        PKSEVENT Event,
-        ULONG EventLength,
-        LPVOID EventData,
-        ULONG DataLength,
-        ULONG* BytesReturned
-    ) PURE;
+
+DECLARE_INTERFACE_ (IKsControl, IUnknown) {
+#ifndef __cplusplus
+  STDMETHOD (QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
+  STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+  STDMETHOD_ (ULONG, Release) (THIS) PURE;
+#endif
+  STDMETHOD (KsProperty) (THIS_ PKSPROPERTY Property, ULONG PropertyLength, 
LPVOID PropertyData, ULONG DataLength, ULONG *BytesReturned) PURE;
+  STDMETHOD (KsMethod) (THIS_ PKSMETHOD Method, ULONG MethodLength, LPVOID 
MethodData, ULONG DataLength, ULONG *BytesReturned) PURE;
+  STDMETHOD (KsEvent) (THIS_ PKSEVENT Event, ULONG EventLength, LPVOID 
EventData, ULONG DataLength, ULONG *BytesReturned) PURE;
 };
+#endif
+#endif
+
+#include <poppack.h>
 
-#endif /* _IKsControl_ */
+DEFINE_GUID (IID_IKsControl, 0x28f54685, 0x06fd, 0x11d2, 0xb2, 0x7a, 0x00, 
0xa0, 0xc9, 0x22, 0x31, 0x96);
+#ifndef _KSMEDIA_
+DEFINE_GUID (KSDATAFORMAT_SUBTYPE_MIDI, 0x1d262760, 0xe957, 0x11cf, 0xa5, 
0xd6, 0x28, 0xdb, 0x04, 0xc1, 0x00, 0x00);
+DEFINE_GUID (KSDATAFORMAT_SUBTYPE_DIRECTMUSIC, 0x1a82f8bc, 0x3f8b, 0x11d2, 
0xb7, 0x74, 0x00, 0x60, 0x08, 0x33, 0x16, 0xc1);
+#endif
 
+#endif
+#endif
-- 
2.1.1

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to