10class ScnProc :
public ScnLeaf {
12 typedef void (*DrawProc)(ScnProc* pProc,
bool opa);
15 static ScnProc* Construct(
MEMAllocator* pAllocator,
size_t* pSize,
16 DrawProc pProc,
bool opa,
bool xlu,
size_t userData);
18 ScnProc(
MEMAllocator* pAllocator, DrawProc pProc,
void* pUserData,
bool opa,
20 : ScnLeaf(pAllocator),
23 mpUserData(pUserData) {
26 mFlag |= SCNPROCFLAG_DRAW_OPA;
30 mFlag |= SCNPROCFLAG_DRAW_XLU;
34 virtual void G3dProc(ulong task, ulong param,
void* pInfo);
37 void SetDrawProc(DrawProc pProc,
bool opa,
bool xlu) {
41 mFlag |= SCNPROCFLAG_DRAW_OPA;
43 mFlag &= ~SCNPROCFLAG_DRAW_OPA;
47 mFlag |= SCNPROCFLAG_DRAW_XLU;
49 mFlag &= ~SCNPROCFLAG_DRAW_XLU;
53 void SetUserData(
void* pData) {
62 SCNPROCFLAG_DRAW_OPA = (1 << 0),
63 SCNPROCFLAG_DRAW_XLU = (1 << 1)
71 NW4R_G3D_RTTI_DECL_DERIVED(ScnProc, ScnLeaf);