source: GTP/trunk/App/Demos/Geom/Shark3D/src/drv_d3d9_visib.h @ 2236

Revision 2236, 2.3 KB checked in by gumbau, 17 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////////
2//
3//      ##  ######
4//       ######  ###
5//  ## ###############        Shark 3D Engine (www.shark3d.com)
6//   ########## # # #
7//    ########                Copyright (c) 1996-2006 Spinor GmbH.
8//   ######### # # #          All rights reserved.
9//  ##   ##########
10//      ##
11//
12///////////////////////////////////////////////////////////////////////////////
13
14//@cpp
15#ifndef S3D_DRV_D3D9_VISIB_H
16#define S3D_DRV_D3D9_VISIB_H
17
18#include "drv_d3d9_query.h"
19
20///////////////////////////////////////////////////////////////////////////////
21
22class s3d_CDrvD3d9Visib;
23class s3d_CDrvD3d9VisibMgr;
24
25//@
26typedef s3d_CUtilPtr<s3d_CDrvD3d9VisibMgr> s3d_CDrvD3d9VisibMgrPtr;
27
28///////////////////////////////////////////////////////////////////////////////
29
30//@
31class s3d_CDrvD3d9Visib
32        : public s3d_CDrvGfxVisib
33{
34public:
35    s3d_CDrvD3d9Visib(
36            s3d_CDrvD3d9VisibMgr *VisibMgr,
37            s3d_CDrvD3d9QueryOcclusion &QueryOcclusion);
38
39    bool IsAvail();
40    bool GetResult(bool Wait);
41
42private:
43    s3d_CDrvD3d9QueryOcclusion m_QueryOcclusion;
44    s3d_CDrvD3d9VisibMgrPtr m_VisibMgr;
45
46    void RefCntGotDownToZero();
47};
48
49S3D_UTIL_RECOG_DECLAREINFO(s3d_CDrvD3d9Visib);
50
51//@
52typedef s3d_CUtilPtr<s3d_CDrvD3d9Visib> s3d_CDrvD3d9VisibPtr;
53
54//@
55typedef s3d_CUtilPtrArray<s3d_CDrvD3d9Visib> s3d_CDrvD3d9VisibArray;
56
57///////////////////////////////////////////////////////////////////////////////
58
59class s3d_CDrvD3d9VisibMgr
60    : public s3d_CUtilPtrBase
61{
62public:
63    s3d_CDrvD3d9VisibMgr(
64            s3d_CUtilMsgHandler *MsgHandler,
65            s3d_CDrvD3d9Env &Env, s3d_CDrvD3d9Param *D3dParam,
66            s3d_CDrvD3d9Device &D3dDev);
67
68    void BeginVisib();
69    s3d_CDrvGfxVisibPtr EndVisib();
70   
71    void Park();
72    void Unpark();
73
74private:
75    friend class s3d_CDrvD3d9Visib;
76
77    s3d_CUtilMsgHandlerPtr m_MsgHandler;
78    s3d_CDrvD3d9Env *m_Env;
79
80    s3d_CDrvD3d9Device m_D3dDev;
81    s3d_CDrvD3d9QueryOcclusion m_QueryOcclusion;
82    s3d_CDrvD3d9VisibArray m_VisibArray;
83    s3d_CDrvD3d9VisibArray m_VisibFreePool;
84
85    void AddToPool(
86            s3d_CDrvD3d9Visib *Visib);
87};
88
89///////////////////////////////////////////////////////////////////////////////
90
91#endif
Note: See TracBrowser for help on using the repository browser.