Added dxd9 sdk, even big libs lol.
This commit is contained in:
parent
c980d53543
commit
556e33d56f
433
third_party/dx9_sdk/include/Amvideo.h
vendored
Normal file
433
third_party/dx9_sdk/include/Amvideo.h
vendored
Normal file
@ -0,0 +1,433 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AMVideo.h
|
||||||
|
//
|
||||||
|
// Desc: Video related definitions and interfaces for ActiveMovie.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992 - 2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __AMVIDEO__
|
||||||
|
#define __AMVIDEO__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
#include <ddraw.h>
|
||||||
|
|
||||||
|
|
||||||
|
// This is an interface on the video renderer that provides information about
|
||||||
|
// DirectDraw with respect to its use by the renderer. For example it allows
|
||||||
|
// an application to get details of the surface and any hardware capabilities
|
||||||
|
// that are available. It also allows someone to adjust the surfaces that the
|
||||||
|
// renderer should use and furthermore even set the DirectDraw instance. We
|
||||||
|
// allow someone to set the DirectDraw instance because DirectDraw can only
|
||||||
|
// be opened once per process so it helps resolve conflicts. There is some
|
||||||
|
// duplication in this interface as the hardware/emulated/FOURCCs available
|
||||||
|
// can all be found through the IDirectDraw interface, this interface allows
|
||||||
|
// simple access to that information without calling the DirectDraw provider
|
||||||
|
// itself. The AMDDS prefix is ActiveMovie DirectDraw Switches abbreviated.
|
||||||
|
|
||||||
|
#define AMDDS_NONE 0x00 // No use for DCI/DirectDraw
|
||||||
|
#define AMDDS_DCIPS 0x01 // Use DCI primary surface
|
||||||
|
#define AMDDS_PS 0x02 // Use DirectDraw primary
|
||||||
|
#define AMDDS_RGBOVR 0x04 // RGB overlay surfaces
|
||||||
|
#define AMDDS_YUVOVR 0x08 // YUV overlay surfaces
|
||||||
|
#define AMDDS_RGBOFF 0x10 // RGB offscreen surfaces
|
||||||
|
#define AMDDS_YUVOFF 0x20 // YUV offscreen surfaces
|
||||||
|
#define AMDDS_RGBFLP 0x40 // RGB flipping surfaces
|
||||||
|
#define AMDDS_YUVFLP 0x80 // YUV flipping surfaces
|
||||||
|
#define AMDDS_ALL 0xFF // ALL the previous flags
|
||||||
|
#define AMDDS_DEFAULT AMDDS_ALL // Use all available surfaces
|
||||||
|
|
||||||
|
#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
|
||||||
|
#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
|
||||||
|
#define AMDDS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IDirectDrawVideo
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown methods
|
||||||
|
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// IDirectDrawVideo methods
|
||||||
|
|
||||||
|
STDMETHOD(GetSwitches)(THIS_ DWORD *pSwitches) PURE;
|
||||||
|
STDMETHOD(SetSwitches)(THIS_ DWORD Switches) PURE;
|
||||||
|
STDMETHOD(GetCaps)(THIS_ DDCAPS *pCaps) PURE;
|
||||||
|
STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS *pCaps) PURE;
|
||||||
|
STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC *pSurfaceDesc) PURE;
|
||||||
|
STDMETHOD(GetFourCCCodes)(THIS_ DWORD *pCount,DWORD *pCodes) PURE;
|
||||||
|
STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW pDirectDraw) PURE;
|
||||||
|
STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW *ppDirectDraw) PURE;
|
||||||
|
STDMETHOD(GetSurfaceType)(THIS_ DWORD *pSurfaceType) PURE;
|
||||||
|
STDMETHOD(SetDefault)(THIS) PURE;
|
||||||
|
STDMETHOD(UseScanLine)(THIS_ long UseScanLine) PURE;
|
||||||
|
STDMETHOD(CanUseScanLine)(THIS_ long *UseScanLine) PURE;
|
||||||
|
STDMETHOD(UseOverlayStretch)(THIS_ long UseOverlayStretch) PURE;
|
||||||
|
STDMETHOD(CanUseOverlayStretch)(THIS_ long *UseOverlayStretch) PURE;
|
||||||
|
STDMETHOD(UseWhenFullScreen)(THIS_ long UseWhenFullScreen) PURE;
|
||||||
|
STDMETHOD(WillUseFullScreen)(THIS_ long *UseWhenFullScreen) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IQualProp
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IQualProp, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown methods
|
||||||
|
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// Compare these with the functions in class CGargle in gargle.h
|
||||||
|
|
||||||
|
STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int *pcFrames) PURE; // Out
|
||||||
|
STDMETHOD(get_FramesDrawn)(THIS_ int *pcFramesDrawn) PURE; // Out
|
||||||
|
STDMETHOD(get_AvgFrameRate)(THIS_ int *piAvgFrameRate) PURE; // Out
|
||||||
|
STDMETHOD(get_Jitter)(THIS_ int *iJitter) PURE; // Out
|
||||||
|
STDMETHOD(get_AvgSyncOffset)(THIS_ int *piAvg) PURE; // Out
|
||||||
|
STDMETHOD(get_DevSyncOffset)(THIS_ int *piDev) PURE; // Out
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// This interface allows an application or plug in distributor to control a
|
||||||
|
// full screen renderer. The Modex renderer supports this interface. When
|
||||||
|
// connected a renderer should load the display modes it has available
|
||||||
|
// The number of modes available can be obtained through CountModes. Then
|
||||||
|
// information on each individual mode is available by calling GetModeInfo
|
||||||
|
// and IsModeAvailable. An application may enable and disable any modes
|
||||||
|
// by calling the SetEnabled flag with OATRUE or OAFALSE (not C/C++ TRUE
|
||||||
|
// and FALSE values) - the current value may be queried by IsModeEnabled
|
||||||
|
|
||||||
|
// A more generic way of setting the modes enabled that is easier to use
|
||||||
|
// when writing applications is the clip loss factor. This defines the
|
||||||
|
// amount of video that can be lost when deciding which display mode to
|
||||||
|
// use. Assuming the decoder cannot compress the video then playing an
|
||||||
|
// MPEG file (say 352x288) into a 320x200 display will lose about 25% of
|
||||||
|
// the image. The clip loss factor specifies the upper range permissible.
|
||||||
|
// To allow typical MPEG video to be played in 320x200 it defaults to 25%
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IFullScreenVideo
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown methods
|
||||||
|
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// IFullScreenVideo methods
|
||||||
|
|
||||||
|
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
|
||||||
|
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
|
||||||
|
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
|
||||||
|
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
|
||||||
|
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
|
||||||
|
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
|
||||||
|
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
|
||||||
|
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
|
||||||
|
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
|
||||||
|
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
|
||||||
|
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
|
||||||
|
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
|
||||||
|
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
|
||||||
|
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
|
||||||
|
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
|
||||||
|
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
|
||||||
|
STDMETHOD(SetDefault)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// This adds the accelerator table capabilities in fullscreen. This is being
|
||||||
|
// added between the original runtime release and the full SDK release. We
|
||||||
|
// cannot just add the method to IFullScreenVideo as we don't want to force
|
||||||
|
// applications to have to ship the ActiveMovie support DLLs - this is very
|
||||||
|
// important to applications that plan on being downloaded over the Internet
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IFullScreenVideoEx
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
|
||||||
|
{
|
||||||
|
// IUnknown methods
|
||||||
|
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// IFullScreenVideo methods
|
||||||
|
|
||||||
|
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
|
||||||
|
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
|
||||||
|
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
|
||||||
|
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
|
||||||
|
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
|
||||||
|
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
|
||||||
|
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
|
||||||
|
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
|
||||||
|
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
|
||||||
|
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
|
||||||
|
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
|
||||||
|
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
|
||||||
|
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
|
||||||
|
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
|
||||||
|
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
|
||||||
|
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
|
||||||
|
STDMETHOD(SetDefault)(THIS) PURE;
|
||||||
|
|
||||||
|
// IFullScreenVideoEx
|
||||||
|
|
||||||
|
STDMETHOD(SetAcceleratorTable)(THIS_ HWND hwnd,HACCEL hAccel) PURE;
|
||||||
|
STDMETHOD(GetAcceleratorTable)(THIS_ HWND *phwnd,HACCEL *phAccel) PURE;
|
||||||
|
STDMETHOD(KeepPixelAspectRatio)(THIS_ long KeepAspect) PURE;
|
||||||
|
STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long *pKeepAspect) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// The SDK base classes contain a base video mixer class. Video mixing in a
|
||||||
|
// software environment is tricky because we typically have multiple streams
|
||||||
|
// each sending data at unpredictable times. To work with this we defined a
|
||||||
|
// pin that is the lead pin, when data arrives on this pin we do a mix. As
|
||||||
|
// an alternative we may not want to have a lead pin but output samples at
|
||||||
|
// predefined spaces, like one every 1/15 of a second, this interfaces also
|
||||||
|
// supports that mode of operations (there is a working video mixer sample)
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IBaseVideoMixer
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IBaseVideoMixer, IUnknown)
|
||||||
|
{
|
||||||
|
STDMETHOD(SetLeadPin)(THIS_ int iPin) PURE;
|
||||||
|
STDMETHOD(GetLeadPin)(THIS_ int *piPin) PURE;
|
||||||
|
STDMETHOD(GetInputPinCount)(THIS_ int *piPinCount) PURE;
|
||||||
|
STDMETHOD(IsUsingClock)(THIS_ int *pbValue) PURE;
|
||||||
|
STDMETHOD(SetUsingClock)(THIS_ int bValue) PURE;
|
||||||
|
STDMETHOD(GetClockPeriod)(THIS_ int *pbValue) PURE;
|
||||||
|
STDMETHOD(SetClockPeriod)(THIS_ int bValue) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define iPALETTE_COLORS 256 // Maximum colours in palette
|
||||||
|
#define iEGA_COLORS 16 // Number colours in EGA palette
|
||||||
|
#define iMASK_COLORS 3 // Maximum three components
|
||||||
|
#define iTRUECOLOR 16 // Minimum true colour device
|
||||||
|
#define iRED 0 // Index position for RED mask
|
||||||
|
#define iGREEN 1 // Index position for GREEN mask
|
||||||
|
#define iBLUE 2 // Index position for BLUE mask
|
||||||
|
#define iPALETTE 8 // Maximum colour depth using a palette
|
||||||
|
#define iMAXBITS 8 // Maximum bits per colour component
|
||||||
|
|
||||||
|
|
||||||
|
// Used for true colour images that also have a palette
|
||||||
|
|
||||||
|
typedef struct tag_TRUECOLORINFO {
|
||||||
|
DWORD dwBitMasks[iMASK_COLORS];
|
||||||
|
RGBQUAD bmiColors[iPALETTE_COLORS];
|
||||||
|
} TRUECOLORINFO;
|
||||||
|
|
||||||
|
|
||||||
|
// The BITMAPINFOHEADER contains all the details about the video stream such
|
||||||
|
// as the actual image dimensions and their pixel depth. A source filter may
|
||||||
|
// also request that the sink take only a section of the video by providing a
|
||||||
|
// clipping rectangle in rcSource. In the worst case where the sink filter
|
||||||
|
// forgets to check this on connection it will simply render the whole thing
|
||||||
|
// which isn't a disaster. Ideally a sink filter will check the rcSource and
|
||||||
|
// if it doesn't support image extraction and the rectangle is not empty then
|
||||||
|
// it will reject the connection. A filter should use SetRectEmpty to reset a
|
||||||
|
// rectangle to all zeroes (and IsRectEmpty to later check the rectangle).
|
||||||
|
// The rcTarget specifies the destination rectangle for the video, for most
|
||||||
|
// source filters they will set this to all zeroes, a downstream filter may
|
||||||
|
// request that the video be placed in a particular area of the buffers it
|
||||||
|
// supplies in which case it will call QueryAccept with a non empty target
|
||||||
|
|
||||||
|
typedef struct tagVIDEOINFOHEADER {
|
||||||
|
|
||||||
|
RECT rcSource; // The bit we really want to use
|
||||||
|
RECT rcTarget; // Where the video should go
|
||||||
|
DWORD dwBitRate; // Approximate bit data rate
|
||||||
|
DWORD dwBitErrorRate; // Bit error rate for this stream
|
||||||
|
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
|
||||||
|
|
||||||
|
BITMAPINFOHEADER bmiHeader;
|
||||||
|
|
||||||
|
} VIDEOINFOHEADER;
|
||||||
|
|
||||||
|
// make sure the pbmi is initialized before using these macros
|
||||||
|
#define TRUECOLOR(pbmi) ((TRUECOLORINFO *)(((LPBYTE)&((pbmi)->bmiHeader)) \
|
||||||
|
+ (pbmi)->bmiHeader.biSize))
|
||||||
|
#define COLORS(pbmi) ((RGBQUAD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
|
||||||
|
+ (pbmi)->bmiHeader.biSize))
|
||||||
|
#define BITMASKS(pbmi) ((DWORD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
|
||||||
|
+ (pbmi)->bmiHeader.biSize))
|
||||||
|
|
||||||
|
// All the image based filters use this to communicate their media types. It's
|
||||||
|
// centred principally around the BITMAPINFO. This structure always contains a
|
||||||
|
// BITMAPINFOHEADER followed by a number of other fields depending on what the
|
||||||
|
// BITMAPINFOHEADER contains. If it contains details of a palettised format it
|
||||||
|
// will be followed by one or more RGBQUADs defining the palette. If it holds
|
||||||
|
// details of a true colour format then it may be followed by a set of three
|
||||||
|
// DWORD bit masks that specify where the RGB data can be found in the image
|
||||||
|
// (For more information regarding BITMAPINFOs see the Win32 documentation)
|
||||||
|
|
||||||
|
// The rcSource and rcTarget fields are not for use by filters supplying the
|
||||||
|
// data. The destination (target) rectangle should be set to all zeroes. The
|
||||||
|
// source may also be zero filled or set with the dimensions of the video. So
|
||||||
|
// if the video is 352x288 pixels then set it to (0,0,352,288). These fields
|
||||||
|
// are mainly used by downstream filters that want to ask the source filter
|
||||||
|
// to place the image in a different position in an output buffer. So when
|
||||||
|
// using for example the primary surface the video renderer may ask a filter
|
||||||
|
// to place the video images in a destination position of (100,100,452,388)
|
||||||
|
// on the display since that's where the window is positioned on the display
|
||||||
|
|
||||||
|
// !!! WARNING !!!
|
||||||
|
// DO NOT use this structure unless you are sure that the BITMAPINFOHEADER
|
||||||
|
// has a normal biSize == sizeof(BITMAPINFOHEADER) !
|
||||||
|
// !!! WARNING !!!
|
||||||
|
|
||||||
|
typedef struct tagVIDEOINFO {
|
||||||
|
|
||||||
|
RECT rcSource; // The bit we really want to use
|
||||||
|
RECT rcTarget; // Where the video should go
|
||||||
|
DWORD dwBitRate; // Approximate bit data rate
|
||||||
|
DWORD dwBitErrorRate; // Bit error rate for this stream
|
||||||
|
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
|
||||||
|
|
||||||
|
BITMAPINFOHEADER bmiHeader;
|
||||||
|
|
||||||
|
union {
|
||||||
|
RGBQUAD bmiColors[iPALETTE_COLORS]; // Colour palette
|
||||||
|
DWORD dwBitMasks[iMASK_COLORS]; // True colour masks
|
||||||
|
TRUECOLORINFO TrueColorInfo; // Both of the above
|
||||||
|
};
|
||||||
|
|
||||||
|
} VIDEOINFO;
|
||||||
|
|
||||||
|
// These macros define some standard bitmap format sizes
|
||||||
|
|
||||||
|
#define SIZE_EGA_PALETTE (iEGA_COLORS * sizeof(RGBQUAD))
|
||||||
|
#define SIZE_PALETTE (iPALETTE_COLORS * sizeof(RGBQUAD))
|
||||||
|
#define SIZE_MASKS (iMASK_COLORS * sizeof(DWORD))
|
||||||
|
#define SIZE_PREHEADER (FIELD_OFFSET(VIDEOINFOHEADER,bmiHeader))
|
||||||
|
#define SIZE_VIDEOHEADER (sizeof(BITMAPINFOHEADER) + SIZE_PREHEADER)
|
||||||
|
// !!! for abnormal biSizes
|
||||||
|
// #define SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + SIZE_PREHEADER)
|
||||||
|
|
||||||
|
// DIBSIZE calculates the number of bytes required by an image
|
||||||
|
|
||||||
|
#define WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
|
||||||
|
#define DIBWIDTHBYTES(bi) (DWORD)WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
|
||||||
|
#define _DIBSIZE(bi) (DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
|
||||||
|
#define DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(_DIBSIZE(bi)) : _DIBSIZE(bi))
|
||||||
|
|
||||||
|
// This compares the bit masks between two VIDEOINFOHEADERs
|
||||||
|
|
||||||
|
#define BIT_MASKS_MATCH(pbmi1,pbmi2) \
|
||||||
|
(((pbmi1)->dwBitMasks[iRED] == (pbmi2)->dwBitMasks[iRED]) && \
|
||||||
|
((pbmi1)->dwBitMasks[iGREEN] == (pbmi2)->dwBitMasks[iGREEN]) && \
|
||||||
|
((pbmi1)->dwBitMasks[iBLUE] == (pbmi2)->dwBitMasks[iBLUE]))
|
||||||
|
|
||||||
|
// These zero fill different parts of the VIDEOINFOHEADER structure
|
||||||
|
|
||||||
|
// Only use these macros for pbmi's with a normal BITMAPINFOHEADER biSize
|
||||||
|
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,SIZE_MASKS))
|
||||||
|
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi),SIZE_VIDEOHEADER))
|
||||||
|
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,SIZE_PALETTE));
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// !!! This is the right way to do it, but may break existing code
|
||||||
|
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
|
||||||
|
(pbmi)->bmiHeader.biSize,SIZE_MASKS)))
|
||||||
|
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi), SIZE_PREHEADER + \
|
||||||
|
sizeof(BITMAPINFOHEADER)))
|
||||||
|
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
|
||||||
|
(pbmi)->bmiHeader.biSize,SIZE_PALETTE))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Other (hopefully) useful bits and bobs
|
||||||
|
|
||||||
|
#define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= iPALETTE)
|
||||||
|
#define PALETTE_ENTRIES(pbmi) ((DWORD) 1 << (pbmi)->bmiHeader.biBitCount)
|
||||||
|
|
||||||
|
// Returns the address of the BITMAPINFOHEADER from the VIDEOINFOHEADER
|
||||||
|
#define HEADER(pVideoInfo) (&(((VIDEOINFOHEADER *) (pVideoInfo))->bmiHeader))
|
||||||
|
|
||||||
|
|
||||||
|
// MPEG variant - includes a DWORD length followed by the
|
||||||
|
// video sequence header after the video header.
|
||||||
|
//
|
||||||
|
// The sequence header includes the sequence header start code and the
|
||||||
|
// quantization matrices associated with the first sequence header in the
|
||||||
|
// stream so is a maximum of 140 bytes long.
|
||||||
|
|
||||||
|
typedef struct tagMPEG1VIDEOINFO {
|
||||||
|
|
||||||
|
VIDEOINFOHEADER hdr; // Compatible with VIDEOINFO
|
||||||
|
DWORD dwStartTimeCode; // 25-bit Group of pictures time code
|
||||||
|
// at start of data
|
||||||
|
DWORD cbSequenceHeader; // Length in bytes of bSequenceHeader
|
||||||
|
BYTE bSequenceHeader[1]; // Sequence header including
|
||||||
|
// quantization matrices if any
|
||||||
|
} MPEG1VIDEOINFO;
|
||||||
|
|
||||||
|
#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
|
||||||
|
#define SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(MPEG1VIDEOINFO, bSequenceHeader[0]) + (pv)->cbSequenceHeader)
|
||||||
|
#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
|
||||||
|
|
||||||
|
|
||||||
|
// Analog video variant - Use this when the format is FORMAT_AnalogVideo
|
||||||
|
//
|
||||||
|
// rcSource defines the portion of the active video signal to use
|
||||||
|
// rcTarget defines the destination rectangle
|
||||||
|
// both of the above are relative to the dwActiveWidth and dwActiveHeight fields
|
||||||
|
// dwActiveWidth is currently set to 720 for all formats (but could change for HDTV)
|
||||||
|
// dwActiveHeight is 483 for NTSC and 575 for PAL/SECAM (but could change for HDTV)
|
||||||
|
|
||||||
|
typedef struct tagAnalogVideoInfo {
|
||||||
|
RECT rcSource; // Width max is 720, height varies w/ TransmissionStd
|
||||||
|
RECT rcTarget; // Where the video should go
|
||||||
|
DWORD dwActiveWidth; // Always 720 (CCIR-601 active samples per line)
|
||||||
|
DWORD dwActiveHeight; // 483 for NTSC, 575 for PAL/SECAM
|
||||||
|
REFERENCE_TIME AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
|
||||||
|
} ANALOGVIDEOINFO;
|
||||||
|
|
||||||
|
//
|
||||||
|
// AM_KSPROPSETID_FrameStep property set definitions
|
||||||
|
//
|
||||||
|
typedef enum {
|
||||||
|
// Step
|
||||||
|
AM_PROPERTY_FRAMESTEP_STEP = 0x01,
|
||||||
|
AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
|
||||||
|
|
||||||
|
// S_OK for these 2 means we can - S_FALSE if we can't
|
||||||
|
AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
|
||||||
|
AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
|
||||||
|
} AM_PROPERTY_FRAMESTEP;
|
||||||
|
|
||||||
|
typedef struct _AM_FRAMESTEP_STEP
|
||||||
|
{
|
||||||
|
// 1 means step 1 frame forward
|
||||||
|
// 0 is invalid
|
||||||
|
// n (n > 1) means skip n - 1 frames and show the nth
|
||||||
|
DWORD dwFramesToStep;
|
||||||
|
} AM_FRAMESTEP_STEP;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
#endif // __AMVIDEO__
|
||||||
|
|
||||||
1750
third_party/dx9_sdk/include/Bdatif.h
vendored
Normal file
1750
third_party/dx9_sdk/include/Bdatif.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
78
third_party/dx9_sdk/include/DShow.h
vendored
Normal file
78
third_party/dx9_sdk/include/DShow.h
vendored
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DShow.h
|
||||||
|
//
|
||||||
|
// Desc: DirectShow top-level include file
|
||||||
|
//
|
||||||
|
// Copyright (c) 2000-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __DSHOW_INCLUDED__
|
||||||
|
#define __DSHOW_INCLUDED__
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Set up constants & pragmas for the compiler
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// disable some level-4 warnings, use #pragma warning(default:###) to re-enable
|
||||||
|
#pragma warning(disable:4100) // warning C4100: unreferenced formal parameter
|
||||||
|
#pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
|
||||||
|
#pragma warning(disable:4511) // warning C4511: copy constructor could not be generated
|
||||||
|
#pragma warning(disable:4512) // warning C4512: assignment operator could not be generated
|
||||||
|
#pragma warning(disable:4514) // warning C4514: "unreferenced inline function has been removed"
|
||||||
|
|
||||||
|
#if _MSC_VER>=1100
|
||||||
|
#define AM_NOVTABLE __declspec(novtable)
|
||||||
|
#else
|
||||||
|
#define AM_NOVTABLE
|
||||||
|
#endif
|
||||||
|
#endif // MSC_VER
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Include standard Windows files
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
#include <windows.h>
|
||||||
|
#include <windowsx.h>
|
||||||
|
#include <olectl.h>
|
||||||
|
#include <ddraw.h>
|
||||||
|
#include <mmsystem.h>
|
||||||
|
|
||||||
|
#ifndef NUMELMS
|
||||||
|
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Include DirectShow include files
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
#include <strmif.h> // Generated IDL header file for streams interfaces
|
||||||
|
#include <amvideo.h> // ActiveMovie video interfaces and definitions
|
||||||
|
#include <amaudio.h> // ActiveMovie audio interfaces and definitions
|
||||||
|
#include <control.h> // generated from control.odl
|
||||||
|
#include <evcode.h> // event code definitions
|
||||||
|
#include <uuids.h> // declaration of type GUIDs and well-known clsids
|
||||||
|
#include <errors.h> // HRESULT status and error definitions
|
||||||
|
#include <edevdefs.h> // External device control interface defines
|
||||||
|
#include <audevcod.h> // audio filter device error event codes
|
||||||
|
#include <dvdevcod.h> // DVD error event codes
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Define OLE Automation constants
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifndef OATRUE
|
||||||
|
#define OATRUE (-1)
|
||||||
|
#endif // OATRUE
|
||||||
|
#ifndef OAFALSE
|
||||||
|
#define OAFALSE (0)
|
||||||
|
#endif // OAFALSE
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Define Win64 interfaces if not already defined
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// InterlockedExchangePointer
|
||||||
|
#ifndef InterlockedExchangePointer
|
||||||
|
#define InterlockedExchangePointer(Target, Value) \
|
||||||
|
(PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __DSHOW_INCLUDED__
|
||||||
678
third_party/dx9_sdk/include/DShowIDL/Bdatif.idl
vendored
Normal file
678
third_party/dx9_sdk/include/DShowIDL/Bdatif.idl
vendored
Normal file
@ -0,0 +1,678 @@
|
|||||||
|
//---------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999-2002 Microsoft Corporation
|
||||||
|
//
|
||||||
|
// BDATIF.idl
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
cpp_quote("//+-------------------------------------------------------------------------")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// Microsoft Windows")
|
||||||
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2002.")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("//--------------------------------------------------------------------------")
|
||||||
|
cpp_quote("#if ( _MSC_VER >= 800 )")
|
||||||
|
cpp_quote("#pragma warning(disable:4201) /* Nameless struct/union */")
|
||||||
|
cpp_quote("#endif")
|
||||||
|
cpp_quote("#if ( _MSC_VER >= 1020 )")
|
||||||
|
cpp_quote("#pragma once")
|
||||||
|
cpp_quote("#endif")
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// IUnknown import idl
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef DO_NO_IMPORTS
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "strmif.idl";
|
||||||
|
import "tuner.idl";
|
||||||
|
import "bdaiface.idl";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
interface IMPEG2_TIF_CONTROL;
|
||||||
|
interface IATSCChannelInfo;
|
||||||
|
interface IMPEG2PIDMap;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IBDA_TIF_REGISTRATION interface
|
||||||
|
//
|
||||||
|
// Implemented by the Microsoft ATSC/DVB BDA Network Provider
|
||||||
|
//
|
||||||
|
// Used by a transport information filter (TIF) to Register with the NP
|
||||||
|
// AND obtain an Interface to the Demux to set/ Remove PIDs.The TIF here passes
|
||||||
|
// IUNKNOWN of the pin it is connecting to and obtains the IMPEG2PIDMAP interface
|
||||||
|
// implemented by the NP to Map/ UnMap pids.
|
||||||
|
//
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(DFEF4A68-EE61-415f-9CCB-CD95F2F98A3A),
|
||||||
|
helpstring("BDA Network Provider Registration Inteface for DVB/ATSC Transport Information Filters"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IBDA_TIF_REGISTRATION : IUnknown
|
||||||
|
{
|
||||||
|
|
||||||
|
[helpstring("Used to register a transport analyzer with the Network Provider")]
|
||||||
|
HRESULT
|
||||||
|
RegisterTIFEx (
|
||||||
|
[in] IPin * pTIFInputPin,
|
||||||
|
[in, out] ULONG * ppvRegistrationContext,
|
||||||
|
[in, out] IUnknown ** ppMpeg2DataControl
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Used to unregister TIF with the Network Provider")]
|
||||||
|
HRESULT
|
||||||
|
UnregisterTIF (
|
||||||
|
[in] ULONG pvRegistrationContext
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IMPEG2_TIF_CONTROL interface
|
||||||
|
//
|
||||||
|
// Implemented by the Microsoft ATSC/DVB BDA Network Provider
|
||||||
|
//
|
||||||
|
// Used by a transport information filter (TIF) to request table
|
||||||
|
// sections carried on specific PIDs within the transport stream.
|
||||||
|
// The Network Provider Filter will, in turn, do the necessary
|
||||||
|
// control on the Demux Filter. All sections are delivered as comlete
|
||||||
|
// mpeg2 table sections via the TIF's connection to the Demux Filter.
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(F9BAC2F9-4149-4916-B2EF-FAA202326862),
|
||||||
|
helpstring("BDA Network Provider Inteface for DVB/ATSC Transport Information Filters"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMPEG2_TIF_CONTROL : IUnknown
|
||||||
|
{
|
||||||
|
|
||||||
|
[helpstring("Used to register a transport analyzer with the Network Provider")]
|
||||||
|
HRESULT
|
||||||
|
RegisterTIF (
|
||||||
|
[in] IUnknown * pUnkTIF,
|
||||||
|
[in, out] ULONG * ppvRegistrationContext
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Used to unregister TIF with the Network Provider")]
|
||||||
|
HRESULT
|
||||||
|
UnregisterTIF (
|
||||||
|
[in] ULONG pvRegistrationContext
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Used to add PSI/SI MPEG2 packet IDs to the TIF's data stream")]
|
||||||
|
HRESULT
|
||||||
|
AddPIDs (
|
||||||
|
[in] ULONG ulcPIDs,
|
||||||
|
[in] ULONG * pulPIDs
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Used to remove PSI/SI MPEG2 packet IDs from the TIF's data stream")]
|
||||||
|
HRESULT
|
||||||
|
DeletePIDs (
|
||||||
|
[in] ULONG ulcPIDs,
|
||||||
|
[in] ULONG * pulPIDs
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Returns the number of MPEG2 Packet IDs being filtered into the TIF's input data.")]
|
||||||
|
HRESULT
|
||||||
|
GetPIDCount (
|
||||||
|
[out] ULONG * pulcPIDs
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("Returns the the list of MPEG2 Packet IDs being filtered into the TIF's input data.")]
|
||||||
|
HRESULT
|
||||||
|
GetPIDs (
|
||||||
|
[out] ULONG * pulcPIDs,
|
||||||
|
[out] ULONG * pulPIDs
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// ITuneRequestInfo interface
|
||||||
|
//
|
||||||
|
// Implemented by a BDA transport information filter (TIF)
|
||||||
|
//
|
||||||
|
// Used by the BDA Network Provider to obtain network specific
|
||||||
|
// information about locating transport streams and aquiring
|
||||||
|
// services.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// GetLocatorData -
|
||||||
|
//
|
||||||
|
// GetComponentData -
|
||||||
|
//
|
||||||
|
// CreateComponentList -
|
||||||
|
//
|
||||||
|
// GetNextService -
|
||||||
|
//
|
||||||
|
// GetPreviouService -
|
||||||
|
//
|
||||||
|
// GetNextLocator -
|
||||||
|
//
|
||||||
|
// GetPreviousLocator -
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(A3B152DF-7A90-4218-AC54-9830BEE8C0B6),
|
||||||
|
helpstring("Interface provided by the Mpeg2 Transport Information Filter to supply tuning details."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ITuneRequestInfo : IUnknown
|
||||||
|
{
|
||||||
|
|
||||||
|
[helpstring("TIF fills in channel/program locator information for the given tune request.")]
|
||||||
|
HRESULT
|
||||||
|
GetLocatorData (
|
||||||
|
[in] ITuneRequest *Request
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF fills in all network specific component data for the existing component list on the given tune request.")]
|
||||||
|
HRESULT
|
||||||
|
GetComponentData (
|
||||||
|
[in] ITuneRequest *CurrentRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF creates a complete component list and fills in all network specific component data on the given tune request")]
|
||||||
|
HRESULT
|
||||||
|
CreateComponentList (
|
||||||
|
[in] ITuneRequest *CurrentRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the next service.")]
|
||||||
|
HRESULT
|
||||||
|
GetNextProgram (
|
||||||
|
[in] ITuneRequest *CurrentRequest,
|
||||||
|
[out, retval] ITuneRequest **TuneRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the previous service.")]
|
||||||
|
HRESULT
|
||||||
|
GetPreviousProgram (
|
||||||
|
[in] ITuneRequest *CurrentRequest,
|
||||||
|
[out, retval] ITuneRequest **TuneRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF creates a new TuneRequest with locator information for the next transport stream.")]
|
||||||
|
HRESULT
|
||||||
|
GetNextLocator (
|
||||||
|
[in] ITuneRequest *CurrentRequest,
|
||||||
|
[out, retval] ITuneRequest **TuneRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
[helpstring("TIF creates a new TuneRequest with locator information for the previous transport stream.")]
|
||||||
|
HRESULT
|
||||||
|
GetPreviousLocator (
|
||||||
|
[in] ITuneRequest *CurrentRequest,
|
||||||
|
[out, retval] ITuneRequest **TuneRequest
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IGuideDataEvent
|
||||||
|
//
|
||||||
|
// This is the guide data event notification callback interface. The
|
||||||
|
// callback interface is registered on a transport analyzer's
|
||||||
|
// IConnectionPoint by the event consumer.
|
||||||
|
//
|
||||||
|
// The event consumer MUST NOT BLOCK THE CALLING THREAD.
|
||||||
|
//
|
||||||
|
// If the consumer requires additional information about the event, it
|
||||||
|
// should queue the event to a separate thread.
|
||||||
|
//
|
||||||
|
// {EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7}
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7),
|
||||||
|
helpstring("Consumers of a guide data events must implement this callback interface."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideDataEvent : IUnknown
|
||||||
|
{
|
||||||
|
// Indicates that a complete set of guide data has been acquire from
|
||||||
|
// the current transport stream.
|
||||||
|
//
|
||||||
|
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
|
||||||
|
// it must supply this event.
|
||||||
|
//
|
||||||
|
HRESULT GuideDataAcquired(
|
||||||
|
);
|
||||||
|
|
||||||
|
// Indicates that information about one or more programs changed.
|
||||||
|
//
|
||||||
|
// If varProgramDescriptionID is NULL then the consumer
|
||||||
|
// must get properties for all programs to determine which ones
|
||||||
|
// changed.
|
||||||
|
//
|
||||||
|
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
|
||||||
|
// it must supply this event.
|
||||||
|
//
|
||||||
|
HRESULT ProgramChanged(
|
||||||
|
[in] VARIANT varProgramDescriptionID
|
||||||
|
);
|
||||||
|
|
||||||
|
// Indicates that information about one or more services changed.
|
||||||
|
//
|
||||||
|
// If varServiceDescriptionID is NULL then the consumer
|
||||||
|
// must get properties for all services to determine which ones
|
||||||
|
// changed.
|
||||||
|
//
|
||||||
|
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
|
||||||
|
// it must supply this event.
|
||||||
|
//
|
||||||
|
HRESULT ServiceChanged(
|
||||||
|
[in] VARIANT varServiceDescriptionID
|
||||||
|
);
|
||||||
|
|
||||||
|
// Indicates that information about one or more schedule entries
|
||||||
|
// changed.
|
||||||
|
//
|
||||||
|
// If varScheduleEntryDescriptionID is NULL then the consumer
|
||||||
|
// must get properties for all schedule entries to determine which ones
|
||||||
|
// changed.
|
||||||
|
//
|
||||||
|
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
|
||||||
|
// it must supply this event.
|
||||||
|
//
|
||||||
|
HRESULT ScheduleEntryChanged(
|
||||||
|
[in] VARIANT varScheduleEntryDescriptionID
|
||||||
|
);
|
||||||
|
|
||||||
|
// Indicates that the program with the given Description.ID
|
||||||
|
// has been deleted.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Optional - Transport analyzer may supply this event. Consumer
|
||||||
|
// may return E_NOTIMPL.
|
||||||
|
//
|
||||||
|
HRESULT ProgramDeleted(
|
||||||
|
[in] VARIANT varProgramDescriptionID
|
||||||
|
);
|
||||||
|
|
||||||
|
// Indicates that the service with the given Description.ID
|
||||||
|
// has been deleted.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Optional - Transport analyzer may supply this event. Consumer
|
||||||
|
// may return E_NOTIMPL.
|
||||||
|
//
|
||||||
|
HRESULT ServiceDeleted(
|
||||||
|
[in] VARIANT varServiceDescriptionID
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Indicates that the schedule entry with the given Description.ID
|
||||||
|
// has been deleted.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Optional - Transport analyzer may supply this event. Consumer
|
||||||
|
// may return E_NOTIMPL.
|
||||||
|
//
|
||||||
|
HRESULT ScheduleDeleted(
|
||||||
|
[in] VARIANT varScheduleEntryDescriptionID
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IGuideDataPropery
|
||||||
|
//
|
||||||
|
// {88EC5E58-BB73-41d6-99CE-66C524B8B591}
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(88EC5E58-BB73-41d6-99CE-66C524B8B591),
|
||||||
|
helpstring("Interface provided by a transport analyzer to represent a guide data property."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideDataProperty : IUnknown
|
||||||
|
{
|
||||||
|
[propget] HRESULT Name([out] BSTR *pbstrName);
|
||||||
|
[propget] HRESULT Language([out] long *idLang);
|
||||||
|
[propget] HRESULT Value([out] VARIANT *pvar);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IEnumGuideDataProperties
|
||||||
|
//
|
||||||
|
// {AE44423B-4571-475c-AD2C-F40A771D80EF}
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(AE44423B-4571-475c-AD2C-F40A771D80EF),
|
||||||
|
helpstring("Interface provided by a transport analyzer to enumerate guide data properties."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IEnumGuideDataProperties : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Next([in] unsigned long celt, [out] IGuideDataProperty **ppprop, [out] unsigned long *pcelt);
|
||||||
|
HRESULT Skip([in] unsigned long celt);
|
||||||
|
HRESULT Reset();
|
||||||
|
HRESULT Clone([out] IEnumGuideDataProperties **ppenum);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IEnumTuneRequests
|
||||||
|
//
|
||||||
|
// {1993299C-CED6-4788-87A3-420067DCE0C7}
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(1993299C-CED6-4788-87A3-420067DCE0C7),
|
||||||
|
helpstring("Interface provided by a transport analyzer to enumerate service tune requests ."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IEnumTuneRequests : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Next([in] unsigned long celt, [out] ITuneRequest **ppprop, [out] unsigned long *pcelt);
|
||||||
|
HRESULT Skip([in] unsigned long celt);
|
||||||
|
HRESULT Reset();
|
||||||
|
HRESULT Clone([out] IEnumTuneRequests **ppenum);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IGuideData
|
||||||
|
//
|
||||||
|
// {61571138-5B01-43cd-AEAF-60B784A0BF93}
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(61571138-5B01-43cd-AEAF-60B784A0BF93),
|
||||||
|
helpstring("Interface provided by a transport analyzer to supply guide data information."),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideData : IUnknown
|
||||||
|
{
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetServices
|
||||||
|
// Returns an enumeration of tune requests for all services whose
|
||||||
|
// information is found in the current transport stream.
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
//
|
||||||
|
// IEnumTuneRequests **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumTuneRequests is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Comments
|
||||||
|
// This call is used to enumerate all services whose information
|
||||||
|
// can be found in the service descriptor table. Each tune request
|
||||||
|
// in the IEnumTuneRequest * contains the tune request including the
|
||||||
|
// locator data for the service.
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of services whose information is found in the given transport stream")]
|
||||||
|
HRESULT
|
||||||
|
GetServices (
|
||||||
|
[out, retval] IEnumTuneRequests ** ppEnumTuneRequests
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetServiceProperties
|
||||||
|
// Returns an enumeration of all guide data properties for
|
||||||
|
// the service with the given Description.ID.
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
// ITuneRequest *
|
||||||
|
// Pointer to a tune request that contains information needed
|
||||||
|
// to indentify the requested transport stream.
|
||||||
|
// A NULL ITuneRequest * indicates that information about the
|
||||||
|
// current transport stream is requested.
|
||||||
|
//
|
||||||
|
// IEnumGuideDataProperties **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumGuideDataProperties is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Required Properties
|
||||||
|
// The following properties MUST be included in the returned
|
||||||
|
// property enumeration.
|
||||||
|
//
|
||||||
|
// Description.ID
|
||||||
|
// Uniquely identifies a service.
|
||||||
|
//
|
||||||
|
// Description.Name
|
||||||
|
// The default name to use for this service in the channel lineup.
|
||||||
|
//
|
||||||
|
// Description.Version
|
||||||
|
// Identifies the current version of the properties associated
|
||||||
|
// with this service.
|
||||||
|
//
|
||||||
|
// Provider.Name
|
||||||
|
// Name of the service provider (e.g. "KCTS")
|
||||||
|
//
|
||||||
|
// Provider.NetworkName
|
||||||
|
// Name of the network on which the service is provided.
|
||||||
|
// (e.g. "PBS")
|
||||||
|
//
|
||||||
|
// Service.TuneRequest
|
||||||
|
// Contains a tune request in the variant
|
||||||
|
//
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of all guide data properties for the service specified by a tune request.")]
|
||||||
|
HRESULT
|
||||||
|
GetServiceProperties (
|
||||||
|
[in] ITuneRequest * pTuneRequest,
|
||||||
|
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
|
||||||
|
);
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetProgramIDs
|
||||||
|
// Returns an enumeration of the unique identifiers (Description.ID)
|
||||||
|
// of programs with description contained in all transport
|
||||||
|
// streams
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
//
|
||||||
|
// IEnumVARIANT **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumVARIANT is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Comments
|
||||||
|
// This call is used to get a list of programs that have
|
||||||
|
// guide data properties in all transport streams.
|
||||||
|
// Each variant returned in the IEnumVARIANT * contains the
|
||||||
|
// unique Description.ID property for a program.
|
||||||
|
// Note that more than on transport stream may contain properties
|
||||||
|
// for the same program. In this case the properties should be
|
||||||
|
// merged.
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of the Description.ID property for all programs on the given transport stream.")]
|
||||||
|
HRESULT
|
||||||
|
GetGuideProgramIDs (
|
||||||
|
[out, retval] IEnumVARIANT ** pEnumPrograms
|
||||||
|
);
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetProgramProperties
|
||||||
|
// Returns an enumeration of all guide data properties for
|
||||||
|
// the program with the given Description.ID.
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
// varProgramDescriptionID
|
||||||
|
// Variant containing the unique identifier for the program
|
||||||
|
// for which properties are requested.
|
||||||
|
//
|
||||||
|
// IEnumGuideDataProperties **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumGuideDataProperties is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Required Properties
|
||||||
|
// The following properties MUST be included in the returned
|
||||||
|
// property enumeration.
|
||||||
|
//
|
||||||
|
// Description.ID
|
||||||
|
// Uniquely identifies a program.
|
||||||
|
//
|
||||||
|
// Description.Version
|
||||||
|
// Identifies the current version of the properties associated
|
||||||
|
// with this program.
|
||||||
|
//
|
||||||
|
// Description.Title
|
||||||
|
// Human readable title of the program (e.g. "")
|
||||||
|
//
|
||||||
|
// Description.Long
|
||||||
|
// A description of the program.
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of all guide data properties for the program with the given Description.ID.")]
|
||||||
|
HRESULT
|
||||||
|
GetProgramProperties (
|
||||||
|
[in] VARIANT varProgramDescriptionID,
|
||||||
|
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
|
||||||
|
);
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetScheduleIDs
|
||||||
|
// Returns an enumeration of the unique identifiers (Description.ID)
|
||||||
|
// transport of schedule entries with description contained in the
|
||||||
|
// given transport stream.
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
//
|
||||||
|
// IEnumVARIANT **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumVARIANT is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Comments
|
||||||
|
// This call is used to get a list of schedule entries that have
|
||||||
|
// guide data properties in all transport streams.
|
||||||
|
// Each variant returned in the IEnumVARIANT * contains the
|
||||||
|
// unique Description.ID property for a schedule entry.
|
||||||
|
// Note that more than on transport stream may contain properties
|
||||||
|
// for the same schedule entry. In this case the properties
|
||||||
|
// should be merged.
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of the Description.ID property for all schedule entries in the transport stream specified by a tune request.")]
|
||||||
|
HRESULT
|
||||||
|
GetScheduleEntryIDs (
|
||||||
|
[out, retval] IEnumVARIANT ** pEnumScheduleEntries
|
||||||
|
);
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GetScheduleEntryProperties
|
||||||
|
// Returns an enumeration of all guide data properties for
|
||||||
|
// the schedule entry with the given Description.ID.
|
||||||
|
//
|
||||||
|
// Parameters
|
||||||
|
// varScheduleEntryDescriptionID
|
||||||
|
// Variant containing the unique identifier for the schedule
|
||||||
|
// entry for which properties are requested.
|
||||||
|
//
|
||||||
|
// IEnumGuideDataProperties **
|
||||||
|
// Location in which a reference to the resulting
|
||||||
|
// IEnumGuideDataProperties is placed. The caller must release
|
||||||
|
// this reference when finished with it.
|
||||||
|
//
|
||||||
|
// Required Properties
|
||||||
|
// The following properties MUST be included in the returned
|
||||||
|
// property enumeration.
|
||||||
|
//
|
||||||
|
// Description.ID
|
||||||
|
// Uniquely identifies a schedule entry.
|
||||||
|
//
|
||||||
|
// Description.Version
|
||||||
|
// Identifies the current version of the properties associated
|
||||||
|
// with this program.
|
||||||
|
//
|
||||||
|
// Time.Start
|
||||||
|
// The starting time and date of this schedule entry.
|
||||||
|
//
|
||||||
|
// Time.End
|
||||||
|
// The ending time and date of this schedule entry.
|
||||||
|
//
|
||||||
|
// Schedule.Program
|
||||||
|
// The Description.ID of the program that will play at the
|
||||||
|
// time specified by this schedule entry.
|
||||||
|
//
|
||||||
|
// Schedule.Service
|
||||||
|
// The Description.ID of the Service that carries the
|
||||||
|
// program that will play at the time specified by this
|
||||||
|
// schedule entry.
|
||||||
|
//
|
||||||
|
[helpstring("Returns an enumeration of all guide data properties for the schedule entry with the given Description.ID.")]
|
||||||
|
HRESULT
|
||||||
|
GetScheduleEntryProperties (
|
||||||
|
[in] VARIANT varScheduleEntryDescriptionID,
|
||||||
|
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
//
|
||||||
|
// IGuideDataLoader
|
||||||
|
//
|
||||||
|
// All Guide Data Loaders MUST implement this interface. It is how they are
|
||||||
|
// provided with the IGuideData interface that they will use.
|
||||||
|
//
|
||||||
|
// {4764ff7c-fa95-4525-af4d-d32236db9e38}
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(4764ff7c-fa95-4525-af4d-d32236db9e38),
|
||||||
|
helpstring("IGuideDataLoader Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideDataLoader : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Init([in] IGuideData *pGuideStore);
|
||||||
|
HRESULT Terminate();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8224A083-7F8C-432D-B83E-3C5E9BDE3528),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("psisload 1.0 Type Library")
|
||||||
|
]
|
||||||
|
library PSISLOADLib
|
||||||
|
{
|
||||||
|
importlib("stdole32.tlb");
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(14EB8748-1753-4393-95AE-4F7E7A87AAD6),
|
||||||
|
helpstring("TIFLoad Class")
|
||||||
|
]
|
||||||
|
coclass TIFLoad
|
||||||
|
{
|
||||||
|
interface IGuideDataLoader;
|
||||||
|
interface IGuideDataEvent;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpp_quote("#if ( _MSC_VER >= 800 )")
|
||||||
|
cpp_quote("#pragma warning(default:4201) /* Nameless struct/union */")
|
||||||
|
cpp_quote("#endif")
|
||||||
303
third_party/dx9_sdk/include/DShowIDL/Mpeg2Data.idl
vendored
Normal file
303
third_party/dx9_sdk/include/DShowIDL/Mpeg2Data.idl
vendored
Normal file
@ -0,0 +1,303 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// Module Name:
|
||||||
|
//
|
||||||
|
// Mpeg2Data.idl
|
||||||
|
//
|
||||||
|
// Abstract:
|
||||||
|
//
|
||||||
|
// Main Mpeg2Data Library Definition, and interface definitions for
|
||||||
|
// the MPEG-2 Section and Table acquisition functionality
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Import Files
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
import "bdaiface.idl";
|
||||||
|
|
||||||
|
// Specify single byte packing alignment
|
||||||
|
#pragma pack(push)
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
|
// Forward interface declarations
|
||||||
|
interface ISectionList;
|
||||||
|
interface IMpeg2Stream;
|
||||||
|
|
||||||
|
// Declare well known PID/TID values for MPEG-2 tables
|
||||||
|
cpp_quote("#define MPEG_PAT_PID 0x0000")
|
||||||
|
cpp_quote("#define MPEG_PAT_TID 0x00")
|
||||||
|
|
||||||
|
cpp_quote("#define MPEG_CAT_PID 0x0001")
|
||||||
|
cpp_quote("#define MPEG_CAT_TID 0x01")
|
||||||
|
|
||||||
|
cpp_quote("#define MPEG_PMT_TID 0x02")
|
||||||
|
|
||||||
|
cpp_quote("#define MPEG_TSDT_PID 0x0002")
|
||||||
|
cpp_quote("#define MPEG_TSDT_TID 0x03")
|
||||||
|
|
||||||
|
// Declare well known PID/TID values for ATSC tables
|
||||||
|
cpp_quote("#define ATSC_MGT_PID 0x1FFB")
|
||||||
|
cpp_quote("#define ATSC_MGT_TID 0xC7")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_VCT_PID 0x1FFB")
|
||||||
|
cpp_quote("#define ATSC_VCT_TERR_TID 0xC8")
|
||||||
|
cpp_quote("#define ATSC_VCT_CABL_TID 0xC9")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_RRT_PID 0x1FFB")
|
||||||
|
cpp_quote("#define ATSC_RRT_TID 0xCA")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_EIT_TID 0xCB")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_ETT_TID 0xCC")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_STT_PID 0x1FFB")
|
||||||
|
cpp_quote("#define ATSC_STT_TID 0xCD")
|
||||||
|
|
||||||
|
cpp_quote("#define ATSC_PIT_TID 0xD0")
|
||||||
|
|
||||||
|
// Declare well known PID/TID values for DVB tables
|
||||||
|
cpp_quote("#define DVB_NIT_PID 0x0010")
|
||||||
|
cpp_quote("#define DVB_NIT_ACTUAL_TID 0x40")
|
||||||
|
cpp_quote("#define DVB_NIT_OTHER_TID 0x41")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_SDT_PID 0x0011")
|
||||||
|
cpp_quote("#define DVB_SDT_ACTUAL_TID 0x42")
|
||||||
|
cpp_quote("#define DVB_SDT_OTHER_TID 0x46")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_BAT_PID 0x0011")
|
||||||
|
cpp_quote("#define DVB_BAT_TID 0x4A")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_EIT_PID 0x0012")
|
||||||
|
cpp_quote("#define DVB_EIT_ACTUAL_TID 0x4E")
|
||||||
|
cpp_quote("#define DVB_EIT_OTHER_TID 0x4F")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_RST_PID 0x0013")
|
||||||
|
cpp_quote("#define DVB_RST_TID 0x71")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_TDT_PID 0x0014")
|
||||||
|
cpp_quote("#define DVB_TDT_TID 0x70")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_ST_PID_16 0x0010")
|
||||||
|
cpp_quote("#define DVB_ST_PID_17 0x0011")
|
||||||
|
cpp_quote("#define DVB_ST_PID_18 0x0012")
|
||||||
|
cpp_quote("#define DVB_ST_PID_19 0x0013")
|
||||||
|
cpp_quote("#define DVB_ST_PID_20 0x0014")
|
||||||
|
cpp_quote("#define DVB_ST_TID 0x72")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_TOT_PID 0x0014")
|
||||||
|
cpp_quote("#define DVB_TOT_TID 0x73")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_DIT_PID 0x001E")
|
||||||
|
cpp_quote("#define DVB_DIT_TID 0x7E")
|
||||||
|
|
||||||
|
cpp_quote("#define DVB_SIT_PID 0x001F")
|
||||||
|
cpp_quote("#define DVB_SIT_TID 0x7F")
|
||||||
|
|
||||||
|
// Declare well known PID/TID values for ISDB tables
|
||||||
|
cpp_quote("#define ISDB_DCT_PID 0x0017")
|
||||||
|
cpp_quote("#define ISDB_DCT_TID 0xC0")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_LIT_PID 0x0020")
|
||||||
|
cpp_quote("#define ISDB_LIT_TID 0xD0")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_ERT_PID 0x0021")
|
||||||
|
cpp_quote("#define ISDB_ERT_TID 0xD1")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_ITT_TID 0xD2")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_DLT_TID 0xC1")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_PCAT_PID 0x0022")
|
||||||
|
cpp_quote("#define ISDB_PCAT_TID 0xC2")
|
||||||
|
|
||||||
|
cpp_quote("#define ISDB_SDTT_PID 0x0023")
|
||||||
|
cpp_quote("#define ISDB_SDTT_TID 0xC3")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Mpeg2DataLib Library
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
cpp_quote("class DECLSPEC_UUID(\"DBAF6C1B-B6A4-4898-AE65-204F0D9509A1\") Mpeg2DataLib;")
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(DBAF6C1B-B6A4-4898-AE65-204F0D9509A1),
|
||||||
|
version(1.0)
|
||||||
|
]
|
||||||
|
library Mpeg2DataLib
|
||||||
|
{
|
||||||
|
importlib("stdole32.tlb");
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
// Include related interface definition files so that everything ends up
|
||||||
|
// in the same library. Note that the order in which these files are
|
||||||
|
// included is important, so do not rearrange them arbitrarily
|
||||||
|
#include "Mpeg2Structs.idl"
|
||||||
|
#ifdef MPEG2_FUTURE_CODE // Not available in DX9
|
||||||
|
#include "Mpeg2PsiParser.idl"
|
||||||
|
#include "AtscPsipParser.idl"
|
||||||
|
#include "DvbSiParser.idl"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// IMpeg2Data Interface
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(9B396D40-F380-4e3c-A514-1A82BF6EBFE6),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMpeg2Data : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT GetSection([in] PID pid,
|
||||||
|
[in] TID tid,
|
||||||
|
[in] PMPEG2_FILTER pFilter, // OPTIONAL
|
||||||
|
[in] DWORD dwTimeout,
|
||||||
|
[out] ISectionList ** ppSectionList);
|
||||||
|
|
||||||
|
HRESULT GetTable([in] PID pid,
|
||||||
|
[in] TID tid,
|
||||||
|
[in] PMPEG2_FILTER pFilter, // OPTIONAL
|
||||||
|
[in] DWORD dwTimeout,
|
||||||
|
[out] ISectionList ** ppSectionList);
|
||||||
|
|
||||||
|
HRESULT GetStreamOfSections([in] PID pid,
|
||||||
|
[in] TID tid,
|
||||||
|
[in] PMPEG2_FILTER pFilter, // OPTIONAL
|
||||||
|
[in] HANDLE hDataReadyEvent,
|
||||||
|
[out] IMpeg2Stream ** ppMpegStream);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// ISectionList Interface
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(AFEC1EB5-2A64-46c6-BF4B-AE3CCB6AFDB0),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ISectionList : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Initialize([in] MPEG_REQUEST_TYPE requestType,
|
||||||
|
[in] IMpeg2Data * pMpeg2Data,
|
||||||
|
[in] PMPEG_CONTEXT pContext,
|
||||||
|
[in] PID pid,
|
||||||
|
[in] TID tid,
|
||||||
|
[in] PMPEG2_FILTER pFilter, // OPTIONAL
|
||||||
|
[in] DWORD timeout,
|
||||||
|
[in] HANDLE hDoneEvent); // OPTIONAL
|
||||||
|
|
||||||
|
HRESULT InitializeWithRawSections([in] PMPEG_PACKET_LIST pmplSections);
|
||||||
|
|
||||||
|
HRESULT CancelPendingRequest(void);
|
||||||
|
|
||||||
|
HRESULT GetNumberOfSections([out] WORD * pCount);
|
||||||
|
|
||||||
|
HRESULT GetSectionData([in] WORD sectionNumber,
|
||||||
|
[out] DWORD * pdwRawPacketLength,
|
||||||
|
[out] PSECTION * ppSection);
|
||||||
|
|
||||||
|
HRESULT GetProgramIdentifier(PID * pPid);
|
||||||
|
|
||||||
|
HRESULT GetTableIdentifier(TID * pTableId);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// IMpeg2Stream Interface
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(400CC286-32A0-4ce4-9041-39571125A635),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMpeg2Stream : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Initialize([in] MPEG_REQUEST_TYPE requestType,
|
||||||
|
[in] IMpeg2Data * pMpeg2Data,
|
||||||
|
[in] PMPEG_CONTEXT pContext,
|
||||||
|
[in] PID pid,
|
||||||
|
[in] TID tid,
|
||||||
|
[in] PMPEG2_FILTER pFilter, // OPTIONAL
|
||||||
|
[in] HANDLE hDataReadyEvent);
|
||||||
|
|
||||||
|
HRESULT SupplyDataBuffer([in] PMPEG_STREAM_BUFFER pStreamBuffer);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// SectionList CoClass
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(73DA5D04-4347-45d3-A9DC-FAE9DDBE558D)
|
||||||
|
]
|
||||||
|
coclass SectionList
|
||||||
|
{
|
||||||
|
[default] interface ISectionList;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Mpeg2Stream CoClass
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(F91D96C7-8509-4d0b-AB26-A0DD10904BB7)
|
||||||
|
]
|
||||||
|
coclass Mpeg2Stream
|
||||||
|
{
|
||||||
|
[default] interface IMpeg2Stream;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Mpeg2Data CoClass
|
||||||
|
//
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C666E115-BB62-4027-A113-82D643FE2D99)
|
||||||
|
]
|
||||||
|
coclass Mpeg2Data
|
||||||
|
{
|
||||||
|
[default] interface IMpeg2Data;
|
||||||
|
#ifdef MPEG2_FUTURE_CODE // Not available in DX9
|
||||||
|
interface IAtscPsipParser;
|
||||||
|
interface IDvbSiParser;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Return to default packing
|
||||||
|
#pragma pack(pop)
|
||||||
368
third_party/dx9_sdk/include/DShowIDL/Mpeg2Structs.idl
vendored
Normal file
368
third_party/dx9_sdk/include/DShowIDL/Mpeg2Structs.idl
vendored
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// Module Name:
|
||||||
|
//
|
||||||
|
// Mpeg2Structs.idl
|
||||||
|
//
|
||||||
|
// Abstract:
|
||||||
|
//
|
||||||
|
// Definitions for the common structures used in Mpeg2Data
|
||||||
|
//
|
||||||
|
// Notes:
|
||||||
|
//
|
||||||
|
// This IDL file is not built independently, but is included and built
|
||||||
|
// in the master IDL file Mpeg2Data.idl
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Include Files
|
||||||
|
#include "Mpeg2Bits.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Basic Type Aliases
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef WORD PID;
|
||||||
|
typedef BYTE TID;
|
||||||
|
typedef UINT ClientKey;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 Current/Next bit field
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPEG_SECTION_IS_NEXT = 0,
|
||||||
|
MPEG_SECTION_IS_CURRENT = 1
|
||||||
|
} MPEG_CURRENT_NEXT_BIT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 TID Extension structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD wTidExt;
|
||||||
|
WORD wCount;
|
||||||
|
} TID_EXTENSION, *PTID_EXTENSION;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 packet "small" header structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
TID TableId;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_HEADER_BITS_MIDL S;
|
||||||
|
WORD W;
|
||||||
|
} Header;
|
||||||
|
BYTE SectionData[1]; // Array size is Header.S.SectionLength
|
||||||
|
} SECTION, *PSECTION;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 packet "long" header structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
TID TableId;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_HEADER_BITS_MIDL S;
|
||||||
|
WORD W;
|
||||||
|
} Header;
|
||||||
|
WORD TableIdExtension;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_HEADER_VERSION_BITS_MIDL S;
|
||||||
|
BYTE B;
|
||||||
|
} Version;
|
||||||
|
BYTE SectionNumber;
|
||||||
|
BYTE LastSectionNumber;
|
||||||
|
BYTE RemainingData[1]; // Array size is Header.S.SectionLength - 5
|
||||||
|
} LONG_SECTION, *PLONG_SECTION;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// DSM-CC packet header structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
TID TableId;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_HEADER_BITS_MIDL S;
|
||||||
|
WORD W;
|
||||||
|
} Header;
|
||||||
|
WORD TableIdExtension;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_HEADER_VERSION_BITS_MIDL S;
|
||||||
|
BYTE B;
|
||||||
|
} Version;
|
||||||
|
BYTE SectionNumber;
|
||||||
|
BYTE LastSectionNumber;
|
||||||
|
BYTE ProtocolDiscriminator;
|
||||||
|
BYTE DsmccType;
|
||||||
|
WORD MessageId;
|
||||||
|
DWORD TransactionId;
|
||||||
|
BYTE Reserved;
|
||||||
|
BYTE AdaptationLength;
|
||||||
|
WORD MessageLength;
|
||||||
|
BYTE RemainingData[1];
|
||||||
|
} DSMCC_SECTION, *PDSMCC_SECTION;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 request/response packets structures
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
DWORD dwLength;
|
||||||
|
PSECTION pSection;
|
||||||
|
} MPEG_RQST_PACKET, *PMPEG_RQST_PACKET;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD wPacketCount;
|
||||||
|
PMPEG_RQST_PACKET PacketList[1]; // Array size is wPacketCount;
|
||||||
|
} MPEG_PACKET_LIST, *PMPEG_PACKET_LIST;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// DSM-CC request filter options
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BOOL fSpecifyProtocol; // If true, Protocol should be set to desired value
|
||||||
|
BYTE Protocol;
|
||||||
|
BOOL fSpecifyType; // If true, Type should be set to desired value
|
||||||
|
BYTE Type;
|
||||||
|
BOOL fSpecifyMessageId; // If true, MessageId should be set to desired value
|
||||||
|
WORD MessageId;
|
||||||
|
BOOL fSpecifyTransactionId; // If true, TransactionId (or DownloadId for DDB msgs) should be set to desired value
|
||||||
|
BOOL fUseTrxIdMessageIdMask; // If false, TransactionId is filtered as is.
|
||||||
|
// If true, TransactionId is masked to look
|
||||||
|
// for any version of message with associated
|
||||||
|
// message identifier. See DVB - Data
|
||||||
|
// Broadcasting Guidlines 4.6.5. (Assignment
|
||||||
|
// and use of transactionId values).
|
||||||
|
DWORD TransactionId;
|
||||||
|
BOOL fSpecifyModuleVersion; // If true, ModuleVersion should be set to the desired value
|
||||||
|
BYTE ModuleVersion;
|
||||||
|
BOOL fSpecifyBlockNumber; // If true, BlockNumber should be set to desired value
|
||||||
|
WORD BlockNumber;
|
||||||
|
BOOL fGetModuleCall; // If true, NumberOfBlocksInModule should be set
|
||||||
|
WORD NumberOfBlocksInModule;
|
||||||
|
} DSMCC_FILTER_OPTIONS;
|
||||||
|
// 45 BYTES
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ATSC request filter options
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BOOL fSpecifyEtmId; // If true, EtmId should be set to desired value
|
||||||
|
DWORD EtmId;
|
||||||
|
} ATSC_FILTER_OPTIONS;
|
||||||
|
// 8 BYTES
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 request filter structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE bVersionNumber; // Must be set to 1 or more to match filter definition
|
||||||
|
WORD wFilterSize; // Size of total filter structure. Version 1 filter is 73 bytes.
|
||||||
|
BOOL fUseRawFilteringBits; // If true, Filter and Mask fields should be set to desired value, all other
|
||||||
|
// fields with be ignored.
|
||||||
|
BYTE Filter[16]; // Bits with values to compare against for a match.
|
||||||
|
BYTE Mask[16]; // Bits set to 0 are bits that are compared to those in the filter, those
|
||||||
|
// bits set to 1 are ignored.
|
||||||
|
BOOL fSpecifyTableIdExtension; // If true, TableIdExtension should be set to desired value (false = don't care)
|
||||||
|
WORD TableIdExtension;
|
||||||
|
BOOL fSpecifyVersion; // If true, Version should be set to desired value (false = don't care)
|
||||||
|
BYTE Version;
|
||||||
|
BOOL fSpecifySectionNumber; // If true, SectionNumber should be set to desired value (false = don't care)
|
||||||
|
BYTE SectionNumber;
|
||||||
|
BOOL fSpecifyCurrentNext; // If true, fNext should be set to desired value (false = don't care)
|
||||||
|
BOOL fNext; // If true, next table is queried. Else, current
|
||||||
|
BOOL fSpecifyDsmccOptions; // If true, Dsmcc should be set with desired filter options
|
||||||
|
DSMCC_FILTER_OPTIONS Dsmcc;
|
||||||
|
BOOL fSpecifyAtscOptions; // If true, Atsc should be set with desired filter options
|
||||||
|
ATSC_FILTER_OPTIONS Atsc;
|
||||||
|
} MPEG2_FILTER, *PMPEG2_FILTER;
|
||||||
|
// 124 BYTES
|
||||||
|
|
||||||
|
cpp_quote("#define MPEG2_FILTER_VERSION_1_SIZE 124")
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Mpeg-2 Stream buffer structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
DWORD dwDataBufferSize;
|
||||||
|
DWORD dwSizeOfDataRead;
|
||||||
|
BYTE * pDataBuffer;
|
||||||
|
} MPEG_STREAM_BUFFER, *PMPEG_STREAM_BUFFER;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 Time and Date structures
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE Hours; // Legal Range: 0 to 23
|
||||||
|
BYTE Minutes; // Legal Range: 0 to 59
|
||||||
|
BYTE Seconds; // Legal Range: 0 to 59
|
||||||
|
} MPEG_TIME;
|
||||||
|
|
||||||
|
typedef MPEG_TIME MPEG_DURATION;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE Date; // Legal Range: 1 to 31
|
||||||
|
BYTE Month; // Legal Range: 1 to 12
|
||||||
|
WORD Year; // Legal Range: 1900 to 2100
|
||||||
|
} MPEG_DATE;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
MPEG_DATE D;
|
||||||
|
MPEG_TIME T;
|
||||||
|
} MPEG_DATE_AND_TIME;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 API Context structures
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPEG_CONTEXT_BCS_DEMUX,
|
||||||
|
MPEG_CONTEXT_WINSOCK
|
||||||
|
} MPEG_CONTEXT_TYPE;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
DWORD AVMGraphId;
|
||||||
|
} MPEG_BCS_DEMUX;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
DWORD AVMGraphId;
|
||||||
|
} MPEG_WINSOCK;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
MPEG_CONTEXT_TYPE Type;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
MPEG_BCS_DEMUX Demux;
|
||||||
|
MPEG_WINSOCK Winsock;
|
||||||
|
} U;
|
||||||
|
} MPEG_CONTEXT, *PMPEG_CONTEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 Service Request and Responses
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPEG_RQST_UNKNOWN = 0,
|
||||||
|
MPEG_RQST_GET_SECTION,
|
||||||
|
MPEG_RQST_GET_SECTION_ASYNC,
|
||||||
|
MPEG_RQST_GET_TABLE,
|
||||||
|
MPEG_RQST_GET_TABLE_ASYNC,
|
||||||
|
MPEG_RQST_GET_SECTIONS_STREAM,
|
||||||
|
MPEG_RQST_GET_PES_STREAM,
|
||||||
|
MPEG_RQST_GET_TS_STREAM,
|
||||||
|
MPEG_RQST_START_MPE_STREAM,
|
||||||
|
} MPEG_REQUEST_TYPE;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
MPEG_REQUEST_TYPE Type;
|
||||||
|
MPEG_CONTEXT Context;
|
||||||
|
PID Pid;
|
||||||
|
TID TableId;
|
||||||
|
MPEG2_FILTER Filter;
|
||||||
|
DWORD Flags;
|
||||||
|
} MPEG_SERVICE_REQUEST, *PMPEG_SERVICE_REQUEST;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
DWORD IPAddress;
|
||||||
|
WORD Port;
|
||||||
|
} MPEG_SERVICE_RESPONSE, *PMPEG_SERVICE_RESPONSE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// DSM-CC & MPE Query Results
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct _DSMCC_ELEMENT
|
||||||
|
{
|
||||||
|
PID pid;
|
||||||
|
BYTE bComponentTag;
|
||||||
|
DWORD dwCarouselId;
|
||||||
|
DWORD dwTransactionId;
|
||||||
|
struct _DSMCC_ELEMENT * pNext;
|
||||||
|
} DSMCC_ELEMENT, *PDSMCC_ELEMENT;
|
||||||
|
|
||||||
|
typedef struct _MPE_ELEMENT
|
||||||
|
{
|
||||||
|
PID pid;
|
||||||
|
BYTE bComponentTag;
|
||||||
|
struct _MPE_ELEMENT * pNext;
|
||||||
|
} MPE_ELEMENT, *PMPE_ELEMENT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPEG-2 Stream Filtering Structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct _MPEG_STREAM_FILTER
|
||||||
|
{
|
||||||
|
WORD wPidValue; // PID value
|
||||||
|
DWORD dwFilterSize; // size of filter in bits
|
||||||
|
BOOL fCrcEnabled; // enable/disable CRC check
|
||||||
|
BYTE rgchFilter[16]; // filter data
|
||||||
|
BYTE rgchMask[16]; // filter mask
|
||||||
|
} MPEG_STREAM_FILTER;
|
||||||
840
third_party/dx9_sdk/include/DShowIDL/Mstvca.idl
vendored
Normal file
840
third_party/dx9_sdk/include/DShowIDL/Mstvca.idl
vendored
Normal file
@ -0,0 +1,840 @@
|
|||||||
|
// MSTvCA.idl : IDL source for MSTvCA.dll
|
||||||
|
//
|
||||||
|
|
||||||
|
// This file will be processed by the MIDL tool to
|
||||||
|
// produce the type library (CA.tlb) and marshalling code.
|
||||||
|
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
#include "olectl.h"
|
||||||
|
|
||||||
|
/* [
|
||||||
|
object,
|
||||||
|
dual,
|
||||||
|
uuid(49a32d3c-7d85-11d2-8895-00c04f794967),
|
||||||
|
helpstring("ITuneRequest Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ITuneRequest : IDispatch
|
||||||
|
{
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
import "tuner.idl"; // includes the whole BDA world! Yecko!
|
||||||
|
|
||||||
|
interface ICAManager;
|
||||||
|
interface ICARequest;
|
||||||
|
interface ICAPolicy;
|
||||||
|
interface ICAPolicies;
|
||||||
|
interface ICAPoliciesInternal;
|
||||||
|
interface ICAToll;
|
||||||
|
interface ICATolls;
|
||||||
|
interface ICATollsInternal;
|
||||||
|
interface ICADenial;
|
||||||
|
interface ICADenials;
|
||||||
|
interface ICAOffer;
|
||||||
|
interface ICAOffers;
|
||||||
|
interface ICAComponent;
|
||||||
|
interface ICAComponents;
|
||||||
|
|
||||||
|
#define COLLECTID_Item 0
|
||||||
|
#define COLLECTID_Count 1
|
||||||
|
#define COLLECTID_Add 2
|
||||||
|
#define COLLECTID_Remove 3
|
||||||
|
#define COLLECTID_AddNew 4
|
||||||
|
#define COLLECTID_CountDenied 5 // ICADenials
|
||||||
|
#define COLLECTID_CountSelected 6 // ICADenials
|
||||||
|
#define COLLECTID_PaySelectedTolls 7 // ICADenials
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
Unselected = 0,
|
||||||
|
Selected = 1
|
||||||
|
} CATollState;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
Denied = 0,
|
||||||
|
Transient = 1,
|
||||||
|
// Allowed = 2,
|
||||||
|
DescriptionShort = 10, // one of the description fields changed
|
||||||
|
DescriptionLong = 11, // via a ICADenial::put_Description()
|
||||||
|
DescriptionHTML = 12, //
|
||||||
|
DescriptionXML = 13 // (keep these current+10 with list below...)
|
||||||
|
} CADenialState;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
Short = 0, // must be numeric, starting at 0. (Used as array index).
|
||||||
|
Long = 1, // in approximatly order of length in bytes
|
||||||
|
URL = 2,
|
||||||
|
HTML = 3,
|
||||||
|
XML = 4,
|
||||||
|
kDescEnd = 5 // invalid format, 1+ last real one (Used as array length).
|
||||||
|
} CADescFormat;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
Request = 1,
|
||||||
|
ComponentX = 2,
|
||||||
|
Offers = 4,
|
||||||
|
PaidTolls = 8,
|
||||||
|
Policies = 16,
|
||||||
|
Standard = 15, // all put the policies
|
||||||
|
All = 31 // all
|
||||||
|
} CAUIDisplayFields;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
// if add methods to ICAManagerInternal, be sure to add MAGICCALL in CAManagerProxy too..
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166301-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual, // Helpers are Dual, IUnknown... so see from VB
|
||||||
|
hidden, restricted,
|
||||||
|
helpstring("ICAManagerInternal Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAManagerInternal : IUnknown
|
||||||
|
{
|
||||||
|
[ id(1), helpstring("method Save")] HRESULT Save();
|
||||||
|
[ id(2), helpstring("method Load")] HRESULT Load();
|
||||||
|
[propput, id(3), helpstring("property MarkDirty")] HRESULT MarkDirty([in] BOOL fDirty);
|
||||||
|
[propget, id(3), helpstring("property MarkDirty")] HRESULT MarkDirty([out, retval] BOOL *pfDirty);
|
||||||
|
[propput, id(4), helpstring("property TuneRequest")] HRESULT TuneRequest([in] ITuneRequest *ptunereq);
|
||||||
|
[ id(5), helpstring("method GetDefaultUI")] HRESULT GetDefaultUI([out] HWND *phwnd);
|
||||||
|
[ id(6), helpstring("method SetDefaultUI")] HRESULT SetDefaultUI([in] HWND hwnd);
|
||||||
|
// return the main CAManager object, not the proxy one.
|
||||||
|
[propget, id(7), helpstring("property CAManagerMain")] HRESULT CAManagerMain([out,retval] ICAManager **ppManagerMain);
|
||||||
|
[propput, id(8), helpstring("property BroadcastEventService")] HRESULT BroadcastEventService([in] IBroadcastEvent *pBroadcastEventService);
|
||||||
|
[propget, id(8), helpstring("property BroadcastEventService")] HRESULT BroadcastEventService([out, retval] IBroadcastEvent **ppBroadcastEventService);
|
||||||
|
[ id(9), helpstring("method DisplayDefaultUI")] HRESULT DisplayDefaultUI([in] VARIANT_BOOL fDisplay);
|
||||||
|
[ id(10), helpstring("method EnableDefaultUIPayTollsButton")] HRESULT EnableDefaultUIPayTollsButton([in] VARIANT_BOOL fEnabled);
|
||||||
|
[ id(11), helpstring("method UpdateDefaultUIForToll")] HRESULT UpdateDefaultUIForToll([in] ICAToll *pToll,[in] CATollState enState);
|
||||||
|
[propput, id(12), helpstring("property TuneRequestInt")] HRESULT TuneRequestInt([in] ITuneRequest *ptunereq);
|
||||||
|
[ id(13), helpstring("method AddDenialsFor")] HRESULT AddDenialsFor([in] IUnknown *pUnk); // see also ICAManager::get_DenialsFor()
|
||||||
|
[ id(14), helpstring("method RemoveDenialsFor")] HRESULT RemoveDenialsFor([in] IUnknown *pUnk);
|
||||||
|
|
||||||
|
[ id(2201),helpstring("method NotifyRequestActivated")] HRESULT NotifyRequestActivated([in] ICARequest *pReq);
|
||||||
|
[ id(2202),helpstring("method NotifyRequestDeactivated")] HRESULT NotifyRequestDeactivated([in] ICARequest *pReq);
|
||||||
|
[ id(2203),helpstring("method NotifyOfferAdded")] HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2204),helpstring("method NotifyOfferRemoved")] HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2205),helpstring("method NotifyPolicyAdded")] HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2206),helpstring("method NotifyPolicyRemoved")] HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2207),helpstring("method NotifyRequestDenialAdded")] HRESULT NotifyRequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2208),helpstring("method NotifyRequestDenialRemoved")] HRESULT NotifyRequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2209),helpstring("method NotifyDenialTollAdded")] HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2210),helpstring("method NotifyDenialTollRemoved")] HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2211),helpstring("method NotifyTollDenialAdded")] HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2212),helpstring("method NotifyTollDenialRemoved")] HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2213),helpstring("method NotifyOfferTollAdded")] HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2214),helpstring("method NotifyOfferTollRemoved")] HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2215),helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
|
||||||
|
[ id(2216),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
|
||||||
|
[ id(2217),helpstring("method NotifyComponentDenialAdded")] HRESULT NotifyComponentDenialAdded([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2218),helpstring("method NotifyComponentDenialRemoved")] HRESULT NotifyComponentDenialRemoved([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166302-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual, // Helpers are Dual, IUnknown... so see from VB
|
||||||
|
hidden, restricted,
|
||||||
|
helpstring("ICAManagerXProxy Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAManagerXProxy : IUnknown
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property PunkCAManagerProxy")] HRESULT PunkCAManagerProxy([out,retval] IUnknown **ppUnkCAManagerProxy);
|
||||||
|
[ id(2201),helpstring("method NotifyRequestActivated_XProxy")] HRESULT NotifyRequestActivated_XProxy([in] ICARequest *pReq);
|
||||||
|
[ id(2202),helpstring("method NotifyRequestDeactivated_XProxy")] HRESULT NotifyRequestDeactivated_XProxy([in] ICARequest *pReq);
|
||||||
|
[ id(2203),helpstring("method NotifyOfferAdded_XProxy")] HRESULT NotifyOfferAdded_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2204),helpstring("method NotifyOfferRemoved_XProxy")] HRESULT NotifyOfferRemoved_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2205),helpstring("method NotifyPolicyAdded_XProxy")] HRESULT NotifyPolicyAdded_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2206),helpstring("method NotifyPolicyRemoved_XProxy")] HRESULT NotifyPolicyRemoved_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2207),helpstring("method NotifyRequestDenialAdded_XProxy")] HRESULT NotifyRequestDenialAdded_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2208),helpstring("method NotifyRequestDenialRemoved_XProxy")] HRESULT NotifyRequestDenialRemoved_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2209),helpstring("method NotifyDenialTollAdded_XProxy")] HRESULT NotifyDenialTollAdded_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2210),helpstring("method NotifyDenialTollRemoved_XProxy")] HRESULT NotifyDenialTollRemoved_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2211),helpstring("method NotifyTollDenialAdded_XProxy")] HRESULT NotifyTollDenialAdded_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2212),helpstring("method NotifyTollDenialRemoved_XProxy")] HRESULT NotifyTollDenialRemoved_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2213),helpstring("method NotifyOfferTollAdded_XProxy")] HRESULT NotifyOfferTollAdded_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2214),helpstring("method NotifyOfferTollRemoved_XProxy")] HRESULT NotifyOfferTollRemoved_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2215),helpstring("method NotifyTollStateChanged_XProxy")] HRESULT NotifyTollStateChanged_XProxy([in] ICAToll *pToll, [in] CATollState enStateLast);
|
||||||
|
[ id(2216),helpstring("method NotifyDenialStateChanged_XProxy")] HRESULT NotifyDenialStateChanged_XProxy([in] ICADenial *pDenial, [in] CADenialState enStateLast);
|
||||||
|
[ id(2217),helpstring("method NotifyComponentDenialAdded_XProxy")] HRESULT NotifyComponentDenialAdded_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2218),helpstring("method NotifyComponentDenialRemoved_XProxy")] HRESULT NotifyComponentDenialRemoved_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166420-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAPolicies Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAPolicies : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
|
||||||
|
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAPolicy **ppPolicy);
|
||||||
|
[ id(COLLECTID_Add)] HRESULT Add([in] ICAPolicy *pPolicy);
|
||||||
|
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
|
||||||
|
};
|
||||||
|
|
||||||
|
[ object,
|
||||||
|
uuid(11166421-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
hidden, restricted,
|
||||||
|
helpstring("ICAPoliciesInternal Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAPoliciesInternal : IUnknown
|
||||||
|
{
|
||||||
|
[id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
|
||||||
|
[id(2),helpstring("method CheckRequest")] HRESULT CheckRequest([in] ICARequest *pReq);
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166430-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICATolls Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICATolls : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
|
||||||
|
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAToll **ppToll);
|
||||||
|
[ id(COLLECTID_Add)] HRESULT Add([in] ICAToll *pToll);
|
||||||
|
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166431-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
hidden, restricted,
|
||||||
|
helpstring("ICATolls Internal Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICATollsInternal : IUnknown // workaround for not being able to get _ICAResDenialEvents to work
|
||||||
|
{
|
||||||
|
[ id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
|
||||||
|
[ id(2),helpstring("method GetCAManager")] HRESULT GetCAManager([out] ICAManager **ppManager);
|
||||||
|
[ id(3),helpstring("method SetMustPersist")] HRESULT SetMustPersist([in] BOOL fMustPersist);
|
||||||
|
[ id(4),helpstring("method Save")] HRESULT Save([in] IStorage *pstore,[in] BSTR bstrPrefix);
|
||||||
|
[ id(5),helpstring("method Load")] HRESULT Load([in] IStorage *pstore,[in] BSTR bstrPrefix);
|
||||||
|
[ id(6),helpstring("method NotifyStateChanged")] HRESULT NotifyStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
|
||||||
|
[ id(7),helpstring("method NotifyTollSelectionChanged")] HRESULT NotifyTollSelectionChanged([in] ICAToll *pToll, [in] BOOL fSelected);
|
||||||
|
};
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166440-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICADenials Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICADenials : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
|
||||||
|
[propget, id(COLLECTID_Count) ] HRESULT Count([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICADenial **ppDenial);
|
||||||
|
[propget, id(COLLECTID_AddNew), helpstring("property AddNew")] HRESULT AddNew([in] ICAPolicy *ppolicy, [in] BSTR bstrShortDesc, [in] IUnknown *pUnkDeniedObject, [in] long enDenialState, [out, retval] ICADenial **ppDenial);
|
||||||
|
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
|
||||||
|
[propget, id(COLLECTID_CountDenied)] HRESULT CountDenied([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_CountSelected)] HRESULT CountSelected([out, retval] long *Count);
|
||||||
|
[ id(COLLECTID_PaySelectedTolls)] HRESULT PaySelectedTolls();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166441-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
hidden, restricted,
|
||||||
|
helpstring("ICADenialsInternal Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICADenialsInternal : IUnknown
|
||||||
|
{
|
||||||
|
[ id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
|
||||||
|
[ id(2),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166450-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAOffers Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAOffers : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(DISPID_NEWENUM) , restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
|
||||||
|
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAOffer **ppOffer);
|
||||||
|
[propget, id(COLLECTID_AddNew), helpstring("property AddNew")] HRESULT AddNew([in] ICAPolicy *pPolicy, [in] BSTR bstrName, [in] DATE dateStart, [in] DATE dateEnd, [out, retval] ICAOffer **ppOffer);
|
||||||
|
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166470-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAComponents Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAComponents : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(DISPID_NEWENUM) , restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
|
||||||
|
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
|
||||||
|
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAComponent **ppComponent);
|
||||||
|
// [ id(COLLECTID_Add)] HRESULT Add([in] ICAComponent *pComponent);
|
||||||
|
// [ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166361-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
hidden,
|
||||||
|
helpstring("ICAComponentInternal Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAComponentInternal : IUnknown
|
||||||
|
{
|
||||||
|
[ id(1), helpstring("method RemoveAllDenials")] HRESULT RemoveAllDenials();
|
||||||
|
[propget, id(2), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstrDescription);
|
||||||
|
};
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(860A3FE2-DED1-40E2-896C-057681A8A1A8),
|
||||||
|
dual,
|
||||||
|
helpstring("ICADefaultDlg Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICADefaultDlg : IDispatch
|
||||||
|
{
|
||||||
|
[propput, id(DISPID_AUTOSIZE)]
|
||||||
|
HRESULT AutoSize([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_AUTOSIZE)]
|
||||||
|
HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_BACKCOLOR)]
|
||||||
|
HRESULT BackColor([in]OLE_COLOR clr);
|
||||||
|
[propget, id(DISPID_BACKCOLOR)]
|
||||||
|
HRESULT BackColor([out,retval]OLE_COLOR* pclr);
|
||||||
|
[propput, id(DISPID_BACKSTYLE)]
|
||||||
|
HRESULT BackStyle([in]long style);
|
||||||
|
[propget, id(DISPID_BACKSTYLE)]
|
||||||
|
HRESULT BackStyle([out,retval]long* pstyle);
|
||||||
|
[propput, id(DISPID_BORDERCOLOR)]
|
||||||
|
HRESULT BorderColor([in]OLE_COLOR clr);
|
||||||
|
[propget, id(DISPID_BORDERCOLOR)]
|
||||||
|
HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
|
||||||
|
[propput, id(DISPID_BORDERSTYLE)]
|
||||||
|
HRESULT BorderStyle([in]long style);
|
||||||
|
[propget, id(DISPID_BORDERSTYLE)]
|
||||||
|
HRESULT BorderStyle([out, retval]long* pstyle);
|
||||||
|
[propput, id(DISPID_BORDERWIDTH)]
|
||||||
|
HRESULT BorderWidth([in]long width);
|
||||||
|
[propget, id(DISPID_BORDERWIDTH)]
|
||||||
|
HRESULT BorderWidth([out, retval]long* width);
|
||||||
|
[propput, id(DISPID_DRAWMODE)]
|
||||||
|
HRESULT DrawMode([in]long mode);
|
||||||
|
[propget, id(DISPID_DRAWMODE)]
|
||||||
|
HRESULT DrawMode([out, retval]long* pmode);
|
||||||
|
[propput, id(DISPID_DRAWSTYLE)]
|
||||||
|
HRESULT DrawStyle([in]long style);
|
||||||
|
[propget, id(DISPID_DRAWSTYLE)]
|
||||||
|
HRESULT DrawStyle([out, retval]long* pstyle);
|
||||||
|
[propput, id(DISPID_DRAWWIDTH)]
|
||||||
|
HRESULT DrawWidth([in]long width);
|
||||||
|
[propget, id(DISPID_DRAWWIDTH)]
|
||||||
|
HRESULT DrawWidth([out, retval]long* pwidth);
|
||||||
|
[propput, id(DISPID_FILLCOLOR)]
|
||||||
|
HRESULT FillColor([in]OLE_COLOR clr);
|
||||||
|
[propget, id(DISPID_FILLCOLOR)]
|
||||||
|
HRESULT FillColor([out, retval]OLE_COLOR* pclr);
|
||||||
|
[propput, id(DISPID_FILLSTYLE)]
|
||||||
|
HRESULT FillStyle([in]long style);
|
||||||
|
[propget, id(DISPID_FILLSTYLE)]
|
||||||
|
HRESULT FillStyle([out, retval]long* pstyle);
|
||||||
|
[propputref, id(DISPID_FONT)]
|
||||||
|
HRESULT Font([in]IFontDisp* pFont);
|
||||||
|
[propput, id(DISPID_FONT)]
|
||||||
|
HRESULT Font([in]IFontDisp* pFont);
|
||||||
|
[propget, id(DISPID_FONT)]
|
||||||
|
HRESULT Font([out, retval]IFontDisp** ppFont);
|
||||||
|
[propput, id(DISPID_FORECOLOR)]
|
||||||
|
HRESULT ForeColor([in]OLE_COLOR clr);
|
||||||
|
[propget, id(DISPID_FORECOLOR)]
|
||||||
|
HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
|
||||||
|
[propput, id(DISPID_ENABLED)]
|
||||||
|
HRESULT Enabled([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_ENABLED)]
|
||||||
|
HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
|
||||||
|
[propget, id(DISPID_HWND)]
|
||||||
|
HRESULT Window([out, retval]LONG_PTR* phwnd); // was long* via the wizard, but doesn't compile Win64
|
||||||
|
[propput, id(DISPID_TABSTOP)]
|
||||||
|
HRESULT TabStop([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_TABSTOP)]
|
||||||
|
HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_TEXT)]
|
||||||
|
HRESULT Text([in]BSTR strText);
|
||||||
|
[propget, id(DISPID_TEXT)]
|
||||||
|
HRESULT Text([out, retval]BSTR* pstrText);
|
||||||
|
[propput, id(DISPID_CAPTION)]
|
||||||
|
HRESULT Caption([in]BSTR strCaption);
|
||||||
|
[propget, id(DISPID_CAPTION)]
|
||||||
|
HRESULT Caption([out,retval]BSTR* pstrCaption);
|
||||||
|
[propput, id(DISPID_BORDERVISIBLE)]
|
||||||
|
HRESULT BorderVisible([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_BORDERVISIBLE)]
|
||||||
|
HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_APPEARANCE)]
|
||||||
|
HRESULT Appearance([in]short appearance);
|
||||||
|
[propget, id(DISPID_APPEARANCE)]
|
||||||
|
HRESULT Appearance([out, retval]short* pappearance);
|
||||||
|
[propput, id(DISPID_MOUSEPOINTER)]
|
||||||
|
HRESULT MousePointer([in]long pointer);
|
||||||
|
[propget, id(DISPID_MOUSEPOINTER)]
|
||||||
|
HRESULT MousePointer([out, retval]long* ppointer);
|
||||||
|
[propputref, id(DISPID_MOUSEICON)]
|
||||||
|
HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
|
||||||
|
[propput, id(DISPID_MOUSEICON)]
|
||||||
|
HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
|
||||||
|
[propget, id(DISPID_MOUSEICON)]
|
||||||
|
HRESULT MouseIcon([out, retval]IPictureDisp** ppMouseIcon);
|
||||||
|
[propputref, id(DISPID_PICTURE)]
|
||||||
|
HRESULT Picture([in]IPictureDisp* pPicture);
|
||||||
|
[propput, id(DISPID_PICTURE)]
|
||||||
|
HRESULT Picture([in]IPictureDisp* pPicture);
|
||||||
|
[propget, id(DISPID_PICTURE)]
|
||||||
|
HRESULT Picture([out, retval]IPictureDisp** ppPicture);
|
||||||
|
[propput, id(DISPID_VALID)]
|
||||||
|
HRESULT Valid([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_VALID)]
|
||||||
|
HRESULT Valid([out, retval]VARIANT_BOOL* pbool);
|
||||||
|
};
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166000-DF8A-463a-B620-7BEC23542010),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("Microsoft TV CA Type Library")
|
||||||
|
]
|
||||||
|
library MSTvCALib
|
||||||
|
{
|
||||||
|
importlib("stdole32.tlb");
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
// ---------------------------------------------------
|
||||||
|
// CAUTION - if Change events below, need to perform:
|
||||||
|
// 1) compile the MIDL file to generate the typelib
|
||||||
|
// 2) In VCC class view, <xxx>->Implement Connection Point (_ICA<xxx>Events)
|
||||||
|
// to regenerate the CProxy_ICA<xxx>Events<> code.
|
||||||
|
// Need to browse to objd\i386 directory and select MSTvCA.tlb
|
||||||
|
// (The file MSTvCACP.h must be checked out.)
|
||||||
|
// Where <xxx> is Denials, Manager, Offers, Policies, Request, and Tolls
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166298-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("_ICAResDenialTreeEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICAResDenialTreeEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1),helpstring("method PaidTollSelected")] HRESULT PaidTollSelected([in] ICAToll *pToll, [in] long fSelected);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166200-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("ICAManagerEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICAManagerEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(2201),helpstring("method RequestActivated")] HRESULT RequestActivated([in] ICARequest *pReq);
|
||||||
|
[id(2202),helpstring("method RequestDeactivated")] HRESULT RequestDeactivated([in] ICARequest *pReq);
|
||||||
|
[id(2203),helpstring("method OfferAdded")] HRESULT OfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[id(2204),helpstring("method OfferRemoved")] HRESULT OfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[id(2205),helpstring("method PolicyAdded")] HRESULT PolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[id(2206),helpstring("method PolicyRemoved")] HRESULT PolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[id(2207),helpstring("method RequestDenialAdded")] HRESULT RequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[id(2208),helpstring("method RequestDenialRemoved")] HRESULT RequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[id(2209),helpstring("method DenialTollAdded")] HRESULT DenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(2210),helpstring("method DenialTollRemoved")] HRESULT DenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(2211),helpstring("method TollDenialAdded")] HRESULT TollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[id(2212),helpstring("method TollDenialRemoved")] HRESULT TollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[id(2213),helpstring("method OfferTollAdded")] HRESULT OfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(2214),helpstring("method OfferTollRemoved")] HRESULT OfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(2215),helpstring("method TollStateChanged")] HRESULT TollStateChanged([in] ICAToll *pToll, [in] CATollState enState);
|
||||||
|
[id(2216),helpstring("method DenialStateChanged")] HRESULT DenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enState);
|
||||||
|
[id(2217),helpstring("method ComponentDenialAdded")] HRESULT ComponentDenialAdded([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[id(2218),helpstring("method ComponentDenialRemoved")] HRESULT ComponentDenialRemoved([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166210-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("ICARequestEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICARequestEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method CheckStarted")] HRESULT CheckStarted([in] ICARequest *pRequest);
|
||||||
|
[id(2), helpstring("method CheckComplete")] HRESULT CheckComplete([in] ICARequest *pRequest,[in] long cDenials);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(11166220-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("_ICAPoliciesEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICAPoliciesEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAPolicy *pPolicy, long cPolicies);
|
||||||
|
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAPolicy *pPolicy, long cPolicies);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166230-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("ICATollsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICATollsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[id(3), helpstring("method StateChanged")] HRESULT StateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166240-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("ICADenialsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICADenialsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICADenial *pDenial, [in] long cDenials);
|
||||||
|
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICADenial *pDenial, [in] long cDenials);
|
||||||
|
[id(3), helpstring("method StateChanged")] HRESULT StateChanged([in] ICADenial *pDenial, [in] CADenialState enStateFrom);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166250-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("ICAOffersEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICAOffersEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAOffer *pOffer, [in] long cOffers);
|
||||||
|
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAOffer *pOffer, [in] long cOffers);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166260-DF8A-463A-B620-7BEC23542010),
|
||||||
|
helpstring("_ICAComponentsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICAComponentsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAComponent *pComponent, [in] long cComponent);
|
||||||
|
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAComponent *pComponent, [in] long cComponent);
|
||||||
|
}; // --------------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
dual,
|
||||||
|
uuid(11166300-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("ICAManager Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAManager : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property Policies")] HRESULT Policies([out, retval] ICAPolicies **ppPolicies);
|
||||||
|
[propget, id(2), helpstring("property ActiveRequest")] HRESULT ActiveRequest([out, retval] ICARequest **ppRequest);
|
||||||
|
[propget, id(3), helpstring("property Offers")] HRESULT Offers([out, retval] ICAOffers **ppOffers);
|
||||||
|
[propget, id(4), helpstring("property PaidTolls")] HRESULT PaidTolls([out, retval] ICATolls **ppTolls);
|
||||||
|
[propput, id(5), helpstring("property UseDefaultUI")] HRESULT UseDefaultUI([in] long fUseDefaultUI);
|
||||||
|
[propget, id(5), helpstring("property UseDefaultUI")] HRESULT UseDefaultUI([out, retval] long *pfUseDefaultUI);
|
||||||
|
[propget, id(6), helpstring("property DenialsFor")] HRESULT DenialsFor([in] IUnknown *pUnk, [out, retval] ICADenials **ppDenials);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166310-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICARequest Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICARequest : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property RequestedItem")] HRESULT RequestedItem([out, retval] IUnknown **ppTunereq);
|
||||||
|
[propget, id(2), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
|
||||||
|
[propget, id(3), helpstring("property ScheduleEntry")] HRESULT ScheduleEntry([out, retval] IUnknown **ppUnkScheduleEntry); // IScheduleEntry?
|
||||||
|
[propget, id(4), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
|
||||||
|
[propget, id(5), helpstring("property Components")] HRESULT Components([out, retval] ICAComponents **pComponents);
|
||||||
|
[propget, id(6), helpstring("property Check")] HRESULT Check([out, retval] long *pcDenials);
|
||||||
|
[propget, id(7), helpstring("property ResolveDenials")] HRESULT ResolveDenials([out, retval] long *pcDenials);
|
||||||
|
[propget, id(8), helpstring("property CountDeniedComponents")] HRESULT CountDeniedComponents([out, retval] long *pcDeniedComponents);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166320-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("ICAPolicy Interface"), // client written
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAPolicy : IUnknown // -- not IDispatch, let the client side implement that interface
|
||||||
|
{
|
||||||
|
[propget, id(0), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pbstr);
|
||||||
|
[ id(1), helpstring("method CheckRequest")] HRESULT CheckRequest([in] ICARequest *pReq);
|
||||||
|
// [propget, id(2), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
|
||||||
|
[propput, id(2), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
|
||||||
|
[propget, id(3), helpstring("property OkToPersist")] HRESULT OkToPersist([out, retval] BOOL *pfOkToPersist);
|
||||||
|
[propget, id(4), helpstring("property OkToRemove")] HRESULT OkToRemove([out, retval] BOOL *pfOkToRemove);
|
||||||
|
[propget, id(5), helpstring("property OkToRemoveDenial")] HRESULT OkToRemoveDenial(ICADenial *pDenial, [out, retval] BOOL *pfOk);
|
||||||
|
[propget, id(6), helpstring("property OkToRemoveOffer")] HRESULT OkToRemoveOffer(ICAOffer *pOffer, [out, retval] BOOL *pfOk);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166330-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAToll Interface"), // also client written
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAToll : IUnknown // -- also not IDispatch - client side implements that interface
|
||||||
|
{
|
||||||
|
// [propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
|
||||||
|
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
|
||||||
|
[ id(2), helpstring("method Select")] HRESULT Select([in] BOOL fSelect);
|
||||||
|
[ id(3), helpstring("method PayToll")] HRESULT PayToll();
|
||||||
|
[propget, id(4), helpstring("property Refundable")] HRESULT Refundable([out, retval] BOOL *pfRefundable);
|
||||||
|
[ id(5), helpstring("method RefundToll")] HRESULT RefundToll();
|
||||||
|
[propget, id(6), helpstring("property TolledObject")] HRESULT TolledObject([out, retval] IUnknown **ppUnkTolled);
|
||||||
|
[propget, id(7), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
|
||||||
|
[propget, id(8), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
|
||||||
|
[propget, id(9), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
|
||||||
|
[propget, id(10),helpstring("property TimePaid")] HRESULT TimePaid([out, retval] DATE *pdtPaid);
|
||||||
|
[propget, id(11),helpstring("property State")] HRESULT State([out, retval] CATollState *penState);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166340-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICADenial Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICADenial : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property DeniedObject")] HRESULT DeniedObject([out, retval] IUnknown **ppUnkDenied);
|
||||||
|
[propget, id(2), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
|
||||||
|
[propget, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
|
||||||
|
[propput, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
|
||||||
|
[propget, id(4), helpstring("property State")] HRESULT State([out, retval] CADenialState *penState);
|
||||||
|
[propput, id(4), helpstring("property State")] HRESULT State([in] CADenialState enState);
|
||||||
|
[propget, id(5), helpstring("property Tolls")] HRESULT Tolls([out, retval] ICATolls **ppTolls);
|
||||||
|
[ id(6), helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166350-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAOffer Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAOffer : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
|
||||||
|
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
|
||||||
|
[propget, id(2), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **pppolicy);
|
||||||
|
[propget, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
|
||||||
|
[propput, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
|
||||||
|
[propget, id(4), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdtStart);
|
||||||
|
[propget, id(5), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdtEnd);
|
||||||
|
[propget, id(6), helpstring("property Tolls")] HRESULT Tolls([out, retval] ICATolls **ppTolls);
|
||||||
|
[ id(7), helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166360-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAComponent Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAComponent : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property Component")] HRESULT Component([out, retval] IComponent **ppComponent);
|
||||||
|
[propget, id(2), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
|
||||||
|
[propget, id(3), helpstring("property Request")] HRESULT Request([out, retval] ICARequest **ppComponent);
|
||||||
|
};
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166100-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CAManager Class")
|
||||||
|
]
|
||||||
|
coclass CAManager
|
||||||
|
{
|
||||||
|
[default] interface ICAManager;
|
||||||
|
interface ICAManagerInternal;
|
||||||
|
// interface ICAManagerXProxy; // this is the actual outgoing 'event' interface
|
||||||
|
[default, source] dispinterface _ICAManagerEvents;
|
||||||
|
};
|
||||||
|
|
||||||
|
[ // magic class used to avoid circular references through the CAManager.
|
||||||
|
hidden,
|
||||||
|
uuid(11166101-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CAManagerProxy Class")
|
||||||
|
]
|
||||||
|
coclass CAManagerProxy
|
||||||
|
{
|
||||||
|
[default] interface ICAManager;
|
||||||
|
interface ICAManagerInternal;
|
||||||
|
// [default, source] dispinterface _ICAManagerEvents; /// QUESTION ??? DO I want these just here, or in the true Manager, or both?
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166540-DF8A-463a-B620-7BEC23542010), // needed for user's tolls.
|
||||||
|
helpstring("CADenials Class")
|
||||||
|
]
|
||||||
|
coclass CADenials
|
||||||
|
{
|
||||||
|
[default] interface ICADenials;
|
||||||
|
interface ICADenialsInternal;
|
||||||
|
[default, source] dispinterface _ICADenialsEvents;
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO - mark this as hidden...
|
||||||
|
[
|
||||||
|
uuid(11166550-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CAOffer Class")
|
||||||
|
]
|
||||||
|
coclass CAOffer
|
||||||
|
{
|
||||||
|
[default] interface ICAOffer;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* [
|
||||||
|
uuid(11166999-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CATempEvent_TempBuilder Class - used so we can build events the first time")
|
||||||
|
]
|
||||||
|
coclass CATempEvent_TempBuilder
|
||||||
|
{
|
||||||
|
[source] dispinterface _ICAResDenialTreeEvents;
|
||||||
|
[source] dispinterface _ICAManagerEvents;
|
||||||
|
[source] dispinterface _ICARequestEvents;
|
||||||
|
[source] dispinterface _ICATollsEvents;
|
||||||
|
[source] dispinterface _ICADenialsEvents;
|
||||||
|
[source] dispinterface _ICAPoliciesEvents;
|
||||||
|
[source] dispinterface _ICAOffersEvents;
|
||||||
|
[source] dispinterface _ICAComponentsEvents;
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
// -----------------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(11166898-DF8A-463a-B620-7BEC23542010),
|
||||||
|
dual,
|
||||||
|
helpstring("ICAResDenialTree Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICAResDenialTree : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppCAManager);
|
||||||
|
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pCAManager);
|
||||||
|
[propget, id(2), helpstring("property DisplayFields")] HRESULT DisplayFields([out, retval] long *penFields); // fields to display in default ResDenial UI
|
||||||
|
[propput, id(2), helpstring("property DisplayFields")] HRESULT DisplayFields([in] long enFields); // fields to display in default ResDenial UI
|
||||||
|
[ id(3), helpstring("method UpdateView")] HRESULT UpdateView([in] IUnknown *pUnk); // if object is being viewed, updates it.
|
||||||
|
// ResDenial control listens to these incoming sink events sent by Manager ((_ICAManagerEvents).. ID's Must match
|
||||||
|
[ id(2201),helpstring("method NotifyRequestActivated")] HRESULT NotifyRequestActivated([in] ICARequest *preq);
|
||||||
|
[ id(2202),helpstring("method NotifyRequestDeactivated")] HRESULT NotifyRequestDeactivated([in] ICARequest *preq);
|
||||||
|
[ id(2203),helpstring("method NotifyOfferAdded")] HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2204),helpstring("method NotifyOfferRemoved")] HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
|
||||||
|
[ id(2205),helpstring("method NotifyPolicyAdded")] HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2206),helpstring("method NotifyPolicyRemoved")] HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
|
||||||
|
[ id(2207),helpstring("method NotifyRequestDenialAdded")] HRESULT NotifyRequestDenialAdded([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2208),helpstring("method NotifyRequestDenialRemoved")] HRESULT NotifyRequestDenialRemoved([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2209),helpstring("method NotifyDenialTollAdded")] HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2210),helpstring("method NotifyDenialTollRemoved")] HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2211),helpstring("method NotifyTollDenialAdded")] HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2212),helpstring("method NotifyTollDenialRemoved")] HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2213),helpstring("method NotifyOfferTollAdded")] HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2214),helpstring("method NotifyOfferTollRemoved")] HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
|
||||||
|
[ id(2215),helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
|
||||||
|
[ id(2216),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
|
||||||
|
[ id(2217),helpstring("method NotifyComponentDenialAdded")] HRESULT NotifyComponentDenialAdded([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
[ id(2218),helpstring("method NotifyComponentDenialRemoved")] HRESULT NotifyComponentDenialRemoved([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166998-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CA Default RequestDenial Control")
|
||||||
|
]
|
||||||
|
coclass CAResDenialTree
|
||||||
|
{
|
||||||
|
[default] interface ICAResDenialTree;
|
||||||
|
[default, source] dispinterface _ICAResDenialTreeEvents;
|
||||||
|
};
|
||||||
|
|
||||||
|
// -----------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166991-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("_ICADefaultDlgEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface _ICADefaultDlgEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(11166990-DF8A-463a-B620-7BEC23542010),
|
||||||
|
helpstring("CADefaultDlg Class")
|
||||||
|
]
|
||||||
|
coclass CADefaultDlg
|
||||||
|
{
|
||||||
|
[default] interface ICADefaultDlg;
|
||||||
|
[default, source] dispinterface _ICADefaultDlgEvents;
|
||||||
|
};
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Magic way to define the SID_ ...
|
||||||
|
|
||||||
|
cpp_quote("#define SID_CAManager CLSID_CAManager")
|
||||||
|
};
|
||||||
837
third_party/dx9_sdk/include/DShowIDL/Mstvgs.idl
vendored
Normal file
837
third_party/dx9_sdk/include/DShowIDL/Mstvgs.idl
vendored
Normal file
@ -0,0 +1,837 @@
|
|||||||
|
// GuideStore.idl : IDL source for GuideStore.dll
|
||||||
|
//
|
||||||
|
|
||||||
|
// This file will be processed by the MIDL tool to
|
||||||
|
// produce the type library (GuideStore.tlb) and marshalling code.
|
||||||
|
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
|
||||||
|
interface IObjects;
|
||||||
|
interface IMetaProperties;
|
||||||
|
interface IMetaProperty;
|
||||||
|
interface IMetaPropertyCondition;
|
||||||
|
interface IMetaPropertySet;
|
||||||
|
interface IMetaPropertySets;
|
||||||
|
interface IMetaPropertyType;
|
||||||
|
interface IMetaPropertyTypes;
|
||||||
|
|
||||||
|
interface IGuideStore;
|
||||||
|
interface IService;
|
||||||
|
interface IServices;
|
||||||
|
interface IProgram;
|
||||||
|
interface IPrograms;
|
||||||
|
interface IScheduleEntry;
|
||||||
|
interface IScheduleEntries;
|
||||||
|
interface IChannel;
|
||||||
|
interface IChannels;
|
||||||
|
interface IChannelLineup;
|
||||||
|
interface IChannelLineups;
|
||||||
|
interface IGuideDataProvider;
|
||||||
|
interface IGuideDataProviders;
|
||||||
|
|
||||||
|
#define didAdd 10
|
||||||
|
#define didAddAt 15
|
||||||
|
#define didAddNew 20
|
||||||
|
#define didAddNewAt 25
|
||||||
|
#define didAnd 30
|
||||||
|
#define didBeginTrans 35
|
||||||
|
#define didChannelLineups 40
|
||||||
|
#define didChannels 50
|
||||||
|
#define didCommitTrans 55
|
||||||
|
#define didCond 60
|
||||||
|
#define didCopyrightDate 70
|
||||||
|
#define didCount 80
|
||||||
|
#define didDataEndTime 90
|
||||||
|
#define didDefaultValue 100
|
||||||
|
#define didDescription 110
|
||||||
|
#define didEndTime 120
|
||||||
|
#define didGuideDataProvider 135
|
||||||
|
#define didGuideDataProviders 136
|
||||||
|
#define didID 150
|
||||||
|
#define didIdOf 155
|
||||||
|
#define didIID 170
|
||||||
|
#define didIsAnyDataAvailable 180
|
||||||
|
#define didInit 190
|
||||||
|
#if 0
|
||||||
|
#define didItem DISPID_VALUE
|
||||||
|
#else
|
||||||
|
#define didItem 191
|
||||||
|
#endif
|
||||||
|
#define didItemAdded 195
|
||||||
|
#define didItemChanged 196
|
||||||
|
#define didItemRemoved 197
|
||||||
|
#define didItemsByKey 198
|
||||||
|
#define didItemsChanged 199
|
||||||
|
#define didItemsInTimeRange 200
|
||||||
|
#define didItemsWithCond 210
|
||||||
|
#define didItemWithKey 215
|
||||||
|
#define didItemsWithMetaProp 220
|
||||||
|
#define didItemsWithMetaPropType 230
|
||||||
|
#define didItemsWithService 240
|
||||||
|
#define didItemsWithType 400
|
||||||
|
#define didItemWithID 250
|
||||||
|
#define didItemWithIID 260
|
||||||
|
#define didItemWithName 270
|
||||||
|
#define didItemWithMetaPropTypeLang 280
|
||||||
|
#define didItemWithTypeProviderLang 285
|
||||||
|
#define didItemWithProviderName 290
|
||||||
|
#define didItemWithServiceAtTime 300
|
||||||
|
#define didLanguage 310
|
||||||
|
#define didLength 320
|
||||||
|
#define didLookup 325
|
||||||
|
#define didMax 330
|
||||||
|
#define didMin 340
|
||||||
|
#define didName 350
|
||||||
|
#define didNew 360
|
||||||
|
#define didNewCollection 370
|
||||||
|
#define didNot 380
|
||||||
|
#define didObjects 390
|
||||||
|
#define didObjectTypes 410
|
||||||
|
#define didOpen 420
|
||||||
|
#define didOr 430
|
||||||
|
#define didProgram 440
|
||||||
|
#define didPrograms 450
|
||||||
|
#define didRollbackTrans 455
|
||||||
|
#define didMetaProperties 460
|
||||||
|
#define didMetaPropertiesOf 465
|
||||||
|
#define didMetaPropertySet 470
|
||||||
|
#define didMetaPropertySets 480
|
||||||
|
#define didMetaPropertyType 490
|
||||||
|
#define didMetaPropertyTypes 500
|
||||||
|
#define didProviderDescription 510
|
||||||
|
#define didProviderName 520
|
||||||
|
#define didProviderNetworkName 530
|
||||||
|
#define didResync 535
|
||||||
|
#define didItemInvRelBy 540
|
||||||
|
#define didItemsInvRelBy 545
|
||||||
|
#define didItemsInvRelToBy 546
|
||||||
|
#define didItemRelBy 550
|
||||||
|
#define didItemsRelBy 555
|
||||||
|
#define didItemsRelToBy 556
|
||||||
|
#define didRemove 560
|
||||||
|
#define didRemoveAll 565
|
||||||
|
#define didSchedEntries 570
|
||||||
|
#define didService 580
|
||||||
|
#define didServices 590
|
||||||
|
#define didStartTime 600
|
||||||
|
#define didTitle 620
|
||||||
|
#define didType 630
|
||||||
|
#define didTuneRequest 640
|
||||||
|
#define didUnreferencedItems 650
|
||||||
|
#if 0
|
||||||
|
#define didValue DISPID_VALUE
|
||||||
|
#else
|
||||||
|
#define didValue 660
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8D9EEDCE-21E9-4845-82A8-99CEC53E6DB2),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("Microsoft TV GuideStore 1.0 Type Library")
|
||||||
|
]
|
||||||
|
library MSTVGS
|
||||||
|
{
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(F71020D2-A467-4EB7-839A-63C8F40C7AB4),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaPropertySet Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaPropertySet : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
|
||||||
|
[propget, id(didMetaPropertyTypes), helpstring("property MetaPropertyTypes")] HRESULT MetaPropertyTypes([out, retval] IMetaPropertyTypes* *pVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(E8FD768C-EC4E-4DAB-A09C-011E8ECAE4D2),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaPropertySets Interface"),
|
||||||
|
pointer_default(unique),
|
||||||
|
nonextensible
|
||||||
|
]
|
||||||
|
interface IMetaPropertySets : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertySet* *ppropset);
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertySet* *ppropset);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IMetaPropertySet **pppropset);
|
||||||
|
[propget, id(didLookup), helpstring("property Lookup")] HRESULT Lookup([in] BSTR bstr, [out, retval] IMetaPropertyType * *ppproptype);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(86502400-213B-4ADF-A1E2-76365E7172BD),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaPropertyType Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaPropertyType : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet* *ppropset);
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
|
||||||
|
[propget, id(didNew), helpstring("property New")] HRESULT New(long lang, VARIANT val, [out, retval] IMetaProperty* *pprop);
|
||||||
|
[propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, long lang, VARIANT varValue, [out, retval] IMetaPropertyCondition* *ppropcond);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(9BF4984A-4CFE-4588-9FCF-828C74EF7104),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaPropertyTypes Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaPropertyTypes : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertyType* *pproptype);
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IMetaPropertyType* *pproptype);
|
||||||
|
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertyType* *pproptype);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(long id, BSTR bstrName, [out, retval] IMetaPropertyType * *pVal);
|
||||||
|
[propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet * *pVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(A4BBD2C0-D7E4-4FC2-8FB0-176DDBCB3D72),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaProperty Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaProperty : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didMetaPropertyType), helpstring("property MetaPropertyType")] HRESULT MetaPropertyType([out, retval] IMetaPropertyType* *pproptype);
|
||||||
|
[propget, id(didLanguage), helpstring("property Language")] HRESULT Language([out, retval] long *pVal);
|
||||||
|
[propget, id(didGuideDataProvider), helpstring("property GuideDataProvider")] HRESULT GuideDataProvider([out, retval] IGuideDataProvider **ppprovider);
|
||||||
|
[propget, id(didValue), helpstring("property Value")] HRESULT Value([out, retval] VARIANT *pvarValue);
|
||||||
|
[propput, id(didValue), helpstring("property Value")] HRESULT Value([in] VARIANT varValue);
|
||||||
|
[propputref, id(didValue), helpstring("property Value")] HRESULT Value([in] IUnknown *punk);
|
||||||
|
[propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, [out, retval] IMetaPropertyCondition* *ppropcond);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(E7F78F69-8326-48A0-8E54-BBDCEE43BA70),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaProperties Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaProperties : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaProperty* *pprop);
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItemWithMetaPropTypeLang), helpstring("property ItemWith")] HRESULT ItemWith(IMetaPropertyType *ptype, long lang, [out, retval] IMetaProperty* *pprop);
|
||||||
|
[propget, id(didItemWithTypeProviderLang), helpstring("property ItemWithTypeProviderLang")] HRESULT ItemWithTypeProviderLang(IMetaPropertyType *ptype, IGuideDataProvider *pprovider, long lang, [out, retval] IMetaProperty* *pprop);
|
||||||
|
[propget, id(didItemsWithMetaPropType), helpstring("property ItemsWithMetaPropertyType")] HRESULT ItemsWithMetaPropertyType(IMetaPropertyType *ptype, [out, retval] IMetaProperties* *pprops);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IMetaPropertyType *pproptype, long lang, VARIANT varValue, [out, retval] IMetaProperty * *pVal);
|
||||||
|
[id(didAdd), helpstring("method Add")] HRESULT Add(IMetaProperty *pprop);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(98FAAEF5-397A-4372-93A3-FB3DA49B3EF1),
|
||||||
|
dual,
|
||||||
|
helpstring("IMetaPropertyCondition Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMetaPropertyCondition : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didAnd), helpstring("property And")] HRESULT And(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
|
||||||
|
[propget, id(didOr), helpstring("property Or")] HRESULT Or(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(E4A9F7DA-F38F-43D3-AB3B-7E9F9FB7A7C7),
|
||||||
|
dual,
|
||||||
|
helpstring("IGuideStore Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideStore : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didIID), helpstring("property UUID")] HRESULT UUID([out, retval] BSTR *bstrUUID);
|
||||||
|
[propget, id(didServices), helpstring("property Services")] HRESULT Services([out, retval] IServices * *pVal);
|
||||||
|
[propget, id(didPrograms), helpstring("property Programs")] HRESULT Programs([out, retval] IPrograms * *pVal);
|
||||||
|
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
|
||||||
|
[propget, id(didGuideDataProviders), helpstring("property GuideDataProviders")] HRESULT GuideDataProviders([out, retval] IGuideDataProviders * *ppdataproviders);
|
||||||
|
[propget, id(didMetaPropertySets), helpstring("property MetaPropertySets")] HRESULT MetaPropertySets([out, retval] IMetaPropertySets **pppropsets);
|
||||||
|
[id(didOpen), helpstring("method Open")] HRESULT Open(BSTR bstrName);
|
||||||
|
[propget, id(didObjects), helpstring("property Objects")] HRESULT Objects([out, retval] IObjects * *ppobjs);
|
||||||
|
[propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
|
||||||
|
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
|
||||||
|
[propget, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([out, retval] IGuideDataProvider * *pVal);
|
||||||
|
[propputref, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([in] IGuideDataProvider * newVal);
|
||||||
|
|
||||||
|
|
||||||
|
[propget, id(didIdOf), helpstring("property IdOf")] HRESULT IdOf([in] IUnknown *punk, [out, retval] long *pVal);
|
||||||
|
[propget, id(didMetaPropertiesOf), helpstring("property MetaPropertiesOf")] HRESULT MetaPropertiesOf([in] IUnknown *punk, [out, retval] IMetaProperties **ppprops);
|
||||||
|
|
||||||
|
[id(didBeginTrans), helpstring("method BeginTrans")] HRESULT BeginTrans();
|
||||||
|
[id(didCommitTrans), helpstring("method CommitTrans")] HRESULT CommitTrans();
|
||||||
|
[id(didRollbackTrans), helpstring("method RollbackTrans")] HRESULT RollbackTrans();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(E7267FA2-7EC0-4577-BE37-0BBF11028A56),
|
||||||
|
helpstring("MetaPropertySet Class")
|
||||||
|
]
|
||||||
|
coclass MetaPropertySet
|
||||||
|
{
|
||||||
|
[default] interface IMetaPropertySet;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(027D8BB9-B860-4B96-B498-7EA609F33250),
|
||||||
|
helpstring("MetaPropertySets Class")
|
||||||
|
]
|
||||||
|
coclass MetaPropertySets
|
||||||
|
{
|
||||||
|
[default] interface IMetaPropertySets;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(A09139F3-47ED-4492-A45E-F7F11B121F4F),
|
||||||
|
helpstring("MetaPropertyType Class")
|
||||||
|
]
|
||||||
|
coclass MetaPropertyType
|
||||||
|
{
|
||||||
|
[default] interface IMetaPropertyType;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(5F24A17F-1DDE-4F37-8B29-489229175C73),
|
||||||
|
helpstring("MetaPropertyTypes Class")
|
||||||
|
]
|
||||||
|
coclass MetaPropertyTypes
|
||||||
|
{
|
||||||
|
[default] interface IMetaPropertyTypes;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(A42A1FF3-BC43-4714-8B94-06103474372B),
|
||||||
|
helpstring("MetaProperty Class")
|
||||||
|
]
|
||||||
|
coclass MetaProperty
|
||||||
|
{
|
||||||
|
[default] interface IMetaProperty;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(78B8FA05-01B2-4B0A-B6E0-59FC6C0E7A5E),
|
||||||
|
helpstring("MetaProperties Class")
|
||||||
|
]
|
||||||
|
coclass MetaProperties
|
||||||
|
{
|
||||||
|
[default] interface IMetaProperties;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(3B575572-EC9F-447D-9554-17C6E92E8328),
|
||||||
|
helpstring("MetaPropertyCondition Class")
|
||||||
|
]
|
||||||
|
coclass MetaPropertyCondition
|
||||||
|
{
|
||||||
|
[default] interface IMetaPropertyCondition;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(59745450-F0F4-4B3F-B49E-55664E425CF6),
|
||||||
|
dual,
|
||||||
|
helpstring("IService Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IService : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([out, retval] IUnknown * *ppunk);
|
||||||
|
[propputref, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([in] IUnknown *punk);
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
|
||||||
|
[propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
|
||||||
|
[propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
|
||||||
|
[propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
|
||||||
|
[propget, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([out, retval] BSTR *pbstrName);
|
||||||
|
[propput, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([in] BSTR bstrName);
|
||||||
|
[propget, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([out, retval] BSTR *pbstrName);
|
||||||
|
[propput, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([in] BSTR bstrName);
|
||||||
|
[propget, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([out, retval] BSTR *pbstrDesc);
|
||||||
|
[propput, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([in] BSTR bstrDescr);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(D3517044-B747-42C0-AFD5-31265ABA4977),
|
||||||
|
dual,
|
||||||
|
helpstring("IServices Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IServices : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IService * *pVal);
|
||||||
|
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
|
||||||
|
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IService * *pVal);
|
||||||
|
[propget, id(didItemWithProviderName), helpstring("property ItemWithProviderName")] HRESULT ItemWithProviderName(BSTR bstrProviderName, [out, retval] IService * *pVal);
|
||||||
|
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IServices * *ppservices);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IServices * *ppservices);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IUnknown *punkTuneRequest, BSTR bstrProviderName, BSTR bstrProviderDescription, BSTR bstrProviderNetworkName, DATE dtStart, DATE dtEnd, [out, retval] IService * *pVal);
|
||||||
|
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IServices * *pVal);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IServices **ppservices);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IServices * *ppservices);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IService * *ppservice);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C4001F96-2DEE-4C33-B807-F829889A8CCD),
|
||||||
|
helpstring("GuideStore Class")
|
||||||
|
]
|
||||||
|
coclass GuideStore
|
||||||
|
{
|
||||||
|
[default] interface IGuideStore;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(957D8D57-32B1-4BE3-8E37-EC8849F16815),
|
||||||
|
helpstring("Service Class")
|
||||||
|
]
|
||||||
|
coclass Service
|
||||||
|
{
|
||||||
|
[default] interface IService;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(CCFB9EC5-E28E-4DE1-BD07-1C79303DE0A0),
|
||||||
|
helpstring("IServicesEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IServicesEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IService *pservice);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IService *pservice);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(FC91783E-5703-4319-A5B1-19555059559C),
|
||||||
|
dual,
|
||||||
|
helpstring("IProgram Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IProgram : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
|
||||||
|
[propget, id(didTitle), helpstring("property Title")] HRESULT Title([out, retval] BSTR *pVal);
|
||||||
|
[propput, id(didTitle), helpstring("property Title")] HRESULT Title([in] BSTR newVal);
|
||||||
|
[propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
|
||||||
|
[propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR newVal);
|
||||||
|
[propget, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([out, retval] DATE *pVal);
|
||||||
|
[propput, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([in] DATE newVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(8786250A-8EF8-4A51-B80A-643CCF835DB6),
|
||||||
|
dual,
|
||||||
|
helpstring("IPrograms Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IPrograms : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IProgram * *pVal);
|
||||||
|
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IProgram * *pVal);
|
||||||
|
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IPrograms * *pVal);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IPrograms * *pVal);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IProgram * *ppprog);
|
||||||
|
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IPrograms **ppprogs);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IPrograms * *ppprogs);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IProgram * *ppprog);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(43F457D2-C955-48E2-91AD-B91C9154C613),
|
||||||
|
helpstring("Services Class")
|
||||||
|
]
|
||||||
|
coclass Services
|
||||||
|
{
|
||||||
|
[default] interface IServices;
|
||||||
|
[default, source] dispinterface IServicesEvents;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(C51F670A-7D1A-494E-931D-886BFDB2B438),
|
||||||
|
helpstring("Program Class")
|
||||||
|
]
|
||||||
|
coclass Program
|
||||||
|
{
|
||||||
|
[default] interface IProgram;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(9AB9E463-1EC4-4D6B-AC80-5238561918EE),
|
||||||
|
helpstring("IProgramsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IProgramsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IProgram *pprog);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IProgram *pprog);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(6C46F789-2156-4AF0-97D7-38D99E2C9160),
|
||||||
|
dual,
|
||||||
|
helpstring("IScheduleEntry Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IScheduleEntry : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
|
||||||
|
[propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService * pservice);
|
||||||
|
[propget, id(didProgram), helpstring("property Program")] HRESULT Program([out, retval] IProgram * *ppprog);
|
||||||
|
[propputref, id(didProgram), helpstring("property Program")] HRESULT Program([in] IProgram * pprog);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
[propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
|
||||||
|
[propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
|
||||||
|
[propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
|
||||||
|
[propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
|
||||||
|
[propget, id(didLength), helpstring("property Length")] HRESULT Length([out, retval] long *pVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(E5FDD9C4-8E60-4BEB-BBC8-93BE39C75BAA),
|
||||||
|
dual,
|
||||||
|
helpstring("IScheduleEntries Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IScheduleEntries : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IScheduleEntry * *pVal);
|
||||||
|
[propget, id(didItemWithServiceAtTime), helpstring("property ItemWithServiceAtTime")] HRESULT ItemWithServiceAtTime(IService *pservice, DATE dt, [out, retval] IScheduleEntry * *pVal);
|
||||||
|
[propget, id(didItemsWithService), helpstring("property ItemsWithService")] HRESULT ItemsWithService(IService *pservice, [out, retval] IScheduleEntries **ppschedentries);
|
||||||
|
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IScheduleEntries * *pVal);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IScheduleEntries * *pVal);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(DATE dtStart, DATE dtEnd, IService *pservice, IProgram *pprog, [out, retval] IScheduleEntry * *pVal);
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IScheduleEntries * *pVal);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IScheduleEntries * *ppschedentries);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IScheduleEntry * *ppschedentry);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(16C9C579-B3F4-4C94-88EC-A65EA0B839E7),
|
||||||
|
helpstring("Programs Class")
|
||||||
|
]
|
||||||
|
coclass Programs
|
||||||
|
{
|
||||||
|
[default] interface IPrograms;
|
||||||
|
[default, source] dispinterface IProgramsEvents;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(AFEBCA90-0FF9-48BD-BC98-95477A631BBB),
|
||||||
|
helpstring("ScheduleEntry Class")
|
||||||
|
]
|
||||||
|
coclass ScheduleEntry
|
||||||
|
{
|
||||||
|
[default] interface IScheduleEntry;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(32692A48-F4B5-4826-BE88-E7F8ED9E65DC),
|
||||||
|
helpstring("IScheduleEntriesEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IScheduleEntriesEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IScheduleEntry *pschedentry);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IScheduleEntry *pschedentry);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(ED7DF8CD-4861-4389-8149-8EDE63A51F38),
|
||||||
|
dual,
|
||||||
|
helpstring("IChannel Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IChannel : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
|
||||||
|
[propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
|
||||||
|
[propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
|
||||||
|
[propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService *pservice);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(226D6AD0-7026-494F-BCAD-FAB087E67290),
|
||||||
|
helpstring("ScheduleEntries Class")
|
||||||
|
]
|
||||||
|
coclass ScheduleEntries
|
||||||
|
{
|
||||||
|
[default] interface IScheduleEntries;
|
||||||
|
[default, source] dispinterface IScheduleEntriesEvents;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(3BAE53BD-70F0-4C7B-8C9E-E0317FFF8D79),
|
||||||
|
dual,
|
||||||
|
helpstring("IChannels Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IChannels : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannel * *pVal);
|
||||||
|
[id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IChannel *pchan, long index);
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT index);
|
||||||
|
[propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt(IService *pservice, BSTR bstrName, long index, [out, retval] IChannel * *pVal);
|
||||||
|
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IChannel **ppchan);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IChannels * *ppchannels);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannels **ppchans);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannels * *ppchans);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannel * *ppchan);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(83568B75-1FCC-4853-957A-9CF617B350A3),
|
||||||
|
helpstring("Channel Class")
|
||||||
|
]
|
||||||
|
coclass Channel
|
||||||
|
{
|
||||||
|
[default] interface IChannel;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(6E945C62-0AB7-4D89-BB9E-212502FC7C88),
|
||||||
|
helpstring("IChannelsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IChannelsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannel *pchan);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannel *pchan);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(AB3FF8DB-C718-4ABD-98DE-E14DC74F4872),
|
||||||
|
dual,
|
||||||
|
helpstring("IChannelLineup Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IChannelLineup : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
|
||||||
|
[propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
|
||||||
|
[propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(73AF9077-4F6D-4FCB-A9E2-FDFBB9AE5310),
|
||||||
|
helpstring("Channels Class")
|
||||||
|
]
|
||||||
|
coclass Channels
|
||||||
|
{
|
||||||
|
[default] interface IChannels;
|
||||||
|
[default, source] dispinterface IChannelsEvents;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(2F78C3E1-98FE-4526-A0A7-A621025AEFF6),
|
||||||
|
dual,
|
||||||
|
helpstring("IChannelLineups Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IChannelLineups : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannelLineup **ppchanlineup);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IChannelLineup * *pVal);
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannelLineups **ppchanlineups);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannelLineups * *ppchanlineups);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannelLineup * *ppchanlineup);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8F86A876-E12A-4159-9647-EAFE0288014F),
|
||||||
|
helpstring("ChannelLineup Class")
|
||||||
|
]
|
||||||
|
coclass ChannelLineup
|
||||||
|
{
|
||||||
|
[default] interface IChannelLineup;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(1E3971E3-CCDC-445D-AE97-A15D5D4A40C9),
|
||||||
|
helpstring("IChannelLineupsEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IChannelLineupsEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(A476A330-1123-4065-B3B7-D1EA899151BD),
|
||||||
|
helpstring("IObject Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IObject : IUnknown
|
||||||
|
{
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
[propget, id(didItemRelBy), helpstring("property ItemRelatedBy")] HRESULT ItemRelatedBy([in] IMetaPropertyType *pproptype, [out, retval] IUnknown **ppobj);
|
||||||
|
[propputref, id(didItemRelBy), helpstring("property ItemRelatedBy")] HRESULT ItemRelatedBy([in] IMetaPropertyType *pproptype, [in] IUnknown *pobj);
|
||||||
|
[propget, id(didMetaPropertyType), helpstring("property MetaPropertyType")] HRESULT MetaPropertyType([in] BSTR bstr, [out, retval] IMetaPropertyType* *pproptype);
|
||||||
|
[propget, id(didItemsWithType), helpstring("property ObjectsWithType")] HRESULT ObjectsWithType([in] BSTR bstrCLSID, [out, retval] IObjects **ppobjs);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(E8F1FBD5-4E44-4C26-B3D2-2C1C6999D611),
|
||||||
|
helpstring("IObjects Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IObjects : IUnknown
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
|
||||||
|
[propget, id(didItemsWithType), helpstring("property ItemsWithType")] HRESULT ItemsWithType(BSTR bstrCLSID, [out, retval] IObjects * *pVal);
|
||||||
|
[propget, id(didItemWithIID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IUnknown * *ppunk);
|
||||||
|
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IObjects * *pVal);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *ppropcond, [out, retval] IObjects * *pVal);
|
||||||
|
[id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IUnknown *punk, long index);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IUnknown * *ppunk);
|
||||||
|
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
|
||||||
|
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
|
||||||
|
[propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt([in] long index, [out, retval] IUnknown * *ppunk);
|
||||||
|
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IObjects * *pVal);
|
||||||
|
[propget, id(didItemsRelToBy), helpstring("property ItemsRelatedToBy")] HRESULT ItemsRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
|
||||||
|
[propget, id(didItemsInvRelToBy), helpstring("property ItemsInverseRelatedToBy")] HRESULT ItemsInverseRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
|
||||||
|
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IObjects **ppobjs);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IObjects * *pVal);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8520EF80-1C19-4CB0-83FA-67DB59CC9AE4),
|
||||||
|
helpstring("ChannelLineups Class")
|
||||||
|
]
|
||||||
|
coclass ChannelLineups
|
||||||
|
{
|
||||||
|
[default] interface IChannelLineups;
|
||||||
|
[default, source] dispinterface IChannelLineupsEvents;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(83375A19-A098-42CF-9206-EE36FE48C637),
|
||||||
|
helpstring("IObjectsNotifications Interface")
|
||||||
|
]
|
||||||
|
interface IObjectsNotifications : IUnknown
|
||||||
|
{
|
||||||
|
[id(didItemAdded), helpstring("method Notify_ItemAdded")] HRESULT Notify_ItemAdded(IUnknown *punk);
|
||||||
|
[id(didItemRemoved), helpstring("method Notify_ItemRemoved")] HRESULT Notify_ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method Notify_ItemChanged")] HRESULT Notify_ItemChanged(IUnknown *punk);
|
||||||
|
[id(didItemsChanged), helpstring("method Notify_ItemsChanged")] HRESULT Notify_ItemsChanged();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(B485447D-B180-420F-B2A5-E7BBCEA07EAD),
|
||||||
|
aggregatable,
|
||||||
|
helpstring("Objects Class")
|
||||||
|
]
|
||||||
|
coclass Objects
|
||||||
|
{
|
||||||
|
[default] interface IObjects;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(4B16049B-E548-4868-B303-D501340E2CB1),
|
||||||
|
dual,
|
||||||
|
helpstring("IGuideDataProvider Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideDataProvider : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
|
||||||
|
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pbstrName);
|
||||||
|
[propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pbstrDesc);
|
||||||
|
[propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR bstrDesc);
|
||||||
|
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
|
||||||
|
};
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(CA9DE996-637C-47BF-BC10-CF956BE298EC),
|
||||||
|
dual,
|
||||||
|
helpstring("IGuideDataProviders Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGuideDataProviders : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *plCount);
|
||||||
|
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppdataprovider);
|
||||||
|
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IGuideDataProvider * *ppdataprovider);
|
||||||
|
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IGuideDataProvider **ppdataprovider);
|
||||||
|
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IGuideDataProviders * *ppdataproviders);
|
||||||
|
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IGuideDataProviders * *ppdataproviders);
|
||||||
|
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([in] BSTR bstrName, [out, retval] IGuideDataProvider * *ppdataprovider);
|
||||||
|
|
||||||
|
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IGuideDataProviders * *ppproviders);
|
||||||
|
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppprovider);
|
||||||
|
[id(didResync), helpstring("method Resync")] HRESULT Resync();
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(3CFC7A68-76E9-4F1D-8ECE-08C44F4FFC3E),
|
||||||
|
helpstring("GuideDataProvider Class")
|
||||||
|
]
|
||||||
|
coclass GuideDataProvider
|
||||||
|
{
|
||||||
|
[default] interface IGuideDataProvider;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(850A646E-140B-43B0-A243-20CC6B9FA8BC),
|
||||||
|
helpstring("IGuideDataProvidersEvents Interface")
|
||||||
|
]
|
||||||
|
dispinterface IGuideDataProvidersEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
methods:
|
||||||
|
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
|
||||||
|
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
|
||||||
|
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
|
||||||
|
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(6E30077E-2E0B-4D4A-92B0-CDB5E5116E3B),
|
||||||
|
helpstring("GuideDataProviders Class")
|
||||||
|
]
|
||||||
|
coclass GuideDataProviders
|
||||||
|
{
|
||||||
|
[default] interface IGuideDataProviders;
|
||||||
|
[default, source] dispinterface IGuideDataProvidersEvents;
|
||||||
|
};
|
||||||
|
};
|
||||||
715
third_party/dx9_sdk/include/DShowIDL/Msvidctl.idl
vendored
Normal file
715
third_party/dx9_sdk/include/DShowIDL/Msvidctl.idl
vendored
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
// MSVidCtl.idl : IDL source for MSVidCtl.dll
|
||||||
|
//
|
||||||
|
|
||||||
|
// This file will be processed by the MIDL tool to
|
||||||
|
// produce the type library (MSVidCtl.tlb) and marshalling code.
|
||||||
|
|
||||||
|
|
||||||
|
// Copyright (c) Microsoft Corporation 1998-2000
|
||||||
|
//
|
||||||
|
|
||||||
|
cpp_quote("//+-------------------------------------------------------------------------")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// Microsoft Windows")
|
||||||
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2000.")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("//--------------------------------------------------------------------------")
|
||||||
|
cpp_quote("#pragma once")
|
||||||
|
|
||||||
|
#include <olectl.h>
|
||||||
|
#ifndef DO_NO_IMPORTS
|
||||||
|
#ifndef TUNING_MODEL_ONLY
|
||||||
|
import "mshtml.idl";
|
||||||
|
import "segment.idl";
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TUNING_MODEL_ONLY
|
||||||
|
typedef enum {
|
||||||
|
dispidInputs,
|
||||||
|
dispidOutputs,
|
||||||
|
dispid_Inputs,
|
||||||
|
dispid_Outputs,
|
||||||
|
dispidVideoRenderers,
|
||||||
|
dispidAudioRenderers,
|
||||||
|
dispidFeatures,
|
||||||
|
dispidInput,
|
||||||
|
dispidOutput,
|
||||||
|
dispidVideoRenderer,
|
||||||
|
dispidAudioRenderer,
|
||||||
|
dispidSelectedFeatures,
|
||||||
|
dispidView, // total graph control
|
||||||
|
dispidBuild,
|
||||||
|
dispidPause,
|
||||||
|
dispidRun,
|
||||||
|
dispidStop,
|
||||||
|
dispidDecompose,
|
||||||
|
dispidDisplaySize,
|
||||||
|
dispidMaintainAspectRatio,
|
||||||
|
dispidColorKey,
|
||||||
|
dispidStateChange,
|
||||||
|
dispidgetState,
|
||||||
|
dispidunbind,
|
||||||
|
dispidbind,
|
||||||
|
dispidDisableVideo,
|
||||||
|
dispidDisableAudio,
|
||||||
|
dispidViewNext,
|
||||||
|
dispidServiceP
|
||||||
|
} MSViddispidList;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
dslDefaultSize,
|
||||||
|
dslSourceSize = 0, // synonym
|
||||||
|
dslHalfSourceSize,
|
||||||
|
dslDoubleSourceSize,
|
||||||
|
dslFullScreen,
|
||||||
|
dslHalfScreen,
|
||||||
|
dslQuarterScreen,
|
||||||
|
dslSixteenthScreen
|
||||||
|
} DisplaySizeList;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
STATE_UNBUILT =-1,
|
||||||
|
STATE_STOP,
|
||||||
|
STATE_PAUSE,
|
||||||
|
STATE_PLAY,
|
||||||
|
|
||||||
|
} MSVidCtlStateList;
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// the full Viewer control
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(B0EDF162-910A-11D2-B632-00C04F79498E),
|
||||||
|
dual,
|
||||||
|
hidden,
|
||||||
|
nonextensible,
|
||||||
|
helpstring("MS Video Control Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMSVidCtl : IDispatch
|
||||||
|
{
|
||||||
|
// stock props
|
||||||
|
[propget, id(DISPID_AUTOSIZE)]
|
||||||
|
HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_AUTOSIZE)]
|
||||||
|
HRESULT AutoSize([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_BACKCOLOR)]
|
||||||
|
HRESULT BackColor([out,retval]OLE_COLOR* backcolor);
|
||||||
|
[propput, id(DISPID_BACKCOLOR)]
|
||||||
|
HRESULT BackColor([in]OLE_COLOR backcolor);
|
||||||
|
[propget, id(DISPID_ENABLED)]
|
||||||
|
HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_ENABLED)]
|
||||||
|
HRESULT Enabled([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_TABSTOP)]
|
||||||
|
HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
|
||||||
|
[propput, id(DISPID_TABSTOP)]
|
||||||
|
HRESULT TabStop([in]VARIANT_BOOL vbool);
|
||||||
|
[propget, id(DISPID_HWND)]
|
||||||
|
HRESULT Window([out, retval]HWND* phwnd);
|
||||||
|
[id(DISPID_REFRESH)]
|
||||||
|
HRESULT Refresh();
|
||||||
|
// pseudo video renderer properties/methods that require access to ole container
|
||||||
|
[propget, id(dispidDisplaySize)]
|
||||||
|
HRESULT DisplaySize([out,retval]DisplaySizeList *CurrentValue);
|
||||||
|
[propput, id(dispidDisplaySize)]
|
||||||
|
HRESULT DisplaySize([in]DisplaySizeList NewValue);
|
||||||
|
[propget, id(dispidMaintainAspectRatio)]
|
||||||
|
HRESULT MaintainAspectRatio([out,retval]VARIANT_BOOL *CurrentValue);
|
||||||
|
[propput, id(dispidMaintainAspectRatio)]
|
||||||
|
HRESULT MaintainAspectRatio([in]VARIANT_BOOL NewValue);
|
||||||
|
|
||||||
|
// non-stock visual propertiies that require coordination/implementation with
|
||||||
|
// core ctl drawing/painting function
|
||||||
|
[propget, id(dispidColorKey)]
|
||||||
|
HRESULT ColorKey([out,retval]OLE_COLOR *CurrentValue);
|
||||||
|
[propput, id(dispidColorKey)]
|
||||||
|
HRESULT ColorKey([in]OLE_COLOR NewValue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// availablee collection
|
||||||
|
[propget, id(dispidInputs), helpstring("Available Input Devices")] HRESULT InputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
|
||||||
|
[propget, id(dispidOutputs), helpstring("Available Output Devices")] HRESULT OutputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
|
||||||
|
[propget, id(dispid_Inputs), hidden, restricted, helpstring("Available Input Devices")] HRESULT _InputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
|
||||||
|
[propget, id(dispid_Outputs), hidden, restricted, helpstring("Available Output Devices")] HRESULT _OutputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
|
||||||
|
[propget, id(dispidVideoRenderers), helpstring("Available Video Renderers")] HRESULT VideoRenderersAvailable([out, retval] IMSVidVideoRendererDevices * *pVal);
|
||||||
|
[propget, id(dispidAudioRenderers), helpstring("Available Audio Renderers")] HRESULT AudioRenderersAvailable([out, retval] IMSVidAudioRendererDevices * *pVal);
|
||||||
|
[propget, id(dispidFeatures), helpstring("Available Features")] HRESULT FeaturesAvailable([out, retval] IMSVidFeatures * *pVal);
|
||||||
|
// current selections
|
||||||
|
[propget, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([out, retval] IMSVidInputDevice **pVal);
|
||||||
|
[propput, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([in] IMSVidInputDevice *pVal);
|
||||||
|
[propget, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([out, retval] IMSVidOutputDevices **pVal);
|
||||||
|
[propput, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([in] IMSVidOutputDevices *pVal);
|
||||||
|
[propget, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([out, retval] IMSVidVideoRenderer **pVal);
|
||||||
|
[propput, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([in] IMSVidVideoRenderer *pVal);
|
||||||
|
[propget, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([out, retval] IMSVidAudioRenderer **pVal);
|
||||||
|
[propput, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([in] IMSVidAudioRenderer *pVal);
|
||||||
|
[propget, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([out, retval] IMSVidFeatures **pVal);
|
||||||
|
[propput, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([in] IMSVidFeatures *pVal);
|
||||||
|
[propget, id(dispidgetState), helpstring("Check the current MSVidCtl state.")] HRESULT State([out, retval]MSVidCtlStateList* lState);
|
||||||
|
// methods
|
||||||
|
|
||||||
|
[id(dispidView), helpstring("Find an input device for viewing the specified item. This may be a string(VT_BSTR) or an object(VT_UNKNOWN).")] HRESULT View([in] VARIANT* v);
|
||||||
|
[id(dispidBuild), helpstring("Compose the graph")] HRESULT Build();
|
||||||
|
[id(dispidPause), helpstring("Stop the graph")] HRESULT Pause();
|
||||||
|
[id(dispidRun), helpstring("Compose the graph if necessary and start it running")] HRESULT Run();
|
||||||
|
[id(dispidStop), helpstring("Stop the graph")] HRESULT Stop();
|
||||||
|
[id(dispidDecompose), helpstring("Disassemble the graph(Inverse of Build)")] HRESULT Decompose();
|
||||||
|
[id(dispidDisableVideo), helpstring("set active video renderer to nothing")] HRESULT DisableVideo();
|
||||||
|
[id(dispidDisableAudio), helpstring("set active Audio renderer to nothing")] HRESULT DisableAudio();
|
||||||
|
[id(dispidViewNext), helpstring("Find another input device for viewing the specified item. Works like View except skips current input")] HRESULT ViewNext([in] VARIANT* v);
|
||||||
|
[propput, id(dispidServiceP), helpstring("Set Service Provider")] HRESULT ServiceProvider([in] IUnknown* pServiceP);
|
||||||
|
};
|
||||||
|
|
||||||
|
///Added for the mseventbinder
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
dual,
|
||||||
|
oleautomation,
|
||||||
|
hidden,
|
||||||
|
nonextensible,
|
||||||
|
pointer_default(unique),
|
||||||
|
uuid(C3A9F406-2222-436D-86D5-BA3229279EFB),
|
||||||
|
helpstring("IMSEventBinder Interface"),
|
||||||
|
]
|
||||||
|
interface IMSEventBinder : IDispatch {
|
||||||
|
[id(dispidbind), helpstring("method Bind")] HRESULT Bind([in]LPDISPATCH pEventObject, [in]BSTR EventName, [in]BSTR EventHandler, [out, retval] LONG * CancelID);
|
||||||
|
[id(dispidunbind), helpstring("method Unbind")] HRESULT Unbind([in]DWORD CancelCookie);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // TUNING_MODEL_ONLY
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
//*****************************************************************************
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Type Library for MS Video Control
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//*****************************************************************************
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(B0EDF154-910A-11D2-B632-00C04F79498E),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("MS Video Control 1.0 Type Library")
|
||||||
|
]
|
||||||
|
library MSVidCtlLib
|
||||||
|
{
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef TUNING_MODEL_ONLY
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// event interfaces
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(B0EDF164-910A-11D2-B632-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Events Interface")
|
||||||
|
]
|
||||||
|
dispinterface _IMSVidCtlEvents
|
||||||
|
{
|
||||||
|
properties:
|
||||||
|
// Event interface has no properties
|
||||||
|
methods:
|
||||||
|
[id(DISPID_CLICK)] void Click();
|
||||||
|
[id(DISPID_DBLCLICK)] void DblClick();
|
||||||
|
[id(DISPID_KEYDOWN)] void KeyDown(short* KeyCode, short Shift);
|
||||||
|
[id(DISPID_KEYPRESS)] void KeyPress(short* KeyAscii);
|
||||||
|
[id(DISPID_KEYUP)] void KeyUp(short* KeyCode, short Shift);
|
||||||
|
[id(DISPID_MOUSEDOWN)] void MouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
|
||||||
|
[id(DISPID_MOUSEMOVE)] void MouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
|
||||||
|
[id(DISPID_MOUSEUP)] void MouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
|
||||||
|
[id(DISPID_ERROREVENT)] void Error(short Number, BSTR* Description, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* CancelDisplay);
|
||||||
|
[id(dispidStateChange)] void StateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
|
||||||
|
};
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// device classes
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//*****************************************************************************
|
||||||
|
|
||||||
|
// inputs
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(1C15D484-911D-11d2-B632-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Analog TV Tuner Device Class")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogTunerDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidAnalogTuner;
|
||||||
|
[default, source] interface IMSVidAnalogTunerEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(A2E3074E-6C3D-11d3-B653-00C04F79498E),
|
||||||
|
helpstring("MS Video Control BDA Tuner Device Class")
|
||||||
|
]
|
||||||
|
coclass MSVidBDATunerDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidTuner;
|
||||||
|
[default, source] interface IMSVidTunerEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(37B0353C-A4C8-11d2-B634-00C04F79498E),
|
||||||
|
helpstring("MS Video Control File Playback Device Class")
|
||||||
|
]
|
||||||
|
coclass MSVidFilePlaybackDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidFilePlayback;
|
||||||
|
[default, source] interface IMSVidFilePlaybackEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(011B3619-FE63-4814-8A84-15A194CE9CE3),
|
||||||
|
helpstring("MSVidWebDVD Class")
|
||||||
|
]
|
||||||
|
coclass MSVidWebDVD
|
||||||
|
{
|
||||||
|
[default] interface IMSVidWebDVD;
|
||||||
|
[default, source] interface IMSVidWebDVDEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(FA7C375B-66A7-4280-879D-FD459C84BB02),
|
||||||
|
helpstring("MSVidWebDVDAdm Class")
|
||||||
|
]
|
||||||
|
coclass MSVidWebDVDAdm
|
||||||
|
{
|
||||||
|
[default] interface IMSVidWebDVDAdm;
|
||||||
|
};
|
||||||
|
|
||||||
|
// rendererers
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(37B03543-A4C8-11d2-B634-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Video Renderer Class")
|
||||||
|
]
|
||||||
|
coclass MSVidVideoRenderer
|
||||||
|
{
|
||||||
|
[default] interface IMSVidVideoRenderer2;
|
||||||
|
interface IMSVidVideoRenderer;
|
||||||
|
[default, source] interface IMSVidVideoRendererEvent;
|
||||||
|
//[default, source] interface IMSVidVideoRendererEvent2;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(37B03544-A4C8-11d2-B634-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Audio Renderer Class")
|
||||||
|
]
|
||||||
|
coclass MSVidAudioRenderer
|
||||||
|
{
|
||||||
|
[default] interface IMSVidAudioRenderer;
|
||||||
|
[default, source] interface IMSVidAudioRendererEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Stream Buffer Sink and Source and Playback
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(9E77AAC4-35E5-42a1-BDC2-8F3FF399847C),
|
||||||
|
helpstring("MS Video Control Stream Buffer Engine Sink Class")
|
||||||
|
]
|
||||||
|
coclass MSVidStreamBufferSink
|
||||||
|
{
|
||||||
|
[default] interface IMSVidStreamBufferSink;
|
||||||
|
[default, source] interface IMSVidStreamBufferSinkEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(AD8E510D-217F-409b-8076-29C5E73B98E8),
|
||||||
|
helpstring("MS Video Control Stream Buffer Engine Playback Device Class")
|
||||||
|
]
|
||||||
|
coclass MSVidStreamBufferSource
|
||||||
|
{
|
||||||
|
[default] interface IMSVidStreamBufferSource;
|
||||||
|
[default, source] interface IMSVidStreamBufferSourceEvent;
|
||||||
|
interface IMSVidGraphSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
// features
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(334125C0-77E5-11d3-B653-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Standard Data Services for Broadcast IP through NDIS stack")
|
||||||
|
]
|
||||||
|
coclass MSVidDataServices
|
||||||
|
{
|
||||||
|
interface IMSVidDataServices;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(BB530C63-D9DF-4b49-9439-63453962E598),
|
||||||
|
helpstring("MS Video Control Encoder")
|
||||||
|
]
|
||||||
|
coclass MSVidEncoder
|
||||||
|
{
|
||||||
|
interface IMSVidEncoder;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(0149EEDF-D08F-4142-8D73-D23903D21E90),
|
||||||
|
helpstring("MS Video Control Encoder")
|
||||||
|
]
|
||||||
|
coclass MSVidXDS
|
||||||
|
{
|
||||||
|
interface IMSVidXDS;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(7F9CB14D-48E4-43b6-9346-1AEBC39C64D3),
|
||||||
|
helpstring("MS Video Control Standard Closed Captioning")
|
||||||
|
]
|
||||||
|
coclass MSVidClosedCaptioning
|
||||||
|
{
|
||||||
|
[default] interface IMSVidClosedCaptioning2;
|
||||||
|
interface IMSVidClosedCaptioning;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// control classes
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(B0EDF163-910A-11D2-B632-00C04F79498E),
|
||||||
|
control,
|
||||||
|
helpstring("MS Video Control Class")
|
||||||
|
]
|
||||||
|
coclass MSVidCtl
|
||||||
|
{
|
||||||
|
[default] interface IMSVidCtl;
|
||||||
|
[default, source] dispinterface _IMSVidCtlEvents;
|
||||||
|
interface IMSVidGraphSegmentContainer;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// device collections
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[
|
||||||
|
uuid(C5702CCC-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Input Device Collection Class")
|
||||||
|
]
|
||||||
|
coclass MSVidInputDevices
|
||||||
|
{
|
||||||
|
[default] interface IMSVidInputDevices;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5702CCD-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Output Device Collection Class")
|
||||||
|
]
|
||||||
|
coclass MSVidOutputDevices
|
||||||
|
{
|
||||||
|
[default] interface IMSVidOutputDevices;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5702CCE-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Video Renderer Device Collection Class")
|
||||||
|
]
|
||||||
|
coclass MSVidVideoRendererDevices
|
||||||
|
{
|
||||||
|
[default] interface IMSVidVideoRendererDevices;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5702CCF-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Audio Renderer Device Collection Class")
|
||||||
|
]
|
||||||
|
coclass MSVidAudioRendererDevices
|
||||||
|
{
|
||||||
|
[default] interface IMSVidAudioRendererDevices;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5702CD0-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Feature Collection Class")
|
||||||
|
]
|
||||||
|
coclass MSVidFeatures
|
||||||
|
{
|
||||||
|
[default] interface IMSVidFeatures;
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// composites
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(2764BCE5-CC39-11D2-B639-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Generic Composition Class")
|
||||||
|
]
|
||||||
|
coclass MSVidGenericComposite
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(E18AF75A-08AF-11d3-B64A-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Custom Composition for Analog Capture to Overlay Mixer")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogCaptureToOverlayMixer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5702CD6-9B79-11d3-B654-00C04F79498E),
|
||||||
|
helpstring("MS Video Control Custom Composition for Analog Capture to Data Services")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogCaptureToDataServices
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(267db0b3-55e3-4902-949b-df8f5cec0191),
|
||||||
|
helpstring("MS Video Control Custom Composition for WebDVD to Overlay Mixer")
|
||||||
|
]
|
||||||
|
coclass MSVidWebDVDToVideoRenderer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8D04238E-9FD1-41c6-8DE3-9E1EE309E935),
|
||||||
|
helpstring("MS Video Control Custom Composition for WebDVD to Audio Renderer")
|
||||||
|
]
|
||||||
|
coclass MSVidWebDVDToAudioRenderer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(6AD28EE1-5002-4e71-AAF7-BD077907B1A4),
|
||||||
|
helpstring("MS Video Control Custom Composition for Mpeg2 Decoder to Closed Captioning")
|
||||||
|
]
|
||||||
|
coclass MSVidMPEG2DecoderToClosedCaptioning
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(9F50E8B1-9530-4ddc-825E-1AF81D47AED6),
|
||||||
|
helpstring("MS Video Control Custom Composition for Analog Capture to Stream Buffer Sink")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogCaptureToStreamBufferSink
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(ABE40035-27C3-4a2f-8153-6624471608AF),
|
||||||
|
helpstring("MS Video Control Custom Composition for Digital Capture to Stream Buffer Sink")
|
||||||
|
]
|
||||||
|
coclass MSVidDigitalCaptureToStreamBufferSink
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(38F03426-E83B-4e68-B65B-DCAE73304838),
|
||||||
|
helpstring("MS Video Control Custom Composition for Data Services to Stream Buffer Sink")
|
||||||
|
]
|
||||||
|
coclass MSVidDataServicesToStreamBufferSink
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(0429EC6E-1144-4bed-B88B-2FB9899A4A3D),
|
||||||
|
helpstring("MS Video Control Custom Composition for DataServices To XDS")
|
||||||
|
]
|
||||||
|
coclass MSVidDataServicesToXDS
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(A0B9B497-AFBC-45ad-A8A6-9B077C40D4F2),
|
||||||
|
helpstring("MS Video Control Custom Composition for Encoder to Stream Buffer Sink")
|
||||||
|
]
|
||||||
|
coclass MSVidEncoderToStreamBufferSink
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(B401C5EB-8457-427f-84EA-A4D2363364B0),
|
||||||
|
helpstring("MS Video Control Custom Composition for File Playback to Video Renderer")
|
||||||
|
]
|
||||||
|
coclass MSVidFilePlaybackToVideoRenderer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(CC23F537-18D4-4ece-93BD-207A84726979),
|
||||||
|
helpstring("MS Video Control Custom Composition for File Playback to Audio Renderer")
|
||||||
|
]
|
||||||
|
coclass MSVidFilePlaybackToAudioRenderer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(28953661-0231-41db-8986-21FF4388EE9B),
|
||||||
|
helpstring("MS Video Control Custom Composition for TV Tuner to Encoder")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogTVToEncoder
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(3C4708DC-B181-46a8-8DA8-4AB0371758CD),
|
||||||
|
helpstring("MS Video Control Custom Composition for SBE Source to Video renderer")
|
||||||
|
]
|
||||||
|
coclass MSVidStreamBufferSourceToVideoRenderer
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(3540D440-5B1D-49cb-821A-E84B8CF065A7),
|
||||||
|
helpstring("MS Video Control Custom Composition for TV Tuner to XDS")
|
||||||
|
]
|
||||||
|
coclass MSVidAnalogCaptureToXDS
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(9193A8F9-0CBA-400e-AA97-EB4709164576),
|
||||||
|
helpstring("MS Video Control Custom Composition for Stream Buffer Source to CC")
|
||||||
|
]
|
||||||
|
coclass MSVidSBESourceToCC
|
||||||
|
{
|
||||||
|
interface IMSVidCompositionSegment;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Miscellaneous
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Events
|
||||||
|
[
|
||||||
|
uuid(577FAA18-4518-445E-8F70-1473F8CF4BA4),
|
||||||
|
helpstring("MSEventBinder Class")
|
||||||
|
]
|
||||||
|
coclass MSEventBinder
|
||||||
|
{
|
||||||
|
[default] interface IMSEventBinder;
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(CAAFDD83-CEFC-4e3d-BA03-175F17A24F91),
|
||||||
|
helpstring("MSVidStreamBufferRecordingControl")
|
||||||
|
]
|
||||||
|
coclass MSVidStreamBufferRecordingControl
|
||||||
|
{
|
||||||
|
[default] interface IMSVidStreamBufferRecordingControl;
|
||||||
|
};
|
||||||
|
// vidrect class
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(CB4276E6-7D5F-4cf1-9727-629C5E6DB6AE),
|
||||||
|
helpstring("Automation compliant scalable rectangle Class")
|
||||||
|
]
|
||||||
|
coclass MSVidRect
|
||||||
|
{
|
||||||
|
[default] interface IMSVidRect;
|
||||||
|
};
|
||||||
|
|
||||||
|
// NOTE: there is no object factory for the following classes.
|
||||||
|
// the implementation for the underlying code is a c++ abstract base class.
|
||||||
|
// this coclass is only provided here to force vb to expose the base interface
|
||||||
|
// to enable polymorphic access to derived objects
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(6E40476F-9C49-4c3e-8BB9-8587958EFF74),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidDevice;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(AC1972F2-138A-4ca3-90DA-AE51112EDA28),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidInputDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidInputDevice;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(95F4820B-BB3A-4e2d-BC64-5B817BC2C30E),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidVideoInputDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidVideoInputDevice;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(1990D634-1A5E-4071-A34A-53AAFFCE9F36),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidVideoPlaybackDevice
|
||||||
|
{
|
||||||
|
[default] interface IMSVidPlayback;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(7748530B-C08A-47ea-B24C-BE8695FF405F),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidFeature
|
||||||
|
{
|
||||||
|
[default] interface IMSVidFeature;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(87EB890D-03AD-4e9d-9866-376E5EC572ED),
|
||||||
|
helpstring("dummy class to expose base interface to VB")
|
||||||
|
]
|
||||||
|
coclass MSVidOutput
|
||||||
|
{
|
||||||
|
[default] interface IMSVidOutputDevice;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //TUNING_MODEL_ONLY
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// end of file msvidctl.idl
|
||||||
1349
third_party/dx9_sdk/include/DShowIDL/Segment.idl
vendored
Normal file
1349
third_party/dx9_sdk/include/DShowIDL/Segment.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
172
third_party/dx9_sdk/include/DShowIDL/Videoacc.idl
vendored
Normal file
172
third_party/dx9_sdk/include/DShowIDL/Videoacc.idl
vendored
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: VideoAcc.idl
|
||||||
|
//
|
||||||
|
// Desc: An interface exposed by the overlay mixer to help decode samples
|
||||||
|
// using hardware video acceleration.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
|
||||||
|
cpp_quote("// the motncomp.idl file build. The actual definitions are contained in ddraw.h and amva.h")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("#if 0")
|
||||||
|
|
||||||
|
typedef void* LPVOID;
|
||||||
|
typedef void* LPGUID;
|
||||||
|
typedef void* LPDIRECTDRAWSURFACE;
|
||||||
|
typedef void* LPDDPIXELFORMAT;
|
||||||
|
typedef void* LPAMVAInternalMemInfo;
|
||||||
|
typedef void AMVAUncompDataInfo;
|
||||||
|
typedef void* LPAMVACompBufferInfo;
|
||||||
|
typedef void AMVABUFFERINFO;
|
||||||
|
typedef void AMVAEndFrameInfo;
|
||||||
|
typedef void* LPAMVAUncompBufferInfo;
|
||||||
|
typedef void AMVABeginFrameInfo;
|
||||||
|
typedef IUnknown* IMediaSample;
|
||||||
|
|
||||||
|
cpp_quote("#endif")
|
||||||
|
cpp_quote("#include <ddraw.h>")
|
||||||
|
cpp_quote("#include <amva.h>")
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(256A6A21-FBAD-11d1-82BF-00A0C9696C8F),
|
||||||
|
helpstring("IAMVideoAcceleratorNotify Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
|
||||||
|
// IAMVideoAcceleratorNotify
|
||||||
|
interface IAMVideoAcceleratorNotify : IUnknown
|
||||||
|
{
|
||||||
|
// get information necessary to allocate uncompressed data buffers
|
||||||
|
// which is not part of the mediatype format (like how many buffers to allocate etc)
|
||||||
|
HRESULT GetUncompSurfacesInfo([in] const GUID *pGuid, [in] [out] LPAMVAUncompBufferInfo pUncompBufferInfo);
|
||||||
|
|
||||||
|
// set information regarding allocated uncompressed data buffers
|
||||||
|
HRESULT SetUncompSurfacesInfo([in] DWORD dwActualUncompSurfacesAllocated);
|
||||||
|
|
||||||
|
// get information necessary to create video accelerator object. It is the caller's responsibility
|
||||||
|
// to call CoTaskMemFree() on *ppMiscData
|
||||||
|
HRESULT GetCreateVideoAcceleratorData([in] const GUID *pGuid, [out] LPDWORD pdwSizeMiscData, [out] LPVOID *ppMiscData);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(256A6A22-FBAD-11d1-82BF-00A0C9696C8F),
|
||||||
|
helpstring("IAMVideoAccelerator Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
|
||||||
|
// IAMVideoAccelerator
|
||||||
|
interface IAMVideoAccelerator : IUnknown
|
||||||
|
{
|
||||||
|
// pdwNumGuidsSupported is an IN OUT paramter
|
||||||
|
// pGuidsSupported is an IN OUT paramter
|
||||||
|
// if pGuidsSupported is NULL, pdwNumGuidsSupported should return back with the
|
||||||
|
// number of uncompressed pixel formats supported
|
||||||
|
// Otherwise pGuidsSupported is an array of *pdwNumGuidsSupported structures
|
||||||
|
HRESULT GetVideoAcceleratorGUIDs([in] [out] LPDWORD pdwNumGuidsSupported, [in] [out] LPGUID pGuidsSupported);
|
||||||
|
|
||||||
|
// pGuid is an IN parameter
|
||||||
|
// pdwNumFormatsSupported is an IN OUT paramter
|
||||||
|
// pFormatsSupported is an IN OUT paramter (caller should make sure to set the size of EACH struct)
|
||||||
|
// if pFormatsSupported is NULL, pdwNumFormatsSupported should return back with
|
||||||
|
// the number of uncompressed pixel formats supported
|
||||||
|
// Otherwise pFormatsSupported is an array of *pdwNumFormatsSupported structures
|
||||||
|
HRESULT GetUncompFormatsSupported( [in] const GUID *pGuid, [in] [out] LPDWORD pdwNumFormatsSupported,
|
||||||
|
[in] [out] LPDDPIXELFORMAT pFormatsSupported);
|
||||||
|
|
||||||
|
// pGuid is an IN parameter
|
||||||
|
// pamvaUncompDataInfo is an IN parameter
|
||||||
|
// pamvaInternalMemInfo is an IN OUT parameter (caller should make sure to set the size of struct)
|
||||||
|
// currently only gets info about how much scratch memory will the hal allocate for its private use
|
||||||
|
HRESULT GetInternalMemInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo,
|
||||||
|
[in] [out] LPAMVAInternalMemInfo pamvaInternalMemInfo);
|
||||||
|
|
||||||
|
// pGuid is an IN parameter
|
||||||
|
// pamvaUncompDataInfo is an IN parameter
|
||||||
|
// pdwNumTypesCompBuffers is an IN OUT paramter
|
||||||
|
// pamvaCompBufferInfo is an IN OUT paramter (caller should make sure to set the size of EACH struct)
|
||||||
|
// if pamvaCompBufferInfo is NULL, pdwNumTypesCompBuffers should return back with the number of types of
|
||||||
|
// compressed buffers
|
||||||
|
// Otherwise pamvaCompBufferInfo is an array of *pdwNumTypesCompBuffers structures
|
||||||
|
HRESULT GetCompBufferInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo,
|
||||||
|
[in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
|
||||||
|
|
||||||
|
|
||||||
|
// pdwNumTypesCompBuffers is an IN OUT paramter
|
||||||
|
// pamvaCompBufferInfo is an IN OUT paramter (caller should make sure to set the size of EACH struct)
|
||||||
|
// if pamvaCompBufferInfo is NULL, pdwNumTypesCompBuffers should return back with the number of types of
|
||||||
|
// compressed buffers
|
||||||
|
// Otherwise pamvaCompBufferInfo is an array of *pdwNumTypesCompBuffers structures
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
HRESULT GetInternalCompBufferInfo([in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
|
||||||
|
|
||||||
|
// begin a frame, the pMiscData is passed directly to the hal
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
// Tells the ovmixer which frame is the destination
|
||||||
|
// frame. Use indices (valid vales are [0 .. pdwNumSurfacesAllocated-1]) to specify frames
|
||||||
|
HRESULT BeginFrame([in] const AMVABeginFrameInfo *amvaBeginFrameInfo);
|
||||||
|
|
||||||
|
// end a frame, the pMiscData is passed directly to the hal
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
HRESULT EndFrame([in] const AMVAEndFrameInfo *pEndFrameInfo);
|
||||||
|
|
||||||
|
// lock and obtain access to a single buffer
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
// Buffers are identified by type and index within that type
|
||||||
|
// Specifiying read-only will allow access to busy reference
|
||||||
|
// frames
|
||||||
|
// Output (uncompressed) frames use a type index of 0xFFFFFFFF
|
||||||
|
HRESULT GetBuffer(
|
||||||
|
[in] DWORD dwTypeIndex,
|
||||||
|
[in] DWORD dwBufferIndex,
|
||||||
|
[in] BOOL bReadOnly,
|
||||||
|
[out] LPVOID *ppBuffer,
|
||||||
|
[out] LONG *lpStride);
|
||||||
|
|
||||||
|
// unlock a single buffer
|
||||||
|
// Buffers are identified by type and index within that type
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
HRESULT ReleaseBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex);
|
||||||
|
|
||||||
|
// Perform a decompression operation
|
||||||
|
// Private data can be passed to and from a driver
|
||||||
|
// identifiers for the corresponding members of pamvaMacroBlockInfo
|
||||||
|
// pamvaMacroBlockInfo is an IN parameter which is array (of length dwNumBlocks) of structures
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
HRESULT Execute(
|
||||||
|
[in] DWORD dwFunction,
|
||||||
|
[in] LPVOID lpPrivateInputData,
|
||||||
|
[in] DWORD cbPrivateInputData,
|
||||||
|
[in] LPVOID lpPrivateOutputDat,
|
||||||
|
[in] DWORD cbPrivateOutputData,
|
||||||
|
[in] DWORD dwNumBuffers,
|
||||||
|
[in] const AMVABUFFERINFO *pamvaBufferInfo);
|
||||||
|
|
||||||
|
// query the decode status of a particular decompression operation
|
||||||
|
// dwTypeIndex and dwBufferIndex define the buffer whose status is
|
||||||
|
// being queried
|
||||||
|
HRESULT QueryRenderStatus([in] DWORD dwTypeIndex,
|
||||||
|
[in] DWORD dwBufferIndex,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
// display a frame. The mediasample contains the timestamps etc for the frame to be displayed
|
||||||
|
// this call is a non-blocking call
|
||||||
|
// only valid to call this after the pins are connected
|
||||||
|
HRESULT DisplayFrame([in] DWORD dwFlipToIndex, [in] IMediaSample *pMediaSample);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1074
third_party/dx9_sdk/include/DShowIDL/Vmrender.idl
vendored
Normal file
1074
third_party/dx9_sdk/include/DShowIDL/Vmrender.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
334
third_party/dx9_sdk/include/DShowIDL/amstream.idl
vendored
Normal file
334
third_party/dx9_sdk/include/DShowIDL/amstream.idl
vendored
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AMStream.idl
|
||||||
|
//
|
||||||
|
// Desc:
|
||||||
|
//
|
||||||
|
// Copyright (c) 1998 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "mmstream.idl";
|
||||||
|
import "strmif.idl";
|
||||||
|
|
||||||
|
cpp_quote("#include <ddraw.h>")
|
||||||
|
cpp_quote("#include <mmsystem.h>")
|
||||||
|
cpp_quote("#include <mmstream.h>")
|
||||||
|
cpp_quote("#include <ddstream.h>")
|
||||||
|
cpp_quote("#include <austream.h>")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
interface IAMMultiMediaStream;
|
||||||
|
interface IAMMediaStream;
|
||||||
|
interface IMediaStreamFilter;
|
||||||
|
interface IDirectDraw;
|
||||||
|
interface IDirectDrawSurface;
|
||||||
|
interface IAMMediaTypeStream;
|
||||||
|
interface IAMMediaTypeSample;
|
||||||
|
|
||||||
|
// Flags definitions for IAMMultiMediaStream::Initialize
|
||||||
|
enum {
|
||||||
|
AMMSF_NOGRAPHTHREAD = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
// Flags definitions for AddMediaStream and IAMMediaStream::Initialize
|
||||||
|
enum {
|
||||||
|
// Don't add a stream - create a default renderer instead
|
||||||
|
// for the supplied purpose id
|
||||||
|
AMMSF_ADDDEFAULTRENDERER = 0x00000001,
|
||||||
|
AMMSF_CREATEPEER = 0x00000002,
|
||||||
|
|
||||||
|
// If no samples are created when we run or the last sample
|
||||||
|
// is deleted then terminate this stream
|
||||||
|
AMMSF_STOPIFNOSAMPLES = 0x00000004,
|
||||||
|
|
||||||
|
// If Update is not called keep going
|
||||||
|
AMMSF_NOSTALL = 0x00000008
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Flag definitions for OpenFile and OpenMoniker
|
||||||
|
enum {
|
||||||
|
AMMSF_RENDERTYPEMASK = 0x00000003,
|
||||||
|
AMMSF_RENDERTOEXISTING = 0x00000000,
|
||||||
|
AMMSF_RENDERALLSTREAMS = 0x00000001,
|
||||||
|
AMMSF_NORENDER = 0x00000002,
|
||||||
|
|
||||||
|
AMMSF_NOCLOCK = 0x00000004,
|
||||||
|
AMMSF_RUN = 0x00000008
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef [v1_enum] enum {
|
||||||
|
Disabled = 0,
|
||||||
|
ReadData = 1,
|
||||||
|
RenderData = 2
|
||||||
|
} OUTPUT_STATE;
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
|
||||||
|
dual,
|
||||||
|
helpstring("IDirectShowStream Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IDirectShowStream : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
|
||||||
|
[propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
|
||||||
|
[propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
|
||||||
|
[propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
|
||||||
|
[propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
|
||||||
|
[propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// IAMMultiMediaStream interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAMMultiMediaStream : IMultiMediaStream
|
||||||
|
{
|
||||||
|
HRESULT Initialize(
|
||||||
|
[in] STREAM_TYPE StreamType,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] IGraphBuilder *pFilterGraph);
|
||||||
|
|
||||||
|
HRESULT GetFilterGraph(
|
||||||
|
[out] IGraphBuilder **ppGraphBuilder);
|
||||||
|
|
||||||
|
HRESULT GetFilter(
|
||||||
|
[out] IMediaStreamFilter **ppFilter);
|
||||||
|
|
||||||
|
HRESULT AddMediaStream(
|
||||||
|
[in] IUnknown *pStreamObject,
|
||||||
|
[in] const MSPID *PurposeId,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out] IMediaStream **ppNewStream);
|
||||||
|
|
||||||
|
HRESULT OpenFile(
|
||||||
|
[in] LPCWSTR pszFileName,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT OpenMoniker(
|
||||||
|
[in] IBindCtx *pCtx,
|
||||||
|
[in] IMoniker *pMoniker,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT Render(
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// IAMMediaStream interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAMMediaStream : IMediaStream
|
||||||
|
{
|
||||||
|
HRESULT Initialize(
|
||||||
|
[in] IUnknown *pSourceObject,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] REFMSPID PurposeId,
|
||||||
|
[in] const STREAM_TYPE StreamType);
|
||||||
|
|
||||||
|
HRESULT SetState(
|
||||||
|
[in] FILTER_STATE State);
|
||||||
|
|
||||||
|
HRESULT JoinAMMultiMediaStream(
|
||||||
|
[in] IAMMultiMediaStream *pAMMultiMediaStream);
|
||||||
|
|
||||||
|
HRESULT JoinFilter(
|
||||||
|
[in] IMediaStreamFilter *pMediaStreamFilter);
|
||||||
|
|
||||||
|
HRESULT JoinFilterGraph(
|
||||||
|
[in] IFilterGraph *pFilterGraph);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// IMediaStreamFilter interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMediaStreamFilter : IBaseFilter
|
||||||
|
{
|
||||||
|
HRESULT AddMediaStream(
|
||||||
|
[in] IAMMediaStream *pAMMediaStream);
|
||||||
|
|
||||||
|
HRESULT GetMediaStream(
|
||||||
|
[in] REFMSPID idPurpose,
|
||||||
|
[out] IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT EnumMediaStreams(
|
||||||
|
[in] long Index,
|
||||||
|
[out] IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT SupportSeeking(
|
||||||
|
[in] BOOL bRenderer);
|
||||||
|
|
||||||
|
HRESULT ReferenceTimeToStreamTime(
|
||||||
|
[in] [out] REFERENCE_TIME *pTime);
|
||||||
|
|
||||||
|
HRESULT GetCurrentStreamTime(
|
||||||
|
[out] REFERENCE_TIME *pCurrentStreamTime);
|
||||||
|
|
||||||
|
HRESULT WaitUntil(
|
||||||
|
[in] REFERENCE_TIME WaitStreamTime);
|
||||||
|
|
||||||
|
HRESULT Flush(
|
||||||
|
[in] BOOL bCancelEOS);
|
||||||
|
|
||||||
|
HRESULT EndOfStream();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IDirectDrawMediaSampleAllocator : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IDirectDrawMediaSample : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT GetSurfaceAndReleaseLock(
|
||||||
|
[out] IDirectDrawSurface **ppDirectDrawSurface,
|
||||||
|
[out] RECT * pRect);
|
||||||
|
HRESULT LockMediaSamplePointer(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
|
||||||
|
interface IAMMediaTypeStream : IMediaStream
|
||||||
|
{
|
||||||
|
HRESULT GetFormat(
|
||||||
|
[out] AM_MEDIA_TYPE * pMediaType,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT SetFormat(
|
||||||
|
[in] AM_MEDIA_TYPE * pMediaType,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT CreateSample(
|
||||||
|
[in] long lSampleSize,
|
||||||
|
[in] BYTE * pbBuffer,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] IUnknown *pUnkOuter,
|
||||||
|
[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
|
||||||
|
|
||||||
|
HRESULT GetStreamAllocatorRequirements(
|
||||||
|
[out] ALLOCATOR_PROPERTIES *pProps);
|
||||||
|
|
||||||
|
HRESULT SetStreamAllocatorRequirements(
|
||||||
|
[in] ALLOCATOR_PROPERTIES *pProps);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAMMediaTypeSample : IStreamSample
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Unique methods for IAMMediaTypeSample
|
||||||
|
//
|
||||||
|
HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Mirror of IMediaSample
|
||||||
|
//
|
||||||
|
HRESULT GetPointer([out] BYTE ** ppBuffer);
|
||||||
|
long GetSize(void);
|
||||||
|
HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd);
|
||||||
|
HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd);
|
||||||
|
HRESULT IsSyncPoint(void);
|
||||||
|
HRESULT SetSyncPoint(BOOL bIsSyncPoint);
|
||||||
|
HRESULT IsPreroll(void);
|
||||||
|
HRESULT SetPreroll(BOOL bIsPreroll);
|
||||||
|
long GetActualDataLength(void);
|
||||||
|
HRESULT SetActualDataLength(long);
|
||||||
|
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
|
||||||
|
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
|
||||||
|
HRESULT IsDiscontinuity(void);
|
||||||
|
HRESULT SetDiscontinuity(BOOL bDiscontinuity);
|
||||||
|
HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd);
|
||||||
|
HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("DirectShowStream 1.0 Type Library")
|
||||||
|
]
|
||||||
|
|
||||||
|
library DirectShowStreamLib
|
||||||
|
{
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
[
|
||||||
|
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45),
|
||||||
|
helpstring("DirectShow Multi Media Stream")
|
||||||
|
]
|
||||||
|
coclass AMMultiMediaStream
|
||||||
|
{
|
||||||
|
[default] dispinterface IDirectShowStream;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The MIDL compiler wants to produce a CLSID for everything defined in
|
||||||
|
// our type library, but it also wants to generate huge proxy code,
|
||||||
|
// so we use DEFINE_GUID for all other classes. It has another interesting
|
||||||
|
// bug in that it defines CLSID_AMMultiMediaStream within a #ifdef __cplusplus
|
||||||
|
// block, so we need to define it outside of that scope.
|
||||||
|
//
|
||||||
|
|
||||||
|
cpp_quote("#ifndef __cplusplus")
|
||||||
|
cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;")
|
||||||
|
cpp_quote("#endif")
|
||||||
|
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, /* 49c47ce4-9ba4-11d0-8212-00c04fc32c45 */")
|
||||||
|
cpp_quote("0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, /* 8496e040-af4c-11d0-8212-00c04fc32c45 */")
|
||||||
|
cpp_quote("0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_AMAudioData, /* f2468580-af8a-11d0-8212-00c04fc32c45 */")
|
||||||
|
cpp_quote("0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, /* CF0F2F7C-F7BF-11d0-900D-00C04FD9189D */")
|
||||||
|
cpp_quote("0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
|
||||||
106
third_party/dx9_sdk/include/DShowIDL/austream.idl
vendored
Normal file
106
third_party/dx9_sdk/include/DShowIDL/austream.idl
vendored
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AuStream.idl
|
||||||
|
//
|
||||||
|
// Desc: Used by MIDL tool to generate austream.h
|
||||||
|
//
|
||||||
|
// Copyright (c) 1998-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "mmstream.idl";
|
||||||
|
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
|
||||||
|
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("#if 0")
|
||||||
|
typedef struct tWAVEFORMATEX WAVEFORMATEX;
|
||||||
|
cpp_quote ("#endif")
|
||||||
|
|
||||||
|
interface IAudioMediaStream;
|
||||||
|
interface IAudioStreamSample;
|
||||||
|
interface IMemoryData;
|
||||||
|
interface IAudioData;
|
||||||
|
|
||||||
|
// IAudioMediaStream
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAudioMediaStream : IMediaStream
|
||||||
|
{
|
||||||
|
|
||||||
|
HRESULT GetFormat(
|
||||||
|
[out] WAVEFORMATEX *pWaveFormatCurrent
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT SetFormat(
|
||||||
|
[in] const WAVEFORMATEX *lpWaveFormat);
|
||||||
|
|
||||||
|
HRESULT CreateSample(
|
||||||
|
[in] IAudioData *pAudioData,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out] IAudioStreamSample **ppSample
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAudioStreamSample : IStreamSample
|
||||||
|
{
|
||||||
|
HRESULT GetAudioData(
|
||||||
|
[out] IAudioData **ppAudio
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(327fc560-af60-11d0-8212-00c04fc32c45),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMemoryData : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT SetBuffer(
|
||||||
|
[in] DWORD cbSize,
|
||||||
|
[in] BYTE *pbData,
|
||||||
|
[in] DWORD dwFlags
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT GetInfo(
|
||||||
|
[out] DWORD *pdwLength,
|
||||||
|
[out] BYTE **ppbData,
|
||||||
|
[out] DWORD *pcbActualData
|
||||||
|
);
|
||||||
|
HRESULT SetActual(
|
||||||
|
[in] DWORD cbDataValid
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IAudioData : IMemoryData
|
||||||
|
{
|
||||||
|
HRESULT GetFormat(
|
||||||
|
[out] WAVEFORMATEX *pWaveFormatCurrent
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT SetFormat(
|
||||||
|
[in] const WAVEFORMATEX *lpWaveFormat
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
1284
third_party/dx9_sdk/include/DShowIDL/axcore.idl
vendored
Normal file
1284
third_party/dx9_sdk/include/DShowIDL/axcore.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5105
third_party/dx9_sdk/include/DShowIDL/axextend.idl
vendored
Normal file
5105
third_party/dx9_sdk/include/DShowIDL/axextend.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1013
third_party/dx9_sdk/include/DShowIDL/bdaiface.idl
vendored
Normal file
1013
third_party/dx9_sdk/include/DShowIDL/bdaiface.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
912
third_party/dx9_sdk/include/DShowIDL/control.odl
vendored
Normal file
912
third_party/dx9_sdk/include/DShowIDL/control.odl
vendored
Normal file
@ -0,0 +1,912 @@
|
|||||||
|
//==========================================================================;
|
||||||
|
//
|
||||||
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||||
|
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
|
||||||
|
// PURPOSE.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992 - 2002 Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
//--------------------------------------------------------------------------;
|
||||||
|
|
||||||
|
// Neutral/English language type library for basic Quartz control interfaces
|
||||||
|
|
||||||
|
// the quartz type library defines the basic control interfaces
|
||||||
|
[
|
||||||
|
uuid(56a868b0-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("ActiveMovie control type library"),
|
||||||
|
lcid(0x0000),
|
||||||
|
version(1.0)
|
||||||
|
]
|
||||||
|
library QuartzTypeLib
|
||||||
|
{
|
||||||
|
importlib("STDOLE2.TLB");
|
||||||
|
|
||||||
|
// types are restricted to be automation-compatible
|
||||||
|
typedef double REFTIME; // ReferenceTime
|
||||||
|
typedef LONG_PTR OAEVENT; // should be a HANDLE
|
||||||
|
typedef LONG_PTR OAHWND; // should be an hwnd
|
||||||
|
|
||||||
|
// from strmif.idl
|
||||||
|
typedef long OAFilterState;
|
||||||
|
|
||||||
|
// collection interface - represents a collection of IUnknowns
|
||||||
|
// this is used below to collect filter-info objects, registry-filters
|
||||||
|
// pin-info objects and wrapped media type objects
|
||||||
|
[
|
||||||
|
uuid(56a868b9-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("Collection"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IAMCollection : IDispatch
|
||||||
|
{
|
||||||
|
// number of items in collection
|
||||||
|
[propget]
|
||||||
|
HRESULT Count(
|
||||||
|
[out, retval] LONG* plCount);
|
||||||
|
|
||||||
|
// return IUnknown for contained item by index
|
||||||
|
HRESULT Item(
|
||||||
|
[in] long lItem,
|
||||||
|
[out] IUnknown** ppUnk);
|
||||||
|
|
||||||
|
// return IUnknown for an object that implements IEnumVARIANT on
|
||||||
|
// this collection
|
||||||
|
[propget]
|
||||||
|
HRESULT _NewEnum(
|
||||||
|
[out, retval] IUnknown** ppUnk);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// core control providing state control
|
||||||
|
[
|
||||||
|
uuid(56a868b1-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IMediaControl interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IMediaControl : IDispatch
|
||||||
|
{
|
||||||
|
// methods
|
||||||
|
HRESULT Run();
|
||||||
|
HRESULT Pause();
|
||||||
|
HRESULT Stop();
|
||||||
|
|
||||||
|
//returns the state. same semantics as IMediaFilter::GetState
|
||||||
|
|
||||||
|
HRESULT GetState(
|
||||||
|
[in] LONG msTimeout,
|
||||||
|
[out] OAFilterState* pfs);
|
||||||
|
|
||||||
|
// adds and connects filters needed to play the specified file
|
||||||
|
// (same as IFilterGraph::RenderFile)
|
||||||
|
HRESULT RenderFile(
|
||||||
|
[in] BSTR strFilename);
|
||||||
|
|
||||||
|
// adds to the graph the source filter that can read this file,
|
||||||
|
// and returns an IFilterInfo object for it (actually returns
|
||||||
|
// an IDispatch for the IFilterInfo object).
|
||||||
|
HRESULT AddSourceFilter(
|
||||||
|
[in] BSTR strFilename,
|
||||||
|
[out] IDispatch**ppUnk);
|
||||||
|
|
||||||
|
// get a collection of IFilterInfo objects representing the
|
||||||
|
// filters in the graph (returns IDispatch for an object
|
||||||
|
// that supports IAMCollection
|
||||||
|
[propget]
|
||||||
|
HRESULT FilterCollection(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
// get a collection of IRegFilter objects representing the
|
||||||
|
// filters available in the registry
|
||||||
|
[propget]
|
||||||
|
HRESULT RegFilterCollection(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
HRESULT StopWhenReady();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// provides an event notification scheme passing events
|
||||||
|
// asynchronously to applications. See also IMediaEventSink in
|
||||||
|
// strmif.idl and sdk\h\evcodes.h.
|
||||||
|
//
|
||||||
|
// this interface behaves as if events are held on a queue. A call to
|
||||||
|
// IMediaEventSink::Notify will place an event on this queue. Calling
|
||||||
|
// GetEvent removes the first item off the queue and returns it. Items are
|
||||||
|
// returned in the order they were queued (there is no priority scheme).
|
||||||
|
// The event handle is in a signalled state iff the queue is non-empty.
|
||||||
|
//
|
||||||
|
// Apps that issue multiple Run calls without always picking up the
|
||||||
|
// completion events are advised to call GetEvent or WaitForCompletion
|
||||||
|
// (with a 0 timeout) repeatedly to remove all events from the queue
|
||||||
|
// when in stopped or paused state before each Run method.
|
||||||
|
//
|
||||||
|
// Parameters to events are actually LONG, IUnknown* or BSTR. You need to
|
||||||
|
// look at evcode.h for details of parameters to a specific event code.
|
||||||
|
// In order to correctly free resources, always call FreeEventParams
|
||||||
|
// after receiving an event.
|
||||||
|
//
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(56a868b6-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IMediaEvent interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IMediaEvent : IDispatch
|
||||||
|
{
|
||||||
|
// get back the event handle. This is manual-reset
|
||||||
|
// (don't - it's reset by the event mechanism) and remains set
|
||||||
|
// when events are queued, and reset when the queue is empty.
|
||||||
|
HRESULT GetEventHandle(
|
||||||
|
[out] OAEVENT * hEvent);
|
||||||
|
|
||||||
|
// remove the next event notification from the head of the queue and
|
||||||
|
// return it. Waits up to msTimeout millisecs if there are no events.
|
||||||
|
// if a timeout occurs without any events, this method will return
|
||||||
|
// E_ABORT, and the value of the event code and other parameters
|
||||||
|
// is undefined.
|
||||||
|
//
|
||||||
|
// If this call returns successfully the caller MUST call
|
||||||
|
// FreeEventParams(lEventCode, lParam1, lParam2) to release
|
||||||
|
// resources held inside the event arguments
|
||||||
|
//
|
||||||
|
HRESULT GetEvent(
|
||||||
|
[out] long * lEventCode,
|
||||||
|
[out] LONG_PTR * lParam1,
|
||||||
|
[out] LONG_PTR * lParam2,
|
||||||
|
[in] long msTimeout
|
||||||
|
);
|
||||||
|
|
||||||
|
// Calls GetEvent repeatedly discarding events until it finds a
|
||||||
|
// completion event (EC_COMPLETE, EC_ERRORABORT, or EC_USERABORT).
|
||||||
|
// The completion event is removed from the queue and returned
|
||||||
|
// in pEvCode. Note that the object is still in running mode until
|
||||||
|
// a Pause or Stop call is made.
|
||||||
|
// If the timeout occurs, *pEvCode will be 0 and E_ABORT will be
|
||||||
|
// returned.
|
||||||
|
HRESULT WaitForCompletion(
|
||||||
|
[in] long msTimeout,
|
||||||
|
[out] long * pEvCode);
|
||||||
|
|
||||||
|
// cancels any system handling of the specified event code
|
||||||
|
// and ensures that the events are passed straight to the application
|
||||||
|
// (via GetEvent) and not handled. A good example of this is
|
||||||
|
// EC_REPAINT: default handling for this ensures the painting of the
|
||||||
|
// window and does not get posted to the app.
|
||||||
|
HRESULT CancelDefaultHandling(
|
||||||
|
[in] long lEvCode);
|
||||||
|
|
||||||
|
// restore the normal system default handling that may have been
|
||||||
|
// cancelled by CancelDefaultHandling().
|
||||||
|
HRESULT RestoreDefaultHandling( [in] long lEvCode);
|
||||||
|
|
||||||
|
// Free any resources associated with the parameters to an event.
|
||||||
|
// Event parameters may be LONGs, IUnknown* or BSTR. No action
|
||||||
|
// is taken with LONGs. IUnknown are passed addrefed and need a
|
||||||
|
// Release call. BSTR are allocated by the task allocator and will be
|
||||||
|
// freed by calling the task allocator.
|
||||||
|
HRESULT FreeEventParams(
|
||||||
|
[in] long lEvCode,
|
||||||
|
[in] LONG_PTR lParam1,
|
||||||
|
[in] LONG_PTR lParam2
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(56a868c0-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IMediaEventEx interface"),
|
||||||
|
odl
|
||||||
|
]
|
||||||
|
interface IMediaEventEx : IMediaEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
// Register a window to send messages to when events occur
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// hwnd - handle of window to notify -
|
||||||
|
// pass NULL to stop notification
|
||||||
|
// lMsg - Message id to pass messages with
|
||||||
|
// lInstanceData - will come back in lParam
|
||||||
|
//
|
||||||
|
// The event information must still be retrived by a call
|
||||||
|
// to GetEvent when the window message is received.
|
||||||
|
//
|
||||||
|
// Multiple events may be notified with one window message.
|
||||||
|
//
|
||||||
|
HRESULT SetNotifyWindow(
|
||||||
|
[in] OAHWND hwnd,
|
||||||
|
[in] long lMsg,
|
||||||
|
[in] LONG_PTR lInstanceData
|
||||||
|
);
|
||||||
|
|
||||||
|
// Turn events notification on or off
|
||||||
|
// lNoNotify = 0x00 event notification is ON
|
||||||
|
// lNoNotify = 0x01 event notification is OFF. The
|
||||||
|
// handle returned by GetEventHandle will be signalled at
|
||||||
|
// end of stream
|
||||||
|
HRESULT SetNotifyFlags(
|
||||||
|
[in] long lNoNotifyFlags
|
||||||
|
);
|
||||||
|
HRESULT GetNotifyFlags(
|
||||||
|
[out] long *lplNoNotifyFlags
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// seek/cueing for positional media
|
||||||
|
[
|
||||||
|
uuid(56a868b2-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IMediaPosition interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IMediaPosition : IDispatch
|
||||||
|
{
|
||||||
|
// properties
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT Duration(
|
||||||
|
[out, retval] REFTIME* plength);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT CurrentPosition(
|
||||||
|
[in] REFTIME llTime);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT CurrentPosition(
|
||||||
|
[out, retval] REFTIME* pllTime);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT StopTime(
|
||||||
|
[out, retval] REFTIME* pllTime);
|
||||||
|
[propput]
|
||||||
|
HRESULT StopTime(
|
||||||
|
[in] REFTIME llTime);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT PrerollTime(
|
||||||
|
[out, retval] REFTIME* pllTime);
|
||||||
|
[propput]
|
||||||
|
HRESULT PrerollTime(
|
||||||
|
[in] REFTIME llTime);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Rate(
|
||||||
|
[in] double dRate);
|
||||||
|
[propget]
|
||||||
|
HRESULT Rate(
|
||||||
|
[out, retval] double * pdRate);
|
||||||
|
|
||||||
|
HRESULT CanSeekForward([out, retval] LONG *pCanSeekForward);
|
||||||
|
HRESULT CanSeekBackward([out, retval] LONG *pCanSeekBackward);
|
||||||
|
}
|
||||||
|
|
||||||
|
// basic audio-related functionality
|
||||||
|
[
|
||||||
|
uuid(56a868b3-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IBasicAudio interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IBasicAudio : IDispatch
|
||||||
|
{
|
||||||
|
// properties
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Volume(
|
||||||
|
[in] long lVolume);
|
||||||
|
[propget]
|
||||||
|
HRESULT Volume(
|
||||||
|
[out, retval] long * plVolume);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Balance(
|
||||||
|
[in] long lBalance);
|
||||||
|
[propget]
|
||||||
|
HRESULT Balance(
|
||||||
|
[out, retval] long * plBalance);
|
||||||
|
}
|
||||||
|
|
||||||
|
// basic window-related functionality
|
||||||
|
[
|
||||||
|
uuid(56a868b4-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IVideoWindow interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IVideoWindow : IDispatch
|
||||||
|
{
|
||||||
|
// properties
|
||||||
|
|
||||||
|
// set and get the window title caption
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Caption([in] BSTR strCaption);
|
||||||
|
[propget]
|
||||||
|
HRESULT Caption([out, retval] BSTR *strCaption);
|
||||||
|
|
||||||
|
// change the window styles (as per Win32)
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT WindowStyle([in] long WindowStyle);
|
||||||
|
[propget]
|
||||||
|
HRESULT WindowStyle([out, retval] long *WindowStyle);
|
||||||
|
|
||||||
|
// change the extended window styles (as per Win32)
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT WindowStyleEx([in] long WindowStyleEx);
|
||||||
|
[propget]
|
||||||
|
HRESULT WindowStyleEx([out, retval] long *WindowStyleEx);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT AutoShow([in] long AutoShow);
|
||||||
|
[propget]
|
||||||
|
HRESULT AutoShow([out, retval] long *AutoShow);
|
||||||
|
|
||||||
|
// change the window state (as per Win32)
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT WindowState([in] long WindowState);
|
||||||
|
[propget]
|
||||||
|
HRESULT WindowState([out, retval] long *WindowState);
|
||||||
|
|
||||||
|
// realise the palette in the background
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT BackgroundPalette([in] long BackgroundPalette);
|
||||||
|
[propget]
|
||||||
|
HRESULT BackgroundPalette([out, retval] long *pBackgroundPalette);
|
||||||
|
|
||||||
|
// affect the visibility of the window
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Visible([in] long Visible);
|
||||||
|
[propget]
|
||||||
|
HRESULT Visible([out, retval] long *pVisible);
|
||||||
|
|
||||||
|
// change the desktop position of the video window
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Left([in] long Left);
|
||||||
|
[propget]
|
||||||
|
HRESULT Left([out, retval] long *pLeft);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Width([in] long Width);
|
||||||
|
[propget]
|
||||||
|
HRESULT Width([out, retval] long *pWidth);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Top([in] long Top);
|
||||||
|
[propget]
|
||||||
|
HRESULT Top([out, retval] long *pTop);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Height([in] long Height);
|
||||||
|
[propget]
|
||||||
|
HRESULT Height([out, retval] long *pHeight);
|
||||||
|
|
||||||
|
// change the owning window of the video
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Owner([in] OAHWND Owner);
|
||||||
|
[propget]
|
||||||
|
HRESULT Owner([out, retval] OAHWND *Owner);
|
||||||
|
|
||||||
|
// change the window to receive posted messages
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT MessageDrain([in] OAHWND Drain);
|
||||||
|
[propget]
|
||||||
|
HRESULT MessageDrain([out, retval] OAHWND *Drain);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT BorderColor([out, retval] long *Color);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT BorderColor([in] long Color);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT FullScreenMode([out, retval] long *FullScreenMode);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT FullScreenMode([in] long FullScreenMode);
|
||||||
|
|
||||||
|
// methods
|
||||||
|
|
||||||
|
// ask the renderer to grab it's window the foreground
|
||||||
|
// and optionally also give the window the input focus
|
||||||
|
HRESULT SetWindowForeground([in] long Focus);
|
||||||
|
|
||||||
|
// owners should pass WM_PALETTECHANGED and WM_SYSCOLORCHANGE
|
||||||
|
// messages on the filter graph so they can be distributed
|
||||||
|
// otherwise child renderers never see these messages go by
|
||||||
|
|
||||||
|
HRESULT NotifyOwnerMessage([in] OAHWND hwnd,
|
||||||
|
[in] long uMsg,
|
||||||
|
[in] LONG_PTR wParam,
|
||||||
|
[in] LONG_PTR lParam
|
||||||
|
);
|
||||||
|
|
||||||
|
// get and set the window position on the desktop
|
||||||
|
|
||||||
|
HRESULT SetWindowPosition([in] long Left,
|
||||||
|
[in] long Top,
|
||||||
|
[in] long Width,
|
||||||
|
[in] long Height);
|
||||||
|
|
||||||
|
HRESULT GetWindowPosition([out] long *pLeft,
|
||||||
|
[out] long *pTop,
|
||||||
|
[out] long *pWidth,
|
||||||
|
[out] long *pHeight);
|
||||||
|
|
||||||
|
// get the ideal sizes for the video image playback (client) area
|
||||||
|
|
||||||
|
HRESULT GetMinIdealImageSize([out] long *pWidth,[out] long *pHeight);
|
||||||
|
HRESULT GetMaxIdealImageSize([out] long *pWidth,[out] long *pHeight);
|
||||||
|
|
||||||
|
// get the restored window size when we're maximised or iconic
|
||||||
|
|
||||||
|
HRESULT GetRestorePosition([out] long *pLeft,
|
||||||
|
[out] long *pTop,
|
||||||
|
[out] long *pWidth,
|
||||||
|
[out] long *pHeight);
|
||||||
|
|
||||||
|
// show and hide cursors useful when fullscreen
|
||||||
|
HRESULT HideCursor([in] long HideCursor);
|
||||||
|
HRESULT IsCursorHidden([out] long *CursorHidden);
|
||||||
|
}
|
||||||
|
|
||||||
|
// basic video-related functionality
|
||||||
|
[
|
||||||
|
uuid(56a868b5-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IBasicVideo interface"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IBasicVideo : IDispatch
|
||||||
|
{
|
||||||
|
// properties
|
||||||
|
|
||||||
|
// Video specific (approximate) bit and frame rates
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT AvgTimePerFrame([out, retval] REFTIME *pAvgTimePerFrame);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT BitRate([out, retval] long *pBitRate);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT BitErrorRate([out, retval] long *pBitErrorRate);
|
||||||
|
|
||||||
|
// read the native video size
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT VideoWidth([out, retval] long *pVideoWidth);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT VideoHeight([out, retval] long *pVideoHeight);
|
||||||
|
|
||||||
|
// change the source rectangle for the video
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT SourceLeft([in] long SourceLeft);
|
||||||
|
[propget]
|
||||||
|
HRESULT SourceLeft([out, retval] long *pSourceLeft);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT SourceWidth([in] long SourceWidth);
|
||||||
|
[propget]
|
||||||
|
HRESULT SourceWidth([out, retval] long *pSourceWidth);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT SourceTop([in] long SourceTop);
|
||||||
|
[propget]
|
||||||
|
HRESULT SourceTop([out, retval] long *pSourceTop);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT SourceHeight([in] long SourceHeight);
|
||||||
|
[propget]
|
||||||
|
HRESULT SourceHeight([out, retval] long *pSourceHeight);
|
||||||
|
|
||||||
|
// change the destination rectangle for the video
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT DestinationLeft([in] long DestinationLeft);
|
||||||
|
[propget]
|
||||||
|
HRESULT DestinationLeft([out, retval] long *pDestinationLeft);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT DestinationWidth([in] long DestinationWidth);
|
||||||
|
[propget]
|
||||||
|
HRESULT DestinationWidth([out, retval] long *pDestinationWidth);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT DestinationTop([in] long DestinationTop);
|
||||||
|
[propget]
|
||||||
|
HRESULT DestinationTop([out, retval] long *pDestinationTop);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT DestinationHeight([in] long DestinationHeight);
|
||||||
|
[propget]
|
||||||
|
HRESULT DestinationHeight([out, retval] long *pDestinationHeight);
|
||||||
|
|
||||||
|
// methods
|
||||||
|
|
||||||
|
// get and set the source rectangle position
|
||||||
|
|
||||||
|
HRESULT SetSourcePosition([in] long Left,
|
||||||
|
[in] long Top,
|
||||||
|
[in] long Width,
|
||||||
|
[in] long Height);
|
||||||
|
|
||||||
|
HRESULT GetSourcePosition([out] long *pLeft,
|
||||||
|
[out] long *pTop,
|
||||||
|
[out] long *pWidth,
|
||||||
|
[out] long *pHeight);
|
||||||
|
|
||||||
|
HRESULT SetDefaultSourcePosition();
|
||||||
|
|
||||||
|
// get and set the destination rectangle position
|
||||||
|
|
||||||
|
HRESULT SetDestinationPosition([in] long Left,
|
||||||
|
[in] long Top,
|
||||||
|
[in] long Width,
|
||||||
|
[in] long Height);
|
||||||
|
|
||||||
|
HRESULT GetDestinationPosition([out] long *pLeft,
|
||||||
|
[out] long *pTop,
|
||||||
|
[out] long *pWidth,
|
||||||
|
[out] long *pHeight);
|
||||||
|
|
||||||
|
HRESULT SetDefaultDestinationPosition();
|
||||||
|
|
||||||
|
// get the native video dimensions
|
||||||
|
|
||||||
|
HRESULT GetVideoSize([out] long *pWidth,[out] long *pHeight);
|
||||||
|
|
||||||
|
// get all or some of the current video palette
|
||||||
|
|
||||||
|
HRESULT GetVideoPaletteEntries([in] long StartIndex,
|
||||||
|
[in] long Entries,
|
||||||
|
[out] long *pRetrieved,
|
||||||
|
[out] long *pPalette);
|
||||||
|
|
||||||
|
HRESULT GetCurrentImage([in,out] long *pBufferSize,
|
||||||
|
[out] long *pDIBImage);
|
||||||
|
|
||||||
|
// are we using a default source or destination
|
||||||
|
|
||||||
|
HRESULT IsUsingDefaultSource();
|
||||||
|
HRESULT IsUsingDefaultDestination();
|
||||||
|
}
|
||||||
|
|
||||||
|
// interface extension to IBasicVideo to return preferred aspect ratio
|
||||||
|
[
|
||||||
|
uuid(329bb360-f6ea-11d1-9038-00a0c9697298),
|
||||||
|
helpstring("IBasicVideo2"),
|
||||||
|
odl
|
||||||
|
]
|
||||||
|
interface IBasicVideo2 : IBasicVideo
|
||||||
|
{
|
||||||
|
// This may not match the native video dimensions because of
|
||||||
|
// non-square pixels or whatever.
|
||||||
|
// The video may not always be displayed in the preferred
|
||||||
|
// aspect ratio for performance reasons
|
||||||
|
|
||||||
|
HRESULT GetPreferredAspectRatio([out] long *plAspectX,
|
||||||
|
[out] long *plAspectY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// interface returned to a command that has been queued via IQueueCommand
|
||||||
|
[
|
||||||
|
uuid(56a868b8-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IDeferredCommand"),
|
||||||
|
odl
|
||||||
|
]
|
||||||
|
interface IDeferredCommand : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Cancel();
|
||||||
|
HRESULT Confidence(
|
||||||
|
[out] LONG* pConfidence);
|
||||||
|
HRESULT Postpone(
|
||||||
|
[in] REFTIME newtime);
|
||||||
|
// return value is S_OK if completed. phrResult is set to the
|
||||||
|
// result of the deferred command.
|
||||||
|
HRESULT GetHResult(
|
||||||
|
[out] HRESULT* phrResult);
|
||||||
|
};
|
||||||
|
|
||||||
|
// queue an IDispatch-based command for execution at a specified time
|
||||||
|
[
|
||||||
|
uuid(56a868b7-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("IQueueCommand"),
|
||||||
|
odl
|
||||||
|
]
|
||||||
|
interface IQueueCommand : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT InvokeAtStreamTime(
|
||||||
|
[out] IDeferredCommand** pCmd,
|
||||||
|
[in] REFTIME time, // at this streamtime
|
||||||
|
[in] GUID* iid, // call this interface
|
||||||
|
[in] long dispidMethod, // ..and this method
|
||||||
|
[in] short wFlags, // method/property
|
||||||
|
[in] long cArgs, // count of args
|
||||||
|
[in] VARIANT* pDispParams, // actual args
|
||||||
|
[in, out] VARIANT* pvarResult, // return value
|
||||||
|
[out] short* puArgErr // which arg in error
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT InvokeAtPresentationTime(
|
||||||
|
[out] IDeferredCommand** pCmd,
|
||||||
|
[in] REFTIME time, // at this presentation time
|
||||||
|
[in] GUID* iid, // call this interface
|
||||||
|
[in] long dispidMethod, // ..and this method
|
||||||
|
[in] short wFlags, // method/property
|
||||||
|
[in] long cArgs, // count of args
|
||||||
|
[in] VARIANT* pDispParams, // actual args
|
||||||
|
[in, out] VARIANT* pvarResult, // return value
|
||||||
|
[out] short* puArgErr // which arg in error
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// the filgraph object (CLSID_Filgraph)
|
||||||
|
[
|
||||||
|
uuid(e436ebb3-524f-11ce-9f53-0020af0ba770),
|
||||||
|
helpstring("Filtergraph type info")
|
||||||
|
]
|
||||||
|
coclass FilgraphManager
|
||||||
|
{
|
||||||
|
[default] interface IMediaControl;
|
||||||
|
interface IMediaEvent;
|
||||||
|
interface IMediaPosition;
|
||||||
|
interface IBasicAudio;
|
||||||
|
interface IBasicVideo;
|
||||||
|
interface IVideoWindow;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// represents a filter (you can't QI for IBaseFilter from this object)
|
||||||
|
[
|
||||||
|
uuid(56a868ba-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("FilterInfo"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IFilterInfo : IDispatch
|
||||||
|
{
|
||||||
|
// find a pin given an id - returns an object supporting
|
||||||
|
// IPinInfo
|
||||||
|
HRESULT FindPin(
|
||||||
|
[in] BSTR strPinID,
|
||||||
|
[out] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
// filter name
|
||||||
|
[propget]
|
||||||
|
HRESULT Name(
|
||||||
|
[out, retval] BSTR* strName);
|
||||||
|
|
||||||
|
// Vendor info string
|
||||||
|
[propget]
|
||||||
|
HRESULT VendorInfo(
|
||||||
|
[out, retval] BSTR* strVendorInfo);
|
||||||
|
|
||||||
|
// returns the actual filter object (supports IBaseFilter)
|
||||||
|
[propget]
|
||||||
|
HRESULT Filter(
|
||||||
|
[out, retval] IUnknown **ppUnk);
|
||||||
|
|
||||||
|
// returns an IAMCollection object containing the PinInfo objects
|
||||||
|
// for this filter
|
||||||
|
[propget]
|
||||||
|
HRESULT Pins(
|
||||||
|
[out, retval] IDispatch ** ppUnk);
|
||||||
|
|
||||||
|
// returns -1 if true or 0 if false (OATRUE/FALSE)
|
||||||
|
[propget]
|
||||||
|
HRESULT IsFileSource(
|
||||||
|
[out, retval] LONG * pbIsSource);
|
||||||
|
|
||||||
|
[propget]
|
||||||
|
HRESULT Filename(
|
||||||
|
[out, retval] BSTR* pstrFilename);
|
||||||
|
|
||||||
|
[propput]
|
||||||
|
HRESULT Filename(
|
||||||
|
[in] BSTR strFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(56a868bb-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("Registry Filter Info"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IRegFilterInfo : IDispatch
|
||||||
|
{
|
||||||
|
// get the name of this filter
|
||||||
|
[propget]
|
||||||
|
HRESULT Name(
|
||||||
|
[out, retval] BSTR* strName);
|
||||||
|
|
||||||
|
|
||||||
|
// make an instance of this filter, add it to the graph and
|
||||||
|
// return an IFilterInfo for it.
|
||||||
|
HRESULT Filter(
|
||||||
|
[out] IDispatch** ppUnk);
|
||||||
|
}
|
||||||
|
|
||||||
|
// wrapper for a media type
|
||||||
|
[
|
||||||
|
uuid(56a868bc-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("Media Type"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IMediaTypeInfo : IDispatch
|
||||||
|
{
|
||||||
|
// get the major type GUID as a string
|
||||||
|
[propget]
|
||||||
|
HRESULT Type(
|
||||||
|
[out, retval] BSTR* strType);
|
||||||
|
|
||||||
|
// get the subtype GUID as a string
|
||||||
|
[propget]
|
||||||
|
HRESULT Subtype(
|
||||||
|
[out, retval] BSTR* strType);
|
||||||
|
}
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(56a868bd-0ad4-11ce-b03a-0020af0ba770),
|
||||||
|
helpstring("Pin Info"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IPinInfo : IDispatch
|
||||||
|
{
|
||||||
|
// get the pin object (IUnknown for an object that
|
||||||
|
// supports IPin
|
||||||
|
[propget]
|
||||||
|
HRESULT Pin(
|
||||||
|
[out, retval] IUnknown** ppUnk);
|
||||||
|
|
||||||
|
// get the PinInfo object for the pin we are connected to
|
||||||
|
[propget]
|
||||||
|
HRESULT ConnectedTo(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
// get the media type on this connection - returns an
|
||||||
|
// object supporting IMediaTypeInfo
|
||||||
|
[propget]
|
||||||
|
HRESULT ConnectionMediaType(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
|
||||||
|
// return the FilterInfo object for the filter this pin
|
||||||
|
// is part of
|
||||||
|
[propget]
|
||||||
|
HRESULT FilterInfo(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
// get the name of this pin
|
||||||
|
[propget]
|
||||||
|
HRESULT Name(
|
||||||
|
[out, retval] BSTR* ppUnk);
|
||||||
|
|
||||||
|
// pin direction
|
||||||
|
[propget]
|
||||||
|
HRESULT Direction(
|
||||||
|
[out, retval] LONG *ppDirection);
|
||||||
|
|
||||||
|
// PinID - can pass to IFilterInfo::FindPin
|
||||||
|
[propget]
|
||||||
|
HRESULT PinID(
|
||||||
|
[out, retval] BSTR* strPinID);
|
||||||
|
|
||||||
|
// collection of preferred media types (IAMCollection)
|
||||||
|
[propget]
|
||||||
|
HRESULT MediaTypes(
|
||||||
|
[out, retval] IDispatch** ppUnk);
|
||||||
|
|
||||||
|
// Connect to the following pin, using other transform
|
||||||
|
// filters as necessary. pPin can support either IPin or IPinInfo
|
||||||
|
HRESULT Connect(
|
||||||
|
[in] IUnknown* pPin);
|
||||||
|
|
||||||
|
// Connect directly to the following pin, not using any intermediate
|
||||||
|
// filters
|
||||||
|
HRESULT ConnectDirect(
|
||||||
|
[in] IUnknown* pPin);
|
||||||
|
|
||||||
|
// Connect directly to the following pin, using the specified
|
||||||
|
// media type only. pPin is an object that must support either
|
||||||
|
// IPin or IPinInfo, and pMediaType must support IMediaTypeInfo.
|
||||||
|
HRESULT ConnectWithType(
|
||||||
|
[in] IUnknown * pPin,
|
||||||
|
[in] IDispatch * pMediaType);
|
||||||
|
|
||||||
|
// disconnect this pin and the corresponding connected pin from
|
||||||
|
// each other. (Calls IPin::Disconnect on both pins).
|
||||||
|
HRESULT Disconnect(void);
|
||||||
|
|
||||||
|
// render this pin using any necessary transform and rendering filters
|
||||||
|
HRESULT Render(void);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// IAMStats - statistics
|
||||||
|
//
|
||||||
|
// Note that the calls using an index are likely to be much faster
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(bc9bcf80-dcd2-11d2-abf6-00a0c905f375),
|
||||||
|
helpstring("Statistics"),
|
||||||
|
odl,
|
||||||
|
oleautomation,
|
||||||
|
dual
|
||||||
|
]
|
||||||
|
interface IAMStats : IDispatch {
|
||||||
|
// Reset all stats
|
||||||
|
HRESULT Reset();
|
||||||
|
|
||||||
|
// Get number of stats collected
|
||||||
|
[propget]
|
||||||
|
HRESULT Count(
|
||||||
|
[out, retval] LONG* plCount);
|
||||||
|
|
||||||
|
// Pull out a specific value by position
|
||||||
|
HRESULT GetValueByIndex([in] long lIndex,
|
||||||
|
[out] BSTR *szName,
|
||||||
|
[out] long *lCount,
|
||||||
|
[out] double *dLast,
|
||||||
|
[out] double *dAverage,
|
||||||
|
[out] double *dStdDev,
|
||||||
|
[out] double *dMin,
|
||||||
|
[out] double *dMax);
|
||||||
|
|
||||||
|
// Pull out a specific value by name
|
||||||
|
HRESULT GetValueByName([in] BSTR szName,
|
||||||
|
[out] long *lIndex,
|
||||||
|
[out] long *lCount,
|
||||||
|
[out] double *dLast,
|
||||||
|
[out] double *dAverage,
|
||||||
|
[out] double *dStdDev,
|
||||||
|
[out] double *dMin,
|
||||||
|
[out] double *dMax);
|
||||||
|
|
||||||
|
|
||||||
|
// The calls below are for generators of statistics
|
||||||
|
|
||||||
|
// Return the index for a string - optinally create
|
||||||
|
HRESULT GetIndex([in] BSTR szName,
|
||||||
|
[in] long lCreate,
|
||||||
|
[out] long *plIndex);
|
||||||
|
|
||||||
|
// Add a new value
|
||||||
|
HRESULT AddValue([in] long lIndex,
|
||||||
|
[in] double dValue);
|
||||||
|
}
|
||||||
|
};
|
||||||
86
third_party/dx9_sdk/include/DShowIDL/ddstream.idl
vendored
Normal file
86
third_party/dx9_sdk/include/DShowIDL/ddstream.idl
vendored
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DDStream.idl
|
||||||
|
//
|
||||||
|
// Desc: Used by MIDL tool to generate ddstream.h
|
||||||
|
//
|
||||||
|
// Copyright (c) 1998-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "mmstream.idl";
|
||||||
|
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
|
||||||
|
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("#if 0")
|
||||||
|
typedef void * LPDDSURFACEDESC;
|
||||||
|
typedef struct tDDSURFACEDESC DDSURFACEDESC;
|
||||||
|
cpp_quote("#endif")
|
||||||
|
cpp_quote("#include <ddraw.h>")
|
||||||
|
|
||||||
|
enum {
|
||||||
|
DDSFF_PROGRESSIVERENDER = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
interface IDirectDraw;
|
||||||
|
interface IDirectDrawSurface;
|
||||||
|
interface IDirectDrawPalette;
|
||||||
|
|
||||||
|
interface IDirectDrawMediaStream;
|
||||||
|
interface IDirectDrawStreamSample;
|
||||||
|
|
||||||
|
// IDirectDrawMediaStream
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IDirectDrawMediaStream : IMediaStream
|
||||||
|
{
|
||||||
|
HRESULT GetFormat(
|
||||||
|
[out] DDSURFACEDESC *pDDSDCurrent,
|
||||||
|
[out] IDirectDrawPalette **ppDirectDrawPalette,
|
||||||
|
[out] DDSURFACEDESC *pDDSDDesired,
|
||||||
|
[out] DWORD *pdwFlags);
|
||||||
|
|
||||||
|
HRESULT SetFormat(
|
||||||
|
[in] const DDSURFACEDESC *pDDSurfaceDesc,
|
||||||
|
[in] IDirectDrawPalette *pDirectDrawPalette);
|
||||||
|
|
||||||
|
HRESULT GetDirectDraw(
|
||||||
|
[out] IDirectDraw **ppDirectDraw);
|
||||||
|
|
||||||
|
HRESULT SetDirectDraw(
|
||||||
|
[in] IDirectDraw *pDirectDraw);
|
||||||
|
|
||||||
|
HRESULT CreateSample(
|
||||||
|
[in] IDirectDrawSurface *pSurface,
|
||||||
|
[in] const RECT *pRect,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out]IDirectDrawStreamSample **ppSample);
|
||||||
|
|
||||||
|
HRESULT GetTimePerFrame(
|
||||||
|
[out] STREAM_TIME *pFrameTime);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// IDirectDrawStreamSample
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IDirectDrawStreamSample : IStreamSample
|
||||||
|
{
|
||||||
|
HRESULT GetSurface(
|
||||||
|
[out] IDirectDrawSurface ** ppDirectDrawSurface,
|
||||||
|
[out] RECT * pRect);
|
||||||
|
|
||||||
|
HRESULT SetRect(
|
||||||
|
[in] const RECT * pRect);
|
||||||
|
|
||||||
|
};
|
||||||
38
third_party/dx9_sdk/include/DShowIDL/devenum.idl
vendored
Normal file
38
third_party/dx9_sdk/include/DShowIDL/devenum.idl
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DevEnum.idl
|
||||||
|
//
|
||||||
|
// Desc: IDL source for devenum.dll. This file will be processed by the
|
||||||
|
// MIDL tool to produce the type library (devenum.tlb) and marshalling
|
||||||
|
// code.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1998 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001")
|
||||||
|
cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002")
|
||||||
|
//cpp_quote("#define CDEF_CLASS_LEGACY 0x0004")
|
||||||
|
cpp_quote("#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008")
|
||||||
|
|
||||||
|
// if any of these flags are set, then only the types specified by the
|
||||||
|
// flags are enumerated
|
||||||
|
cpp_quote("#define CDEF_DEVMON_CMGR_DEVICE 0x0010")
|
||||||
|
cpp_quote("#define CDEF_DEVMON_DMO 0x0020")
|
||||||
|
cpp_quote("#define CDEF_DEVMON_PNP_DEVICE 0x0040")
|
||||||
|
cpp_quote("#define CDEF_DEVMON_FILTER 0x0080")
|
||||||
|
cpp_quote("#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0")
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(29840822-5B84-11D0-BD3B-00A0C911CE86),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ICreateDevEnum : IUnknown
|
||||||
|
{
|
||||||
|
import "oaidl.idl";
|
||||||
|
|
||||||
|
HRESULT CreateClassEnumerator(
|
||||||
|
[in] REFCLSID clsidDeviceClass,
|
||||||
|
[out] IEnumMoniker ** ppEnumMoniker,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
}
|
||||||
33
third_party/dx9_sdk/include/DShowIDL/dmodshow.idl
vendored
Normal file
33
third_party/dx9_sdk/include/DShowIDL/dmodshow.idl
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DMODShow.idl
|
||||||
|
//
|
||||||
|
// Desc: This file will be processed by the MIDL tool to
|
||||||
|
// produce dmodshow.h and proxy-stub code.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "objidl.idl";
|
||||||
|
import "mediaobj.idl";
|
||||||
|
|
||||||
|
// 94297043-bd82-4dfd-b0de-8177739c6d20
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_DMOWrapperFilter, 0x94297043,0xbd82,0x4dfd,0xb0,0xde,0x81,0x77,0x73,0x9c,0x6d,0x20);")
|
||||||
|
// bcd5796c-bd52-4d30-ab76-70f975b89199
|
||||||
|
cpp_quote("DEFINE_GUID(CLSID_DMOFilterCategory,0xbcd5796c,0xbd52,0x4d30,0xab,0x76,0x70,0xf9,0x75,0xb8,0x91,0x99);")
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(52d6f586-9f0f-4824-8fc8-e32ca04930c2),
|
||||||
|
]
|
||||||
|
interface IDMOWrapperFilter : IUnknown
|
||||||
|
{
|
||||||
|
// Init is passed in the clsid (so it can call CoCreateInstance)
|
||||||
|
// and the catgory under which the DMO lives.
|
||||||
|
// Note that catDMO can be CLSID_NULL, in which case no special
|
||||||
|
// category-specific processing will be invoked in the wrapper filter.
|
||||||
|
HRESULT Init(REFCLSID clsidDMO, REFCLSID catDMO);
|
||||||
|
}
|
||||||
|
|
||||||
59
third_party/dx9_sdk/include/DShowIDL/dshowasf.idl
vendored
Normal file
59
third_party/dx9_sdk/include/DShowIDL/dshowasf.idl
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DShowASF.idl
|
||||||
|
//
|
||||||
|
// Desc:
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "objidl.idl";
|
||||||
|
import "strmif.idl"; // for media type and time definitions
|
||||||
|
import "wmsdkidl.idl";
|
||||||
|
|
||||||
|
cpp_quote( "EXTERN_GUID( IID_IConfigAsfWriter,0x45086030,0xF7E4,0x486a,0xB5,0x04,0x82,0x6B,0xB5,0x79,0x2A,0x3B );" )
|
||||||
|
|
||||||
|
interface IConfigAsfWriter;
|
||||||
|
interface IWMProfile;
|
||||||
|
|
||||||
|
// Interface to control the ASF writer
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(45086030-F7E4-486a-B504-826BB5792A3B),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IConfigAsfWriter : IUnknown
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// The user is expected to enumerate profiles using the wmsdk IWMProfileManager
|
||||||
|
// method and then pass the desired profile index to the ASF Writer filter via this
|
||||||
|
// method. The filter will then try to configure itself for the selected profile.
|
||||||
|
//
|
||||||
|
// NOTE: These 2 XXXProfileId methods are now obsolete because they assume
|
||||||
|
// version 4.0 WMSDK profiles. To configure the filter for later profile
|
||||||
|
// versions using a profile index, use the XXXProfile methods which take
|
||||||
|
// the IWMProfile* directly.
|
||||||
|
//
|
||||||
|
HRESULT ConfigureFilterUsingProfileId([in] DWORD dwProfileId);
|
||||||
|
HRESULT GetCurrentProfileId([out] DWORD *pdwProfileId);
|
||||||
|
|
||||||
|
//
|
||||||
|
// configure using a pre-defined wmsdk profile guid
|
||||||
|
//
|
||||||
|
HRESULT ConfigureFilterUsingProfileGuid([in] REFGUID guidProfile);
|
||||||
|
HRESULT GetCurrentProfileGuid([out] GUID *pProfileGuid);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Use these methods when a custom profile setup is preferred
|
||||||
|
//
|
||||||
|
HRESULT ConfigureFilterUsingProfile([in] IWMProfile * pProfile);
|
||||||
|
HRESULT GetCurrentProfile([out] IWMProfile **ppProfile);
|
||||||
|
|
||||||
|
//
|
||||||
|
// allow app to control whether or not to index file
|
||||||
|
//
|
||||||
|
HRESULT SetIndexMode( [in] BOOL bIndexFile );
|
||||||
|
HRESULT GetIndexMode( [out] BOOL *pbIndexFile );
|
||||||
|
}
|
||||||
|
|
||||||
2326
third_party/dx9_sdk/include/DShowIDL/dvdif.idl
vendored
Normal file
2326
third_party/dx9_sdk/include/DShowIDL/dvdif.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1289
third_party/dx9_sdk/include/DShowIDL/dxtrans.idl
vendored
Normal file
1289
third_party/dx9_sdk/include/DShowIDL/dxtrans.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
318
third_party/dx9_sdk/include/DShowIDL/dyngraph.idl
vendored
Normal file
318
third_party/dx9_sdk/include/DShowIDL/dyngraph.idl
vendored
Normal file
@ -0,0 +1,318 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: DynGraph.idl
|
||||||
|
//
|
||||||
|
// Desc: Dynamic graph interfaces
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
interface IPinConnection;
|
||||||
|
interface IPinFlowControl;
|
||||||
|
interface IGraphConfig;
|
||||||
|
interface IGraphConfigCallback;
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// IPinConnection - supported by input pins
|
||||||
|
//
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(4a9a62d3-27d4-403d-91e9-89f540e55534),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IPinConnection : IUnknown {
|
||||||
|
|
||||||
|
// Do you accept this type chane in your current state?
|
||||||
|
HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt);
|
||||||
|
|
||||||
|
// Set event when EndOfStream receive - do NOT pass it on
|
||||||
|
// This condition is cancelled by a flush or Stop
|
||||||
|
HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent);
|
||||||
|
|
||||||
|
// Are you an 'end pin'
|
||||||
|
HRESULT IsEndPin();
|
||||||
|
|
||||||
|
HRESULT DynamicDisconnect();
|
||||||
|
};
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// IPinFlowControl - supported by output pins
|
||||||
|
//
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(c56e9858-dbf3-4f6b-8119-384af2060deb),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IPinFlowControl : IUnknown {
|
||||||
|
// Block processing on this pin
|
||||||
|
HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
// block flags
|
||||||
|
enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
|
||||||
|
AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, // 0 means unblock
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Reconnect flags
|
||||||
|
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
|
||||||
|
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
|
||||||
|
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
|
||||||
|
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
|
||||||
|
} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
|
||||||
|
|
||||||
|
// RemoveFilterEx flags
|
||||||
|
enum _REM_FILTER_FLAGS {
|
||||||
|
REMFILTERF_LEAVECONNECTED = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _AM_FILTER_FLAGS {
|
||||||
|
AM_FILTER_FLAGS_REMOVABLE = 0x00000001
|
||||||
|
} AM_FILTER_FLAGS;
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// IGraphConfig
|
||||||
|
//
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGraphConfig : IUnknown {
|
||||||
|
HRESULT Reconnect([in] IPin *pOutputPin,
|
||||||
|
[in] IPin *pInputPin,
|
||||||
|
[in] const AM_MEDIA_TYPE *pmtFirstConnection,
|
||||||
|
[in] IBaseFilter *pUsingFilter, // can be NULL
|
||||||
|
[in] HANDLE hAbortEvent,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT Reconfigure([in] IGraphConfigCallback *pCallback,
|
||||||
|
[in] PVOID pvContext,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] HANDLE hAbortEvent);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT AddFilterToCache([in] IBaseFilter *pFilter);
|
||||||
|
HRESULT EnumCacheFilter([out] IEnumFilters **pEnum);
|
||||||
|
HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter);
|
||||||
|
|
||||||
|
// Get the start time associated with the last Run() call
|
||||||
|
// If the graph is not running returns VFW_E_WRONG_STATE
|
||||||
|
HRESULT GetStartTime([out] REFERENCE_TIME *prtStart);
|
||||||
|
|
||||||
|
HRESULT PushThroughData(
|
||||||
|
[in] IPin *pOutputPin,
|
||||||
|
[in] IPinConnection *pConnection,
|
||||||
|
[in] HANDLE hEventAbort);
|
||||||
|
|
||||||
|
HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags);
|
||||||
|
HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags);
|
||||||
|
|
||||||
|
HRESULT RemoveFilterEx( [in] IBaseFilter *pFilter, DWORD Flags );
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// IGraphConfigCallback
|
||||||
|
//
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IGraphConfigCallback : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT Reconfigure(PVOID pvContext, DWORD dwFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filter Chain Definition
|
||||||
|
//
|
||||||
|
// Filter chains have the following properties:
|
||||||
|
//
|
||||||
|
// - Each filter chain has one or more filters.
|
||||||
|
//
|
||||||
|
// - Each filter in a filter chain has at most one connected input pin and one
|
||||||
|
// connected output pin. For example, filters A, C, D, F, G, H, I, J and K
|
||||||
|
// (see the diagram below) can be in a filter chain because each one has at
|
||||||
|
// most one connected input pin and one connected output pin.
|
||||||
|
//
|
||||||
|
// - Any filter in a chain is reachable by any other filter in the chain.
|
||||||
|
// For example, in the filter chain F-G-H, F can reach H by following the F-
|
||||||
|
// G connection to G and then following the G-H connection to H. Filters F
|
||||||
|
// and J cannot be in the same filter chain because J is not reachable from
|
||||||
|
// F. Anotherwords, there no sequence of connected filters between F and J.
|
||||||
|
//
|
||||||
|
// - The start filter is the only filter in the filter chain who's input
|
||||||
|
// pin is not connected to another filter in the chain. For instance, F is
|
||||||
|
// the start filter in F-G-H because F's input pin is connected to E and E
|
||||||
|
// is not in the filter chain. G's input pin is connected to F and H's is
|
||||||
|
// connected to G. Both F and G are in the filter chain.
|
||||||
|
//
|
||||||
|
// - The end filter is the only filter in the filter chain who's output pin
|
||||||
|
// is not connected to another filter in the chain. For example, in the
|
||||||
|
// filter chain J-K, K is the end filter because K's output pin is
|
||||||
|
// connected to L. J's output pin is connected to K and K is in the J-K
|
||||||
|
// filter chain.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// --->|---| |---|--->
|
||||||
|
// | C |--->| D |
|
||||||
|
// |---| |---|--->|---| |---|--->|---| |---| |---| |---|
|
||||||
|
// | A |--->| B | | E |--->| F |--->| G |--->| H |
|
||||||
|
// |---| |---|--->|---|------------>|---| |---| |---| |---|
|
||||||
|
// | I |--->
|
||||||
|
// --->|---|--->
|
||||||
|
//
|
||||||
|
// |---| |---| |---|
|
||||||
|
// | J |--->| K |--->| L |
|
||||||
|
// |---| |---| |---|
|
||||||
|
//
|
||||||
|
// Example Filter Graph
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// IFilterChain Methods Documentation
|
||||||
|
//
|
||||||
|
// HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
//
|
||||||
|
// StartChain() switches all the filters in the chain into the running state
|
||||||
|
// If one of the filters will not switch to the running state, then all the filters
|
||||||
|
// in the chain are stopped. This method can only be called if the filter graph is
|
||||||
|
// running.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - pStartFilter [in]
|
||||||
|
// The first filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pEndFilter .
|
||||||
|
//
|
||||||
|
// - pEndFilter [in]
|
||||||
|
// The last filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
|
||||||
|
// from pStartFilter to the last downstream filter which can be in a filter chain.
|
||||||
|
// For example, IFilterChain::StartChain( A, NULL ) would start filter A.
|
||||||
|
// IFilterChain::StartChain( G, NULL ) would start filters G and H.
|
||||||
|
// IFilterChain::StartChain( C, NULL ) would start filters C and D. Finally,
|
||||||
|
// IFilterChain::StartChain( E, NULL ) would fail because E cannot be in a
|
||||||
|
// filter chain (see the Filter Chain Definition section for more information).
|
||||||
|
//
|
||||||
|
// Return Value:
|
||||||
|
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
|
||||||
|
// information on interpreting HRESULTs.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
//
|
||||||
|
// PauseChain() switches all the filters in a chain to the paused state. If it cannot
|
||||||
|
// switch one of the filtres into the paused state, all the filters in the chain are
|
||||||
|
// stopped. This method can only be called if the filter graph is paused.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - pStartFilter [in]
|
||||||
|
// The first filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pEndFilter .
|
||||||
|
//
|
||||||
|
// - pEndFilter [in]
|
||||||
|
// The last filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
|
||||||
|
// from pStartFilter to the last downstream filter which can be in a filter chain.
|
||||||
|
// For example, IFilterChain::StopChain( A, NULL ) would stop filter A.
|
||||||
|
// IFilterChain::StopChain( G, NULL ) would stop filters G and H.
|
||||||
|
// IFilterChain::StopChain( C, NULL ) would stop filters C and D. Finally,
|
||||||
|
// IFilterChain::StopChain( E, NULL ) would fail because E cannot be in a filter
|
||||||
|
// chain (see the Filter Chain Definition section for more information).
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Return Value:
|
||||||
|
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
|
||||||
|
// information on interpreting HRESULTs.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
//
|
||||||
|
// StopChain() switches all the filters in chain to the stopped state.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - pStartFilter [in]
|
||||||
|
// The first filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pEndFilter .
|
||||||
|
//
|
||||||
|
// - pEndFilter [in]
|
||||||
|
// The last filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
|
||||||
|
// from pStartFilter to the last downstream filter which can be in a filter chain.
|
||||||
|
// For example, IFilterChain::StopChain( A, NULL ) would stop filter A.
|
||||||
|
// IFilterChain::StopChain( G, NULL ) would stop filters G and H.
|
||||||
|
// IFilterChain::StopChain( C, NULL ) would stop filters C and D. Finally,
|
||||||
|
// IFilterChain::StopChain( E, NULL ) would fail because E cannot be in a filter
|
||||||
|
// chain (see the Filter Chain Definition section for more information).
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Return Value:
|
||||||
|
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
|
||||||
|
// information on interpreting HRESULTs.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
//
|
||||||
|
// RemoveChain() removes every filter in a chain from the filter graph.
|
||||||
|
// The filters can be removed while the graph is running.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - pStartFilter [in]
|
||||||
|
// The first filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pEndFilter .
|
||||||
|
//
|
||||||
|
// - pEndFilter [in]
|
||||||
|
// The last filter in the filter chain. Note that this can be the same
|
||||||
|
// filter as pStartFilter. If pEndFilter is NULL then the filter chain
|
||||||
|
// extends from pStartFilter to the last downstream filter which can be in a
|
||||||
|
// filter chain. For example, IFilterChain::RemoveChain( A, NULL ) would remove
|
||||||
|
// filter A from the filter graph. IFilterChain::RemoveChain( G, NULL ) would
|
||||||
|
// remove filters G and H. IFilterChain::RemoveChain( C, NULL ) would remove
|
||||||
|
// filters C and D. Finally, IFilterChain::RemoveChain( E, NULL ) would fail
|
||||||
|
// because E cannot be in a filter chain (see the Filter Chain Definition
|
||||||
|
// section for more information).
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Return Value:
|
||||||
|
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
|
||||||
|
// information on interpreting HRESULTs.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
[
|
||||||
|
local,
|
||||||
|
object,
|
||||||
|
uuid(DCFBDCF6-0DC2-45f5-9AB2-7C330EA09C29),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IFilterChain : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
411
third_party/dx9_sdk/include/DShowIDL/mediaobj.idl
vendored
Normal file
411
third_party/dx9_sdk/include/DShowIDL/mediaobj.idl
vendored
Normal file
@ -0,0 +1,411 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: MediaObj.idl
|
||||||
|
//
|
||||||
|
// Desc: Define the interfaces for DirectX Media Objects. This file will be
|
||||||
|
// processed by the MIDL tool to produce mediaobj.h and proxy-stub code.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "objidl.idl";
|
||||||
|
|
||||||
|
// DMO_MEDIA_TYPE structure
|
||||||
|
|
||||||
|
cpp_quote("#ifdef __strmif_h__")
|
||||||
|
cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;")
|
||||||
|
cpp_quote("#else")
|
||||||
|
typedef struct _DMOMediaType {
|
||||||
|
GUID majortype;
|
||||||
|
GUID subtype;
|
||||||
|
BOOL bFixedSizeSamples;
|
||||||
|
BOOL bTemporalCompression;
|
||||||
|
ULONG lSampleSize;
|
||||||
|
GUID formattype;
|
||||||
|
IUnknown *pUnk;
|
||||||
|
ULONG cbFormat;
|
||||||
|
[size_is(cbFormat)] BYTE * pbFormat;
|
||||||
|
} DMO_MEDIA_TYPE;
|
||||||
|
typedef LONGLONG REFERENCE_TIME;
|
||||||
|
cpp_quote("#endif")
|
||||||
|
|
||||||
|
|
||||||
|
// Per-buffer flags that apply to input buffers
|
||||||
|
enum _DMO_INPUT_DATA_BUFFER_FLAGS {
|
||||||
|
DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
|
||||||
|
DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002,
|
||||||
|
DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004
|
||||||
|
};
|
||||||
|
|
||||||
|
// Per-buffer flags that apply to output buffers.
|
||||||
|
enum _DMO_OUTPUT_DATA_BUFFER_FLAGS {
|
||||||
|
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
|
||||||
|
DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002,
|
||||||
|
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004,
|
||||||
|
|
||||||
|
//
|
||||||
|
// This flag means the object could have generated more data for this
|
||||||
|
// output stream, even with no additional input from any input stream,
|
||||||
|
// but the output buffer did not have sufficient room.
|
||||||
|
//
|
||||||
|
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000
|
||||||
|
};
|
||||||
|
|
||||||
|
// Flags returned by GetInputStatus()
|
||||||
|
enum _DMO_INPUT_STATUS_FLAGS {
|
||||||
|
//
|
||||||
|
// ACCEPT_DATA indicates that the input stream is ready to accept
|
||||||
|
// new data via ProcessInput().
|
||||||
|
//
|
||||||
|
DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
// Flags returned by GetInputStreamInfo()
|
||||||
|
enum _DMO_INPUT_STREAM_INFO_FLAGS {
|
||||||
|
DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
|
||||||
|
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
|
||||||
|
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
|
||||||
|
DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008
|
||||||
|
};
|
||||||
|
|
||||||
|
// Flags returned by GetOutputStreamInfo()
|
||||||
|
enum _DMO_OUTPUT_STREAM_INFO_FLAGS {
|
||||||
|
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
|
||||||
|
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
|
||||||
|
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
|
||||||
|
DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008,
|
||||||
|
DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010
|
||||||
|
};
|
||||||
|
|
||||||
|
// SetType flags
|
||||||
|
enum _DMO_SET_TYPE_FLAGS {
|
||||||
|
DMO_SET_TYPEF_TEST_ONLY = 0x00000001,// check but don't set
|
||||||
|
DMO_SET_TYPEF_CLEAR = 0x00000002 // unset
|
||||||
|
};
|
||||||
|
|
||||||
|
// Process Output Flags
|
||||||
|
enum _DMO_PROCESS_OUTPUT_FLAGS {
|
||||||
|
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 // Discard
|
||||||
|
};
|
||||||
|
|
||||||
|
// Buffer wrapper interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837)
|
||||||
|
]
|
||||||
|
interface IMediaBuffer : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT SetLength(
|
||||||
|
DWORD cbLength
|
||||||
|
);
|
||||||
|
HRESULT GetMaxLength(
|
||||||
|
[out] DWORD *pcbMaxLength
|
||||||
|
);
|
||||||
|
HRESULT GetBufferAndLength(
|
||||||
|
[out] BYTE **ppBuffer, // not filled if NULL
|
||||||
|
[out] DWORD *pcbLength // not filled if NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Output buffer info structure: one of these must be passed in for each
|
||||||
|
// output stream with every ProcessOutput() call
|
||||||
|
// All [out] fields should be
|
||||||
|
// assumed undefined if ProcessOutput() failed
|
||||||
|
//
|
||||||
|
typedef struct _DMO_OUTPUT_DATA_BUFFER {
|
||||||
|
|
||||||
|
IMediaBuffer *pBuffer; // [in] can be NULL
|
||||||
|
|
||||||
|
// ProcessOutput() must set any appropriate flags and zero out the rest.
|
||||||
|
DWORD dwStatus; // [out] DMO_OUTPUT_DATA_BUFFERF_XXX (INCOMPLETE, etc.)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Each of these is valid if the corresponding flag is set in dwStatus
|
||||||
|
//
|
||||||
|
REFERENCE_TIME rtTimestamp; // [out]
|
||||||
|
REFERENCE_TIME rtTimelength; // [out]
|
||||||
|
} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER;
|
||||||
|
|
||||||
|
|
||||||
|
// Interface supported by media objects
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4)
|
||||||
|
]
|
||||||
|
interface IMediaObject : IUnknown
|
||||||
|
{
|
||||||
|
|
||||||
|
//
|
||||||
|
// Stream enumeration
|
||||||
|
//
|
||||||
|
HRESULT GetStreamCount(
|
||||||
|
[out] DWORD *pcInputStreams,
|
||||||
|
[out] DWORD *pcOutputStreams
|
||||||
|
);
|
||||||
|
HRESULT GetInputStreamInfo(
|
||||||
|
DWORD dwInputStreamIndex, // 0-based
|
||||||
|
[out] DWORD *pdwFlags // HOLDS_BUFFERS
|
||||||
|
);
|
||||||
|
HRESULT GetOutputStreamInfo(
|
||||||
|
DWORD dwOutputStreamIndex, // 0-based
|
||||||
|
[out] DWORD *pdwFlags // Media object sets to 0
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Mediatypes
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// GetType - iterate through media types supported by a stream.
|
||||||
|
// Returns S_FALSE if the type index is out of range ("no more types").
|
||||||
|
//
|
||||||
|
HRESULT GetInputType(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
DWORD dwTypeIndex, // 0-based
|
||||||
|
[out] DMO_MEDIA_TYPE *pmt
|
||||||
|
);
|
||||||
|
HRESULT GetOutputType(
|
||||||
|
DWORD dwOutputStreamIndex,
|
||||||
|
DWORD dwTypeIndex, // 0-based
|
||||||
|
[out] DMO_MEDIA_TYPE *pmt
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// SetType - tell the object the type of data it will work with.
|
||||||
|
//
|
||||||
|
HRESULT SetInputType(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
[in] const DMO_MEDIA_TYPE *pmt,
|
||||||
|
DWORD dwFlags // test only
|
||||||
|
);
|
||||||
|
HRESULT SetOutputType(
|
||||||
|
DWORD dwOutputStreamIndex,
|
||||||
|
[in] const DMO_MEDIA_TYPE *pmt,
|
||||||
|
DWORD dwFlags // test only
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// GetCurrentType - get the last mediatype supplied via SetType.
|
||||||
|
// Returns S_FALSE if SetType has not been called.
|
||||||
|
//
|
||||||
|
HRESULT GetInputCurrentType(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
[out] DMO_MEDIA_TYPE *pmt
|
||||||
|
);
|
||||||
|
HRESULT GetOutputCurrentType(
|
||||||
|
DWORD dwOutputStreamIndex,
|
||||||
|
[out] DMO_MEDIA_TYPE *pmt
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// SizeInfo
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// GetSizeInfo - Get buffer size requirementes of a stream.
|
||||||
|
//
|
||||||
|
// If buffer size depends on the media type used, the object should
|
||||||
|
// base its response on the most recent media type set for this stream.
|
||||||
|
// If no mediatype has been set, the object may return an error.
|
||||||
|
//
|
||||||
|
HRESULT GetInputSizeInfo(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
[out] DWORD *pcbSize, // size of input 'quantum'
|
||||||
|
[out] DWORD *pcbMaxLookahead, // max total bytes held
|
||||||
|
[out] DWORD *pcbAlignment // buffer alignment requirement
|
||||||
|
);
|
||||||
|
HRESULT GetOutputSizeInfo(
|
||||||
|
DWORD dwOutputStreamIndex,
|
||||||
|
[out] DWORD *pcbSize, // size of output 'quantum'
|
||||||
|
[out] DWORD *pcbAlignment // buffer alignment requirement
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Latency methods
|
||||||
|
//
|
||||||
|
HRESULT GetInputMaxLatency(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
[out] REFERENCE_TIME *prtMaxLatency
|
||||||
|
);
|
||||||
|
HRESULT SetInputMaxLatency(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
REFERENCE_TIME rtMaxLatency
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Streaming / state methods
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Flush() - discard any buffered data.
|
||||||
|
//
|
||||||
|
HRESULT Flush();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Send a discontinuity to an input stream. The object will not
|
||||||
|
// accept any more data on this input stream until the discontinuity
|
||||||
|
// has been completely processed, which may involve multiple
|
||||||
|
// ProcessOutput() calls.
|
||||||
|
//
|
||||||
|
HRESULT Discontinuity(DWORD dwInputStreamIndex);
|
||||||
|
|
||||||
|
//
|
||||||
|
// If a streaming object needs to perform any time consuming
|
||||||
|
// initialization before it can stream data, it should do it inside
|
||||||
|
// AllocateStreamingResources() rather than during the first process
|
||||||
|
// call.
|
||||||
|
//
|
||||||
|
// This method is NOT guaranteed to be called before streaming
|
||||||
|
// starts. If it is not called, the object should perform any
|
||||||
|
// required initialization during a process call.
|
||||||
|
//
|
||||||
|
HRESULT AllocateStreamingResources();
|
||||||
|
|
||||||
|
// Free anything allocated in AllocateStreamingResources().
|
||||||
|
HRESULT FreeStreamingResources();
|
||||||
|
|
||||||
|
// GetInputStatus - the only flag defined right now is ACCEPT_DATA.
|
||||||
|
HRESULT GetInputStatus(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
[out] DWORD *dwFlags // ACCEPT_DATA
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Pass one new buffer to an input stream
|
||||||
|
//
|
||||||
|
HRESULT ProcessInput(
|
||||||
|
DWORD dwInputStreamIndex,
|
||||||
|
IMediaBuffer *pBuffer, // must not be NULL
|
||||||
|
DWORD dwFlags, // DMO_INPUT_DATA_BUFFERF_XXX (syncpoint, etc.)
|
||||||
|
REFERENCE_TIME rtTimestamp, // valid if flag set
|
||||||
|
REFERENCE_TIME rtTimelength // valid if flag set
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// ProcessOutput() - generate output for current input buffers
|
||||||
|
//
|
||||||
|
// Output stream specific status information is returned in the
|
||||||
|
// dwStatus member of each buffer wrapper structure.
|
||||||
|
//
|
||||||
|
HRESULT ProcessOutput(
|
||||||
|
DWORD dwFlags, // DMO_PROCESS_OUTPUT_FLAGS
|
||||||
|
DWORD cOutputBufferCount, // # returned by GetStreamCount()
|
||||||
|
[in,out,size_is(cOutputBufferCount)]
|
||||||
|
DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, // one per stream
|
||||||
|
[out] DWORD *pdwStatus // TBD, must be set to 0
|
||||||
|
);
|
||||||
|
|
||||||
|
// Locking - lock if bLock is TRUE, otherwise unlock
|
||||||
|
HRESULT Lock(LONG bLock);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Interface returned by the DMO enumeration API
|
||||||
|
//
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f)
|
||||||
|
]
|
||||||
|
interface IEnumDMO : IUnknown {
|
||||||
|
HRESULT Next(
|
||||||
|
DWORD cItemsToFetch,
|
||||||
|
[out, size_is(cItemsToFetch), length_is(*pcItemsFetched)] CLSID *pCLSID,
|
||||||
|
[out, size_is(cItemsToFetch), length_is(*pcItemsFetched), string] WCHAR **Names,
|
||||||
|
[out] DWORD *pcItemsFetched
|
||||||
|
);
|
||||||
|
HRESULT Skip(
|
||||||
|
DWORD cItemsToSkip
|
||||||
|
);
|
||||||
|
HRESULT Reset(void);
|
||||||
|
HRESULT Clone(
|
||||||
|
[out] IEnumDMO **ppEnum
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Flags for IMediaObjectInPlace::Process
|
||||||
|
enum _DMO_INPLACE_PROCESS_FLAGS {
|
||||||
|
DMO_INPLACE_NORMAL = 0x00000000,
|
||||||
|
DMO_INPLACE_ZERO = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(651b9ad0-0fc7-4aa9-9538-d89931010741)
|
||||||
|
]
|
||||||
|
interface IMediaObjectInPlace : IUnknown {
|
||||||
|
|
||||||
|
// Proces - Given a buffer of size ulSize, put the output
|
||||||
|
// of the DMO into the same buffer.
|
||||||
|
HRESULT Process(
|
||||||
|
[in] ULONG ulSize,
|
||||||
|
[in,out,size_is(ulSize)] BYTE* pData,
|
||||||
|
[in] REFERENCE_TIME refTimeStart,
|
||||||
|
[in] DWORD dwFlags
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create a copy of the In-Place Media Object. This allows
|
||||||
|
// for very fast initialization of a number of In-Place objects
|
||||||
|
// in a known state.
|
||||||
|
HRESULT Clone(
|
||||||
|
[out] IMediaObjectInPlace **ppMediaObject
|
||||||
|
);
|
||||||
|
|
||||||
|
// GetLatency - Returns a REFERENCE_TIME value
|
||||||
|
// (1 tick = 100ns) which corresponds to the latency time
|
||||||
|
// processing this effect will add to the graph. This assumes
|
||||||
|
// the effect cost per buffer is a constant.
|
||||||
|
HRESULT GetLatency(
|
||||||
|
[out] REFERENCE_TIME *pLatencyTime
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quality control status flags
|
||||||
|
enum _DMO_QUALITY_STATUS_FLAGS {
|
||||||
|
DMO_QUALITY_STATUS_ENABLED = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(65abea96-cf36-453f-af8a-705e98f16260)
|
||||||
|
]
|
||||||
|
interface IDMOQualityControl : IUnknown {
|
||||||
|
HRESULT SetNow(
|
||||||
|
[in] REFERENCE_TIME rtNow
|
||||||
|
);
|
||||||
|
HRESULT SetStatus(
|
||||||
|
[in] DWORD dwFlags
|
||||||
|
);
|
||||||
|
HRESULT GetStatus(
|
||||||
|
[out] DWORD *pdwFlags
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flags for IVideoOutputOptimizations
|
||||||
|
enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
|
||||||
|
DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac)
|
||||||
|
]
|
||||||
|
interface IDMOVideoOutputOptimizations : IUnknown {
|
||||||
|
HRESULT QueryOperationModePreferences (
|
||||||
|
ULONG ulOutputStreamIndex,
|
||||||
|
DWORD *pdwRequestedCapabilities
|
||||||
|
);
|
||||||
|
HRESULT SetOperationMode (
|
||||||
|
ULONG ulOutputStreamIndex,
|
||||||
|
DWORD dwEnabledFeatures
|
||||||
|
);
|
||||||
|
HRESULT GetCurrentOperationMode (
|
||||||
|
ULONG ulOutputStreamIndex,
|
||||||
|
DWORD *pdwEnabledFeatures
|
||||||
|
);
|
||||||
|
HRESULT GetCurrentSampleRequirements (
|
||||||
|
ULONG ulOutputStreamIndex,
|
||||||
|
DWORD *pdwRequestedFeatures
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
228
third_party/dx9_sdk/include/DShowIDL/medparam.idl
vendored
Normal file
228
third_party/dx9_sdk/include/DShowIDL/medparam.idl
vendored
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: MedParam.idl
|
||||||
|
//
|
||||||
|
// Desc: Definition of the IMediaParams and associated interfaces. These
|
||||||
|
// interfaces are designed to allow communication of curve-following
|
||||||
|
// behaviors for parameters of objects which require dynamic changes
|
||||||
|
// to their parameters at run time. All changes are specified by
|
||||||
|
// timestamp and curve type to ensure the parameters can be set
|
||||||
|
// at sufficient accuracy with predictable behavior on subsequent
|
||||||
|
// playback of the same curves.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
import "strmif.idl";
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Define the semantic type to be used for each parameter. All values passed
|
||||||
|
// into this interface are 32-bit floats, but the interface can specify that
|
||||||
|
// the values must be integer, booleans, or enumerated types
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef float MP_DATA; // All data is 32-bit floats
|
||||||
|
|
||||||
|
typedef enum _MP_Type {
|
||||||
|
MPT_INT, // data is signed 23 bit integer (mantissa)
|
||||||
|
MPT_FLOAT, // data is 32bit IEEE float
|
||||||
|
MPT_BOOL, // data is true or false (using ANSI C++ definition)
|
||||||
|
MPT_ENUM, // data is a set (represented by consecutive integers)
|
||||||
|
MPT_MAX,
|
||||||
|
} MP_TYPE;
|
||||||
|
|
||||||
|
const MP_DATA MPBOOL_TRUE = 1.0; // Value of true
|
||||||
|
const MP_DATA MPBOOL_FALSE = 0.0; // Value of false
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Define the types of curves which are supported
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef enum _MP_CURVE_TYPE {
|
||||||
|
MP_CURVE_JUMP = 0x0001, // No interpolation, just jump to next point
|
||||||
|
MP_CURVE_LINEAR = 0x0002, // Linear interpolation (y follows x from 0.0 to 1.0)
|
||||||
|
MP_CURVE_SQUARE = 0x0004, // y follow x^2 from 0.0 to 1.0
|
||||||
|
MP_CURVE_INVSQUARE = 0x0008, // y follows 1-(x^2) from 0.0 to 1.0
|
||||||
|
MP_CURVE_SINE = 0x0010, // y follows sin(x) from -pi/2 to pi/2
|
||||||
|
} MP_CURVE_TYPE;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Capability bits. Used by the object to specify what capabilities it has.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef DWORD MP_CAPS;
|
||||||
|
// Curve capabilities - If the cap bit is set, that type of curve is supported
|
||||||
|
const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP;
|
||||||
|
const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR;
|
||||||
|
const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE;
|
||||||
|
const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE;
|
||||||
|
const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Structure used to return information about the type and limits of a parameter
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef struct _MP_PARAMINFO {
|
||||||
|
MP_TYPE mpType; // One of MP_TYPE_xxx codes
|
||||||
|
MP_CAPS mopCaps; // A collection of MP_CAPS flags
|
||||||
|
|
||||||
|
// Minimum and maximum values
|
||||||
|
MP_DATA mpdMinValue; // minimum legal value
|
||||||
|
MP_DATA mpdMaxValue; // maximum legal value
|
||||||
|
MP_DATA mpdNeutralValue; // default or 'center' value
|
||||||
|
|
||||||
|
// Defualt Unit and Label text. These strings will ALWAYS be English
|
||||||
|
// strings in the UNICODE character set. For international text
|
||||||
|
// use the GetParamText member function
|
||||||
|
WCHAR szUnitText[32]; // units of the parameter
|
||||||
|
WCHAR szLabel[32]; // name of the parameter
|
||||||
|
|
||||||
|
} MP_PARAMINFO;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Parameter Index types
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef DWORD DWORD;
|
||||||
|
const DWORD DWORD_ALLPARAMS = -1; // Apply this operation to all params
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Defined list of timestamp types
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef DWORD MP_TIMEDATA; // Extra data to further define type
|
||||||
|
|
||||||
|
// REFERENCE_TIME (1 tick = 100 nanoseconds, MP_TIMEDATA ignored)
|
||||||
|
cpp_quote("DEFINE_GUID(GUID_TIME_REFERENCE,")
|
||||||
|
cpp_quote("0x93ad712b, 0xdaa0, 0x4ffe, 0xbc, 0x81, 0xb0, 0xce, 0x50, 0xf, 0xcd, 0xd9);")
|
||||||
|
|
||||||
|
// Music Time (MP_TIMEDATA = parts/quarter note)
|
||||||
|
cpp_quote("DEFINE_GUID(GUID_TIME_MUSIC,")
|
||||||
|
cpp_quote("0x574c49d, 0x5b04, 0x4b15, 0xa5, 0x42, 0xae, 0x28, 0x20, 0x30, 0x11, 0x7b);")
|
||||||
|
|
||||||
|
// Time is measures in samples. MP_TIMEDATA = Samples/sec)
|
||||||
|
cpp_quote("DEFINE_GUID(GUID_TIME_SAMPLES,")
|
||||||
|
cpp_quote("0xa8593d05, 0xc43, 0x4984, 0x9a, 0x63, 0x97, 0xaf, 0x9e, 0x2, 0xc4, 0xc0);")
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// The value of a given parameter at a specific point in time
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
typedef DWORD MP_FLAGS;
|
||||||
|
const MP_FLAGS MPF_ENVLP_STANDARD = 0x0000; // Use all data provided
|
||||||
|
const MP_FLAGS MPF_ENVLP_BEGIN_CURRENTVAL = 0x0001;
|
||||||
|
// Ignore valStart value, use current value as the staring point
|
||||||
|
const MP_FLAGS MPF_ENVLP_BEGIN_NEUTRALVAL = 0x0002;
|
||||||
|
// Ignore valStart value, use neutral value as the staring point
|
||||||
|
|
||||||
|
typedef struct _MP_ENVELOPE_SEGMENT {
|
||||||
|
REFERENCE_TIME rtStart; // Start time in current time format
|
||||||
|
REFERENCE_TIME rtEnd; // End time in current time format
|
||||||
|
MP_DATA valStart; // Initial Value
|
||||||
|
MP_DATA valEnd; // Final Value
|
||||||
|
MP_CURVE_TYPE iCurve; // One of MP_CURVE_TYPE codes
|
||||||
|
MP_FLAGS flags; // Special cases
|
||||||
|
} MP_ENVELOPE_SEGMENT;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// Define flags for Punch-in timing
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
const MP_FLAGS MPF_PUNCHIN_REFTIME = 0; // Use the reference time as the PI time
|
||||||
|
const MP_FLAGS MPF_PUNCHIN_NOW = 0x0001; // Punch in at the current clock time
|
||||||
|
const MP_FLAGS MPF_PUNCHIN_STOPPED = 0x0002; // Return change notifications during
|
||||||
|
// author time
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// IMediaParamInfo - Interface used to determine the names, data types and
|
||||||
|
// units of the parameters which are exposed by the object. This interface
|
||||||
|
// is used at discovery time, and is not required during run-time since the
|
||||||
|
// objects parameters are a fixed set and this data can be cached by the
|
||||||
|
// calling applicaiton.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d),
|
||||||
|
version(1.0)
|
||||||
|
]
|
||||||
|
interface IMediaParamInfo : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT GetParamCount (
|
||||||
|
[out] DWORD * pdwParams
|
||||||
|
);
|
||||||
|
HRESULT GetParamInfo (
|
||||||
|
[in] DWORD dwParamIndex,
|
||||||
|
[out] MP_PARAMINFO * pInfo
|
||||||
|
);
|
||||||
|
// returns a series of null terminated strings. strings are in the
|
||||||
|
// following order:
|
||||||
|
// Param Label, Units Text, 1st Enum Text, 2nd Enum Text, etc...
|
||||||
|
HRESULT GetParamText (
|
||||||
|
[in] DWORD dwParamIndex, // which param to get text for
|
||||||
|
[out] WCHAR **ppwchText // returns ptr to CoTaskMemAlloc'd string
|
||||||
|
);
|
||||||
|
|
||||||
|
// Returns the number of diffrent time formats this object understands
|
||||||
|
HRESULT GetNumTimeFormats (
|
||||||
|
[out] DWORD * pdwNumTimeFormats
|
||||||
|
);
|
||||||
|
|
||||||
|
// Returns the GUID for the ith supported time format
|
||||||
|
HRESULT GetSupportedTimeFormat(
|
||||||
|
[in] DWORD dwFormatIndex,
|
||||||
|
[out] GUID *pguidTimeFormat
|
||||||
|
);
|
||||||
|
|
||||||
|
// Returns the current time format
|
||||||
|
HRESULT GetCurrentTimeFormat (
|
||||||
|
[out] GUID *pguidTimeFormat,
|
||||||
|
[out] MP_TIMEDATA *pTimeData
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// IMediaParams - Interfaes used to actually set the media params and the
|
||||||
|
// envelopes to follow
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e),
|
||||||
|
version(1.0)
|
||||||
|
]
|
||||||
|
interface IMediaParams : IUnknown
|
||||||
|
{
|
||||||
|
// Single param Get/Set methods
|
||||||
|
HRESULT GetParam (
|
||||||
|
[in] DWORD dwParamIndex,
|
||||||
|
[out] MP_DATA *pValue
|
||||||
|
);
|
||||||
|
HRESULT SetParam (
|
||||||
|
[in] DWORD dwParamIndex,
|
||||||
|
[in] MP_DATA value
|
||||||
|
);
|
||||||
|
|
||||||
|
// Envelope methods (param change over time)
|
||||||
|
HRESULT AddEnvelope (
|
||||||
|
[in] DWORD dwParamIndex,
|
||||||
|
[in] DWORD cSegments,
|
||||||
|
[in] MP_ENVELOPE_SEGMENT * pEnvelopeSegments
|
||||||
|
);
|
||||||
|
|
||||||
|
// Flush all of the envelope information for the given paramter between
|
||||||
|
// the timestamps specified
|
||||||
|
HRESULT FlushEnvelope (
|
||||||
|
[in] DWORD dwParamIndex,
|
||||||
|
[in] REFERENCE_TIME refTimeStart,
|
||||||
|
[in] REFERENCE_TIME refTimeEnd
|
||||||
|
);
|
||||||
|
|
||||||
|
// Change the time format being used by the object
|
||||||
|
HRESULT SetTimeFormat (
|
||||||
|
[in] GUID guidTimeFormat,
|
||||||
|
[in] MP_TIMEDATA mpTimeData
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
72
third_party/dx9_sdk/include/DShowIDL/mixerocx.idl
vendored
Normal file
72
third_party/dx9_sdk/include/DShowIDL/mixerocx.idl
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
// Copyright (c) 1998 Microsoft Corporation. All Rights Reserved.
|
||||||
|
import "unknwn.idl";
|
||||||
|
|
||||||
|
// data id flags, used to notify the client whenever pertinent data changes
|
||||||
|
#define MIXER_DATA_ASPECT_RATIO 0x00000001 // picture aspect ratio changed
|
||||||
|
#define MIXER_DATA_NATIVE_SIZE 0x00000002 // native size of video changed
|
||||||
|
#define MIXER_DATA_PALETTE 0x00000004 // palette of video changed
|
||||||
|
|
||||||
|
// status flags defined here
|
||||||
|
#define MIXER_STATE_MASK 0x00000003 // use this mask with state status bits
|
||||||
|
#define MIXER_STATE_UNCONNECTED 0x00000000 // mixer is unconnected and stopped
|
||||||
|
#define MIXER_STATE_CONNECTED_STOPPED 0x00000001 // mixer is connected and stopped
|
||||||
|
#define MIXER_STATE_CONNECTED_PAUSED 0x00000002 // mixer is connected and paused
|
||||||
|
#define MIXER_STATE_CONNECTED_PLAYING 0x00000003 // mixer is connected and playing
|
||||||
|
|
||||||
|
interface IMixerOCXNotify;
|
||||||
|
interface IMixerOCX;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(81A3BD31-DEE1-11d1-8508-00A0C91F9CA0),
|
||||||
|
helpstring("IMixerOCXNotify Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMixerOCXNotify : IUnknown
|
||||||
|
{
|
||||||
|
// invalidates the rect
|
||||||
|
HRESULT OnInvalidateRect([in] LPCRECT lpcRect);
|
||||||
|
|
||||||
|
// informs that a status change has occured, new status bits provided in ulStatusFlags
|
||||||
|
HRESULT OnStatusChange([in] ULONG ulStatusFlags);
|
||||||
|
|
||||||
|
// informs that data parameters, whose id is present in ilDataFlags has changed
|
||||||
|
HRESULT OnDataChange([in] ULONG ulDataFlags);
|
||||||
|
};
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(81A3BD32-DEE1-11d1-8508-00A0C91F9CA0),
|
||||||
|
helpstring("IMixerOCX Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMixerOCX : IUnknown
|
||||||
|
{
|
||||||
|
// used to notify the mixer that the display mode has changed, the mixer handles this
|
||||||
|
// asynchronously and the calls OnStatusChange(MIXER_DISPLAYCHANGE_HANDLED) when processing
|
||||||
|
// is done
|
||||||
|
HRESULT OnDisplayChange([in] ULONG ulBitsPerPixel, [in] ULONG ulScreenWidth, [in] ULONG ulScreenHeight);
|
||||||
|
|
||||||
|
HRESULT GetAspectRatio([out] LPDWORD pdwPictAspectRatioX, [out] LPDWORD pdwPictAspectRatioY);
|
||||||
|
|
||||||
|
HRESULT GetVideoSize([out] LPDWORD pdwVideoWidth, [out] LPDWORD pdwVideoHeight);
|
||||||
|
|
||||||
|
HRESULT GetStatus([out] LPDWORD *pdwStatus);
|
||||||
|
|
||||||
|
// the dc provided here is not supposed to be cached. If apps have set a dc using
|
||||||
|
// SetDrawInfo, then it is illegal to provide a non NULL argument here
|
||||||
|
HRESULT OnDraw([in] HDC hdcDraw, [in] LPCRECT prcDraw);
|
||||||
|
|
||||||
|
// lpptTopLeftSC should be NULL unless MIXER_DRAW_DC_ONSCREEN is set to TRUE
|
||||||
|
// specifying a NULL value for lprcClip means no clipping
|
||||||
|
// lpptTopLeftSC - top left corner of surface/dc in screen coordinates
|
||||||
|
// prcDrawCC - draw rectangle in surface/dc coordinates
|
||||||
|
// lprcClip - clipping rect in surface/dc coordinates (optional)
|
||||||
|
HRESULT SetDrawRegion([in] LPPOINT lpptTopLeftSC, [in] LPCRECT prcDrawCC, [in] LPCRECT lprcClip);
|
||||||
|
|
||||||
|
// function to set the sink interface for client notification
|
||||||
|
HRESULT Advise([in] IMixerOCXNotify *pmdns);
|
||||||
|
|
||||||
|
// function to remove the sink interface
|
||||||
|
HRESULT UnAdvise();
|
||||||
|
};
|
||||||
190
third_party/dx9_sdk/include/DShowIDL/mmstream.idl
vendored
Normal file
190
third_party/dx9_sdk/include/DShowIDL/mmstream.idl
vendored
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: MMStream.idl
|
||||||
|
//
|
||||||
|
// Desc: MultiMedia streaming interface IDL file. Used by MIDL tool
|
||||||
|
// to generate mmstream.h.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1998-2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
|
||||||
|
cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)")
|
||||||
|
cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)")
|
||||||
|
cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)")
|
||||||
|
cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)")
|
||||||
|
cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)")
|
||||||
|
|
||||||
|
cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)")
|
||||||
|
cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)")
|
||||||
|
cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)")
|
||||||
|
cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)")
|
||||||
|
cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)")
|
||||||
|
cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)")
|
||||||
|
cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)")
|
||||||
|
cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)")
|
||||||
|
cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)")
|
||||||
|
cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)")
|
||||||
|
|
||||||
|
cpp_quote("// {A35FF56A-9FDA-11d0-8FDF-00C04FD9189D}")
|
||||||
|
cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, ")
|
||||||
|
cpp_quote("0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
|
||||||
|
|
||||||
|
cpp_quote("// {A35FF56B-9FDA-11d0-8FDF-00C04FD9189D}")
|
||||||
|
cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio,")
|
||||||
|
cpp_quote("0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
|
||||||
|
|
||||||
|
cpp_quote("#if(_WIN32_WINNT < 0x0400)")
|
||||||
|
typedef void (__stdcall * PAPCFUNC)(DWORD_PTR dwParam);
|
||||||
|
cpp_quote("#endif")
|
||||||
|
|
||||||
|
typedef LONGLONG STREAM_TIME;
|
||||||
|
|
||||||
|
typedef GUID MSPID;
|
||||||
|
typedef REFGUID REFMSPID;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
STREAMTYPE_READ = 0,
|
||||||
|
STREAMTYPE_WRITE = 1,
|
||||||
|
STREAMTYPE_TRANSFORM= 2
|
||||||
|
} STREAM_TYPE;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
STREAMSTATE_STOP = 0,
|
||||||
|
STREAMSTATE_RUN = 1
|
||||||
|
} STREAM_STATE;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
COMPSTAT_NOUPDATEOK = 0x00000001,
|
||||||
|
COMPSTAT_WAIT = 0x00000002,
|
||||||
|
COMPSTAT_ABORT = 0x00000004
|
||||||
|
} COMPLETION_STATUS_FLAGS;
|
||||||
|
|
||||||
|
// Flags for GetInformation
|
||||||
|
enum {
|
||||||
|
MMSSF_HASCLOCK = 0x00000001,
|
||||||
|
MMSSF_SUPPORTSEEK = 0x00000002,
|
||||||
|
MMSSF_ASYNCHRONOUS = 0x00000004
|
||||||
|
};
|
||||||
|
|
||||||
|
// Flags for StreamSample::Update
|
||||||
|
enum {
|
||||||
|
SSUPDATE_ASYNC = 0x00000001,
|
||||||
|
SSUPDATE_CONTINUOUS = 0x00000002
|
||||||
|
};
|
||||||
|
|
||||||
|
interface IMultiMediaStream;
|
||||||
|
interface IMediaStream;
|
||||||
|
interface IStreamSample;
|
||||||
|
|
||||||
|
// IMultiMediaStream interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMultiMediaStream : IUnknown {
|
||||||
|
|
||||||
|
HRESULT GetInformation(
|
||||||
|
[out] DWORD *pdwFlags,
|
||||||
|
[out] STREAM_TYPE *pStreamType);
|
||||||
|
|
||||||
|
HRESULT GetMediaStream(
|
||||||
|
[in] REFMSPID idPurpose,
|
||||||
|
[out] IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT EnumMediaStreams(
|
||||||
|
[in] long Index,
|
||||||
|
[out] IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT GetState(
|
||||||
|
[out] STREAM_STATE *pCurrentState);
|
||||||
|
|
||||||
|
HRESULT SetState(
|
||||||
|
[in] STREAM_STATE NewState);
|
||||||
|
|
||||||
|
HRESULT GetTime(
|
||||||
|
[out] STREAM_TIME *pCurrentTime);
|
||||||
|
|
||||||
|
HRESULT GetDuration(
|
||||||
|
[out] STREAM_TIME *pDuration);
|
||||||
|
|
||||||
|
HRESULT Seek(
|
||||||
|
[in] STREAM_TIME SeekTime);
|
||||||
|
|
||||||
|
HRESULT GetEndOfStreamEventHandle(
|
||||||
|
[out] HANDLE *phEOS);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// IMediaStream interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IMediaStream : IUnknown {
|
||||||
|
|
||||||
|
HRESULT GetMultiMediaStream(
|
||||||
|
[out] IMultiMediaStream **ppMultiMediaStream);
|
||||||
|
|
||||||
|
HRESULT GetInformation(
|
||||||
|
[out] MSPID *pPurposeId,
|
||||||
|
[out] STREAM_TYPE *pType);
|
||||||
|
|
||||||
|
HRESULT SetSameFormat(
|
||||||
|
[in] IMediaStream *pStreamThatHasDesiredFormat,
|
||||||
|
[in] DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT AllocateSample(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out] IStreamSample **ppSample);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT CreateSharedSample(
|
||||||
|
[in] IStreamSample *pExistingSample,
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[out] IStreamSample **ppNewSample);
|
||||||
|
|
||||||
|
HRESULT SendEndOfStream(DWORD dwFlags);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// IStreamSample interface
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamSample : IUnknown {
|
||||||
|
|
||||||
|
HRESULT GetMediaStream(
|
||||||
|
[in] IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT GetSampleTimes(
|
||||||
|
[out] STREAM_TIME * pStartTime,
|
||||||
|
[out] STREAM_TIME * pEndTime,
|
||||||
|
[out] STREAM_TIME * pCurrentTime);
|
||||||
|
|
||||||
|
HRESULT SetSampleTimes(
|
||||||
|
[in] const STREAM_TIME *pStartTime,
|
||||||
|
[in] const STREAM_TIME *pEndTime);
|
||||||
|
|
||||||
|
HRESULT Update(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] HANDLE hEvent,
|
||||||
|
[in] PAPCFUNC pfnAPC,
|
||||||
|
[in] DWORD_PTR dwAPCData);
|
||||||
|
|
||||||
|
HRESULT CompletionStatus(
|
||||||
|
[in] DWORD dwFlags,
|
||||||
|
[in] DWORD dwMilliseconds);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1450
third_party/dx9_sdk/include/DShowIDL/mstve.idl
vendored
Normal file
1450
third_party/dx9_sdk/include/DShowIDL/mstve.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1734
third_party/dx9_sdk/include/DShowIDL/qedit.idl
vendored
Normal file
1734
third_party/dx9_sdk/include/DShowIDL/qedit.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
52
third_party/dx9_sdk/include/DShowIDL/regbag.idl
vendored
Normal file
52
third_party/dx9_sdk/include/DShowIDL/regbag.idl
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: RegBag.idl
|
||||||
|
//
|
||||||
|
// Desc: IDL source for RegBag.dll.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
cpp_quote("//+-------------------------------------------------------------------------")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// Microsoft Windows")
|
||||||
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2000.")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("//--------------------------------------------------------------------------")
|
||||||
|
cpp_quote("#pragma once")
|
||||||
|
|
||||||
|
#ifndef DO_NO_IMPORTS
|
||||||
|
import "objidl.idl";
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//*****************************************************************************
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Custom Factory interface
|
||||||
|
// since com doesn't support ctors or initialization parameters on std factory interface
|
||||||
|
// we have a custom creation interface
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//*****************************************************************************
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
[object,
|
||||||
|
hidden, restricted,
|
||||||
|
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
|
||||||
|
helpstring("Create property bag backed by registry"),
|
||||||
|
pointer_default(unique),
|
||||||
|
local
|
||||||
|
]
|
||||||
|
interface ICreatePropBagOnRegKey : IUnknown {
|
||||||
|
// NOTE: it is up to the caller to set the correct registry access based on the interface
|
||||||
|
// and methods the caller intends to use
|
||||||
|
// IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
|
||||||
|
// IPropertyBagXXX::Read requires KEY_READ
|
||||||
|
// IPropertyBagXXX::Write requires KEY_WRITE
|
||||||
|
// also, you must CoTaskMemFree the name string from GetPropertyInfo
|
||||||
|
// if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
|
||||||
|
// registry info will be deleted.
|
||||||
|
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
|
||||||
|
};
|
||||||
|
|
||||||
974
third_party/dx9_sdk/include/DShowIDL/sbe.idl
vendored
Normal file
974
third_party/dx9_sdk/include/DShowIDL/sbe.idl
vendored
Normal file
@ -0,0 +1,974 @@
|
|||||||
|
|
||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) 2002 Microsoft Corporation
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
sbe.idl
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
This module the StreamBuffer interface definitions & CLSIDs, public
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
import "unknwn.idl" ;
|
||||||
|
import "wtypes.idl" ;
|
||||||
|
import "objidl.idl";
|
||||||
|
import "strmif.idl" ;
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// interfaces
|
||||||
|
interface IStreamBufferSink ; // get recording objects
|
||||||
|
interface IStreamBufferSource ; // associates with IStreamBufferSink
|
||||||
|
interface IStreamBufferRecordControl ; // recording control
|
||||||
|
interface IStreamBufferRecordingAttribute ; // StreamBuffer attribute creation
|
||||||
|
interface IEnumStreamBufferRecordingAttrib ; // StreamBuffer attribute enumeration
|
||||||
|
interface IStreamBufferConfigure ; // configuration interface
|
||||||
|
interface IStreamBufferMediaSeeking ; // IMediaSeeking but with different GUID
|
||||||
|
interface IStreamBufferPolicy ; // StreamBuffer policies
|
||||||
|
interface IStreamBufferInitialize ; // allows 3rd party app to set HKEY
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(9ce50f2d-6ba7-40fb-a034-50b1a674ec78),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
[local] interface IStreamBufferInitialize : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetHKEY ()
|
||||||
|
|
||||||
|
Implemented on StreamBufferStreamSink and StreamBufferSource filters.
|
||||||
|
Gives a hosting application the ability to specify HKEY root in
|
||||||
|
registry. This method must called **early**: after the filter is
|
||||||
|
instantiated, but before StreamBufferSource is locked (explicitly or
|
||||||
|
implicitely) if calling the method on StreamBufferSource, or before
|
||||||
|
a source is set (via IStreamBufferSource or IFileSourceFilter) if
|
||||||
|
calling the method on StreamBufferStreamSource. If a call is made
|
||||||
|
after either filter has been initialized internally, the call will
|
||||||
|
fail with E_UNEXPECTED. The hosting application is responsible for
|
||||||
|
ensuring that the HKEY passed in is writable & readable per the
|
||||||
|
logged-on user privileges. The HKEY is duplicated internally,
|
||||||
|
so the caller can close it after making this call.
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetHKEY (
|
||||||
|
[in] HKEY hkeyRoot
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetSIDs ()
|
||||||
|
|
||||||
|
Implemented on StreamBufferStreamSink and StreamBufferSource filters.
|
||||||
|
Provides a way for the hosting application to specify security-level
|
||||||
|
sharing between capture and render processes and contexts. By
|
||||||
|
default security attributes are inherited from the hosting process,
|
||||||
|
unless the application overrides the defaults and provides them via
|
||||||
|
this method.
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetSIDs (
|
||||||
|
[in] DWORD cSIDs,
|
||||||
|
[in, size_is (cSIDs)] PSID * ppSID
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferSink
|
||||||
|
|
||||||
|
Stream Source interface;
|
||||||
|
implemented on the StreamBufferSink filter;
|
||||||
|
Only way to get a recorder object's IUnknown (object will subsequently
|
||||||
|
be associated with this Sink)
|
||||||
|
--*/
|
||||||
|
|
||||||
|
enum {
|
||||||
|
RECORDING_TYPE_CONTENT = 0, // no post-recording or overlapped
|
||||||
|
RECORDING_TYPE_REFERENCE, // allows post-recording & overlapped
|
||||||
|
} ;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(afd1f242-7efd-45ee-ba4e-407a25c9a77a),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferSink : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
LockProfile ()
|
||||||
|
|
||||||
|
1. Locks the profile;
|
||||||
|
2. No *new* input pin connections will be accepted;
|
||||||
|
3. Existing pins that are, or have ever been, connected can be
|
||||||
|
reconnected if the media type is exactly the same as the first
|
||||||
|
successful connection;
|
||||||
|
4. Can be called multiple times safely with NULL parameter, but only
|
||||||
|
once with non-NULL parameter; returns E_UNEXPECTED if called more
|
||||||
|
than once with non-NULL param, or after the hosting filter has run;
|
||||||
|
5. Must be called before the filter that implements this interface is
|
||||||
|
ever run; when it is run, it locks implicitely and this method has
|
||||||
|
no effect if called with NULL parameters, or fails if called with
|
||||||
|
non-NULL parameter for the reasons listed above;
|
||||||
|
6. Errors with VFW_E_UNSUPPORTED_STREAM if there are no streams in the
|
||||||
|
profile;
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
pszStreamBufferFilename
|
||||||
|
|
||||||
|
Is a NULL-terminated filename string. If the content written by
|
||||||
|
this sink is to be shared cross-process, this parameter specifies a
|
||||||
|
filename that will be opened by any reader(s) to read & render the
|
||||||
|
content sent into the sink.
|
||||||
|
|
||||||
|
Can be NULL (not specified)
|
||||||
|
|
||||||
|
Must be a full-path filename; if no path is specified, the file is
|
||||||
|
created in a "current" directory
|
||||||
|
|
||||||
|
If the file already exists, the call fails
|
||||||
|
|
||||||
|
Is opened with DELETE_ON_CLOSE flag, so is automatically deleted
|
||||||
|
when the sink is unlocked, or when the hosting process terminates
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
LockProfile (
|
||||||
|
[in] LPCWSTR pszStreamBufferFilename
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
CreateRecorder ()
|
||||||
|
|
||||||
|
1. Returns a *new* recorder object's IUnknown;
|
||||||
|
2. Caller can call QueryInterface() on the returned pointer to get
|
||||||
|
interface pointers to configure & control the recording;
|
||||||
|
3. Returned IUnknown pointer is ref'd & must be Release()'d by the
|
||||||
|
caller
|
||||||
|
4. IStreamBufferSink interface must have been locked (explicitely or
|
||||||
|
implicitely) prior to call
|
||||||
|
|
||||||
|
To create an ordinary recording, specify RECORDING_TYPE_CONTENT for the
|
||||||
|
dwRecordType parammeter. This will record the content directly into
|
||||||
|
the specified file. These recording types only accept start and stop
|
||||||
|
times that occur in the future.
|
||||||
|
|
||||||
|
A recording of type RECORDING_TYPE_REFERENCE generates a small file
|
||||||
|
that references content saved in temporary storage. Recordings of this
|
||||||
|
type can have start and stop times that occurs in the past, and can
|
||||||
|
overlap other same-type recordings.
|
||||||
|
|
||||||
|
Reference recording *content* will be saved in the same subdirectory as
|
||||||
|
the specified reference file, but with hidden and system attributes.
|
||||||
|
The naming convention of the files will append a _1.sbe, _2.sbe, etc...
|
||||||
|
to the filename (minus extension) specified in the call e.g. a
|
||||||
|
"seinfeld01.sbe" reference file will have saved content in hidden
|
||||||
|
and system files "seinfeld01_1.sbe", "seinfeld01_2.sbe", etc...
|
||||||
|
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
CreateRecorder (
|
||||||
|
[in] LPCWSTR pszFilename,
|
||||||
|
[in] DWORD dwRecordType, // RECORDING_TYPE_CONTENT or RECORDING_TYPE_REFERENCE
|
||||||
|
[out] IUnknown ** pRecordingIUnknown
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
IsProfileLocked ()
|
||||||
|
|
||||||
|
1. Returns S_OK if the profile is locked and S_FALSE if it is not.
|
||||||
|
2. Returns E_FAIL on error.
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
IsProfileLocked (
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferSource ()
|
||||||
|
|
||||||
|
Stream Source reader interface;
|
||||||
|
Implemented on the StreamBufferSource filter;
|
||||||
|
--*/
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(1c5bd776-6ced-4f44-8164-5eab0e98db12),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferSource : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetStreamSink ()
|
||||||
|
|
||||||
|
1. Sets the StreamBuffer Sink that streams from this Source;
|
||||||
|
2. IStreamBufferSink object must be in the same process as this object;
|
||||||
|
3. Interface is AddRef()'d if the call succeeds;
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
pIStreamBufferSink
|
||||||
|
|
||||||
|
Sink that will stream to this Source
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetStreamSink (
|
||||||
|
[in] IStreamBufferSink * pIStreamBufferSink
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferRecordControl
|
||||||
|
|
||||||
|
obtained by QIing IStreamBufferSink::CreateRecorder()-returned IUnknown *
|
||||||
|
--*/
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(ba9b6c99-f3c7-4ff2-92db-cfdd4851bf31),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferRecordControl : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Start ()
|
||||||
|
|
||||||
|
1. Starts a recording;
|
||||||
|
2. Will save to the filename that is specified when this interface's
|
||||||
|
IUnknown is requested (IStreamBufferSink::CreateRecorder());
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
rtStart
|
||||||
|
|
||||||
|
Start time relative to "now;
|
||||||
|
|
||||||
|
If the recording type is a content recording, can only refer to
|
||||||
|
seconds in the future; allowed seconds are [0,5]
|
||||||
|
|
||||||
|
If the recording type is a reference recording, can refer to any
|
||||||
|
time that still has valid content i.e. content that has not yet
|
||||||
|
become stale
|
||||||
|
|
||||||
|
If the recording is a reference recording and (* prtStart) is
|
||||||
|
earlier than the earliest still-valid content, the call will reset
|
||||||
|
it to the earliest content; the value when the recording was
|
||||||
|
actually started will be [out]
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Start (
|
||||||
|
[in,out] REFERENCE_TIME * prtStart
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Stop ()
|
||||||
|
|
||||||
|
1. Stops a recording;
|
||||||
|
2. Closes out the file;
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
rtStart
|
||||||
|
|
||||||
|
Stop time relative to "now;
|
||||||
|
|
||||||
|
If the recording type is a content recording, can only refer to
|
||||||
|
seconds in the future; allowed seconds are [0,5]
|
||||||
|
|
||||||
|
If the recording type is a reference recording, can refer to any
|
||||||
|
time that still has valid content i.e. content that has not yet
|
||||||
|
become stale; stop time cannot be <= start time
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Stop (
|
||||||
|
[in] REFERENCE_TIME rtStop
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetRecordingStatus ()
|
||||||
|
|
||||||
|
1. Retrieves the status of the recording
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
phResult
|
||||||
|
|
||||||
|
The (current) status of writing or closing the recording file;
|
||||||
|
|
||||||
|
Can be NULL;
|
||||||
|
|
||||||
|
pbStarted
|
||||||
|
|
||||||
|
If supplied, set to a non-zero value if the recording has been
|
||||||
|
started
|
||||||
|
|
||||||
|
Can be NULL;
|
||||||
|
|
||||||
|
pbStopped
|
||||||
|
|
||||||
|
If supplied, set to a non-zero value if the recording has been
|
||||||
|
stopped;
|
||||||
|
|
||||||
|
Can be NULL;
|
||||||
|
|
||||||
|
NOTE: If the recording has never been started, it will not be flagged
|
||||||
|
as stopped.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetRecordingStatus (
|
||||||
|
[out] HRESULT * phResult,
|
||||||
|
[out] BOOL * pbStarted,
|
||||||
|
[out] BOOL * pbStopped
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferRecComp
|
||||||
|
|
||||||
|
CoCreateInstance CLSID_StreamBufferComposeRecording and QueryInterface for
|
||||||
|
this interface; this interface allows the creation of a single target
|
||||||
|
content recording which consists of a number of concatenated recordings
|
||||||
|
(reference or content; can mix & match if desired)
|
||||||
|
--*/
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(9E259A9B-8815-42ae-B09F-221970B154FD),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferRecComp : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Initialize ()
|
||||||
|
|
||||||
|
1. Initializes for a target recording
|
||||||
|
|
||||||
|
Parameter Detail
|
||||||
|
----------------
|
||||||
|
|
||||||
|
pszTargetFilename
|
||||||
|
|
||||||
|
Sets the target filename
|
||||||
|
|
||||||
|
Fails if the file already exists
|
||||||
|
|
||||||
|
pszSBRecProfileRef
|
||||||
|
|
||||||
|
Must be a completed, SBE-generated recording
|
||||||
|
|
||||||
|
This recording's profile will be used to define the target profile
|
||||||
|
|
||||||
|
Appended files must have exactly the same profile
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Initialize (
|
||||||
|
[in] LPCWSTR pszTargetFilename,
|
||||||
|
[in] LPCWSTR pszSBRecProfileRef
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Append ()
|
||||||
|
|
||||||
|
1. appends an entire recording
|
||||||
|
2. fails if the recording is live
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Append (
|
||||||
|
[in] LPCWSTR pszSBRecording
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
AppendEx ()
|
||||||
|
|
||||||
|
1. appends the specified portion of the recording; the parameters must
|
||||||
|
be accurate; the call will not readjust them within the boundaries
|
||||||
|
2. the time spread must be at least 2 seconds
|
||||||
|
3. fails if the recording is live
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
AppendEx (
|
||||||
|
[in] LPCWSTR pszSBRecording,
|
||||||
|
[in] REFERENCE_TIME rtStart,
|
||||||
|
[in] REFERENCE_TIME rtStop
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetCurrentLength ()
|
||||||
|
|
||||||
|
1. returns the current length of the recording; updates as recordings
|
||||||
|
are appended;
|
||||||
|
2. can be called repeatedly during a Append() call on another
|
||||||
|
thread;
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetCurrentLength (
|
||||||
|
[out] DWORD * pcSeconds
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Close ()
|
||||||
|
|
||||||
|
1. explicitely closes the recording
|
||||||
|
|
||||||
|
2. final release of interface closes the recording as well
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Close (
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Cancel ()
|
||||||
|
|
||||||
|
1. cancels an in-progress appending operation; has no effect otherwise
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
Cancel (
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferRecordingAttribute
|
||||||
|
|
||||||
|
obtained by calling QueryInterface on a recorder
|
||||||
|
|
||||||
|
well-known attributes:
|
||||||
|
|
||||||
|
NAME DESCRIPTION
|
||||||
|
------------------- ----------------------------------------------------
|
||||||
|
|
||||||
|
Title String containing the content title.
|
||||||
|
|
||||||
|
Author String containing the name of the content author.
|
||||||
|
|
||||||
|
Description String containing a description of the content.
|
||||||
|
|
||||||
|
Rating String containing a content rating.
|
||||||
|
|
||||||
|
Copyright String containing a content copyright message.
|
||||||
|
|
||||||
|
Duration Quadruple word value containing the playing duration
|
||||||
|
of the file, in 100-nanosecond units.
|
||||||
|
|
||||||
|
Bitrate Double word value containing the bit rate.
|
||||||
|
|
||||||
|
Seekable Boolean value; true denoting that the content is
|
||||||
|
seekable.
|
||||||
|
|
||||||
|
Stridable Boolean value, true denoting that the content is
|
||||||
|
stridable (fast forward and rewind are enabled).
|
||||||
|
|
||||||
|
Broadcast Boolean value; true denoting that the content is not
|
||||||
|
copyright-protected, and can be broadcast.
|
||||||
|
|
||||||
|
Use_DRM reserved
|
||||||
|
|
||||||
|
DRM_Flags reserved
|
||||||
|
|
||||||
|
DRM_Level reserved
|
||||||
|
|
||||||
|
Is_Protected reserved
|
||||||
|
|
||||||
|
Is_Trusted reserved
|
||||||
|
|
||||||
|
Signature_Name reserved
|
||||||
|
|
||||||
|
HasAudio Boolean, true denoting the content includes an
|
||||||
|
audio stream.
|
||||||
|
|
||||||
|
HasImage Boolean, true denoting the content includes a still
|
||||||
|
image stream (such as JPEG images).
|
||||||
|
|
||||||
|
HasScript Boolean, true denoting the content includes a script
|
||||||
|
stream.
|
||||||
|
|
||||||
|
HasVideo Boolean, true denoting the content includes a video
|
||||||
|
stream.
|
||||||
|
|
||||||
|
CurrentBitrate Double word containing the current total bitrate,
|
||||||
|
usually used for MEB (multi-bit rate) streams.
|
||||||
|
|
||||||
|
OptimalBitrate Double word containing the minimum total bitrate
|
||||||
|
recommended to stream the content and get
|
||||||
|
maximum quality.
|
||||||
|
|
||||||
|
WM/AlbumTitle String containing the album title.
|
||||||
|
|
||||||
|
WM/Track Double word containing the track number.
|
||||||
|
|
||||||
|
WM/PromotionURL String with a URL to an HTML page that contains
|
||||||
|
information about products and events (such as
|
||||||
|
concerts) that are related to this music.
|
||||||
|
|
||||||
|
WM/AlbumCoverURL String with a URL to an HTML page that contains an
|
||||||
|
image of the album cover and information about
|
||||||
|
the album.
|
||||||
|
|
||||||
|
WM/Genre String with the genre of the music.
|
||||||
|
|
||||||
|
WM/Year String with the year of publication of the music.
|
||||||
|
|
||||||
|
WM/GenreID
|
||||||
|
|
||||||
|
WM/MCDI
|
||||||
|
|
||||||
|
BannerImageType One member of the WMT_ATTR_IMAGETYPE enumeration
|
||||||
|
type.
|
||||||
|
|
||||||
|
BannerImageData The actual image data: a bitmap, JPEG, or GIF image.
|
||||||
|
|
||||||
|
|
||||||
|
BannerImageURL If the banner image is clicked on then this URL is
|
||||||
|
activated.
|
||||||
|
|
||||||
|
CopyrightURL An URL to a copyright page.
|
||||||
|
|
||||||
|
NSC_Name String containing the multicast station contact
|
||||||
|
name (read-only).
|
||||||
|
|
||||||
|
NSC_Address String containing the multicast station contact
|
||||||
|
address (read-only).
|
||||||
|
|
||||||
|
NSC_Phone String containing the multicast station contact
|
||||||
|
phone number (read-only).
|
||||||
|
|
||||||
|
NSC_Email String containing the multicast station contact
|
||||||
|
email address (read-only).
|
||||||
|
|
||||||
|
NSC_Description String containing the multicast station contact
|
||||||
|
description (read-only).
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// List of pre-defined attributes " )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingDuration[] =L\"Duration\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBitrate[] =L\"Bitrate\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSeekable[] =L\"Seekable\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingStridable[] =L\"Stridable\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBroadcast[] =L\"Broadcast\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingProtected[] =L\"Is_Protected\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrusted[] =L\"Is_Trusted\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSignature_Name[] =L\"Signature_Name\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasAudio[] =L\"HasAudio\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasImage[] =L\"HasImage\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasScript[] =L\"HasScript\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasVideo[] =L\"HasVideo\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingCurrentBitrate[] =L\"CurrentBitrate\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingOptimalBitrate[] =L\"OptimalBitrate\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasAttachedImages[] =L\"HasAttachedImages\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSkipBackward[] =L\"Can_Skip_Backward\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingSkipForward[] =L\"Can_Skip_Forward\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNumberOfFrames[] =L\"NumberOfFrames\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingFileSize[] =L\"FileSize\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasArbitraryDataStream[] =L\"HasArbitraryDataStream\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingHasFileTransferStream[] =L\"HasFileTransferStream\";" )
|
||||||
|
cpp_quote( "" )
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// The content description object supports 5 basic attributes." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTitle[] =L\"Title\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAuthor[] =L\"Author\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingDescription[] =L\"Description\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingRating[] =L\"Rating\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingCopyright[] =L\"Copyright\";" )
|
||||||
|
cpp_quote( "" )
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// These attributes are used to configure DRM using IWMDRMWriter::SetDRMAttribute." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingUse_DRM = L\"Use_DRM\";" )
|
||||||
|
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingDRM_Flags = L\"DRM_Flags\";" )
|
||||||
|
cpp_quote( "static const WCHAR *g_wszStreamBufferRecordingDRM_Level = L\"DRM_Level\";" )
|
||||||
|
cpp_quote( "" )
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// These are the additional attributes defined in the WM attribute" )
|
||||||
|
cpp_quote( "// namespace that give information about the content." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumTitle[] =L\"WM/AlbumTitle\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrack[] =L\"WM/Track\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingPromotionURL[] =L\"WM/PromotionURL\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumCoverURL[] =L\"WM/AlbumCoverURL\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingGenre[] =L\"WM/Genre\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingYear[] =L\"WM/Year\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingGenreID[] =L\"WM/GenreID\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingMCDI[] =L\"WM/MCDI\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingComposer[] =L\"WM/Composer\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingLyrics[] =L\"WM/Lyrics\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingTrackNumber[] =L\"WM/TrackNumber\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingToolName[] =L\"WM/ToolName\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingToolVersion[] =L\"WM/ToolVersion\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingIsVBR[] =L\"IsVBR\";" )
|
||||||
|
|
||||||
|
//
|
||||||
|
// WM/AlbumArtist is a potentially different value than Author
|
||||||
|
//
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAlbumArtist[] =L\"WM/AlbumArtist\";" )
|
||||||
|
cpp_quote( "" )
|
||||||
|
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// These optional attributes may be used to give information " )
|
||||||
|
cpp_quote( "// about the branding of the content." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageType[] =L\"BannerImageType\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageData[] =L\"BannerImageData\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingBannerImageURL[] =L\"BannerImageURL\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingCopyrightURL[] =L\"CopyrightURL\";" )
|
||||||
|
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// Optional attributes, used to give information " )
|
||||||
|
cpp_quote( "// about video stream properties." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAspectRatioX[] =L\"AspectRatioX\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingAspectRatioY[] =L\"AspectRatioY\";" )
|
||||||
|
|
||||||
|
cpp_quote( "////////////////////////////////////////////////////////////////" )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "// The NSC file supports the following attributes." )
|
||||||
|
cpp_quote( "//" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNSCName[] =L\"NSC_Name\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNSCAddress[] =L\"NSC_Address\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNSCPhone[] =L\"NSC_Phone\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNSCEmail[] =L\"NSC_Email\";" )
|
||||||
|
cpp_quote( "static const WCHAR g_wszStreamBufferRecordingNSCDescription[] =L\"NSC_Description\";" )
|
||||||
|
cpp_quote( "" )
|
||||||
|
|
||||||
|
//
|
||||||
|
// StreamBuffer Attribute datatypes;
|
||||||
|
//
|
||||||
|
typedef enum {
|
||||||
|
STREAMBUFFER_TYPE_DWORD = 0,
|
||||||
|
STREAMBUFFER_TYPE_STRING = 1,
|
||||||
|
STREAMBUFFER_TYPE_BINARY = 2,
|
||||||
|
STREAMBUFFER_TYPE_BOOL = 3,
|
||||||
|
STREAMBUFFER_TYPE_QWORD = 4,
|
||||||
|
STREAMBUFFER_TYPE_WORD = 5,
|
||||||
|
STREAMBUFFER_TYPE_GUID = 6,
|
||||||
|
} STREAMBUFFER_ATTR_DATATYPE ;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(16CA4E03-FE69-4705-BD41-5B7DFC0C95F3),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferRecordingAttribute : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetAttribute ()
|
||||||
|
|
||||||
|
1. Sets an attribute on a recording object;
|
||||||
|
2. Fails if the IStreamBufferRecordControl::Start has already been successfully
|
||||||
|
called;
|
||||||
|
3. If an attribute of the same name already exists, overwrites the old;
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetAttribute (
|
||||||
|
[in] ULONG ulReserved,
|
||||||
|
[in] LPCWSTR pszAttributeName,
|
||||||
|
[in] STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType,
|
||||||
|
[in] BYTE * pbAttribute,
|
||||||
|
[in] WORD cbAttributeLength
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetAttributeCount ()
|
||||||
|
|
||||||
|
1. Returns the count of attributes currently set;
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetAttributeCount (
|
||||||
|
[in] ULONG ulReserved,
|
||||||
|
[out] WORD * pcAttributes
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetAttributeByName ()
|
||||||
|
|
||||||
|
1. Given a name, returns the attribute data;
|
||||||
|
2. If the provided buffer is too small, returns VFW_E_BUFFER_OVERFLOW,
|
||||||
|
and (* pcbLength) contains the minimum required length of the buffer
|
||||||
|
3. To learn the length of the attribute, pass in non-NULL pcbLength,
|
||||||
|
and NULL pbAttribute parameter; [out] value will be the length of
|
||||||
|
the attribute
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetAttributeByName (
|
||||||
|
[in] LPCWSTR pszAttributeName,
|
||||||
|
[in] ULONG * pulReserved,
|
||||||
|
[out] STREAMBUFFER_ATTR_DATATYPE * pStreamBufferAttributeType,
|
||||||
|
[out] BYTE * pbAttribute,
|
||||||
|
[in, out] WORD * pcbLength
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetAttributeByIndex ()
|
||||||
|
|
||||||
|
1. Given an 0-based index, returns the attribute name and data
|
||||||
|
2. If either buffer is too small, returns VFW_E_BUFFER_OVERFLOW, and
|
||||||
|
(* pcbLength) and (* pcchNameLength) contain the minimum required
|
||||||
|
length of each buffer
|
||||||
|
3. The length returned by pcchNameLength includes the null-terminator
|
||||||
|
4. To learn the length of the name & attribute, pass in non-NULL
|
||||||
|
pcchNameLength & pcbLength, and NULL pszAttributeName & pbAttribute
|
||||||
|
parameters; [out] value of the non-NULL parameters will be the
|
||||||
|
lengths of the name and attribute
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetAttributeByIndex (
|
||||||
|
[in] WORD wIndex,
|
||||||
|
[in] ULONG * pulReserved,
|
||||||
|
[out] WCHAR * pszAttributeName,
|
||||||
|
[in, out] WORD * pcchNameLength, // includes NULL-terminator; in BYTES
|
||||||
|
[out] STREAMBUFFER_ATTR_DATATYPE * pStreamBufferAttributeType,
|
||||||
|
[out] BYTE * pbAttribute,
|
||||||
|
[in, out] WORD * pcbLength
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
EnumAttributes ()
|
||||||
|
|
||||||
|
1. Returns a StreamBuffer attribute enumeration object that snapshots
|
||||||
|
the attributes at time-of-call
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
EnumAttributes (
|
||||||
|
[out] IEnumStreamBufferRecordingAttrib ** ppIEnumStreamBufferAttrib
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IEnumStreamBufferRecordingAttrib
|
||||||
|
|
||||||
|
obtained by calling IStreamBufferRecordingAttribute::EnumAttributes, or
|
||||||
|
calling clone on this interface
|
||||||
|
--*/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
LPWSTR pszName ; // allocated by callee; freed by caller
|
||||||
|
STREAMBUFFER_ATTR_DATATYPE StreamBufferAttributeType ;
|
||||||
|
BYTE * pbAttribute ; // allocated by callee; freed by caller
|
||||||
|
WORD cbLength ;
|
||||||
|
} STREAMBUFFER_ATTRIBUTE ;
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid (C18A9162-1E82-4142-8C73-5690FA62FE33),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IEnumStreamBufferRecordingAttrib : IUnknown
|
||||||
|
{
|
||||||
|
HRESULT
|
||||||
|
Next (
|
||||||
|
[in] ULONG cRequest,
|
||||||
|
[in, out, size_is (cRequest)] STREAMBUFFER_ATTRIBUTE * pStreamBufferAttribute,
|
||||||
|
[out] ULONG * pcReceived
|
||||||
|
) ;
|
||||||
|
|
||||||
|
HRESULT
|
||||||
|
Skip (
|
||||||
|
[in] ULONG cRecords
|
||||||
|
) ;
|
||||||
|
|
||||||
|
HRESULT
|
||||||
|
Reset (
|
||||||
|
) ;
|
||||||
|
|
||||||
|
HRESULT
|
||||||
|
Clone (
|
||||||
|
[out] IEnumStreamBufferRecordingAttrib ** ppIEnumStreamBufferAttrib
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferConfigure
|
||||||
|
|
||||||
|
--*/
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(ce14dfae-4098-4af7-bbf7-d6511f835414),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferConfigure : IUnknown
|
||||||
|
{
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetStreamBufferDirectory ()
|
||||||
|
|
||||||
|
1. Sets the directory where all content is saved, ringbuffer &
|
||||||
|
StreamBuffer;
|
||||||
|
2. Creates directory if necessary;
|
||||||
|
3. All TEMP files have hidden+system attributes
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetDirectory (
|
||||||
|
[in] LPCWSTR pszDirectoryName
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetStreamBufferDirectory ()
|
||||||
|
|
||||||
|
1. Retrieves previously set backing store directory, or default
|
||||||
|
location if none was specified
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetDirectory (
|
||||||
|
[out] LPWSTR * ppszDirectoryName
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetBackingFileCount ()
|
||||||
|
|
||||||
|
1. Sets the number of backing files
|
||||||
|
2. valid values
|
||||||
|
|
||||||
|
4 <= min <= 100
|
||||||
|
6 <= max <= 102
|
||||||
|
min max delta >= 2
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetBackingFileCount (
|
||||||
|
[in] DWORD dwMin,
|
||||||
|
[in] DWORD dwMax
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetBackingFileCount ()
|
||||||
|
|
||||||
|
1. Retrieves previously set backing file counts, or defaults if none
|
||||||
|
have have been set
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetBackingFileCount (
|
||||||
|
[out] DWORD * pdwMin,
|
||||||
|
[out] DWORD * pdwMax
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
SetEachBackingFileDuration ()
|
||||||
|
|
||||||
|
1. Sets the seconds of content each backing file will hold
|
||||||
|
2. valid values:
|
||||||
|
|
||||||
|
dwSeconds >= 15
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
SetBackingFileDuration (
|
||||||
|
[in] DWORD dwSeconds
|
||||||
|
) ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
GetEachBackingFileDuration ()
|
||||||
|
|
||||||
|
1. Retrieves previously set backing file duration, or default of none
|
||||||
|
is set
|
||||||
|
--*/
|
||||||
|
HRESULT
|
||||||
|
GetBackingFileDuration (
|
||||||
|
[out] DWORD * pdwSeconds
|
||||||
|
) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
IStreamBufferMediaSeeking
|
||||||
|
|
||||||
|
Implemented on the StreamBufferSource filter. Used to seek and set the
|
||||||
|
playback rate.
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(f61f5c26-863d-4afa-b0ba-2f81dc978596),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IStreamBufferMediaSeeking : IMediaSeeking
|
||||||
|
{
|
||||||
|
// no additional methods have been added
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*++
|
||||||
|
============================================================================
|
||||||
|
============================================================================
|
||||||
|
events
|
||||||
|
--*/
|
||||||
|
|
||||||
|
// see evcode.h comment for range
|
||||||
|
// stream buffer engine (PVR) 0x0326 - 0x0350 (sbe.idl)
|
||||||
|
|
||||||
|
cpp_quote ("#define STREAMBUFFER_EC_BASE 0x0326")
|
||||||
|
|
||||||
|
cpp_quote ("enum {")
|
||||||
|
cpp_quote (" // timehole event")
|
||||||
|
cpp_quote (" // param1 = timehole stream offset ms")
|
||||||
|
cpp_quote (" // param1 = timehole size ms")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_TIMEHOLE = STREAMBUFFER_EC_BASE,")
|
||||||
|
cpp_quote (" ")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_STALE_DATA_READ,")
|
||||||
|
cpp_quote (" ")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_STALE_FILE_DELETED,")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_CONTENT_BECOMING_STALE,")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_WRITE_FAILURE,")
|
||||||
|
cpp_quote (" //")
|
||||||
|
cpp_quote (" // unexpected read failure")
|
||||||
|
cpp_quote (" // param1 = HRESULT failure")
|
||||||
|
cpp_quote (" // param2 = undefined")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_READ_FAILURE,")
|
||||||
|
cpp_quote (" //")
|
||||||
|
cpp_quote (" // playback rate change")
|
||||||
|
cpp_quote (" // param1 = old_playback_rate * 10000 e.g. 2x is 20000")
|
||||||
|
cpp_quote (" // param2 = new_playback_rate * 10000")
|
||||||
|
cpp_quote (" STREAMBUFFER_EC_RATE_CHANGED,")
|
||||||
|
cpp_quote ("} ;")
|
||||||
|
|
||||||
51
third_party/dx9_sdk/include/DShowIDL/strmif.idl
vendored
Normal file
51
third_party/dx9_sdk/include/DShowIDL/strmif.idl
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: StrmIf.idl
|
||||||
|
//
|
||||||
|
// Desc: ActiveMovie interface definitions.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992 - 2002, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//
|
||||||
|
// Temporarily disable the /W4 compiler warning C4201, which will be
|
||||||
|
// reported by all apps which include streams.h or dshow.h, which both
|
||||||
|
// include the strmif.h generated by this IDL file.
|
||||||
|
//
|
||||||
|
cpp_quote("//+-------------------------------------------------------------------------")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2002.")
|
||||||
|
cpp_quote("//")
|
||||||
|
cpp_quote("//--------------------------------------------------------------------------")
|
||||||
|
cpp_quote("// Disable /W4 compiler warning C4201: nameless struct/union")
|
||||||
|
cpp_quote("#pragma warning(push)")
|
||||||
|
cpp_quote("#pragma warning(disable:4201) // Disable C4201: nameless struct/union")
|
||||||
|
cpp_quote(" ") // Blank space
|
||||||
|
|
||||||
|
|
||||||
|
import "unknwn.idl";
|
||||||
|
import "objidl.idl"; // for IPersist (IFilter's root)
|
||||||
|
|
||||||
|
#include "devenum.idl"
|
||||||
|
|
||||||
|
// core interfaces
|
||||||
|
#include "axcore.idl"
|
||||||
|
|
||||||
|
// extended, ActiveMovie-only interfaces
|
||||||
|
#include "axextend.idl"
|
||||||
|
|
||||||
|
// application interfaces for DVD
|
||||||
|
#include "dvdif.idl"
|
||||||
|
|
||||||
|
// Dynamic graph stuff
|
||||||
|
#include "dyngraph.idl"
|
||||||
|
|
||||||
|
|
||||||
|
// Video Mixing Renderer
|
||||||
|
#include "VMRender.idl"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Restore the previous setting for C4201 compiler warning
|
||||||
|
//
|
||||||
|
cpp_quote("// Restore the previous setting for C4201 compiler warning")
|
||||||
|
cpp_quote("#pragma warning(pop)")
|
||||||
2254
third_party/dx9_sdk/include/DShowIDL/tuner.idl
vendored
Normal file
2254
third_party/dx9_sdk/include/DShowIDL/tuner.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
242
third_party/dx9_sdk/include/DShowIDL/tvratings.idl
vendored
Normal file
242
third_party/dx9_sdk/include/DShowIDL/tvratings.idl
vendored
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
// TvRatings.idl : IDL source for TvRatings.dll
|
||||||
|
//
|
||||||
|
|
||||||
|
// This file will be processed by the MIDL tool to
|
||||||
|
// produce the type library (TvRatings.tlb) and marshalling code.
|
||||||
|
|
||||||
|
import "oaidl.idl";
|
||||||
|
import "ocidl.idl";
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPAA = 0,
|
||||||
|
US_TV = 1,
|
||||||
|
Canadian_English = 2,
|
||||||
|
Canadian_French = 3,
|
||||||
|
Reserved4 = 4, // filler - not used.
|
||||||
|
System5 = 5, // maps to system 5 of XDS rating table 19
|
||||||
|
System6 = 6, // maps to system 6 of XDS rating table 19
|
||||||
|
Reserved7 = 7, // filler - not used.
|
||||||
|
TvRat_kSystems = 8, // used for allocating structures
|
||||||
|
TvRat_SystemDontKnow = 255 // haven't gotten a data value yet... (perhaps change to 0)
|
||||||
|
} EnTvRat_System;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum // constraint is that must be in increasing order, and max < 2^8
|
||||||
|
{
|
||||||
|
TvRat_0 = 0,
|
||||||
|
TvRat_1 = 1,
|
||||||
|
TvRat_2 = 2,
|
||||||
|
TvRat_3 = 3,
|
||||||
|
TvRat_4 = 4,
|
||||||
|
TvRat_5 = 5,
|
||||||
|
TvRat_6 = 6,
|
||||||
|
TvRat_7 = 7,
|
||||||
|
TvRat_kLevels = 8, // used for allocating structures
|
||||||
|
TvRat_LevelDontKnow = 255 // haven't gotten a data value yet... (perhaps change to _7)
|
||||||
|
} EnTvRat_GenericLevel;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPAA_NotApplicable = TvRat_0,
|
||||||
|
MPAA_G = TvRat_1,
|
||||||
|
MPAA_PG = TvRat_2,
|
||||||
|
MPAA_PG13 = TvRat_3,
|
||||||
|
MPAA_R = TvRat_4,
|
||||||
|
MPAA_NC17 = TvRat_5,
|
||||||
|
MPAA_X = TvRat_6,
|
||||||
|
MPAA_NotRated = TvRat_7
|
||||||
|
} EnTvRat_MPAA;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
US_TV_None = TvRat_0,
|
||||||
|
US_TV_Y = TvRat_1,
|
||||||
|
US_TV_Y7 = TvRat_2,
|
||||||
|
US_TV_G = TvRat_3,
|
||||||
|
US_TV_PG = TvRat_4,
|
||||||
|
US_TV_14 = TvRat_5,
|
||||||
|
US_TV_MA = TvRat_6,
|
||||||
|
US_TV_None7 = TvRat_7
|
||||||
|
} EnTvRat_US_TV;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CAE_TV_Exempt = TvRat_0,
|
||||||
|
CAE_TV_C = TvRat_1,
|
||||||
|
CAE_TV_C8 = TvRat_2,
|
||||||
|
CAE_TV_G = TvRat_3,
|
||||||
|
CAE_TV_PG = TvRat_4,
|
||||||
|
CAE_TV_14 = TvRat_5,
|
||||||
|
CAE_TV_18 = TvRat_6,
|
||||||
|
CAE_TV_Reserved = TvRat_7
|
||||||
|
} EnTvRat_CAE_TV;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CAF_TV_Exempt = TvRat_0,
|
||||||
|
CAF_TV_G = TvRat_1,
|
||||||
|
CAF_TV_8 = TvRat_2,
|
||||||
|
CAF_TV_13 = TvRat_3,
|
||||||
|
CAF_TV_16 = TvRat_4,
|
||||||
|
CAF_TV_18 = TvRat_5,
|
||||||
|
CAF_TV_Reserved6 = TvRat_6,
|
||||||
|
CAF_TV_Reserved = TvRat_7
|
||||||
|
} EnTvRat_CAF_TV;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BfAttrNone = 0, // no bits set (for initialization)
|
||||||
|
BfIsBlocked = 1, // if set,
|
||||||
|
BfIsAttr_1 = 2,
|
||||||
|
BfIsAttr_2 = 4,
|
||||||
|
BfIsAttr_3 = 8,
|
||||||
|
BfIsAttr_4 = 16,
|
||||||
|
BfIsAttr_5 = 32, // no bits set...
|
||||||
|
BfIsAttr_6 = 64,
|
||||||
|
BfIsAttr_7 = 128,
|
||||||
|
BfValidAttrSubmask = 255 // IsBlocked is not a valid attribute to display
|
||||||
|
} BfEnTvRat_GenericAttributes;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
US_TV_IsBlocked = BfIsBlocked,
|
||||||
|
US_TV_IsViolent = BfIsAttr_1,
|
||||||
|
US_TV_IsSexualSituation = BfIsAttr_2,
|
||||||
|
US_TV_IsAdultLanguage = BfIsAttr_3,
|
||||||
|
US_TV_IsSexuallySuggestiveDialog = BfIsAttr_4,
|
||||||
|
US_TV_ValidAttrSubmask = 31 // IsBlocked is not a valid attribute for TV
|
||||||
|
} BfEnTvRat_Attributes_US_TV;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MPAA_IsBlocked = BfIsBlocked,
|
||||||
|
MPAA_ValidAttrSubmask = 1 // IsBlocked is not a valid attribute
|
||||||
|
} BfEnTvRat_Attributes_MPAA;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CAE_IsBlocked = BfIsBlocked,
|
||||||
|
CAE_ValidAttrSubmask = 1 // IsBlocked is not a valid attribute
|
||||||
|
} BfEnTvRat_Attributes_CAE_TV;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CAF_IsBlocked = BfIsBlocked,
|
||||||
|
CAF_ValidAttrSubmask = 1 // IsBlocked is not a valid attribute
|
||||||
|
} BfEnTvRat_Attributes_CAF_TV;
|
||||||
|
|
||||||
|
// -------------------------------------------------------
|
||||||
|
// -------------------------------------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(C5C5C5B0-3ABC-11D6-B25B-00C04FA0C026),
|
||||||
|
dual,
|
||||||
|
helpstring("IXDSToRat Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IXDSToRat : IDispatch
|
||||||
|
{
|
||||||
|
[id(1), helpstring("method Init")]
|
||||||
|
HRESULT Init();
|
||||||
|
|
||||||
|
[id(2), helpstring("method ParseXDSBytePair")]
|
||||||
|
HRESULT ParseXDSBytePair(
|
||||||
|
[in] BYTE byte1,
|
||||||
|
[in] BYTE byte2,
|
||||||
|
[out] EnTvRat_System *pEnSystem,
|
||||||
|
[out] EnTvRat_GenericLevel *pEnLevel,
|
||||||
|
[out] LONG *plBfEnAttributes // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// ------------------------
|
||||||
|
[
|
||||||
|
object,
|
||||||
|
uuid(C5C5C5B1-3ABC-11D6-B25B-00C04FA0C026),
|
||||||
|
dual,
|
||||||
|
helpstring("IEvalRat Interface"),
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface IEvalRat : IDispatch
|
||||||
|
{
|
||||||
|
[propget, id(1), helpstring("property BlockedRatingAttributes")]
|
||||||
|
HRESULT BlockedRatingAttributes(
|
||||||
|
[in] EnTvRat_System enSystem,
|
||||||
|
[in] EnTvRat_GenericLevel enLevel,
|
||||||
|
[out, retval] LONG *plbfAttrs // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
);
|
||||||
|
|
||||||
|
[propput, id(1), helpstring("property BlockedRatingAttributes")]
|
||||||
|
HRESULT BlockedRatingAttributes(
|
||||||
|
[in] EnTvRat_System enSystem,
|
||||||
|
[in] EnTvRat_GenericLevel enLevel,
|
||||||
|
[in] LONG lbfAttrs // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
);
|
||||||
|
|
||||||
|
[propget, id(2), helpstring("property BlockUnRated")]
|
||||||
|
HRESULT BlockUnRated(
|
||||||
|
[out, retval] BOOL *pfBlockUnRatedShows
|
||||||
|
);
|
||||||
|
|
||||||
|
[propput, id(2), helpstring("property BlockUnRated")]
|
||||||
|
HRESULT BlockUnRated(
|
||||||
|
[in] BOOL fBlockUnRatedShows
|
||||||
|
);
|
||||||
|
|
||||||
|
[ id(3), helpstring("method MostRestrictiveRating")]
|
||||||
|
HRESULT MostRestrictiveRating(
|
||||||
|
[in] EnTvRat_System enSystem1,
|
||||||
|
[in] EnTvRat_GenericLevel enEnLevel1,
|
||||||
|
[in] LONG lbfEnAttr1, // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
[in] EnTvRat_System enSystem2,
|
||||||
|
[in] EnTvRat_GenericLevel enEnLevel2,
|
||||||
|
[in] LONG lbfEnAttr2, // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
[out] EnTvRat_System *penSystem,
|
||||||
|
[out] EnTvRat_GenericLevel *penEnLevel,
|
||||||
|
[out] LONG *plbfEnAttr // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
);
|
||||||
|
|
||||||
|
[ id(4), helpstring("method TestRating")]
|
||||||
|
HRESULT TestRating(
|
||||||
|
[in] EnTvRat_System enShowSystem,
|
||||||
|
[in] EnTvRat_GenericLevel enShowLevel,
|
||||||
|
[in] LONG lbfEnShowAttributes // bitfield of BfEnTvRat_GenericAttributes
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// This is enforcing a particular implementation on folk...
|
||||||
|
// Don't need this particular TypeLib, just as long
|
||||||
|
// as some library/libraries exists that supports the two coClasses,
|
||||||
|
// with the give ClassID's.
|
||||||
|
[
|
||||||
|
uuid(C5C5C500-3ABC-11D6-B25B-00C04FA0C026),
|
||||||
|
version(1.0),
|
||||||
|
helpstring("TvRatings 1.0 Type Library")
|
||||||
|
]
|
||||||
|
library TVRATINGSLib
|
||||||
|
{
|
||||||
|
importlib("stdole32.tlb");
|
||||||
|
importlib("stdole2.tlb");
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(C5C5C5F0-3ABC-11D6-B25B-00C04FA0C026),
|
||||||
|
helpstring("XDSToRat Class")
|
||||||
|
]
|
||||||
|
coclass XDSToRat
|
||||||
|
{
|
||||||
|
[default] interface IXDSToRat;
|
||||||
|
};
|
||||||
|
[
|
||||||
|
uuid(C5C5C5F1-3ABC-11D6-B25B-00C04FA0C026),
|
||||||
|
helpstring("EvalRat Class")
|
||||||
|
]
|
||||||
|
coclass EvalRat
|
||||||
|
{
|
||||||
|
[default] interface IEvalRat;
|
||||||
|
};
|
||||||
|
};
|
||||||
1041
third_party/dx9_sdk/include/DShowIDL/vmr9.idl
vendored
Normal file
1041
third_party/dx9_sdk/include/DShowIDL/vmr9.idl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
187
third_party/dx9_sdk/include/DxDiag.h
vendored
Normal file
187
third_party/dx9_sdk/include/DxDiag.h
vendored
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* File: dxdiag.h
|
||||||
|
* Content: DirectX Diagnostic Tool include file
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _DXDIAG_H_
|
||||||
|
#define _DXDIAG_H_
|
||||||
|
|
||||||
|
#include <ole2.h> // for DECLARE_INTERFACE_ and HRESULT
|
||||||
|
|
||||||
|
// This identifier is passed to IDxDiagProvider::Initialize in order to ensure that an
|
||||||
|
// application was built against the correct header files. This number is
|
||||||
|
// incremented whenever a header (or other) change would require applications
|
||||||
|
// to be rebuilt. If the version doesn't match, IDxDiagProvider::Initialize will fail.
|
||||||
|
// (The number itself has no meaning.)
|
||||||
|
#define DXDIAG_DX9_SDK_VERSION 111
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag Errors
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
#define DXDIAG_E_INSUFFICIENT_BUFFER ((HRESULT)0x8007007AL) // HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag CLSIDs
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
// {A65B8071-3BFE-4213-9A5B-491DA4461CA7}
|
||||||
|
DEFINE_GUID(CLSID_DxDiagProvider,
|
||||||
|
0xA65B8071, 0x3BFE, 0x4213, 0x9A, 0x5B, 0x49, 0x1D, 0xA4, 0x46, 0x1C, 0xA7);
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag Interface IIDs
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
// {9C6B4CB0-23F8-49CC-A3ED-45A55000A6D2}
|
||||||
|
DEFINE_GUID(IID_IDxDiagProvider,
|
||||||
|
0x9C6B4CB0, 0x23F8, 0x49CC, 0xA3, 0xED, 0x45, 0xA5, 0x50, 0x00, 0xA6, 0xD2);
|
||||||
|
|
||||||
|
// {0x7D0F462F-0x4064-0x4862-BC7F-933E5058C10F}
|
||||||
|
DEFINE_GUID(IID_IDxDiagContainer,
|
||||||
|
0x7D0F462F, 0x4064, 0x4862, 0xBC, 0x7F, 0x93, 0x3E, 0x50, 0x58, 0xC1, 0x0F);
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag Interface Pointer definitions
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
typedef struct IDxDiagProvider *LPDXDIAGPROVIDER, *PDXDIAGPROVIDER;
|
||||||
|
|
||||||
|
typedef struct IDxDiagContainer *LPDXDIAGCONTAINER, *PDXDIAGCONTAINER;
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag Structures
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
typedef struct _DXDIAG_INIT_PARAMS
|
||||||
|
{
|
||||||
|
DWORD dwSize; // Size of this structure.
|
||||||
|
DWORD dwDxDiagHeaderVersion; // Pass in DXDIAG_DX9_SDK_VERSION. This verifies
|
||||||
|
// the header and dll are correctly matched.
|
||||||
|
BOOL bAllowWHQLChecks; // If true, allow dxdiag to check if drivers are
|
||||||
|
// digital signed as logo'd by WHQL which may
|
||||||
|
// connect via internet to update WHQL certificates.
|
||||||
|
VOID* pReserved; // Reserved. Must be NULL.
|
||||||
|
} DXDIAG_INIT_PARAMS;
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag Application Interfaces
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
//
|
||||||
|
// COM definition for IDxDiagProvider
|
||||||
|
//
|
||||||
|
#undef INTERFACE // External COM Implementation
|
||||||
|
#define INTERFACE IDxDiagProvider
|
||||||
|
DECLARE_INTERFACE_(IDxDiagProvider,IUnknown)
|
||||||
|
{
|
||||||
|
/*** IUnknown methods ***/
|
||||||
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||||||
|
|
||||||
|
/*** IDxDiagProvider methods ***/
|
||||||
|
STDMETHOD(Initialize) (THIS_ DXDIAG_INIT_PARAMS* pParams) PURE;
|
||||||
|
STDMETHOD(GetRootContainer) (THIS_ IDxDiagContainer **ppInstance) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// COM definition for IDxDiagContainer
|
||||||
|
//
|
||||||
|
#undef INTERFACE // External COM Implementation
|
||||||
|
#define INTERFACE IDxDiagContainer
|
||||||
|
DECLARE_INTERFACE_(IDxDiagContainer,IUnknown)
|
||||||
|
{
|
||||||
|
/*** IUnknown methods ***/
|
||||||
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
||||||
|
|
||||||
|
/*** IDxDiagContainer methods ***/
|
||||||
|
STDMETHOD(GetNumberOfChildContainers) (THIS_ DWORD *pdwCount) PURE;
|
||||||
|
STDMETHOD(EnumChildContainerNames) (THIS_ DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) PURE;
|
||||||
|
STDMETHOD(GetChildContainer) (THIS_ LPCWSTR pwszContainer, IDxDiagContainer **ppInstance) PURE;
|
||||||
|
STDMETHOD(GetNumberOfProps) (THIS_ DWORD *pdwCount) PURE;
|
||||||
|
STDMETHOD(EnumPropNames) (THIS_ DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) PURE;
|
||||||
|
STDMETHOD(GetProp) (THIS_ LPCWSTR pwszPropName, VARIANT *pvarProp) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* DxDiag application interface macros
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#if !defined(__cplusplus) || defined(CINTERFACE)
|
||||||
|
|
||||||
|
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
||||||
|
#define IDxDiagProvider_AddRef(p) (p)->lpVtbl->AddRef(p)
|
||||||
|
#define IDxDiagProvider_Release(p) (p)->lpVtbl->Release(p)
|
||||||
|
#define IDxDiagProvider_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b)
|
||||||
|
#define IDxDiagProvider_GetRootContainer(p,a) (p)->lpVtbl->GetRootContainer(p,a)
|
||||||
|
|
||||||
|
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
|
||||||
|
#define IDxDiagContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
|
||||||
|
#define IDxDiagContainer_Release(p) (p)->lpVtbl->Release(p)
|
||||||
|
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->lpVtbl->GetNumberOfChildContainers(p,a)
|
||||||
|
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->lpVtbl->EnumChildContainerNames(p,a,b,c)
|
||||||
|
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->lpVtbl->GetChildContainer(p,a,b)
|
||||||
|
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->lpVtbl->GetNumberOfProps(p,a)
|
||||||
|
#define IDxDiagContainer_EnumProps(p,a,b) (p)->lpVtbl->EnumProps(p,a,b,c)
|
||||||
|
#define IDxDiagContainer_GetProp(p,a,b) (p)->lpVtbl->GetProp(p,a,b)
|
||||||
|
|
||||||
|
#else /* C++ */
|
||||||
|
|
||||||
|
#define IDxDiagProvider_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
|
||||||
|
#define IDxDiagProvider_AddRef(p) (p)->AddRef(p)
|
||||||
|
#define IDxDiagProvider_Release(p) (p)->Release(p)
|
||||||
|
#define IDxDiagProvider_Initialize(p,a,b) (p)->Initialize(p,a,b)
|
||||||
|
#define IDxDiagProvider_GetRootContainer(p,a) (p)->GetRootContainer(p,a)
|
||||||
|
|
||||||
|
#define IDxDiagContainer_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b)
|
||||||
|
#define IDxDiagContainer_AddRef(p) (p)->AddRef(p)
|
||||||
|
#define IDxDiagContainer_Release(p) (p)->Release(p)
|
||||||
|
#define IDxDiagContainer_GetNumberOfChildContainers(p,a) (p)->GetNumberOfChildContainers(p,a)
|
||||||
|
#define IDxDiagContainer_EnumChildContainerNames(p,a,b,c) (p)->EnumChildContainerNames(p,a,b,c)
|
||||||
|
#define IDxDiagContainer_GetChildContainer(p,a,b) (p)->GetChildContainer(p,a,b)
|
||||||
|
#define IDxDiagContainer_GetNumberOfProps(p,a) (p)->GetNumberOfProps(p,a)
|
||||||
|
#define IDxDiagContainer_EnumProps(p,a,b) (p)->EnumProps(p,a,b,c)
|
||||||
|
#define IDxDiagContainer_GetProp(p,a,b) (p)->GetProp(p,a,b)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _DXDIAG_H_ */
|
||||||
|
|
||||||
|
|
||||||
117
third_party/dx9_sdk/include/Iwstdec.h
vendored
Normal file
117
third_party/dx9_sdk/include/Iwstdec.h
vendored
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: iwstdec.h
|
||||||
|
//
|
||||||
|
// Desc: WST Decoder related definitions and interfaces for ActiveMovie
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef __IWSTDEC__
|
||||||
|
#define __IWSTDEC__
|
||||||
|
|
||||||
|
//
|
||||||
|
// Some data types used as WST decoder parameters by the interface
|
||||||
|
//
|
||||||
|
typedef struct _AM_WST_PAGE {
|
||||||
|
DWORD dwPageNr ;
|
||||||
|
DWORD dwSubPageNr ;
|
||||||
|
BYTE *pucPageData;
|
||||||
|
} AM_WST_PAGE, *PAM_WST_PAGE ;
|
||||||
|
|
||||||
|
typedef enum _AM_WST_LEVEL {
|
||||||
|
AM_WST_LEVEL_1_5 = 0
|
||||||
|
} AM_WST_LEVEL, *PAM_WST_LEVEL ;
|
||||||
|
|
||||||
|
typedef enum _AM_WST_SERVICE {
|
||||||
|
AM_WST_SERVICE_None = 0,
|
||||||
|
AM_WST_SERVICE_Text,
|
||||||
|
AM_WST_SERVICE_IDS,
|
||||||
|
AM_WST_SERVICE_Invalid
|
||||||
|
} AM_WST_SERVICE, *PAM_WST_SERVICE ;
|
||||||
|
|
||||||
|
typedef enum _AM_WST_STATE {
|
||||||
|
AM_WST_STATE_Off = 0,
|
||||||
|
AM_WST_STATE_On
|
||||||
|
} AM_WST_STATE, *PAM_WST_STATE ;
|
||||||
|
|
||||||
|
typedef enum _AM_WST_STYLE {
|
||||||
|
AM_WST_STYLE_None = 0,
|
||||||
|
AM_WST_STYLE_Invers
|
||||||
|
} AM_WST_STYLE, *PAM_WST_STYLE ;
|
||||||
|
|
||||||
|
typedef enum _AM_WST_DRAWBGMODE {
|
||||||
|
AM_WST_DRAWBGMODE_Opaque,
|
||||||
|
AM_WST_DRAWBGMODE_Transparent
|
||||||
|
} AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE ;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
//
|
||||||
|
// WST Decoder standard COM interface
|
||||||
|
//
|
||||||
|
DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//
|
||||||
|
// Decoder options to be used by apps
|
||||||
|
//
|
||||||
|
|
||||||
|
// What is the decoder's level
|
||||||
|
STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE ;
|
||||||
|
|
||||||
|
// STDMETHOD(SetDecoderLevel)(THIS_ AM_WST_LEVEL Level) PURE ;
|
||||||
|
|
||||||
|
// Which of the services is being currently used
|
||||||
|
STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE ;
|
||||||
|
// STDMETHOD(SetCurrentService)(THIS_ AM_WST_SERVICE Service) PURE ;
|
||||||
|
|
||||||
|
// Query/Set the service state (On/Off)
|
||||||
|
// supported state values are AM_WSTState_On and AM_WSTState_Off
|
||||||
|
STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE ;
|
||||||
|
STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Output options to be used by downstream filters
|
||||||
|
//
|
||||||
|
|
||||||
|
// What size, bitdepth etc should the output video be
|
||||||
|
STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
|
||||||
|
// GetOutputFormat() method, if successful, returns
|
||||||
|
// 1. S_FALSE if no output format has so far been defined by downstream filters
|
||||||
|
// 2. S_OK if an output format has already been defined by downstream filters
|
||||||
|
STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
|
||||||
|
|
||||||
|
// Specify physical color to be used in colorkeying the background
|
||||||
|
// for overlay mixing
|
||||||
|
STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
|
||||||
|
STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
|
||||||
|
|
||||||
|
// Specify if whole output bitmap should be redrawn for each sample
|
||||||
|
STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
|
||||||
|
STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
|
||||||
|
|
||||||
|
// Specify if the caption text background should be opaque/transparent
|
||||||
|
STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE ;
|
||||||
|
STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE ;
|
||||||
|
// supported mode values are AM_WST_DrawBGMode_Opaque and
|
||||||
|
// AM_WST_DrawBGMode_Transparent
|
||||||
|
|
||||||
|
STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE ;
|
||||||
|
STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE ;
|
||||||
|
|
||||||
|
STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE ;
|
||||||
|
STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE ;
|
||||||
|
|
||||||
|
STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
|
||||||
|
STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
#endif // __IWSTDEC__
|
||||||
95
third_party/dx9_sdk/include/Mpeg2Bits.h
vendored
Normal file
95
third_party/dx9_sdk/include/Mpeg2Bits.h
vendored
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// Module Name:
|
||||||
|
//
|
||||||
|
// Mpeg2Bits.h
|
||||||
|
//
|
||||||
|
// Abstract:
|
||||||
|
//
|
||||||
|
// This file defines the MPEG-2 section header bitfields. These are
|
||||||
|
// defined here instead of in mpegstructs.idl because of MIDL
|
||||||
|
// compiler conflicts with bitfield definitions.
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#pragma pack(push)
|
||||||
|
#pragma pack(1)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// PID structure
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __midl
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD Bits;
|
||||||
|
} PID_BITS_MIDL;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD Reserved : 3;
|
||||||
|
WORD ProgramId : 13;
|
||||||
|
} PID_BITS, *PPID_BITS;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Generic MPEG packet header structure
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __midl
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD Bits;
|
||||||
|
} MPEG_HEADER_BITS_MIDL;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
WORD SectionLength : 12;
|
||||||
|
WORD Reserved : 2;
|
||||||
|
WORD PrivateIndicator : 1;
|
||||||
|
WORD SectionSyntaxIndicator : 1;
|
||||||
|
} MPEG_HEADER_BITS, *PMPEG_HEADER_BITS;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long MPEG packet header structure
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __midl
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE Bits;
|
||||||
|
} MPEG_HEADER_VERSION_BITS_MIDL;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
BYTE CurrentNextIndicator : 1;
|
||||||
|
BYTE VersionNumber : 5;
|
||||||
|
BYTE Reserved : 2;
|
||||||
|
} MPEG_HEADER_VERSION_BITS, *PMPEG_HEADER_VERSION_BITS;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#pragma pack(pop)
|
||||||
62
third_party/dx9_sdk/include/Mpeg2Error.h
vendored
Normal file
62
third_party/dx9_sdk/include/Mpeg2Error.h
vendored
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// Module Name:
|
||||||
|
//
|
||||||
|
// MPEGError.h
|
||||||
|
//
|
||||||
|
// Abstract:
|
||||||
|
//
|
||||||
|
// Interface specific HRESULT error codes for MPEG-2 tables.
|
||||||
|
//
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Interface specific SUCCESS and ERROR macros
|
||||||
|
#define MAKE_S_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, (x))
|
||||||
|
#define MAKE_E_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, (x))
|
||||||
|
|
||||||
|
// MPEG-2 base HRESULT code (must be at least 0x200)
|
||||||
|
const unsigned int MPEG2_BASE = 0x200;
|
||||||
|
|
||||||
|
// MPEG-2 Success HRESULTs
|
||||||
|
const HRESULT MPEG2_S_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 0);
|
||||||
|
const HRESULT MPEG2_S_NO_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 1);
|
||||||
|
const HRESULT MPEG2_S_SG_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 2);
|
||||||
|
const HRESULT MPEG2_S_SG_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 3);
|
||||||
|
const HRESULT MPEG2_S_MPE_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 4);
|
||||||
|
const HRESULT MPEG2_S_MPE_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 5);
|
||||||
|
const HRESULT MPEG2_S_NEW_MODULE_VERSION = MAKE_S_ITF_HRESULT(MPEG2_BASE + 6);
|
||||||
|
|
||||||
|
// MPEG-2 Error HRESULTs
|
||||||
|
const HRESULT MPEG2_E_UNINITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 0);
|
||||||
|
const HRESULT MPEG2_E_ALREADY_INITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 1);
|
||||||
|
const HRESULT MPEG2_E_OUT_OF_BOUNDS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 2);
|
||||||
|
const HRESULT MPEG2_E_MALFORMED_TABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 3);
|
||||||
|
const HRESULT MPEG2_E_UNDEFINED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 4);
|
||||||
|
const HRESULT MPEG2_E_NOT_PRESENT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 5);
|
||||||
|
const HRESULT MPEG2_E_SECTION_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 6);
|
||||||
|
const HRESULT MPEG2_E_TX_STREAM_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 7);
|
||||||
|
const HRESULT MPEG2_E_SERVICE_ID_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 8);
|
||||||
|
const HRESULT MPEG2_E_SERVICE_PMT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 9);
|
||||||
|
const HRESULT MPEG2_E_DSI_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 10);
|
||||||
|
const HRESULT MPEG2_E_SERVER_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 11);
|
||||||
|
const HRESULT MPEG2_E_INVALID_CAROUSEL_ID = MAKE_E_ITF_HRESULT(MPEG2_BASE + 12);
|
||||||
|
const HRESULT MPEG2_E_MALFORMED_DSMCC_MESSAGE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 13);
|
||||||
|
const HRESULT MPEG2_E_INVALID_SG_OBJECT_KIND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 14);
|
||||||
|
const HRESULT MPEG2_E_OBJECT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 15);
|
||||||
|
const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_DIRECTORY = MAKE_E_ITF_HRESULT(MPEG2_BASE + 16);
|
||||||
|
const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_FILE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 17);
|
||||||
|
const HRESULT MPEG2_E_FILE_OFFSET_TOO_BIG = MAKE_E_ITF_HRESULT(MPEG2_BASE + 18);
|
||||||
|
const HRESULT MPEG2_E_STREAM_STOPPED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 19);
|
||||||
|
const HRESULT MPEG2_E_REGISTRY_ACCESS_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 20);
|
||||||
|
const HRESULT MPEG2_E_INVALID_UDP_PORT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 21);
|
||||||
|
const HRESULT MPEG2_E_DATA_SOURCE_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 22);
|
||||||
|
const HRESULT MPEG2_E_DII_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 23);
|
||||||
|
const HRESULT MPEG2_E_DSHOW_PIN_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 24);
|
||||||
|
const HRESULT MPEG2_E_BUFFER_TOO_SMALL = MAKE_E_ITF_HRESULT(MPEG2_BASE + 25);
|
||||||
|
const HRESULT MPEG2_E_MISSING_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 26);
|
||||||
|
const HRESULT MPEG2_E_TOO_MANY_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 27);
|
||||||
|
const HRESULT MPEG2_E_NEXT_TABLE_OPS_NOT_AVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 28);
|
||||||
8367
third_party/dx9_sdk/include/Mstvca.h
vendored
Normal file
8367
third_party/dx9_sdk/include/Mstvca.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13130
third_party/dx9_sdk/include/Mstve.h
vendored
Normal file
13130
third_party/dx9_sdk/include/Mstve.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2413
third_party/dx9_sdk/include/Msvidctl.h
vendored
Normal file
2413
third_party/dx9_sdk/include/Msvidctl.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
third_party/dx9_sdk/include/Msvidctl.tlb
vendored
Normal file
BIN
third_party/dx9_sdk/include/Msvidctl.tlb
vendored
Normal file
Binary file not shown.
16115
third_party/dx9_sdk/include/Segment.h
vendored
Normal file
16115
third_party/dx9_sdk/include/Segment.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
third_party/dx9_sdk/include/Tuner.tlb
vendored
Normal file
BIN
third_party/dx9_sdk/include/Tuner.tlb
vendored
Normal file
Binary file not shown.
19
third_party/dx9_sdk/include/activecf.h
vendored
Normal file
19
third_party/dx9_sdk/include/activecf.h
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: ActiveCf.h
|
||||||
|
//
|
||||||
|
// Desc: Contains the data formats for the transfer of VfW4 filters via the
|
||||||
|
// clipboard.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#define CFSTR_VFW_FILTERLIST "Video for Windows 4 Filters"
|
||||||
|
|
||||||
|
typedef struct tagVFW_FILTERLIST{
|
||||||
|
UINT cFilters; // number of CLSIDs in aClsId
|
||||||
|
CLSID aClsId[1]; // ClsId of each filter
|
||||||
|
|
||||||
|
} VFW_FILTERLIST;
|
||||||
|
|
||||||
|
|
||||||
54
third_party/dx9_sdk/include/amaudio.h
vendored
Normal file
54
third_party/dx9_sdk/include/amaudio.h
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AMAudio.h
|
||||||
|
//
|
||||||
|
// Desc: Audio related definitions and interfaces for ActiveMovie.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __AMAUDIO__
|
||||||
|
#define __AMAUDIO__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
#include <mmsystem.h>
|
||||||
|
#include <dsound.h>
|
||||||
|
|
||||||
|
// This is the interface the audio renderer supports to give the application
|
||||||
|
// access to the direct sound object and the buffers it is using, to allow the
|
||||||
|
// application to use things like the 3D features of Direct Sound for the
|
||||||
|
// soundtrack of a movie being played with Active Movie.
|
||||||
|
|
||||||
|
// be nice to our friends in C
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IAMDirectSound
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IAMDirectSound,IUnknown)
|
||||||
|
{
|
||||||
|
/* IUnknown methods */
|
||||||
|
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
/* IAMDirectSound methods */
|
||||||
|
|
||||||
|
STDMETHOD(GetDirectSoundInterface)(THIS_ LPDIRECTSOUND *lplpds) PURE;
|
||||||
|
STDMETHOD(GetPrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
|
||||||
|
STDMETHOD(GetSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
|
||||||
|
STDMETHOD(ReleaseDirectSoundInterface)(THIS_ LPDIRECTSOUND lpds) PURE;
|
||||||
|
STDMETHOD(ReleasePrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
|
||||||
|
STDMETHOD(ReleaseSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
|
||||||
|
STDMETHOD(SetFocusWindow)(THIS_ HWND, BOOL) PURE ;
|
||||||
|
STDMETHOD(GetFocusWindow)(THIS_ HWND *, BOOL*) PURE ;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
#endif // __AMAUDIO__
|
||||||
|
|
||||||
38
third_party/dx9_sdk/include/amparse.h
vendored
Normal file
38
third_party/dx9_sdk/include/amparse.h
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AMParse.h
|
||||||
|
//
|
||||||
|
// Desc: Interface to the parser to get current time. This is useful for
|
||||||
|
// multifile playback.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __AMPARSE__
|
||||||
|
#define __AMPARSE__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
DEFINE_GUID(IID_IAMParse,
|
||||||
|
0xc47a3420, 0x005c, 0x11d2, 0x90, 0x38, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x98);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parser interface - supported by MPEG-2 splitter filter
|
||||||
|
//
|
||||||
|
DECLARE_INTERFACE_(IAMParse, IUnknown) {
|
||||||
|
STDMETHOD(GetParseTime) (THIS_
|
||||||
|
REFERENCE_TIME *prtCurrent
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(SetParseTime) (THIS_
|
||||||
|
REFERENCE_TIME rtCurrent
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(Flush) (THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
#endif // __AMPARSE__
|
||||||
2295
third_party/dx9_sdk/include/amstream.h
vendored
Normal file
2295
third_party/dx9_sdk/include/amstream.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
85
third_party/dx9_sdk/include/amva.h
vendored
Normal file
85
third_party/dx9_sdk/include/amva.h
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AMVA.h
|
||||||
|
//
|
||||||
|
// Desc: DirectShowMotionComp include file.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1997-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __AMVA_INCLUDED__
|
||||||
|
#define __AMVA_INCLUDED__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define AMVA_TYPEINDEX_OUTPUTFRAME 0xFFFFFFFF
|
||||||
|
|
||||||
|
// Flags for QueryRenderStatus
|
||||||
|
#define AMVA_QUERYRENDERSTATUSF_READ 0x00000001 // Query for read
|
||||||
|
// set this bit to 0
|
||||||
|
// if query for update
|
||||||
|
|
||||||
|
typedef struct _tag_AMVAUncompBufferInfo
|
||||||
|
{
|
||||||
|
DWORD dwMinNumSurfaces; // IN min number of surfaces to be allocated
|
||||||
|
DWORD dwMaxNumSurfaces; // IN max number of surfaces to be allocated
|
||||||
|
DDPIXELFORMAT ddUncompPixelFormat; // IN pixel format of surfaces to be allocated
|
||||||
|
} AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo;
|
||||||
|
|
||||||
|
typedef struct _tag_AMVAUncompDataInfo
|
||||||
|
{
|
||||||
|
DWORD dwUncompWidth; // [in] width of uncompressed data
|
||||||
|
DWORD dwUncompHeight; // [in] height of uncompressed data
|
||||||
|
DDPIXELFORMAT ddUncompPixelFormat; // [in] pixel-format of uncompressed data
|
||||||
|
} AMVAUncompDataInfo, *LPAMVAUncompDataInfo;
|
||||||
|
|
||||||
|
typedef struct _tag_AMVAInternalMemInfo
|
||||||
|
{
|
||||||
|
DWORD dwScratchMemAlloc; // [out] amount of scratch memory will the hal allocate for its private use
|
||||||
|
} AMVAInternalMemInfo, *LPAMVAInternalMemInfo;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _tag_AMVACompBufferInfo
|
||||||
|
{
|
||||||
|
DWORD dwNumCompBuffers; // [out] number of buffers reqd for compressed data
|
||||||
|
DWORD dwWidthToCreate; // [out] Width of surface to create
|
||||||
|
DWORD dwHeightToCreate; // [out] Height of surface to create
|
||||||
|
DWORD dwBytesToAllocate; // [out] Total number of bytes used by each surface
|
||||||
|
DDSCAPS2 ddCompCaps; // [out] caps to create surfaces to store compressed data
|
||||||
|
DDPIXELFORMAT ddPixelFormat; // [out] fourcc to create surfaces to store compressed data
|
||||||
|
} AMVACompBufferInfo, *LPAMVACompBufferInfo;
|
||||||
|
|
||||||
|
|
||||||
|
// Note that you are NOT allowed to store any pointer in pMiscData
|
||||||
|
typedef struct _tag_AMVABeginFrameInfo
|
||||||
|
{
|
||||||
|
DWORD dwDestSurfaceIndex; // IN destination buffer in which to decoding this frame
|
||||||
|
LPVOID pInputData; // IN pointer to misc data
|
||||||
|
DWORD dwSizeInputData; // IN size of other misc data to begin frame
|
||||||
|
LPVOID pOutputData; // OUT pointer to data which the VGA is going to fill
|
||||||
|
DWORD dwSizeOutputData; // IN size of data which the VGA is going to fill
|
||||||
|
} AMVABeginFrameInfo, *LPAMVABeginFrameInfo;
|
||||||
|
|
||||||
|
// Note that you are NOT allowed to store any pointer in pMiscData
|
||||||
|
typedef struct _tag_AMVAEndFrameInfo
|
||||||
|
{
|
||||||
|
DWORD dwSizeMiscData; // [in] size of other misc data to begin frame
|
||||||
|
LPVOID pMiscData; // [in] pointer to misc data
|
||||||
|
} AMVAEndFrameInfo, *LPAMVAEndFrameInfo;
|
||||||
|
|
||||||
|
typedef struct _tag_AMVABUFFERINFO
|
||||||
|
{
|
||||||
|
DWORD dwTypeIndex; // [in] Type of buffer
|
||||||
|
DWORD dwBufferIndex; // [in] Buffer index
|
||||||
|
DWORD dwDataOffset; // [in] offset of relevant data from the beginning of buffer
|
||||||
|
DWORD dwDataSize; // [in] size of relevant data
|
||||||
|
} AMVABUFFERINFO, *LPAMVABUFFERINFO;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // _AMVA_INCLUDED
|
||||||
34
third_party/dx9_sdk/include/atsmedia.h
vendored
Normal file
34
third_party/dx9_sdk/include/atsmedia.h
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: ATSMedia.h
|
||||||
|
//
|
||||||
|
// Desc: Broadcast Driver Architecture Media Definitions for ATSC
|
||||||
|
//
|
||||||
|
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(_KSMEDIA_)
|
||||||
|
#error KSMEDIA.H must be included before BDAMEDIA.H
|
||||||
|
#endif // !defined(_KSMEDIA_)
|
||||||
|
|
||||||
|
#if !defined(_BDAMEDIA_)
|
||||||
|
#error BDAMEDIA.H must be included before ATSCMEDIA.H
|
||||||
|
#endif // !defined(_KSMEDIA_)
|
||||||
|
|
||||||
|
#if !defined(_ATSCMEDIA_)
|
||||||
|
#define _ATSCMEDIA_
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
// ATSC Network Type
|
||||||
|
//
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#define STATIC_BDANETWORKTYPE_ATSC\
|
||||||
|
0x71985f51, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
|
||||||
|
DEFINE_GUIDSTRUCT("71985F51-1CA1-11d3-9CC8-00C04F7971E0", BDANETWORKTYPE_ATSC);
|
||||||
|
#define BDANETWORKTYPE_ATSC DEFINE_GUIDNAMED(BDANETWORKTYPE_ATSC)
|
||||||
|
|
||||||
|
|
||||||
|
#endif // _ATSCMEDIA_
|
||||||
53
third_party/dx9_sdk/include/audevcod.h
vendored
Normal file
53
third_party/dx9_sdk/include/audevcod.h
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AudEvCod.h
|
||||||
|
//
|
||||||
|
// Desc: List of Audio device error event codes and the expected params.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __AUDEVCOD__
|
||||||
|
#define __AUDEVCOD__
|
||||||
|
|
||||||
|
|
||||||
|
#define EC_SND_DEVICE_ERROR_BASE 0x0200
|
||||||
|
|
||||||
|
typedef enum _tagSND_DEVICE_ERROR {
|
||||||
|
|
||||||
|
SNDDEV_ERROR_Open=1,
|
||||||
|
SNDDEV_ERROR_Close=2,
|
||||||
|
SNDDEV_ERROR_GetCaps=3,
|
||||||
|
SNDDEV_ERROR_PrepareHeader=4,
|
||||||
|
SNDDEV_ERROR_UnprepareHeader=5,
|
||||||
|
SNDDEV_ERROR_Reset=6,
|
||||||
|
SNDDEV_ERROR_Restart=7,
|
||||||
|
SNDDEV_ERROR_GetPosition=8,
|
||||||
|
SNDDEV_ERROR_Write=9,
|
||||||
|
SNDDEV_ERROR_Pause=10,
|
||||||
|
SNDDEV_ERROR_Stop=11,
|
||||||
|
SNDDEV_ERROR_Start=12,
|
||||||
|
SNDDEV_ERROR_AddBuffer=13,
|
||||||
|
SNDDEV_ERROR_Query=14,
|
||||||
|
|
||||||
|
} SNDDEV_ERR;
|
||||||
|
|
||||||
|
|
||||||
|
// Sound device error event codes
|
||||||
|
// ==============================
|
||||||
|
//
|
||||||
|
// All audio device error events are always passed on to the application, and are
|
||||||
|
// never processed by the filter graph
|
||||||
|
|
||||||
|
|
||||||
|
#define EC_SNDDEV_IN_ERROR (EC_SND_DEVICE_ERROR_BASE + 0x00)
|
||||||
|
#define EC_SNDDEV_OUT_ERROR (EC_SND_DEVICE_ERROR_BASE + 0x01)
|
||||||
|
// Parameters: ( DWORD, DWORD)
|
||||||
|
// lParam1 is an enum SND_DEVICE_ERROR which notifies the app how the device was
|
||||||
|
// being accessed when the failure occurred.
|
||||||
|
//
|
||||||
|
// lParam2 is the error returned from the sound device call.
|
||||||
|
//
|
||||||
|
|
||||||
|
#endif // __AUDEVCOD__
|
||||||
715
third_party/dx9_sdk/include/austream.h
vendored
Normal file
715
third_party/dx9_sdk/include/austream.h
vendored
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
|
||||||
|
#pragma warning( disable: 4049 ) /* more than 64k source lines */
|
||||||
|
|
||||||
|
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
|
||||||
|
|
||||||
|
|
||||||
|
/* File created by MIDL compiler version 6.00.0357 */
|
||||||
|
/* Compiler settings for austream.idl:
|
||||||
|
Oicf, W1, Zp8, env=Win32 (32b run)
|
||||||
|
protocol : dce , ms_ext, c_ext, robust
|
||||||
|
error checks: allocation ref bounds_check enum stub_data
|
||||||
|
VC __declspec() decoration level:
|
||||||
|
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
|
||||||
|
DECLSPEC_UUID(), MIDL_INTERFACE()
|
||||||
|
*/
|
||||||
|
//@@MIDL_FILE_HEADING( )
|
||||||
|
|
||||||
|
|
||||||
|
/* verify that the <rpcndr.h> version is high enough to compile this file*/
|
||||||
|
#ifndef __REQUIRED_RPCNDR_H_VERSION__
|
||||||
|
#define __REQUIRED_RPCNDR_H_VERSION__ 475
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "rpc.h"
|
||||||
|
#include "rpcndr.h"
|
||||||
|
|
||||||
|
#ifndef __RPCNDR_H_VERSION__
|
||||||
|
#error this stub requires an updated version of <rpcndr.h>
|
||||||
|
#endif // __RPCNDR_H_VERSION__
|
||||||
|
|
||||||
|
#ifndef COM_NO_WINDOWS_H
|
||||||
|
#include "windows.h"
|
||||||
|
#include "ole2.h"
|
||||||
|
#endif /*COM_NO_WINDOWS_H*/
|
||||||
|
|
||||||
|
#ifndef __austream_h__
|
||||||
|
#define __austream_h__
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Forward Declarations */
|
||||||
|
|
||||||
|
#ifndef __IAudioMediaStream_FWD_DEFINED__
|
||||||
|
#define __IAudioMediaStream_FWD_DEFINED__
|
||||||
|
typedef interface IAudioMediaStream IAudioMediaStream;
|
||||||
|
#endif /* __IAudioMediaStream_FWD_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IAudioStreamSample_FWD_DEFINED__
|
||||||
|
#define __IAudioStreamSample_FWD_DEFINED__
|
||||||
|
typedef interface IAudioStreamSample IAudioStreamSample;
|
||||||
|
#endif /* __IAudioStreamSample_FWD_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IMemoryData_FWD_DEFINED__
|
||||||
|
#define __IMemoryData_FWD_DEFINED__
|
||||||
|
typedef interface IMemoryData IMemoryData;
|
||||||
|
#endif /* __IMemoryData_FWD_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IAudioData_FWD_DEFINED__
|
||||||
|
#define __IAudioData_FWD_DEFINED__
|
||||||
|
typedef interface IAudioData IAudioData;
|
||||||
|
#endif /* __IAudioData_FWD_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
/* header files for imported files */
|
||||||
|
#include "unknwn.h"
|
||||||
|
#include "mmstream.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void * __RPC_USER MIDL_user_allocate(size_t);
|
||||||
|
void __RPC_USER MIDL_user_free( void * );
|
||||||
|
|
||||||
|
/* interface __MIDL_itf_austream_0000 */
|
||||||
|
/* [local] */
|
||||||
|
|
||||||
|
//
|
||||||
|
// The following declarations within the 'if 0' block are dummy typedefs used to make
|
||||||
|
// the ddstream.idl file build. The actual definitions are contained in DDRAW.H
|
||||||
|
//
|
||||||
|
#if 0
|
||||||
|
typedef struct tWAVEFORMATEX WAVEFORMATEX;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern RPC_IF_HANDLE __MIDL_itf_austream_0000_v0_0_c_ifspec;
|
||||||
|
extern RPC_IF_HANDLE __MIDL_itf_austream_0000_v0_0_s_ifspec;
|
||||||
|
|
||||||
|
#ifndef __IAudioMediaStream_INTERFACE_DEFINED__
|
||||||
|
#define __IAudioMediaStream_INTERFACE_DEFINED__
|
||||||
|
|
||||||
|
/* interface IAudioMediaStream */
|
||||||
|
/* [unique][uuid][local][object] */
|
||||||
|
|
||||||
|
|
||||||
|
EXTERN_C const IID IID_IAudioMediaStream;
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||||
|
|
||||||
|
MIDL_INTERFACE("f7537560-a3be-11d0-8212-00c04fc32c45")
|
||||||
|
IAudioMediaStream : public IMediaStream
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetFormat(
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent) = 0;
|
||||||
|
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE SetFormat(
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat) = 0;
|
||||||
|
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE CreateSample(
|
||||||
|
/* [in] */ IAudioData *pAudioData,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [out] */ IAudioStreamSample **ppSample) = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* C style interface */
|
||||||
|
|
||||||
|
typedef struct IAudioMediaStreamVtbl
|
||||||
|
{
|
||||||
|
BEGIN_INTERFACE
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ REFIID riid,
|
||||||
|
/* [iid_is][out] */ void **ppvObject);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||||
|
IAudioMediaStream * This);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||||
|
IAudioMediaStream * This);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetMultiMediaStream )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [out] */ IMultiMediaStream **ppMultiMediaStream);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetInformation )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [out] */ MSPID *pPurposeId,
|
||||||
|
/* [out] */ STREAM_TYPE *pType);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetSameFormat )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ IMediaStream *pStreamThatHasDesiredFormat,
|
||||||
|
/* [in] */ DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *AllocateSample )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [out] */ IStreamSample **ppSample);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *CreateSharedSample )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ IStreamSample *pExistingSample,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [out] */ IStreamSample **ppNewSample);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SendEndOfStream )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetFormat )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetFormat )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *CreateSample )(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ IAudioData *pAudioData,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [out] */ IAudioStreamSample **ppSample);
|
||||||
|
|
||||||
|
END_INTERFACE
|
||||||
|
} IAudioMediaStreamVtbl;
|
||||||
|
|
||||||
|
interface IAudioMediaStream
|
||||||
|
{
|
||||||
|
CONST_VTBL struct IAudioMediaStreamVtbl *lpVtbl;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COBJMACROS
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioMediaStream_QueryInterface(This,riid,ppvObject) \
|
||||||
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_AddRef(This) \
|
||||||
|
(This)->lpVtbl -> AddRef(This)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_Release(This) \
|
||||||
|
(This)->lpVtbl -> Release(This)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) \
|
||||||
|
(This)->lpVtbl -> GetMultiMediaStream(This,ppMultiMediaStream)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_GetInformation(This,pPurposeId,pType) \
|
||||||
|
(This)->lpVtbl -> GetInformation(This,pPurposeId,pType)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) \
|
||||||
|
(This)->lpVtbl -> SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_AllocateSample(This,dwFlags,ppSample) \
|
||||||
|
(This)->lpVtbl -> AllocateSample(This,dwFlags,ppSample)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) \
|
||||||
|
(This)->lpVtbl -> CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_SendEndOfStream(This,dwFlags) \
|
||||||
|
(This)->lpVtbl -> SendEndOfStream(This,dwFlags)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioMediaStream_GetFormat(This,pWaveFormatCurrent) \
|
||||||
|
(This)->lpVtbl -> GetFormat(This,pWaveFormatCurrent)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_SetFormat(This,lpWaveFormat) \
|
||||||
|
(This)->lpVtbl -> SetFormat(This,lpWaveFormat)
|
||||||
|
|
||||||
|
#define IAudioMediaStream_CreateSample(This,pAudioData,dwFlags,ppSample) \
|
||||||
|
(This)->lpVtbl -> CreateSample(This,pAudioData,dwFlags,ppSample)
|
||||||
|
|
||||||
|
#endif /* COBJMACROS */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* C style interface */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioMediaStream_GetFormat_Proxy(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioMediaStream_GetFormat_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioMediaStream_SetFormat_Proxy(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioMediaStream_SetFormat_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioMediaStream_CreateSample_Proxy(
|
||||||
|
IAudioMediaStream * This,
|
||||||
|
/* [in] */ IAudioData *pAudioData,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [out] */ IAudioStreamSample **ppSample);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioMediaStream_CreateSample_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __IAudioMediaStream_INTERFACE_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IAudioStreamSample_INTERFACE_DEFINED__
|
||||||
|
#define __IAudioStreamSample_INTERFACE_DEFINED__
|
||||||
|
|
||||||
|
/* interface IAudioStreamSample */
|
||||||
|
/* [unique][uuid][local][object] */
|
||||||
|
|
||||||
|
|
||||||
|
EXTERN_C const IID IID_IAudioStreamSample;
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||||
|
|
||||||
|
MIDL_INTERFACE("345fee00-aba5-11d0-8212-00c04fc32c45")
|
||||||
|
IAudioStreamSample : public IStreamSample
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetAudioData(
|
||||||
|
/* [out] */ IAudioData **ppAudio) = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* C style interface */
|
||||||
|
|
||||||
|
typedef struct IAudioStreamSampleVtbl
|
||||||
|
{
|
||||||
|
BEGIN_INTERFACE
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [in] */ REFIID riid,
|
||||||
|
/* [iid_is][out] */ void **ppvObject);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||||
|
IAudioStreamSample * This);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||||
|
IAudioStreamSample * This);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetMediaStream )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [in] */ IMediaStream **ppMediaStream);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetSampleTimes )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [out] */ STREAM_TIME *pStartTime,
|
||||||
|
/* [out] */ STREAM_TIME *pEndTime,
|
||||||
|
/* [out] */ STREAM_TIME *pCurrentTime);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetSampleTimes )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [in] */ const STREAM_TIME *pStartTime,
|
||||||
|
/* [in] */ const STREAM_TIME *pEndTime);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *Update )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [in] */ HANDLE hEvent,
|
||||||
|
/* [in] */ PAPCFUNC pfnAPC,
|
||||||
|
/* [in] */ DWORD_PTR dwAPCData);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *CompletionStatus )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [in] */ DWORD dwFlags,
|
||||||
|
/* [in] */ DWORD dwMilliseconds);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetAudioData )(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [out] */ IAudioData **ppAudio);
|
||||||
|
|
||||||
|
END_INTERFACE
|
||||||
|
} IAudioStreamSampleVtbl;
|
||||||
|
|
||||||
|
interface IAudioStreamSample
|
||||||
|
{
|
||||||
|
CONST_VTBL struct IAudioStreamSampleVtbl *lpVtbl;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COBJMACROS
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioStreamSample_QueryInterface(This,riid,ppvObject) \
|
||||||
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_AddRef(This) \
|
||||||
|
(This)->lpVtbl -> AddRef(This)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_Release(This) \
|
||||||
|
(This)->lpVtbl -> Release(This)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioStreamSample_GetMediaStream(This,ppMediaStream) \
|
||||||
|
(This)->lpVtbl -> GetMediaStream(This,ppMediaStream)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) \
|
||||||
|
(This)->lpVtbl -> GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_SetSampleTimes(This,pStartTime,pEndTime) \
|
||||||
|
(This)->lpVtbl -> SetSampleTimes(This,pStartTime,pEndTime)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) \
|
||||||
|
(This)->lpVtbl -> Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
|
||||||
|
|
||||||
|
#define IAudioStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) \
|
||||||
|
(This)->lpVtbl -> CompletionStatus(This,dwFlags,dwMilliseconds)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioStreamSample_GetAudioData(This,ppAudio) \
|
||||||
|
(This)->lpVtbl -> GetAudioData(This,ppAudio)
|
||||||
|
|
||||||
|
#endif /* COBJMACROS */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* C style interface */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioStreamSample_GetAudioData_Proxy(
|
||||||
|
IAudioStreamSample * This,
|
||||||
|
/* [out] */ IAudioData **ppAudio);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioStreamSample_GetAudioData_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __IAudioStreamSample_INTERFACE_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IMemoryData_INTERFACE_DEFINED__
|
||||||
|
#define __IMemoryData_INTERFACE_DEFINED__
|
||||||
|
|
||||||
|
/* interface IMemoryData */
|
||||||
|
/* [unique][uuid][local][object] */
|
||||||
|
|
||||||
|
|
||||||
|
EXTERN_C const IID IID_IMemoryData;
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||||
|
|
||||||
|
MIDL_INTERFACE("327fc560-af60-11d0-8212-00c04fc32c45")
|
||||||
|
IMemoryData : public IUnknown
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE SetBuffer(
|
||||||
|
/* [in] */ DWORD cbSize,
|
||||||
|
/* [in] */ BYTE *pbData,
|
||||||
|
/* [in] */ DWORD dwFlags) = 0;
|
||||||
|
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetInfo(
|
||||||
|
/* [out] */ DWORD *pdwLength,
|
||||||
|
/* [out] */ BYTE **ppbData,
|
||||||
|
/* [out] */ DWORD *pcbActualData) = 0;
|
||||||
|
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE SetActual(
|
||||||
|
/* [in] */ DWORD cbDataValid) = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* C style interface */
|
||||||
|
|
||||||
|
typedef struct IMemoryDataVtbl
|
||||||
|
{
|
||||||
|
BEGIN_INTERFACE
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [in] */ REFIID riid,
|
||||||
|
/* [iid_is][out] */ void **ppvObject);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||||
|
IMemoryData * This);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||||
|
IMemoryData * This);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetBuffer )(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [in] */ DWORD cbSize,
|
||||||
|
/* [in] */ BYTE *pbData,
|
||||||
|
/* [in] */ DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetInfo )(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [out] */ DWORD *pdwLength,
|
||||||
|
/* [out] */ BYTE **ppbData,
|
||||||
|
/* [out] */ DWORD *pcbActualData);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetActual )(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [in] */ DWORD cbDataValid);
|
||||||
|
|
||||||
|
END_INTERFACE
|
||||||
|
} IMemoryDataVtbl;
|
||||||
|
|
||||||
|
interface IMemoryData
|
||||||
|
{
|
||||||
|
CONST_VTBL struct IMemoryDataVtbl *lpVtbl;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COBJMACROS
|
||||||
|
|
||||||
|
|
||||||
|
#define IMemoryData_QueryInterface(This,riid,ppvObject) \
|
||||||
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
||||||
|
|
||||||
|
#define IMemoryData_AddRef(This) \
|
||||||
|
(This)->lpVtbl -> AddRef(This)
|
||||||
|
|
||||||
|
#define IMemoryData_Release(This) \
|
||||||
|
(This)->lpVtbl -> Release(This)
|
||||||
|
|
||||||
|
|
||||||
|
#define IMemoryData_SetBuffer(This,cbSize,pbData,dwFlags) \
|
||||||
|
(This)->lpVtbl -> SetBuffer(This,cbSize,pbData,dwFlags)
|
||||||
|
|
||||||
|
#define IMemoryData_GetInfo(This,pdwLength,ppbData,pcbActualData) \
|
||||||
|
(This)->lpVtbl -> GetInfo(This,pdwLength,ppbData,pcbActualData)
|
||||||
|
|
||||||
|
#define IMemoryData_SetActual(This,cbDataValid) \
|
||||||
|
(This)->lpVtbl -> SetActual(This,cbDataValid)
|
||||||
|
|
||||||
|
#endif /* COBJMACROS */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* C style interface */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IMemoryData_SetBuffer_Proxy(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [in] */ DWORD cbSize,
|
||||||
|
/* [in] */ BYTE *pbData,
|
||||||
|
/* [in] */ DWORD dwFlags);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IMemoryData_SetBuffer_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IMemoryData_GetInfo_Proxy(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [out] */ DWORD *pdwLength,
|
||||||
|
/* [out] */ BYTE **ppbData,
|
||||||
|
/* [out] */ DWORD *pcbActualData);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IMemoryData_GetInfo_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IMemoryData_SetActual_Proxy(
|
||||||
|
IMemoryData * This,
|
||||||
|
/* [in] */ DWORD cbDataValid);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IMemoryData_SetActual_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __IMemoryData_INTERFACE_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __IAudioData_INTERFACE_DEFINED__
|
||||||
|
#define __IAudioData_INTERFACE_DEFINED__
|
||||||
|
|
||||||
|
/* interface IAudioData */
|
||||||
|
/* [unique][uuid][local][object] */
|
||||||
|
|
||||||
|
|
||||||
|
EXTERN_C const IID IID_IAudioData;
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||||
|
|
||||||
|
MIDL_INTERFACE("54c719c0-af60-11d0-8212-00c04fc32c45")
|
||||||
|
IAudioData : public IMemoryData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE GetFormat(
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent) = 0;
|
||||||
|
|
||||||
|
virtual HRESULT STDMETHODCALLTYPE SetFormat(
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat) = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#else /* C style interface */
|
||||||
|
|
||||||
|
typedef struct IAudioDataVtbl
|
||||||
|
{
|
||||||
|
BEGIN_INTERFACE
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [in] */ REFIID riid,
|
||||||
|
/* [iid_is][out] */ void **ppvObject);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||||
|
IAudioData * This);
|
||||||
|
|
||||||
|
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||||
|
IAudioData * This);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetBuffer )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [in] */ DWORD cbSize,
|
||||||
|
/* [in] */ BYTE *pbData,
|
||||||
|
/* [in] */ DWORD dwFlags);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetInfo )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [out] */ DWORD *pdwLength,
|
||||||
|
/* [out] */ BYTE **ppbData,
|
||||||
|
/* [out] */ DWORD *pcbActualData);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetActual )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [in] */ DWORD cbDataValid);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *GetFormat )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent);
|
||||||
|
|
||||||
|
HRESULT ( STDMETHODCALLTYPE *SetFormat )(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat);
|
||||||
|
|
||||||
|
END_INTERFACE
|
||||||
|
} IAudioDataVtbl;
|
||||||
|
|
||||||
|
interface IAudioData
|
||||||
|
{
|
||||||
|
CONST_VTBL struct IAudioDataVtbl *lpVtbl;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COBJMACROS
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioData_QueryInterface(This,riid,ppvObject) \
|
||||||
|
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
|
||||||
|
|
||||||
|
#define IAudioData_AddRef(This) \
|
||||||
|
(This)->lpVtbl -> AddRef(This)
|
||||||
|
|
||||||
|
#define IAudioData_Release(This) \
|
||||||
|
(This)->lpVtbl -> Release(This)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioData_SetBuffer(This,cbSize,pbData,dwFlags) \
|
||||||
|
(This)->lpVtbl -> SetBuffer(This,cbSize,pbData,dwFlags)
|
||||||
|
|
||||||
|
#define IAudioData_GetInfo(This,pdwLength,ppbData,pcbActualData) \
|
||||||
|
(This)->lpVtbl -> GetInfo(This,pdwLength,ppbData,pcbActualData)
|
||||||
|
|
||||||
|
#define IAudioData_SetActual(This,cbDataValid) \
|
||||||
|
(This)->lpVtbl -> SetActual(This,cbDataValid)
|
||||||
|
|
||||||
|
|
||||||
|
#define IAudioData_GetFormat(This,pWaveFormatCurrent) \
|
||||||
|
(This)->lpVtbl -> GetFormat(This,pWaveFormatCurrent)
|
||||||
|
|
||||||
|
#define IAudioData_SetFormat(This,lpWaveFormat) \
|
||||||
|
(This)->lpVtbl -> SetFormat(This,lpWaveFormat)
|
||||||
|
|
||||||
|
#endif /* COBJMACROS */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* C style interface */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioData_GetFormat_Proxy(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [out] */ WAVEFORMATEX *pWaveFormatCurrent);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioData_GetFormat_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE IAudioData_SetFormat_Proxy(
|
||||||
|
IAudioData * This,
|
||||||
|
/* [in] */ const WAVEFORMATEX *lpWaveFormat);
|
||||||
|
|
||||||
|
|
||||||
|
void __RPC_STUB IAudioData_SetFormat_Stub(
|
||||||
|
IRpcStubBuffer *This,
|
||||||
|
IRpcChannelBuffer *_pRpcChannelBuffer,
|
||||||
|
PRPC_MESSAGE _pRpcMessage,
|
||||||
|
DWORD *_pdwStubPhase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __IAudioData_INTERFACE_DEFINED__ */
|
||||||
|
|
||||||
|
|
||||||
|
/* Additional Prototypes for ALL interfaces */
|
||||||
|
|
||||||
|
/* end of Additional Prototypes */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
402
third_party/dx9_sdk/include/aviriff.h
vendored
Normal file
402
third_party/dx9_sdk/include/aviriff.h
vendored
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: AVIRIFF.h
|
||||||
|
//
|
||||||
|
// Desc: Structures and defines for the RIFF AVI file format extended to
|
||||||
|
// handle very large/long files.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Disable some compiler warnings
|
||||||
|
#pragma warning(disable: 4097 4511 4512 4514 4705)
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined AVIRIFF_H
|
||||||
|
#define AVIRIFF_H
|
||||||
|
|
||||||
|
#if !defined NUMELMS
|
||||||
|
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// all structures in this file are packed on word boundaries
|
||||||
|
//
|
||||||
|
#include <pshpack2.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* heres the general layout of an AVI riff file (new format)
|
||||||
|
*
|
||||||
|
* RIFF (3F??????) AVI <- not more than 1 GB in size
|
||||||
|
* LIST (size) hdrl
|
||||||
|
* avih (0038)
|
||||||
|
* LIST (size) strl
|
||||||
|
* strh (0038)
|
||||||
|
* strf (????)
|
||||||
|
* indx (3ff8) <- size may vary, should be sector sized
|
||||||
|
* LIST (size) strl
|
||||||
|
* strh (0038)
|
||||||
|
* strf (????)
|
||||||
|
* indx (3ff8) <- size may vary, should be sector sized
|
||||||
|
* LIST (size) odml
|
||||||
|
* dmlh (????)
|
||||||
|
* JUNK (size) <- fill to align to sector - 12
|
||||||
|
* LIST (7f??????) movi <- aligned on sector - 12
|
||||||
|
* 00dc (size) <- sector aligned
|
||||||
|
* 01wb (size) <- sector aligned
|
||||||
|
* ix00 (size) <- sector aligned
|
||||||
|
* idx1 (00??????) <- sector aligned
|
||||||
|
* RIFF (7F??????) AVIX
|
||||||
|
* JUNK (size) <- fill to align to sector -12
|
||||||
|
* LIST (size) movi
|
||||||
|
* 00dc (size) <- sector aligned
|
||||||
|
* RIFF (7F??????) AVIX <- not more than 2GB in size
|
||||||
|
* JUNK (size) <- fill to align to sector - 12
|
||||||
|
* LIST (size) movi
|
||||||
|
* 00dc (size) <- sector aligned
|
||||||
|
*
|
||||||
|
*-===================================================================*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// structures for manipulating RIFF headers
|
||||||
|
//
|
||||||
|
#define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) | \
|
||||||
|
(((DWORD)(ch4) & 0xFF00) << 8) | \
|
||||||
|
(((DWORD)(ch4) & 0xFF0000) >> 8) | \
|
||||||
|
(((DWORD)(ch4) & 0xFF000000) >> 24))
|
||||||
|
|
||||||
|
typedef struct _riffchunk {
|
||||||
|
FOURCC fcc;
|
||||||
|
DWORD cb;
|
||||||
|
} RIFFCHUNK, * LPRIFFCHUNK;
|
||||||
|
typedef struct _rifflist {
|
||||||
|
FOURCC fcc;
|
||||||
|
DWORD cb;
|
||||||
|
FOURCC fccListType;
|
||||||
|
} RIFFLIST, * LPRIFFLIST;
|
||||||
|
|
||||||
|
#define RIFFROUND(cb) ((cb) + ((cb)&1))
|
||||||
|
#define RIFFNEXT(pChunk) (LPRIFFCHUNK)((LPBYTE)(pChunk) \
|
||||||
|
+ sizeof(RIFFCHUNK) \
|
||||||
|
+ RIFFROUND(((LPRIFFCHUNK)pChunk)->cb))
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ==================== avi header structures ===========================
|
||||||
|
//
|
||||||
|
|
||||||
|
// main header for the avi file (compatibility header)
|
||||||
|
//
|
||||||
|
#define ckidMAINAVIHEADER FCC('avih')
|
||||||
|
typedef struct _avimainheader {
|
||||||
|
FOURCC fcc; // 'avih'
|
||||||
|
DWORD cb; // size of this structure -8
|
||||||
|
DWORD dwMicroSecPerFrame; // frame display rate (or 0L)
|
||||||
|
DWORD dwMaxBytesPerSec; // max. transfer rate
|
||||||
|
DWORD dwPaddingGranularity; // pad to multiples of this size; normally 2K.
|
||||||
|
DWORD dwFlags; // the ever-present flags
|
||||||
|
#define AVIF_HASINDEX 0x00000010 // Index at end of file?
|
||||||
|
#define AVIF_MUSTUSEINDEX 0x00000020
|
||||||
|
#define AVIF_ISINTERLEAVED 0x00000100
|
||||||
|
#define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames
|
||||||
|
#define AVIF_WASCAPTUREFILE 0x00010000
|
||||||
|
#define AVIF_COPYRIGHTED 0x00020000
|
||||||
|
DWORD dwTotalFrames; // # frames in first movi list
|
||||||
|
DWORD dwInitialFrames;
|
||||||
|
DWORD dwStreams;
|
||||||
|
DWORD dwSuggestedBufferSize;
|
||||||
|
DWORD dwWidth;
|
||||||
|
DWORD dwHeight;
|
||||||
|
DWORD dwReserved[4];
|
||||||
|
} AVIMAINHEADER;
|
||||||
|
|
||||||
|
#define ckidODML FCC('odml')
|
||||||
|
#define ckidAVIEXTHEADER FCC('dmlh')
|
||||||
|
typedef struct _aviextheader {
|
||||||
|
FOURCC fcc; // 'dmlh'
|
||||||
|
DWORD cb; // size of this structure -8
|
||||||
|
DWORD dwGrandFrames; // total number of frames in the file
|
||||||
|
DWORD dwFuture[61]; // to be defined later
|
||||||
|
} AVIEXTHEADER;
|
||||||
|
|
||||||
|
//
|
||||||
|
// structure of an AVI stream header riff chunk
|
||||||
|
//
|
||||||
|
#define ckidSTREAMLIST FCC('strl')
|
||||||
|
|
||||||
|
#ifndef ckidSTREAMHEADER
|
||||||
|
#define ckidSTREAMHEADER FCC('strh')
|
||||||
|
#endif
|
||||||
|
typedef struct _avistreamheader {
|
||||||
|
FOURCC fcc; // 'strh'
|
||||||
|
DWORD cb; // size of this structure - 8
|
||||||
|
|
||||||
|
FOURCC fccType; // stream type codes
|
||||||
|
|
||||||
|
#ifndef streamtypeVIDEO
|
||||||
|
#define streamtypeVIDEO FCC('vids')
|
||||||
|
#define streamtypeAUDIO FCC('auds')
|
||||||
|
#define streamtypeMIDI FCC('mids')
|
||||||
|
#define streamtypeTEXT FCC('txts')
|
||||||
|
#endif
|
||||||
|
|
||||||
|
FOURCC fccHandler;
|
||||||
|
DWORD dwFlags;
|
||||||
|
#define AVISF_DISABLED 0x00000001
|
||||||
|
#define AVISF_VIDEO_PALCHANGES 0x00010000
|
||||||
|
|
||||||
|
WORD wPriority;
|
||||||
|
WORD wLanguage;
|
||||||
|
DWORD dwInitialFrames;
|
||||||
|
DWORD dwScale;
|
||||||
|
DWORD dwRate; // dwRate/dwScale is stream tick rate in ticks/sec
|
||||||
|
DWORD dwStart;
|
||||||
|
DWORD dwLength;
|
||||||
|
DWORD dwSuggestedBufferSize;
|
||||||
|
DWORD dwQuality;
|
||||||
|
DWORD dwSampleSize;
|
||||||
|
struct {
|
||||||
|
short int left;
|
||||||
|
short int top;
|
||||||
|
short int right;
|
||||||
|
short int bottom;
|
||||||
|
} rcFrame;
|
||||||
|
} AVISTREAMHEADER;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// structure of an AVI stream format chunk
|
||||||
|
//
|
||||||
|
#ifndef ckidSTREAMFORMAT
|
||||||
|
#define ckidSTREAMFORMAT FCC('strf')
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// avi stream formats are different for each stream type
|
||||||
|
//
|
||||||
|
// BITMAPINFOHEADER for video streams
|
||||||
|
// WAVEFORMATEX or PCMWAVEFORMAT for audio streams
|
||||||
|
// nothing for text streams
|
||||||
|
// nothing for midi streams
|
||||||
|
|
||||||
|
|
||||||
|
#pragma warning(disable:4200)
|
||||||
|
//
|
||||||
|
// structure of old style AVI index
|
||||||
|
//
|
||||||
|
#define ckidAVIOLDINDEX FCC('idx1')
|
||||||
|
typedef struct _avioldindex {
|
||||||
|
FOURCC fcc; // 'idx1'
|
||||||
|
DWORD cb; // size of this structure -8
|
||||||
|
struct _avioldindex_entry {
|
||||||
|
DWORD dwChunkId;
|
||||||
|
DWORD dwFlags;
|
||||||
|
|
||||||
|
#ifndef AVIIF_LIST
|
||||||
|
#define AVIIF_LIST 0x00000001
|
||||||
|
#define AVIIF_KEYFRAME 0x00000010
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AVIIF_NO_TIME 0x00000100
|
||||||
|
#define AVIIF_COMPRESSOR 0x0FFF0000 // unused?
|
||||||
|
DWORD dwOffset; // offset of riff chunk header for the data
|
||||||
|
DWORD dwSize; // size of the data (excluding riff header size)
|
||||||
|
} aIndex[]; // size of this array
|
||||||
|
} AVIOLDINDEX;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ============ structures for timecode in an AVI file =================
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef TIMECODE_DEFINED
|
||||||
|
#define TIMECODE_DEFINED
|
||||||
|
|
||||||
|
// defined
|
||||||
|
// timecode time structure
|
||||||
|
//
|
||||||
|
typedef union _timecode {
|
||||||
|
struct {
|
||||||
|
WORD wFrameRate;
|
||||||
|
WORD wFrameFract;
|
||||||
|
LONG cFrames;
|
||||||
|
};
|
||||||
|
DWORDLONG qw;
|
||||||
|
} TIMECODE;
|
||||||
|
|
||||||
|
#endif // TIMECODE_DEFINED
|
||||||
|
|
||||||
|
#define TIMECODE_RATE_30DROP 0 // this MUST be zero
|
||||||
|
|
||||||
|
// struct for all the SMPTE timecode info
|
||||||
|
//
|
||||||
|
typedef struct _timecodedata {
|
||||||
|
TIMECODE time;
|
||||||
|
DWORD dwSMPTEflags;
|
||||||
|
DWORD dwUser;
|
||||||
|
} TIMECODEDATA;
|
||||||
|
|
||||||
|
// dwSMPTEflags masks/values
|
||||||
|
//
|
||||||
|
#define TIMECODE_SMPTE_BINARY_GROUP 0x07
|
||||||
|
#define TIMECODE_SMPTE_COLOR_FRAME 0x08
|
||||||
|
|
||||||
|
//
|
||||||
|
// ============ structures for new style AVI indexes =================
|
||||||
|
//
|
||||||
|
|
||||||
|
// index type codes
|
||||||
|
//
|
||||||
|
#define AVI_INDEX_OF_INDEXES 0x00
|
||||||
|
#define AVI_INDEX_OF_CHUNKS 0x01
|
||||||
|
#define AVI_INDEX_OF_TIMED_CHUNKS 0x02
|
||||||
|
#define AVI_INDEX_OF_SUB_2FIELD 0x03
|
||||||
|
#define AVI_INDEX_IS_DATA 0x80
|
||||||
|
|
||||||
|
// index subtype codes
|
||||||
|
//
|
||||||
|
#define AVI_INDEX_SUB_DEFAULT 0x00
|
||||||
|
|
||||||
|
// INDEX_OF_CHUNKS subtype codes
|
||||||
|
//
|
||||||
|
#define AVI_INDEX_SUB_2FIELD 0x01
|
||||||
|
|
||||||
|
// meta structure of all avi indexes
|
||||||
|
//
|
||||||
|
typedef struct _avimetaindex {
|
||||||
|
FOURCC fcc;
|
||||||
|
UINT cb;
|
||||||
|
WORD wLongsPerEntry;
|
||||||
|
BYTE bIndexSubType;
|
||||||
|
BYTE bIndexType;
|
||||||
|
DWORD nEntriesInUse;
|
||||||
|
DWORD dwChunkId;
|
||||||
|
DWORD dwReserved[3];
|
||||||
|
DWORD adwIndex[];
|
||||||
|
} AVIMETAINDEX;
|
||||||
|
|
||||||
|
#define STDINDEXSIZE 0x4000
|
||||||
|
#define NUMINDEX(wLongsPerEntry) ((STDINDEXSIZE-32)/4/(wLongsPerEntry))
|
||||||
|
#define NUMINDEXFILL(wLongsPerEntry) ((STDINDEXSIZE/4) - NUMINDEX(wLongsPerEntry))
|
||||||
|
|
||||||
|
// structure of a super index (INDEX_OF_INDEXES)
|
||||||
|
//
|
||||||
|
#define ckidAVISUPERINDEX FCC('indx')
|
||||||
|
typedef struct _avisuperindex {
|
||||||
|
FOURCC fcc; // 'indx'
|
||||||
|
UINT cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // ==4
|
||||||
|
BYTE bIndexSubType; // ==0 (frame index) or AVI_INDEX_SUB_2FIELD
|
||||||
|
BYTE bIndexType; // ==AVI_INDEX_OF_INDEXES
|
||||||
|
DWORD nEntriesInUse; // offset of next unused entry in aIndex
|
||||||
|
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
|
||||||
|
DWORD dwReserved[3]; // must be 0
|
||||||
|
struct _avisuperindex_entry {
|
||||||
|
DWORDLONG qwOffset; // 64 bit offset to sub index chunk
|
||||||
|
DWORD dwSize; // 32 bit size of sub index chunk
|
||||||
|
DWORD dwDuration; // time span of subindex chunk (in stream ticks)
|
||||||
|
} aIndex[NUMINDEX(4)];
|
||||||
|
} AVISUPERINDEX;
|
||||||
|
#define Valid_SUPERINDEX(pi) (*(DWORD *)(&((pi)->wLongsPerEntry)) == (4 | (AVI_INDEX_OF_INDEXES << 24)))
|
||||||
|
|
||||||
|
// struct of a standard index (AVI_INDEX_OF_CHUNKS)
|
||||||
|
//
|
||||||
|
typedef struct _avistdindex_entry {
|
||||||
|
DWORD dwOffset; // 32 bit offset to data (points to data, not riff header)
|
||||||
|
DWORD dwSize; // 31 bit size of data (does not include size of riff header), bit 31 is deltaframe bit
|
||||||
|
} AVISTDINDEX_ENTRY;
|
||||||
|
#define AVISTDINDEX_DELTAFRAME ( 0x80000000) // Delta frames have the high bit set
|
||||||
|
#define AVISTDINDEX_SIZEMASK (~0x80000000)
|
||||||
|
|
||||||
|
typedef struct _avistdindex {
|
||||||
|
FOURCC fcc; // 'indx' or '##ix'
|
||||||
|
UINT cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // ==2
|
||||||
|
BYTE bIndexSubType; // ==0
|
||||||
|
BYTE bIndexType; // ==AVI_INDEX_OF_CHUNKS
|
||||||
|
DWORD nEntriesInUse; // offset of next unused entry in aIndex
|
||||||
|
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
|
||||||
|
DWORDLONG qwBaseOffset; // base offset that all index intries are relative to
|
||||||
|
DWORD dwReserved_3; // must be 0
|
||||||
|
AVISTDINDEX_ENTRY aIndex[NUMINDEX(2)];
|
||||||
|
} AVISTDINDEX;
|
||||||
|
|
||||||
|
// struct of a time variant standard index (AVI_INDEX_OF_TIMED_CHUNKS)
|
||||||
|
//
|
||||||
|
typedef struct _avitimedindex_entry {
|
||||||
|
DWORD dwOffset; // 32 bit offset to data (points to data, not riff header)
|
||||||
|
DWORD dwSize; // 31 bit size of data (does not include size of riff header) (high bit is deltaframe bit)
|
||||||
|
DWORD dwDuration; // how much time the chunk should be played (in stream ticks)
|
||||||
|
} AVITIMEDINDEX_ENTRY;
|
||||||
|
|
||||||
|
typedef struct _avitimedindex {
|
||||||
|
FOURCC fcc; // 'indx' or '##ix'
|
||||||
|
UINT cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // ==3
|
||||||
|
BYTE bIndexSubType; // ==0
|
||||||
|
BYTE bIndexType; // ==AVI_INDEX_OF_TIMED_CHUNKS
|
||||||
|
DWORD nEntriesInUse; // offset of next unused entry in aIndex
|
||||||
|
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
|
||||||
|
DWORDLONG qwBaseOffset; // base offset that all index intries are relative to
|
||||||
|
DWORD dwReserved_3; // must be 0
|
||||||
|
AVITIMEDINDEX_ENTRY aIndex[NUMINDEX(3)];
|
||||||
|
DWORD adwTrailingFill[NUMINDEXFILL(3)]; // to align struct to correct size
|
||||||
|
} AVITIMEDINDEX;
|
||||||
|
|
||||||
|
// structure of a timecode stream
|
||||||
|
//
|
||||||
|
typedef struct _avitimecodeindex {
|
||||||
|
FOURCC fcc; // 'indx' or '##ix'
|
||||||
|
UINT cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // ==4
|
||||||
|
BYTE bIndexSubType; // ==0
|
||||||
|
BYTE bIndexType; // ==AVI_INDEX_IS_DATA
|
||||||
|
DWORD nEntriesInUse; // offset of next unused entry in aIndex
|
||||||
|
DWORD dwChunkId; // 'time'
|
||||||
|
DWORD dwReserved[3]; // must be 0
|
||||||
|
TIMECODEDATA aIndex[NUMINDEX(sizeof(TIMECODEDATA)/sizeof(LONG))];
|
||||||
|
} AVITIMECODEINDEX;
|
||||||
|
|
||||||
|
// structure of a timecode discontinuity list (when wLongsPerEntry == 7)
|
||||||
|
//
|
||||||
|
typedef struct _avitcdlindex_entry {
|
||||||
|
DWORD dwTick; // stream tick time that maps to this timecode value
|
||||||
|
TIMECODE time;
|
||||||
|
DWORD dwSMPTEflags;
|
||||||
|
DWORD dwUser;
|
||||||
|
TCHAR szReelId[12];
|
||||||
|
} AVITCDLINDEX_ENTRY;
|
||||||
|
|
||||||
|
typedef struct _avitcdlindex {
|
||||||
|
FOURCC fcc; // 'indx' or '##ix'
|
||||||
|
UINT cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // ==7 (must be 4 or more all 'tcdl' indexes
|
||||||
|
BYTE bIndexSubType; // ==0
|
||||||
|
BYTE bIndexType; // ==AVI_INDEX_IS_DATA
|
||||||
|
DWORD nEntriesInUse; // offset of next unused entry in aIndex
|
||||||
|
DWORD dwChunkId; // 'tcdl'
|
||||||
|
DWORD dwReserved[3]; // must be 0
|
||||||
|
AVITCDLINDEX_ENTRY aIndex[NUMINDEX(7)];
|
||||||
|
DWORD adwTrailingFill[NUMINDEXFILL(7)]; // to align struct to correct size
|
||||||
|
} AVITCDLINDEX;
|
||||||
|
|
||||||
|
typedef struct _avifieldindex_chunk {
|
||||||
|
FOURCC fcc; // 'ix##'
|
||||||
|
DWORD cb; // size of this structure
|
||||||
|
WORD wLongsPerEntry; // must be 3 (size of each entry in
|
||||||
|
// aIndex array)
|
||||||
|
BYTE bIndexSubType; // AVI_INDEX_2FIELD
|
||||||
|
BYTE bIndexType; // AVI_INDEX_OF_CHUNKS
|
||||||
|
DWORD nEntriesInUse; //
|
||||||
|
DWORD dwChunkId; // '##dc' or '##db'
|
||||||
|
DWORDLONG qwBaseOffset; // offsets in aIndex array are relative to this
|
||||||
|
DWORD dwReserved3; // must be 0
|
||||||
|
struct _avifieldindex_entry {
|
||||||
|
DWORD dwOffset;
|
||||||
|
DWORD dwSize; // size of all fields
|
||||||
|
// (bit 31 set for NON-keyframes)
|
||||||
|
DWORD dwOffsetField2; // offset to second field
|
||||||
|
} aIndex[ ];
|
||||||
|
} AVIFIELDINDEX, * PAVIFIELDINDEX;
|
||||||
|
|
||||||
|
|
||||||
|
#include <poppack.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
332
third_party/dx9_sdk/include/basetsd.h
vendored
Normal file
332
third_party/dx9_sdk/include/basetsd.h
vendored
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
/*++
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
|
Module Name:
|
||||||
|
|
||||||
|
basetsd.h
|
||||||
|
|
||||||
|
Abstract:
|
||||||
|
|
||||||
|
Type definitions for the basic sized types.
|
||||||
|
|
||||||
|
Author:
|
||||||
|
|
||||||
|
Revision History:
|
||||||
|
|
||||||
|
--*/
|
||||||
|
|
||||||
|
#ifndef _BASETSD_H_
|
||||||
|
#define _BASETSD_H_
|
||||||
|
|
||||||
|
#if _MSC_VER > 1000
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef signed char INT8, *PINT8;
|
||||||
|
typedef signed short INT16, *PINT16;
|
||||||
|
typedef signed int INT32, *PINT32;
|
||||||
|
typedef signed __int64 INT64, *PINT64;
|
||||||
|
typedef unsigned char UINT8, *PUINT8;
|
||||||
|
typedef unsigned short UINT16, *PUINT16;
|
||||||
|
typedef unsigned int UINT32, *PUINT32;
|
||||||
|
typedef unsigned __int64 UINT64, *PUINT64;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The following types are guaranteed to be signed and 32 bits wide.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef signed int LONG32, *PLONG32;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The following types are guaranteed to be unsigned and 32 bits wide.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef unsigned int ULONG32, *PULONG32;
|
||||||
|
typedef unsigned int DWORD32, *PDWORD32;
|
||||||
|
|
||||||
|
#if !defined(_W64)
|
||||||
|
#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
|
||||||
|
#define _W64 __w64
|
||||||
|
#else
|
||||||
|
#define _W64
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// The INT_PTR is guaranteed to be the same size as a pointer. Its
|
||||||
|
// size with change with pointer size (32/64). It should be used
|
||||||
|
// anywhere that a pointer is cast to an integer type. UINT_PTR is
|
||||||
|
// the unsigned variation.
|
||||||
|
//
|
||||||
|
// __int3264 is intrinsic to 64b MIDL but not to old MIDL or to C compiler.
|
||||||
|
//
|
||||||
|
#if ( 501 < __midl )
|
||||||
|
|
||||||
|
typedef [public] __int3264 INT_PTR, *PINT_PTR;
|
||||||
|
typedef [public] unsigned __int3264 UINT_PTR, *PUINT_PTR;
|
||||||
|
|
||||||
|
typedef [public] __int3264 LONG_PTR, *PLONG_PTR;
|
||||||
|
typedef [public] unsigned __int3264 ULONG_PTR, *PULONG_PTR;
|
||||||
|
|
||||||
|
#else // midl64
|
||||||
|
// old midl and C++ compiler
|
||||||
|
|
||||||
|
#if defined(_WIN64)
|
||||||
|
typedef __int64 INT_PTR, *PINT_PTR;
|
||||||
|
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
|
||||||
|
|
||||||
|
typedef __int64 LONG_PTR, *PLONG_PTR;
|
||||||
|
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
|
||||||
|
|
||||||
|
#define __int3264 __int64
|
||||||
|
|
||||||
|
#else
|
||||||
|
typedef _W64 int INT_PTR, *PINT_PTR;
|
||||||
|
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
|
||||||
|
|
||||||
|
typedef _W64 long LONG_PTR, *PLONG_PTR;
|
||||||
|
typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
|
||||||
|
|
||||||
|
#define __int3264 __int32
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif // midl64
|
||||||
|
|
||||||
|
//
|
||||||
|
// HALF_PTR is half the size of a pointer it intended for use with
|
||||||
|
// within strcuture which contain a pointer and two small fields.
|
||||||
|
// UHALF_PTR is the unsigned variation.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
|
||||||
|
#define ADDRESS_TAG_BIT 0x40000000000UI64
|
||||||
|
|
||||||
|
typedef __int64 SHANDLE_PTR;
|
||||||
|
typedef unsigned __int64 HANDLE_PTR;
|
||||||
|
typedef unsigned int UHALF_PTR, *PUHALF_PTR;
|
||||||
|
typedef int HALF_PTR, *PHALF_PTR;
|
||||||
|
|
||||||
|
#if !defined(__midl)
|
||||||
|
__inline
|
||||||
|
unsigned long
|
||||||
|
HandleToULong(
|
||||||
|
const void *h
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((unsigned long) (ULONG_PTR) h );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
long
|
||||||
|
HandleToLong(
|
||||||
|
const void *h
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((long) (LONG_PTR) h );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
ULongToHandle(
|
||||||
|
const unsigned long h
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((void *) (UINT_PTR) h );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
LongToHandle(
|
||||||
|
const long h
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((void *) (INT_PTR) h );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
__inline
|
||||||
|
unsigned long
|
||||||
|
PtrToUlong(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((unsigned long) (ULONG_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
unsigned int
|
||||||
|
PtrToUint(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((unsigned int) (UINT_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
unsigned short
|
||||||
|
PtrToUshort(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((unsigned short) (unsigned long) (ULONG_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
long
|
||||||
|
PtrToLong(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((long) (LONG_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
int
|
||||||
|
PtrToInt(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((int) (INT_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
short
|
||||||
|
PtrToShort(
|
||||||
|
const void *p
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return((short) (long) (LONG_PTR) p );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
IntToPtr(
|
||||||
|
const int i
|
||||||
|
)
|
||||||
|
// Caution: IntToPtr() sign-extends the int value.
|
||||||
|
{
|
||||||
|
return( (void *)(INT_PTR)i );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
UIntToPtr(
|
||||||
|
const unsigned int ui
|
||||||
|
)
|
||||||
|
// Caution: UIntToPtr() zero-extends the unsigned int value.
|
||||||
|
{
|
||||||
|
return( (void *)(UINT_PTR)ui );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
LongToPtr(
|
||||||
|
const long l
|
||||||
|
)
|
||||||
|
// Caution: LongToPtr() sign-extends the long value.
|
||||||
|
{
|
||||||
|
return( (void *)(LONG_PTR)l );
|
||||||
|
}
|
||||||
|
|
||||||
|
__inline
|
||||||
|
void *
|
||||||
|
ULongToPtr(
|
||||||
|
const unsigned long ul
|
||||||
|
)
|
||||||
|
// Caution: ULongToPtr() zero-extends the unsigned long value.
|
||||||
|
{
|
||||||
|
return( (void *)(ULONG_PTR)ul );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // !_midl
|
||||||
|
|
||||||
|
#else // !_WIN64
|
||||||
|
|
||||||
|
#define ADDRESS_TAG_BIT 0x80000000UL
|
||||||
|
|
||||||
|
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
|
||||||
|
typedef short HALF_PTR, *PHALF_PTR;
|
||||||
|
typedef _W64 long SHANDLE_PTR;
|
||||||
|
typedef _W64 unsigned long HANDLE_PTR;
|
||||||
|
|
||||||
|
#define HandleToULong( h ) ((ULONG)(ULONG_PTR)(h) )
|
||||||
|
#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
|
||||||
|
#define ULongToHandle( ul ) ((HANDLE)(ULONG_PTR) (ul) )
|
||||||
|
#define LongToHandle( h ) ((HANDLE)(LONG_PTR) (h) )
|
||||||
|
#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
|
||||||
|
#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
|
||||||
|
#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
|
||||||
|
#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
|
||||||
|
#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
|
||||||
|
#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
|
||||||
|
#define IntToPtr( i ) ((VOID *)(INT_PTR)((int)i))
|
||||||
|
#define UIntToPtr( ui ) ((VOID *)(UINT_PTR)((unsigned int)ui))
|
||||||
|
#define LongToPtr( l ) ((VOID *)(LONG_PTR)((long)l))
|
||||||
|
#define ULongToPtr( ul ) ((VOID *)(ULONG_PTR)((unsigned long)ul))
|
||||||
|
|
||||||
|
#endif // !_WIN64
|
||||||
|
|
||||||
|
#define HandleToUlong(h) HandleToULong(h)
|
||||||
|
#define UlongToHandle(ul) ULongToHandle(ul)
|
||||||
|
#define UlongToPtr(ul) ULongToPtr(ul)
|
||||||
|
#define UintToPtr(ui) UIntToPtr(ui)
|
||||||
|
|
||||||
|
#define MAXUINT_PTR (~((UINT_PTR)0))
|
||||||
|
#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
|
||||||
|
#define MININT_PTR (~MAXINT_PTR)
|
||||||
|
|
||||||
|
#define MAXULONG_PTR (~((ULONG_PTR)0))
|
||||||
|
#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
|
||||||
|
#define MINLONG_PTR (~MAXLONG_PTR)
|
||||||
|
|
||||||
|
#define MAXUHALF_PTR ((UHALF_PTR)~0)
|
||||||
|
#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
|
||||||
|
#define MINHALF_PTR (~MAXHALF_PTR)
|
||||||
|
|
||||||
|
//
|
||||||
|
// SIZE_T used for counts or ranges which need to span the range of
|
||||||
|
// of a pointer. SSIZE_T is the signed variation.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef ULONG_PTR SIZE_T, *PSIZE_T;
|
||||||
|
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Add Windows flavor DWORD_PTR types
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The following types are guaranteed to be signed and 64 bits wide.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef __int64 LONG64, *PLONG64;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The following types are guaranteed to be unsigned and 64 bits wide.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef unsigned __int64 ULONG64, *PULONG64;
|
||||||
|
typedef unsigned __int64 DWORD64, *PDWORD64;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Thread affinity.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef ULONG_PTR KAFFINITY;
|
||||||
|
typedef KAFFINITY *PKAFFINITY;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // _BASETSD_H_
|
||||||
4096
third_party/dx9_sdk/include/bdaiface.h
vendored
Normal file
4096
third_party/dx9_sdk/include/bdaiface.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1554
third_party/dx9_sdk/include/bdamedia.h
vendored
Normal file
1554
third_party/dx9_sdk/include/bdamedia.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
567
third_party/dx9_sdk/include/bdatypes.h
vendored
Normal file
567
third_party/dx9_sdk/include/bdatypes.h
vendored
Normal file
@ -0,0 +1,567 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: BDATypes.h
|
||||||
|
//
|
||||||
|
// Desc: Typedefs and enums needed by both the WDM drivers and the user mode
|
||||||
|
// COM interfaces.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1999 - 2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _BDATYPES_
|
||||||
|
|
||||||
|
#define _BDATYPES_ 1
|
||||||
|
|
||||||
|
/* Utility Macros */
|
||||||
|
|
||||||
|
#define MIN_DIMENSION 1
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __midl
|
||||||
|
#define V1_ENUM [v1_enum]
|
||||||
|
#else
|
||||||
|
#define V1_ENUM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
// BDA Topology Structures
|
||||||
|
//
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
typedef struct _BDA_TEMPLATE_CONNECTION
|
||||||
|
{
|
||||||
|
ULONG FromNodeType;
|
||||||
|
ULONG FromNodePinType;
|
||||||
|
ULONG ToNodeType;
|
||||||
|
ULONG ToNodePinType;
|
||||||
|
}BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _BDA_TEMPLATE_PIN_JOINT
|
||||||
|
{
|
||||||
|
ULONG uliTemplateConnection;
|
||||||
|
ULONG ulcInstancesMax;
|
||||||
|
}BDA_TEMPLATE_PIN_JOINT, *PBDA_TEMPLATE_PIN_JOINT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
// BDA Events
|
||||||
|
//
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// In-band Event IDs
|
||||||
|
//
|
||||||
|
typedef enum {
|
||||||
|
BDA_EVENT_SIGNAL_LOSS = 0,
|
||||||
|
BDA_EVENT_SIGNAL_LOCK,
|
||||||
|
BDA_EVENT_DATA_START,
|
||||||
|
BDA_EVENT_DATA_STOP,
|
||||||
|
BDA_EVENT_CHANNEL_ACQUIRED,
|
||||||
|
BDA_EVENT_CHANNEL_LOST,
|
||||||
|
BDA_EVENT_CHANNEL_SOURCE_CHANGED,
|
||||||
|
BDA_EVENT_CHANNEL_ACTIVATED,
|
||||||
|
BDA_EVENT_CHANNEL_DEACTIVATED,
|
||||||
|
BDA_EVENT_SUBCHANNEL_ACQUIRED,
|
||||||
|
BDA_EVENT_SUBCHANNEL_LOST,
|
||||||
|
BDA_EVENT_SUBCHANNEL_SOURCE_CHANGED,
|
||||||
|
BDA_EVENT_SUBCHANNEL_ACTIVATED,
|
||||||
|
BDA_EVENT_SUBCHANNEL_DEACTIVATED,
|
||||||
|
BDA_EVENT_ACCESS_GRANTED,
|
||||||
|
BDA_EVENT_ACCESS_DENIED,
|
||||||
|
BDA_EVENT_OFFER_EXTENDED,
|
||||||
|
BDA_EVENT_PURCHASE_COMPLETED,
|
||||||
|
BDA_EVENT_SMART_CARD_INSERTED,
|
||||||
|
BDA_EVENT_SMART_CARD_REMOVED
|
||||||
|
} BDA_EVENT_ID, *PBDA_EVENT_ID;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
// KSSTREAM_HEADER extensions for BDA
|
||||||
|
//
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
typedef struct tagKS_BDA_FRAME_INFO {
|
||||||
|
ULONG ExtendedHeaderSize; // Size of this extended header
|
||||||
|
DWORD dwFrameFlags; //
|
||||||
|
ULONG ulEvent; //
|
||||||
|
ULONG ulChannelNumber; //
|
||||||
|
ULONG ulSubchannelNumber; //
|
||||||
|
ULONG ulReason; //
|
||||||
|
} KS_BDA_FRAME_INFO, *PKS_BDA_FRAME_INFO;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Network Ethernet Filter Property Set
|
||||||
|
//
|
||||||
|
// {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
|
||||||
|
//
|
||||||
|
typedef struct _BDA_ETHERNET_ADDRESS {
|
||||||
|
BYTE rgbAddress[6];
|
||||||
|
} BDA_ETHERNET_ADDRESS, *PBDA_ETHERNET_ADDRESS;
|
||||||
|
|
||||||
|
typedef struct _BDA_ETHERNET_ADDRESS_LIST {
|
||||||
|
ULONG ulcAddresses;
|
||||||
|
BDA_ETHERNET_ADDRESS rgAddressl[MIN_DIMENSION];
|
||||||
|
} BDA_ETHERNET_ADDRESS_LIST, * PBDA_ETHERNET_ADDRESS_LIST;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
BDA_PROMISCUOUS_MULTICAST = 0,
|
||||||
|
BDA_FILTERED_MULTICAST,
|
||||||
|
BDA_NO_MULTICAST
|
||||||
|
} BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Network IPv4 Filter Property Set
|
||||||
|
//
|
||||||
|
// {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
|
||||||
|
//
|
||||||
|
typedef struct _BDA_IPv4_ADDRESS {
|
||||||
|
BYTE rgbAddress[4];
|
||||||
|
} BDA_IPv4_ADDRESS, *PBDA_IPv4_ADDRESS;
|
||||||
|
|
||||||
|
typedef struct _BDA_IPv4_ADDRESS_LIST {
|
||||||
|
ULONG ulcAddresses;
|
||||||
|
BDA_IPv4_ADDRESS rgAddressl[MIN_DIMENSION];
|
||||||
|
} BDA_IPv4_ADDRESS_LIST, * PBDA_IPv4_ADDRESS_LIST;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Network IPv4 Filter Property Set
|
||||||
|
//
|
||||||
|
// {E1785A74-2A23-4fb3-9245-A8F88017EF33}
|
||||||
|
//
|
||||||
|
typedef struct _BDA_IPv6_ADDRESS {
|
||||||
|
BYTE rgbAddress[6];
|
||||||
|
} BDA_IPv6_ADDRESS, *PBDA_IPv6_ADDRESS;
|
||||||
|
|
||||||
|
typedef struct _BDA_IPv6_ADDRESS_LIST {
|
||||||
|
ULONG ulcAddresses;
|
||||||
|
BDA_IPv6_ADDRESS rgAddressl[MIN_DIMENSION];
|
||||||
|
} BDA_IPv6_ADDRESS_LIST, * PBDA_IPv6_ADDRESS_LIST;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Signal Property Set
|
||||||
|
//
|
||||||
|
// {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
|
||||||
|
//
|
||||||
|
typedef enum {
|
||||||
|
BDA_SIGNAL_UNAVAILABLE = 0,
|
||||||
|
BDA_SIGNAL_INACTIVE,
|
||||||
|
BDA_SIGNAL_ACTIVE
|
||||||
|
} BDA_SIGNAL_STATE, * PBDA_SIGNAL_STATE;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Change Sync Method Set
|
||||||
|
//
|
||||||
|
// {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BDA_CHANGES_COMPLETE = 0,
|
||||||
|
BDA_CHANGES_PENDING
|
||||||
|
|
||||||
|
} BDA_CHANGE_STATE, * PBDA_CHANGE_STATE;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Device Configuration Method Set
|
||||||
|
//
|
||||||
|
// {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Topology Property Set
|
||||||
|
//
|
||||||
|
// {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct _BDANODE_DESCRIPTOR
|
||||||
|
{
|
||||||
|
ULONG ulBdaNodeType; // The node type as it is used
|
||||||
|
// in the BDA template topology
|
||||||
|
|
||||||
|
GUID guidFunction; // GUID from BdaMedia.h describing
|
||||||
|
// the node's function (e.g.
|
||||||
|
// KSNODE_BDA_RF_TUNER)
|
||||||
|
|
||||||
|
GUID guidName; // GUID that can be use to look up
|
||||||
|
// a displayable name for the node.
|
||||||
|
} BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Void Transform Property Set
|
||||||
|
//
|
||||||
|
// {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Null Transform Property Set
|
||||||
|
//
|
||||||
|
// {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Frequency Filter Property Set
|
||||||
|
//
|
||||||
|
// {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Autodemodulate Property Set
|
||||||
|
//
|
||||||
|
// {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Table Section Property Set
|
||||||
|
//
|
||||||
|
// {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct _BDA_TABLE_SECTION
|
||||||
|
{
|
||||||
|
ULONG ulPrimarySectionId;
|
||||||
|
ULONG ulSecondarySectionId;
|
||||||
|
ULONG ulcbSectionLength;
|
||||||
|
ULONG argbSectionData[MIN_DIMENSION];
|
||||||
|
} BDA_TABLE_SECTION, *PBDA_TABLE_SECTION;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA PID Filter Property Set
|
||||||
|
//
|
||||||
|
// {D0A67D65-08DF-4fec-8533-E5B550410B85}
|
||||||
|
//
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
// From IEnumPIDMap interface
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode
|
||||||
|
MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only
|
||||||
|
MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private
|
||||||
|
MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...)
|
||||||
|
} MEDIA_SAMPLE_CONTENT ;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ULONG ulPID ;
|
||||||
|
MEDIA_SAMPLE_CONTENT MediaSampleContent ;
|
||||||
|
} PID_MAP ;
|
||||||
|
|
||||||
|
typedef struct _BDA_PID_MAP
|
||||||
|
{
|
||||||
|
MEDIA_SAMPLE_CONTENT MediaSampleContent;
|
||||||
|
ULONG ulcPIDs;
|
||||||
|
ULONG aulPIDs[MIN_DIMENSION];
|
||||||
|
} BDA_PID_MAP, *PBDA_PID_MAP;
|
||||||
|
|
||||||
|
typedef struct _BDA_PID_UNMAP
|
||||||
|
{
|
||||||
|
ULONG ulcPIDs;
|
||||||
|
ULONG aulPIDs[MIN_DIMENSION];
|
||||||
|
} BDA_PID_UNMAP, *PBDA_PID_UNMAP;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA CA Property Set
|
||||||
|
//
|
||||||
|
// {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
|
||||||
|
//
|
||||||
|
typedef struct _BDA_CA_MODULE_UI
|
||||||
|
{
|
||||||
|
ULONG ulFormat;
|
||||||
|
ULONG ulbcDesc;
|
||||||
|
ULONG ulDesc[MIN_DIMENSION];
|
||||||
|
} BDA_CA_MODULE_UI, *PBDA_CA_MODULE_UI;
|
||||||
|
|
||||||
|
typedef struct _BDA_PROGRAM_PID_LIST
|
||||||
|
{
|
||||||
|
ULONG ulProgramNumber;
|
||||||
|
ULONG ulcPIDs;
|
||||||
|
ULONG ulPID[MIN_DIMENSION];
|
||||||
|
} BDA_PROGRAM_PID_LIST, *PBDA_PROGRAM_PID_LIST;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA CA Event Set
|
||||||
|
//
|
||||||
|
// {488C4CCC-B768-4129-8EB1-B00A071F9068}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=============================================================
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BDA Tuning Model enumerations
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//=============================================================
|
||||||
|
|
||||||
|
// system type for particular DVB Tuning Space instance
|
||||||
|
typedef enum DVBSystemType {
|
||||||
|
DVB_Cable,
|
||||||
|
DVB_Terrestrial,
|
||||||
|
DVB_Satellite,
|
||||||
|
} DVBSystemType;
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Channel Tune Request
|
||||||
|
|
||||||
|
V1_ENUM enum {
|
||||||
|
BDA_UNDEFINED_CHANNEL = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Component(substream)
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef V1_ENUM enum ComponentCategory
|
||||||
|
{
|
||||||
|
CategoryNotSet = -1,
|
||||||
|
CategoryOther = 0,
|
||||||
|
CategoryVideo,
|
||||||
|
CategoryAudio,
|
||||||
|
CategoryText,
|
||||||
|
CategoryData,
|
||||||
|
} ComponentCategory;
|
||||||
|
|
||||||
|
// Component Status
|
||||||
|
typedef enum ComponentStatus
|
||||||
|
{
|
||||||
|
StatusActive,
|
||||||
|
StatusInactive,
|
||||||
|
StatusUnavailable,
|
||||||
|
} ComponentStatus;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA MPEG2 Component Type
|
||||||
|
//
|
||||||
|
// from the MPEG2 specification
|
||||||
|
typedef V1_ENUM enum MPEG2StreamType {
|
||||||
|
BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
|
||||||
|
Reserved1 = 0x0,
|
||||||
|
ISO_IEC_11172_2_VIDEO = Reserved1 + 1,
|
||||||
|
ISO_IEC_13818_2_VIDEO = ISO_IEC_11172_2_VIDEO + 1,
|
||||||
|
ISO_IEC_11172_3_AUDIO = ISO_IEC_13818_2_VIDEO + 1,
|
||||||
|
ISO_IEC_13818_3_AUDIO = ISO_IEC_11172_3_AUDIO + 1,
|
||||||
|
ISO_IEC_13818_1_PRIVATE_SECTION = ISO_IEC_13818_3_AUDIO + 1,
|
||||||
|
ISO_IEC_13818_1_PES = ISO_IEC_13818_1_PRIVATE_SECTION + 1,
|
||||||
|
ISO_IEC_13522_MHEG = ISO_IEC_13818_1_PES + 1,
|
||||||
|
ANNEX_A_DSM_CC = ISO_IEC_13522_MHEG + 1,
|
||||||
|
ITU_T_REC_H_222_1 = ANNEX_A_DSM_CC + 1,
|
||||||
|
ISO_IEC_13818_6_TYPE_A = ITU_T_REC_H_222_1 + 1,
|
||||||
|
ISO_IEC_13818_6_TYPE_B = ISO_IEC_13818_6_TYPE_A + 1,
|
||||||
|
ISO_IEC_13818_6_TYPE_C = ISO_IEC_13818_6_TYPE_B + 1,
|
||||||
|
ISO_IEC_13818_6_TYPE_D = ISO_IEC_13818_6_TYPE_C + 1,
|
||||||
|
ISO_IEC_13818_1_AUXILIARY = ISO_IEC_13818_6_TYPE_D + 1,
|
||||||
|
ISO_IEC_13818_1_RESERVED = ISO_IEC_13818_1_AUXILIARY + 1,
|
||||||
|
USER_PRIVATE = ISO_IEC_13818_1_RESERVED + 1
|
||||||
|
} MPEG2StreamType;
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// mpeg-2 transport stride format block; associated with media
|
||||||
|
// types MEDIATYPE_Stream/MEDIASUBTYPE_MPEG2_TRANSPORT_STRIDE;
|
||||||
|
// *all* format blocks associated with above media type *must*
|
||||||
|
// start with the MPEG2_TRANSPORT_STRIDE structure
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct _MPEG2_TRANSPORT_STRIDE {
|
||||||
|
DWORD dwOffset ;
|
||||||
|
DWORD dwPacketLength ;
|
||||||
|
DWORD dwStride ;
|
||||||
|
} MPEG2_TRANSPORT_STRIDE, *PMPEG2_TRANSPORT_STRIDE ;
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA ATSC Component Type
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// ATSC made AC3 Audio a descriptor instead of
|
||||||
|
// defining a user private stream type.
|
||||||
|
typedef enum ATSCComponentTypeFlags {
|
||||||
|
// bit flags for various component type properties
|
||||||
|
ATSCCT_AC3 = 0x00000001,
|
||||||
|
} ATSCComponentTypeFlags;
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// BDA Locators
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
typedef V1_ENUM enum BinaryConvolutionCodeRate {
|
||||||
|
BDA_BCC_RATE_NOT_SET = -1,
|
||||||
|
BDA_BCC_RATE_NOT_DEFINED = 0,
|
||||||
|
BDA_BCC_RATE_1_2 = 1, // 1/2
|
||||||
|
BDA_BCC_RATE_2_3, // 2/3
|
||||||
|
BDA_BCC_RATE_3_4, // 3/4
|
||||||
|
BDA_BCC_RATE_3_5,
|
||||||
|
BDA_BCC_RATE_4_5,
|
||||||
|
BDA_BCC_RATE_5_6, // 5/6
|
||||||
|
BDA_BCC_RATE_5_11,
|
||||||
|
BDA_BCC_RATE_7_8, // 7/8
|
||||||
|
BDA_BCC_RATE_MAX,
|
||||||
|
} BinaryConvolutionCodeRate;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum FECMethod {
|
||||||
|
BDA_FEC_METHOD_NOT_SET = -1,
|
||||||
|
BDA_FEC_METHOD_NOT_DEFINED = 0,
|
||||||
|
BDA_FEC_VITERBI = 1, // FEC is a Viterbi Binary Convolution.
|
||||||
|
BDA_FEC_RS_204_188, // The FEC is Reed-Solomon 204/188 (outer FEC)
|
||||||
|
BDA_FEC_MAX,
|
||||||
|
} FECMethod;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum ModulationType {
|
||||||
|
BDA_MOD_NOT_SET = -1,
|
||||||
|
BDA_MOD_NOT_DEFINED = 0,
|
||||||
|
BDA_MOD_16QAM = 1,
|
||||||
|
BDA_MOD_32QAM,
|
||||||
|
BDA_MOD_64QAM,
|
||||||
|
BDA_MOD_80QAM,
|
||||||
|
BDA_MOD_96QAM,
|
||||||
|
BDA_MOD_112QAM,
|
||||||
|
BDA_MOD_128QAM,
|
||||||
|
BDA_MOD_160QAM,
|
||||||
|
BDA_MOD_192QAM,
|
||||||
|
BDA_MOD_224QAM,
|
||||||
|
BDA_MOD_256QAM,
|
||||||
|
BDA_MOD_320QAM,
|
||||||
|
BDA_MOD_384QAM,
|
||||||
|
BDA_MOD_448QAM,
|
||||||
|
BDA_MOD_512QAM,
|
||||||
|
BDA_MOD_640QAM,
|
||||||
|
BDA_MOD_768QAM,
|
||||||
|
BDA_MOD_896QAM,
|
||||||
|
BDA_MOD_1024QAM,
|
||||||
|
BDA_MOD_QPSK,
|
||||||
|
BDA_MOD_BPSK,
|
||||||
|
BDA_MOD_OQPSK,
|
||||||
|
BDA_MOD_8VSB,
|
||||||
|
BDA_MOD_16VSB,
|
||||||
|
BDA_MOD_ANALOG_AMPLITUDE, // std am
|
||||||
|
BDA_MOD_ANALOG_FREQUENCY, // std fm
|
||||||
|
BDA_MOD_MAX,
|
||||||
|
} ModulationType;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum SpectralInversion {
|
||||||
|
BDA_SPECTRAL_INVERSION_NOT_SET = -1,
|
||||||
|
BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
|
||||||
|
BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
|
||||||
|
BDA_SPECTRAL_INVERSION_NORMAL,
|
||||||
|
BDA_SPECTRAL_INVERSION_INVERTED,
|
||||||
|
BDA_SPECTRAL_INVERSION_MAX
|
||||||
|
} SpectralInversion;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum Polarisation {
|
||||||
|
BDA_POLARISATION_NOT_SET = -1,
|
||||||
|
BDA_POLARISATION_NOT_DEFINED = 0,
|
||||||
|
BDA_POLARISATION_LINEAR_H = 1, // Linear horizontal polarisation
|
||||||
|
BDA_POLARISATION_LINEAR_V, // Linear vertical polarisation
|
||||||
|
BDA_POLARISATION_CIRCULAR_L, // Circular left polarisation
|
||||||
|
BDA_POLARISATION_CIRCULAR_R, // Circular right polarisation
|
||||||
|
BDA_POLARISATION_MAX,
|
||||||
|
} Polarisation;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum GuardInterval {
|
||||||
|
BDA_GUARD_NOT_SET = -1,
|
||||||
|
BDA_GUARD_NOT_DEFINED = 0,
|
||||||
|
BDA_GUARD_1_32 = 1, // Guard interval is 1/32
|
||||||
|
BDA_GUARD_1_16, // Guard interval is 1/16
|
||||||
|
BDA_GUARD_1_8, // Guard interval is 1/8
|
||||||
|
BDA_GUARD_1_4, // Guard interval is 1/4
|
||||||
|
BDA_GUARD_MAX,
|
||||||
|
} GuardInterval;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum HierarchyAlpha {
|
||||||
|
BDA_HALPHA_NOT_SET = -1,
|
||||||
|
BDA_HALPHA_NOT_DEFINED = 0,
|
||||||
|
BDA_HALPHA_1 = 1, // Hierarchy alpha is 1.
|
||||||
|
BDA_HALPHA_2, // Hierarchy alpha is 2.
|
||||||
|
BDA_HALPHA_4, // Hierarchy alpha is 4.
|
||||||
|
BDA_HALPHA_MAX,
|
||||||
|
} HierarchyAlpha;
|
||||||
|
|
||||||
|
typedef V1_ENUM enum TransmissionMode {
|
||||||
|
BDA_XMIT_MODE_NOT_SET = -1,
|
||||||
|
BDA_XMIT_MODE_NOT_DEFINED = 0,
|
||||||
|
BDA_XMIT_MODE_2K = 1, // Transmission uses 1705 carriers (use a 2K FFT)
|
||||||
|
BDA_XMIT_MODE_8K, // Transmission uses 6817 carriers (use an 8K FFT)
|
||||||
|
BDA_XMIT_MODE_MAX,
|
||||||
|
} TransmissionMode;
|
||||||
|
|
||||||
|
// Settings for Tuner Frequency
|
||||||
|
//
|
||||||
|
#define BDA_FREQUENCY_NOT_SET -1
|
||||||
|
#define BDA_FREQUENCY_NOT_DEFINED 0
|
||||||
|
|
||||||
|
// Settings for Tuner Range
|
||||||
|
//
|
||||||
|
// Tuner range refers to the setting of LNB High/Low as well as the
|
||||||
|
// selection of a satellite on a multiple satellite switch.
|
||||||
|
//
|
||||||
|
#define BDA_RANGE_NOT_SET -1
|
||||||
|
#define BDA_RANGE_NOT_DEFINED 0
|
||||||
|
|
||||||
|
// Settings for Tuner Channel Bandwidth
|
||||||
|
//
|
||||||
|
#define BDA_CHAN_BANDWITH_NOT_SET -1
|
||||||
|
#define BDA_CHAN_BANDWITH_NOT_DEFINED 0
|
||||||
|
|
||||||
|
// Settings for Tuner Frequency Multiplier
|
||||||
|
//
|
||||||
|
#define BDA_FREQUENCY_MULTIPLIER_NOT_SET -1
|
||||||
|
#define BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED 0
|
||||||
|
|
||||||
|
#endif // not defined _BDATYPES_
|
||||||
|
|
||||||
|
// end of file -- bdatypes.h
|
||||||
26
third_party/dx9_sdk/include/comlite.h
vendored
Normal file
26
third_party/dx9_sdk/include/comlite.h
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// File: COMLite.h
|
||||||
|
//
|
||||||
|
// Desc: This header file is to provide a migration path for users of
|
||||||
|
// ActiveMovie betas 1 and 2.
|
||||||
|
//
|
||||||
|
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _INC_COMLITE_
|
||||||
|
#define _INC_COMLITE_
|
||||||
|
|
||||||
|
#define QzInitialize CoInitialize
|
||||||
|
#define QzUninitialize CoUninitialize
|
||||||
|
#define QzFreeUnusedLibraries CoFreeUnusedLibraries
|
||||||
|
|
||||||
|
#define QzGetMalloc CoGetMalloc
|
||||||
|
#define QzTaskMemAlloc CoTaskMemAlloc
|
||||||
|
#define QzTaskMemRealloc CoTaskMemRealloc
|
||||||
|
#define QzTaskMemFree CoTaskMemFree
|
||||||
|
#define QzCreateFilterObject CoCreateInstance
|
||||||
|
#define QzCLSIDFromString CLSIDFromString
|
||||||
|
#define QzStringFromGUID2 StringFromGUID2
|
||||||
|
|
||||||
|
#endif // _INC_COMLITE_
|
||||||
5544
third_party/dx9_sdk/include/control.h
vendored
Normal file
5544
third_party/dx9_sdk/include/control.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1688
third_party/dx9_sdk/include/d3d.h
vendored
Normal file
1688
third_party/dx9_sdk/include/d3d.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1279
third_party/dx9_sdk/include/d3d8.h
vendored
Normal file
1279
third_party/dx9_sdk/include/d3d8.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
364
third_party/dx9_sdk/include/d3d8caps.h
vendored
Normal file
364
third_party/dx9_sdk/include/d3d8caps.h
vendored
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* File: d3d8caps.h
|
||||||
|
* Content: Direct3D capabilities include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _D3D8CAPS_H
|
||||||
|
#define _D3D8CAPS_H
|
||||||
|
|
||||||
|
#ifndef DIRECT3D_VERSION
|
||||||
|
#define DIRECT3D_VERSION 0x0800
|
||||||
|
#endif //DIRECT3D_VERSION
|
||||||
|
|
||||||
|
// include this file content only if compiling for DX8 interfaces
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0800)
|
||||||
|
|
||||||
|
#if defined(_X86_) || defined(_IA64_)
|
||||||
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct _D3DCAPS8
|
||||||
|
{
|
||||||
|
/* Device Info */
|
||||||
|
D3DDEVTYPE DeviceType;
|
||||||
|
UINT AdapterOrdinal;
|
||||||
|
|
||||||
|
/* Caps from DX7 Draw */
|
||||||
|
DWORD Caps;
|
||||||
|
DWORD Caps2;
|
||||||
|
DWORD Caps3;
|
||||||
|
DWORD PresentationIntervals;
|
||||||
|
|
||||||
|
/* Cursor Caps */
|
||||||
|
DWORD CursorCaps;
|
||||||
|
|
||||||
|
/* 3D Device Caps */
|
||||||
|
DWORD DevCaps;
|
||||||
|
|
||||||
|
DWORD PrimitiveMiscCaps;
|
||||||
|
DWORD RasterCaps;
|
||||||
|
DWORD ZCmpCaps;
|
||||||
|
DWORD SrcBlendCaps;
|
||||||
|
DWORD DestBlendCaps;
|
||||||
|
DWORD AlphaCmpCaps;
|
||||||
|
DWORD ShadeCaps;
|
||||||
|
DWORD TextureCaps;
|
||||||
|
DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture8's
|
||||||
|
DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture8's
|
||||||
|
DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture8's
|
||||||
|
DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture8's
|
||||||
|
DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture8's
|
||||||
|
|
||||||
|
DWORD LineCaps; // D3DLINECAPS
|
||||||
|
|
||||||
|
DWORD MaxTextureWidth, MaxTextureHeight;
|
||||||
|
DWORD MaxVolumeExtent;
|
||||||
|
|
||||||
|
DWORD MaxTextureRepeat;
|
||||||
|
DWORD MaxTextureAspectRatio;
|
||||||
|
DWORD MaxAnisotropy;
|
||||||
|
float MaxVertexW;
|
||||||
|
|
||||||
|
float GuardBandLeft;
|
||||||
|
float GuardBandTop;
|
||||||
|
float GuardBandRight;
|
||||||
|
float GuardBandBottom;
|
||||||
|
|
||||||
|
float ExtentsAdjust;
|
||||||
|
DWORD StencilCaps;
|
||||||
|
|
||||||
|
DWORD FVFCaps;
|
||||||
|
DWORD TextureOpCaps;
|
||||||
|
DWORD MaxTextureBlendStages;
|
||||||
|
DWORD MaxSimultaneousTextures;
|
||||||
|
|
||||||
|
DWORD VertexProcessingCaps;
|
||||||
|
DWORD MaxActiveLights;
|
||||||
|
DWORD MaxUserClipPlanes;
|
||||||
|
DWORD MaxVertexBlendMatrices;
|
||||||
|
DWORD MaxVertexBlendMatrixIndex;
|
||||||
|
|
||||||
|
float MaxPointSize;
|
||||||
|
|
||||||
|
DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call
|
||||||
|
DWORD MaxVertexIndex;
|
||||||
|
DWORD MaxStreams;
|
||||||
|
DWORD MaxStreamStride; // max stride for SetStreamSource
|
||||||
|
|
||||||
|
DWORD VertexShaderVersion;
|
||||||
|
DWORD MaxVertexShaderConst; // number of vertex shader constant registers
|
||||||
|
|
||||||
|
DWORD PixelShaderVersion;
|
||||||
|
float MaxPixelShaderValue; // max value of pixel shader arithmetic component
|
||||||
|
|
||||||
|
} D3DCAPS8;
|
||||||
|
|
||||||
|
//
|
||||||
|
// BIT DEFINES FOR D3DCAPS8 DWORD MEMBERS
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps
|
||||||
|
//
|
||||||
|
#define D3DCAPS_READ_SCANLINE 0x00020000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps2
|
||||||
|
//
|
||||||
|
#define D3DCAPS2_NO2DDURING3DSCENE 0x00000002L
|
||||||
|
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000L
|
||||||
|
#define D3DCAPS2_CANRENDERWINDOWED 0x00080000L
|
||||||
|
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000L
|
||||||
|
#define D3DCAPS2_RESERVED 0x02000000L
|
||||||
|
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L
|
||||||
|
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps3
|
||||||
|
//
|
||||||
|
#define D3DCAPS3_RESERVED 0x8000001fL
|
||||||
|
|
||||||
|
// Indicates that the device can respect the ALPHABLENDENABLE render state
|
||||||
|
// when fullscreen while using the FLIP or DISCARD swap effect.
|
||||||
|
// COPY and COPYVSYNC swap effects work whether or not this flag is set.
|
||||||
|
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020L
|
||||||
|
|
||||||
|
//
|
||||||
|
// PresentationIntervals
|
||||||
|
//
|
||||||
|
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000L
|
||||||
|
#define D3DPRESENT_INTERVAL_ONE 0x00000001L
|
||||||
|
#define D3DPRESENT_INTERVAL_TWO 0x00000002L
|
||||||
|
#define D3DPRESENT_INTERVAL_THREE 0x00000004L
|
||||||
|
#define D3DPRESENT_INTERVAL_FOUR 0x00000008L
|
||||||
|
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// CursorCaps
|
||||||
|
//
|
||||||
|
// Driver supports HW color cursor in at least hi-res modes(height >=400)
|
||||||
|
#define D3DCURSORCAPS_COLOR 0x00000001L
|
||||||
|
// Driver supports HW cursor also in low-res modes(height < 400)
|
||||||
|
#define D3DCURSORCAPS_LOWRES 0x00000002L
|
||||||
|
|
||||||
|
//
|
||||||
|
// DevCaps
|
||||||
|
//
|
||||||
|
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010L /* Device can use execute buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020L /* Device can use execute buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080L /* Device can use TL buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100L /* Device can texture from system memory */
|
||||||
|
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200L /* Device can texture from device memory */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400L /* Device can draw TLVERTEX primitives */
|
||||||
|
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800L /* Device can render without waiting for flip to complete */
|
||||||
|
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000L /* Device can texture from nonlocal video memory */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000L /* Device can support DrawPrimitives2 */
|
||||||
|
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000L /* Device is texturing from separate memory pools */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000L /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
|
||||||
|
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000L /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
|
||||||
|
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000L /* Device supports a Tex Blt from system memory to non-local vidmem */
|
||||||
|
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000L /* Device has HW acceleration for rasterization */
|
||||||
|
#define D3DDEVCAPS_PUREDEVICE 0x00100000L /* Device supports D3DCREATE_PUREDEVICE */
|
||||||
|
#define D3DDEVCAPS_QUINTICRTPATCHES 0x00200000L /* Device supports quintic Beziers and BSplines */
|
||||||
|
#define D3DDEVCAPS_RTPATCHES 0x00400000L /* Device supports Rect and Tri patches */
|
||||||
|
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000L /* Indicates that RT Patches may be drawn efficiently using handle 0 */
|
||||||
|
#define D3DDEVCAPS_NPATCHES 0x01000000L /* Device supports N-Patches */
|
||||||
|
|
||||||
|
//
|
||||||
|
// PrimitiveMiscCaps
|
||||||
|
//
|
||||||
|
#define D3DPMISCCAPS_MASKZ 0x00000002L
|
||||||
|
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004L
|
||||||
|
#define D3DPMISCCAPS_CULLNONE 0x00000010L
|
||||||
|
#define D3DPMISCCAPS_CULLCW 0x00000020L
|
||||||
|
#define D3DPMISCCAPS_CULLCCW 0x00000040L
|
||||||
|
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080L
|
||||||
|
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100L /* Device correctly clips scaled points to clip planes */
|
||||||
|
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L /* device will clip post-transformed vertex primitives */
|
||||||
|
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400L /* device supports D3DTA_TEMP for temporary register */
|
||||||
|
#define D3DPMISCCAPS_BLENDOP 0x00000800L /* device supports D3DRS_BLENDOP */
|
||||||
|
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000L /* Reference Device that doesnt render */
|
||||||
|
|
||||||
|
//
|
||||||
|
// LineCaps
|
||||||
|
//
|
||||||
|
#define D3DLINECAPS_TEXTURE 0x00000001L
|
||||||
|
#define D3DLINECAPS_ZTEST 0x00000002L
|
||||||
|
#define D3DLINECAPS_BLEND 0x00000004L
|
||||||
|
#define D3DLINECAPS_ALPHACMP 0x00000008L
|
||||||
|
#define D3DLINECAPS_FOG 0x00000010L
|
||||||
|
|
||||||
|
//
|
||||||
|
// RasterCaps
|
||||||
|
//
|
||||||
|
#define D3DPRASTERCAPS_DITHER 0x00000001L
|
||||||
|
#define D3DPRASTERCAPS_PAT 0x00000008L
|
||||||
|
#define D3DPRASTERCAPS_ZTEST 0x00000010L
|
||||||
|
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080L
|
||||||
|
#define D3DPRASTERCAPS_FOGTABLE 0x00000100L
|
||||||
|
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000L
|
||||||
|
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000L
|
||||||
|
#define D3DPRASTERCAPS_ZBIAS 0x00004000L
|
||||||
|
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000L
|
||||||
|
#define D3DPRASTERCAPS_FOGRANGE 0x00010000L
|
||||||
|
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000L
|
||||||
|
#define D3DPRASTERCAPS_WBUFFER 0x00040000L
|
||||||
|
#define D3DPRASTERCAPS_WFOG 0x00100000L
|
||||||
|
#define D3DPRASTERCAPS_ZFOG 0x00200000L
|
||||||
|
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000L /* Device iterates colors perspective correct */
|
||||||
|
#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// ZCmpCaps, AlphaCmpCaps
|
||||||
|
//
|
||||||
|
#define D3DPCMPCAPS_NEVER 0x00000001L
|
||||||
|
#define D3DPCMPCAPS_LESS 0x00000002L
|
||||||
|
#define D3DPCMPCAPS_EQUAL 0x00000004L
|
||||||
|
#define D3DPCMPCAPS_LESSEQUAL 0x00000008L
|
||||||
|
#define D3DPCMPCAPS_GREATER 0x00000010L
|
||||||
|
#define D3DPCMPCAPS_NOTEQUAL 0x00000020L
|
||||||
|
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040L
|
||||||
|
#define D3DPCMPCAPS_ALWAYS 0x00000080L
|
||||||
|
|
||||||
|
//
|
||||||
|
// SourceBlendCaps, DestBlendCaps
|
||||||
|
//
|
||||||
|
#define D3DPBLENDCAPS_ZERO 0x00000001L
|
||||||
|
#define D3DPBLENDCAPS_ONE 0x00000002L
|
||||||
|
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHA 0x00000010L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020L
|
||||||
|
#define D3DPBLENDCAPS_DESTALPHA 0x00000040L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080L
|
||||||
|
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400L
|
||||||
|
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800L
|
||||||
|
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// ShadeCaps
|
||||||
|
//
|
||||||
|
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008L
|
||||||
|
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200L
|
||||||
|
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000L
|
||||||
|
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureCaps
|
||||||
|
//
|
||||||
|
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001L /* Perspective-correct texturing is supported */
|
||||||
|
#define D3DPTEXTURECAPS_POW2 0x00000002L /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */
|
||||||
|
#define D3DPTEXTURECAPS_ALPHA 0x00000004L /* Alpha in texture pixels is supported */
|
||||||
|
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020L /* Only square textures are supported */
|
||||||
|
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L /* Texture indices are not scaled by the texture size prior to interpolation */
|
||||||
|
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080L /* Device can draw alpha from texture palettes */
|
||||||
|
// Device can use non-POW2 textures if:
|
||||||
|
// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
|
||||||
|
// 2) D3DRS_WRAP(N) is zero for this texture's coordinates
|
||||||
|
// 3) mip mapping is not enabled (use magnification filter only)
|
||||||
|
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
|
||||||
|
#define D3DPTEXTURECAPS_PROJECTED 0x00000400L /* Device can do D3DTTFF_PROJECTED */
|
||||||
|
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800L /* Device can do cubemap textures */
|
||||||
|
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000L /* Device can do volume textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPMAP 0x00004000L /* Device can do mipmapped textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000L /* Device can do mipmapped volume textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000L /* Device can do mipmapped cube maps */
|
||||||
|
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000L /* Device requires that cubemaps be power-of-2 dimension */
|
||||||
|
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000L /* Device requires that volume maps be power-of-2 dimension */
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureFilterCaps
|
||||||
|
//
|
||||||
|
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100L /* Min Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200L
|
||||||
|
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400L
|
||||||
|
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000L /* Mip Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000L /* Mag Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureAddressCaps
|
||||||
|
//
|
||||||
|
#define D3DPTADDRESSCAPS_WRAP 0x00000001L
|
||||||
|
#define D3DPTADDRESSCAPS_MIRROR 0x00000002L
|
||||||
|
#define D3DPTADDRESSCAPS_CLAMP 0x00000004L
|
||||||
|
#define D3DPTADDRESSCAPS_BORDER 0x00000008L
|
||||||
|
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010L
|
||||||
|
#define D3DPTADDRESSCAPS_MIRRORONCE 0x00000020L
|
||||||
|
|
||||||
|
//
|
||||||
|
// StencilCaps
|
||||||
|
//
|
||||||
|
#define D3DSTENCILCAPS_KEEP 0x00000001L
|
||||||
|
#define D3DSTENCILCAPS_ZERO 0x00000002L
|
||||||
|
#define D3DSTENCILCAPS_REPLACE 0x00000004L
|
||||||
|
#define D3DSTENCILCAPS_INCRSAT 0x00000008L
|
||||||
|
#define D3DSTENCILCAPS_DECRSAT 0x00000010L
|
||||||
|
#define D3DSTENCILCAPS_INVERT 0x00000020L
|
||||||
|
#define D3DSTENCILCAPS_INCR 0x00000040L
|
||||||
|
#define D3DSTENCILCAPS_DECR 0x00000080L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureOpCaps
|
||||||
|
//
|
||||||
|
#define D3DTEXOPCAPS_DISABLE 0x00000001L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG1 0x00000002L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG2 0x00000004L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE 0x00000008L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE2X 0x00000010L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE4X 0x00000020L
|
||||||
|
#define D3DTEXOPCAPS_ADD 0x00000040L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100L
|
||||||
|
#define D3DTEXOPCAPS_SUBTRACT 0x00000200L
|
||||||
|
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400L
|
||||||
|
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000L
|
||||||
|
#define D3DTEXOPCAPS_PREMODULATE 0x00010000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000L
|
||||||
|
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000L
|
||||||
|
#define D3DTEXOPCAPS_MULTIPLYADD 0x01000000L
|
||||||
|
#define D3DTEXOPCAPS_LERP 0x02000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// FVFCaps
|
||||||
|
//
|
||||||
|
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffffL /* mask for texture coordinate count field */
|
||||||
|
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000L /* Device prefers that vertex elements not be stripped */
|
||||||
|
#define D3DFVFCAPS_PSIZE 0x00100000L /* Device can receive point size */
|
||||||
|
|
||||||
|
//
|
||||||
|
// VertexProcessingCaps
|
||||||
|
//
|
||||||
|
#define D3DVTXPCAPS_TEXGEN 0x00000001L /* device can do texgen */
|
||||||
|
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002L /* device can do DX7-level colormaterialsource ops */
|
||||||
|
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L /* device can do directional lights */
|
||||||
|
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L /* device can do positional lights (includes point and spot) */
|
||||||
|
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020L /* device can do local viewer */
|
||||||
|
#define D3DVTXPCAPS_TWEENING 0x00000040L /* device can do vertex tweening */
|
||||||
|
#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080L /* device does not support D3DVSDT_UBYTE4 */
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
#endif /* (DIRECT3D_VERSION >= 0x0800) */
|
||||||
|
#endif /* _D3D8CAPS_H_ */
|
||||||
|
|
||||||
1684
third_party/dx9_sdk/include/d3d8types.h
vendored
Normal file
1684
third_party/dx9_sdk/include/d3d8types.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1667
third_party/dx9_sdk/include/d3d9.h
vendored
Normal file
1667
third_party/dx9_sdk/include/d3d9.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
476
third_party/dx9_sdk/include/d3d9caps.h
vendored
Normal file
476
third_party/dx9_sdk/include/d3d9caps.h
vendored
Normal file
@ -0,0 +1,476 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* File: d3d9caps.h
|
||||||
|
* Content: Direct3D capabilities include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _d3d9CAPS_H
|
||||||
|
#define _d3d9CAPS_H
|
||||||
|
|
||||||
|
#ifndef DIRECT3D_VERSION
|
||||||
|
#define DIRECT3D_VERSION 0x0900
|
||||||
|
#endif //DIRECT3D_VERSION
|
||||||
|
|
||||||
|
// include this file content only if compiling for DX9 interfaces
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0900)
|
||||||
|
|
||||||
|
#if defined(_X86_) || defined(_IA64)
|
||||||
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct _D3DVSHADERCAPS2_0
|
||||||
|
{
|
||||||
|
DWORD Caps;
|
||||||
|
INT DynamicFlowControlDepth;
|
||||||
|
INT NumTemps;
|
||||||
|
INT StaticFlowControlDepth;
|
||||||
|
} D3DVSHADERCAPS2_0;
|
||||||
|
|
||||||
|
#define D3DVS20CAPS_PREDICATION (1<<0)
|
||||||
|
|
||||||
|
#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
|
||||||
|
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
|
||||||
|
#define D3DVS20_MAX_NUMTEMPS 32
|
||||||
|
#define D3DVS20_MIN_NUMTEMPS 12
|
||||||
|
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
|
||||||
|
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
|
||||||
|
|
||||||
|
typedef struct _D3DPSHADERCAPS2_0
|
||||||
|
{
|
||||||
|
DWORD Caps;
|
||||||
|
INT DynamicFlowControlDepth;
|
||||||
|
INT NumTemps;
|
||||||
|
INT StaticFlowControlDepth;
|
||||||
|
INT NumInstructionSlots;
|
||||||
|
} D3DPSHADERCAPS2_0;
|
||||||
|
|
||||||
|
#define D3DPS20CAPS_ARBITRARYSWIZZLE (1<<0)
|
||||||
|
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS (1<<1)
|
||||||
|
#define D3DPS20CAPS_PREDICATION (1<<2)
|
||||||
|
#define D3DPS20CAPS_NODEPENDENTREADLIMIT (1<<3)
|
||||||
|
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT (1<<4)
|
||||||
|
|
||||||
|
#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
|
||||||
|
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
|
||||||
|
#define D3DPS20_MAX_NUMTEMPS 32
|
||||||
|
#define D3DPS20_MIN_NUMTEMPS 12
|
||||||
|
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
|
||||||
|
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
|
||||||
|
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
|
||||||
|
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
|
||||||
|
|
||||||
|
#define D3DMIN30SHADERINSTRUCTIONS 512
|
||||||
|
#define D3DMAX30SHADERINSTRUCTIONS 32768
|
||||||
|
|
||||||
|
typedef struct _D3DCAPS9
|
||||||
|
{
|
||||||
|
/* Device Info */
|
||||||
|
D3DDEVTYPE DeviceType;
|
||||||
|
UINT AdapterOrdinal;
|
||||||
|
|
||||||
|
/* Caps from DX7 Draw */
|
||||||
|
DWORD Caps;
|
||||||
|
DWORD Caps2;
|
||||||
|
DWORD Caps3;
|
||||||
|
DWORD PresentationIntervals;
|
||||||
|
|
||||||
|
/* Cursor Caps */
|
||||||
|
DWORD CursorCaps;
|
||||||
|
|
||||||
|
/* 3D Device Caps */
|
||||||
|
DWORD DevCaps;
|
||||||
|
|
||||||
|
DWORD PrimitiveMiscCaps;
|
||||||
|
DWORD RasterCaps;
|
||||||
|
DWORD ZCmpCaps;
|
||||||
|
DWORD SrcBlendCaps;
|
||||||
|
DWORD DestBlendCaps;
|
||||||
|
DWORD AlphaCmpCaps;
|
||||||
|
DWORD ShadeCaps;
|
||||||
|
DWORD TextureCaps;
|
||||||
|
DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's
|
||||||
|
DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture9's
|
||||||
|
DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture9's
|
||||||
|
DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture9's
|
||||||
|
DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture9's
|
||||||
|
|
||||||
|
DWORD LineCaps; // D3DLINECAPS
|
||||||
|
|
||||||
|
DWORD MaxTextureWidth, MaxTextureHeight;
|
||||||
|
DWORD MaxVolumeExtent;
|
||||||
|
|
||||||
|
DWORD MaxTextureRepeat;
|
||||||
|
DWORD MaxTextureAspectRatio;
|
||||||
|
DWORD MaxAnisotropy;
|
||||||
|
float MaxVertexW;
|
||||||
|
|
||||||
|
float GuardBandLeft;
|
||||||
|
float GuardBandTop;
|
||||||
|
float GuardBandRight;
|
||||||
|
float GuardBandBottom;
|
||||||
|
|
||||||
|
float ExtentsAdjust;
|
||||||
|
DWORD StencilCaps;
|
||||||
|
|
||||||
|
DWORD FVFCaps;
|
||||||
|
DWORD TextureOpCaps;
|
||||||
|
DWORD MaxTextureBlendStages;
|
||||||
|
DWORD MaxSimultaneousTextures;
|
||||||
|
|
||||||
|
DWORD VertexProcessingCaps;
|
||||||
|
DWORD MaxActiveLights;
|
||||||
|
DWORD MaxUserClipPlanes;
|
||||||
|
DWORD MaxVertexBlendMatrices;
|
||||||
|
DWORD MaxVertexBlendMatrixIndex;
|
||||||
|
|
||||||
|
float MaxPointSize;
|
||||||
|
|
||||||
|
DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call
|
||||||
|
DWORD MaxVertexIndex;
|
||||||
|
DWORD MaxStreams;
|
||||||
|
DWORD MaxStreamStride; // max stride for SetStreamSource
|
||||||
|
|
||||||
|
DWORD VertexShaderVersion;
|
||||||
|
DWORD MaxVertexShaderConst; // number of vertex shader constant registers
|
||||||
|
|
||||||
|
DWORD PixelShaderVersion;
|
||||||
|
float PixelShader1xMaxValue; // max value storable in registers of ps.1.x shaders
|
||||||
|
|
||||||
|
// Here are the DX9 specific ones
|
||||||
|
DWORD DevCaps2;
|
||||||
|
|
||||||
|
float MaxNpatchTessellationLevel;
|
||||||
|
DWORD Reserved5;
|
||||||
|
|
||||||
|
UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group
|
||||||
|
UINT AdapterOrdinalInGroup; // ordinal inside the adapter group
|
||||||
|
UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master)
|
||||||
|
DWORD DeclTypes; // Data types, supported in vertex declarations
|
||||||
|
DWORD NumSimultaneousRTs; // Will be at least 1
|
||||||
|
DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect
|
||||||
|
D3DVSHADERCAPS2_0 VS20Caps;
|
||||||
|
D3DPSHADERCAPS2_0 PS20Caps;
|
||||||
|
DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders
|
||||||
|
DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed
|
||||||
|
DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed
|
||||||
|
DWORD MaxVertexShader30InstructionSlots;
|
||||||
|
DWORD MaxPixelShader30InstructionSlots;
|
||||||
|
} D3DCAPS9;
|
||||||
|
|
||||||
|
//
|
||||||
|
// BIT DEFINES FOR D3DCAPS9 DWORD MEMBERS
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps
|
||||||
|
//
|
||||||
|
#define D3DCAPS_READ_SCANLINE 0x00020000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps2
|
||||||
|
//
|
||||||
|
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000L
|
||||||
|
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000L
|
||||||
|
#define D3DCAPS2_RESERVED 0x02000000L
|
||||||
|
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L
|
||||||
|
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L
|
||||||
|
#define D3DCAPS2_CANAUTOGENMIPMAP 0x40000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// Caps3
|
||||||
|
//
|
||||||
|
#define D3DCAPS3_RESERVED 0x8000001fL
|
||||||
|
|
||||||
|
// Indicates that the device can respect the ALPHABLENDENABLE render state
|
||||||
|
// when fullscreen while using the FLIP or DISCARD swap effect.
|
||||||
|
// COPY and COPYVSYNC swap effects work whether or not this flag is set.
|
||||||
|
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020L
|
||||||
|
|
||||||
|
// Indicates that the device can perform a gamma correction from
|
||||||
|
// a windowed back buffer containing linear content to the sRGB desktop.
|
||||||
|
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080L
|
||||||
|
|
||||||
|
#define D3DCAPS3_COPY_TO_VIDMEM 0x00000100L /* Device can acclerate copies from sysmem to local vidmem */
|
||||||
|
#define D3DCAPS3_COPY_TO_SYSTEMMEM 0x00000200L /* Device can acclerate copies from local vidmem to sysmem */
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// PresentationIntervals
|
||||||
|
//
|
||||||
|
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000L
|
||||||
|
#define D3DPRESENT_INTERVAL_ONE 0x00000001L
|
||||||
|
#define D3DPRESENT_INTERVAL_TWO 0x00000002L
|
||||||
|
#define D3DPRESENT_INTERVAL_THREE 0x00000004L
|
||||||
|
#define D3DPRESENT_INTERVAL_FOUR 0x00000008L
|
||||||
|
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// CursorCaps
|
||||||
|
//
|
||||||
|
// Driver supports HW color cursor in at least hi-res modes(height >=400)
|
||||||
|
#define D3DCURSORCAPS_COLOR 0x00000001L
|
||||||
|
// Driver supports HW cursor also in low-res modes(height < 400)
|
||||||
|
#define D3DCURSORCAPS_LOWRES 0x00000002L
|
||||||
|
|
||||||
|
//
|
||||||
|
// DevCaps
|
||||||
|
//
|
||||||
|
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010L /* Device can use execute buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020L /* Device can use execute buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080L /* Device can use TL buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100L /* Device can texture from system memory */
|
||||||
|
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200L /* Device can texture from device memory */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400L /* Device can draw TLVERTEX primitives */
|
||||||
|
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800L /* Device can render without waiting for flip to complete */
|
||||||
|
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000L /* Device can texture from nonlocal video memory */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000L /* Device can support DrawPrimitives2 */
|
||||||
|
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000L /* Device is texturing from separate memory pools */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000L /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
|
||||||
|
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000L /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
|
||||||
|
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000L /* Device supports a Tex Blt from system memory to non-local vidmem */
|
||||||
|
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000L /* Device has HW acceleration for rasterization */
|
||||||
|
#define D3DDEVCAPS_PUREDEVICE 0x00100000L /* Device supports D3DCREATE_PUREDEVICE */
|
||||||
|
#define D3DDEVCAPS_QUINTICRTPATCHES 0x00200000L /* Device supports quintic Beziers and BSplines */
|
||||||
|
#define D3DDEVCAPS_RTPATCHES 0x00400000L /* Device supports Rect and Tri patches */
|
||||||
|
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000L /* Indicates that RT Patches may be drawn efficiently using handle 0 */
|
||||||
|
#define D3DDEVCAPS_NPATCHES 0x01000000L /* Device supports N-Patches */
|
||||||
|
|
||||||
|
//
|
||||||
|
// PrimitiveMiscCaps
|
||||||
|
//
|
||||||
|
#define D3DPMISCCAPS_MASKZ 0x00000002L
|
||||||
|
#define D3DPMISCCAPS_CULLNONE 0x00000010L
|
||||||
|
#define D3DPMISCCAPS_CULLCW 0x00000020L
|
||||||
|
#define D3DPMISCCAPS_CULLCCW 0x00000040L
|
||||||
|
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080L
|
||||||
|
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100L /* Device correctly clips scaled points to clip planes */
|
||||||
|
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L /* device will clip post-transformed vertex primitives */
|
||||||
|
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400L /* device supports D3DTA_TEMP for temporary register */
|
||||||
|
#define D3DPMISCCAPS_BLENDOP 0x00000800L /* device supports D3DRS_BLENDOP */
|
||||||
|
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000L /* Reference Device that doesnt render */
|
||||||
|
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x00004000L /* Device supports independent write masks for MET or MRT */
|
||||||
|
#define D3DPMISCCAPS_PERSTAGECONSTANT 0x00008000L /* Device supports per-stage constants */
|
||||||
|
#define D3DPMISCCAPS_FOGANDSPECULARALPHA 0x00010000L /* Device supports separate fog and specular alpha (many devices
|
||||||
|
use the specular alpha channel to store fog factor) */
|
||||||
|
#define D3DPMISCCAPS_SEPARATEALPHABLEND 0x00020000L /* Device supports separate blend settings for the alpha channel */
|
||||||
|
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x00040000L /* Device supports different bit depths for MRT */
|
||||||
|
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000L /* Device supports post-pixel shader operations for MRT */
|
||||||
|
#define D3DPMISCCAPS_FOGVERTEXCLAMPED 0x00100000L /* Device clamps fog blend factor per vertex */
|
||||||
|
|
||||||
|
//
|
||||||
|
// LineCaps
|
||||||
|
//
|
||||||
|
#define D3DLINECAPS_TEXTURE 0x00000001L
|
||||||
|
#define D3DLINECAPS_ZTEST 0x00000002L
|
||||||
|
#define D3DLINECAPS_BLEND 0x00000004L
|
||||||
|
#define D3DLINECAPS_ALPHACMP 0x00000008L
|
||||||
|
#define D3DLINECAPS_FOG 0x00000010L
|
||||||
|
#define D3DLINECAPS_ANTIALIAS 0x00000020L
|
||||||
|
|
||||||
|
//
|
||||||
|
// RasterCaps
|
||||||
|
//
|
||||||
|
#define D3DPRASTERCAPS_DITHER 0x00000001L
|
||||||
|
#define D3DPRASTERCAPS_ZTEST 0x00000010L
|
||||||
|
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080L
|
||||||
|
#define D3DPRASTERCAPS_FOGTABLE 0x00000100L
|
||||||
|
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000L
|
||||||
|
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000L
|
||||||
|
#define D3DPRASTERCAPS_FOGRANGE 0x00010000L
|
||||||
|
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000L
|
||||||
|
#define D3DPRASTERCAPS_WBUFFER 0x00040000L
|
||||||
|
#define D3DPRASTERCAPS_WFOG 0x00100000L
|
||||||
|
#define D3DPRASTERCAPS_ZFOG 0x00200000L
|
||||||
|
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000L /* Device iterates colors perspective correct */
|
||||||
|
#define D3DPRASTERCAPS_SCISSORTEST 0x01000000L
|
||||||
|
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000L
|
||||||
|
#define D3DPRASTERCAPS_DEPTHBIAS 0x04000000L
|
||||||
|
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x08000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// ZCmpCaps, AlphaCmpCaps
|
||||||
|
//
|
||||||
|
#define D3DPCMPCAPS_NEVER 0x00000001L
|
||||||
|
#define D3DPCMPCAPS_LESS 0x00000002L
|
||||||
|
#define D3DPCMPCAPS_EQUAL 0x00000004L
|
||||||
|
#define D3DPCMPCAPS_LESSEQUAL 0x00000008L
|
||||||
|
#define D3DPCMPCAPS_GREATER 0x00000010L
|
||||||
|
#define D3DPCMPCAPS_NOTEQUAL 0x00000020L
|
||||||
|
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040L
|
||||||
|
#define D3DPCMPCAPS_ALWAYS 0x00000080L
|
||||||
|
|
||||||
|
//
|
||||||
|
// SourceBlendCaps, DestBlendCaps
|
||||||
|
//
|
||||||
|
#define D3DPBLENDCAPS_ZERO 0x00000001L
|
||||||
|
#define D3DPBLENDCAPS_ONE 0x00000002L
|
||||||
|
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHA 0x00000010L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020L
|
||||||
|
#define D3DPBLENDCAPS_DESTALPHA 0x00000040L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080L
|
||||||
|
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400L
|
||||||
|
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800L
|
||||||
|
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000L
|
||||||
|
#define D3DPBLENDCAPS_BLENDFACTOR 0x00002000L /* Supports both D3DBLEND_BLENDFACTOR and D3DBLEND_INVBLENDFACTOR */
|
||||||
|
|
||||||
|
//
|
||||||
|
// ShadeCaps
|
||||||
|
//
|
||||||
|
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008L
|
||||||
|
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200L
|
||||||
|
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000L
|
||||||
|
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureCaps
|
||||||
|
//
|
||||||
|
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001L /* Perspective-correct texturing is supported */
|
||||||
|
#define D3DPTEXTURECAPS_POW2 0x00000002L /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */
|
||||||
|
#define D3DPTEXTURECAPS_ALPHA 0x00000004L /* Alpha in texture pixels is supported */
|
||||||
|
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020L /* Only square textures are supported */
|
||||||
|
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L /* Texture indices are not scaled by the texture size prior to interpolation */
|
||||||
|
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080L /* Device can draw alpha from texture palettes */
|
||||||
|
// Device can use non-POW2 textures if:
|
||||||
|
// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
|
||||||
|
// 2) D3DRS_WRAP(N) is zero for this texture's coordinates
|
||||||
|
// 3) mip mapping is not enabled (use magnification filter only)
|
||||||
|
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
|
||||||
|
#define D3DPTEXTURECAPS_PROJECTED 0x00000400L /* Device can do D3DTTFF_PROJECTED */
|
||||||
|
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800L /* Device can do cubemap textures */
|
||||||
|
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000L /* Device can do volume textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPMAP 0x00004000L /* Device can do mipmapped textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000L /* Device can do mipmapped volume textures */
|
||||||
|
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000L /* Device can do mipmapped cube maps */
|
||||||
|
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000L /* Device requires that cubemaps be power-of-2 dimension */
|
||||||
|
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000L /* Device requires that volume maps be power-of-2 dimension */
|
||||||
|
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x00200000L /* Device does not support projected bump env lookup operation
|
||||||
|
in programmable and fixed function pixel shaders */
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureFilterCaps, StretchRectFilterCaps
|
||||||
|
//
|
||||||
|
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100L /* Min Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200L
|
||||||
|
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400L
|
||||||
|
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD 0x00000800L
|
||||||
|
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD 0x00001000L
|
||||||
|
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000L /* Mip Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000L /* Mag Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureAddressCaps
|
||||||
|
//
|
||||||
|
#define D3DPTADDRESSCAPS_WRAP 0x00000001L
|
||||||
|
#define D3DPTADDRESSCAPS_MIRROR 0x00000002L
|
||||||
|
#define D3DPTADDRESSCAPS_CLAMP 0x00000004L
|
||||||
|
#define D3DPTADDRESSCAPS_BORDER 0x00000008L
|
||||||
|
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010L
|
||||||
|
#define D3DPTADDRESSCAPS_MIRRORONCE 0x00000020L
|
||||||
|
|
||||||
|
//
|
||||||
|
// StencilCaps
|
||||||
|
//
|
||||||
|
#define D3DSTENCILCAPS_KEEP 0x00000001L
|
||||||
|
#define D3DSTENCILCAPS_ZERO 0x00000002L
|
||||||
|
#define D3DSTENCILCAPS_REPLACE 0x00000004L
|
||||||
|
#define D3DSTENCILCAPS_INCRSAT 0x00000008L
|
||||||
|
#define D3DSTENCILCAPS_DECRSAT 0x00000010L
|
||||||
|
#define D3DSTENCILCAPS_INVERT 0x00000020L
|
||||||
|
#define D3DSTENCILCAPS_INCR 0x00000040L
|
||||||
|
#define D3DSTENCILCAPS_DECR 0x00000080L
|
||||||
|
#define D3DSTENCILCAPS_TWOSIDED 0x00000100L
|
||||||
|
|
||||||
|
//
|
||||||
|
// TextureOpCaps
|
||||||
|
//
|
||||||
|
#define D3DTEXOPCAPS_DISABLE 0x00000001L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG1 0x00000002L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG2 0x00000004L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE 0x00000008L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE2X 0x00000010L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE4X 0x00000020L
|
||||||
|
#define D3DTEXOPCAPS_ADD 0x00000040L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100L
|
||||||
|
#define D3DTEXOPCAPS_SUBTRACT 0x00000200L
|
||||||
|
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400L
|
||||||
|
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000L
|
||||||
|
#define D3DTEXOPCAPS_PREMODULATE 0x00010000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000L
|
||||||
|
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000L
|
||||||
|
#define D3DTEXOPCAPS_MULTIPLYADD 0x01000000L
|
||||||
|
#define D3DTEXOPCAPS_LERP 0x02000000L
|
||||||
|
|
||||||
|
//
|
||||||
|
// FVFCaps
|
||||||
|
//
|
||||||
|
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffffL /* mask for texture coordinate count field */
|
||||||
|
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000L /* Device prefers that vertex elements not be stripped */
|
||||||
|
#define D3DFVFCAPS_PSIZE 0x00100000L /* Device can receive point size */
|
||||||
|
|
||||||
|
//
|
||||||
|
// VertexProcessingCaps
|
||||||
|
//
|
||||||
|
#define D3DVTXPCAPS_TEXGEN 0x00000001L /* device can do texgen */
|
||||||
|
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002L /* device can do DX7-level colormaterialsource ops */
|
||||||
|
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L /* device can do directional lights */
|
||||||
|
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L /* device can do positional lights (includes point and spot) */
|
||||||
|
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020L /* device can do local viewer */
|
||||||
|
#define D3DVTXPCAPS_TWEENING 0x00000040L /* device can do vertex tweening */
|
||||||
|
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP 0x00000100L /* device supports D3DTSS_TCI_SPHEREMAP */
|
||||||
|
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200L /* device does not support TexGen in non-local
|
||||||
|
viewer mode */
|
||||||
|
|
||||||
|
//
|
||||||
|
// DevCaps2
|
||||||
|
//
|
||||||
|
#define D3DDEVCAPS2_STREAMOFFSET 0x00000001L /* Device supports offsets in streams. Must be set by DX9 drivers */
|
||||||
|
#define D3DDEVCAPS2_DMAPNPATCH 0x00000002L /* Device supports displacement maps for N-Patches*/
|
||||||
|
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x00000004L /* Device supports adaptive tesselation of RT-patches*/
|
||||||
|
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH 0x00000008L /* Device supports adaptive tesselation of N-patches*/
|
||||||
|
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x00000010L /* Device supports StretchRect calls with a texture as the source*/
|
||||||
|
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x00000020L /* Device supports presampled displacement maps for N-Patches */
|
||||||
|
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040L /* Vertex elements in a vertex declaration can share the same stream offset */
|
||||||
|
|
||||||
|
//
|
||||||
|
// DeclTypes
|
||||||
|
//
|
||||||
|
#define D3DDTCAPS_UBYTE4 0x00000001L
|
||||||
|
#define D3DDTCAPS_UBYTE4N 0x00000002L
|
||||||
|
#define D3DDTCAPS_SHORT2N 0x00000004L
|
||||||
|
#define D3DDTCAPS_SHORT4N 0x00000008L
|
||||||
|
#define D3DDTCAPS_USHORT2N 0x00000010L
|
||||||
|
#define D3DDTCAPS_USHORT4N 0x00000020L
|
||||||
|
#define D3DDTCAPS_UDEC3 0x00000040L
|
||||||
|
#define D3DDTCAPS_DEC3N 0x00000080L
|
||||||
|
#define D3DDTCAPS_FLOAT16_2 0x00000100L
|
||||||
|
#define D3DDTCAPS_FLOAT16_4 0x00000200L
|
||||||
|
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
#endif /* (DIRECT3D_VERSION >= 0x0900) */
|
||||||
|
#endif /* _d3d9CAPS_H_ */
|
||||||
|
|
||||||
1794
third_party/dx9_sdk/include/d3d9types.h
vendored
Normal file
1794
third_party/dx9_sdk/include/d3d9types.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
601
third_party/dx9_sdk/include/d3dcaps.h
vendored
Normal file
601
third_party/dx9_sdk/include/d3dcaps.h
vendored
Normal file
@ -0,0 +1,601 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* File: d3dcaps.h
|
||||||
|
* Content: Direct3D capabilities include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _D3DCAPS_H
|
||||||
|
#define _D3DCAPS_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pull in DirectDraw include file automatically:
|
||||||
|
*/
|
||||||
|
#include "ddraw.h"
|
||||||
|
|
||||||
|
#ifndef DIRECT3D_VERSION
|
||||||
|
#define DIRECT3D_VERSION 0x0700
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_X86_) || defined(_IA64_)
|
||||||
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Description of capabilities of transform */
|
||||||
|
|
||||||
|
typedef struct _D3DTRANSFORMCAPS {
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwCaps;
|
||||||
|
} D3DTRANSFORMCAPS, *LPD3DTRANSFORMCAPS;
|
||||||
|
|
||||||
|
#define D3DTRANSFORMCAPS_CLIP 0x00000001L /* Will clip whilst transforming */
|
||||||
|
|
||||||
|
/* Description of capabilities of lighting */
|
||||||
|
|
||||||
|
typedef struct _D3DLIGHTINGCAPS {
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwCaps; /* Lighting caps */
|
||||||
|
DWORD dwLightingModel; /* Lighting model - RGB or mono */
|
||||||
|
DWORD dwNumLights; /* Number of lights that can be handled */
|
||||||
|
} D3DLIGHTINGCAPS, *LPD3DLIGHTINGCAPS;
|
||||||
|
|
||||||
|
#define D3DLIGHTINGMODEL_RGB 0x00000001L
|
||||||
|
#define D3DLIGHTINGMODEL_MONO 0x00000002L
|
||||||
|
|
||||||
|
#define D3DLIGHTCAPS_POINT 0x00000001L /* Point lights supported */
|
||||||
|
#define D3DLIGHTCAPS_SPOT 0x00000002L /* Spot lights supported */
|
||||||
|
#define D3DLIGHTCAPS_DIRECTIONAL 0x00000004L /* Directional lights supported */
|
||||||
|
#if(DIRECT3D_VERSION < 0x700)
|
||||||
|
#define D3DLIGHTCAPS_PARALLELPOINT 0x00000008L /* Parallel point lights supported */
|
||||||
|
#endif
|
||||||
|
#if(DIRECT3D_VERSION < 0x500)
|
||||||
|
#define D3DLIGHTCAPS_GLSPOT 0x00000010L /* GL syle spot lights supported */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Description of capabilities for each primitive type */
|
||||||
|
|
||||||
|
typedef struct _D3DPrimCaps {
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwMiscCaps; /* Capability flags */
|
||||||
|
DWORD dwRasterCaps;
|
||||||
|
DWORD dwZCmpCaps;
|
||||||
|
DWORD dwSrcBlendCaps;
|
||||||
|
DWORD dwDestBlendCaps;
|
||||||
|
DWORD dwAlphaCmpCaps;
|
||||||
|
DWORD dwShadeCaps;
|
||||||
|
DWORD dwTextureCaps;
|
||||||
|
DWORD dwTextureFilterCaps;
|
||||||
|
DWORD dwTextureBlendCaps;
|
||||||
|
DWORD dwTextureAddressCaps;
|
||||||
|
DWORD dwStippleWidth; /* maximum width and height of */
|
||||||
|
DWORD dwStippleHeight; /* of supported stipple (up to 32x32) */
|
||||||
|
} D3DPRIMCAPS, *LPD3DPRIMCAPS;
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwMiscCaps */
|
||||||
|
|
||||||
|
#define D3DPMISCCAPS_MASKPLANES 0x00000001L
|
||||||
|
#define D3DPMISCCAPS_MASKZ 0x00000002L
|
||||||
|
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004L
|
||||||
|
#define D3DPMISCCAPS_CONFORMANT 0x00000008L
|
||||||
|
#define D3DPMISCCAPS_CULLNONE 0x00000010L
|
||||||
|
#define D3DPMISCCAPS_CULLCW 0x00000020L
|
||||||
|
#define D3DPMISCCAPS_CULLCCW 0x00000040L
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwRasterCaps */
|
||||||
|
|
||||||
|
#define D3DPRASTERCAPS_DITHER 0x00000001L
|
||||||
|
#define D3DPRASTERCAPS_ROP2 0x00000002L
|
||||||
|
#define D3DPRASTERCAPS_XOR 0x00000004L
|
||||||
|
#define D3DPRASTERCAPS_PAT 0x00000008L
|
||||||
|
#define D3DPRASTERCAPS_ZTEST 0x00000010L
|
||||||
|
#define D3DPRASTERCAPS_SUBPIXEL 0x00000020L
|
||||||
|
#define D3DPRASTERCAPS_SUBPIXELX 0x00000040L
|
||||||
|
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080L
|
||||||
|
#define D3DPRASTERCAPS_FOGTABLE 0x00000100L
|
||||||
|
#define D3DPRASTERCAPS_STIPPLE 0x00000200L
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0500)
|
||||||
|
#define D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400L
|
||||||
|
#define D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800L
|
||||||
|
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000L
|
||||||
|
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000L
|
||||||
|
#define D3DPRASTERCAPS_ZBIAS 0x00004000L
|
||||||
|
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000L
|
||||||
|
#define D3DPRASTERCAPS_FOGRANGE 0x00010000L
|
||||||
|
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0500 */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
#define D3DPRASTERCAPS_WBUFFER 0x00040000L
|
||||||
|
#define D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000L
|
||||||
|
#define D3DPRASTERCAPS_WFOG 0x00100000L
|
||||||
|
#define D3DPRASTERCAPS_ZFOG 0x00200000L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwZCmpCaps, dwAlphaCmpCaps */
|
||||||
|
|
||||||
|
#define D3DPCMPCAPS_NEVER 0x00000001L
|
||||||
|
#define D3DPCMPCAPS_LESS 0x00000002L
|
||||||
|
#define D3DPCMPCAPS_EQUAL 0x00000004L
|
||||||
|
#define D3DPCMPCAPS_LESSEQUAL 0x00000008L
|
||||||
|
#define D3DPCMPCAPS_GREATER 0x00000010L
|
||||||
|
#define D3DPCMPCAPS_NOTEQUAL 0x00000020L
|
||||||
|
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040L
|
||||||
|
#define D3DPCMPCAPS_ALWAYS 0x00000080L
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwSourceBlendCaps, dwDestBlendCaps */
|
||||||
|
|
||||||
|
#define D3DPBLENDCAPS_ZERO 0x00000001L
|
||||||
|
#define D3DPBLENDCAPS_ONE 0x00000002L
|
||||||
|
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHA 0x00000010L
|
||||||
|
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020L
|
||||||
|
#define D3DPBLENDCAPS_DESTALPHA 0x00000040L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080L
|
||||||
|
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100L
|
||||||
|
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200L
|
||||||
|
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400L
|
||||||
|
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800L
|
||||||
|
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000L
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwShadeCaps */
|
||||||
|
|
||||||
|
#define D3DPSHADECAPS_COLORFLATMONO 0x00000001L
|
||||||
|
#define D3DPSHADECAPS_COLORFLATRGB 0x00000002L
|
||||||
|
#define D3DPSHADECAPS_COLORGOURAUDMONO 0x00000004L
|
||||||
|
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008L
|
||||||
|
#define D3DPSHADECAPS_COLORPHONGMONO 0x00000010L
|
||||||
|
#define D3DPSHADECAPS_COLORPHONGRGB 0x00000020L
|
||||||
|
|
||||||
|
#define D3DPSHADECAPS_SPECULARFLATMONO 0x00000040L
|
||||||
|
#define D3DPSHADECAPS_SPECULARFLATRGB 0x00000080L
|
||||||
|
#define D3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100L
|
||||||
|
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200L
|
||||||
|
#define D3DPSHADECAPS_SPECULARPHONGMONO 0x00000400L
|
||||||
|
#define D3DPSHADECAPS_SPECULARPHONGRGB 0x00000800L
|
||||||
|
|
||||||
|
#define D3DPSHADECAPS_ALPHAFLATBLEND 0x00001000L
|
||||||
|
#define D3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000L
|
||||||
|
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000L
|
||||||
|
#define D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000L
|
||||||
|
#define D3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000L
|
||||||
|
#define D3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000L
|
||||||
|
|
||||||
|
#define D3DPSHADECAPS_FOGFLAT 0x00040000L
|
||||||
|
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000L
|
||||||
|
#define D3DPSHADECAPS_FOGPHONG 0x00100000L
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwTextureCaps */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Perspective-correct texturing is supported
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Power-of-2 texture dimensions are required
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_POW2 0x00000002L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Alpha in texture pixels is supported
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_ALPHA 0x00000004L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Color-keyed textures are supported
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_TRANSPARENCY 0x00000008L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* obsolete, see D3DPTADDRESSCAPS_BORDER
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_BORDER 0x00000010L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Only square textures are supported
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020L
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
/*
|
||||||
|
* Texture indices are not scaled by the texture size prior
|
||||||
|
* to interpolation.
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Device can draw alpha from texture palettes
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Device can use non-POW2 textures if:
|
||||||
|
* 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
|
||||||
|
* 2) D3DRS_WRAP(N) is zero for this texture's coordinates
|
||||||
|
* 3) mip mapping is not enabled (use magnification filter only)
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
|
||||||
|
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0700)
|
||||||
|
|
||||||
|
// 0x00000200L unused
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Device can divide transformed texture coordinates by the
|
||||||
|
* COUNTth texture coordinate (can do D3DTTFF_PROJECTED)
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_PROJECTED 0x00000400L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Device can do cubemap textures
|
||||||
|
*/
|
||||||
|
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800L
|
||||||
|
|
||||||
|
#define D3DPTEXTURECAPS_COLORKEYBLEND 0x00001000L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0700 */
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwTextureFilterCaps */
|
||||||
|
|
||||||
|
#define D3DPTFILTERCAPS_NEAREST 0x00000001L
|
||||||
|
#define D3DPTFILTERCAPS_LINEAR 0x00000002L
|
||||||
|
#define D3DPTFILTERCAPS_MIPNEAREST 0x00000004L
|
||||||
|
#define D3DPTFILTERCAPS_MIPLINEAR 0x00000008L
|
||||||
|
#define D3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010L
|
||||||
|
#define D3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020L
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
/* Device3 Min Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100L
|
||||||
|
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200L
|
||||||
|
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400L
|
||||||
|
|
||||||
|
/* Device3 Mip Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000L
|
||||||
|
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000L
|
||||||
|
|
||||||
|
/* Device3 Mag Filter */
|
||||||
|
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000L
|
||||||
|
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwTextureBlendCaps */
|
||||||
|
|
||||||
|
#define D3DPTBLENDCAPS_DECAL 0x00000001L
|
||||||
|
#define D3DPTBLENDCAPS_MODULATE 0x00000002L
|
||||||
|
#define D3DPTBLENDCAPS_DECALALPHA 0x00000004L
|
||||||
|
#define D3DPTBLENDCAPS_MODULATEALPHA 0x00000008L
|
||||||
|
#define D3DPTBLENDCAPS_DECALMASK 0x00000010L
|
||||||
|
#define D3DPTBLENDCAPS_MODULATEMASK 0x00000020L
|
||||||
|
#define D3DPTBLENDCAPS_COPY 0x00000040L
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0500)
|
||||||
|
#define D3DPTBLENDCAPS_ADD 0x00000080L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0500 */
|
||||||
|
|
||||||
|
/* D3DPRIMCAPS dwTextureAddressCaps */
|
||||||
|
#define D3DPTADDRESSCAPS_WRAP 0x00000001L
|
||||||
|
#define D3DPTADDRESSCAPS_MIRROR 0x00000002L
|
||||||
|
#define D3DPTADDRESSCAPS_CLAMP 0x00000004L
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0500)
|
||||||
|
#define D3DPTADDRESSCAPS_BORDER 0x00000008L
|
||||||
|
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010L
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0500 */
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
|
||||||
|
/* D3DDEVICEDESC dwStencilCaps */
|
||||||
|
|
||||||
|
#define D3DSTENCILCAPS_KEEP 0x00000001L
|
||||||
|
#define D3DSTENCILCAPS_ZERO 0x00000002L
|
||||||
|
#define D3DSTENCILCAPS_REPLACE 0x00000004L
|
||||||
|
#define D3DSTENCILCAPS_INCRSAT 0x00000008L
|
||||||
|
#define D3DSTENCILCAPS_DECRSAT 0x00000010L
|
||||||
|
#define D3DSTENCILCAPS_INVERT 0x00000020L
|
||||||
|
#define D3DSTENCILCAPS_INCR 0x00000040L
|
||||||
|
#define D3DSTENCILCAPS_DECR 0x00000080L
|
||||||
|
|
||||||
|
/* D3DDEVICEDESC dwTextureOpCaps */
|
||||||
|
|
||||||
|
#define D3DTEXOPCAPS_DISABLE 0x00000001L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG1 0x00000002L
|
||||||
|
#define D3DTEXOPCAPS_SELECTARG2 0x00000004L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE 0x00000008L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE2X 0x00000010L
|
||||||
|
#define D3DTEXOPCAPS_MODULATE4X 0x00000020L
|
||||||
|
#define D3DTEXOPCAPS_ADD 0x00000040L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080L
|
||||||
|
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100L
|
||||||
|
#define D3DTEXOPCAPS_SUBTRACT 0x00000200L
|
||||||
|
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400L
|
||||||
|
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000L
|
||||||
|
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000L
|
||||||
|
#define D3DTEXOPCAPS_PREMODULATE 0x00010000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000L
|
||||||
|
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000L
|
||||||
|
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000L
|
||||||
|
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000L
|
||||||
|
|
||||||
|
/* D3DDEVICEDESC dwFVFCaps flags */
|
||||||
|
|
||||||
|
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffffL /* mask for texture coordinate count field */
|
||||||
|
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000L /* Device prefers that vertex elements not be stripped */
|
||||||
|
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Description for a device.
|
||||||
|
* This is used to describe a device that is to be created or to query
|
||||||
|
* the current device.
|
||||||
|
*/
|
||||||
|
typedef struct _D3DDeviceDesc {
|
||||||
|
DWORD dwSize; /* Size of D3DDEVICEDESC structure */
|
||||||
|
DWORD dwFlags; /* Indicates which fields have valid data */
|
||||||
|
D3DCOLORMODEL dcmColorModel; /* Color model of device */
|
||||||
|
DWORD dwDevCaps; /* Capabilities of device */
|
||||||
|
D3DTRANSFORMCAPS dtcTransformCaps; /* Capabilities of transform */
|
||||||
|
BOOL bClipping; /* Device can do 3D clipping */
|
||||||
|
D3DLIGHTINGCAPS dlcLightingCaps; /* Capabilities of lighting */
|
||||||
|
D3DPRIMCAPS dpcLineCaps;
|
||||||
|
D3DPRIMCAPS dpcTriCaps;
|
||||||
|
DWORD dwDeviceRenderBitDepth; /* One of DDBB_8, 16, etc.. */
|
||||||
|
DWORD dwDeviceZBufferBitDepth;/* One of DDBD_16, 32, etc.. */
|
||||||
|
DWORD dwMaxBufferSize; /* Maximum execute buffer size */
|
||||||
|
DWORD dwMaxVertexCount; /* Maximum vertex count */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0500)
|
||||||
|
// *** New fields for DX5 *** //
|
||||||
|
|
||||||
|
// Width and height caps are 0 for legacy HALs.
|
||||||
|
DWORD dwMinTextureWidth, dwMinTextureHeight;
|
||||||
|
DWORD dwMaxTextureWidth, dwMaxTextureHeight;
|
||||||
|
DWORD dwMinStippleWidth, dwMaxStippleWidth;
|
||||||
|
DWORD dwMinStippleHeight, dwMaxStippleHeight;
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0500 */
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
// New fields for DX6
|
||||||
|
DWORD dwMaxTextureRepeat;
|
||||||
|
DWORD dwMaxTextureAspectRatio;
|
||||||
|
DWORD dwMaxAnisotropy;
|
||||||
|
|
||||||
|
// Guard band that the rasterizer can accommodate
|
||||||
|
// Screen-space vertices inside this space but outside the viewport
|
||||||
|
// will get clipped properly.
|
||||||
|
D3DVALUE dvGuardBandLeft;
|
||||||
|
D3DVALUE dvGuardBandTop;
|
||||||
|
D3DVALUE dvGuardBandRight;
|
||||||
|
D3DVALUE dvGuardBandBottom;
|
||||||
|
|
||||||
|
D3DVALUE dvExtentsAdjust;
|
||||||
|
DWORD dwStencilCaps;
|
||||||
|
|
||||||
|
DWORD dwFVFCaps;
|
||||||
|
DWORD dwTextureOpCaps;
|
||||||
|
WORD wMaxTextureBlendStages;
|
||||||
|
WORD wMaxSimultaneousTextures;
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
} D3DDEVICEDESC, *LPD3DDEVICEDESC;
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0700)
|
||||||
|
typedef struct _D3DDeviceDesc7 {
|
||||||
|
DWORD dwDevCaps; /* Capabilities of device */
|
||||||
|
D3DPRIMCAPS dpcLineCaps;
|
||||||
|
D3DPRIMCAPS dpcTriCaps;
|
||||||
|
DWORD dwDeviceRenderBitDepth; /* One of DDBB_8, 16, etc.. */
|
||||||
|
DWORD dwDeviceZBufferBitDepth;/* One of DDBD_16, 32, etc.. */
|
||||||
|
|
||||||
|
DWORD dwMinTextureWidth, dwMinTextureHeight;
|
||||||
|
DWORD dwMaxTextureWidth, dwMaxTextureHeight;
|
||||||
|
|
||||||
|
DWORD dwMaxTextureRepeat;
|
||||||
|
DWORD dwMaxTextureAspectRatio;
|
||||||
|
DWORD dwMaxAnisotropy;
|
||||||
|
|
||||||
|
D3DVALUE dvGuardBandLeft;
|
||||||
|
D3DVALUE dvGuardBandTop;
|
||||||
|
D3DVALUE dvGuardBandRight;
|
||||||
|
D3DVALUE dvGuardBandBottom;
|
||||||
|
|
||||||
|
D3DVALUE dvExtentsAdjust;
|
||||||
|
DWORD dwStencilCaps;
|
||||||
|
|
||||||
|
DWORD dwFVFCaps;
|
||||||
|
DWORD dwTextureOpCaps;
|
||||||
|
WORD wMaxTextureBlendStages;
|
||||||
|
WORD wMaxSimultaneousTextures;
|
||||||
|
|
||||||
|
DWORD dwMaxActiveLights;
|
||||||
|
D3DVALUE dvMaxVertexW;
|
||||||
|
GUID deviceGUID;
|
||||||
|
|
||||||
|
WORD wMaxUserClipPlanes;
|
||||||
|
WORD wMaxVertexBlendMatrices;
|
||||||
|
|
||||||
|
DWORD dwVertexProcessingCaps;
|
||||||
|
|
||||||
|
DWORD dwReserved1;
|
||||||
|
DWORD dwReserved2;
|
||||||
|
DWORD dwReserved3;
|
||||||
|
DWORD dwReserved4;
|
||||||
|
} D3DDEVICEDESC7, *LPD3DDEVICEDESC7;
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0700 */
|
||||||
|
|
||||||
|
#define D3DDEVICEDESCSIZE (sizeof(D3DDEVICEDESC))
|
||||||
|
#define D3DDEVICEDESC7SIZE (sizeof(D3DDEVICEDESC7))
|
||||||
|
|
||||||
|
typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK)(GUID FAR *lpGuid, LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID);
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0700)
|
||||||
|
typedef HRESULT (CALLBACK * LPD3DENUMDEVICESCALLBACK7)(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LPD3DDEVICEDESC7, LPVOID);
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0700 */
|
||||||
|
|
||||||
|
/* D3DDEVICEDESC dwFlags indicating valid fields */
|
||||||
|
|
||||||
|
#define D3DDD_COLORMODEL 0x00000001L /* dcmColorModel is valid */
|
||||||
|
#define D3DDD_DEVCAPS 0x00000002L /* dwDevCaps is valid */
|
||||||
|
#define D3DDD_TRANSFORMCAPS 0x00000004L /* dtcTransformCaps is valid */
|
||||||
|
#define D3DDD_LIGHTINGCAPS 0x00000008L /* dlcLightingCaps is valid */
|
||||||
|
#define D3DDD_BCLIPPING 0x00000010L /* bClipping is valid */
|
||||||
|
#define D3DDD_LINECAPS 0x00000020L /* dpcLineCaps is valid */
|
||||||
|
#define D3DDD_TRICAPS 0x00000040L /* dpcTriCaps is valid */
|
||||||
|
#define D3DDD_DEVICERENDERBITDEPTH 0x00000080L /* dwDeviceRenderBitDepth is valid */
|
||||||
|
#define D3DDD_DEVICEZBUFFERBITDEPTH 0x00000100L /* dwDeviceZBufferBitDepth is valid */
|
||||||
|
#define D3DDD_MAXBUFFERSIZE 0x00000200L /* dwMaxBufferSize is valid */
|
||||||
|
#define D3DDD_MAXVERTEXCOUNT 0x00000400L /* dwMaxVertexCount is valid */
|
||||||
|
|
||||||
|
/* D3DDEVICEDESC dwDevCaps flags */
|
||||||
|
|
||||||
|
#define D3DDEVCAPS_FLOATTLVERTEX 0x00000001L /* Device accepts floating point */
|
||||||
|
/* for post-transform vertex data */
|
||||||
|
#define D3DDEVCAPS_SORTINCREASINGZ 0x00000002L /* Device needs data sorted for increasing Z */
|
||||||
|
#define D3DDEVCAPS_SORTDECREASINGZ 0X00000004L /* Device needs data sorted for decreasing Z */
|
||||||
|
#define D3DDEVCAPS_SORTEXACT 0x00000008L /* Device needs data sorted exactly */
|
||||||
|
|
||||||
|
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010L /* Device can use execute buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020L /* Device can use execute buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
|
||||||
|
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080L /* Device can use TL buffers from video memory */
|
||||||
|
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100L /* Device can texture from system memory */
|
||||||
|
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200L /* Device can texture from device memory */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0500)
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400L /* Device can draw TLVERTEX primitives */
|
||||||
|
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800L /* Device can render without waiting for flip to complete */
|
||||||
|
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000L /* Device can texture from nonlocal video memory */
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0500 */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0600)
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000L /* Device can support DrawPrimitives2 */
|
||||||
|
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000L /* Device is texturing from separate memory pools */
|
||||||
|
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000L /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0600 */
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0700)
|
||||||
|
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000L /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
|
||||||
|
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000L /* Device supports a Tex Blt from system memory to non-local vidmem */
|
||||||
|
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000L /* Device has HW acceleration for rasterization */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These are the flags in the D3DDEVICEDESC7.dwVertexProcessingCaps field
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* device can do texgen */
|
||||||
|
#define D3DVTXPCAPS_TEXGEN 0x00000001L
|
||||||
|
/* device can do IDirect3DDevice7 colormaterialsource ops */
|
||||||
|
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002L
|
||||||
|
/* device can do vertex fog */
|
||||||
|
#define D3DVTXPCAPS_VERTEXFOG 0x00000004L
|
||||||
|
/* device can do directional lights */
|
||||||
|
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L
|
||||||
|
/* device can do positional lights (includes point and spot) */
|
||||||
|
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L
|
||||||
|
/* device can do local viewer */
|
||||||
|
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020L
|
||||||
|
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0700 */
|
||||||
|
|
||||||
|
#define D3DFDS_COLORMODEL 0x00000001L /* Match color model */
|
||||||
|
#define D3DFDS_GUID 0x00000002L /* Match guid */
|
||||||
|
#define D3DFDS_HARDWARE 0x00000004L /* Match hardware/software */
|
||||||
|
#define D3DFDS_TRIANGLES 0x00000008L /* Match in triCaps */
|
||||||
|
#define D3DFDS_LINES 0x00000010L /* Match in lineCaps */
|
||||||
|
#define D3DFDS_MISCCAPS 0x00000020L /* Match primCaps.dwMiscCaps */
|
||||||
|
#define D3DFDS_RASTERCAPS 0x00000040L /* Match primCaps.dwRasterCaps */
|
||||||
|
#define D3DFDS_ZCMPCAPS 0x00000080L /* Match primCaps.dwZCmpCaps */
|
||||||
|
#define D3DFDS_ALPHACMPCAPS 0x00000100L /* Match primCaps.dwAlphaCmpCaps */
|
||||||
|
#define D3DFDS_SRCBLENDCAPS 0x00000200L /* Match primCaps.dwSourceBlendCaps */
|
||||||
|
#define D3DFDS_DSTBLENDCAPS 0x00000400L /* Match primCaps.dwDestBlendCaps */
|
||||||
|
#define D3DFDS_SHADECAPS 0x00000800L /* Match primCaps.dwShadeCaps */
|
||||||
|
#define D3DFDS_TEXTURECAPS 0x00001000L /* Match primCaps.dwTextureCaps */
|
||||||
|
#define D3DFDS_TEXTUREFILTERCAPS 0x00002000L /* Match primCaps.dwTextureFilterCaps */
|
||||||
|
#define D3DFDS_TEXTUREBLENDCAPS 0x00004000L /* Match primCaps.dwTextureBlendCaps */
|
||||||
|
#define D3DFDS_TEXTUREADDRESSCAPS 0x00008000L /* Match primCaps.dwTextureBlendCaps */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FindDevice arguments
|
||||||
|
*/
|
||||||
|
typedef struct _D3DFINDDEVICESEARCH {
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwFlags;
|
||||||
|
BOOL bHardware;
|
||||||
|
D3DCOLORMODEL dcmColorModel;
|
||||||
|
GUID guid;
|
||||||
|
DWORD dwCaps;
|
||||||
|
D3DPRIMCAPS dpcPrimCaps;
|
||||||
|
} D3DFINDDEVICESEARCH, *LPD3DFINDDEVICESEARCH;
|
||||||
|
|
||||||
|
typedef struct _D3DFINDDEVICERESULT {
|
||||||
|
DWORD dwSize;
|
||||||
|
GUID guid; /* guid which matched */
|
||||||
|
D3DDEVICEDESC ddHwDesc; /* hardware D3DDEVICEDESC */
|
||||||
|
D3DDEVICEDESC ddSwDesc; /* software D3DDEVICEDESC */
|
||||||
|
} D3DFINDDEVICERESULT, *LPD3DFINDDEVICERESULT;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Description of execute buffer.
|
||||||
|
*/
|
||||||
|
typedef struct _D3DExecuteBufferDesc {
|
||||||
|
DWORD dwSize; /* size of this structure */
|
||||||
|
DWORD dwFlags; /* flags indicating which fields are valid */
|
||||||
|
DWORD dwCaps; /* capabilities of execute buffer */
|
||||||
|
DWORD dwBufferSize; /* size of execute buffer data */
|
||||||
|
LPVOID lpData; /* pointer to actual data */
|
||||||
|
} D3DEXECUTEBUFFERDESC, *LPD3DEXECUTEBUFFERDESC;
|
||||||
|
|
||||||
|
/* D3DEXECUTEBUFFER dwFlags indicating valid fields */
|
||||||
|
|
||||||
|
#define D3DDEB_BUFSIZE 0x00000001l /* buffer size valid */
|
||||||
|
#define D3DDEB_CAPS 0x00000002l /* caps valid */
|
||||||
|
#define D3DDEB_LPDATA 0x00000004l /* lpData valid */
|
||||||
|
|
||||||
|
/* D3DEXECUTEBUFFER dwCaps */
|
||||||
|
|
||||||
|
#define D3DDEBCAPS_SYSTEMMEMORY 0x00000001l /* buffer in system memory */
|
||||||
|
#define D3DDEBCAPS_VIDEOMEMORY 0x00000002l /* buffer in device memory */
|
||||||
|
#define D3DDEBCAPS_MEM (D3DDEBCAPS_SYSTEMMEMORY|D3DDEBCAPS_VIDEOMEMORY)
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION < 0x0800)
|
||||||
|
|
||||||
|
#if(DIRECT3D_VERSION >= 0x0700)
|
||||||
|
typedef struct _D3DDEVINFO_TEXTUREMANAGER {
|
||||||
|
BOOL bThrashing; /* indicates if thrashing */
|
||||||
|
DWORD dwApproxBytesDownloaded; /* Approximate number of bytes downloaded by texture manager */
|
||||||
|
DWORD dwNumEvicts; /* number of textures evicted */
|
||||||
|
DWORD dwNumVidCreates; /* number of textures created in video memory */
|
||||||
|
DWORD dwNumTexturesUsed; /* number of textures used */
|
||||||
|
DWORD dwNumUsedTexInVid; /* number of used textures present in video memory */
|
||||||
|
DWORD dwWorkingSet; /* number of textures in video memory */
|
||||||
|
DWORD dwWorkingSetBytes; /* number of bytes in video memory */
|
||||||
|
DWORD dwTotalManaged; /* total number of managed textures */
|
||||||
|
DWORD dwTotalBytes; /* total number of bytes of managed textures */
|
||||||
|
DWORD dwLastPri; /* priority of last texture evicted */
|
||||||
|
} D3DDEVINFO_TEXTUREMANAGER, *LPD3DDEVINFO_TEXTUREMANAGER;
|
||||||
|
|
||||||
|
typedef struct _D3DDEVINFO_TEXTURING {
|
||||||
|
DWORD dwNumLoads; /* counts Load() API calls */
|
||||||
|
DWORD dwApproxBytesLoaded; /* Approximate number bytes loaded via Load() */
|
||||||
|
DWORD dwNumPreLoads; /* counts PreLoad() API calls */
|
||||||
|
DWORD dwNumSet; /* counts SetTexture() API calls */
|
||||||
|
DWORD dwNumCreates; /* counts texture creates */
|
||||||
|
DWORD dwNumDestroys; /* counts texture destroys */
|
||||||
|
DWORD dwNumSetPriorities; /* counts SetPriority() API calls */
|
||||||
|
DWORD dwNumSetLODs; /* counts SetLOD() API calls */
|
||||||
|
DWORD dwNumLocks; /* counts number of texture locks */
|
||||||
|
DWORD dwNumGetDCs; /* counts number of GetDCs to textures */
|
||||||
|
} D3DDEVINFO_TEXTURING, *LPD3DDEVINFO_TEXTURING;
|
||||||
|
#endif /* DIRECT3D_VERSION >= 0x0700 */
|
||||||
|
|
||||||
|
#endif //(DIRECT3D_VERSION < 0x0800)
|
||||||
|
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _D3DCAPS_H_ */
|
||||||
|
|
||||||
342
third_party/dx9_sdk/include/d3drm.h
vendored
Normal file
342
third_party/dx9_sdk/include/d3drm.h
vendored
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* File: d3drm.h
|
||||||
|
* Content: Direct3DRM include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __D3DRM_H__
|
||||||
|
#define __D3DRM_H__
|
||||||
|
|
||||||
|
#include "ddraw.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
struct IDirect3DRM;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct IDirect3DRM *LPDIRECT3DRM;
|
||||||
|
|
||||||
|
#include "d3drmobj.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
DEFINE_GUID(IID_IDirect3DRM, 0x2bc49361, 0x8327, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
|
||||||
|
DEFINE_GUID(IID_IDirect3DRM2, 0x4516ecc8, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
|
||||||
|
DEFINE_GUID(IID_IDirect3DRM3, 0x4516ec83, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
|
||||||
|
WIN_TYPES(IDirect3DRM, DIRECT3DRM);
|
||||||
|
WIN_TYPES(IDirect3DRM2, DIRECT3DRM2);
|
||||||
|
WIN_TYPES(IDirect3DRM3, DIRECT3DRM3);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Direct3DRM Object Class (for CoCreateInstance())
|
||||||
|
*/
|
||||||
|
DEFINE_GUID(CLSID_CDirect3DRM, 0x4516ec41, 0x8f20, 0x11d0, 0x9b, 0x6d, 0x00, 0x00, 0xc0, 0x78, 0x1b, 0xc3);
|
||||||
|
|
||||||
|
|
||||||
|
/* Create a Direct3DRM API */
|
||||||
|
STDAPI Direct3DRMCreate(LPDIRECT3DRM FAR *lplpDirect3DRM);
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IDirect3DRM
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IDirect3DRM, IUnknown)
|
||||||
|
{
|
||||||
|
IUNKNOWN_METHODS(PURE);
|
||||||
|
|
||||||
|
STDMETHOD(CreateObject)
|
||||||
|
(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
|
||||||
|
STDMETHOD(CreateFrame) (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME *) PURE;
|
||||||
|
STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *) PURE;
|
||||||
|
STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER *) PURE;
|
||||||
|
STDMETHOD(CreateFace) (THIS_ LPDIRECT3DRMFACE *) PURE;
|
||||||
|
STDMETHOD(CreateAnimation) (THIS_ LPDIRECT3DRMANIMATION *) PURE;
|
||||||
|
STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
|
||||||
|
STDMETHOD(CreateTexture) (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE *) PURE;
|
||||||
|
STDMETHOD(CreateLight) (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateLightRGB)
|
||||||
|
(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateMaterial) (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
|
||||||
|
STDMETHOD(CreateDevice) (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE *) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using DirectDraw surfaces */
|
||||||
|
STDMETHOD(CreateDeviceFromSurface)
|
||||||
|
( THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
|
||||||
|
LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using D3D objects */
|
||||||
|
STDMETHOD(CreateDeviceFromD3D)
|
||||||
|
( THIS_ LPDIRECT3D lpD3D, LPDIRECT3DDEVICE lpD3DDev,
|
||||||
|
LPDIRECT3DRMDEVICE *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateDeviceFromClipper)
|
||||||
|
( THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
|
||||||
|
int width, int height, LPDIRECT3DRMDEVICE *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateShadow)
|
||||||
|
( THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
|
||||||
|
D3DVALUE px, D3DVALUE py, D3DVALUE pz,
|
||||||
|
D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
|
||||||
|
LPDIRECT3DRMVISUAL *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateViewport)
|
||||||
|
( THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
|
||||||
|
DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateWrap)
|
||||||
|
( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
|
||||||
|
D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
|
||||||
|
D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
|
||||||
|
D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
|
||||||
|
D3DVALUE ou, D3DVALUE ov,
|
||||||
|
D3DVALUE su, D3DVALUE sv,
|
||||||
|
LPDIRECT3DRMWRAP *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
|
||||||
|
STDMETHOD(LoadTexture) (THIS_ const char *, LPDIRECT3DRMTEXTURE *) PURE;
|
||||||
|
STDMETHOD(LoadTextureFromResource) (THIS_ HRSRC rs, LPDIRECT3DRMTEXTURE *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(AddSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(GetSearchPath) (THIS_ DWORD *size_return, LPSTR path_return) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetDevices) (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
|
||||||
|
STDMETHOD(GetNamedObject) (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Load)
|
||||||
|
( THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
|
||||||
|
D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
|
||||||
|
LPDIRECT3DRMFRAME
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(Tick) (THIS_ D3DVALUE) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IDirect3DRM2
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IDirect3DRM2, IUnknown)
|
||||||
|
{
|
||||||
|
IUNKNOWN_METHODS(PURE);
|
||||||
|
|
||||||
|
STDMETHOD(CreateObject)
|
||||||
|
(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
|
||||||
|
STDMETHOD(CreateFrame) (THIS_ LPDIRECT3DRMFRAME, LPDIRECT3DRMFRAME2 *) PURE;
|
||||||
|
STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *) PURE;
|
||||||
|
STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER2 *) PURE;
|
||||||
|
STDMETHOD(CreateFace) (THIS_ LPDIRECT3DRMFACE *) PURE;
|
||||||
|
STDMETHOD(CreateAnimation) (THIS_ LPDIRECT3DRMANIMATION *) PURE;
|
||||||
|
STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET *) PURE;
|
||||||
|
STDMETHOD(CreateTexture) (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE2 *) PURE;
|
||||||
|
STDMETHOD(CreateLight) (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateLightRGB)
|
||||||
|
(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateMaterial) (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL *) PURE;
|
||||||
|
STDMETHOD(CreateDevice) (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE2 *) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using DirectDraw surfaces */
|
||||||
|
STDMETHOD(CreateDeviceFromSurface)
|
||||||
|
( THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
|
||||||
|
LPDIRECTDRAWSURFACE lpDDSBack, LPDIRECT3DRMDEVICE2 *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using D3D objects */
|
||||||
|
STDMETHOD(CreateDeviceFromD3D)
|
||||||
|
( THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev,
|
||||||
|
LPDIRECT3DRMDEVICE2 *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateDeviceFromClipper)
|
||||||
|
( THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
|
||||||
|
int width, int height, LPDIRECT3DRMDEVICE2 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE2 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateShadow)
|
||||||
|
( THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMLIGHT,
|
||||||
|
D3DVALUE px, D3DVALUE py, D3DVALUE pz,
|
||||||
|
D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
|
||||||
|
LPDIRECT3DRMVISUAL *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateViewport)
|
||||||
|
( THIS_ LPDIRECT3DRMDEVICE, LPDIRECT3DRMFRAME, DWORD, DWORD,
|
||||||
|
DWORD, DWORD, LPDIRECT3DRMVIEWPORT *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateWrap)
|
||||||
|
( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME,
|
||||||
|
D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
|
||||||
|
D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
|
||||||
|
D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
|
||||||
|
D3DVALUE ou, D3DVALUE ov,
|
||||||
|
D3DVALUE su, D3DVALUE sv,
|
||||||
|
LPDIRECT3DRMWRAP *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
|
||||||
|
STDMETHOD(LoadTexture) (THIS_ const char *, LPDIRECT3DRMTEXTURE2 *) PURE;
|
||||||
|
STDMETHOD(LoadTextureFromResource) (THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType, LPDIRECT3DRMTEXTURE2 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(AddSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(GetSearchPath) (THIS_ DWORD *size_return, LPSTR path_return) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetDevices) (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
|
||||||
|
STDMETHOD(GetNamedObject) (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Load)
|
||||||
|
( THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
|
||||||
|
D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURECALLBACK, LPVOID,
|
||||||
|
LPDIRECT3DRMFRAME
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(Tick) (THIS_ D3DVALUE) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH *) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IDirect3DRM3
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IDirect3DRM3, IUnknown)
|
||||||
|
{
|
||||||
|
IUNKNOWN_METHODS(PURE);
|
||||||
|
|
||||||
|
STDMETHOD(CreateObject)
|
||||||
|
(THIS_ REFCLSID rclsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppv) PURE;
|
||||||
|
STDMETHOD(CreateFrame) (THIS_ LPDIRECT3DRMFRAME3, LPDIRECT3DRMFRAME3 *) PURE;
|
||||||
|
STDMETHOD(CreateMesh) (THIS_ LPDIRECT3DRMMESH *) PURE;
|
||||||
|
STDMETHOD(CreateMeshBuilder)(THIS_ LPDIRECT3DRMMESHBUILDER3 *) PURE;
|
||||||
|
STDMETHOD(CreateFace) (THIS_ LPDIRECT3DRMFACE2 *) PURE;
|
||||||
|
STDMETHOD(CreateAnimation) (THIS_ LPDIRECT3DRMANIMATION2 *) PURE;
|
||||||
|
STDMETHOD(CreateAnimationSet)(THIS_ LPDIRECT3DRMANIMATIONSET2 *) PURE;
|
||||||
|
STDMETHOD(CreateTexture) (THIS_ LPD3DRMIMAGE, LPDIRECT3DRMTEXTURE3 *) PURE;
|
||||||
|
STDMETHOD(CreateLight) (THIS_ D3DRMLIGHTTYPE, D3DCOLOR, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateLightRGB)
|
||||||
|
(THIS_ D3DRMLIGHTTYPE, D3DVALUE, D3DVALUE, D3DVALUE, LPDIRECT3DRMLIGHT *) PURE;
|
||||||
|
STDMETHOD(CreateMaterial) (THIS_ D3DVALUE, LPDIRECT3DRMMATERIAL2 *) PURE;
|
||||||
|
STDMETHOD(CreateDevice) (THIS_ DWORD, DWORD, LPDIRECT3DRMDEVICE3 *) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using DirectDraw surfaces */
|
||||||
|
STDMETHOD(CreateDeviceFromSurface)
|
||||||
|
( THIS_ LPGUID lpGUID, LPDIRECTDRAW lpDD,
|
||||||
|
LPDIRECTDRAWSURFACE lpDDSBack, DWORD dwFlags, LPDIRECT3DRMDEVICE3 *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
/* Create a Windows Device using D3D objects */
|
||||||
|
STDMETHOD(CreateDeviceFromD3D)
|
||||||
|
( THIS_ LPDIRECT3D2 lpD3D, LPDIRECT3DDEVICE2 lpD3DDev,
|
||||||
|
LPDIRECT3DRMDEVICE3 *
|
||||||
|
) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateDeviceFromClipper)
|
||||||
|
( THIS_ LPDIRECTDRAWCLIPPER lpDDClipper, LPGUID lpGUID,
|
||||||
|
int width, int height, LPDIRECT3DRMDEVICE3 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateTextureFromSurface)(THIS_ LPDIRECTDRAWSURFACE lpDDS, LPDIRECT3DRMTEXTURE3 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateShadow)
|
||||||
|
( THIS_ LPUNKNOWN, LPDIRECT3DRMLIGHT,
|
||||||
|
D3DVALUE px, D3DVALUE py, D3DVALUE pz,
|
||||||
|
D3DVALUE nx, D3DVALUE ny, D3DVALUE nz,
|
||||||
|
LPDIRECT3DRMSHADOW2 *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateViewport)
|
||||||
|
( THIS_ LPDIRECT3DRMDEVICE3, LPDIRECT3DRMFRAME3, DWORD, DWORD,
|
||||||
|
DWORD, DWORD, LPDIRECT3DRMVIEWPORT2 *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateWrap)
|
||||||
|
( THIS_ D3DRMWRAPTYPE, LPDIRECT3DRMFRAME3,
|
||||||
|
D3DVALUE ox, D3DVALUE oy, D3DVALUE oz,
|
||||||
|
D3DVALUE dx, D3DVALUE dy, D3DVALUE dz,
|
||||||
|
D3DVALUE ux, D3DVALUE uy, D3DVALUE uz,
|
||||||
|
D3DVALUE ou, D3DVALUE ov,
|
||||||
|
D3DVALUE su, D3DVALUE sv,
|
||||||
|
LPDIRECT3DRMWRAP *
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(CreateUserVisual) (THIS_ D3DRMUSERVISUALCALLBACK, LPVOID lPArg, LPDIRECT3DRMUSERVISUAL *) PURE;
|
||||||
|
STDMETHOD(LoadTexture) (THIS_ const char *, LPDIRECT3DRMTEXTURE3 *) PURE;
|
||||||
|
STDMETHOD(LoadTextureFromResource) (THIS_ HMODULE hModule, LPCTSTR strName, LPCTSTR strType, LPDIRECT3DRMTEXTURE3 *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(AddSearchPath) (THIS_ LPCSTR) PURE;
|
||||||
|
STDMETHOD(GetSearchPath) (THIS_ DWORD *size_return, LPSTR path_return) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureColors)(THIS_ DWORD) PURE;
|
||||||
|
STDMETHOD(SetDefaultTextureShades)(THIS_ DWORD) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetDevices) (THIS_ LPDIRECT3DRMDEVICEARRAY *) PURE;
|
||||||
|
STDMETHOD(GetNamedObject) (THIS_ const char *, LPDIRECT3DRMOBJECT *) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(EnumerateObjects) (THIS_ D3DRMOBJECTCALLBACK, LPVOID) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Load)
|
||||||
|
( THIS_ LPVOID, LPVOID, LPIID *, DWORD, D3DRMLOADOPTIONS,
|
||||||
|
D3DRMLOADCALLBACK, LPVOID, D3DRMLOADTEXTURE3CALLBACK, LPVOID,
|
||||||
|
LPDIRECT3DRMFRAME3
|
||||||
|
) PURE;
|
||||||
|
STDMETHOD(Tick) (THIS_ D3DVALUE) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateProgressiveMesh)(THIS_ LPDIRECT3DRMPROGRESSIVEMESH *) PURE;
|
||||||
|
|
||||||
|
/* Used with IDirect3DRMObject2 */
|
||||||
|
STDMETHOD(RegisterClient) (THIS_ REFGUID rguid, LPDWORD lpdwID) PURE;
|
||||||
|
STDMETHOD(UnregisterClient) (THIS_ REFGUID rguid) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CreateClippedVisual) (THIS_ LPDIRECT3DRMVISUAL, LPDIRECT3DRMCLIPPEDVISUAL *) PURE;
|
||||||
|
STDMETHOD(SetOptions) (THIS_ DWORD);
|
||||||
|
STDMETHOD(GetOptions) (THIS_ LPDWORD);
|
||||||
|
};
|
||||||
|
|
||||||
|
#define D3DRM_OK DD_OK
|
||||||
|
#define D3DRMERR_BADOBJECT MAKE_DDHRESULT(781)
|
||||||
|
#define D3DRMERR_BADTYPE MAKE_DDHRESULT(782)
|
||||||
|
#define D3DRMERR_BADALLOC MAKE_DDHRESULT(783)
|
||||||
|
#define D3DRMERR_FACEUSED MAKE_DDHRESULT(784)
|
||||||
|
#define D3DRMERR_NOTFOUND MAKE_DDHRESULT(785)
|
||||||
|
#define D3DRMERR_NOTDONEYET MAKE_DDHRESULT(786)
|
||||||
|
#define D3DRMERR_FILENOTFOUND MAKE_DDHRESULT(787)
|
||||||
|
#define D3DRMERR_BADFILE MAKE_DDHRESULT(788)
|
||||||
|
#define D3DRMERR_BADDEVICE MAKE_DDHRESULT(789)
|
||||||
|
#define D3DRMERR_BADVALUE MAKE_DDHRESULT(790)
|
||||||
|
#define D3DRMERR_BADMAJORVERSION MAKE_DDHRESULT(791)
|
||||||
|
#define D3DRMERR_BADMINORVERSION MAKE_DDHRESULT(792)
|
||||||
|
#define D3DRMERR_UNABLETOEXECUTE MAKE_DDHRESULT(793)
|
||||||
|
#define D3DRMERR_LIBRARYNOTFOUND MAKE_DDHRESULT(794)
|
||||||
|
#define D3DRMERR_INVALIDLIBRARY MAKE_DDHRESULT(795)
|
||||||
|
#define D3DRMERR_PENDING MAKE_DDHRESULT(796)
|
||||||
|
#define D3DRMERR_NOTENOUGHDATA MAKE_DDHRESULT(797)
|
||||||
|
#define D3DRMERR_REQUESTTOOLARGE MAKE_DDHRESULT(798)
|
||||||
|
#define D3DRMERR_REQUESTTOOSMALL MAKE_DDHRESULT(799)
|
||||||
|
#define D3DRMERR_CONNECTIONLOST MAKE_DDHRESULT(800)
|
||||||
|
#define D3DRMERR_LOADABORTED MAKE_DDHRESULT(801)
|
||||||
|
#define D3DRMERR_NOINTERNET MAKE_DDHRESULT(802)
|
||||||
|
#define D3DRMERR_BADCACHEFILE MAKE_DDHRESULT(803)
|
||||||
|
#define D3DRMERR_BOXNOTSET MAKE_DDHRESULT(804)
|
||||||
|
#define D3DRMERR_BADPMDATA MAKE_DDHRESULT(805)
|
||||||
|
#define D3DRMERR_CLIENTNOTREGISTERED MAKE_DDHRESULT(806)
|
||||||
|
#define D3DRMERR_NOTCREATEDFROMDDS MAKE_DDHRESULT(807)
|
||||||
|
#define D3DRMERR_NOSUCHKEY MAKE_DDHRESULT(808)
|
||||||
|
#define D3DRMERR_INCOMPATABLEKEY MAKE_DDHRESULT(809)
|
||||||
|
#define D3DRMERR_ELEMENTINUSE MAKE_DDHRESULT(810)
|
||||||
|
#define D3DRMERR_TEXTUREFORMATNOTFOUND MAKE_DDHRESULT(811)
|
||||||
|
#define D3DRMERR_NOTAGGREGATED MAKE_DDHRESULT(812)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _D3DRMAPI_H_ */
|
||||||
|
|
||||||
|
|
||||||
695
third_party/dx9_sdk/include/d3drmdef.h
vendored
Normal file
695
third_party/dx9_sdk/include/d3drmdef.h
vendored
Normal file
@ -0,0 +1,695 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* File: d3drm.h
|
||||||
|
* Content: Direct3DRM include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __D3DRMDEFS_H__
|
||||||
|
#define __D3DRMDEFS_H__
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "d3dtypes.h"
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#define D3DRMAPI __stdcall
|
||||||
|
#else
|
||||||
|
#define D3DRMAPI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define FALSE 0
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct _D3DRMVECTOR4D
|
||||||
|
{ D3DVALUE x, y, z, w;
|
||||||
|
} D3DRMVECTOR4D, *LPD3DRMVECTOR4D;
|
||||||
|
|
||||||
|
typedef D3DVALUE D3DRMMATRIX4D[4][4];
|
||||||
|
|
||||||
|
typedef struct _D3DRMQUATERNION
|
||||||
|
{ D3DVALUE s;
|
||||||
|
D3DVECTOR v;
|
||||||
|
} D3DRMQUATERNION, *LPD3DRMQUATERNION;
|
||||||
|
|
||||||
|
typedef struct _D3DRMRAY
|
||||||
|
{ D3DVECTOR dvDir;
|
||||||
|
D3DVECTOR dvPos;
|
||||||
|
} D3DRMRAY, *LPD3DRMRAY;
|
||||||
|
|
||||||
|
typedef struct _D3DRMBOX
|
||||||
|
{ D3DVECTOR min, max;
|
||||||
|
} D3DRMBOX, *LPD3DRMBOX;
|
||||||
|
|
||||||
|
typedef void (*D3DRMWRAPCALLBACK)
|
||||||
|
(LPD3DVECTOR, int* u, int* v, LPD3DVECTOR a, LPD3DVECTOR b, LPVOID);
|
||||||
|
|
||||||
|
typedef enum _D3DRMLIGHTTYPE
|
||||||
|
{ D3DRMLIGHT_AMBIENT,
|
||||||
|
D3DRMLIGHT_POINT,
|
||||||
|
D3DRMLIGHT_SPOT,
|
||||||
|
D3DRMLIGHT_DIRECTIONAL,
|
||||||
|
D3DRMLIGHT_PARALLELPOINT
|
||||||
|
} D3DRMLIGHTTYPE, *LPD3DRMLIGHTTYPE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMSHADEMODE {
|
||||||
|
D3DRMSHADE_FLAT = 0,
|
||||||
|
D3DRMSHADE_GOURAUD = 1,
|
||||||
|
D3DRMSHADE_PHONG = 2,
|
||||||
|
|
||||||
|
D3DRMSHADE_MASK = 7,
|
||||||
|
D3DRMSHADE_MAX = 8
|
||||||
|
} D3DRMSHADEMODE, *LPD3DRMSHADEMODE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMLIGHTMODE {
|
||||||
|
D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX,
|
||||||
|
D3DRMLIGHT_ON = 1 * D3DRMSHADE_MAX,
|
||||||
|
|
||||||
|
D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX,
|
||||||
|
D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX
|
||||||
|
} D3DRMLIGHTMODE, *LPD3DRMLIGHTMODE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMFILLMODE {
|
||||||
|
D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX,
|
||||||
|
D3DRMFILL_WIREFRAME = 1 * D3DRMLIGHT_MAX,
|
||||||
|
D3DRMFILL_SOLID = 2 * D3DRMLIGHT_MAX,
|
||||||
|
|
||||||
|
D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX,
|
||||||
|
D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX
|
||||||
|
} D3DRMFILLMODE, *LPD3DRMFILLMODE;
|
||||||
|
|
||||||
|
typedef DWORD D3DRMRENDERQUALITY, *LPD3DRMRENDERQUALITY;
|
||||||
|
|
||||||
|
#define D3DRMRENDER_WIREFRAME (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_WIREFRAME)
|
||||||
|
#define D3DRMRENDER_UNLITFLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_OFF+D3DRMFILL_SOLID)
|
||||||
|
#define D3DRMRENDER_FLAT (D3DRMSHADE_FLAT+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
|
||||||
|
#define D3DRMRENDER_GOURAUD (D3DRMSHADE_GOURAUD+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
|
||||||
|
#define D3DRMRENDER_PHONG (D3DRMSHADE_PHONG+D3DRMLIGHT_ON+D3DRMFILL_SOLID)
|
||||||
|
|
||||||
|
#define D3DRMRENDERMODE_BLENDEDTRANSPARENCY 1
|
||||||
|
#define D3DRMRENDERMODE_SORTEDTRANSPARENCY 2
|
||||||
|
#define D3DRMRENDERMODE_LIGHTINMODELSPACE 8
|
||||||
|
#define D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR 16
|
||||||
|
#define D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE 32
|
||||||
|
|
||||||
|
typedef enum _D3DRMTEXTUREQUALITY
|
||||||
|
{ D3DRMTEXTURE_NEAREST, /* choose nearest texel */
|
||||||
|
D3DRMTEXTURE_LINEAR, /* interpolate 4 texels */
|
||||||
|
D3DRMTEXTURE_MIPNEAREST, /* nearest texel in nearest mipmap */
|
||||||
|
D3DRMTEXTURE_MIPLINEAR, /* interpolate 2 texels from 2 mipmaps */
|
||||||
|
D3DRMTEXTURE_LINEARMIPNEAREST, /* interpolate 4 texels in nearest mipmap */
|
||||||
|
D3DRMTEXTURE_LINEARMIPLINEAR /* interpolate 8 texels from 2 mipmaps */
|
||||||
|
} D3DRMTEXTUREQUALITY, *LPD3DRMTEXTUREQUALITY;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Texture flags
|
||||||
|
*/
|
||||||
|
#define D3DRMTEXTURE_FORCERESIDENT 0x00000001 /* texture should be kept in video memory */
|
||||||
|
#define D3DRMTEXTURE_STATIC 0x00000002 /* texture will not change */
|
||||||
|
#define D3DRMTEXTURE_DOWNSAMPLEPOINT 0x00000004 /* point filtering should be used when downsampling */
|
||||||
|
#define D3DRMTEXTURE_DOWNSAMPLEBILINEAR 0x00000008 /* bilinear filtering should be used when downsampling */
|
||||||
|
#define D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH 0x00000010 /* reduce bit depth when downsampling */
|
||||||
|
#define D3DRMTEXTURE_DOWNSAMPLENONE 0x00000020 /* texture should never be downsampled */
|
||||||
|
#define D3DRMTEXTURE_CHANGEDPIXELS 0x00000040 /* pixels have changed */
|
||||||
|
#define D3DRMTEXTURE_CHANGEDPALETTE 0x00000080 /* palette has changed */
|
||||||
|
#define D3DRMTEXTURE_INVALIDATEONLY 0x00000100 /* dirty regions are invalid */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Shadow flags
|
||||||
|
*/
|
||||||
|
#define D3DRMSHADOW_TRUEALPHA 0x00000001 /* shadow should render without artifacts when true alpha is on */
|
||||||
|
|
||||||
|
typedef enum _D3DRMCOMBINETYPE
|
||||||
|
{ D3DRMCOMBINE_REPLACE,
|
||||||
|
D3DRMCOMBINE_BEFORE,
|
||||||
|
D3DRMCOMBINE_AFTER
|
||||||
|
} D3DRMCOMBINETYPE, *LPD3DRMCOMBINETYPE;
|
||||||
|
|
||||||
|
typedef D3DCOLORMODEL D3DRMCOLORMODEL, *LPD3DRMCOLORMODEL;
|
||||||
|
|
||||||
|
typedef enum _D3DRMPALETTEFLAGS
|
||||||
|
{ D3DRMPALETTE_FREE, /* renderer may use this entry freely */
|
||||||
|
D3DRMPALETTE_READONLY, /* fixed but may be used by renderer */
|
||||||
|
D3DRMPALETTE_RESERVED /* may not be used by renderer */
|
||||||
|
} D3DRMPALETTEFLAGS, *LPD3DRMPALETTEFLAGS;
|
||||||
|
|
||||||
|
typedef struct _D3DRMPALETTEENTRY
|
||||||
|
{ unsigned char red; /* 0 .. 255 */
|
||||||
|
unsigned char green; /* 0 .. 255 */
|
||||||
|
unsigned char blue; /* 0 .. 255 */
|
||||||
|
unsigned char flags; /* one of D3DRMPALETTEFLAGS */
|
||||||
|
} D3DRMPALETTEENTRY, *LPD3DRMPALETTEENTRY;
|
||||||
|
|
||||||
|
typedef struct _D3DRMIMAGE
|
||||||
|
{ int width, height; /* width and height in pixels */
|
||||||
|
int aspectx, aspecty; /* aspect ratio for non-square pixels */
|
||||||
|
int depth; /* bits per pixel */
|
||||||
|
int rgb; /* if false, pixels are indices into a
|
||||||
|
palette otherwise, pixels encode
|
||||||
|
RGB values. */
|
||||||
|
int bytes_per_line; /* number of bytes of memory for a
|
||||||
|
scanline. This must be a multiple
|
||||||
|
of 4. */
|
||||||
|
void* buffer1; /* memory to render into (first buffer). */
|
||||||
|
void* buffer2; /* second rendering buffer for double
|
||||||
|
buffering, set to NULL for single
|
||||||
|
buffering. */
|
||||||
|
unsigned long red_mask;
|
||||||
|
unsigned long green_mask;
|
||||||
|
unsigned long blue_mask;
|
||||||
|
unsigned long alpha_mask; /* if rgb is true, these are masks for
|
||||||
|
the red, green and blue parts of a
|
||||||
|
pixel. Otherwise, these are masks
|
||||||
|
for the significant bits of the
|
||||||
|
red, green and blue elements in the
|
||||||
|
palette. For instance, most SVGA
|
||||||
|
displays use 64 intensities of red,
|
||||||
|
green and blue, so the masks should
|
||||||
|
all be set to 0xfc. */
|
||||||
|
int palette_size; /* number of entries in palette */
|
||||||
|
D3DRMPALETTEENTRY* palette; /* description of the palette (only if
|
||||||
|
rgb is false). Must be (1<<depth)
|
||||||
|
elements. */
|
||||||
|
} D3DRMIMAGE, *LPD3DRMIMAGE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMWRAPTYPE
|
||||||
|
{ D3DRMWRAP_FLAT,
|
||||||
|
D3DRMWRAP_CYLINDER,
|
||||||
|
D3DRMWRAP_SPHERE,
|
||||||
|
D3DRMWRAP_CHROME,
|
||||||
|
D3DRMWRAP_SHEET,
|
||||||
|
D3DRMWRAP_BOX
|
||||||
|
} D3DRMWRAPTYPE, *LPD3DRMWRAPTYPE;
|
||||||
|
|
||||||
|
#define D3DRMWIREFRAME_CULL 1 /* cull backfaces */
|
||||||
|
#define D3DRMWIREFRAME_HIDDENLINE 2 /* lines are obscured by closer objects */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do not use righthanded perspective in Viewport2::SetProjection().
|
||||||
|
* Set up righthanded mode by using IDirect3DRM3::SetOptions().
|
||||||
|
*/
|
||||||
|
typedef enum _D3DRMPROJECTIONTYPE
|
||||||
|
{ D3DRMPROJECT_PERSPECTIVE,
|
||||||
|
D3DRMPROJECT_ORTHOGRAPHIC,
|
||||||
|
D3DRMPROJECT_RIGHTHANDPERSPECTIVE, /* Only valid pre-DX6 */
|
||||||
|
D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC /* Only valid pre-DX6 */
|
||||||
|
} D3DRMPROJECTIONTYPE, *LPD3DRMPROJECTIONTYPE;
|
||||||
|
|
||||||
|
#define D3DRMOPTIONS_LEFTHANDED 0x00000001L /* Default */
|
||||||
|
#define D3DRMOPTIONS_RIGHTHANDED 0x00000002L
|
||||||
|
|
||||||
|
typedef enum _D3DRMXOFFORMAT
|
||||||
|
{ D3DRMXOF_BINARY,
|
||||||
|
D3DRMXOF_COMPRESSED,
|
||||||
|
D3DRMXOF_TEXT
|
||||||
|
} D3DRMXOFFORMAT, *LPD3DRMXOFFORMAT;
|
||||||
|
|
||||||
|
typedef DWORD D3DRMSAVEOPTIONS;
|
||||||
|
#define D3DRMXOFSAVE_NORMALS 1
|
||||||
|
#define D3DRMXOFSAVE_TEXTURECOORDINATES 2
|
||||||
|
#define D3DRMXOFSAVE_MATERIALS 4
|
||||||
|
#define D3DRMXOFSAVE_TEXTURENAMES 8
|
||||||
|
#define D3DRMXOFSAVE_ALL 15
|
||||||
|
#define D3DRMXOFSAVE_TEMPLATES 16
|
||||||
|
#define D3DRMXOFSAVE_TEXTURETOPOLOGY 32
|
||||||
|
|
||||||
|
typedef enum _D3DRMCOLORSOURCE
|
||||||
|
{ D3DRMCOLOR_FROMFACE,
|
||||||
|
D3DRMCOLOR_FROMVERTEX
|
||||||
|
} D3DRMCOLORSOURCE, *LPD3DRMCOLORSOURCE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMFRAMECONSTRAINT
|
||||||
|
{ D3DRMCONSTRAIN_Z, /* use only X and Y rotations */
|
||||||
|
D3DRMCONSTRAIN_Y, /* use only X and Z rotations */
|
||||||
|
D3DRMCONSTRAIN_X /* use only Y and Z rotations */
|
||||||
|
} D3DRMFRAMECONSTRAINT, *LPD3DRMFRAMECONSTRAINT;
|
||||||
|
|
||||||
|
typedef enum _D3DRMMATERIALMODE
|
||||||
|
{ D3DRMMATERIAL_FROMMESH,
|
||||||
|
D3DRMMATERIAL_FROMPARENT,
|
||||||
|
D3DRMMATERIAL_FROMFRAME
|
||||||
|
} D3DRMMATERIALMODE, *LPD3DRMMATERIALMODE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMFOGMODE
|
||||||
|
{ D3DRMFOG_LINEAR, /* linear between start and end */
|
||||||
|
D3DRMFOG_EXPONENTIAL, /* density * exp(-distance) */
|
||||||
|
D3DRMFOG_EXPONENTIALSQUARED /* density * exp(-distance*distance) */
|
||||||
|
} D3DRMFOGMODE, *LPD3DRMFOGMODE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMZBUFFERMODE {
|
||||||
|
D3DRMZBUFFER_FROMPARENT, /* default */
|
||||||
|
D3DRMZBUFFER_ENABLE, /* enable zbuffering */
|
||||||
|
D3DRMZBUFFER_DISABLE /* disable zbuffering */
|
||||||
|
} D3DRMZBUFFERMODE, *LPD3DRMZBUFFERMODE;
|
||||||
|
|
||||||
|
typedef enum _D3DRMSORTMODE {
|
||||||
|
D3DRMSORT_FROMPARENT, /* default */
|
||||||
|
D3DRMSORT_NONE, /* don't sort child frames */
|
||||||
|
D3DRMSORT_FRONTTOBACK, /* sort child frames front-to-back */
|
||||||
|
D3DRMSORT_BACKTOFRONT /* sort child frames back-to-front */
|
||||||
|
} D3DRMSORTMODE, *LPD3DRMSORTMODE;
|
||||||
|
|
||||||
|
typedef struct _D3DRMMATERIALOVERRIDE
|
||||||
|
{
|
||||||
|
DWORD dwSize; /* Size of this structure */
|
||||||
|
DWORD dwFlags; /* Indicate which fields are valid */
|
||||||
|
D3DCOLORVALUE dcDiffuse; /* RGBA */
|
||||||
|
D3DCOLORVALUE dcAmbient; /* RGB */
|
||||||
|
D3DCOLORVALUE dcEmissive; /* RGB */
|
||||||
|
D3DCOLORVALUE dcSpecular; /* RGB */
|
||||||
|
D3DVALUE dvPower;
|
||||||
|
LPUNKNOWN lpD3DRMTex;
|
||||||
|
} D3DRMMATERIALOVERRIDE, *LPD3DRMMATERIALOVERRIDE;
|
||||||
|
|
||||||
|
#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY 0x00000001L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY 0x00000002L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_DIFFUSE 0x00000003L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_AMBIENT 0x00000004L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_EMISSIVE 0x00000008L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_SPECULAR 0x00000010L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_POWER 0x00000020L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_TEXTURE 0x00000040L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAMULTIPLY 0x00000080L
|
||||||
|
#define D3DRMMATERIALOVERRIDE_ALL 0x000000FFL
|
||||||
|
|
||||||
|
#define D3DRMFPTF_ALPHA 0x00000001L
|
||||||
|
#define D3DRMFPTF_NOALPHA 0x00000002L
|
||||||
|
#define D3DRMFPTF_PALETTIZED 0x00000004L
|
||||||
|
#define D3DRMFPTF_NOTPALETTIZED 0x00000008L
|
||||||
|
|
||||||
|
#define D3DRMSTATECHANGE_UPDATEONLY 0x000000001L
|
||||||
|
#define D3DRMSTATECHANGE_VOLATILE 0x000000002L
|
||||||
|
#define D3DRMSTATECHANGE_NONVOLATILE 0x000000004L
|
||||||
|
#define D3DRMSTATECHANGE_RENDER 0x000000020L
|
||||||
|
#define D3DRMSTATECHANGE_LIGHT 0x000000040L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in RM3::CreateDeviceFromSurface
|
||||||
|
*/
|
||||||
|
#define D3DRMDEVICE_NOZBUFFER 0x00000001L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in Object2::SetClientData
|
||||||
|
*/
|
||||||
|
#define D3DRMCLIENTDATA_NONE 0x00000001L
|
||||||
|
#define D3DRMCLIENTDATA_LOCALFREE 0x00000002L
|
||||||
|
#define D3DRMCLIENTDATA_IUNKNOWN 0x00000004L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in Frame2::AddMoveCallback.
|
||||||
|
*/
|
||||||
|
#define D3DRMCALLBACK_PREORDER 0
|
||||||
|
#define D3DRMCALLBACK_POSTORDER 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in MeshBuilder2::RayPick.
|
||||||
|
*/
|
||||||
|
#define D3DRMRAYPICK_ONLYBOUNDINGBOXES 1
|
||||||
|
#define D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES 2
|
||||||
|
#define D3DRMRAYPICK_INTERPOLATEUV 4
|
||||||
|
#define D3DRMRAYPICK_INTERPOLATECOLOR 8
|
||||||
|
#define D3DRMRAYPICK_INTERPOLATENORMAL 0x10
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in MeshBuilder3::AddFacesIndexed.
|
||||||
|
*/
|
||||||
|
#define D3DRMADDFACES_VERTICESONLY 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in MeshBuilder2::GenerateNormals.
|
||||||
|
*/
|
||||||
|
#define D3DRMGENERATENORMALS_PRECOMPACT 1
|
||||||
|
#define D3DRMGENERATENORMALS_USECREASEANGLE 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for MeshBuilder3::GetParentMesh
|
||||||
|
*/
|
||||||
|
#define D3DRMMESHBUILDER_DIRECTPARENT 1
|
||||||
|
#define D3DRMMESHBUILDER_ROOTMESH 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags for MeshBuilder3::Enable
|
||||||
|
*/
|
||||||
|
#define D3DRMMESHBUILDER_RENDERENABLE 0x00000001L
|
||||||
|
#define D3DRMMESHBUILDER_PICKENABLE 0x00000002L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags for MeshBuilder3::AddMeshBuilder
|
||||||
|
*/
|
||||||
|
#define D3DRMADDMESHBUILDER_DONTCOPYAPPDATA 1
|
||||||
|
#define D3DRMADDMESHBUILDER_FLATTENSUBMESHES 2
|
||||||
|
#define D3DRMADDMESHBUILDER_NOSUBMESHES 4
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags for Object2::GetAge when used with MeshBuilders
|
||||||
|
*/
|
||||||
|
#define D3DRMMESHBUILDERAGE_GEOMETRY 0x00000001L
|
||||||
|
#define D3DRMMESHBUILDERAGE_MATERIALS 0x00000002L
|
||||||
|
#define D3DRMMESHBUILDERAGE_TEXTURES 0x00000004L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Format flags for MeshBuilder3::AddTriangles.
|
||||||
|
*/
|
||||||
|
#define D3DRMFVF_TYPE 0x00000001L
|
||||||
|
#define D3DRMFVF_NORMAL 0x00000002L
|
||||||
|
#define D3DRMFVF_COLOR 0x00000004L
|
||||||
|
#define D3DRMFVF_TEXTURECOORDS 0x00000008L
|
||||||
|
|
||||||
|
#define D3DRMVERTEX_STRIP 0x00000001L
|
||||||
|
#define D3DRMVERTEX_FAN 0x00000002L
|
||||||
|
#define D3DRMVERTEX_LIST 0x00000004L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in Viewport2::Clear2
|
||||||
|
*/
|
||||||
|
#define D3DRMCLEAR_TARGET 0x00000001L
|
||||||
|
#define D3DRMCLEAR_ZBUFFER 0x00000002L
|
||||||
|
#define D3DRMCLEAR_DIRTYRECTS 0x00000004L
|
||||||
|
#define D3DRMCLEAR_ALL (D3DRMCLEAR_TARGET | \
|
||||||
|
D3DRMCLEAR_ZBUFFER | \
|
||||||
|
D3DRMCLEAR_DIRTYRECTS)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in Frame3::SetSceneFogMethod
|
||||||
|
*/
|
||||||
|
#define D3DRMFOGMETHOD_VERTEX 0x00000001L
|
||||||
|
#define D3DRMFOGMETHOD_TABLE 0x00000002L
|
||||||
|
#define D3DRMFOGMETHOD_ANY 0x00000004L
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for flags in Frame3::SetTraversalOptions
|
||||||
|
*/
|
||||||
|
#define D3DRMFRAME_RENDERENABLE 0x00000001L
|
||||||
|
#define D3DRMFRAME_PICKENABLE 0x00000002L
|
||||||
|
|
||||||
|
typedef DWORD D3DRMANIMATIONOPTIONS;
|
||||||
|
#define D3DRMANIMATION_OPEN 0x01L
|
||||||
|
#define D3DRMANIMATION_CLOSED 0x02L
|
||||||
|
#define D3DRMANIMATION_LINEARPOSITION 0x04L
|
||||||
|
#define D3DRMANIMATION_SPLINEPOSITION 0x08L
|
||||||
|
#define D3DRMANIMATION_SCALEANDROTATION 0x00000010L
|
||||||
|
#define D3DRMANIMATION_POSITION 0x00000020L
|
||||||
|
|
||||||
|
typedef DWORD D3DRMINTERPOLATIONOPTIONS;
|
||||||
|
#define D3DRMINTERPOLATION_OPEN 0x01L
|
||||||
|
#define D3DRMINTERPOLATION_CLOSED 0x02L
|
||||||
|
#define D3DRMINTERPOLATION_NEAREST 0x0100L
|
||||||
|
#define D3DRMINTERPOLATION_LINEAR 0x04L
|
||||||
|
#define D3DRMINTERPOLATION_SPLINE 0x08L
|
||||||
|
#define D3DRMINTERPOLATION_VERTEXCOLOR 0x40L
|
||||||
|
#define D3DRMINTERPOLATION_SLERPNORMALS 0x80L
|
||||||
|
|
||||||
|
typedef DWORD D3DRMLOADOPTIONS;
|
||||||
|
|
||||||
|
#define D3DRMLOAD_FROMFILE 0x00L
|
||||||
|
#define D3DRMLOAD_FROMRESOURCE 0x01L
|
||||||
|
#define D3DRMLOAD_FROMMEMORY 0x02L
|
||||||
|
#define D3DRMLOAD_FROMSTREAM 0x04L
|
||||||
|
#define D3DRMLOAD_FROMURL 0x08L
|
||||||
|
|
||||||
|
#define D3DRMLOAD_BYNAME 0x10L
|
||||||
|
#define D3DRMLOAD_BYPOSITION 0x20L
|
||||||
|
#define D3DRMLOAD_BYGUID 0x40L
|
||||||
|
#define D3DRMLOAD_FIRST 0x80L
|
||||||
|
|
||||||
|
#define D3DRMLOAD_INSTANCEBYREFERENCE 0x100L
|
||||||
|
#define D3DRMLOAD_INSTANCEBYCOPYING 0x200L
|
||||||
|
|
||||||
|
#define D3DRMLOAD_ASYNCHRONOUS 0x400L
|
||||||
|
|
||||||
|
typedef struct _D3DRMLOADRESOURCE {
|
||||||
|
HMODULE hModule;
|
||||||
|
LPCTSTR lpName;
|
||||||
|
LPCTSTR lpType;
|
||||||
|
} D3DRMLOADRESOURCE, *LPD3DRMLOADRESOURCE;
|
||||||
|
|
||||||
|
typedef struct _D3DRMLOADMEMORY {
|
||||||
|
LPVOID lpMemory;
|
||||||
|
DWORD dSize;
|
||||||
|
} D3DRMLOADMEMORY, *LPD3DRMLOADMEMORY;
|
||||||
|
|
||||||
|
#define D3DRMPMESHSTATUS_VALID 0x01L
|
||||||
|
#define D3DRMPMESHSTATUS_INTERRUPTED 0x02L
|
||||||
|
#define D3DRMPMESHSTATUS_BASEMESHCOMPLETE 0x04L
|
||||||
|
#define D3DRMPMESHSTATUS_COMPLETE 0x08L
|
||||||
|
#define D3DRMPMESHSTATUS_RENDERABLE 0x10L
|
||||||
|
|
||||||
|
#define D3DRMPMESHEVENT_BASEMESH 0x01L
|
||||||
|
#define D3DRMPMESHEVENT_COMPLETE 0x02L
|
||||||
|
|
||||||
|
typedef struct _D3DRMPMESHLOADSTATUS {
|
||||||
|
DWORD dwSize; // Size of this structure
|
||||||
|
DWORD dwPMeshSize; // Total Size (bytes)
|
||||||
|
DWORD dwBaseMeshSize; // Total Size of the Base Mesh
|
||||||
|
DWORD dwBytesLoaded; // Total bytes loaded
|
||||||
|
DWORD dwVerticesLoaded; // Number of vertices loaded
|
||||||
|
DWORD dwFacesLoaded; // Number of faces loaded
|
||||||
|
HRESULT dwLoadResult; // Result of the load operation
|
||||||
|
DWORD dwFlags;
|
||||||
|
} D3DRMPMESHLOADSTATUS, *LPD3DRMPMESHLOADSTATUS;
|
||||||
|
|
||||||
|
typedef enum _D3DRMUSERVISUALREASON {
|
||||||
|
D3DRMUSERVISUAL_CANSEE,
|
||||||
|
D3DRMUSERVISUAL_RENDER
|
||||||
|
} D3DRMUSERVISUALREASON, *LPD3DRMUSERVISUALREASON;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DRMANIMATIONKEY
|
||||||
|
{
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwKeyType;
|
||||||
|
D3DVALUE dvTime;
|
||||||
|
DWORD dwID;
|
||||||
|
#if (!defined __cplusplus) || (!defined D3D_OVERLOADS)
|
||||||
|
union
|
||||||
|
{
|
||||||
|
D3DRMQUATERNION dqRotateKey;
|
||||||
|
D3DVECTOR dvScaleKey;
|
||||||
|
D3DVECTOR dvPositionKey;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
* We do this as D3D_OVERLOADS defines constructors for D3DVECTOR,
|
||||||
|
* this can then not be used in a union. Use the inlines provided
|
||||||
|
* to extract and set the required component.
|
||||||
|
*/
|
||||||
|
D3DVALUE dvK[4];
|
||||||
|
#endif
|
||||||
|
} D3DRMANIMATIONKEY;
|
||||||
|
typedef D3DRMANIMATIONKEY *LPD3DRMANIMATIONKEY;
|
||||||
|
|
||||||
|
#if (defined __cplusplus) && (defined D3D_OVERLOADS)
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationGetRotateKey(const D3DRMANIMATIONKEY& rmKey,
|
||||||
|
D3DRMQUATERNION& rmQuat)
|
||||||
|
{
|
||||||
|
rmQuat.s = rmKey.dvK[0];
|
||||||
|
rmQuat.v = D3DVECTOR(rmKey.dvK[1], rmKey.dvK[2], rmKey.dvK[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationGetScaleKey(const D3DRMANIMATIONKEY& rmKey,
|
||||||
|
D3DVECTOR& dvVec)
|
||||||
|
{
|
||||||
|
dvVec = D3DVECTOR(rmKey.dvK[0], rmKey.dvK[1], rmKey.dvK[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationGetPositionKey(const D3DRMANIMATIONKEY& rmKey,
|
||||||
|
D3DVECTOR& dvVec)
|
||||||
|
{
|
||||||
|
dvVec = D3DVECTOR(rmKey.dvK[0], rmKey.dvK[1], rmKey.dvK[2]);
|
||||||
|
}
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationSetRotateKey(D3DRMANIMATIONKEY& rmKey,
|
||||||
|
const D3DRMQUATERNION& rmQuat)
|
||||||
|
{
|
||||||
|
rmKey.dvK[0] = rmQuat.s;
|
||||||
|
rmKey.dvK[1] = rmQuat.v.x;
|
||||||
|
rmKey.dvK[2] = rmQuat.v.y;
|
||||||
|
rmKey.dvK[3] = rmQuat.v.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationSetScaleKey(D3DRMANIMATIONKEY& rmKey,
|
||||||
|
const D3DVECTOR& dvVec)
|
||||||
|
{
|
||||||
|
rmKey.dvK[0] = dvVec.x;
|
||||||
|
rmKey.dvK[1] = dvVec.y;
|
||||||
|
rmKey.dvK[2] = dvVec.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline VOID
|
||||||
|
D3DRMAnimationSetPositionKey(D3DRMANIMATIONKEY& rmKey,
|
||||||
|
const D3DVECTOR& dvVec)
|
||||||
|
{
|
||||||
|
rmKey.dvK[0] = dvVec.x;
|
||||||
|
rmKey.dvK[1] = dvVec.y;
|
||||||
|
rmKey.dvK[2] = dvVec.z;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define D3DRMANIMATION_ROTATEKEY 0x01
|
||||||
|
#define D3DRMANIMATION_SCALEKEY 0x02
|
||||||
|
#define D3DRMANIMATION_POSITIONKEY 0x03
|
||||||
|
|
||||||
|
|
||||||
|
typedef DWORD D3DRMMAPPING, D3DRMMAPPINGFLAG, *LPD3DRMMAPPING;
|
||||||
|
static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPU = 1;
|
||||||
|
static const D3DRMMAPPINGFLAG D3DRMMAP_WRAPV = 2;
|
||||||
|
static const D3DRMMAPPINGFLAG D3DRMMAP_PERSPCORRECT = 4;
|
||||||
|
|
||||||
|
typedef struct _D3DRMVERTEX
|
||||||
|
{ D3DVECTOR position;
|
||||||
|
D3DVECTOR normal;
|
||||||
|
D3DVALUE tu, tv;
|
||||||
|
D3DCOLOR color;
|
||||||
|
} D3DRMVERTEX, *LPD3DRMVERTEX;
|
||||||
|
|
||||||
|
typedef LONG D3DRMGROUPINDEX; /* group indexes begin a 0 */
|
||||||
|
static const D3DRMGROUPINDEX D3DRMGROUP_ALLGROUPS = -1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a color from three components in the range 0-1 inclusive.
|
||||||
|
*/
|
||||||
|
extern D3DCOLOR D3DRMAPI D3DRMCreateColorRGB(D3DVALUE red,
|
||||||
|
D3DVALUE green,
|
||||||
|
D3DVALUE blue);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a color from four components in the range 0-1 inclusive.
|
||||||
|
*/
|
||||||
|
extern D3DCOLOR D3DRMAPI D3DRMCreateColorRGBA(D3DVALUE red,
|
||||||
|
D3DVALUE green,
|
||||||
|
D3DVALUE blue,
|
||||||
|
D3DVALUE alpha);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the red component of a color.
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMColorGetRed(D3DCOLOR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the green component of a color.
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMColorGetGreen(D3DCOLOR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the blue component of a color.
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMColorGetBlue(D3DCOLOR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the alpha component of a color.
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMColorGetAlpha(D3DCOLOR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add two vectors. Returns its first argument.
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorAdd(LPD3DVECTOR d,
|
||||||
|
LPD3DVECTOR s1,
|
||||||
|
LPD3DVECTOR s2);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Subtract two vectors. Returns its first argument.
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorSubtract(LPD3DVECTOR d,
|
||||||
|
LPD3DVECTOR s1,
|
||||||
|
LPD3DVECTOR s2);
|
||||||
|
/*
|
||||||
|
* Reflect a ray about a given normal. Returns its first argument.
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorReflect(LPD3DVECTOR d,
|
||||||
|
LPD3DVECTOR ray,
|
||||||
|
LPD3DVECTOR norm);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Calculate the vector cross product. Returns its first argument.
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorCrossProduct(LPD3DVECTOR d,
|
||||||
|
LPD3DVECTOR s1,
|
||||||
|
LPD3DVECTOR s2);
|
||||||
|
/*
|
||||||
|
* Return the vector dot product.
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMVectorDotProduct(LPD3DVECTOR s1,
|
||||||
|
LPD3DVECTOR s2);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scale a vector so that its modulus is 1. Returns its argument or
|
||||||
|
* NULL if there was an error (e.g. a zero vector was passed).
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorNormalize(LPD3DVECTOR);
|
||||||
|
#define D3DRMVectorNormalise D3DRMVectorNormalize
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)).
|
||||||
|
*/
|
||||||
|
extern D3DVALUE D3DRMAPI D3DRMVectorModulus(LPD3DVECTOR v);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the rotation part of a matrix to be a rotation of theta radians
|
||||||
|
* around the given axis.
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorRotate(LPD3DVECTOR r, LPD3DVECTOR v, LPD3DVECTOR axis, D3DVALUE theta);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Scale a vector uniformly in all three axes
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorScale(LPD3DVECTOR d, LPD3DVECTOR s, D3DVALUE factor);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return a random unit vector
|
||||||
|
*/
|
||||||
|
extern LPD3DVECTOR D3DRMAPI D3DRMVectorRandom(LPD3DVECTOR d);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns a unit quaternion that represents a rotation of theta radians
|
||||||
|
* around the given axis.
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionFromRotation(LPD3DRMQUATERNION quat,
|
||||||
|
LPD3DVECTOR v,
|
||||||
|
D3DVALUE theta);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Calculate the product of two quaternions
|
||||||
|
*/
|
||||||
|
extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionMultiply(LPD3DRMQUATERNION q,
|
||||||
|
LPD3DRMQUATERNION a,
|
||||||
|
LPD3DRMQUATERNION b);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interpolate between two quaternions
|
||||||
|
*/
|
||||||
|
extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionSlerp(LPD3DRMQUATERNION q,
|
||||||
|
LPD3DRMQUATERNION a,
|
||||||
|
LPD3DRMQUATERNION b,
|
||||||
|
D3DVALUE alpha);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Calculate the matrix for the rotation that a unit quaternion represents
|
||||||
|
*/
|
||||||
|
extern void D3DRMAPI D3DRMMatrixFromQuaternion(D3DRMMATRIX4D dmMat, LPD3DRMQUATERNION lpDqQuat);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Calculate the quaternion that corresponds to a rotation matrix
|
||||||
|
*/
|
||||||
|
extern LPD3DRMQUATERNION D3DRMAPI D3DRMQuaternionFromMatrix(LPD3DRMQUATERNION, D3DRMMATRIX4D);
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
1666
third_party/dx9_sdk/include/d3drmobj.h
vendored
Normal file
1666
third_party/dx9_sdk/include/d3drmobj.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
50
third_party/dx9_sdk/include/d3drmwin.h
vendored
Normal file
50
third_party/dx9_sdk/include/d3drmwin.h
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*==========================================================================;
|
||||||
|
*
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* File: d3drm.h
|
||||||
|
* Content: Direct3DRM include file
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __D3DRMWIN_H__
|
||||||
|
#define __D3DRMWIN_H__
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
#define WIN32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "d3drm.h"
|
||||||
|
|
||||||
|
#include "ddraw.h"
|
||||||
|
#include "d3d.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GUIDS used by Direct3DRM Windows interface
|
||||||
|
*/
|
||||||
|
DEFINE_GUID(IID_IDirect3DRMWinDevice, 0xc5016cc0, 0xd273, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
|
||||||
|
|
||||||
|
WIN_TYPES(IDirect3DRMWinDevice, DIRECT3DRMWINDEVICE);
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE IDirect3DRMWinDevice
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(IDirect3DRMWinDevice, IDirect3DRMObject)
|
||||||
|
{
|
||||||
|
IUNKNOWN_METHODS(PURE);
|
||||||
|
IDIRECT3DRMOBJECT_METHODS(PURE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IDirect3DRMWinDevice methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Repaint the window with the last frame which was rendered. */
|
||||||
|
STDMETHOD(HandlePaint)(THIS_ HDC hdc) PURE;
|
||||||
|
|
||||||
|
/* Respond to a WM_ACTIVATE message. */
|
||||||
|
STDMETHOD(HandleActivate)(THIS_ WORD wparam) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
2119
third_party/dx9_sdk/include/d3dtypes.h
vendored
Normal file
2119
third_party/dx9_sdk/include/d3dtypes.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
255
third_party/dx9_sdk/include/d3dvec.inl
vendored
Normal file
255
third_party/dx9_sdk/include/d3dvec.inl
vendored
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* *
|
||||||
|
* D3DVec.inl *
|
||||||
|
* *
|
||||||
|
* Float-valued 3D vector class for Direct3D. *
|
||||||
|
* *
|
||||||
|
* Copyright (c) Microsoft Corp. All rights reserved. *
|
||||||
|
* *
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
// =====================================
|
||||||
|
// Constructors
|
||||||
|
// =====================================
|
||||||
|
|
||||||
|
inline
|
||||||
|
_D3DVECTOR::_D3DVECTOR(D3DVALUE f)
|
||||||
|
{
|
||||||
|
x = y = z = f;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
_D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
|
||||||
|
{
|
||||||
|
x = _x; y = _y; z = _z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
_D3DVECTOR::_D3DVECTOR(const D3DVALUE f[3])
|
||||||
|
{
|
||||||
|
x = f[0]; y = f[1]; z = f[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
// =====================================
|
||||||
|
// Access grants
|
||||||
|
// =====================================
|
||||||
|
|
||||||
|
inline const D3DVALUE&
|
||||||
|
_D3DVECTOR::operator[](int i) const
|
||||||
|
{
|
||||||
|
return (&x)[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE&
|
||||||
|
_D3DVECTOR::operator[](int i)
|
||||||
|
{
|
||||||
|
return (&x)[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// =====================================
|
||||||
|
// Assignment operators
|
||||||
|
// =====================================
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator += (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
x += v.x; y += v.y; z += v.z;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator -= (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
x -= v.x; y -= v.y; z -= v.z;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator *= (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
x *= v.x; y *= v.y; z *= v.z;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator /= (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
x /= v.x; y /= v.y; z /= v.z;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator *= (D3DVALUE s)
|
||||||
|
{
|
||||||
|
x *= s; y *= s; z *= s;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR&
|
||||||
|
_D3DVECTOR::operator /= (D3DVALUE s)
|
||||||
|
{
|
||||||
|
x /= s; y /= s; z /= s;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator + (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator - (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(-v.x, -v.y, -v.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator * (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator / (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int
|
||||||
|
operator < (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return v1[0] < v2[0] && v1[1] < v2[1] && v1[2] < v2[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int
|
||||||
|
operator <= (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return v1[0] <= v2[0] && v1[1] <= v2[1] && v1[2] <= v2[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator * (const _D3DVECTOR& v, D3DVALUE s)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(s*v.x, s*v.y, s*v.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator * (D3DVALUE s, const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(s*v.x, s*v.y, s*v.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
operator / (const _D3DVECTOR& v, D3DVALUE s)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int
|
||||||
|
operator == (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return v1.x==v2.x && v1.y==v2.y && v1.z == v2.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE
|
||||||
|
Magnitude (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return (D3DVALUE) sqrt(SquareMagnitude(v));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE
|
||||||
|
SquareMagnitude (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return v.x*v.x + v.y*v.y + v.z*v.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
Normalize (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
return v / Magnitude(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE
|
||||||
|
Min (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
D3DVALUE ret = v.x;
|
||||||
|
if (v.y < ret) ret = v.y;
|
||||||
|
if (v.z < ret) ret = v.z;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE
|
||||||
|
Max (const _D3DVECTOR& v)
|
||||||
|
{
|
||||||
|
D3DVALUE ret = v.x;
|
||||||
|
if (ret < v.y) ret = v.y;
|
||||||
|
if (ret < v.z) ret = v.z;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
Minimize (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR( v1[0] < v2[0] ? v1[0] : v2[0],
|
||||||
|
v1[1] < v2[1] ? v1[1] : v2[1],
|
||||||
|
v1[2] < v2[2] ? v1[2] : v2[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
Maximize (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return _D3DVECTOR( v1[0] > v2[0] ? v1[0] : v2[0],
|
||||||
|
v1[1] > v2[1] ? v1[1] : v2[1],
|
||||||
|
v1[2] > v2[2] ? v1[2] : v2[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline D3DVALUE
|
||||||
|
DotProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
return v1.x*v2.x + v1.y * v2.y + v1.z*v2.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DVECTOR
|
||||||
|
CrossProduct (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
|
||||||
|
{
|
||||||
|
_D3DVECTOR result;
|
||||||
|
|
||||||
|
result[0] = v1[1] * v2[2] - v1[2] * v2[1];
|
||||||
|
result[1] = v1[2] * v2[0] - v1[0] * v2[2];
|
||||||
|
result[2] = v1[0] * v2[1] - v1[1] * v2[0];
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline _D3DMATRIX
|
||||||
|
operator* (const _D3DMATRIX& a, const _D3DMATRIX& b)
|
||||||
|
{
|
||||||
|
_D3DMATRIX ret;
|
||||||
|
for (int i=0; i<4; i++) {
|
||||||
|
for (int j=0; j<4; j++) {
|
||||||
|
ret(i, j) = 0.0f;
|
||||||
|
for (int k=0; k<4; k++) {
|
||||||
|
ret(i, j) += a(i, k) * b(k, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
26
third_party/dx9_sdk/include/d3dx.h
vendored
Normal file
26
third_party/dx9_sdk/include/d3dx.h
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx.h
|
||||||
|
// Content: D3DX utility library
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __D3DX_H__
|
||||||
|
#define __D3DX_H__
|
||||||
|
|
||||||
|
#ifndef D3DXINLINE
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define D3DXINLINE inline
|
||||||
|
#else
|
||||||
|
#define D3DXINLINE _inline
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "d3dxcore.h"
|
||||||
|
#include "d3dxmath.h"
|
||||||
|
#include "d3dxshapes.h"
|
||||||
|
#include "d3dxsprite.h"
|
||||||
|
|
||||||
|
#endif //__D3DX_H__
|
||||||
45
third_party/dx9_sdk/include/d3dx8.h
vendored
Normal file
45
third_party/dx9_sdk/include/d3dx8.h
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx8.h
|
||||||
|
// Content: D3DX utility library
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __D3DX8_H__
|
||||||
|
#define __D3DX8_H__
|
||||||
|
|
||||||
|
#include "d3d8.h"
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#ifndef D3DXINLINE
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#if (_MSC_VER >= 1200)
|
||||||
|
#define D3DXINLINE __forceinline
|
||||||
|
#else
|
||||||
|
#define D3DXINLINE __inline
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define D3DXINLINE inline
|
||||||
|
#else
|
||||||
|
#define D3DXINLINE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define D3DX_DEFAULT ULONG_MAX
|
||||||
|
#define D3DX_DEFAULT_FLOAT FLT_MAX
|
||||||
|
|
||||||
|
#include "d3dx8math.h"
|
||||||
|
#include "d3dx8core.h"
|
||||||
|
#include "d3dx8tex.h"
|
||||||
|
#include "d3dx8mesh.h"
|
||||||
|
#include "d3dx8shape.h"
|
||||||
|
#include "d3dx8effect.h"
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__D3DX8_H__
|
||||||
|
|
||||||
563
third_party/dx9_sdk/include/d3dx8core.h
vendored
Normal file
563
third_party/dx9_sdk/include/d3dx8core.h
vendored
Normal file
@ -0,0 +1,563 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx8core.h
|
||||||
|
// Content: D3DX core types and functions
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx8.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX8CORE_H__
|
||||||
|
#define __D3DX8CORE_H__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXBuffer:
|
||||||
|
// ------------
|
||||||
|
// The buffer object is used by D3DX to return arbitrary size data.
|
||||||
|
//
|
||||||
|
// GetBufferPointer -
|
||||||
|
// Returns a pointer to the beginning of the buffer.
|
||||||
|
//
|
||||||
|
// GetBufferSize -
|
||||||
|
// Returns the size of the buffer, in bytes.
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXBuffer ID3DXBuffer;
|
||||||
|
typedef interface ID3DXBuffer *LPD3DXBUFFER;
|
||||||
|
|
||||||
|
// {932E6A7E-C68E-45dd-A7BF-53D19C86DB1F}
|
||||||
|
DEFINE_GUID(IID_ID3DXBuffer,
|
||||||
|
0x932e6a7e, 0xc68e, 0x45dd, 0xa7, 0xbf, 0x53, 0xd1, 0x9c, 0x86, 0xdb, 0x1f);
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXBuffer
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBuffer
|
||||||
|
STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXFont:
|
||||||
|
// ----------
|
||||||
|
// Font objects contain the textures and resources needed to render
|
||||||
|
// a specific font on a specific device.
|
||||||
|
//
|
||||||
|
// Begin -
|
||||||
|
// Prepartes device for drawing text. This is optional.. if DrawText
|
||||||
|
// is called outside of Begin/End, it will call Begin and End for you.
|
||||||
|
//
|
||||||
|
// DrawText -
|
||||||
|
// Draws formatted text on a D3D device. Some parameters are
|
||||||
|
// surprisingly similar to those of GDI's DrawText function. See GDI
|
||||||
|
// documentation for a detailed description of these parameters.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// Restores device state to how it was when Begin was called.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXFont ID3DXFont;
|
||||||
|
typedef interface ID3DXFont *LPD3DXFONT;
|
||||||
|
|
||||||
|
|
||||||
|
// {89FAD6A5-024D-49af-8FE7-F51123B85E25}
|
||||||
|
DEFINE_GUID( IID_ID3DXFont,
|
||||||
|
0x89fad6a5, 0x24d, 0x49af, 0x8f, 0xe7, 0xf5, 0x11, 0x23, 0xb8, 0x5e, 0x25);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXFont
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXFont, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXFont
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetLogFont)(THIS_ LOGFONT* pLogFont) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Begin)(THIS) PURE;
|
||||||
|
STDMETHOD_(INT, DrawTextA)(THIS_ LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
|
||||||
|
STDMETHOD_(INT, DrawTextW)(THIS_ LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef DrawText
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define DrawText DrawTextW
|
||||||
|
#else
|
||||||
|
#define DrawText DrawTextA
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateFont(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
HFONT hFont,
|
||||||
|
LPD3DXFONT* ppFont);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateFontIndirect(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
CONST LOGFONT* pLogFont,
|
||||||
|
LPD3DXFONT* ppFont);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXSprite:
|
||||||
|
// ------------
|
||||||
|
// This object intends to provide an easy way to drawing sprites using D3D.
|
||||||
|
//
|
||||||
|
// Begin -
|
||||||
|
// Prepares device for drawing sprites
|
||||||
|
//
|
||||||
|
// Draw, DrawAffine, DrawTransform -
|
||||||
|
// Draws a sprite in screen-space. Before transformation, the sprite is
|
||||||
|
// the size of SrcRect, with its top-left corner at the origin (0,0).
|
||||||
|
// The color and alpha channels are modulated by Color.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// Restores device state to how it was when Begin was called.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXSprite ID3DXSprite;
|
||||||
|
typedef interface ID3DXSprite *LPD3DXSPRITE;
|
||||||
|
|
||||||
|
|
||||||
|
// {13D69D15-F9B0-4e0f-B39E-C91EB33F6CE7}
|
||||||
|
DEFINE_GUID( IID_ID3DXSprite,
|
||||||
|
0x13d69d15, 0xf9b0, 0x4e0f, 0xb3, 0x9e, 0xc9, 0x1e, 0xb3, 0x3f, 0x6c, 0xe7);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXSprite
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXSprite
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Begin)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE8 pSrcTexture,
|
||||||
|
CONST RECT* pSrcRect, CONST D3DXVECTOR2* pScaling,
|
||||||
|
CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation,
|
||||||
|
CONST D3DXVECTOR2* pTranslation, D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(DrawTransform)(THIS_ LPDIRECT3DTEXTURE8 pSrcTexture,
|
||||||
|
CONST RECT* pSrcRect, CONST D3DXMATRIX* pTransform,
|
||||||
|
D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSprite(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
LPD3DXSPRITE* ppSprite);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXRenderToSurface:
|
||||||
|
// ---------------------
|
||||||
|
// This object abstracts rendering to surfaces. These surfaces do not
|
||||||
|
// necessarily need to be render targets. If they are not, a compatible
|
||||||
|
// render target is used, and the result copied into surface at end scene.
|
||||||
|
//
|
||||||
|
// BeginScene, EndScene -
|
||||||
|
// Call BeginScene() and EndScene() at the beginning and ending of your
|
||||||
|
// scene. These calls will setup and restore render targets, viewports,
|
||||||
|
// etc..
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct _D3DXRTS_DESC
|
||||||
|
{
|
||||||
|
UINT Width;
|
||||||
|
UINT Height;
|
||||||
|
D3DFORMAT Format;
|
||||||
|
BOOL DepthStencil;
|
||||||
|
D3DFORMAT DepthStencilFormat;
|
||||||
|
|
||||||
|
} D3DXRTS_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef interface ID3DXRenderToSurface ID3DXRenderToSurface;
|
||||||
|
typedef interface ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
|
||||||
|
|
||||||
|
|
||||||
|
// {82DF5B90-E34E-496e-AC1C-62117A6A5913}
|
||||||
|
DEFINE_GUID( IID_ID3DXRenderToSurface,
|
||||||
|
0x82df5b90, 0xe34e, 0x496e, 0xac, 0x1c, 0x62, 0x11, 0x7a, 0x6a, 0x59, 0x13);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXRenderToSurface
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXRenderToSurface
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE8 pSurface, CONST D3DVIEWPORT8* pViewport) PURE;
|
||||||
|
STDMETHOD(EndScene)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateRenderToSurface(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
UINT Width,
|
||||||
|
UINT Height,
|
||||||
|
D3DFORMAT Format,
|
||||||
|
BOOL DepthStencil,
|
||||||
|
D3DFORMAT DepthStencilFormat,
|
||||||
|
LPD3DXRENDERTOSURFACE* ppRenderToSurface);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXRenderToEnvMap:
|
||||||
|
// --------------------
|
||||||
|
// This object abstracts rendering to environment maps. These surfaces
|
||||||
|
// do not necessarily need to be render targets. If they are not, a
|
||||||
|
// compatible render target is used, and the result copied into the
|
||||||
|
// environment map at end scene.
|
||||||
|
//
|
||||||
|
// BeginCube, BeginSphere, BeginHemisphere, BeginParabolic -
|
||||||
|
// This function initiates the rendering of the environment map. As
|
||||||
|
// parameters, you pass the textures in which will get filled in with
|
||||||
|
// the resulting environment map.
|
||||||
|
//
|
||||||
|
// Face -
|
||||||
|
// Call this function to initiate the drawing of each face. For each
|
||||||
|
// environment map, you will call this six times.. once for each face
|
||||||
|
// in D3DCUBEMAP_FACES.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// This will restore all render targets, and if needed compose all the
|
||||||
|
// rendered faces into the environment map surfaces.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct _D3DXRTE_DESC
|
||||||
|
{
|
||||||
|
UINT Size;
|
||||||
|
D3DFORMAT Format;
|
||||||
|
BOOL DepthStencil;
|
||||||
|
D3DFORMAT DepthStencilFormat;
|
||||||
|
} D3DXRTE_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef interface ID3DXRenderToEnvMap ID3DXRenderToEnvMap;
|
||||||
|
typedef interface ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
|
||||||
|
|
||||||
|
// {4E42C623-9451-44b7-8C86-ABCCDE5D52C8}
|
||||||
|
DEFINE_GUID( IID_ID3DXRenderToEnvMap,
|
||||||
|
0x4e42c623, 0x9451, 0x44b7, 0x8c, 0x86, 0xab, 0xcc, 0xde, 0x5d, 0x52, 0xc8);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXRenderToEnvMap
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXRenderToEnvMap
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginCube)(THIS_
|
||||||
|
LPDIRECT3DCUBETEXTURE8 pCubeTex) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginSphere)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE8 pTex) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginHemisphere)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE8 pTexZPos,
|
||||||
|
LPDIRECT3DTEXTURE8 pTexZNeg) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginParabolic)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE8 pTexZPos,
|
||||||
|
LPDIRECT3DTEXTURE8 pTexZNeg) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face) PURE;
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateRenderToEnvMap(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
UINT Size,
|
||||||
|
D3DFORMAT Format,
|
||||||
|
BOOL DepthStencil,
|
||||||
|
D3DFORMAT DepthStencilFormat,
|
||||||
|
LPD3DXRenderToEnvMap* ppRenderToEnvMap);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Shader assemblers:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXASM flags:
|
||||||
|
// --------------
|
||||||
|
//
|
||||||
|
// D3DXASM_DEBUG
|
||||||
|
// Generate debug info.
|
||||||
|
//
|
||||||
|
// D3DXASM_SKIPVALIDATION
|
||||||
|
// Do not validate the generated code against known capabilities and
|
||||||
|
// constraints. This option is only recommended when assembling shaders
|
||||||
|
// you KNOW will work. (ie. have assembled before without this option.)
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define D3DXASM_DEBUG (1 << 0)
|
||||||
|
#define D3DXASM_SKIPVALIDATION (1 << 1)
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXAssembleShader:
|
||||||
|
// -------------------
|
||||||
|
// Assembles an ascii description of a vertex or pixel shader into
|
||||||
|
// binary form.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pSrcFile
|
||||||
|
// Source file name
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used.
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to source code
|
||||||
|
// SrcDataLen
|
||||||
|
// Size of source code, in bytes
|
||||||
|
// Flags
|
||||||
|
// D3DXASM_xxx flags
|
||||||
|
// ppConstants
|
||||||
|
// Returns an ID3DXBuffer object containing constant declarations.
|
||||||
|
// ppCompiledShader
|
||||||
|
// Returns an ID3DXBuffer object containing the object code.
|
||||||
|
// ppCompilationErrors
|
||||||
|
// Returns an ID3DXBuffer object containing ascii error messages
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromFileA(
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppConstants,
|
||||||
|
LPD3DXBUFFER* ppCompiledShader,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromFileW(
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppConstants,
|
||||||
|
LPD3DXBUFFER* ppCompiledShader,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromResourceA(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppConstants,
|
||||||
|
LPD3DXBUFFER* ppCompiledShader,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromResourceW(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppConstants,
|
||||||
|
LPD3DXBUFFER* ppCompiledShader,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShader(
|
||||||
|
LPCVOID pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppConstants,
|
||||||
|
LPD3DXBUFFER* ppCompiledShader,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Misc APIs:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXGetErrorString:
|
||||||
|
// ------------------
|
||||||
|
// Returns the error string for given an hresult. Interprets all D3DX and
|
||||||
|
// D3D hresults.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// hr
|
||||||
|
// The error code to be deciphered.
|
||||||
|
// pBuffer
|
||||||
|
// Pointer to the buffer to be filled in.
|
||||||
|
// BufferLen
|
||||||
|
// Count of characters in buffer. Any error message longer than this
|
||||||
|
// length will be truncated to fit.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetErrorStringA(
|
||||||
|
HRESULT hr,
|
||||||
|
LPSTR pBuffer,
|
||||||
|
UINT BufferLen);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetErrorStringW(
|
||||||
|
HRESULT hr,
|
||||||
|
LPWSTR pBuffer,
|
||||||
|
UINT BufferLen);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXGetErrorString D3DXGetErrorStringW
|
||||||
|
#else
|
||||||
|
#define D3DXGetErrorString D3DXGetErrorStringA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX8CORE_H__
|
||||||
226
third_party/dx9_sdk/include/d3dx8effect.h
vendored
Normal file
226
third_party/dx9_sdk/include/d3dx8effect.h
vendored
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx8effect.h
|
||||||
|
// Content: D3DX effect types and functions
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx8.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX8EFFECT_H__
|
||||||
|
#define __D3DX8EFFECT_H__
|
||||||
|
|
||||||
|
|
||||||
|
#define D3DXFX_DONOTSAVESTATE (1 << 0)
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum _D3DXPARAMETERTYPE
|
||||||
|
{
|
||||||
|
D3DXPT_DWORD = 0,
|
||||||
|
D3DXPT_FLOAT = 1,
|
||||||
|
D3DXPT_VECTOR = 2,
|
||||||
|
D3DXPT_MATRIX = 3,
|
||||||
|
D3DXPT_TEXTURE = 4,
|
||||||
|
D3DXPT_VERTEXSHADER = 5,
|
||||||
|
D3DXPT_PIXELSHADER = 6,
|
||||||
|
D3DXPT_CONSTANT = 7,
|
||||||
|
D3DXPT_STRING = 8,
|
||||||
|
D3DXPT_FORCE_DWORD = 0x7fffffff /* force 32-bit size enum */
|
||||||
|
|
||||||
|
} D3DXPARAMETERTYPE;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXEFFECT_DESC
|
||||||
|
{
|
||||||
|
UINT Parameters;
|
||||||
|
UINT Techniques;
|
||||||
|
|
||||||
|
} D3DXEFFECT_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXPARAMETER_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name;
|
||||||
|
LPCSTR Index;
|
||||||
|
D3DXPARAMETERTYPE Type;
|
||||||
|
|
||||||
|
} D3DXPARAMETER_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXTECHNIQUE_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name;
|
||||||
|
LPCSTR Index;
|
||||||
|
UINT Passes;
|
||||||
|
|
||||||
|
} D3DXTECHNIQUE_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXPASS_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name;
|
||||||
|
LPCSTR Index;
|
||||||
|
|
||||||
|
} D3DXPASS_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXEffect ///////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXEffect ID3DXEffect;
|
||||||
|
typedef interface ID3DXEffect *LPD3DXEFFECT;
|
||||||
|
|
||||||
|
// {648B1CEB-8D4E-4d66-B6FA-E44969E82E89}
|
||||||
|
DEFINE_GUID( IID_ID3DXEffect,
|
||||||
|
0x648b1ceb, 0x8d4e, 0x4d66, 0xb6, 0xfa, 0xe4, 0x49, 0x69, 0xe8, 0x2e, 0x89);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXEffect
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXEffect, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXEffect
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetParameterDesc)(THIS_ LPCSTR pParameter, D3DXPARAMETER_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetTechniqueDesc)(THIS_ LPCSTR pTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetPassDesc)(THIS_ LPCSTR pTechnique, LPCSTR pPass, D3DXPASS_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(FindNextValidTechnique)(THIS_ LPCSTR pTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE8 pDevice, LPD3DXEFFECT* ppEffect) PURE;
|
||||||
|
STDMETHOD(GetCompiledEffect)(THIS_ LPD3DXBUFFER* ppCompiledEffect) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetTechnique)(THIS_ LPCSTR pTechnique) PURE;
|
||||||
|
STDMETHOD(GetTechnique)(THIS_ LPCSTR* ppTechnique) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetDword)(THIS_ LPCSTR pParameter, DWORD dw) PURE;
|
||||||
|
STDMETHOD(GetDword)(THIS_ LPCSTR pParameter, DWORD* pdw) PURE;
|
||||||
|
STDMETHOD(SetFloat)(THIS_ LPCSTR pParameter, FLOAT f) PURE;
|
||||||
|
STDMETHOD(GetFloat)(THIS_ LPCSTR pParameter, FLOAT* pf) PURE;
|
||||||
|
STDMETHOD(SetVector)(THIS_ LPCSTR pParameter, CONST D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(GetVector)(THIS_ LPCSTR pParameter, D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(SetMatrix)(THIS_ LPCSTR pParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrix)(THIS_ LPCSTR pParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetTexture)(THIS_ LPCSTR pParameter, LPDIRECT3DBASETEXTURE8 pTexture) PURE;
|
||||||
|
STDMETHOD(GetTexture)(THIS_ LPCSTR pParameter, LPDIRECT3DBASETEXTURE8 *ppTexture) PURE;
|
||||||
|
STDMETHOD(SetVertexShader)(THIS_ LPCSTR pParameter, DWORD Handle) PURE;
|
||||||
|
STDMETHOD(GetVertexShader)(THIS_ LPCSTR pParameter, DWORD* pHandle) PURE;
|
||||||
|
STDMETHOD(SetPixelShader)(THIS_ LPCSTR pParameter, DWORD Handle) PURE;
|
||||||
|
STDMETHOD(GetPixelShader)(THIS_ LPCSTR pParameter, DWORD* pHandle) PURE;
|
||||||
|
STDMETHOD(SetString)(THIS_ LPCSTR pParameter, LPCSTR pString) PURE;
|
||||||
|
STDMETHOD(GetString)(THIS_ LPCSTR pParameter, LPCSTR* ppString) PURE;
|
||||||
|
STDMETHOD_(BOOL, IsParameterUsed)(THIS_ LPCSTR pParameter) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Validate)(THIS) PURE;
|
||||||
|
STDMETHOD(Begin)(THIS_ UINT *pPasses, DWORD Flags) PURE;
|
||||||
|
STDMETHOD(Pass)(THIS_ UINT Pass) PURE;
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// APIs //////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateEffect:
|
||||||
|
// -----------------
|
||||||
|
// Creates an effect from an ascii or binaray effect description.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pDevice
|
||||||
|
// Pointer of the device on which to create the effect
|
||||||
|
// pSrcFile
|
||||||
|
// Name of the file containing the effect description
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used.
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to effect description
|
||||||
|
// SrcDataSize
|
||||||
|
// Size of the effect description in bytes
|
||||||
|
// ppEffect
|
||||||
|
// Returns a buffer containing created effect.
|
||||||
|
// ppCompilationErrors
|
||||||
|
// Returns a buffer containing any error messages which occurred during
|
||||||
|
// compile. Or NULL if you do not care about the error messages.
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromFileA(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromFileW(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromResourceA(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromResourceW(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffect(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
LPCVOID pSrcData,
|
||||||
|
UINT SrcDataSize,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX8EFFECT_H__
|
||||||
1215
third_party/dx9_sdk/include/d3dx8math.h
vendored
Normal file
1215
third_party/dx9_sdk/include/d3dx8math.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1757
third_party/dx9_sdk/include/d3dx8math.inl
vendored
Normal file
1757
third_party/dx9_sdk/include/d3dx8math.inl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
760
third_party/dx9_sdk/include/d3dx8mesh.h
vendored
Normal file
760
third_party/dx9_sdk/include/d3dx8mesh.h
vendored
Normal file
@ -0,0 +1,760 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx8mesh.h
|
||||||
|
// Content: D3DX mesh types and functions
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx8.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX8MESH_H__
|
||||||
|
#define __D3DX8MESH_H__
|
||||||
|
|
||||||
|
#include "dxfile.h" // defines LPDIRECTXFILEDATA
|
||||||
|
|
||||||
|
// {2A835771-BF4D-43f4-8E14-82A809F17D8A}
|
||||||
|
DEFINE_GUID(IID_ID3DXBaseMesh,
|
||||||
|
0x2a835771, 0xbf4d, 0x43f4, 0x8e, 0x14, 0x82, 0xa8, 0x9, 0xf1, 0x7d, 0x8a);
|
||||||
|
|
||||||
|
// {CCAE5C3B-4DD1-4d0f-997E-4684CA64557F}
|
||||||
|
DEFINE_GUID(IID_ID3DXMesh,
|
||||||
|
0xccae5c3b, 0x4dd1, 0x4d0f, 0x99, 0x7e, 0x46, 0x84, 0xca, 0x64, 0x55, 0x7f);
|
||||||
|
|
||||||
|
// {19FBE386-C282-4659-97BD-CB869B084A6C}
|
||||||
|
DEFINE_GUID(IID_ID3DXPMesh,
|
||||||
|
0x19fbe386, 0xc282, 0x4659, 0x97, 0xbd, 0xcb, 0x86, 0x9b, 0x8, 0x4a, 0x6c);
|
||||||
|
|
||||||
|
// {4E3CA05C-D4FF-4d11-8A02-16459E08F6F4}
|
||||||
|
DEFINE_GUID(IID_ID3DXSPMesh,
|
||||||
|
0x4e3ca05c, 0xd4ff, 0x4d11, 0x8a, 0x2, 0x16, 0x45, 0x9e, 0x8, 0xf6, 0xf4);
|
||||||
|
|
||||||
|
// {8DB06ECC-EBFC-408a-9404-3074B4773515}
|
||||||
|
DEFINE_GUID(IID_ID3DXSkinMesh,
|
||||||
|
0x8db06ecc, 0xebfc, 0x408a, 0x94, 0x4, 0x30, 0x74, 0xb4, 0x77, 0x35, 0x15);
|
||||||
|
|
||||||
|
// Mesh options - lower 3 bytes only, upper byte used by _D3DXMESHOPT option flags
|
||||||
|
enum _D3DXMESH {
|
||||||
|
D3DXMESH_32BIT = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices.
|
||||||
|
D3DXMESH_DONOTCLIP = 0x002, // Use D3DUSAGE_DONOTCLIP for VB & IB.
|
||||||
|
D3DXMESH_POINTS = 0x004, // Use D3DUSAGE_POINTS for VB & IB.
|
||||||
|
D3DXMESH_RTPATCHES = 0x008, // Use D3DUSAGE_RTPATCHES for VB & IB.
|
||||||
|
D3DXMESH_NPATCHES = 0x4000,// Use D3DUSAGE_NPATCHES for VB & IB.
|
||||||
|
D3DXMESH_VB_SYSTEMMEM = 0x010, // Use D3DPOOL_SYSTEMMEM for VB. Overrides D3DXMESH_MANAGEDVERTEXBUFFER
|
||||||
|
D3DXMESH_VB_MANAGED = 0x020, // Use D3DPOOL_MANAGED for VB.
|
||||||
|
D3DXMESH_VB_WRITEONLY = 0x040, // Use D3DUSAGE_WRITEONLY for VB.
|
||||||
|
D3DXMESH_VB_DYNAMIC = 0x080, // Use D3DUSAGE_DYNAMIC for VB.
|
||||||
|
D3DXMESH_VB_SOFTWAREPROCESSING = 0x8000, // Use D3DUSAGE_SOFTWAREPROCESSING for VB.
|
||||||
|
D3DXMESH_IB_SYSTEMMEM = 0x100, // Use D3DPOOL_SYSTEMMEM for IB. Overrides D3DXMESH_MANAGEDINDEXBUFFER
|
||||||
|
D3DXMESH_IB_MANAGED = 0x200, // Use D3DPOOL_MANAGED for IB.
|
||||||
|
D3DXMESH_IB_WRITEONLY = 0x400, // Use D3DUSAGE_WRITEONLY for IB.
|
||||||
|
D3DXMESH_IB_DYNAMIC = 0x800, // Use D3DUSAGE_DYNAMIC for IB.
|
||||||
|
D3DXMESH_IB_SOFTWAREPROCESSING= 0x10000, // Use D3DUSAGE_SOFTWAREPROCESSING for IB.
|
||||||
|
|
||||||
|
D3DXMESH_VB_SHARE = 0x1000, // Valid for Clone* calls only, forces cloned mesh/pmesh to share vertex buffer
|
||||||
|
|
||||||
|
D3DXMESH_USEHWONLY = 0x2000, // Valid for ID3DXSkinMesh::ConvertToBlendedMesh
|
||||||
|
|
||||||
|
// Helper options
|
||||||
|
D3DXMESH_SYSTEMMEM = 0x110, // D3DXMESH_VB_SYSTEMMEM | D3DXMESH_IB_SYSTEMMEM
|
||||||
|
D3DXMESH_MANAGED = 0x220, // D3DXMESH_VB_MANAGED | D3DXMESH_IB_MANAGED
|
||||||
|
D3DXMESH_WRITEONLY = 0x440, // D3DXMESH_VB_WRITEONLY | D3DXMESH_IB_WRITEONLY
|
||||||
|
D3DXMESH_DYNAMIC = 0x880, // D3DXMESH_VB_DYNAMIC | D3DXMESH_IB_DYNAMIC
|
||||||
|
D3DXMESH_SOFTWAREPROCESSING = 0x18000, // D3DXMESH_VB_SOFTWAREPROCESSING | D3DXMESH_IB_SOFTWAREPROCESSING
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// option field values for specifying min value in D3DXGeneratePMesh and D3DXSimplifyMesh
|
||||||
|
enum _D3DXMESHSIMP
|
||||||
|
{
|
||||||
|
D3DXMESHSIMP_VERTEX = 0x1,
|
||||||
|
D3DXMESHSIMP_FACE = 0x2,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _MAX_FVF_DECL_SIZE
|
||||||
|
{
|
||||||
|
MAX_FVF_DECL_SIZE = 20
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct ID3DXBaseMesh *LPD3DXBASEMESH;
|
||||||
|
typedef struct ID3DXMesh *LPD3DXMESH;
|
||||||
|
typedef struct ID3DXPMesh *LPD3DXPMESH;
|
||||||
|
typedef struct ID3DXSPMesh *LPD3DXSPMESH;
|
||||||
|
typedef struct ID3DXSkinMesh *LPD3DXSKINMESH;
|
||||||
|
|
||||||
|
typedef struct _D3DXATTRIBUTERANGE
|
||||||
|
{
|
||||||
|
DWORD AttribId;
|
||||||
|
DWORD FaceStart;
|
||||||
|
DWORD FaceCount;
|
||||||
|
DWORD VertexStart;
|
||||||
|
DWORD VertexCount;
|
||||||
|
} D3DXATTRIBUTERANGE;
|
||||||
|
|
||||||
|
typedef D3DXATTRIBUTERANGE* LPD3DXATTRIBUTERANGE;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
struct D3DXMATERIAL
|
||||||
|
{
|
||||||
|
D3DMATERIAL8 MatD3D;
|
||||||
|
LPSTR pTextureFilename;
|
||||||
|
};
|
||||||
|
typedef struct D3DXMATERIAL *LPD3DXMATERIAL;
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
typedef struct _D3DXATTRIBUTEWEIGHTS
|
||||||
|
{
|
||||||
|
FLOAT Position;
|
||||||
|
FLOAT Boundary;
|
||||||
|
FLOAT Normal;
|
||||||
|
FLOAT Diffuse;
|
||||||
|
FLOAT Specular;
|
||||||
|
FLOAT Tex[8];
|
||||||
|
} D3DXATTRIBUTEWEIGHTS;
|
||||||
|
|
||||||
|
typedef D3DXATTRIBUTEWEIGHTS* LPD3DXATTRIBUTEWEIGHTS;
|
||||||
|
|
||||||
|
enum _D3DXWELDEPSILONSFLAGS
|
||||||
|
{
|
||||||
|
D3DXWELDEPSILONS_WELDALL = 0x1, // weld all vertices marked by adjacency as being overlapping
|
||||||
|
|
||||||
|
D3DXWELDEPSILONS_WELDPARTIALMATCHES = 0x2, // if a given vertex component is within epsilon, modify partial matched
|
||||||
|
// vertices so that both components identical AND if all components "equal"
|
||||||
|
// remove one of the vertices
|
||||||
|
D3DXWELDEPSILONS_DONOTREMOVEVERTICES = 0x4, // instructs weld to only allow modifications to vertices and not removal
|
||||||
|
// ONLY valid if D3DXWELDEPSILONS_WELDPARTIALMATCHES is set
|
||||||
|
// useful to modify vertices to be equal, but not allow vertices to be removed
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _D3DXWELDEPSILONS
|
||||||
|
{
|
||||||
|
FLOAT SkinWeights;
|
||||||
|
FLOAT Normal;
|
||||||
|
FLOAT Tex[8];
|
||||||
|
DWORD Flags;
|
||||||
|
} D3DXWELDEPSILONS;
|
||||||
|
|
||||||
|
typedef D3DXWELDEPSILONS* LPD3DXWELDEPSILONS;
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXBaseMesh
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBaseMesh
|
||||||
|
STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(CloneMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
|
||||||
|
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
|
||||||
|
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(GetAttributeTable)(
|
||||||
|
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
|
||||||
|
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
|
||||||
|
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXMesh
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBaseMesh
|
||||||
|
STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(CloneMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
|
||||||
|
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
|
||||||
|
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(GetAttributeTable)(
|
||||||
|
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
|
||||||
|
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
|
||||||
|
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
|
||||||
|
|
||||||
|
// ID3DXMesh
|
||||||
|
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD Flags, DWORD** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(Optimize)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
|
||||||
|
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
|
||||||
|
LPD3DXMESH* ppOptMesh) PURE;
|
||||||
|
STDMETHOD(OptimizeInplace)(THIS_ DWORD Flags, CONST DWORD* pAdjacencyIn, DWORD* pAdjacencyOut,
|
||||||
|
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap) PURE;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXPMesh
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBaseMesh
|
||||||
|
STDMETHOD(DrawSubset)(THIS_ DWORD AttribId) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(CloneMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
|
||||||
|
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
|
||||||
|
STDMETHOD(LockVertexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(LockIndexBuffer)(THIS_ DWORD Flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(GetAttributeTable)(
|
||||||
|
THIS_ D3DXATTRIBUTERANGE *pAttribTable, DWORD* pAttribTableSize) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* pPRep, DWORD* pAdjacency) PURE;
|
||||||
|
STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* pAdjacency, DWORD* pPRep) PURE;
|
||||||
|
STDMETHOD(GenerateAdjacency)(THIS_ FLOAT Epsilon, DWORD* pAdjacency) PURE;
|
||||||
|
|
||||||
|
// ID3DXPMesh
|
||||||
|
STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3D, LPD3DXPMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(ClonePMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, LPD3DXPMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(SetNumFaces)(THIS_ DWORD Faces) PURE;
|
||||||
|
STDMETHOD(SetNumVertices)(THIS_ DWORD Vertices) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMinFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMinVertices)(THIS) PURE;
|
||||||
|
STDMETHOD(Save)(THIS_ IStream *pStream, LPD3DXMATERIAL pMaterials, DWORD NumMaterials) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Optimize)(THIS_ DWORD Flags, DWORD* pAdjacencyOut,
|
||||||
|
DWORD* pFaceRemap, LPD3DXBUFFER *ppVertexRemap,
|
||||||
|
LPD3DXMESH* ppOptMesh) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD Flags, DWORD* pFaceRemap) PURE;
|
||||||
|
STDMETHOD(TrimByFaces)(THIS_ DWORD NewFacesMin, DWORD NewFacesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
|
||||||
|
STDMETHOD(TrimByVertices)(THIS_ DWORD NewVerticesMin, DWORD NewVerticesMax, DWORD *rgiFaceRemap, DWORD *rgiVertRemap) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetAdjacency)(THIS_ DWORD* pAdjacency) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXSPMesh
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXSPMesh, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXSPMesh
|
||||||
|
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(CloneMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3D, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(CloneMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3DDevice, DWORD *pAdjacencyOut, DWORD *pVertexRemapOut, LPD3DXMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(ClonePMeshFVF)(THIS_ DWORD Options,
|
||||||
|
DWORD FVF, LPDIRECT3DDEVICE8 pD3D, DWORD *pVertexRemapOut, LPD3DXPMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(ClonePMesh)(THIS_ DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration, LPDIRECT3DDEVICE8 pD3D, DWORD *pVertexRemapOut, LPD3DXPMESH* ppCloneMesh) PURE;
|
||||||
|
STDMETHOD(ReduceFaces)(THIS_ DWORD Faces) PURE;
|
||||||
|
STDMETHOD(ReduceVertices)(THIS_ DWORD Vertices) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMaxFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
|
||||||
|
STDMETHOD(GetVertexAttributeWeights)(THIS_ LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights) PURE;
|
||||||
|
STDMETHOD(GetVertexWeights)(THIS_ FLOAT *pVertexWeights) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UNUSED16 (0xffff)
|
||||||
|
#define UNUSED32 (0xffffffff)
|
||||||
|
|
||||||
|
// ID3DXMesh::Optimize options - upper byte only, lower 3 bytes used from _D3DXMESH option flags
|
||||||
|
enum _D3DXMESHOPT {
|
||||||
|
D3DXMESHOPT_COMPACT = 0x01000000,
|
||||||
|
D3DXMESHOPT_ATTRSORT = 0x02000000,
|
||||||
|
D3DXMESHOPT_VERTEXCACHE = 0x04000000,
|
||||||
|
D3DXMESHOPT_STRIPREORDER = 0x08000000,
|
||||||
|
D3DXMESHOPT_IGNOREVERTS = 0x10000000, // optimize faces only, don't touch vertices
|
||||||
|
D3DXMESHOPT_SHAREVB = 0x1000, // same as D3DXMESH_VB_SHARE
|
||||||
|
};
|
||||||
|
|
||||||
|
// Subset of the mesh that has the same attribute and bone combination.
|
||||||
|
// This subset can be rendered in a single draw call
|
||||||
|
typedef struct _D3DXBONECOMBINATION
|
||||||
|
{
|
||||||
|
DWORD AttribId;
|
||||||
|
DWORD FaceStart;
|
||||||
|
DWORD FaceCount;
|
||||||
|
DWORD VertexStart;
|
||||||
|
DWORD VertexCount;
|
||||||
|
DWORD* BoneId;
|
||||||
|
} D3DXBONECOMBINATION, *LPD3DXBONECOMBINATION;
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXSkinMesh
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXSkinMesh, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXMesh
|
||||||
|
STDMETHOD_(DWORD, GetNumFaces)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumVertices)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDeclaration)(THIS_ DWORD Declaration[MAX_FVF_DECL_SIZE]) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetOptions)(THIS) PURE;
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE8* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetVertexBuffer)(THIS_ LPDIRECT3DVERTEXBUFFER8* ppVB) PURE;
|
||||||
|
STDMETHOD(GetIndexBuffer)(THIS_ LPDIRECT3DINDEXBUFFER8* ppIB) PURE;
|
||||||
|
STDMETHOD(LockVertexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockVertexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, BYTE** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
|
||||||
|
STDMETHOD(LockAttributeBuffer)(THIS_ DWORD flags, DWORD** ppData) PURE;
|
||||||
|
STDMETHOD(UnlockAttributeBuffer)(THIS) PURE;
|
||||||
|
// ID3DXSkinMesh
|
||||||
|
STDMETHOD_(DWORD, GetNumBones)(THIS) PURE;
|
||||||
|
STDMETHOD(GetOriginalMesh)(THIS_ LPD3DXMESH* ppMesh) PURE;
|
||||||
|
STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD numInfluences, CONST DWORD* vertices, CONST FLOAT* weights) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
|
||||||
|
STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
|
||||||
|
STDMETHOD(GetMaxVertexInfluences)(THIS_ DWORD* maxVertexInfluences) PURE;
|
||||||
|
STDMETHOD(GetMaxFaceInfluences)(THIS_ DWORD* maxFaceInfluences) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ConvertToBlendedMesh)(THIS_ DWORD Options,
|
||||||
|
CONST LPDWORD pAdjacencyIn,
|
||||||
|
LPDWORD pAdjacencyOut,
|
||||||
|
DWORD* pNumBoneCombinations,
|
||||||
|
LPD3DXBUFFER* ppBoneCombinationTable,
|
||||||
|
DWORD* pFaceRemap,
|
||||||
|
LPD3DXBUFFER *ppVertexRemap,
|
||||||
|
LPD3DXMESH* ppMesh) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ConvertToIndexedBlendedMesh)(THIS_ DWORD Options,
|
||||||
|
CONST LPDWORD pAdjacencyIn,
|
||||||
|
DWORD paletteSize,
|
||||||
|
LPDWORD pAdjacencyOut,
|
||||||
|
DWORD* pNumBoneCombinations,
|
||||||
|
LPD3DXBUFFER* ppBoneCombinationTable,
|
||||||
|
DWORD* pFaceRemap,
|
||||||
|
LPD3DXBUFFER *ppVertexRemap,
|
||||||
|
LPD3DXMESH* ppMesh) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GenerateSkinnedMesh)(THIS_ DWORD Options,
|
||||||
|
FLOAT minWeight,
|
||||||
|
CONST LPDWORD pAdjacencyIn,
|
||||||
|
LPDWORD pAdjacencyOut,
|
||||||
|
DWORD* pFaceRemap,
|
||||||
|
LPD3DXBUFFER *ppVertexRemap,
|
||||||
|
LPD3DXMESH* ppMesh) PURE;
|
||||||
|
STDMETHOD(UpdateSkinnedMesh)(THIS_ CONST D3DXMATRIX* pBoneTransforms, CONST D3DXMATRIX* pBoneInvTransforms, LPD3DXMESH pMesh) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateMesh(
|
||||||
|
DWORD NumFaces,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXMESH* ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateMeshFVF(
|
||||||
|
DWORD NumFaces,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD Options,
|
||||||
|
DWORD FVF,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXMESH* ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSPMesh(
|
||||||
|
LPD3DXMESH pMesh,
|
||||||
|
CONST DWORD* pAdjacency,
|
||||||
|
CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
|
||||||
|
CONST FLOAT *pVertexWeights,
|
||||||
|
LPD3DXSPMESH* ppSMesh);
|
||||||
|
|
||||||
|
// clean a mesh up for simplification, try to make manifold
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCleanMesh(
|
||||||
|
LPD3DXMESH pMeshIn,
|
||||||
|
CONST DWORD* pAdjacencyIn,
|
||||||
|
LPD3DXMESH* ppMeshOut,
|
||||||
|
DWORD* pAdjacencyOut,
|
||||||
|
LPD3DXBUFFER* ppErrorsAndWarnings);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXValidMesh(
|
||||||
|
LPD3DXMESH pMeshIn,
|
||||||
|
CONST DWORD* pAdjacency,
|
||||||
|
LPD3DXBUFFER* ppErrorsAndWarnings);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGeneratePMesh(
|
||||||
|
LPD3DXMESH pMesh,
|
||||||
|
CONST DWORD* pAdjacency,
|
||||||
|
CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
|
||||||
|
CONST FLOAT *pVertexWeights,
|
||||||
|
DWORD MinValue,
|
||||||
|
DWORD Options,
|
||||||
|
LPD3DXPMESH* ppPMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXSimplifyMesh(
|
||||||
|
LPD3DXMESH pMesh,
|
||||||
|
CONST DWORD* pAdjacency,
|
||||||
|
CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights,
|
||||||
|
CONST FLOAT *pVertexWeights,
|
||||||
|
DWORD MinValue,
|
||||||
|
DWORD Options,
|
||||||
|
LPD3DXMESH* ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXComputeBoundingSphere(
|
||||||
|
PVOID pPointsFVF,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD FVF,
|
||||||
|
D3DXVECTOR3 *pCenter,
|
||||||
|
FLOAT *pRadius);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXComputeBoundingBox(
|
||||||
|
PVOID pPointsFVF,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD FVF,
|
||||||
|
D3DXVECTOR3 *pMin,
|
||||||
|
D3DXVECTOR3 *pMax);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXComputeNormals(
|
||||||
|
LPD3DXBASEMESH pMesh,
|
||||||
|
CONST DWORD *pAdjacency);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateBuffer(
|
||||||
|
DWORD NumBytes,
|
||||||
|
LPD3DXBUFFER *ppBuffer);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshFromX(
|
||||||
|
LPSTR pFilename,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXBUFFER *ppAdjacency,
|
||||||
|
LPD3DXBUFFER *ppMaterials,
|
||||||
|
DWORD *pNumMaterials,
|
||||||
|
LPD3DXMESH *ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshFromXInMemory(
|
||||||
|
PBYTE Memory,
|
||||||
|
DWORD SizeOfMemory,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXBUFFER *ppAdjacency,
|
||||||
|
LPD3DXBUFFER *ppMaterials,
|
||||||
|
DWORD *pNumMaterials,
|
||||||
|
LPD3DXMESH *ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshFromXResource(
|
||||||
|
HMODULE Module,
|
||||||
|
LPCTSTR Name,
|
||||||
|
LPCTSTR Type,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXBUFFER *ppAdjacency,
|
||||||
|
LPD3DXBUFFER *ppMaterials,
|
||||||
|
DWORD *pNumMaterials,
|
||||||
|
LPD3DXMESH *ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXSaveMeshToX(
|
||||||
|
LPSTR pFilename,
|
||||||
|
LPD3DXMESH pMesh,
|
||||||
|
CONST DWORD* pAdjacency,
|
||||||
|
CONST LPD3DXMATERIAL pMaterials,
|
||||||
|
DWORD NumMaterials,
|
||||||
|
DWORD Format
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreatePMeshFromStream(
|
||||||
|
IStream *pStream,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3DDevice,
|
||||||
|
LPD3DXBUFFER *ppMaterials,
|
||||||
|
DWORD* pNumMaterials,
|
||||||
|
LPD3DXPMESH *ppPMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSkinMesh(
|
||||||
|
DWORD NumFaces,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD NumBones,
|
||||||
|
DWORD Options,
|
||||||
|
CONST DWORD *pDeclaration,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXSKINMESH* ppSkinMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSkinMeshFVF(
|
||||||
|
DWORD NumFaces,
|
||||||
|
DWORD NumVertices,
|
||||||
|
DWORD NumBones,
|
||||||
|
DWORD Options,
|
||||||
|
DWORD FVF,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXSKINMESH* ppSkinMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSkinMeshFromMesh(
|
||||||
|
LPD3DXMESH pMesh,
|
||||||
|
DWORD numBones,
|
||||||
|
LPD3DXSKINMESH* ppSkinMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshFromXof(
|
||||||
|
LPDIRECTXFILEDATA pXofObjMesh,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3DDevice,
|
||||||
|
LPD3DXBUFFER *ppAdjacency,
|
||||||
|
LPD3DXBUFFER *ppMaterials,
|
||||||
|
DWORD *pNumMaterials,
|
||||||
|
LPD3DXMESH *ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadSkinMeshFromXof(
|
||||||
|
LPDIRECTXFILEDATA pxofobjMesh,
|
||||||
|
DWORD Options,
|
||||||
|
LPDIRECT3DDEVICE8 pD3D,
|
||||||
|
LPD3DXBUFFER* ppAdjacency,
|
||||||
|
LPD3DXBUFFER* ppMaterials,
|
||||||
|
DWORD *pMatOut,
|
||||||
|
LPD3DXBUFFER* ppBoneNames,
|
||||||
|
LPD3DXBUFFER* ppBoneTransforms,
|
||||||
|
LPD3DXSKINMESH* ppMesh);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXTessellateNPatches(
|
||||||
|
LPD3DXMESH pMeshIn,
|
||||||
|
CONST DWORD* pAdjacencyIn,
|
||||||
|
FLOAT NumSegs,
|
||||||
|
BOOL QuadraticInterpNormals, // if false use linear intrep for normals, if true use quadratic
|
||||||
|
LPD3DXMESH *ppMeshOut,
|
||||||
|
LPD3DXBUFFER *ppAdjacencyOut);
|
||||||
|
|
||||||
|
UINT WINAPI
|
||||||
|
D3DXGetFVFVertexSize(DWORD FVF);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXDeclaratorFromFVF(
|
||||||
|
DWORD FVF,
|
||||||
|
DWORD Declaration[MAX_FVF_DECL_SIZE]);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFVFFromDeclarator(
|
||||||
|
CONST DWORD *pDeclarator,
|
||||||
|
DWORD *pFVF);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXWeldVertices(
|
||||||
|
CONST LPD3DXMESH pMesh,
|
||||||
|
LPD3DXWELDEPSILONS pEpsilons,
|
||||||
|
CONST DWORD *pAdjacencyIn,
|
||||||
|
DWORD *pAdjacencyOut,
|
||||||
|
DWORD* pFaceRemap,
|
||||||
|
LPD3DXBUFFER *ppVertexRemap);
|
||||||
|
|
||||||
|
typedef struct _D3DXINTERSECTINFO
|
||||||
|
{
|
||||||
|
DWORD FaceIndex; // index of face intersected
|
||||||
|
FLOAT U; // Barycentric Hit Coordinates
|
||||||
|
FLOAT V; // Barycentric Hit Coordinates
|
||||||
|
FLOAT Dist; // Ray-Intersection Parameter Distance
|
||||||
|
} D3DXINTERSECTINFO, *LPD3DXINTERSECTINFO;
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXIntersect(
|
||||||
|
LPD3DXBASEMESH pMesh,
|
||||||
|
CONST D3DXVECTOR3 *pRayPos,
|
||||||
|
CONST D3DXVECTOR3 *pRayDir,
|
||||||
|
BOOL *pHit, // True if any faces were intersected
|
||||||
|
DWORD *pFaceIndex, // index of closest face intersected
|
||||||
|
FLOAT *pU, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pV, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pDist, // Ray-Intersection Parameter Distance
|
||||||
|
LPD3DXBUFFER *ppAllHits, // Array of D3DXINTERSECTINFOs for all hits (not just closest)
|
||||||
|
DWORD *pCountOfHits); // Number of entries in AllHits array
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXIntersectSubset(
|
||||||
|
LPD3DXBASEMESH pMesh,
|
||||||
|
DWORD AttribId,
|
||||||
|
CONST D3DXVECTOR3 *pRayPos,
|
||||||
|
CONST D3DXVECTOR3 *pRayDir,
|
||||||
|
BOOL *pHit, // True if any faces were intersected
|
||||||
|
DWORD *pFaceIndex, // index of closest face intersected
|
||||||
|
FLOAT *pU, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pV, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pDist, // Ray-Intersection Parameter Distance
|
||||||
|
LPD3DXBUFFER *ppAllHits, // Array of D3DXINTERSECTINFOs for all hits (not just closest)
|
||||||
|
DWORD *pCountOfHits); // Number of entries in AllHits array
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI D3DXSplitMesh
|
||||||
|
(
|
||||||
|
CONST LPD3DXMESH pMeshIn,
|
||||||
|
CONST DWORD *pAdjacencyIn,
|
||||||
|
CONST DWORD MaxSize,
|
||||||
|
CONST DWORD Options,
|
||||||
|
DWORD *pMeshesOut,
|
||||||
|
LPD3DXBUFFER *ppMeshArrayOut,
|
||||||
|
LPD3DXBUFFER *ppAdjacencyArrayOut,
|
||||||
|
LPD3DXBUFFER *ppFaceRemapArrayOut,
|
||||||
|
LPD3DXBUFFER *ppVertRemapArrayOut
|
||||||
|
);
|
||||||
|
|
||||||
|
BOOL D3DXIntersectTri
|
||||||
|
(
|
||||||
|
CONST D3DXVECTOR3 *p0, // Triangle vertex 0 position
|
||||||
|
CONST D3DXVECTOR3 *p1, // Triangle vertex 1 position
|
||||||
|
CONST D3DXVECTOR3 *p2, // Triangle vertex 2 position
|
||||||
|
CONST D3DXVECTOR3 *pRayPos, // Ray origin
|
||||||
|
CONST D3DXVECTOR3 *pRayDir, // Ray direction
|
||||||
|
FLOAT *pU, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pV, // Barycentric Hit Coordinates
|
||||||
|
FLOAT *pDist); // Ray-Intersection Parameter Distance
|
||||||
|
|
||||||
|
BOOL WINAPI
|
||||||
|
D3DXSphereBoundProbe(
|
||||||
|
CONST D3DXVECTOR3 *pCenter,
|
||||||
|
FLOAT Radius,
|
||||||
|
CONST D3DXVECTOR3 *pRayPosition,
|
||||||
|
CONST D3DXVECTOR3 *pRayDirection);
|
||||||
|
|
||||||
|
BOOL WINAPI
|
||||||
|
D3DXBoxBoundProbe(
|
||||||
|
CONST D3DXVECTOR3 *pMin,
|
||||||
|
CONST D3DXVECTOR3 *pMax,
|
||||||
|
CONST D3DXVECTOR3 *pRayPosition,
|
||||||
|
CONST D3DXVECTOR3 *pRayDirection);
|
||||||
|
|
||||||
|
enum _D3DXERR {
|
||||||
|
D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
|
||||||
|
D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901),
|
||||||
|
D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902),
|
||||||
|
D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903),
|
||||||
|
D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904),
|
||||||
|
D3DXERR_INVALIDDATA = MAKE_DDHRESULT(2905),
|
||||||
|
D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define D3DX_COMP_TANGENT_NONE 0xFFFFFFFF
|
||||||
|
|
||||||
|
HRESULT WINAPI D3DXComputeTangent(LPD3DXMESH InMesh,
|
||||||
|
DWORD TexStage,
|
||||||
|
LPD3DXMESH OutMesh,
|
||||||
|
DWORD TexStageUVec,
|
||||||
|
DWORD TexStageVVec,
|
||||||
|
DWORD Wrap,
|
||||||
|
DWORD *Adjacency);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXConvertMeshSubsetToSingleStrip
|
||||||
|
(
|
||||||
|
LPD3DXBASEMESH MeshIn,
|
||||||
|
DWORD AttribId,
|
||||||
|
DWORD IBOptions,
|
||||||
|
LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
|
||||||
|
DWORD *pNumIndices
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXConvertMeshSubsetToStrips
|
||||||
|
(
|
||||||
|
LPD3DXBASEMESH MeshIn,
|
||||||
|
DWORD AttribId,
|
||||||
|
DWORD IBOptions,
|
||||||
|
LPDIRECT3DINDEXBUFFER8 *ppIndexBuffer,
|
||||||
|
DWORD *pNumIndices,
|
||||||
|
LPD3DXBUFFER *ppStripLengths,
|
||||||
|
DWORD *pNumStrips
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX8MESH_H__
|
||||||
|
|
||||||
|
|
||||||
220
third_party/dx9_sdk/include/d3dx8shape.h
vendored
Normal file
220
third_party/dx9_sdk/include/d3dx8shape.h
vendored
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx8shapes.h
|
||||||
|
// Content: D3DX simple shapes
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx8.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX8SHAPES_H__
|
||||||
|
#define __D3DX8SHAPES_H__
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Functions:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreatePolygon:
|
||||||
|
// ------------------
|
||||||
|
// Creates a mesh containing an n-sided polygon. The polygon is centered
|
||||||
|
// at the origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Length Length of each side.
|
||||||
|
// Sides Number of sides the polygon has. (Must be >= 3)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreatePolygon(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
FLOAT Length,
|
||||||
|
UINT Sides,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateBox:
|
||||||
|
// --------------
|
||||||
|
// Creates a mesh containing an axis-aligned box. The box is centered at
|
||||||
|
// the origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Width Width of box (along X-axis)
|
||||||
|
// Height Height of box (along Y-axis)
|
||||||
|
// Depth Depth of box (along Z-axis)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateBox(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
FLOAT Width,
|
||||||
|
FLOAT Height,
|
||||||
|
FLOAT Depth,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateCylinder:
|
||||||
|
// -------------------
|
||||||
|
// Creates a mesh containing a cylinder. The generated cylinder is
|
||||||
|
// centered at the origin, and its axis is aligned with the Z-axis.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Radius1 Radius at -Z end (should be >= 0.0f)
|
||||||
|
// Radius2 Radius at +Z end (should be >= 0.0f)
|
||||||
|
// Length Length of cylinder (along Z-axis)
|
||||||
|
// Slices Number of slices about the main axis
|
||||||
|
// Stacks Number of stacks along the main axis
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateCylinder(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
FLOAT Radius1,
|
||||||
|
FLOAT Radius2,
|
||||||
|
FLOAT Length,
|
||||||
|
UINT Slices,
|
||||||
|
UINT Stacks,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateSphere:
|
||||||
|
// -----------------
|
||||||
|
// Creates a mesh containing a sphere. The sphere is centered at the
|
||||||
|
// origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Radius Radius of the sphere (should be >= 0.0f)
|
||||||
|
// Slices Number of slices about the main axis
|
||||||
|
// Stacks Number of stacks along the main axis
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSphere(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
FLOAT Radius,
|
||||||
|
UINT Slices,
|
||||||
|
UINT Stacks,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTorus:
|
||||||
|
// ----------------
|
||||||
|
// Creates a mesh containing a torus. The generated torus is centered at
|
||||||
|
// the origin, and its axis is aligned with the Z-axis.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// InnerRadius Inner radius of the torus (should be >= 0.0f)
|
||||||
|
// OuterRadius Outer radius of the torue (should be >= 0.0f)
|
||||||
|
// Sides Number of sides in a cross-section (must be >= 3)
|
||||||
|
// Rings Number of rings making up the torus (must be >= 3)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTorus(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
FLOAT InnerRadius,
|
||||||
|
FLOAT OuterRadius,
|
||||||
|
UINT Sides,
|
||||||
|
UINT Rings,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTeapot:
|
||||||
|
// -----------------
|
||||||
|
// Creates a mesh containing a teapot.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTeapot(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateText:
|
||||||
|
// ---------------
|
||||||
|
// Creates a mesh containing the specified text using the font associated
|
||||||
|
// with the device context.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// hDC Device context, with desired font selected
|
||||||
|
// pText Text to generate
|
||||||
|
// Deviation Maximum chordal deviation from true font outlines
|
||||||
|
// Extrusion Amount to extrude text in -Z direction
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// pGlyphMetrics Address of buffer to receive glyph metric data (or NULL)
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTextA(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
HDC hDC,
|
||||||
|
LPCSTR pText,
|
||||||
|
FLOAT Deviation,
|
||||||
|
FLOAT Extrusion,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency,
|
||||||
|
LPGLYPHMETRICSFLOAT pGlyphMetrics);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTextW(
|
||||||
|
LPDIRECT3DDEVICE8 pDevice,
|
||||||
|
HDC hDC,
|
||||||
|
LPCWSTR pText,
|
||||||
|
FLOAT Deviation,
|
||||||
|
FLOAT Extrusion,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency,
|
||||||
|
LPGLYPHMETRICSFLOAT pGlyphMetrics);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateText D3DXCreateTextW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateText D3DXCreateTextA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX8SHAPES_H__
|
||||||
1592
third_party/dx9_sdk/include/d3dx8tex.h
vendored
Normal file
1592
third_party/dx9_sdk/include/d3dx8tex.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
71
third_party/dx9_sdk/include/d3dx9.h
vendored
Normal file
71
third_party/dx9_sdk/include/d3dx9.h
vendored
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9.h
|
||||||
|
// Content: D3DX utility library
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __D3DX_INTERNAL__
|
||||||
|
#error Incorrect D3DX header used
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __D3DX9_H__
|
||||||
|
#define __D3DX9_H__
|
||||||
|
|
||||||
|
|
||||||
|
// Defines
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#define D3DX_DEFAULT ((UINT) -1)
|
||||||
|
#define D3DX_DEFAULT_NONPOW2 ((UINT) -2)
|
||||||
|
#define D3DX_DEFAULT_FLOAT FLT_MAX
|
||||||
|
|
||||||
|
#ifndef D3DXINLINE
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#if (_MSC_VER >= 1200)
|
||||||
|
#define D3DXINLINE __forceinline
|
||||||
|
#else
|
||||||
|
#define D3DXINLINE __inline
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define D3DXINLINE inline
|
||||||
|
#else
|
||||||
|
#define D3DXINLINE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Includes
|
||||||
|
#include "d3d9.h"
|
||||||
|
#include "d3dx9math.h"
|
||||||
|
#include "d3dx9core.h"
|
||||||
|
#include "d3dx9mesh.h"
|
||||||
|
#include "d3dx9tex.h"
|
||||||
|
#include "d3dx9shader.h"
|
||||||
|
#include "d3dx9effect.h"
|
||||||
|
#include "d3dx9shape.h"
|
||||||
|
#include "d3dx9anim.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Errors
|
||||||
|
#define _FACDD 0x876
|
||||||
|
#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
|
||||||
|
|
||||||
|
enum _D3DXERR {
|
||||||
|
D3DXERR_CANNOTMODIFYINDEXBUFFER = MAKE_DDHRESULT(2900),
|
||||||
|
D3DXERR_INVALIDMESH = MAKE_DDHRESULT(2901),
|
||||||
|
D3DXERR_CANNOTATTRSORT = MAKE_DDHRESULT(2902),
|
||||||
|
D3DXERR_SKINNINGNOTSUPPORTED = MAKE_DDHRESULT(2903),
|
||||||
|
D3DXERR_TOOMANYINFLUENCES = MAKE_DDHRESULT(2904),
|
||||||
|
D3DXERR_INVALIDDATA = MAKE_DDHRESULT(2905),
|
||||||
|
D3DXERR_LOADEDMESHASNODATA = MAKE_DDHRESULT(2906),
|
||||||
|
D3DXERR_DUPLICATENAMEDFRAGMENT = MAKE_DDHRESULT(2907),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__D3DX9_H__
|
||||||
|
|
||||||
801
third_party/dx9_sdk/include/d3dx9anim.h
vendored
Normal file
801
third_party/dx9_sdk/include/d3dx9anim.h
vendored
Normal file
@ -0,0 +1,801 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9anim.h
|
||||||
|
// Content: D3DX mesh types and functions
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __D3DX9ANIM_H__
|
||||||
|
#define __D3DX9ANIM_H__
|
||||||
|
|
||||||
|
// {ADE2C06D-3747-4b9f-A514-3440B8284980}
|
||||||
|
DEFINE_GUID(IID_ID3DXInterpolator,
|
||||||
|
0xade2c06d, 0x3747, 0x4b9f, 0xa5, 0x14, 0x34, 0x40, 0xb8, 0x28, 0x49, 0x80);
|
||||||
|
|
||||||
|
// {6CAA71F8-0972-4cdb-A55B-43B968997515}
|
||||||
|
DEFINE_GUID(IID_ID3DXKeyFrameInterpolator,
|
||||||
|
0x6caa71f8, 0x972, 0x4cdb, 0xa5, 0x5b, 0x43, 0xb9, 0x68, 0x99, 0x75, 0x15);
|
||||||
|
|
||||||
|
// {54B569AC-0AEF-473e-9704-3FEF317F64AB}
|
||||||
|
DEFINE_GUID(IID_ID3DXAnimationSet,
|
||||||
|
0x54b569ac, 0xaef, 0x473e, 0x97, 0x4, 0x3f, 0xef, 0x31, 0x7f, 0x64, 0xab);
|
||||||
|
|
||||||
|
// {3A714D34-FF61-421e-909F-639F38356708}
|
||||||
|
DEFINE_GUID(IID_ID3DXAnimationController,
|
||||||
|
0x3a714d34, 0xff61, 0x421e, 0x90, 0x9f, 0x63, 0x9f, 0x38, 0x35, 0x67, 0x8);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ID3DXInterpolator *LPD3DXINTERPOLATOR;
|
||||||
|
typedef struct ID3DXKeyFrameInterpolator *LPD3DXKEYFRAMEINTERPOLATOR;
|
||||||
|
typedef struct ID3DXAnimationSet *LPD3DXANIMATIONSET;
|
||||||
|
typedef struct ID3DXAnimationController *LPD3DXANIMATIONCONTROLLER;
|
||||||
|
|
||||||
|
typedef struct ID3DXAllocateHierarchy *LPD3DXALLOCATEHIERARCHY;
|
||||||
|
typedef struct ID3DXLoadUserData *LPD3DXLOADUSERDATA;
|
||||||
|
typedef struct ID3DXSaveUserData *LPD3DXSAVEUSERDATA;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This enum defines the type of mesh data present in a MeshData structure
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef enum _D3DXMESHDATATYPE {
|
||||||
|
D3DXMESHTYPE_MESH = 0x001, // normal ID3DXMesh data
|
||||||
|
D3DXMESHTYPE_PMESH = 0x002, // Progressive Mesh - ID3DXPMesh
|
||||||
|
D3DXMESHTYPE_PATCHMESH = 0x003, // Patch MEsh - ID3DXPatchMesh
|
||||||
|
|
||||||
|
D3DXMESHTYPE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
|
||||||
|
} D3DXMESHDATATYPE;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This struct encapsulates a the mesh data that can be present in a mesh
|
||||||
|
// container. The supported mesh types are pMesh, pPMesh, pPatchMesh
|
||||||
|
// The valid way to access this is determined by the MeshType enum
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXMESHDATA
|
||||||
|
{
|
||||||
|
D3DXMESHDATATYPE Type;
|
||||||
|
|
||||||
|
// current mesh data interface
|
||||||
|
union
|
||||||
|
{
|
||||||
|
LPD3DXMESH pMesh;
|
||||||
|
LPD3DXPMESH pPMesh;
|
||||||
|
LPD3DXPATCHMESH pPatchMesh;
|
||||||
|
};
|
||||||
|
|
||||||
|
} D3DXMESHDATA, *LPD3DXMESHDATA;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This struct encapsulates a mesh object in a transformation frame
|
||||||
|
// hierarchy. The app can derive from this structure to add other app specific
|
||||||
|
// data to this
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXMESHCONTAINER
|
||||||
|
{
|
||||||
|
LPSTR Name;
|
||||||
|
|
||||||
|
D3DXMESHDATA MeshData;
|
||||||
|
|
||||||
|
LPD3DXMATERIAL pMaterials;
|
||||||
|
LPD3DXEFFECTINSTANCE pEffects;
|
||||||
|
DWORD NumMaterials;
|
||||||
|
DWORD *pAdjacency;
|
||||||
|
|
||||||
|
LPD3DXSKININFO pSkinInfo;
|
||||||
|
|
||||||
|
struct _D3DXMESHCONTAINER *pNextMeshContainer;
|
||||||
|
} D3DXMESHCONTAINER, *LPD3DXMESHCONTAINER;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This struct is the encapsulates a transform frame in a transformation frame
|
||||||
|
// hierarchy. The app can derive from this structure to add other app specific
|
||||||
|
// data to this
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXFRAME
|
||||||
|
{
|
||||||
|
LPSTR Name;
|
||||||
|
D3DXMATRIX TransformationMatrix;
|
||||||
|
|
||||||
|
LPD3DXMESHCONTAINER pMeshContainer;
|
||||||
|
|
||||||
|
struct _D3DXFRAME *pFrameSibling;
|
||||||
|
struct _D3DXFRAME *pFrameFirstChild;
|
||||||
|
} D3DXFRAME, *LPD3DXFRAME;
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXAllocateHierarchy
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface is implemented by the application to allocate/free frame and
|
||||||
|
// mesh container objects. Methods on this are called during loading and
|
||||||
|
// destroying frame hierarchies
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXAllocateHierarchy ////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE(ID3DXAllocateHierarchy)
|
||||||
|
{
|
||||||
|
// ID3DXAllocateHierarchy
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
// CreateFrame:
|
||||||
|
// ------------
|
||||||
|
// Requests allocation of a frame object.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Name
|
||||||
|
// Name of the frame to be created
|
||||||
|
// ppNewFrame
|
||||||
|
// Returns returns the created frame object
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
STDMETHOD(CreateFrame)(THIS_ LPCSTR Name,
|
||||||
|
LPD3DXFRAME *ppNewFrame) PURE;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
// CreateMeshContainer:
|
||||||
|
// --------------------
|
||||||
|
// Requests allocation of a mesh container object.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Name
|
||||||
|
// Name of the mesh
|
||||||
|
// pMesh
|
||||||
|
// Pointer to the mesh object if basic polygon data found
|
||||||
|
// pPMesh
|
||||||
|
// Pointer to the progressive mesh object if progressive mesh data found
|
||||||
|
// pPatchMesh
|
||||||
|
// Pointer to the patch mesh object if patch data found
|
||||||
|
// pMaterials
|
||||||
|
// Array of materials used in the mesh
|
||||||
|
// pEffectInstances
|
||||||
|
// Array of effect instances used in the mesh
|
||||||
|
// NumMaterials
|
||||||
|
// Num elements in the pMaterials array
|
||||||
|
// pAdjacency
|
||||||
|
// Adjacency array for the mesh
|
||||||
|
// pSkinInfo
|
||||||
|
// Pointer to the skininfo object if the mesh is skinned
|
||||||
|
// pBoneNames
|
||||||
|
// Array of names, one for each bone in the skinned mesh.
|
||||||
|
// The numberof bones can be found from the pSkinMesh object
|
||||||
|
// pBoneOffsetMatrices
|
||||||
|
// Array of matrices, one for each bone in the skinned mesh.
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
STDMETHOD(CreateMeshContainer)(THIS_ LPCSTR Name, LPD3DXMESHDATA pMeshData,
|
||||||
|
LPD3DXMATERIAL pMaterials, LPD3DXEFFECTINSTANCE pEffectInstances, DWORD NumMaterials,
|
||||||
|
DWORD *pAdjacency, LPD3DXSKININFO pSkinInfo,
|
||||||
|
LPD3DXMESHCONTAINER *ppNewMeshContainer) PURE;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
// DestroyFrame:
|
||||||
|
// -------------
|
||||||
|
// Requests de-allocation of a frame object.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameToFree
|
||||||
|
// Pointer to the frame to be de-allocated
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME pFrameToFree) PURE;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
// DestroyMeshContainer:
|
||||||
|
// ---------------------
|
||||||
|
// Requests de-allocation of a mesh container object.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pMeshContainerToFree
|
||||||
|
// Pointer to the mesh container object to be de-allocated
|
||||||
|
//
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER pMeshContainerToFree) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface is implemented by the application to load user data in a .X file
|
||||||
|
// When user data is found, these callbacks will be used to allow the application
|
||||||
|
// to load the data
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXLoadUserData ////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE(ID3DXLoadUserData)
|
||||||
|
{
|
||||||
|
STDMETHOD(LoadTopLevelData)(LPDIRECTXFILEDATA pXofChildData) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(LoadFrameChildData)(LPD3DXFRAME pFrame,
|
||||||
|
LPDIRECTXFILEDATA pXofChildData) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(LoadMeshChildData)(LPD3DXMESHCONTAINER pMeshContainer,
|
||||||
|
LPDIRECTXFILEDATA pXofChildData) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface is implemented by the application to save user data in a .X file
|
||||||
|
// The callbacks are called for all data saved. The user can then add any
|
||||||
|
// child data objects to the object provided to the callback
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXSaveUserData /////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE(ID3DXSaveUserData)
|
||||||
|
{
|
||||||
|
STDMETHOD(AddFrameChildData)(LPD3DXFRAME pFrame,
|
||||||
|
LPDIRECTXFILESAVEOBJECT pXofSave,
|
||||||
|
LPDIRECTXFILEDATA pXofFrameData) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(AddMeshChildData)(LPD3DXMESHCONTAINER pMeshContainer,
|
||||||
|
LPDIRECTXFILESAVEOBJECT pXofSave,
|
||||||
|
LPDIRECTXFILEDATA pXofMeshData) PURE;
|
||||||
|
|
||||||
|
// NOTE: this is called once per Save. All top level objects should be added using the
|
||||||
|
// provided interface. One call adds objects before the frame hierarchy, the other after
|
||||||
|
STDMETHOD(AddTopLevelDataObjectsPre)(LPDIRECTXFILESAVEOBJECT pXofSave) PURE;
|
||||||
|
STDMETHOD(AddTopLevelDataObjectsPost)(LPDIRECTXFILESAVEOBJECT pXofSave) PURE;
|
||||||
|
|
||||||
|
// callbacks for the user to register and then save templates to the XFile
|
||||||
|
STDMETHOD(RegisterTemplates)(LPDIRECTXFILE pXFileApi) PURE;
|
||||||
|
STDMETHOD(SaveTemplates)(LPDIRECTXFILESAVEOBJECT pXofSave) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXLoadMeshHierarchyFromX:
|
||||||
|
// ---------------------------
|
||||||
|
// Loads the first frame hierarchy in a .X file.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Filename
|
||||||
|
// Name of the .X file
|
||||||
|
// MeshOptions
|
||||||
|
// Mesh creation options for meshes in the file (see d3dx9mesh.h)
|
||||||
|
// pD3DDevice
|
||||||
|
// D3D9 device on which meshes in the file are created in
|
||||||
|
// pAlloc
|
||||||
|
// Allocation interface used to allocate nodes of the frame hierarchy
|
||||||
|
// pUserDataLoader
|
||||||
|
// Application provided interface to allow loading of user data
|
||||||
|
// ppFrameHierarchy
|
||||||
|
// Returns root node pointer of the loaded frame hierarchy
|
||||||
|
// ppAnimController
|
||||||
|
// Returns pointer to an animation controller corresponding to animation
|
||||||
|
// in the .X file. This is created with default max tracks and events
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshHierarchyFromXA(
|
||||||
|
LPCSTR Filename,
|
||||||
|
DWORD MeshOptions,
|
||||||
|
LPDIRECT3DDEVICE9 pD3DDevice,
|
||||||
|
LPD3DXALLOCATEHIERARCHY pAlloc,
|
||||||
|
LPD3DXLOADUSERDATA pUserDataLoader,
|
||||||
|
LPD3DXFRAME *ppFrameHierarchy,
|
||||||
|
LPD3DXANIMATIONCONTROLLER *ppAnimController
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshHierarchyFromXW(
|
||||||
|
LPCWSTR Filename,
|
||||||
|
DWORD MeshOptions,
|
||||||
|
LPDIRECT3DDEVICE9 pD3DDevice,
|
||||||
|
LPD3DXALLOCATEHIERARCHY pAlloc,
|
||||||
|
LPD3DXLOADUSERDATA pUserDataLoader,
|
||||||
|
LPD3DXFRAME *ppFrameHierarchy,
|
||||||
|
LPD3DXANIMATIONCONTROLLER *ppAnimController
|
||||||
|
);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXW
|
||||||
|
#else
|
||||||
|
#define D3DXLoadMeshHierarchyFromX D3DXLoadMeshHierarchyFromXA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXLoadMeshHierarchyFromXInMemory(
|
||||||
|
LPCVOID Memory,
|
||||||
|
DWORD SizeOfMemory,
|
||||||
|
DWORD MeshOptions,
|
||||||
|
LPDIRECT3DDEVICE9 pD3DDevice,
|
||||||
|
LPD3DXALLOCATEHIERARCHY pAlloc,
|
||||||
|
LPD3DXLOADUSERDATA pUserDataLoader,
|
||||||
|
LPD3DXFRAME *ppFrameHierarchy,
|
||||||
|
LPD3DXANIMATIONCONTROLLER *ppAnimController
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXSaveMeshHierarchyToFile:
|
||||||
|
// ---------------------------
|
||||||
|
// Creates a .X file and saves the mesh hierarchy and corresponding animations
|
||||||
|
// in it
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Filename
|
||||||
|
// Name of the .X file
|
||||||
|
// XFormat
|
||||||
|
// Format of the .X file (text or binary, compressed or not, etc)
|
||||||
|
// pFrameRoot
|
||||||
|
// Root node of the hierarchy to be saved
|
||||||
|
// pAnimController
|
||||||
|
// The animation mixer whose animation sets are to be stored
|
||||||
|
// pUserDataSaver
|
||||||
|
// Application provided interface to allow adding of user data to
|
||||||
|
// data objects saved to .X file
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXSaveMeshHierarchyToFileA(
|
||||||
|
LPCSTR Filename,
|
||||||
|
DWORD XFormat,
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPD3DXANIMATIONCONTROLLER pAnimMixer,
|
||||||
|
LPD3DXSAVEUSERDATA pUserDataSaver
|
||||||
|
);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXSaveMeshHierarchyToFileW(
|
||||||
|
LPCWSTR Filename,
|
||||||
|
DWORD XFormat,
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPD3DXANIMATIONCONTROLLER pAnimMixer,
|
||||||
|
LPD3DXSAVEUSERDATA pUserDataSaver
|
||||||
|
);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileW
|
||||||
|
#else
|
||||||
|
#define D3DXSaveMeshHierarchyToFile D3DXSaveMeshHierarchyToFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameDestroy:
|
||||||
|
// -----------------
|
||||||
|
// Destroys the subtree of frames under the root, including the root
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameRoot
|
||||||
|
// Pointer to the root node
|
||||||
|
// pAlloc
|
||||||
|
// Allocation interface used to de-allocate nodes of the frame hierarchy
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFrameDestroy(
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPD3DXALLOCATEHIERARCHY pAlloc
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameAppendChild:
|
||||||
|
// ---------------------
|
||||||
|
// Add a child frame to a frame
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameParent
|
||||||
|
// Pointer to the parent node
|
||||||
|
// pFrameChild
|
||||||
|
// Pointer to the child node
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFrameAppendChild(
|
||||||
|
LPD3DXFRAME pFrameParent,
|
||||||
|
LPD3DXFRAME pFrameChild
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameFind:
|
||||||
|
// --------------
|
||||||
|
// Finds a frame with the given name. Returns NULL if no frame found.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameRoot
|
||||||
|
// Pointer to the root node
|
||||||
|
// Name
|
||||||
|
// Name of frame to find
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
LPD3DXFRAME WINAPI
|
||||||
|
D3DXFrameFind(
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPCSTR Name
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameRegisterNamedMatrices:
|
||||||
|
// --------------------------
|
||||||
|
// Finds all frames that have non-null names and registers each of those frame
|
||||||
|
// matrices to the given animation mixer
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameRoot
|
||||||
|
// Pointer to the root node
|
||||||
|
// pAnimMixer
|
||||||
|
// Pointer to the animation mixer where the matrices are registered
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFrameRegisterNamedMatrices(
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPD3DXANIMATIONCONTROLLER pAnimMixer
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameNumNamedMatrices:
|
||||||
|
// --------------------------
|
||||||
|
// Counts number of frames in a subtree that have non-null names
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameRoot
|
||||||
|
// Pointer to the root node of the subtree
|
||||||
|
// Return Value:
|
||||||
|
// Count of frames
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
UINT WINAPI
|
||||||
|
D3DXFrameNumNamedMatrices(
|
||||||
|
LPD3DXFRAME pFrameRoot
|
||||||
|
);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFrameCalculateBoundingSphere:
|
||||||
|
// ---------------------------------
|
||||||
|
// Computes the bounding sphere of all the meshes in the frame hierarchy
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFrameRoot
|
||||||
|
// Pointer to the root node
|
||||||
|
// pObjectCenter
|
||||||
|
// Returns the center of the bounding sphere
|
||||||
|
// pObjectRadius
|
||||||
|
// Returns the radius of the bounding sphere
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFrameCalculateBoundingSphere(
|
||||||
|
LPD3DXFRAME pFrameRoot,
|
||||||
|
LPD3DXVECTOR3 pObjectCenter,
|
||||||
|
FLOAT *pObjectRadius
|
||||||
|
);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXInterpolator
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface defines a SRT (scale/rotate/translate) interpolator. This
|
||||||
|
// is an abstract interface. ID3DXKeyFrameInterpolator inherits from this.
|
||||||
|
// An application can implement this for custom SRT interpolator
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXInterpolator /////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE_(ID3DXInterpolator, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXInterpolator
|
||||||
|
STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
|
||||||
|
STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// GetSRT:
|
||||||
|
// -------
|
||||||
|
// Returns the scale, rotation and translation at a given time
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Time
|
||||||
|
// Time at which the interpolator should be queried
|
||||||
|
// pScale
|
||||||
|
// Returns the scale vector
|
||||||
|
// pRotate
|
||||||
|
// Returns the rotation qaternion
|
||||||
|
// pTranslate
|
||||||
|
// Returns the translate vector
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
STDMETHOD(GetSRT)(THIS_ DOUBLE Time, D3DXVECTOR3 *pScale, D3DXQUATERNION *pRotate, D3DXVECTOR3 *pTranslate) PURE;
|
||||||
|
STDMETHOD(GetLastSRT)(THIS_ D3DXVECTOR3 *pScale, D3DXQUATERNION *pRotate, D3DXVECTOR3 *pTranslate) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This structure describes a vector key for use in keyframe animation.
|
||||||
|
// It specifies a vector Value at a given Time. This is used for scale and
|
||||||
|
// translation keys
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXKEY_VECTOR3
|
||||||
|
{
|
||||||
|
FLOAT Time;
|
||||||
|
D3DXVECTOR3 Value;
|
||||||
|
} D3DXKEY_VECTOR3, *LPD3DXKEY_VECTOR3;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This structure describes a quaternion key for use in keyframe animation.
|
||||||
|
// It specifies a quaternion Value at a given Time. This is used for rotation
|
||||||
|
// keys
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXKEY_QUATERNION
|
||||||
|
{
|
||||||
|
FLOAT Time;
|
||||||
|
D3DXQUATERNION Value;
|
||||||
|
} D3DXKEY_QUATERNION, *LPD3DXKEY_QUATERNION;
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXKeyFrameInterpolator
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface implements an SRT (scale/rotate/translate) interpolator
|
||||||
|
// It takes a scattered set of keys and interpolates the transform for any
|
||||||
|
// given time
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXKeyFrameInterpolator /////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE_(ID3DXKeyFrameInterpolator, ID3DXInterpolator)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXInterpolator
|
||||||
|
STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
|
||||||
|
STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetSRT)(THIS_ DOUBLE Time, D3DXVECTOR3 *pScale, D3DXQUATERNION *pRotate, D3DXVECTOR3 *pTranslate) PURE;
|
||||||
|
STDMETHOD(GetLastSRT)(THIS_ D3DXVECTOR3 *pScale, D3DXQUATERNION *pRotate, D3DXVECTOR3 *pTranslate) PURE;
|
||||||
|
|
||||||
|
// ID3DXKeyFrameInterpolator
|
||||||
|
STDMETHOD_(UINT, GetNumScaleKeys)(THIS) PURE;
|
||||||
|
STDMETHOD(GetScaleKeys)(THIS_ LPD3DXKEY_VECTOR3 pKeys) PURE;
|
||||||
|
|
||||||
|
STDMETHOD_(UINT, GetNumRotationKeys)(THIS) PURE;
|
||||||
|
STDMETHOD(GetRotationKeys)(THIS_ LPD3DXKEY_QUATERNION pKeys) PURE;
|
||||||
|
|
||||||
|
STDMETHOD_(UINT, GetNumTranslationKeys)(THIS) PURE;
|
||||||
|
STDMETHOD(GetTranslationKeys)(THIS_ LPD3DXKEY_VECTOR3 pKeys) PURE;
|
||||||
|
|
||||||
|
// the value passed to D3DXCreateKeyFrameInterpolator to scale from the times in LPD3DXKEY_VECTOR3 to global/anim time.
|
||||||
|
STDMETHOD_(DOUBLE, GetSourceTicksPerSecond)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface implements an set of interpolators. The set consists of
|
||||||
|
// interpolators for many nodes for the same animation.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXAnimationSet /////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE_(ID3DXAnimationSet, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXAnimationSet
|
||||||
|
STDMETHOD_(LPCSTR, GetName)(THIS) PURE;
|
||||||
|
STDMETHOD_(DOUBLE, GetPeriod)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD_(UINT, GetNumInterpolators)(THIS) PURE;
|
||||||
|
STDMETHOD(GetInterpolatorByIndex)(THIS_ UINT Index, LPD3DXINTERPOLATOR *ppInterpolator) PURE;
|
||||||
|
STDMETHOD(GetInterpolatorByName)(THIS_ LPCSTR pName, LPD3DXINTERPOLATOR *ppInterpolator) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This structure describes an animation track. A track is a combination
|
||||||
|
// of an animation set (stored separately) and mixing information.
|
||||||
|
// the mixing information consists of the current position, speed, and blending
|
||||||
|
// weight for the track. The Flags field also specifies whether the track
|
||||||
|
// is low or high priority. Tracks with the same priority are blended together
|
||||||
|
// and then the two resulting values are blended using the priority blend factor.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef struct _D3DXTRACK_DESC
|
||||||
|
{
|
||||||
|
DWORD Flags;
|
||||||
|
FLOAT Weight;
|
||||||
|
FLOAT Speed;
|
||||||
|
BOOL Enable;
|
||||||
|
DOUBLE AnimTime;
|
||||||
|
} D3DXTRACK_DESC, *LPD3DXTRACK_DESC;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This enum defines the type of transtion performed on a event that transitions from one value to another
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef enum _D3DXTRACKFLAG {
|
||||||
|
D3DXTF_LOWPRIORITY = 0x000, // This track should be blended with all low priority tracks before mixed with the high priority result
|
||||||
|
D3DXTF_HIGHPRIORITY = 0x001, // This track should be blended with all high priority tracks before mixed with the low priority result
|
||||||
|
|
||||||
|
D3DXTF_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
|
||||||
|
} D3DXTRACKFLAG;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This interface implements the main animation functionality. It connects
|
||||||
|
// animation sets with the transform frames that are being animated. Allows
|
||||||
|
// mixing multiple animations for blended animations or for transistions
|
||||||
|
// It adds also has methods to modify blending parameters over time to
|
||||||
|
// enable smooth transistions and other effects.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// This enum defines the type of transtion performed on a event that transitions from one value to another
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
typedef enum _D3DXTRANSITIONTYPE {
|
||||||
|
D3DXTRANSITION_LINEAR = 0x000, // Linear transition from one value to the next
|
||||||
|
D3DXTRANSITION_EASEINEASEOUT = 0x001, // Ease-In Ease-Out spline transtion from one value to the next
|
||||||
|
|
||||||
|
D3DXTRANSITION_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
|
||||||
|
} D3DXTRANSITIONTYPE;
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXAnimationController //////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
DECLARE_INTERFACE_(ID3DXAnimationController, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// mixing functionality
|
||||||
|
// register outputs of SetTime
|
||||||
|
STDMETHOD(RegisterMatrix)(THIS_ LPCSTR Name, D3DXMATRIX *pMatrix) PURE;
|
||||||
|
|
||||||
|
|
||||||
|
// AnimationSets
|
||||||
|
STDMETHOD_(UINT, GetNumAnimationSets)(THIS) PURE;
|
||||||
|
STDMETHOD(GetAnimationSet)(THIS_ DWORD iAnimationSet, LPD3DXANIMATIONSET *ppAnimSet) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(RegisterAnimationSet)(THIS_ LPD3DXANIMATIONSET pAnimSet) PURE;
|
||||||
|
STDMETHOD(UnregisterAnimationSet)(THIS_ LPD3DXANIMATIONSET pAnimSet) PURE;
|
||||||
|
|
||||||
|
|
||||||
|
// Tracks
|
||||||
|
STDMETHOD_(UINT, GetMaxNumTracks)(THIS) PURE;
|
||||||
|
STDMETHOD(GetTrackDesc)(THIS_ DWORD Track, D3DXTRACK_DESC *pDesc) PURE;
|
||||||
|
STDMETHOD(SetTrackDesc)(THIS_ DWORD Track, D3DXTRACK_DESC *pDesc) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(GetTrackAnimationSet)(THIS_ DWORD Track, LPD3DXANIMATIONSET *ppAnimSet) PURE;
|
||||||
|
STDMETHOD(SetTrackAnimationSet)(THIS_ DWORD Track, LPD3DXANIMATIONSET pAnimSet) PURE;
|
||||||
|
|
||||||
|
// Individual track field access
|
||||||
|
STDMETHOD(SetTrackSpeed)(THIS_ DWORD Track, FLOAT Speed) PURE;
|
||||||
|
STDMETHOD(SetTrackWeight)(THIS_ DWORD Track, FLOAT Weight) PURE;
|
||||||
|
STDMETHOD(SetTrackAnimTime)(THIS_ DWORD Track, DOUBLE AnimTime) PURE;
|
||||||
|
STDMETHOD(SetTrackEnable)(THIS_ DWORD Track, BOOL Enable) PURE;
|
||||||
|
|
||||||
|
// Time
|
||||||
|
STDMETHOD_(DOUBLE, GetTime)(THIS) PURE;
|
||||||
|
STDMETHOD(SetTime)(THIS_ DOUBLE Time) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CloneAnimationController)(THIS_ UINT MaxNumMatrices, UINT MaxNumAnimationSets, UINT MaxNumTracks, UINT MaxNumEvents, LPD3DXANIMATIONCONTROLLER *ppAnimController) PURE;
|
||||||
|
|
||||||
|
STDMETHOD_(UINT, GetMaxNumMatrices)(THIS) PURE;
|
||||||
|
STDMETHOD_(UINT, GetMaxNumEvents)(THIS) PURE;
|
||||||
|
STDMETHOD_(UINT, GetMaxNumAnimationSets)(THIS) PURE;
|
||||||
|
|
||||||
|
// Sequencing abilities
|
||||||
|
STDMETHOD(KeyTrackSpeed)(THIS_ DWORD Track, FLOAT NewSpeed, DOUBLE StartTime, DOUBLE Duration, DWORD Method) PURE;
|
||||||
|
STDMETHOD(KeyTrackWeight)(THIS_ DWORD Track, FLOAT NewWeight, DOUBLE StartTime, DOUBLE Duration, DWORD Method) PURE;
|
||||||
|
STDMETHOD(KeyTrackAnimTime)(THIS_ DWORD Track, DOUBLE NewAnimTime, DOUBLE StartTime) PURE;
|
||||||
|
STDMETHOD(KeyTrackEnable)(THIS_ DWORD Track, BOOL NewEnable, DOUBLE StartTime) PURE;
|
||||||
|
|
||||||
|
// this functions sets the blend weight to be used to blend high and low priority tracks together.
|
||||||
|
// NOTE: this has no effect unless there are active animations on tracks for a given matrix that have both high and low results
|
||||||
|
STDMETHOD_(FLOAT, GetPriorityBlend)(THIS) PURE;
|
||||||
|
STDMETHOD(SetPriorityBlend)(THIS_ FLOAT BlendWeight) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(KeyPriorityBlend)(THIS_ FLOAT NewBlendWeight, DOUBLE StartTime, DOUBLE Duration, DWORD Method) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateKeyFrameInterpolator:
|
||||||
|
// -------------------------------
|
||||||
|
// Creates a SRT key frame interpolator object from the given set of keys
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// ScaleKeys
|
||||||
|
// Array of scale key vectors
|
||||||
|
// NumScaleKeys
|
||||||
|
// Num elements in ScaleKeys array
|
||||||
|
// RotationKeys
|
||||||
|
// Array of rotation key quternions
|
||||||
|
// NumRotationKeys
|
||||||
|
// Num elements in RotationKeys array
|
||||||
|
// TranslateKeys
|
||||||
|
// Array of translation key vectors
|
||||||
|
// NumTranslateKeys
|
||||||
|
// Num elements in TranslateKeys array
|
||||||
|
// ScaleInputTimeBy
|
||||||
|
// All key times are scaled by this factor
|
||||||
|
// ppNewInterpolator
|
||||||
|
// Returns the keyframe interpolator interface
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateKeyFrameInterpolator(LPCSTR Name,
|
||||||
|
LPD3DXKEY_VECTOR3 ScaleKeys, UINT NumScaleKeys,
|
||||||
|
LPD3DXKEY_QUATERNION RotationKeys, UINT NumRotationKeys,
|
||||||
|
LPD3DXKEY_VECTOR3 TranslateKeys, UINT NumTranslateKeys,
|
||||||
|
DOUBLE ScaleInputTimeBy, LPD3DXKEYFRAMEINTERPOLATOR *ppNewInterpolator);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateAnimationSet:
|
||||||
|
// -----------------------
|
||||||
|
// Creates an animtions set interface given a set of interpolators
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Name
|
||||||
|
// Name of the animation set
|
||||||
|
// pInterpolators
|
||||||
|
// Array of interpolators
|
||||||
|
// NumInterpolators
|
||||||
|
// Num elements in the pInterpolators array
|
||||||
|
// ppAnimSet
|
||||||
|
// Returns the animation set interface
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateAnimationSet(LPCSTR Name,
|
||||||
|
LPD3DXINTERPOLATOR *ppInterpolators, UINT NumInterpolators,
|
||||||
|
LPD3DXANIMATIONSET *ppAnimSet);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateAnimationController:
|
||||||
|
// -------------------------
|
||||||
|
// Creates an animtion mixer object
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// MaxNumMatrices
|
||||||
|
// The upper limit for the number of matrices that can be animated by the
|
||||||
|
// the object
|
||||||
|
// MaxNumAnimationSets
|
||||||
|
// The upper limit of the number of animation sets that can be played by
|
||||||
|
// the object
|
||||||
|
// MaxNumTracks
|
||||||
|
// The upper limit of the number of animation sets that can be blended at
|
||||||
|
// any time.
|
||||||
|
// MaxNumEvents
|
||||||
|
// The upper limit of the number of outstanding events that can be
|
||||||
|
// scheduled at once.
|
||||||
|
// ppAnimController
|
||||||
|
// Returns the animation controller interface
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateAnimationController(UINT MaxNumMatrices, UINT MaxNumAnimationSets, UINT MaxNumTracks, UINT MaxNumEvents,
|
||||||
|
LPD3DXANIMATIONCONTROLLER *ppAnimController);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX9ANIM_H__
|
||||||
|
|
||||||
|
|
||||||
572
third_party/dx9_sdk/include/d3dx9core.h
vendored
Normal file
572
third_party/dx9_sdk/include/d3dx9core.h
vendored
Normal file
@ -0,0 +1,572 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9core.h
|
||||||
|
// Content: D3DX core types and functions
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx9.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX9CORE_H__
|
||||||
|
#define __D3DX9CORE_H__
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// D3DX_SDK_VERSION:
|
||||||
|
// -----------------
|
||||||
|
// This identifier is passed to D3DXCheckVersion in order to ensure that an
|
||||||
|
// application was built against the correct header files and lib files.
|
||||||
|
// This number is incremented whenever a header (or other) change would
|
||||||
|
// require applications to be rebuilt. If the version doesn't match,
|
||||||
|
// D3DXCreateVersion will return FALSE. (The number itself has no meaning.)
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define D3DX_VERSION 0x0900
|
||||||
|
#define D3DX_SDK_VERSION 9
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
BOOL WINAPI
|
||||||
|
D3DXCheckVersion(UINT D3DSdkVersion, UINT D3DXSdkVersion);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// D3DXGetDriverLevel:
|
||||||
|
// Returns driver version information:
|
||||||
|
//
|
||||||
|
// 700 - DX7 level driver
|
||||||
|
// 800 - DX8 level driver
|
||||||
|
// 900 - DX9 level driver
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
UINT WINAPI
|
||||||
|
D3DXGetDriverLevel(LPDIRECT3DDEVICE9 pDevice);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXBuffer:
|
||||||
|
// ------------
|
||||||
|
// The buffer object is used by D3DX to return arbitrary size data.
|
||||||
|
//
|
||||||
|
// GetBufferPointer -
|
||||||
|
// Returns a pointer to the beginning of the buffer.
|
||||||
|
//
|
||||||
|
// GetBufferSize -
|
||||||
|
// Returns the size of the buffer, in bytes.
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXBuffer ID3DXBuffer;
|
||||||
|
typedef interface ID3DXBuffer *LPD3DXBUFFER;
|
||||||
|
|
||||||
|
// {932E6A7E-C68E-45dd-A7BF-53D19C86DB1F}
|
||||||
|
DEFINE_GUID(IID_ID3DXBuffer,
|
||||||
|
0x932e6a7e, 0xc68e, 0x45dd, 0xa7, 0xbf, 0x53, 0xd1, 0x9c, 0x86, 0xdb, 0x1f);
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXBuffer
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXBuffer, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBuffer
|
||||||
|
STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXFont:
|
||||||
|
// ----------
|
||||||
|
// Font objects contain the textures and resources needed to render
|
||||||
|
// a specific font on a specific device.
|
||||||
|
//
|
||||||
|
// Begin -
|
||||||
|
// Prepartes device for drawing text. This is optional.. if DrawText
|
||||||
|
// is called outside of Begin/End, it will call Begin and End for you.
|
||||||
|
//
|
||||||
|
// DrawText -
|
||||||
|
// Draws formatted text on a D3D device. Some parameters are
|
||||||
|
// surprisingly similar to those of GDI's DrawText function. See GDI
|
||||||
|
// documentation for a detailed description of these parameters.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// Restores device state to how it was when Begin was called.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXFont ID3DXFont;
|
||||||
|
typedef interface ID3DXFont *LPD3DXFONT;
|
||||||
|
|
||||||
|
|
||||||
|
// {4AAE6B4D-D15F-4909-B09F-8D6AA34AC06B}
|
||||||
|
DEFINE_GUID( IID_ID3DXFont,
|
||||||
|
0x4aae6b4d, 0xd15f, 0x4909, 0xb0, 0x9f, 0x8d, 0x6a, 0xa3, 0x4a, 0xc0, 0x6b);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXFont
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXFont, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXFont
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetLogFont)(THIS_ LOGFONT* pLogFont) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Begin)(THIS) PURE;
|
||||||
|
STDMETHOD_(INT, DrawTextA)(THIS_ LPCSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
|
||||||
|
STDMETHOD_(INT, DrawTextW)(THIS_ LPCWSTR pString, INT Count, LPRECT pRect, DWORD Format, D3DCOLOR Color) PURE;
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef DrawText
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define DrawText DrawTextW
|
||||||
|
#else
|
||||||
|
#define DrawText DrawTextA
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateFont(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
HFONT hFont,
|
||||||
|
LPD3DXFONT* ppFont);
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateFontIndirect(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
CONST LOGFONT* pLogFont,
|
||||||
|
LPD3DXFONT* ppFont);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXSprite:
|
||||||
|
// ------------
|
||||||
|
// This object intends to provide an easy way to drawing sprites using D3D.
|
||||||
|
//
|
||||||
|
// Begin -
|
||||||
|
// Prepares device for drawing sprites
|
||||||
|
//
|
||||||
|
// Draw, DrawAffine, DrawTransform -
|
||||||
|
// Draws a sprite in screen-space. Before transformation, the sprite is
|
||||||
|
// the size of SrcRect, with its top-left corner at the origin (0,0).
|
||||||
|
// The color and alpha channels are modulated by Color.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// Restores device state to how it was when Begin was called.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXSprite ID3DXSprite;
|
||||||
|
typedef interface ID3DXSprite *LPD3DXSPRITE;
|
||||||
|
|
||||||
|
|
||||||
|
// {B07EC84A-8D35-4e86-A9A0-8DFF21D71075}
|
||||||
|
DEFINE_GUID( IID_ID3DXSprite,
|
||||||
|
0xb07ec84a, 0x8d35, 0x4e86, 0xa9, 0xa0, 0x8d, 0xff, 0x21, 0xd7, 0x10, 0x75);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXSprite
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXSprite
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Begin)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Draw)(THIS_ LPDIRECT3DTEXTURE9 pSrcTexture,
|
||||||
|
CONST RECT* pSrcRect, CONST D3DXVECTOR2* pScaling,
|
||||||
|
CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation,
|
||||||
|
CONST D3DXVECTOR2* pTranslation, D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(DrawTransform)(THIS_ LPDIRECT3DTEXTURE9 pSrcTexture,
|
||||||
|
CONST RECT* pSrcRect, CONST D3DXMATRIX* pTransform,
|
||||||
|
D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSprite(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPD3DXSPRITE* ppSprite);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXRenderToSurface:
|
||||||
|
// ---------------------
|
||||||
|
// This object abstracts rendering to surfaces. These surfaces do not
|
||||||
|
// necessarily need to be render targets. If they are not, a compatible
|
||||||
|
// render target is used, and the result copied into surface at end scene.
|
||||||
|
//
|
||||||
|
// BeginScene, EndScene -
|
||||||
|
// Call BeginScene() and EndScene() at the beginning and ending of your
|
||||||
|
// scene. These calls will setup and restore render targets, viewports,
|
||||||
|
// etc..
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct _D3DXRTS_DESC
|
||||||
|
{
|
||||||
|
UINT Width;
|
||||||
|
UINT Height;
|
||||||
|
D3DFORMAT Format;
|
||||||
|
BOOL DepthStencil;
|
||||||
|
D3DFORMAT DepthStencilFormat;
|
||||||
|
|
||||||
|
} D3DXRTS_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef interface ID3DXRenderToSurface ID3DXRenderToSurface;
|
||||||
|
typedef interface ID3DXRenderToSurface *LPD3DXRENDERTOSURFACE;
|
||||||
|
|
||||||
|
|
||||||
|
// {0D014791-8863-4c2c-A1C0-02F3E0C0B653}
|
||||||
|
DEFINE_GUID( IID_ID3DXRenderToSurface,
|
||||||
|
0xd014791, 0x8863, 0x4c2c, 0xa1, 0xc0, 0x2, 0xf3, 0xe0, 0xc0, 0xb6, 0x53);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXRenderToSurface
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXRenderToSurface, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXRenderToSurface
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXRTS_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginScene)(THIS_ LPDIRECT3DSURFACE9 pSurface, CONST D3DVIEWPORT9* pViewport) PURE;
|
||||||
|
STDMETHOD(EndScene)(THIS_ DWORD MipFilter) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateRenderToSurface(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
UINT Width,
|
||||||
|
UINT Height,
|
||||||
|
D3DFORMAT Format,
|
||||||
|
BOOL DepthStencil,
|
||||||
|
D3DFORMAT DepthStencilFormat,
|
||||||
|
LPD3DXRENDERTOSURFACE* ppRenderToSurface);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXRenderToEnvMap:
|
||||||
|
// --------------------
|
||||||
|
// This object abstracts rendering to environment maps. These surfaces
|
||||||
|
// do not necessarily need to be render targets. If they are not, a
|
||||||
|
// compatible render target is used, and the result copied into the
|
||||||
|
// environment map at end scene.
|
||||||
|
//
|
||||||
|
// BeginCube, BeginSphere, BeginHemisphere, BeginParabolic -
|
||||||
|
// This function initiates the rendering of the environment map. As
|
||||||
|
// parameters, you pass the textures in which will get filled in with
|
||||||
|
// the resulting environment map.
|
||||||
|
//
|
||||||
|
// Face -
|
||||||
|
// Call this function to initiate the drawing of each face. For each
|
||||||
|
// environment map, you will call this six times.. once for each face
|
||||||
|
// in D3DCUBEMAP_FACES.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// This will restore all render targets, and if needed compose all the
|
||||||
|
// rendered faces into the environment map surfaces.
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct _D3DXRTE_DESC
|
||||||
|
{
|
||||||
|
UINT Size;
|
||||||
|
UINT MipLevels;
|
||||||
|
D3DFORMAT Format;
|
||||||
|
BOOL DepthStencil;
|
||||||
|
D3DFORMAT DepthStencilFormat;
|
||||||
|
} D3DXRTE_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
typedef interface ID3DXRenderToEnvMap ID3DXRenderToEnvMap;
|
||||||
|
typedef interface ID3DXRenderToEnvMap *LPD3DXRenderToEnvMap;
|
||||||
|
|
||||||
|
|
||||||
|
// {1561135E-BC78-495b-8586-94EA537BD557}
|
||||||
|
DEFINE_GUID( IID_ID3DXRenderToEnvMap,
|
||||||
|
0x1561135e, 0xbc78, 0x495b, 0x85, 0x86, 0x94, 0xea, 0x53, 0x7b, 0xd5, 0x57);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXRenderToEnvMap
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXRenderToEnvMap
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginCube)(THIS_
|
||||||
|
LPDIRECT3DCUBETEXTURE9 pCubeTex) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginSphere)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE9 pTex) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginHemisphere)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE9 pTexZPos,
|
||||||
|
LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(BeginParabolic)(THIS_
|
||||||
|
LPDIRECT3DTEXTURE9 pTexZPos,
|
||||||
|
LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face, DWORD MipFilter) PURE;
|
||||||
|
STDMETHOD(End)(THIS_ DWORD MipFilter) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateRenderToEnvMap(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
UINT Size,
|
||||||
|
UINT MipLevels,
|
||||||
|
D3DFORMAT Format,
|
||||||
|
BOOL DepthStencil,
|
||||||
|
D3DFORMAT DepthStencilFormat,
|
||||||
|
LPD3DXRenderToEnvMap* ppRenderToEnvMap);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXLine:
|
||||||
|
// ------------
|
||||||
|
// This object intends to provide an easy way to draw lines using D3D.
|
||||||
|
//
|
||||||
|
// Begin -
|
||||||
|
// Prepares device for drawing lines
|
||||||
|
//
|
||||||
|
// Draw -
|
||||||
|
// Draws a line strip in screen-space.
|
||||||
|
// Input is in the form of a array defining points on the line strip. of D3DXVECTOR2
|
||||||
|
//
|
||||||
|
// DrawTransform -
|
||||||
|
// Draws a line in screen-space with a specified input transformation matrix.
|
||||||
|
//
|
||||||
|
// End -
|
||||||
|
// Restores device state to how it was when Begin was called.
|
||||||
|
//
|
||||||
|
// SetPattern -
|
||||||
|
// Applies a stipple pattern to the line. Input is one 32-bit
|
||||||
|
// DWORD which describes the stipple pattern. 1 is opaque, 0 is
|
||||||
|
// transparent.
|
||||||
|
//
|
||||||
|
// SetPatternScale -
|
||||||
|
// Stretches the stipple pattern in the u direction. Input is one
|
||||||
|
// floating-point value. 0.0f is no scaling, whereas 1.0f doubles
|
||||||
|
// the length of the stipple pattern.
|
||||||
|
//
|
||||||
|
// SetWidth -
|
||||||
|
// Specifies the thickness of the line in the v direction. Input is
|
||||||
|
// one floating-point value.
|
||||||
|
//
|
||||||
|
// SetAntialias -
|
||||||
|
// Toggles line antialiasing. Input is a BOOL.
|
||||||
|
// TRUE = Antialiasing on.
|
||||||
|
// FALSE = Antialiasing off.
|
||||||
|
//
|
||||||
|
// SetGLLines -
|
||||||
|
// Toggles non-antialiased OpenGL line emulation. Input is a BOOL.
|
||||||
|
// TRUE = OpenGL line emulation on.
|
||||||
|
// FALSE = OpenGL line emulation off.
|
||||||
|
//
|
||||||
|
// OpenGL line: Regular line:
|
||||||
|
// *\ *\
|
||||||
|
// | \ / \
|
||||||
|
// | \ *\ \
|
||||||
|
// *\ \ \ \
|
||||||
|
// \ \ \ \
|
||||||
|
// \ * \ *
|
||||||
|
// \ | \ /
|
||||||
|
// \| *
|
||||||
|
// *
|
||||||
|
//
|
||||||
|
// OnLostDevice, OnResetDevice -
|
||||||
|
// Call OnLostDevice() on this object before calling Reset() on the
|
||||||
|
// device, so that this object can release any stateblocks and video
|
||||||
|
// memory resources. After Reset(), the call OnResetDevice().
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
typedef interface ID3DXLine ID3DXLine;
|
||||||
|
typedef interface ID3DXLine *LPD3DXLINE;
|
||||||
|
|
||||||
|
|
||||||
|
// {72CE4D70-CC40-4143-A896-32E50AD2EF35}
|
||||||
|
DEFINE_GUID( IID_ID3DXLine,
|
||||||
|
0x72ce4d70, 0xcc40, 0x4143, 0xa8, 0x96, 0x32, 0xe5, 0xa, 0xd2, 0xef, 0x35);
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXLine
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXLine, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXLine
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Begin)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(Draw)(THIS_ CONST D3DXVECTOR2 *pVertexList,
|
||||||
|
DWORD dwVertexListCount, D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(DrawTransform)(THIS_ CONST D3DXVECTOR3 *pVertexList,
|
||||||
|
DWORD dwVertexListCount, CONST D3DXMATRIX* pTransform,
|
||||||
|
D3DCOLOR Color) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetPattern)(THIS_ DWORD dwPattern) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetPatternScale)(THIS_ FLOAT fPatternScale) PURE;
|
||||||
|
STDMETHOD_(FLOAT, GetPatternScale)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetWidth)(THIS_ FLOAT fWidth) PURE;
|
||||||
|
STDMETHOD_(FLOAT, GetWidth)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetAntialias)(THIS_ BOOL bAntialias) PURE;
|
||||||
|
STDMETHOD_(BOOL, GetAntialias)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(SetGLLines)(THIS_ BOOL bGLLines) PURE;
|
||||||
|
STDMETHOD_(BOOL, GetGLLines)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateLine(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPD3DXLINE* ppLine);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__D3DX9CORE_H__
|
||||||
|
|
||||||
688
third_party/dx9_sdk/include/d3dx9effect.h
vendored
Normal file
688
third_party/dx9_sdk/include/d3dx9effect.h
vendored
Normal file
@ -0,0 +1,688 @@
|
|||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9effect.h
|
||||||
|
// Content: D3DX effect types and Shaders
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx9.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX9EFFECT_H__
|
||||||
|
#define __D3DX9EFFECT_H__
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFX_DONOTSAVESTATE
|
||||||
|
// This flag is used as a parameter to ID3DXEffect::Begin(). When this flag
|
||||||
|
// is specified, device state is not saved and restored in Begin/End.
|
||||||
|
// D3DXFX_DONOTSAVESHADERSTATE
|
||||||
|
// This flag is used as a parameter to ID3DXEffect::Begin(). When this flag
|
||||||
|
// is specified, shader device state is not saved and restored in Begin/End.
|
||||||
|
// This includes pixel/vertex shaders and shader constants
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define D3DXFX_DONOTSAVESTATE (1 << 0)
|
||||||
|
#define D3DXFX_DONOTSAVESHADERSTATE (1 << 1)
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DX_PARAMETER_SHARED
|
||||||
|
// Indicates that the value of a parameter will be shared with all effects
|
||||||
|
// which share the same namespace. Changing the value in one effect will
|
||||||
|
// change it in all.
|
||||||
|
//
|
||||||
|
// D3DX_PARAMETER_LITERAL
|
||||||
|
// Indicates that the value of this parameter can be treated as literal.
|
||||||
|
// Literal parameters can be marked when the effect is compiled, and their
|
||||||
|
// cannot be changed after the effect is compiled. Shared parameters cannot
|
||||||
|
// be literal.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define D3DX_PARAMETER_SHARED (1 << 0)
|
||||||
|
#define D3DX_PARAMETER_LITERAL (1 << 1)
|
||||||
|
#define D3DX_PARAMETER_ANNOTATION (1 << 2)
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXEFFECT_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXEFFECT_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Creator; // Creator string
|
||||||
|
UINT Parameters; // Number of parameters
|
||||||
|
UINT Techniques; // Number of techniques
|
||||||
|
UINT Functions; // Number of function entrypoints
|
||||||
|
|
||||||
|
} D3DXEFFECT_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXPARAMETER_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXPARAMETER_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name; // Parameter name
|
||||||
|
LPCSTR Semantic; // Parameter semantic
|
||||||
|
D3DXPARAMETER_CLASS Class; // Class
|
||||||
|
D3DXPARAMETER_TYPE Type; // Component type
|
||||||
|
UINT Rows; // Number of rows
|
||||||
|
UINT Columns; // Number of columns
|
||||||
|
UINT Elements; // Number of array elements
|
||||||
|
UINT Annotations; // Number of annotations
|
||||||
|
UINT StructMembers; // Number of structure member sub-parameters
|
||||||
|
DWORD Flags; // D3DX_PARAMETER_* flags
|
||||||
|
UINT Bytes; // Parameter size, in bytes
|
||||||
|
|
||||||
|
} D3DXPARAMETER_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXTECHNIQUE_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXTECHNIQUE_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name; // Technique name
|
||||||
|
UINT Passes; // Number of passes
|
||||||
|
UINT Annotations; // Number of annotations
|
||||||
|
|
||||||
|
} D3DXTECHNIQUE_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXPASS_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXPASS_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name; // Pass name
|
||||||
|
UINT Annotations; // Number of annotations
|
||||||
|
|
||||||
|
DWORD VSVersion; // Vertex shader version (0 in case of NULL shader)
|
||||||
|
DWORD PSVersion; // Pixel shader version (0 in case of NULL shader)
|
||||||
|
|
||||||
|
UINT VSSemanticsUsed;
|
||||||
|
D3DXSEMANTIC VSSemantics[MAXD3DDECLLENGTH];
|
||||||
|
|
||||||
|
UINT PSSemanticsUsed;
|
||||||
|
D3DXSEMANTIC PSSemantics[MAXD3DDECLLENGTH];
|
||||||
|
|
||||||
|
UINT PSSamplersUsed;
|
||||||
|
LPCSTR PSSamplers[16];
|
||||||
|
|
||||||
|
} D3DXPASS_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFUNCTION_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXFUNCTION_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name; // Function name
|
||||||
|
UINT Annotations; // Number of annotations
|
||||||
|
|
||||||
|
} D3DXFUNCTION_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXEffectPool ///////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXEffectPool ID3DXEffectPool;
|
||||||
|
typedef interface ID3DXEffectPool *LPD3DXEFFECTPOOL;
|
||||||
|
|
||||||
|
// {53CA7768-C0D0-4664-8E79-D156E4F5B7E0}
|
||||||
|
DEFINE_GUID( IID_ID3DXEffectPool,
|
||||||
|
0x53ca7768, 0xc0d0, 0x4664, 0x8e, 0x79, 0xd1, 0x56, 0xe4, 0xf5, 0xb7, 0xe0);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXEffectPool
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXEffectPool, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// No public methods
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXBaseEffect ///////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXBaseEffect ID3DXBaseEffect;
|
||||||
|
typedef interface ID3DXBaseEffect *LPD3DXBASEEFFECT;
|
||||||
|
|
||||||
|
// {804EF574-CCC1-4bf6-B06A-B1404ABDEADE}
|
||||||
|
DEFINE_GUID( IID_ID3DXBaseEffect,
|
||||||
|
0x804ef574, 0xccc1, 0x4bf6, 0xb0, 0x6a, 0xb1, 0x40, 0x4a, 0xbd, 0xea, 0xde);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXBaseEffect
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// Descs
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
// Handle operations
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE hParameter, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE hParameter, LPCSTR pSemantic) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE hTechnique, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE hTechnique, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT Index);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR pName);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE hObject, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE hObject, LPCSTR pName) PURE;
|
||||||
|
|
||||||
|
// Get/Set Parameters
|
||||||
|
STDMETHOD(SetValue)(THIS_ D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(GetValue)(THIS_ D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(SetBool)(THIS_ D3DXHANDLE hParameter, BOOL b) PURE;
|
||||||
|
STDMETHOD(GetBool)(THIS_ D3DXHANDLE hParameter, BOOL* pb) PURE;
|
||||||
|
STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hParameter, CONST BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE hParameter, BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetInt)(THIS_ D3DXHANDLE hParameter, INT n) PURE;
|
||||||
|
STDMETHOD(GetInt)(THIS_ D3DXHANDLE hParameter, INT* pn) PURE;
|
||||||
|
STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hParameter, CONST INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE hParameter, INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT f) PURE;
|
||||||
|
STDMETHOD(GetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT* pf) PURE;
|
||||||
|
STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hParameter, CONST FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE hParameter, FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetVector)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(GetVector)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetString)(THIS_ D3DXHANDLE hParameter, LPCSTR pString) PURE;
|
||||||
|
STDMETHOD(GetString)(THIS_ D3DXHANDLE hParameter, LPCSTR* ppString) PURE;
|
||||||
|
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture) PURE;
|
||||||
|
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 *ppTexture) PURE;
|
||||||
|
STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 pPShader) PURE;
|
||||||
|
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 *ppPShader) PURE;
|
||||||
|
STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 pVShader) PURE;
|
||||||
|
STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 *ppVShader) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXEffect ///////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXEffect ID3DXEffect;
|
||||||
|
typedef interface ID3DXEffect *LPD3DXEFFECT;
|
||||||
|
|
||||||
|
// {B589B04A-293D-4516-AF0B-3D7DBCF5AC54}
|
||||||
|
DEFINE_GUID( IID_ID3DXEffect,
|
||||||
|
0xb589b04a, 0x293d, 0x4516, 0xaf, 0xb, 0x3d, 0x7d, 0xbc, 0xf5, 0xac, 0x54);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXEffect
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
|
||||||
|
{
|
||||||
|
// ID3DXBaseEffect
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// Descs
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
// Handle operations
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE hParameter, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE hParameter, LPCSTR pSemantic) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE hTechnique, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE hTechnique, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT Index);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR pName);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE hObject, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE hObject, LPCSTR pName) PURE;
|
||||||
|
|
||||||
|
// Get/Set Parameters
|
||||||
|
STDMETHOD(SetValue)(THIS_ D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(GetValue)(THIS_ D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(SetBool)(THIS_ D3DXHANDLE hParameter, BOOL b) PURE;
|
||||||
|
STDMETHOD(GetBool)(THIS_ D3DXHANDLE hParameter, BOOL* pb) PURE;
|
||||||
|
STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hParameter, CONST BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE hParameter, BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetInt)(THIS_ D3DXHANDLE hParameter, INT n) PURE;
|
||||||
|
STDMETHOD(GetInt)(THIS_ D3DXHANDLE hParameter, INT* pn) PURE;
|
||||||
|
STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hParameter, CONST INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE hParameter, INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT f) PURE;
|
||||||
|
STDMETHOD(GetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT* pf) PURE;
|
||||||
|
STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hParameter, CONST FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE hParameter, FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetVector)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(GetVector)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetString)(THIS_ D3DXHANDLE hParameter, LPCSTR pString) PURE;
|
||||||
|
STDMETHOD(GetString)(THIS_ D3DXHANDLE hParameter, LPCSTR* ppString) PURE;
|
||||||
|
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture) PURE;
|
||||||
|
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 *ppTexture) PURE;
|
||||||
|
STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 pPShader) PURE;
|
||||||
|
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 *ppPShader) PURE;
|
||||||
|
STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 pVShader) PURE;
|
||||||
|
STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 *ppVShader) PURE;
|
||||||
|
// ID3DXBaseEffect
|
||||||
|
|
||||||
|
// Pool
|
||||||
|
STDMETHOD(GetPool)(THIS_ LPD3DXEFFECTPOOL* ppPool) PURE;
|
||||||
|
|
||||||
|
// Selecting and setting a technique
|
||||||
|
STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE hTechnique) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE;
|
||||||
|
STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE hTechnique) PURE;
|
||||||
|
STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE hTechnique, D3DXHANDLE *pTechnique) PURE;
|
||||||
|
STDMETHOD_(BOOL, IsParameterUsed)(THIS_ D3DXHANDLE hParameter, D3DXHANDLE hTechnique) PURE;
|
||||||
|
|
||||||
|
// Using current technique
|
||||||
|
STDMETHOD(Begin)(THIS_ UINT *pPasses, DWORD Flags) PURE;
|
||||||
|
STDMETHOD(Pass)(THIS_ UINT Pass) PURE;
|
||||||
|
STDMETHOD(End)(THIS) PURE;
|
||||||
|
|
||||||
|
// Managing D3D Device
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
STDMETHOD(OnLostDevice)(THIS) PURE;
|
||||||
|
STDMETHOD(OnResetDevice)(THIS) PURE;
|
||||||
|
|
||||||
|
// Cloning
|
||||||
|
STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE9 pDevice, LPD3DXEFFECT* ppEffect) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ID3DXEffectCompiler ///////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef interface ID3DXEffectCompiler ID3DXEffectCompiler;
|
||||||
|
typedef interface ID3DXEffectCompiler *LPD3DXEFFECTCOMPILER;
|
||||||
|
|
||||||
|
// {F8EE90D3-FCC6-4f14-8AE8-6374AE968E33}
|
||||||
|
DEFINE_GUID( IID_ID3DXEffectCompiler,
|
||||||
|
0xf8ee90d3, 0xfcc6, 0x4f14, 0x8a, 0xe8, 0x63, 0x74, 0xae, 0x96, 0x8e, 0x33);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXEffectCompiler
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
|
||||||
|
{
|
||||||
|
// ID3DXBaseEffect
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// Descs
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) PURE;
|
||||||
|
STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) PURE;
|
||||||
|
|
||||||
|
// Handle operations
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE hParameter, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE hParameter, LPCSTR pSemantic) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE hTechnique, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE hTechnique, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT Index);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR pName);
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE hObject, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE hObject, LPCSTR pName) PURE;
|
||||||
|
|
||||||
|
// Get/Set Parameters
|
||||||
|
STDMETHOD(SetValue)(THIS_ D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(GetValue)(THIS_ D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(SetBool)(THIS_ D3DXHANDLE hParameter, BOOL b) PURE;
|
||||||
|
STDMETHOD(GetBool)(THIS_ D3DXHANDLE hParameter, BOOL* pb) PURE;
|
||||||
|
STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hParameter, CONST BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE hParameter, BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetInt)(THIS_ D3DXHANDLE hParameter, INT n) PURE;
|
||||||
|
STDMETHOD(GetInt)(THIS_ D3DXHANDLE hParameter, INT* pn) PURE;
|
||||||
|
STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hParameter, CONST INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE hParameter, INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT f) PURE;
|
||||||
|
STDMETHOD(GetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT* pf) PURE;
|
||||||
|
STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hParameter, CONST FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE hParameter, FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetVector)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(GetVector)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetString)(THIS_ D3DXHANDLE hParameter, LPCSTR pString) PURE;
|
||||||
|
STDMETHOD(GetString)(THIS_ D3DXHANDLE hParameter, LPCSTR* ppString) PURE;
|
||||||
|
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture) PURE;
|
||||||
|
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 *ppTexture) PURE;
|
||||||
|
STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 pPShader) PURE;
|
||||||
|
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 *ppPShader) PURE;
|
||||||
|
STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 pVShader) PURE;
|
||||||
|
STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 *ppVShader) PURE;
|
||||||
|
// ID3DXBaseEffect
|
||||||
|
|
||||||
|
// Parameter sharing, specialization, and information
|
||||||
|
STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE hParameter, BOOL Literal) PURE;
|
||||||
|
STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE hParameter, BOOL *pLiteral) PURE;
|
||||||
|
|
||||||
|
// Compilation
|
||||||
|
STDMETHOD(CompileEffect)(THIS_ DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppEffect, LPD3DXBUFFER* ppErrorMsgs) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(CompileShader)(THIS_ D3DXHANDLE hFunction, LPCSTR pTarget, DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader, LPD3DXBUFFER* ppErrorMsgs, LPD3DXCONSTANTTABLE* ppConstantTable) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// APIs //////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateEffectPool:
|
||||||
|
// ---------------------
|
||||||
|
// Creates an effect pool. Pools are used for sharing parameters between
|
||||||
|
// multiple effects. For all effects within a pool, shared parameters of the
|
||||||
|
// same name all share the same value.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// ppPool
|
||||||
|
// Returns the created pool.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectPool(
|
||||||
|
LPD3DXEFFECTPOOL* ppPool);
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateEffect:
|
||||||
|
// -----------------
|
||||||
|
// Creates an effect from an ascii or binary effect description.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pDevice
|
||||||
|
// Pointer of the device on which to create the effect
|
||||||
|
// pSrcFile
|
||||||
|
// Name of the file containing the effect description
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used.
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to effect description
|
||||||
|
// SrcDataSize
|
||||||
|
// Size of the effect description in bytes
|
||||||
|
// pDefines
|
||||||
|
// Optional NULL-terminated array of preprocessor macro definitions.
|
||||||
|
// pInclude
|
||||||
|
// Optional interface pointer to use for handling #include directives.
|
||||||
|
// If this parameter is NULL, #includes will be honored when compiling
|
||||||
|
// from file, and will error when compiling from resource or memory.
|
||||||
|
// pPool
|
||||||
|
// Pointer to ID3DXEffectPool object to use for shared parameters.
|
||||||
|
// If NULL, no parameters will be shared.
|
||||||
|
// ppEffect
|
||||||
|
// Returns a buffer containing created effect.
|
||||||
|
// ppCompilationErrors
|
||||||
|
// Returns a buffer containing any error messages which occurred during
|
||||||
|
// compile. Or NULL if you do not care about the error messages.
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromFileA(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTPOOL pPool,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromFileW(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTPOOL pPool,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectFromFile D3DXCreateEffectFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromResourceA(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTPOOL pPool,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectFromResourceW(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTPOOL pPool,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectFromResource D3DXCreateEffectFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffect(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPCVOID pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTPOOL pPool,
|
||||||
|
LPD3DXEFFECT* ppEffect,
|
||||||
|
LPD3DXBUFFER* ppCompilationErrors);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateEffectCompiler:
|
||||||
|
// -------------------------
|
||||||
|
// Creates an effect from an ascii or binary effect description.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pSrcFile
|
||||||
|
// Name of the file containing the effect description
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used.
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to effect description
|
||||||
|
// SrcDataSize
|
||||||
|
// Size of the effect description in bytes
|
||||||
|
// pDefines
|
||||||
|
// Optional NULL-terminated array of preprocessor macro definitions.
|
||||||
|
// pInclude
|
||||||
|
// Optional interface pointer to use for handling #include directives.
|
||||||
|
// If this parameter is NULL, #includes will be honored when compiling
|
||||||
|
// from file, and will error when compiling from resource or memory.
|
||||||
|
// pPool
|
||||||
|
// Pointer to ID3DXEffectPool object to use for shared parameters.
|
||||||
|
// If NULL, no parameters will be shared.
|
||||||
|
// ppCompiler
|
||||||
|
// Returns a buffer containing created effect compiler.
|
||||||
|
// ppParseErrors
|
||||||
|
// Returns a buffer containing any error messages which occurred during
|
||||||
|
// parse. Or NULL if you do not care about the error messages.
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectCompilerFromFileA(
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTCOMPILER* ppCompiler,
|
||||||
|
LPD3DXBUFFER* ppParseErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectCompilerFromFileW(
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTCOMPILER* ppCompiler,
|
||||||
|
LPD3DXBUFFER* ppParseErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectCompilerFromFile D3DXCreateEffectCompilerFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectCompilerFromFile D3DXCreateEffectCompilerFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectCompilerFromResourceA(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTCOMPILER* ppCompiler,
|
||||||
|
LPD3DXBUFFER* ppParseErrors);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectCompilerFromResourceW(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTCOMPILER* ppCompiler,
|
||||||
|
LPD3DXBUFFER* ppParseErrors);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateEffectCompilerFromResource D3DXCreateEffectCompilerFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateEffectCompilerFromResource D3DXCreateEffectCompilerFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateEffectCompiler(
|
||||||
|
LPCSTR pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXEFFECTCOMPILER* ppCompiler,
|
||||||
|
LPD3DXBUFFER* ppParseErrors);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX9EFFECT_H__
|
||||||
|
|
||||||
|
|
||||||
1389
third_party/dx9_sdk/include/d3dx9math.h
vendored
Normal file
1389
third_party/dx9_sdk/include/d3dx9math.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2165
third_party/dx9_sdk/include/d3dx9math.inl
vendored
Normal file
2165
third_party/dx9_sdk/include/d3dx9math.inl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1347
third_party/dx9_sdk/include/d3dx9mesh.h
vendored
Normal file
1347
third_party/dx9_sdk/include/d3dx9mesh.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
905
third_party/dx9_sdk/include/d3dx9shader.h
vendored
Normal file
905
third_party/dx9_sdk/include/d3dx9shader.h
vendored
Normal file
@ -0,0 +1,905 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9shader.h
|
||||||
|
// Content: D3DX Shader APIs
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx9.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX9SHADER_H__
|
||||||
|
#define __D3DX9SHADER_H__
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// D3DXTX_VERSION:
|
||||||
|
// --------------
|
||||||
|
// Version token used to create a procedural texture filler in effects
|
||||||
|
// Used by D3DXFill[]TX functions
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#define D3DXTX_VERSION(_Major,_Minor) (('T' << 24) | ('X' << 16) | ((_Major) << 8) | (_Minor))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXSHADER flags:
|
||||||
|
// -----------------
|
||||||
|
// D3DXSHADER_DEBUG
|
||||||
|
// Insert debug file/line/type/symbol information.
|
||||||
|
//
|
||||||
|
// D3DXSHADER_SKIPVALIDATION
|
||||||
|
// Do not validate the generated code against known capabilities and
|
||||||
|
// constraints. This option is only recommended when compiling shaders
|
||||||
|
// you KNOW will work. (ie. have compiled before without this option.)
|
||||||
|
// Shaders are always validated by D3D before they are set to the device.
|
||||||
|
//
|
||||||
|
// D3DXSHADER_SKIPOPTIMIZATION (valid for D3DXCompileShader calls only)
|
||||||
|
// Instructs the compiler to skip optimization steps during code generation.
|
||||||
|
// Unless you are trying to isolate a problem in your code, and suspect the
|
||||||
|
// compiler, using this option is not recommended.
|
||||||
|
//
|
||||||
|
// D3DXSHADER_PACKMATRIX_ROWMAJOR
|
||||||
|
// Unless explicitly specified, matrices will be packed in row-major order
|
||||||
|
// on input and output from the shader.
|
||||||
|
//
|
||||||
|
// D3DXSHADER_PACKMATRIX_COLUMNMAJOR
|
||||||
|
// Unless explicitly specified, matrices will be packed in column-major
|
||||||
|
// order on input and output from the shader. This is generally more
|
||||||
|
// efficient, since it allows vector-matrix multiplication to be performed
|
||||||
|
// using a series of dot-products.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define D3DXSHADER_DEBUG (1 << 0)
|
||||||
|
#define D3DXSHADER_SKIPVALIDATION (1 << 2)
|
||||||
|
#define D3DXSHADER_SKIPOPTIMIZATION (1 << 3)
|
||||||
|
#define D3DXSHADER_PACKMATRIX_ROWMAJOR (1 << 4)
|
||||||
|
#define D3DXSHADER_PACKMATRIX_COLUMNMAJOR (1 << 5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXHANDLE:
|
||||||
|
// -----------
|
||||||
|
// Handle values used to efficiently reference shader and effect parameters.
|
||||||
|
// Strings can be used as handles. However, handles are not always strings.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef LPCSTR D3DXHANDLE;
|
||||||
|
typedef D3DXHANDLE *LPD3DXHANDLE;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXMACRO:
|
||||||
|
// ----------
|
||||||
|
// Preprocessor macro definition. The application pass in a NULL-terminated
|
||||||
|
// array of this structure to various D3DX APIs. This enables the application
|
||||||
|
// to #define tokens at runtime, before the file is parsed.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXMACRO
|
||||||
|
{
|
||||||
|
LPCSTR Name;
|
||||||
|
LPCSTR Definition;
|
||||||
|
|
||||||
|
} D3DXMACRO, *LPD3DXMACRO;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXSEMANTIC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXSEMANTIC
|
||||||
|
{
|
||||||
|
UINT Usage;
|
||||||
|
UINT UsageIndex;
|
||||||
|
|
||||||
|
} D3DXSEMANTIC, *LPD3DXSEMANTIC;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFRAGMENT_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXFRAGMENT_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name;
|
||||||
|
DWORD Target;
|
||||||
|
|
||||||
|
} D3DXFRAGMENT_DESC, *LPD3DXFRAGMENT_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXREGISTER_SET:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum _D3DXREGISTER_SET
|
||||||
|
{
|
||||||
|
D3DXRS_BOOL,
|
||||||
|
D3DXRS_INT4,
|
||||||
|
D3DXRS_FLOAT4,
|
||||||
|
D3DXRS_SAMPLER,
|
||||||
|
|
||||||
|
// force 32-bit size enum
|
||||||
|
D3DXRS_FORCE_DWORD = 0x7fffffff
|
||||||
|
|
||||||
|
} D3DXREGISTER_SET, *LPD3DXREGISTER_SET;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXPARAMETER_CLASS:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum _D3DXPARAMETER_CLASS
|
||||||
|
{
|
||||||
|
D3DXPC_SCALAR,
|
||||||
|
D3DXPC_VECTOR,
|
||||||
|
D3DXPC_MATRIX_ROWS,
|
||||||
|
D3DXPC_MATRIX_COLUMNS,
|
||||||
|
D3DXPC_OBJECT,
|
||||||
|
D3DXPC_STRUCT,
|
||||||
|
|
||||||
|
// force 32-bit size enum
|
||||||
|
D3DXPC_FORCE_DWORD = 0x7fffffff
|
||||||
|
|
||||||
|
} D3DXPARAMETER_CLASS, *LPD3DXPARAMETER_CLASS;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXPARAMETER_TYPE:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum _D3DXPARAMETER_TYPE
|
||||||
|
{
|
||||||
|
D3DXPT_VOID,
|
||||||
|
D3DXPT_BOOL,
|
||||||
|
D3DXPT_INT,
|
||||||
|
D3DXPT_FLOAT,
|
||||||
|
D3DXPT_STRING,
|
||||||
|
D3DXPT_TEXTURE,
|
||||||
|
D3DXPT_TEXTURE1D,
|
||||||
|
D3DXPT_TEXTURE2D,
|
||||||
|
D3DXPT_TEXTURE3D,
|
||||||
|
D3DXPT_TEXTURECUBE,
|
||||||
|
D3DXPT_SAMPLER,
|
||||||
|
D3DXPT_SAMPLER1D,
|
||||||
|
D3DXPT_SAMPLER2D,
|
||||||
|
D3DXPT_SAMPLER3D,
|
||||||
|
D3DXPT_SAMPLERCUBE,
|
||||||
|
D3DXPT_PIXELSHADER,
|
||||||
|
D3DXPT_VERTEXSHADER,
|
||||||
|
D3DXPT_PIXELFRAGMENT,
|
||||||
|
D3DXPT_VERTEXFRAGMENT,
|
||||||
|
|
||||||
|
// force 32-bit size enum
|
||||||
|
D3DXPT_FORCE_DWORD = 0x7fffffff
|
||||||
|
|
||||||
|
} D3DXPARAMETER_TYPE, *LPD3DXPARAMETER_TYPE;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCONSTANTTABLE_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXCONSTANTTABLE_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Creator; // Creator string
|
||||||
|
DWORD Version; // Shader version
|
||||||
|
UINT Constants; // Number of constants
|
||||||
|
|
||||||
|
} D3DXCONSTANTTABLE_DESC, *LPD3DXCONSTANTTABLE_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCONSTANT_DESC:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXCONSTANT_DESC
|
||||||
|
{
|
||||||
|
LPCSTR Name; // Constant name
|
||||||
|
|
||||||
|
D3DXREGISTER_SET RegisterSet; // Register set
|
||||||
|
UINT RegisterIndex; // Register index
|
||||||
|
UINT RegisterCount; // Number of registers occupied
|
||||||
|
|
||||||
|
D3DXPARAMETER_CLASS Class; // Class
|
||||||
|
D3DXPARAMETER_TYPE Type; // Component type
|
||||||
|
|
||||||
|
UINT Rows; // Number of rows
|
||||||
|
UINT Columns; // Number of columns
|
||||||
|
UINT Elements; // Number of array elements
|
||||||
|
UINT StructMembers; // Number of structure member sub-parameters
|
||||||
|
|
||||||
|
UINT Bytes; // Data size, in bytes
|
||||||
|
LPCVOID DefaultValue; // Pointer to default value
|
||||||
|
|
||||||
|
} D3DXCONSTANT_DESC, *LPD3DXCONSTANT_DESC;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// ID3DXConstantTable:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef interface ID3DXConstantTable ID3DXConstantTable;
|
||||||
|
typedef interface ID3DXConstantTable *LPD3DXCONSTANTTABLE;
|
||||||
|
|
||||||
|
// {9DCA3190-38B9-4fc3-92E3-39C6DDFB358B}
|
||||||
|
DEFINE_GUID( IID_ID3DXConstantTable,
|
||||||
|
0x9dca3190, 0x38b9, 0x4fc3, 0x92, 0xe3, 0x39, 0xc6, 0xdd, 0xfb, 0x35, 0x8b);
|
||||||
|
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXConstantTable
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXConstantTable, ID3DXBuffer)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXBuffer
|
||||||
|
STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetBufferSize)(THIS) PURE;
|
||||||
|
|
||||||
|
// Descs
|
||||||
|
STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
|
||||||
|
STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
|
||||||
|
|
||||||
|
// Handle operations
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, LPCSTR pName) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
|
||||||
|
|
||||||
|
// Set Constants
|
||||||
|
STDMETHOD(SetDefaults)(THIS_ LPDIRECT3DDEVICE9 pDevice) PURE;
|
||||||
|
STDMETHOD(SetValue)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, LPCVOID pData, UINT Bytes) PURE;
|
||||||
|
STDMETHOD(SetBool)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, BOOL b) PURE;
|
||||||
|
STDMETHOD(SetBoolArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST BOOL* pb, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetInt)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, INT n) PURE;
|
||||||
|
STDMETHOD(SetIntArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST INT* pn, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetFloat)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, FLOAT f) PURE;
|
||||||
|
STDMETHOD(SetFloatArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST FLOAT* pf, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetVector)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector) PURE;
|
||||||
|
STDMETHOD(SetVectorArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrix)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixPointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTranspose)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposeArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
|
||||||
|
STDMETHOD(SetMatrixTransposePointerArray)(THIS_ LPDIRECT3DDEVICE9 pDevice, D3DXHANDLE hConstant, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// ID3DXFragmentLinker
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXFragmentLinker
|
||||||
|
|
||||||
|
// {D59D3777-C973-4a3c-B4B0-2A62CD3D8B40}
|
||||||
|
DEFINE_GUID(IID_ID3DXFragmentLinker,
|
||||||
|
0xd59d3777, 0xc973, 0x4a3c, 0xb4, 0xb0, 0x2a, 0x62, 0xcd, 0x3d, 0x8b, 0x40);
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXFragmentLinker, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
||||||
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXFragmentLinker
|
||||||
|
|
||||||
|
// fragment access and information retrieval functions
|
||||||
|
STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
|
||||||
|
STDMETHOD_(UINT, GetNumberOfFragments)(THIS) PURE;
|
||||||
|
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFragmentHandleByIndex)(THIS_ UINT Index) PURE;
|
||||||
|
STDMETHOD_(D3DXHANDLE, GetFragmentHandleByName)(THIS_ LPCSTR Name) PURE;
|
||||||
|
STDMETHOD(GetFragmentDesc)(THIS_ D3DXHANDLE Name, LPD3DXFRAGMENT_DESC FragDesc) PURE;
|
||||||
|
|
||||||
|
// add the fragments in the buffer to the linker
|
||||||
|
STDMETHOD(AddFragments)(THIS_ CONST DWORD *Fragments) PURE;
|
||||||
|
|
||||||
|
// Create a buffer containing the fragments. Suitable for saving to disk
|
||||||
|
STDMETHOD(GetAllFragments)(THIS_ LPD3DXBUFFER *ppBuffer) PURE;
|
||||||
|
STDMETHOD(GetFragment)(THIS_ D3DXHANDLE Name, LPD3DXBUFFER *ppBuffer) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(LinkShader)(THIS_ LPCSTR pTarget, DWORD Flags, LPD3DXHANDLE rgFragmentHandles, UINT cFragments, LPD3DXBUFFER *ppBuffer, LPD3DXBUFFER *ppErrorMsgs) PURE;
|
||||||
|
STDMETHOD(LinkVertexShader)(THIS_ LPCSTR pTarget, DWORD Flags, LPD3DXHANDLE rgFragmentHandles, UINT cFragments, LPDIRECT3DVERTEXSHADER9 *pVShader, LPD3DXBUFFER *ppErrorMsgs) PURE;
|
||||||
|
|
||||||
|
STDMETHOD(ClearCache)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXINCLUDE_TYPE:
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef enum _D3DXINCLUDE_TYPE
|
||||||
|
{
|
||||||
|
D3DXINC_LOCAL,
|
||||||
|
D3DXINC_SYSTEM,
|
||||||
|
|
||||||
|
// force 32-bit size enum
|
||||||
|
D3DXINC_FORCE_DWORD = 0x7fffffff
|
||||||
|
|
||||||
|
} D3DXINCLUDE_TYPE, *LPD3DXINCLUDE_TYPE;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// ID3DXInclude:
|
||||||
|
// -------------
|
||||||
|
// This interface is intended to be implemented by the application, and can
|
||||||
|
// be used by various D3DX APIs. This enables application-specific handling
|
||||||
|
// of #include directives in source files.
|
||||||
|
//
|
||||||
|
// Open()
|
||||||
|
// Opens an include file. If successful, it should fill in ppData and
|
||||||
|
// pBytes. The data pointer returned must remain valid until Close is
|
||||||
|
// subsequently called.
|
||||||
|
// Close()
|
||||||
|
// Closes an include file. If Open was successful, Close is guaranteed
|
||||||
|
// to be called before the API using this interface returns.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef interface ID3DXInclude ID3DXInclude;
|
||||||
|
typedef interface ID3DXInclude *LPD3DXINCLUDE;
|
||||||
|
|
||||||
|
#undef INTERFACE
|
||||||
|
#define INTERFACE ID3DXInclude
|
||||||
|
|
||||||
|
DECLARE_INTERFACE(ID3DXInclude)
|
||||||
|
{
|
||||||
|
STDMETHOD(Open)(D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;
|
||||||
|
STDMETHOD(Close)(LPCVOID pData) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// APIs //////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXAssembleShader:
|
||||||
|
// -------------------
|
||||||
|
// Assembles a shader.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pSrcFile
|
||||||
|
// Source file name
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to source code
|
||||||
|
// SrcDataLen
|
||||||
|
// Size of source code, in bytes
|
||||||
|
// pDefines
|
||||||
|
// Optional NULL-terminated array of preprocessor macro definitions.
|
||||||
|
// pInclude
|
||||||
|
// Optional interface pointer to use for handling #include directives.
|
||||||
|
// If this parameter is NULL, #includes will be honored when assembling
|
||||||
|
// from file, and will error when assembling from resource or memory.
|
||||||
|
// Flags
|
||||||
|
// See D3DXSHADER_xxx flags
|
||||||
|
// ppShader
|
||||||
|
// Returns a buffer containing the created shader. This buffer contains
|
||||||
|
// the assembled shader code, as well as any embedded debug info.
|
||||||
|
// (See D3DXGetShaderDebugInfo)
|
||||||
|
// ppErrorMsgs
|
||||||
|
// Returns a buffer containing a listing of errors and warnings that were
|
||||||
|
// encountered during assembly. If you are running in a debugger,
|
||||||
|
// these are the same messages you will see in your debug output.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromFileA(
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromFileW(
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXAssembleShaderFromFile D3DXAssembleShaderFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromResourceA(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShaderFromResourceW(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXAssembleShaderFromResource D3DXAssembleShaderFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXAssembleShader(
|
||||||
|
LPCSTR pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCompileShader:
|
||||||
|
// ------------------
|
||||||
|
// Compiles a shader.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pSrcFile
|
||||||
|
// Source file name.
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used.
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module.
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to source code.
|
||||||
|
// SrcDataLen
|
||||||
|
// Size of source code, in bytes.
|
||||||
|
// pDefines
|
||||||
|
// Optional NULL-terminated array of preprocessor macro definitions.
|
||||||
|
// pInclude
|
||||||
|
// Optional interface pointer to use for handling #include directives.
|
||||||
|
// If this parameter is NULL, #includes will be honored when compiling
|
||||||
|
// from file, and will error when compiling from resource or memory.
|
||||||
|
// pFunctionName
|
||||||
|
// Name of the entrypoint function where execution should begin.
|
||||||
|
// pTarget
|
||||||
|
// Instruction set to be used when generating code. Currently supported
|
||||||
|
// targets are "vs_1_1", "vs_2_0", "vs_2_sw", "ps_1_1", "ps_1_2", "ps_1_3",
|
||||||
|
// "ps_1_4", "ps_2_0", "ps_2_sw", "tx_1_0"
|
||||||
|
// Flags
|
||||||
|
// See D3DXSHADER_xxx flags.
|
||||||
|
// ppShader
|
||||||
|
// Returns a buffer containing the created shader. This buffer contains
|
||||||
|
// the compiled shader code, as well as any embedded debug and symbol
|
||||||
|
// table info. (See D3DXGetShaderDebugInfo, D3DXGetShaderConstantTable)
|
||||||
|
// ppErrorMsgs
|
||||||
|
// Returns a buffer containing a listing of errors and warnings that were
|
||||||
|
// encountered during the compile. If you are running in a debugger,
|
||||||
|
// these are the same messages you will see in your debug output.
|
||||||
|
// ppConstantTable
|
||||||
|
// Returns a ID3DXConstantTable object which can be used to set
|
||||||
|
// shader constants to the device. Alternatively, an application can
|
||||||
|
// parse the D3DXSHADER_CONSTANTTABLE block embedded as a comment within
|
||||||
|
// the shader.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCompileShaderFromFileA(
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
LPCSTR pFunctionName,
|
||||||
|
LPCSTR pTarget,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCompileShaderFromFileW(
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
LPCSTR pFunctionName,
|
||||||
|
LPCSTR pTarget,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCompileShaderFromFile D3DXCompileShaderFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXCompileShaderFromFile D3DXCompileShaderFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCompileShaderFromResourceA(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
LPCSTR pFunctionName,
|
||||||
|
LPCSTR pTarget,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCompileShaderFromResourceW(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
LPCSTR pFunctionName,
|
||||||
|
LPCSTR pTarget,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCompileShaderFromResource D3DXCompileShaderFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXCompileShaderFromResource D3DXCompileShaderFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCompileShader(
|
||||||
|
LPCSTR pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
LPCSTR pFunctionName,
|
||||||
|
LPCSTR pTarget,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXFindShaderComment:
|
||||||
|
// ----------------------
|
||||||
|
// Searches through a shader for a particular comment, denoted by a FourCC in
|
||||||
|
// the first DWORD of the comment. If the comment is not found, and no other
|
||||||
|
// error has occurred, S_FALSE is returned.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFunction
|
||||||
|
// Pointer to the function DWORD stream
|
||||||
|
// FourCC
|
||||||
|
// FourCC used to identify the desired comment block.
|
||||||
|
// ppData
|
||||||
|
// Returns a pointer to the comment data (not including comment token
|
||||||
|
// and FourCC). Can be NULL.
|
||||||
|
// pSizeInBytes
|
||||||
|
// Returns the size of the comment data in bytes. Can be NULL.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXFindShaderComment(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
DWORD FourCC,
|
||||||
|
LPCVOID* ppData,
|
||||||
|
UINT* pSizeInBytes);
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXGetShaderSemantics:
|
||||||
|
// -----------------------
|
||||||
|
// Gets semantics for all input elements referenced inside a given shader.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFunction
|
||||||
|
// Pointer to the function DWORD stream
|
||||||
|
// pSemantics
|
||||||
|
// Pointer to an array of D3DXSEMANTIC structures. The function will
|
||||||
|
// fill this array with the semantics for each input element referenced
|
||||||
|
// inside the shader. This array is assumed to contain at least
|
||||||
|
// MAXD3DDECLLENGTH elements.
|
||||||
|
// pCount
|
||||||
|
// Returns the number of elements referenced by the shader
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetShaderInputSemantics(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
D3DXSEMANTIC* pSemantics,
|
||||||
|
UINT* pCount);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetShaderOutputSemantics(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
D3DXSEMANTIC* pSemantics,
|
||||||
|
UINT* pCount);
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXGetShaderSamplers:
|
||||||
|
// ----------------------
|
||||||
|
// Gets semantics for all input elements referenced inside a given shader.
|
||||||
|
//
|
||||||
|
// pFunction
|
||||||
|
// Pointer to the function DWORD stream
|
||||||
|
// pSamplers
|
||||||
|
// Pointer to an array of LPCSTRs. The function will fill this array
|
||||||
|
// with pointers to the sampler names contained within pFunction, for
|
||||||
|
// each sampler referenced inside the shader. This array is assumed to
|
||||||
|
// contain at least 16 elements.
|
||||||
|
// pCount
|
||||||
|
// Returns the number of samplers referenced by the shader
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetShaderSamplers(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
LPCSTR* pSamplers,
|
||||||
|
UINT* pCount);
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXGetShaderConstantTable:
|
||||||
|
// ---------------------------
|
||||||
|
// Gets shader constant table embedded inside shader. A constant table is
|
||||||
|
// generated by D3DXAssembleShader and D3DXCompileShader, and is embedded in
|
||||||
|
// the body of the shader.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFunction
|
||||||
|
// Pointer to the function DWORD stream
|
||||||
|
// ppConstantTable
|
||||||
|
// Returns a ID3DXConstantTable object which can be used to set
|
||||||
|
// shader constants to the device. Alternatively, an application can
|
||||||
|
// parse the D3DXSHADER_CONSTANTTABLE block embedded as a comment within
|
||||||
|
// the shader.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetShaderConstantTable(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
LPD3DXCONSTANTTABLE* ppConstantTable);
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXGetShaderDebugInfo:
|
||||||
|
// -----------------------
|
||||||
|
// Gets shader debug info. Debug info is generated D3DXAssembleShader and
|
||||||
|
// D3DXCompileShader and is embedded the body of the shader.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pFunction
|
||||||
|
// Pointer to the function DWORD stream
|
||||||
|
// ppDebugInfo
|
||||||
|
// Buffer used to return debug info. For information about the layout
|
||||||
|
// of this buffer, see definition of D3DXSHADER_DEBUGINFO above.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGetShaderDebugInfo(
|
||||||
|
CONST DWORD* pFunction,
|
||||||
|
LPD3DXBUFFER* ppDebugInfo);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXGatherFragments:
|
||||||
|
// -------------------
|
||||||
|
// Assembles shader fragments into a buffer to be passed to a fragment linker.
|
||||||
|
// will generate shader fragments for all fragments in the file
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pSrcFile
|
||||||
|
// Source file name
|
||||||
|
// hSrcModule
|
||||||
|
// Module handle. if NULL, current module will be used
|
||||||
|
// pSrcResource
|
||||||
|
// Resource name in module
|
||||||
|
// pSrcData
|
||||||
|
// Pointer to source code
|
||||||
|
// SrcDataLen
|
||||||
|
// Size of source code, in bytes
|
||||||
|
// pDefines
|
||||||
|
// Optional NULL-terminated array of preprocessor macro definitions.
|
||||||
|
// pInclude
|
||||||
|
// Optional interface pointer to use for handling #include directives.
|
||||||
|
// If this parameter is NULL, #includes will be honored when assembling
|
||||||
|
// from file, and will error when assembling from resource or memory.
|
||||||
|
// Flags
|
||||||
|
// See D3DXSHADER_xxx flags
|
||||||
|
// ppShader
|
||||||
|
// Returns a buffer containing the created shader fragments. This buffer contains
|
||||||
|
// the assembled shader code, as well as any embedded debug info.
|
||||||
|
// ppErrorMsgs
|
||||||
|
// Returns a buffer containing a listing of errors and warnings that were
|
||||||
|
// encountered during assembly. If you are running in a debugger,
|
||||||
|
// these are the same messages you will see in your debug output.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGatherFragmentsFromFileA(
|
||||||
|
LPCSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGatherFragmentsFromFileW(
|
||||||
|
LPCWSTR pSrcFile,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXGatherFragmentsFromFile D3DXGatherFragmentsFromFileW
|
||||||
|
#else
|
||||||
|
#define D3DXGatherFragmentsFromFile D3DXGatherFragmentsFromFileA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGatherFragmentsFromResourceA(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGatherFragmentsFromResourceW(
|
||||||
|
HMODULE hSrcModule,
|
||||||
|
LPCWSTR pSrcResource,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXGatherFragmentsFromResource D3DXGatherFragmentsFromResourceW
|
||||||
|
#else
|
||||||
|
#define D3DXGatherFragmentsFromResource D3DXGatherFragmentsFromResourceA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXGatherFragments(
|
||||||
|
LPCSTR pSrcData,
|
||||||
|
UINT SrcDataLen,
|
||||||
|
CONST D3DXMACRO* pDefines,
|
||||||
|
LPD3DXINCLUDE pInclude,
|
||||||
|
DWORD Flags,
|
||||||
|
LPD3DXBUFFER* ppShader,
|
||||||
|
LPD3DXBUFFER* ppErrorMsgs);
|
||||||
|
|
||||||
|
typedef ID3DXFragmentLinker *LPD3DXFRAGMENTLINKER;
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXCreateFragmentLinker:
|
||||||
|
// -------------------------
|
||||||
|
// Creates a fragment linker with a given cache size. The interface returned
|
||||||
|
// can be used to link together shader fragments. (both HLSL & ASM fragements)
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// pDevice
|
||||||
|
// Pointer of the device on which to create the effect
|
||||||
|
// ShaderCacheSize
|
||||||
|
// Size of the shader cache
|
||||||
|
// ppFragmentLinker
|
||||||
|
// pointer to a memory location to put the created interface pointer
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateFragmentLinker(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
UINT ShaderCacheSize,
|
||||||
|
LPD3DXFRAGMENTLINKER* ppFragmentLinker);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Shader comment block layouts //////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
// D3DXSHADER_CONSTANTTABLE:
|
||||||
|
// -------------------------
|
||||||
|
// Shader constant information; included as an CTAB comment block inside
|
||||||
|
// shaders. All offsets are BYTE offsets from start of CONSTANTTABLE struct.
|
||||||
|
// Entries in the table are sorted by Name in ascending order.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
typedef struct _D3DXSHADER_CONSTANTTABLE
|
||||||
|
{
|
||||||
|
DWORD Size; // sizeof(D3DXSHADER_CONSTANTTABLE)
|
||||||
|
DWORD Creator; // LPCSTR offset
|
||||||
|
DWORD Version; // shader version
|
||||||
|
DWORD Constants; // number of constants
|
||||||
|
DWORD ConstantInfo; // D3DXSHADER_CONSTANTINFO[Constants] offset
|
||||||
|
|
||||||
|
} D3DXSHADER_CONSTANTTABLE, *LPD3DXSHADER_CONSTANTTABLE;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXSHADER_CONSTANTINFO
|
||||||
|
{
|
||||||
|
DWORD Name; // LPCSTR offset
|
||||||
|
WORD RegisterSet; // D3DXREGISTER_SET
|
||||||
|
WORD RegisterIndex; // register number
|
||||||
|
WORD RegisterCount; // number of registers
|
||||||
|
WORD Reserved; // reserved
|
||||||
|
DWORD TypeInfo; // D3DXSHADER_TYPEINFO offset
|
||||||
|
DWORD DefaultValue; // offset of default value
|
||||||
|
|
||||||
|
} D3DXSHADER_CONSTANTINFO, *LPD3DXSHADER_CONSTANTINFO;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXSHADER_TYPEINFO
|
||||||
|
{
|
||||||
|
WORD Class; // D3DXPARAMETER_CLASS
|
||||||
|
WORD Type; // D3DXPARAMETER_TYPE
|
||||||
|
WORD Rows; // number of rows (matrices)
|
||||||
|
WORD Columns; // number of columns (vectors and matrices)
|
||||||
|
WORD Elements; // array dimension
|
||||||
|
WORD StructMembers; // number of struct members
|
||||||
|
DWORD StructMemberInfo; // D3DXSHADER_STRUCTMEMBERINFO[Members] offset
|
||||||
|
|
||||||
|
} D3DXSHADER_TYPEINFO, *LPD3DXSHADER_TYPEINFO;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _D3DXSHADER_STRUCTMEMBERINFO
|
||||||
|
{
|
||||||
|
DWORD Name; // LPCSTR offset
|
||||||
|
DWORD TypeInfo; // D3DXSHADER_TYPEINFO offset
|
||||||
|
|
||||||
|
} D3DXSHADER_STRUCTMEMBERINFO, *LPD3DXSHADER_STRUCTMEMBERINFO;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__D3DX9SHADER_H__
|
||||||
|
|
||||||
221
third_party/dx9_sdk/include/d3dx9shape.h
vendored
Normal file
221
third_party/dx9_sdk/include/d3dx9shape.h
vendored
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dx9shapes.h
|
||||||
|
// Content: D3DX simple shapes
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "d3dx9.h"
|
||||||
|
|
||||||
|
#ifndef __D3DX9SHAPES_H__
|
||||||
|
#define __D3DX9SHAPES_H__
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Functions:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreatePolygon:
|
||||||
|
// ------------------
|
||||||
|
// Creates a mesh containing an n-sided polygon. The polygon is centered
|
||||||
|
// at the origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Length Length of each side.
|
||||||
|
// Sides Number of sides the polygon has. (Must be >= 3)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreatePolygon(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
FLOAT Length,
|
||||||
|
UINT Sides,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateBox:
|
||||||
|
// --------------
|
||||||
|
// Creates a mesh containing an axis-aligned box. The box is centered at
|
||||||
|
// the origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Width Width of box (along X-axis)
|
||||||
|
// Height Height of box (along Y-axis)
|
||||||
|
// Depth Depth of box (along Z-axis)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateBox(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
FLOAT Width,
|
||||||
|
FLOAT Height,
|
||||||
|
FLOAT Depth,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateCylinder:
|
||||||
|
// -------------------
|
||||||
|
// Creates a mesh containing a cylinder. The generated cylinder is
|
||||||
|
// centered at the origin, and its axis is aligned with the Z-axis.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Radius1 Radius at -Z end (should be >= 0.0f)
|
||||||
|
// Radius2 Radius at +Z end (should be >= 0.0f)
|
||||||
|
// Length Length of cylinder (along Z-axis)
|
||||||
|
// Slices Number of slices about the main axis
|
||||||
|
// Stacks Number of stacks along the main axis
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateCylinder(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
FLOAT Radius1,
|
||||||
|
FLOAT Radius2,
|
||||||
|
FLOAT Length,
|
||||||
|
UINT Slices,
|
||||||
|
UINT Stacks,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateSphere:
|
||||||
|
// -----------------
|
||||||
|
// Creates a mesh containing a sphere. The sphere is centered at the
|
||||||
|
// origin.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// Radius Radius of the sphere (should be >= 0.0f)
|
||||||
|
// Slices Number of slices about the main axis
|
||||||
|
// Stacks Number of stacks along the main axis
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSphere(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
FLOAT Radius,
|
||||||
|
UINT Slices,
|
||||||
|
UINT Stacks,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTorus:
|
||||||
|
// ----------------
|
||||||
|
// Creates a mesh containing a torus. The generated torus is centered at
|
||||||
|
// the origin, and its axis is aligned with the Z-axis.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// InnerRadius Inner radius of the torus (should be >= 0.0f)
|
||||||
|
// OuterRadius Outer radius of the torue (should be >= 0.0f)
|
||||||
|
// Sides Number of sides in a cross-section (must be >= 3)
|
||||||
|
// Rings Number of rings making up the torus (must be >= 3)
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTorus(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
FLOAT InnerRadius,
|
||||||
|
FLOAT OuterRadius,
|
||||||
|
UINT Sides,
|
||||||
|
UINT Rings,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTeapot:
|
||||||
|
// -----------------
|
||||||
|
// Creates a mesh containing a teapot.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// ppAdjacency Returns a buffer containing adjacency info. Can be NULL.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTeapot(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency);
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateText:
|
||||||
|
// ---------------
|
||||||
|
// Creates a mesh containing the specified text using the font associated
|
||||||
|
// with the device context.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
//
|
||||||
|
// pDevice The D3D device with which the mesh is going to be used.
|
||||||
|
// hDC Device context, with desired font selected
|
||||||
|
// pText Text to generate
|
||||||
|
// Deviation Maximum chordal deviation from true font outlines
|
||||||
|
// Extrusion Amount to extrude text in -Z direction
|
||||||
|
// ppMesh The mesh object which will be created
|
||||||
|
// pGlyphMetrics Address of buffer to receive glyph metric data (or NULL)
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTextA(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
HDC hDC,
|
||||||
|
LPCSTR pText,
|
||||||
|
FLOAT Deviation,
|
||||||
|
FLOAT Extrusion,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency,
|
||||||
|
LPGLYPHMETRICSFLOAT pGlyphMetrics);
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTextW(
|
||||||
|
LPDIRECT3DDEVICE9 pDevice,
|
||||||
|
HDC hDC,
|
||||||
|
LPCWSTR pText,
|
||||||
|
FLOAT Deviation,
|
||||||
|
FLOAT Extrusion,
|
||||||
|
LPD3DXMESH* ppMesh,
|
||||||
|
LPD3DXBUFFER* ppAdjacency,
|
||||||
|
LPGLYPHMETRICSFLOAT pGlyphMetrics);
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
|
#define D3DXCreateText D3DXCreateTextW
|
||||||
|
#else
|
||||||
|
#define D3DXCreateText D3DXCreateTextA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
#endif //__D3DX9SHAPES_H__
|
||||||
|
|
||||||
1647
third_party/dx9_sdk/include/d3dx9tex.h
vendored
Normal file
1647
third_party/dx9_sdk/include/d3dx9tex.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1027
third_party/dx9_sdk/include/d3dxcore.h
vendored
Normal file
1027
third_party/dx9_sdk/include/d3dxcore.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
407
third_party/dx9_sdk/include/d3dxerr.h
vendored
Normal file
407
third_party/dx9_sdk/include/d3dxerr.h
vendored
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
//----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// d3dxerr.h -- 0xC code definitions for the D3DX API
|
||||||
|
//
|
||||||
|
// Copyright (c) Microsoft Corp. All rights reserved.
|
||||||
|
//
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
#ifndef __D3DXERR_H__
|
||||||
|
#define __D3DXERR_H__
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Values are 32 bit values layed out as follows:
|
||||||
|
//
|
||||||
|
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||||
|
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||||
|
// +---+-+-+-----------------------+-------------------------------+
|
||||||
|
// |Sev|C|R| Facility | Code |
|
||||||
|
// +---+-+-+-----------------------+-------------------------------+
|
||||||
|
//
|
||||||
|
// where
|
||||||
|
//
|
||||||
|
// Sev - is the severity code
|
||||||
|
//
|
||||||
|
// 00 - Success
|
||||||
|
// 01 - Informational
|
||||||
|
// 10 - Warning
|
||||||
|
// 11 - Error
|
||||||
|
//
|
||||||
|
// C - is the Customer code flag
|
||||||
|
//
|
||||||
|
// R - is a reserved bit
|
||||||
|
//
|
||||||
|
// Facility - is the facility code
|
||||||
|
//
|
||||||
|
// Code - is the facility's status code
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Define the facility codes
|
||||||
|
//
|
||||||
|
#define FACILITY_D3DX 0x877
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOMEMORY
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Out of memory.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOMEMORY ((HRESULT)0xC8770BB8L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NULLPOINTER
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// A NULL pointer was passed as a parameter.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NULLPOINTER ((HRESULT)0xC8770BB9L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_INVALIDD3DXDEVICEINDEX
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The Device Index passed in is invalid.
|
||||||
|
//
|
||||||
|
#define D3DXERR_INVALIDD3DXDEVICEINDEX ((HRESULT)0xC8770BBAL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NODIRECTDRAWAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// DirectDraw has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NODIRECTDRAWAVAILABLE ((HRESULT)0xC8770BBBL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NODIRECT3DAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Direct3D has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NODIRECT3DAVAILABLE ((HRESULT)0xC8770BBCL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NODIRECT3DDEVICEAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Direct3D device has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NODIRECT3DDEVICEAVAILABLE ((HRESULT)0xC8770BBDL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOPRIMARYAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Primary surface has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOPRIMARYAVAILABLE ((HRESULT)0xC8770BBEL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOZBUFFERAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Z buffer has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOZBUFFERAVAILABLE ((HRESULT)0xC8770BBFL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOBACKBUFFERAVAILABLE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Backbuffer has not been created.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOBACKBUFFERAVAILABLE ((HRESULT)0xC8770BC0L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_COULDNTUPDATECAPS
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Failed to update caps database after changing display mode.
|
||||||
|
//
|
||||||
|
#define D3DXERR_COULDNTUPDATECAPS ((HRESULT)0xC8770BC1L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOZBUFFER
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Could not create Z buffer.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOZBUFFER ((HRESULT)0xC8770BC2L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_INVALIDMODE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Display mode is not valid.
|
||||||
|
//
|
||||||
|
#define D3DXERR_INVALIDMODE ((HRESULT)0xC8770BC3L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_INVALIDPARAMETER
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// One or more of the parameters passed is invalid.
|
||||||
|
//
|
||||||
|
#define D3DXERR_INVALIDPARAMETER ((HRESULT)0xC8770BC4L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_INITFAILED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// D3DX failed to initialize itself.
|
||||||
|
//
|
||||||
|
#define D3DXERR_INITFAILED ((HRESULT)0xC8770BC5L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_STARTUPFAILED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// D3DX failed to start up.
|
||||||
|
//
|
||||||
|
#define D3DXERR_STARTUPFAILED ((HRESULT)0xC8770BC6L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_D3DXNOTSTARTEDYET
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// D3DXInitialize() must be called first.
|
||||||
|
//
|
||||||
|
#define D3DXERR_D3DXNOTSTARTEDYET ((HRESULT)0xC8770BC7L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOTINITIALIZED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// D3DX is not initialized yet.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOTINITIALIZED ((HRESULT)0xC8770BC8L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_FAILEDDRAWTEXT
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Failed to render text to the surface.
|
||||||
|
//
|
||||||
|
#define D3DXERR_FAILEDDRAWTEXT ((HRESULT)0xC8770BC9L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_BADD3DXCONTEXT
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Bad D3DX context.
|
||||||
|
//
|
||||||
|
#define D3DXERR_BADD3DXCONTEXT ((HRESULT)0xC8770BCAL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_CAPSNOTSUPPORTED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The requested device capabilities are not supported.
|
||||||
|
//
|
||||||
|
#define D3DXERR_CAPSNOTSUPPORTED ((HRESULT)0xC8770BCBL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_UNSUPPORTEDFILEFORMAT
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The image file format is unrecognized.
|
||||||
|
//
|
||||||
|
#define D3DXERR_UNSUPPORTEDFILEFORMAT ((HRESULT)0xC8770BCCL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_IFLERROR
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The image file loading library error.
|
||||||
|
//
|
||||||
|
#define D3DXERR_IFLERROR ((HRESULT)0xC8770BCDL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_FAILEDGETCAPS
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Could not obtain device caps.
|
||||||
|
//
|
||||||
|
#define D3DXERR_FAILEDGETCAPS ((HRESULT)0xC8770BCEL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_CANNOTRESIZEFULLSCREEN
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Resize does not work for full-screen.
|
||||||
|
//
|
||||||
|
#define D3DXERR_CANNOTRESIZEFULLSCREEN ((HRESULT)0xC8770BCFL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_CANNOTRESIZENONWINDOWED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Resize does not work for non-windowed contexts.
|
||||||
|
//
|
||||||
|
#define D3DXERR_CANNOTRESIZENONWINDOWED ((HRESULT)0xC8770BD0L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_FRONTBUFFERALREADYEXISTS
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Front buffer already exists.
|
||||||
|
//
|
||||||
|
#define D3DXERR_FRONTBUFFERALREADYEXISTS ((HRESULT)0xC8770BD1L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_FULLSCREENPRIMARYEXISTS
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The app is using the primary in full-screen mode.
|
||||||
|
//
|
||||||
|
#define D3DXERR_FULLSCREENPRIMARYEXISTS ((HRESULT)0xC8770BD2L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_GETDCFAILED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Could not get device context.
|
||||||
|
//
|
||||||
|
#define D3DXERR_GETDCFAILED ((HRESULT)0xC8770BD3L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_BITBLTFAILED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// Could not bitBlt.
|
||||||
|
//
|
||||||
|
#define D3DXERR_BITBLTFAILED ((HRESULT)0xC8770BD4L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOTEXTURE
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// There is no surface backing up this texture.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOTEXTURE ((HRESULT)0xC8770BD5L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_MIPLEVELABSENT
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// There is no such miplevel for this surface.
|
||||||
|
//
|
||||||
|
#define D3DXERR_MIPLEVELABSENT ((HRESULT)0xC8770BD6L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_SURFACENOTPALETTED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The surface is not paletted.
|
||||||
|
//
|
||||||
|
#define D3DXERR_SURFACENOTPALETTED ((HRESULT)0xC8770BD7L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_ENUMFORMATSFAILED
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// An error occured while enumerating surface formats.
|
||||||
|
//
|
||||||
|
#define D3DXERR_ENUMFORMATSFAILED ((HRESULT)0xC8770BD8L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_COLORDEPTHTOOLOW
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// D3DX only supports color depths of 16 bit or greater.
|
||||||
|
//
|
||||||
|
#define D3DXERR_COLORDEPTHTOOLOW ((HRESULT)0xC8770BD9L)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_INVALIDFILEFORMAT
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// The file format is invalid.
|
||||||
|
//
|
||||||
|
#define D3DXERR_INVALIDFILEFORMAT ((HRESULT)0xC8770BDAL)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MessageId: D3DXERR_NOMATCHFOUND
|
||||||
|
//
|
||||||
|
// MessageText:
|
||||||
|
//
|
||||||
|
// No suitable match found.
|
||||||
|
//
|
||||||
|
#define D3DXERR_NOMATCHFOUND ((HRESULT)0xC8770BDBL)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__D3DXERR_H__
|
||||||
|
|
||||||
1092
third_party/dx9_sdk/include/d3dxmath.h
vendored
Normal file
1092
third_party/dx9_sdk/include/d3dxmath.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1809
third_party/dx9_sdk/include/d3dxmath.inl
vendored
Normal file
1809
third_party/dx9_sdk/include/d3dxmath.inl
vendored
Normal file
File diff suppressed because it is too large
Load Diff
209
third_party/dx9_sdk/include/d3dxshapes.h
vendored
Normal file
209
third_party/dx9_sdk/include/d3dxshapes.h
vendored
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// File: d3dxshapes.h
|
||||||
|
// Content: D3DX simple shapes
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __D3DXSHAPES_H__
|
||||||
|
#define __D3DXSHAPES_H__
|
||||||
|
|
||||||
|
#include <d3d.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include "d3dxerr.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct ID3DXSimpleShape *LPD3DXSIMPLESHAPE;
|
||||||
|
|
||||||
|
// {CFCD4602-EB7B-11d2-A440-00A0C90629A8}
|
||||||
|
DEFINE_GUID( IID_ID3DXSimpleShape,
|
||||||
|
0xcfcd4602, 0xeb7b, 0x11d2, 0xa4, 0x40, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8 );
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Interfaces:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// ID3DXSimpleShape interface:
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DECLARE_INTERFACE_(ID3DXSimpleShape, IUnknown)
|
||||||
|
{
|
||||||
|
// IUnknown methods
|
||||||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID* ppvObj) PURE;
|
||||||
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||||
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||||
|
|
||||||
|
// ID3DXSimpleShape methods
|
||||||
|
STDMETHOD_(LPDIRECT3DVERTEXBUFFER7, GetVB)(THIS) PURE;
|
||||||
|
STDMETHOD_(DWORD, GetIndices)(THIS_ LPWORD *ppIndices) PURE;
|
||||||
|
STDMETHOD(Draw)(THIS) PURE;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// Functions:
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif //__cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreatePolygon: Creates an 'n' sided polygon using the device
|
||||||
|
// ---------------- specified. It returns a vertex buffer that can be used
|
||||||
|
// for drawing or manipulation by the program later on.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] float sideSize: Length of a side.
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. (Default is 1)
|
||||||
|
// D3DX_DEFAULT is a valid input.
|
||||||
|
// [out] IDirect3DVertexBuffer7** ppVB: The output shape interface.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreatePolygon(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
float sideSize,
|
||||||
|
DWORD numSides,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape );
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateBox: Creates a box (cuboid) of given dimensions using the
|
||||||
|
// ------------ device. It returns a vertex buffer that can
|
||||||
|
// be used for drawing or manipulation by the program later on.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] float width: Width of the box (along x-axis)
|
||||||
|
// [in] float height: Height of the box (along y-axis)
|
||||||
|
// [in] float depth: Depth of the box (along z-axis)
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. Default is 1.
|
||||||
|
// D3DX_DEFAULT is a valid input here.
|
||||||
|
// [out] LPD3DXSIMPLESHAPE* ppShape: The output vertex-buffer.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateBox(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
float width,
|
||||||
|
float height,
|
||||||
|
float depth,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape );
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateCylinder: Creates a cylinder of given dimensions using the
|
||||||
|
// ----------------- device. It returns a vertex buffer that
|
||||||
|
// can be used for drawing or manipulation by the program
|
||||||
|
// later on.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] float baseRadius: Base-radius (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] float topRadius: Top-radius (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] float height: Height (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] DWORD numSlices: Number of slices about the main axis.
|
||||||
|
// (default is 8) D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numStacks: Number of stacks along the main axis.
|
||||||
|
// (default is 8) D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. Default is 1.
|
||||||
|
// D3DX_DEFAULT is a valid input here.
|
||||||
|
// [out] LPD3DXSIMPLESHAPE* ppShape: The output shape interface.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateCylinder(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
float baseRadius,
|
||||||
|
float topRadius,
|
||||||
|
float height,
|
||||||
|
DWORD numSlices,
|
||||||
|
DWORD numStacks,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape );
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTorus: Creates a torus of given dimensions using the
|
||||||
|
// -------------- device specified. It returns a vertex buffer that can
|
||||||
|
// be used for drawing or manipulation by the program later
|
||||||
|
// on. It draws a doughnut, centered at (0, 0, 0) whose axis
|
||||||
|
// is aligned with the z-axis. With the innerRadius used
|
||||||
|
// as the radius of the cross-section (minor-Radius) and
|
||||||
|
// the outerRadius used as the radius of the central 'hole'.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] float innerRadius: inner radius (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] float outerRadius: outer radius (default is 2.0f, shd be >= 0.0f)
|
||||||
|
// [in] DWORD numSides: Number of sides in the cross-section
|
||||||
|
// (default is 8). D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numRings: Number of rings making up the torus
|
||||||
|
// (default is 8) D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. Default is 1.
|
||||||
|
// D3DX_DEFAULT is a valid input here.
|
||||||
|
// [out] LPD3DXSIMPLESHAPE* ppShape: The output shape interface.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTorus(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
float innerRadius,
|
||||||
|
float outerRadius,
|
||||||
|
DWORD numSides,
|
||||||
|
DWORD numRings,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape );
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateTeapot: Creates a teapot using the device specified.
|
||||||
|
// ---------------- It returns a vertex buffer that can be used for
|
||||||
|
// drawing or manipulation by the program later on.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. Default is 1.
|
||||||
|
// D3DX_DEFAULT is a valid input here.
|
||||||
|
// [out] LPD3DXSIMPLESHAPE* ppShape: The output shape interface.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateTeapot(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape);
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
// D3DXCreateSphere: Creates a cylinder of given dimensions using the
|
||||||
|
// ---------------- device specified.
|
||||||
|
// It returns a vertex buffer that can be used for
|
||||||
|
// drawing or manipulation by the program later on.
|
||||||
|
//
|
||||||
|
// Params:
|
||||||
|
// [in] LPDIRECT3DDEVICE7 pDevice: The device to create off.
|
||||||
|
// [in] float radius: radius (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] float height: Height (default is 1.0f, shd be >= 0.0f)
|
||||||
|
// [in] DWORD numSlices: Number of slices about the main axis
|
||||||
|
// (default is 8) D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numStacks: Number of stacks along the main axis
|
||||||
|
// (default is 8) D3DX_DEFAULT is a valid input.
|
||||||
|
// [in] DWORD numTexCoords: The number of texture coordinates desired
|
||||||
|
// in the vertex-buffer. Default is 1.
|
||||||
|
// D3DX_DEFAULT is a valid input here.
|
||||||
|
// [out] LPD3DXSIMPLESHAPE* ppShape: The output shape interface.
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
HRESULT WINAPI
|
||||||
|
D3DXCreateSphere(LPDIRECT3DDEVICE7 pDevice,
|
||||||
|
float radius,
|
||||||
|
DWORD numSlices,
|
||||||
|
DWORD numStacks,
|
||||||
|
DWORD numTexCoords,
|
||||||
|
LPD3DXSIMPLESHAPE* ppShape);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif //__cplusplus
|
||||||
|
#endif //__D3DXSHAPES_H__
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user