/
genmaterial.hpp
52 lines (39 loc) · 1.59 KB
/
genmaterial.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// This file is distributed under a BSD license. See LICENSE.txt for details.
#ifndef __GENMATERIAL__
#define __GENMATERIAL__
#include "_types.hpp"
#include "kdoc.hpp"
class GenBitmap;
class GenMesh;
/****************************************************************************/
struct GenMaterialPass
{
sMaterial *Mtrl; // actual material
sInt Usage; // material usage
sInt Program; // finalizer
sInt Pass; // render pass
sF32 Size; // parameter to finalizer
sF32 Aspect; // parameter to finalizer
};
class GenMaterial : public KObject
{
public:
GenMaterial();
~GenMaterial();
void Copy(KObject *);
KObject *Copy();
// doesn't change mtrl reference count
void AddPass(sMaterial *mtrl,sInt use,sInt program,sInt pass=0,sF32 size=1.0f,sF32 aspect=1.0f);
sArray<GenMaterialPass> Passes;
class EngMaterialInsert *Insert;
};
/****************************************************************************/
GenMaterial * __stdcall Init_Material_Material(KOp *op);
void __stdcall Exec_Material_Material(KOp *op,KEnvironment *kenv);
GenMesh * __stdcall Mesh_MatLink(GenMesh *mesh,GenMaterial *mtrl,sInt mask,sInt pass);
GenMaterial * __stdcall Material_Add(sInt count,GenMaterial *m0,...);
GenMaterial * __stdcall Init_Material_Material20(KOp *op);
void __stdcall Exec_Material_Material20(KOp *op,KEnvironment *kenv);
/****************************************************************************/
/****************************************************************************/
#endif