/////////////////////////////////////////////////////////////////////////////// // // ## ###### // ###### ### // ## ############### Shark 3D Engine (www.shark3d.com) // ########## # # # // ######## Copyright (c) 1996-2006 Spinor GmbH. // ######### # # # All rights reserved. // ## ########## // ## // /////////////////////////////////////////////////////////////////////////////// //@cpp #ifndef S3D_DRV_D3D9_ENV_H #define S3D_DRV_D3D9_ENV_H #include "drv_d3d9_types.h" #include "drv_d3d9_param.h" #include "util/stream/util_textstreampos.h" /////////////////////////////////////////////////////////////////////////////// #define S3D_DRV_D3D9_ENV_LOGENABLE /////////////////////////////////////////////////////////////////////////////// #ifdef S3D_DRV_D3D9_ENV_LOGENABLE #define S3D_DRV_D3D9_ENV_LOGBEGIN(Env) \ if((Env)->m_LogCalls)\ (Env)->CallBegin(S3D_GENERAL_CURFILE, S3D_GENERAL_CURLINE); #define S3D_DRV_D3D9_ENV_LOGEND(Env) \ if((Env)->m_LogCalls)\ (Env)->CallEnd(S3D_GENERAL_CURFILE, S3D_GENERAL_CURLINE); #else #define S3D_DRV_D3D9_ENV_LOGBEGIN(Env) #define S3D_DRV_D3D9_ENV_LOGEND(Env) #endif //S3D_DRV_D3D9_ENV_LOGENABLE /////////////////////////////////////////////////////////////////////////////// #define S3D_DRV_D3D9_CALL(Env, Foo) \ { \ S3D_DRV_D3D9_ENV_LOGBEGIN(Env) \ \ (Foo); \ \ S3D_DRV_D3D9_ENV_LOGEND(Env) \ } #define S3D_DRV_D3D9_HRESCALL(Env, Result, Foo) \ { \ S3D_DRV_D3D9_ENV_LOGBEGIN(Env) \ \ Result = (Foo); \ \ S3D_DRV_D3D9_ENV_LOGEND(Env) \ } #define S3D_DRV_D3D9_CHECKHRES(Env, Result) \ { \ if(FAILED(Result)) \ { \ s3d_CDrvD3d9Util::ErrorD3d( \ (Env)->m_MsgHandler, Result, \ S3D_GENERAL_CURFILE, S3D_GENERAL_CURLINE); \ } \ } #define S3D_DRV_D3D9_CHECK(Env, Foo) \ { \ HRESULT Result; \ S3D_DRV_D3D9_HRESCALL(Env, Result, Foo) \ S3D_DRV_D3D9_CHECKHRES(Env, Result) \ } #define S3D_DRV_D3D9_CALLCHECK(Env, Result, Foo) \ { \ S3D_DRV_D3D9_HRESCALL(Env, Result, Foo) \ S3D_DRV_D3D9_CHECKHRES(Env, Result) \ } /////////////////////////////////////////////////////////////////////////////// //@ struct s3d_CDrvD3d9Env { s3d_CDrvD3d9Env(); void Init(s3d_CUtilMsgHandler *MsgHandler, s3d_CDrvD3d9Param *D3dParam); void CallBegin(const s3d_CSysChar *File, int Line); void CallEnd(const s3d_CSysChar *File, int Line); s3d_CUtilMsgHandlerPtr m_MsgHandler; bool m_LogCalls; }; /////////////////////////////////////////////////////////////////////////////// S3D_SYS_INLINE s3d_CDrvD3d9Env::s3d_CDrvD3d9Env() { m_LogCalls = false; } /////////////////////////////////////////////////////////////////////////////// #endif