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

Revision 2236, 2.5 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_PROGMGR_H
16#define S3D_DRV_D3D9_PROGMGR_H
17
18#include "drv_d3d9_types.h"
19#include "drv_d3d9_param.h"
20#include "drv_d3d9_paramblk.h"
21#include "drv_d3d9_tex.h"
22#include "drv_d3d9_prog.h"
23#include "comp/core/comp_resmgr.h"
24#include "comp/core/comp_suppl.h"
25#include "util/base/util_msg.h"
26#include "util/cont/util_idmgr.h"
27#include "util/cont/util_atom.h"
28
29///////////////////////////////////////////////////////////////////////////////
30
31//@
32class s3d_CDrvD3d9ProgMgr
33        : public s3d_CUtilPtrBase
34{
35public:
36    s3d_CDrvD3d9ProgMgr(
37            s3d_CDrvD3d9ProgCtx *ProgCtx);
38
39    s3d_CDrvGfxProgPtr CreateProg(
40            s3d_CUtilNotifGather *NotifGather, s3d_CUtilSnkChunk *Desc);
41    void InvalidateProg();
42    void SelectProg(
43            const s3d_CSysChar *Info, s3d_CDrvD3d9Prog *Prog,
44            const s3d_CSysChar *BufInfo, const s3d_CSysChar *BufDesc,
45            const s3d_CDrvD3d9VertDecl &VertDecl,
46            s3d_CDrvGfxParam_cr GfxParam,
47            const s3d_CDrvD3d9ParamBlk &ParamBlk,
48            s3d_CDrvD3d9ParamBlkState &ParamBlkState);
49    void TrackTransfBone(
50           s3d_CSysIntps BoneIdxCnt, const s3d_CSysInt32u *BoneIdxData,
51           s3d_CSysIntps MatBoneCnt, const D3DXMATRIXA16 *MatBoneArray);
52 
53    bool CheckVertBufIsCompatible(
54            const s3d_CDrvGfxProg *Prog,
55            const s3d_CSysChar *BufInfo, const s3d_CSysChar *BufDesc,
56            const s3d_CDrvD3d9VertDecl &VertDecl);
57
58private:
59    s3d_CDrvD3d9ProgCtxPtr m_ProgCtx;
60    s3d_CDrvD3d9ProgPtr m_CurProg;
61    bool m_ValidateProgBuf;
62
63    void ReportVertProgIncompatible(
64            s3d_CUtilStr_cr CodeInfo, s3d_CUtilStr_cr CodeName,
65            const s3d_CDrvD3d9ProgDecl &VertProgDecl,
66            const s3d_CSysChar *BufInfo, const s3d_CSysChar *BufDesc,
67            s3d_CSysIntps ElemCnt, const D3DVERTEXELEMENT9 *ElemArray);
68};
69
70//@
71typedef s3d_CUtilPtr<s3d_CDrvD3d9ProgMgr> s3d_CDrvD3d9ProgMgrPtr;
72
73///////////////////////////////////////////////////////////////////////////////
74
75#endif
Note: See TracBrowser for help on using the repository browser.