source: trunk/src/ddraw/OS2DDRAW.H@ 4

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

File size: 7.1 KB
Line 
1/* $Id: OS2DDRAW.H,v 1.1 1999-05-24 20:19:36 ktk Exp $ */
2
3/*
4 * DirectDraw main class
5 *
6 * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11#ifndef __OS2DDRAW_HPP__
12#define __OS2DDRAW_HPP__
13
14
15/* KSO Apr 19 1999: Set correct interface. *
16 * (INTERFACE is used in the THIS and THIS_ macros) */
17#undef INTERFACE
18#define INTERFACE IDirectDraw2
19
20class OS2IDirectDraw
21{
22 public:
23 //this one has to go first!
24 IDirectDraw2Vtbl *lpVtbl;
25 IDirectDraw2Vtbl Vtbl;
26 IDirect3DVtbl Vtbl3D;
27
28 OS2IDirectDraw(GUID *lpGUID);
29 ~OS2IDirectDraw();
30
31 int Referenced;
32 inline HRESULT GetLastError() { return lastError; };
33 inline HDIVE GetDiveInstance() { return hDive; };
34 inline char * GetFrameBuffer() { return pFrameBuffer; };
35 inline int GetScreenWidth() { return screenwidth; };
36 inline int GetScreenHeight() { return screenheight; };
37 inline BOOL IsFullScreen() { return fFullScreen; };
38 inline W32_HWND GetWindowHandle() { return hwndClient; };
39
40 private:
41
42 protected:
43 HRESULT lastError;
44 HDIVE hDive;
45 char *pFrameBuffer;
46 W32_HWND hwndClient;
47 int screenwidth, screenheight, screenbpp;
48
49 BOOL fFullScreen;
50
51 // Linked list management
52 OS2IDirectDraw* next; // Next OS2IDirectDraw
53 static OS2IDirectDraw* ddraw; // List of OS2IDirectDraw
54
55 friend HRESULT __stdcall DrawQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
56 friend ULONG __stdcall DrawAddRef(THIS);
57 friend ULONG __stdcall DrawRelease(THIS);
58 friend HRESULT __stdcall DrawCompact(THIS);
59 friend HRESULT __stdcall DrawCreateClipper(THIS, DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * );
60 friend HRESULT __stdcall DrawCreatePalette(THIS, DWORD, W32_LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * );
61 friend HRESULT __stdcall DrawCreateSurface(THIS, LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *);
62 friend HRESULT __stdcall DrawDuplicateSurface(THIS, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * );
63 friend HRESULT __stdcall DrawEnumDisplayModes(THIS, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK );
64 friend HRESULT __stdcall DrawEnumSurfaces(THIS, DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK );
65 friend HRESULT __stdcall DrawFlipToGDISurface(THIS);
66 friend HRESULT __stdcall DrawGetCaps(THIS, LPDDCAPS, LPDDCAPS);
67 friend HRESULT __stdcall DrawGetDisplayMode(THIS, LPDDSURFACEDESC);
68 friend HRESULT __stdcall DrawGetFourCCCodes(THIS, LPDWORD, LPDWORD);
69 friend HRESULT __stdcall DrawGetGDISurface(THIS, LPDIRECTDRAWSURFACE FAR *);
70 friend HRESULT __stdcall DrawGetMonitorFrequency(THIS, LPDWORD);
71 friend HRESULT __stdcall DrawGetScanLine(THIS, LPDWORD);
72 friend HRESULT __stdcall DrawGetVerticalBlankStatus(THIS, LPBOOL);
73 friend HRESULT __stdcall DrawInitialize(THIS, GUID FAR *);
74 friend HRESULT __stdcall DrawRestoreDisplayMode(THIS);
75 friend HRESULT __stdcall DrawSetCooperativeLevel(THIS, W32_HWND, DWORD);
76 friend HRESULT __stdcall DrawSetDisplayMode(THIS, DWORD, DWORD,DWORD);
77 friend HRESULT __stdcall DrawSetDisplayMode2(THIS, DWORD, DWORD,DWORD, DWORD, DWORD);
78 friend HRESULT __stdcall DrawWaitForVerticalBlank(THIS, DWORD, W32_HANDLE);
79 friend HRESULT __stdcall DrawGetAvailableVidMem(THIS, LPDDSCAPS, LPDWORD, LPDWORD);
80
81 /*** IDirect3D methods ***/
82 /* KSO Apr 19 1999: Set correct interface. *
83 * (INTERFACE is used in the THIS and THIS_ macros) */
84 #undef INTERFACE
85 #define INTERFACE IDirect3D
86 friend HRESULT __stdcall D3DQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
87 friend ULONG __stdcall D3DAddRef(THIS);
88 friend ULONG __stdcall D3DRelease(THIS);
89 friend HRESULT __stdcall D3DInitialize(THIS, REFIID);
90 friend HRESULT __stdcall D3DEnumDevices(THIS, LPD3DENUMDEVICESCALLBACK, LPVOID);
91 friend HRESULT __stdcall D3DCreateLight(THIS, LPDIRECT3DLIGHT*, IUnknown*);
92 friend HRESULT __stdcall D3DCreateMaterial(THIS, LPDIRECT3DMATERIAL*, IUnknown*);
93 friend HRESULT __stdcall D3DCreateViewport(THIS, LPDIRECT3DVIEWPORT*, IUnknown*);
94 friend HRESULT __stdcall D3DFindDevice(THIS, LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT);
95};
96
97
98//******************************************************************************
99/* KSO Apr 19 1999: Set correct interface. *
100 * (INTERFACE is used in the THIS and THIS_ macros) */
101#undef INTERFACE
102#define INTERFACE IDirectDraw2
103HRESULT __stdcall DrawQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
104ULONG __stdcall DrawAddRef(THIS);
105ULONG __stdcall DrawRelease(THIS);
106HRESULT __stdcall DrawCompact(THIS);
107HRESULT __stdcall DrawCreateClipper(THIS, DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * );
108HRESULT __stdcall DrawCreatePalette(THIS, DWORD, W32_LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * );
109HRESULT __stdcall DrawCreateSurface(THIS, LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *);
110HRESULT __stdcall DrawDuplicateSurface(THIS, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * );
111HRESULT __stdcall DrawEnumDisplayModes(THIS, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK );
112HRESULT __stdcall DrawEnumSurfaces(THIS, DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK );
113HRESULT __stdcall DrawFlipToGDISurface(THIS);
114HRESULT __stdcall DrawGetCaps(THIS, LPDDCAPS, LPDDCAPS);
115HRESULT __stdcall DrawGetDisplayMode(THIS, LPDDSURFACEDESC);
116HRESULT __stdcall DrawGetFourCCCodes(THIS, LPDWORD, LPDWORD);
117HRESULT __stdcall DrawGetGDISurface(THIS, LPDIRECTDRAWSURFACE FAR *);
118HRESULT __stdcall DrawGetMonitorFrequency(THIS, LPDWORD);
119HRESULT __stdcall DrawGetScanLine(THIS, LPDWORD);
120HRESULT __stdcall DrawGetVerticalBlankStatus(THIS, LPBOOL);
121HRESULT __stdcall DrawInitialize(THIS, GUID FAR *);
122HRESULT __stdcall DrawRestoreDisplayMode(THIS);
123HRESULT __stdcall DrawSetCooperativeLevel(THIS, W32_HWND, DWORD);
124HRESULT __stdcall DrawSetDisplayMode(THIS, DWORD, DWORD,DWORD);
125HRESULT __stdcall DrawSetDisplayMode2(THIS, DWORD, DWORD,DWORD, DWORD, DWORD);
126HRESULT __stdcall DrawWaitForVerticalBlank(THIS, DWORD, W32_HANDLE);
127HRESULT __stdcall DrawGetAvailableVidMem(THIS, LPDDSCAPS, LPDWORD, LPDWORD);
128
129/*** IDirect3D methods ***/
130/* KSO Apr 19 1999: Set correct interface. *
131 * (INTERFACE is used in the THIS and THIS_ macros) */
132#undef INTERFACE
133#define INTERFACE IDirect3D
134HRESULT __stdcall D3DQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
135ULONG __stdcall D3DAddRef(THIS);
136ULONG __stdcall D3DRelease(THIS);
137HRESULT __stdcall D3DInitialize(THIS_ REFIID);
138HRESULT __stdcall D3DEnumDevices(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID);
139HRESULT __stdcall D3DCreateLight(THIS_ LPDIRECT3DLIGHT*, IUnknown*);
140HRESULT __stdcall D3DCreateMaterial(THIS_ LPDIRECT3DMATERIAL*, IUnknown*);
141HRESULT __stdcall D3DCreateViewport(THIS_ LPDIRECT3DVIEWPORT*, IUnknown*);
142HRESULT __stdcall D3DFindDevice(THIS_ LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT);
143
144#endif
Note: See TracBrowser for help on using the repository browser.