[AMSTREAM] Sync with Wine Staging 3.9. CORE-14656
[reactos.git] / dll / directx / ddraw / cleanup.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: dll/directx/ddraw/cleanup.c
5 * PURPOSE: DirectDraw Library
6 * PROGRAMMER: Magnus Olsen (greatlrd)
7 *
8 */
9
10 #include <windows.h>
11 #include "rosdraw.h"
12 #include "d3dhal.h"
13
14 VOID
15 Cleanup(LPDDRAWI_DIRECTDRAW_INT This)
16 {
17 DX_WINDBG_trace();
18
19 if (ddgbl.lpDDCBtmp != NULL)
20 {
21 DxHeapMemFree(ddgbl.lpDDCBtmp);
22 }
23
24 if (ddgbl.lpdwFourCC != NULL)
25 {
26 DxHeapMemFree(ddgbl.lpdwFourCC);
27 }
28
29 if (ddgbl.lpModeInfo != NULL)
30 {
31 DxHeapMemFree(ddgbl.lpModeInfo);
32 }
33
34 DdDeleteDirectDrawObject(&ddgbl);
35
36 /*
37 anything else to release?
38 */
39
40 /* release the linked interface */
41 //while (IsBadWritePtr( This->lpVtbl, sizeof( LPDDRAWI_DIRECTDRAW_INT )) )
42 //{
43 // LPDDRAWI_DIRECTDRAW_INT newThis = This->lpVtbl;
44 // if (This->lpLcl != NULL)
45 // {
46 // DeleteDC(This->lpLcl->hDC);
47 // DxHeapMemFree(This->lpLcl);
48 // }
49
50 // DxHeapMemFree(This);
51 // This = newThis;
52 //}
53
54 /* release unlinked interface */
55 if (This->lpLcl != NULL)
56 {
57 DxHeapMemFree(This->lpLcl);
58 }
59 //if (This != NULL)
60 //{
61 // DxHeapMemFree(This);
62 //}
63
64 }
65