/
OffscreenSurface.h
95 lines (51 loc) · 2.33 KB
/
OffscreenSurface.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Copyright (c) 2014 Jérémy Ansel
// Licensed under the MIT license. See LICENSE.txt
#pragma once
class OffscreenSurface : public IDirectDrawSurface
{
public:
OffscreenSurface(DeviceResources* deviceResources);
virtual ~OffscreenSurface();
/*** IUnknown methods ***/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj);
STDMETHOD_(ULONG, AddRef) (THIS);
STDMETHOD_(ULONG, Release) (THIS);
/*** IDirectDrawSurface methods ***/
STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE);
STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT);
STDMETHOD(Blt)(THIS_ LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX);
STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD);
STDMETHOD(BltFast)(THIS_ DWORD, DWORD, LPDIRECTDRAWSURFACE, LPRECT, DWORD);
STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD, LPDIRECTDRAWSURFACE);
STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID, LPDDENUMSURFACESCALLBACK);
STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD, LPVOID, LPDDENUMSURFACESCALLBACK);
STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD);
STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *);
STDMETHOD(GetBltStatus)(THIS_ DWORD);
STDMETHOD(GetCaps)(THIS_ LPDDSCAPS);
STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*);
STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY);
STDMETHOD(GetDC)(THIS_ HDC FAR *);
STDMETHOD(GetFlipStatus)(THIS_ DWORD);
STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG);
STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*);
STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT);
STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC);
STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC);
STDMETHOD(IsLost)(THIS);
STDMETHOD(Lock)(THIS_ LPRECT, LPDDSURFACEDESC, DWORD, HANDLE);
STDMETHOD(ReleaseDC)(THIS_ HDC);
STDMETHOD(Restore)(THIS);
STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER);
STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY);
STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG);
STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE);
STDMETHOD(Unlock)(THIS_ LPVOID);
STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDOVERLAYFX);
STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD);
STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE);
ULONG _refCount;
DeviceResources* _deviceResources;
DWORD _bufferSize;
char* _buffer;
};