NW4F G3d
Loading...
Searching...
No Matches
g3d_ResShaderParamAnim.h
Go to the documentation of this file.
1#ifndef NW_G3D_RES_RESSHADERPARAMANIM_H_
2#define NW_G3D_RES_RESSHADERPARAMANIM_H_
3
4#include <nw/g3d/g3d_config.h>
5#include <nw/g3d/res/g3d_ResCommon.h>
6#include <nw/g3d/res/g3d_ResDictionary.h>
7#include <nw/g3d/res/g3d_ResAnimCurve.h>
8#include <nw/g3d/res/g3d_ResModel.h>
9#include <nw/g3d/res/g3d_Binding.h>
10
11namespace nw { namespace g3d { namespace res {
12
28
30{
32
33public:
45
46 void PreBind(const ResMaterial* target);
47
48 void Eval(void* pResult, float frame, const u16* pSubBindIndex) const
49 {
50 EvalImpl<false>(pResult, frame, pSubBindIndex, NULL);
51 }
52
53 void Eval(void* pResult, float frame, const u16* pSubBindIndex,
54 AnimFrameCache* pFrameCache) const
55 {
56 EvalImpl<true>(pResult, frame, pSubBindIndex, pFrameCache);
57 }
58
59 int GetParamAnimCount() const { return ref().numAnimParam; }
61 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResAnimCurve, Curve)
62 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResAnimConstant, Constant)
63
64protected:
65 template <bool useContext>
66 void EvalImpl(void* pResult, float frame, const u16* pSubBindIndex,
67 AnimFrameCache* pFrameCache) const;
68};
69
90
92{
94
95public:
96 enum Signature { SIGNATURE = NW_G3D_MAKE_U8X4_AS_U32('F', 'S', 'H', 'U') };
97
103
105
106 bool BakeCurve(void* pBuffer, size_t bufferSize);
107
108 void* ResetCurve();
109
110 void Reset();
111
112 bool IsLooped() const { return 0 != (ref().flag & PLAYPOLICY_LOOP); }
113
114 bool IsCurveBaked() const { return 0 != (ref().flag & CURVE_BAKED); }
115
116 int GetFrameCount() const { return ref().numFrame; }
117
118 int GetParamAnimCount() const { return ref().numParamAnim; }
119
120 int GetCurveCount() const { return ref().numCurve; }
121
122 size_t GetBakedSize() const { return ref().bakedSize; }
123
126 NW_G3D_RES_FIELD_CLASS_DECL(ResModel, BindModel)
127 NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(ResShaderParamMatAnim, MatAnim)
128
129 NW_G3D_RES_FIELD_DIC_DECL(ResUserData, UserData)
130};
131
132} } } // namespace nw::g3d::res
133
134#endif // NW_G3D_RES_RESSHADERPARAMANIM_H_
Definition g3d_ResCommon.h:93
Definition g3d_Binding.h:16
Definition g3d_ResCommon.h:62
Definition g3d_ResMaterial.h:375
Definition g3d_ResModel.h:38
Definition g3d_ResShaderParamAnim.h:92
int GetParamAnimCount() const
Definition g3d_ResShaderParamAnim.h:118
size_t GetBakedSize() const
Definition g3d_ResShaderParamAnim.h:122
int GetCurveCount() const
Definition g3d_ResShaderParamAnim.h:120
bool IsLooped() const
Definition g3d_ResShaderParamAnim.h:112
Flag
Definition g3d_ResShaderParamAnim.h:99
@ PLAYPOLICY_LOOP
Definition g3d_ResShaderParamAnim.h:101
@ CURVE_BAKED
Definition g3d_ResShaderParamAnim.h:100
Signature
Definition g3d_ResShaderParamAnim.h:96
@ SIGNATURE
Definition g3d_ResShaderParamAnim.h:96
bool IsCurveBaked() const
Definition g3d_ResShaderParamAnim.h:114
int GetFrameCount() const
Definition g3d_ResShaderParamAnim.h:116
bool BakeCurve(void *pBuffer, size_t bufferSize)
BindResult PreBind(const ResModel *pModel)
Definition g3d_ResShaderParamAnim.h:30
void Eval(void *pResult, float frame, const u16 *pSubBindIndex, AnimFrameCache *pFrameCache) const
Definition g3d_ResShaderParamAnim.h:53
void Eval(void *pResult, float frame, const u16 *pSubBindIndex) const
Definition g3d_ResShaderParamAnim.h:48
void EvalImpl(void *pResult, float frame, const u16 *pSubBindIndex, AnimFrameCache *pFrameCache) const
Definition g3d_ResShaderParamAnim.cpp:7
void PreBind(const ResMaterial *target)
int GetParamAnimCount() const
Definition g3d_ResShaderParamAnim.h:59
#define NW_G3D_RES_COMMON(class_name)
Definition g3d_ResCommon.h:30
#define NW_G3D_RES_FIELD_CLASS_ARRAY_DECL(type, name)
Definition g3d_ResDefs.h:92
#define NW_G3D_RES_FIELD_CLASS_DECL(type, name)
Definition g3d_ResDefs.h:124
#define NW_G3D_RES_FIELD_STRING_DECL(name)
Definition g3d_ResDefs.h:137
#define NW_G3D_RES_FIELD_DIC_DECL(type, name)
Definition g3d_ResDefs.h:51
u32 bit32
Definition g3d_defs.h:131
#define NW_G3D_MAKE_U8X4_AS_U32(a, b, c, d)
Definition g3d_defs.h:90
Definition g3d_defs.h:122
Definition g3d_GfxManage.cpp:10
Definition g3d_ResAnimCurve.h:13
@ PLAYPOLICY_LOOP
Definition g3d_ResAnimCurve.h:18
@ CURVE_BAKED
Definition g3d_ResAnimCurve.h:16
Definition g3d_ResAnimCurve.h:25
Definition g3d_ResCommon.h:179
Definition g3d_ResShaderParamAnim.h:71
Offset ofsMatAnimArray
Definition g3d_ResShaderParamAnim.h:87
bit32 flag
Definition g3d_ResShaderParamAnim.h:76
BinString ofsPath
Definition g3d_ResShaderParamAnim.h:74
u16 numMatAnim
Definition g3d_ResShaderParamAnim.h:78
s32 numParamAnim
Definition g3d_ResShaderParamAnim.h:79
Offset ofsUserDataDic
Definition g3d_ResShaderParamAnim.h:88
u32 bakedSize
Definition g3d_ResShaderParamAnim.h:81
Offset ofsBindIndexArray
Definition g3d_ResShaderParamAnim.h:86
s16 numFrame
Definition g3d_ResShaderParamAnim.h:77
BinaryBlockHeader blockHeader
Definition g3d_ResShaderParamAnim.h:72
u16 numUserData
Definition g3d_ResShaderParamAnim.h:82
u16 reserved
Definition g3d_ResShaderParamAnim.h:83
BinString ofsName
Definition g3d_ResShaderParamAnim.h:73
s32 numCurve
Definition g3d_ResShaderParamAnim.h:80
Offset ofsBindModel
Definition g3d_ResShaderParamAnim.h:85
Definition g3d_ResShaderParamAnim.h:14
Offset ofsCurveArray
Definition g3d_ResShaderParamAnim.h:25
Offset ofsConstantArray
Definition g3d_ResShaderParamAnim.h:26
BinString ofsName
Definition g3d_ResShaderParamAnim.h:22
s32 beginCurve
Definition g3d_ResShaderParamAnim.h:19
u16 numConstant
Definition g3d_ResShaderParamAnim.h:17
Offset ofsParamAnimInfoArray
Definition g3d_ResShaderParamAnim.h:24
s32 beginParamAnim
Definition g3d_ResShaderParamAnim.h:20
u16 numCurve
Definition g3d_ResShaderParamAnim.h:16
u16 reserved
Definition g3d_ResShaderParamAnim.h:18
u16 numAnimParam
Definition g3d_ResShaderParamAnim.h:15
Definition g3d_ResShaderParamAnim.h:35
u16 subbindIndex
Definition g3d_ResShaderParamAnim.h:41
u16 numConstant
Definition g3d_ResShaderParamAnim.h:40
BinString ofsName
Definition g3d_ResShaderParamAnim.h:43
u16 numIntCurve
Definition g3d_ResShaderParamAnim.h:38
u16 beginCurve
Definition g3d_ResShaderParamAnim.h:36
u16 numFloatCurve
Definition g3d_ResShaderParamAnim.h:37
u16 beginConstant
Definition g3d_ResShaderParamAnim.h:39