1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 22:14:49 +01:00

88 lines
3.3 KiB
C
Raw Normal View History

2010-10-10 19:41:47 +03:00
/*
* Copyright (c) 2010 Toni Spets <toni.spets@iki.fi>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef SURFACE_H
#define SURFACE_H
#include <windows.h>
#include "ddraw.h"
HRESULT ddraw_CreateSurface(void *This, LPDDSURFACEDESC DDSurfaceDesc, LPDIRECTDRAWSURFACE FAR *DDSurface, IUnknown FAR * unkOuter);
2010-10-10 19:41:47 +03:00
typedef struct
{
/* IUnknown */
HRESULT (*QueryInterface)(void *, REFIID, void **);
ULONG (*AddRef)(void *);
ULONG (*Release)(void *);
/* IDirectDrawSurface */
HRESULT (*AddAttachedSurface)(void *, LPDIRECTDRAWSURFACE);
HRESULT (*AddOverlayDirtyRect)(void *, LPRECT);
HRESULT (*Blt)(void *, LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX);
HRESULT (*BltBatch)(void *, LPDDBLTBATCH, DWORD, DWORD );
HRESULT (*BltFast)(void *, DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD);
HRESULT (*DeleteAttachedSurface)(void *, DWORD,LPDIRECTDRAWSURFACE);
HRESULT (*EnumAttachedSurfaces)(void *, LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT (*EnumOverlayZOrders)(void *, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK);
HRESULT (*Flip)(void *, LPDIRECTDRAWSURFACE, DWORD);
HRESULT (*GetAttachedSurface)(void *, LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *);
HRESULT (*GetBltStatus)(void *, DWORD);
HRESULT (*GetCaps)(void *, LPDDSCAPS);
HRESULT (*GetClipper)(void *, LPDIRECTDRAWCLIPPER FAR*);
HRESULT (*GetColorKey)(void *, DWORD, LPDDCOLORKEY);
HRESULT (*GetDC)(void *, HDC FAR *);
HRESULT (*GetFlipStatus)(void *, DWORD);
HRESULT (*GetOverlayPosition)(void *, LPLONG, LPLONG );
HRESULT (*GetPalette)(void *, LPDIRECTDRAWPALETTE FAR*);
HRESULT (*GetPixelFormat)(void *, LPDDPIXELFORMAT);
HRESULT (*GetSurfaceDesc)(void *, LPDDSURFACEDESC);
HRESULT (*Initialize)(void *, LPDIRECTDRAW, LPDDSURFACEDESC);
HRESULT (*IsLost)(void *);
HRESULT (*Lock)(void *, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
HRESULT (*ReleaseDC)(void *, HDC);
HRESULT (*Restore)(void *);
HRESULT (*SetClipper)(void *, LPDIRECTDRAWCLIPPER);
HRESULT (*SetColorKey)(void *, DWORD, LPDDCOLORKEY);
HRESULT (*SetOverlayPosition)(void *, LONG, LONG );
HRESULT (*SetPalette)(void *, LPDIRECTDRAWPALETTE);
HRESULT (*Unlock)(void *, LPVOID);
HRESULT (*UpdateOverlay)(void *, LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX);
HRESULT (*UpdateOverlayDisplay)(void *, DWORD);
HRESULT (*UpdateOverlayZOrder)(void *, DWORD, LPDIRECTDRAWSURFACE);
2010-10-10 19:41:47 +03:00
} fakeDirectDrawSurface;
typedef struct
{
fakeDirectDrawSurface *Functions;
DWORD width;
DWORD height;
2010-10-17 00:41:14 +03:00
DWORD bpp;
2010-10-17 09:09:30 +03:00
DWORD caps;
void *surface;
HDC hDC;
HGLRC hRC;
2010-10-10 19:41:47 +03:00
ULONG Ref;
} fakeDirectDrawSurfaceObject;
extern fakeDirectDrawSurface siface;
2010-10-10 19:41:47 +03:00
#endif