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

Revision 2236, 4.2 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_PROG_H
16#define S3D_DRV_D3D9_PROG_H
17
18#include "drv_d3d9_types.h"
19#include "drv_d3d9_env.h"
20#include "drv_d3d9_param.h"
21#include "drv_d3d9_paramblk.h"
22
23///////////////////////////////////////////////////////////////////////////////
24
25struct s3d_CDrvD3d9VertBufDesc;
26
27///////////////////////////////////////////////////////////////////////////////
28
29struct s3d_CDrvD3d9VertComprFmt
30        : public s3d_CUtilPtrBase
31{
32    int m_Normal;
33    int m_BoneWgh;
34    //int m_SampTexArray[S3D_DRV_D3D9_MAX_ATTR_CNT];
35};
36
37//@
38typedef s3d_CUtilPtr<s3d_CDrvD3d9VertComprFmt> s3d_CDrvD3d9VertComprFmtPtr;
39
40///////////////////////////////////////////////////////////////////////////////
41
42//@
43struct s3d_CDrvD3d9ProgCtx
44        : public s3d_CUtilPtrBase
45{
46    s3d_CUtilMsgHandlerPtr m_MsgHandler;
47    s3d_CCompResMgrPtr m_ResMgr;
48    s3d_CUtilMemPoolPtr m_MemPool;
49    s3d_CUtilAtomMgrPtr m_AtomMgr;
50    s3d_CCompSupplPtr m_UnivProgSuppl;
51    s3d_CCompSupplPtr m_UnivProgGivenSuppl;
52
53    s3d_CDrvD3d9Env *m_Env;
54    s3d_CDrvD3d9ParamPtr m_D3dParam;
55    s3d_CDrvD3d9Device m_D3dDev;
56
57    DWORD m_MaxVS;
58    DWORD m_MaxPS;
59    int m_MaxLightCnt;
60    int m_MaxAttrCnt;
61    int m_MaxSampCnt;
62};
63
64//@
65typedef s3d_CUtilPtr<s3d_CDrvD3d9ProgCtx> s3d_CDrvD3d9ProgCtxPtr;
66
67///////////////////////////////////////////////////////////////////////////////
68
69//@
70struct s3d_CDrvD3d9ProgDecl
71{
72    s3d_CSysIntps m_SemanticsCnt;
73    s3d_CUtilOwnArray<D3DXSEMANTIC> m_SemanticArray;
74    int m_ProgUsage;
75
76    s3d_CDrvD3d9ProgDecl();
77};
78
79///////////////////////////////////////////////////////////////////////////////
80
81//@
82struct s3d_CDrvD3d9Prog
83        : public s3d_CDrvGfxProg
84{
85    s3d_CDrvD3d9Prog();
86    ~s3d_CDrvD3d9Prog();
87
88    //@
89    virtual void TrackParams(
90            s3d_CDrvGfxParam_cr GfxParam,
91            const s3d_CDrvD3d9ParamBlk &ParamBlk,
92            const s3d_CDrvD3d9ParamBlkState &ParamBlkState);
93
94    //@
95    virtual void TrackTransfBone(
96            s3d_CSysIntps BoneIdxCnt, const s3d_CSysInt32u *BoneIdxData,
97            s3d_CSysIntps MatBoneCnt, const D3DXMATRIXA16 *MatBoneArray);
98
99    //@
100    virtual void CalcVertBufDesc(
101            const s3d_CDrvGfxCharge *Charge,
102            s3d_CDrvD3d9VertBufDesc &VertBufDesc) const;
103
104    //@
105    s3d_CUtilStr_cr GetInfo() const;
106   
107    //@
108    virtual void GetVertProgCodeInfoName(
109            s3d_CUtilStr &CodeInfo, s3d_CUtilStr &CodeName) const;
110
111    //@
112    virtual void GetPixProgCodeInfoName(
113            s3d_CUtilStr &CodeInfo, s3d_CUtilStr &CodeName) const;
114
115    //@
116    virtual bool IsValid();
117
118    enum CUsage
119    {
120        Usage_BoneWgh       = (1 << 0),
121        Usage_BoneSubscr    = (1 << 1),
122    };
123
124
125    s3d_CDrvD3d9ProgCtxPtr m_ProgCtx;
126    s3d_CDrvD3d9ProgDecl m_VertProgDecl;
127    s3d_CDrvD3d9VertComprFmtPtr m_VertComprFmt;
128
129    s3d_CDrvD3d9VertShader m_VertShader;
130    s3d_CDrvD3d9PixShader m_PixShader;
131    s3d_CUtilStr m_Info;
132    s3d_CUtilMsgHandlerPtr m_ReportMsgHandler;
133    s3d_CDrvGfxUnivProgPtr m_UnivProg;
134};
135
136S3D_UTIL_RECOG_DECLAREINFO(s3d_CDrvD3d9Prog);
137
138//@
139typedef s3d_CUtilPtr<s3d_CDrvD3d9Prog> s3d_CDrvD3d9ProgPtr;
140
141///////////////////////////////////////////////////////////////////////////////
142// Definitions
143
144S3D_SYS_INLINE
145s3d_CDrvD3d9ProgDecl::s3d_CDrvD3d9ProgDecl()
146{
147    m_SemanticsCnt = 0;
148    m_ProgUsage = 0;
149}
150
151///////////////////////////////////////////////////////////////////////////////
152
153S3D_SYS_INLINE
154s3d_CUtilStr_cr s3d_CDrvD3d9Prog::GetInfo() const
155{
156    return m_Info;
157}
158
159S3D_SYS_INLINE
160bool s3d_CDrvD3d9Prog::IsValid()
161{
162    return true;
163}
164
165///////////////////////////////////////////////////////////////////////////////
166
167#endif
Note: See TracBrowser for help on using the repository browser.