rnd-20090623-1-src
[rocksndiamonds.git] / src / game_sp / DirectDrawGlobals.c
1 // ----------------------------------------------------------------------------
2 // DirectDrawGlobals.c
3 // ----------------------------------------------------------------------------
4
5 #include "DirectDrawGlobals.h"
6
7 static char *VB_Name = "DirectDrawGlobals";
8 // --- Option Explicit
9
10 DirectX7 DirectX;
11 DirectDraw7 DirectDraw;
12 DirectDrawSurface7 PrimarySurface;
13
14 void InitDirectDraw(long hWndClip)
15 {
16   DDSURFACEDESC2 SD;
17
18   // DirectX = New DirectX7; // (handle this later, if needed)
19   DirectDraw = DirectX.DirectDrawCreate("");
20   DirectDraw.SetCooperativeLevel(0, DDSCL_NORMAL);
21   // Create PrimarySurface:
22   {
23     SD.lFlags = DDSD_CAPS;
24     SD.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE;
25   }
26   PrimarySurface = DirectDraw.CreateSurface(SD);
27   if (hWndClip != 0)
28     ClipToWindow(hWndClip);
29 }
30
31 void ReleaseDirectDraw()
32 {
33   SET_TO_NOTHING(&PrimarySurface, sizeof(PrimarySurface));
34   SET_TO_NOTHING(&DirectDraw, sizeof(DirectDraw));
35   SET_TO_NOTHING(&DirectX, sizeof(DirectX));
36 }
37
38 void ClipToWindow(long hWnd)
39 {
40   DirectDrawClipper Clipper;
41
42   // create clipper
43   Clipper = DirectDraw.CreateClipper(0);
44   Clipper.SetHWnd(hWnd);
45   PrimarySurface.SetClipper(Clipper);
46   SET_TO_NOTHING(&Clipper, sizeof(Clipper));
47 }