99 lines
3 KiB
C++
99 lines
3 KiB
C++
/*==========================================================================;
|
|
*
|
|
* Copyright (C) 1995-2000 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: d3dpr.h
|
|
* Content: Direct3D private include file
|
|
*@@BEGIN_MSINTERNAL
|
|
*
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 05/11/95 stevela Initial rev with this header.
|
|
* 23/11/95 colinmc Made various Direct3D interfaces queryable off
|
|
* DirectDraw.
|
|
* 07/12/95 stevela Merged Colin's changes.
|
|
* 10/12/95 stevela Removed AGGREGATE_D3D.
|
|
* 17/04/96 colinmc Bug 17008: DirectDraw/Direct3D deadlock
|
|
*@@END_MSINTERNAL
|
|
*
|
|
***************************************************************************/
|
|
|
|
|
|
#ifndef _D3DPR_H_
|
|
#define _D3DPR_H_
|
|
#include "d3di.hpp"
|
|
#include "dpf.h"
|
|
|
|
#if 0
|
|
extern "C" {
|
|
#define this _this
|
|
#include "ddrawpr.h"
|
|
#undef this
|
|
};
|
|
#endif
|
|
|
|
/*
|
|
* Macros for validating parameters.
|
|
* Only implement those not available in ddrawpr.h.
|
|
*/
|
|
|
|
#define VALID_OUTPTR(x) ((x) && VALID_PTR_PTR(x))
|
|
|
|
// FAST_CHECKING macro is defined in ddrawpr.h
|
|
// so in make sure that ddrawpr.h is always included
|
|
// before this header.
|
|
|
|
#ifndef FAST_CHECKING
|
|
|
|
#define VALID_DIRECT3DBASETEXTURE8_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( LPVOID )))
|
|
#define VALID_DDSURF_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( DDRAWI_DDRAWSURFACE_INT )))
|
|
#define VALID_DIRECT3DVERTEXBUFFER_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( CDirect3DVertexBuffer )))
|
|
|
|
#define VALID_D3DVERTEXBUFFERDESC_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( D3DVERTEXBUFFERDESC8 ) ))
|
|
#define VALID_D3DCAPS8_PTR( ptr ) \
|
|
(! IsBadWritePtr(ptr, sizeof( D3DCAPS8)) )
|
|
#define VALID_D3DRECT_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( D3DRECT ) ))
|
|
#define VALID_GDIRECT_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( RECT ) ))
|
|
#define VALID_GDIPOINT_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( POINT ) ))
|
|
#define VALID_D3DTEXTUREHANDLE_PTR( ptr ) \
|
|
(!IsBadWritePtr( ptr, sizeof( D3DTEXTUREHANDLE ) ) )
|
|
#define VALID_D3DDEVINFOSTRUCT_PTR( ptr, size ) \
|
|
(!IsBadWritePtr( ptr, size ) )
|
|
|
|
// Note: these macros are replacements for the VALID_DIRECTDRAWSURFACE_PTR ddraw macros
|
|
// because those macros need access to the ddCallbacks ddraw globals.
|
|
// At some point these could be replaced with a ddraw exported fn that actually
|
|
// verifies the callback table type
|
|
|
|
#define VALID_D3D_DIRECTDRAWSURFACE8_PTR(ptr) (!IsBadWritePtr(ptr, sizeof(VOID*)))
|
|
|
|
#else /* !FAST_CHECKING */
|
|
|
|
#define VALID_DIRECT3DBASETEXTURE8_PTR( ptr ) (ptr)
|
|
#define VALID_DIRECT3DDEVICE_PTR( ptr ) (ptr)
|
|
#define VALID_DDSURF_PTR( ptr ) (ptr)
|
|
#define VALID_DIRECT3DVERTEXBUFFER_PTR( ptr ) (ptr)
|
|
|
|
#define VALID_D3DVERTEXBUFFERDESC_PTR( ptr ) (ptr)
|
|
#define VALID_D3DCAPS8_PTR( ptr ) (ptr)
|
|
#define VALID_D3DRECT_PTR( ptr ) (ptr)
|
|
#define VALID_GDIRECT_PTR( ptr ) (ptr)
|
|
#define VALID_GDIPOINT_PTR( ptr ) (ptr)
|
|
#define VALID_D3DTEXTUREHANDLE_PTR( ptr ) (ptr)
|
|
|
|
#define VALID_D3D_DIRECTDRAWSURFACE8_PTR(ptr) (ptr)
|
|
#define VALID_D3DDEVINFOSTRUCT_PTR( ptr, size ) (ptr)
|
|
|
|
#endif /* !FAST_CHECKING */
|
|
|
|
|
|
#endif /* _D3DPR_H_ */
|