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