rnd-20090623-4-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
9 // --- Option Explicit
10
11 DirectX7 DirectX;
12 DirectDraw7 DirectDraw;
13 DirectDrawSurface7 PrimarySurface;
14
15 void InitDirectDraw(long hWndClip)
16 {
17   DDSURFACEDESC2 SD;
18
19   // DirectX = New DirectX7; // (handle this later, if needed)
20   DirectDraw = DirectX.DirectDrawCreate("");
21   DirectDraw.SetCooperativeLevel(0, DDSCL_NORMAL);
22   // Create PrimarySurface:
23   {
24     SD.lFlags = DDSD_CAPS;
25     SD.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE;
26   }
27   PrimarySurface = DirectDraw.CreateSurface(SD);
28   if (hWndClip != 0)
29     ClipToWindow(hWndClip);
30 }
31
32 void ReleaseDirectDraw()
33 {
34   SET_TO_NOTHING(&PrimarySurface, sizeof(PrimarySurface));
35   SET_TO_NOTHING(&DirectDraw, sizeof(DirectDraw));
36   SET_TO_NOTHING(&DirectX, sizeof(DirectX));
37 }
38
39 void ClipToWindow(long hWnd)
40 {
41   DirectDrawClipper Clipper;
42
43   // create clipper
44   Clipper = DirectDraw.CreateClipper(0);
45   Clipper.SetHWnd(hWnd);
46   PrimarySurface.SetClipper(Clipper);
47   SET_TO_NOTHING(&Clipper, sizeof(Clipper));
48 }