NW4F G3d
Loading...
Searching...
No Matches
g3d_Binding.h
Go to the documentation of this file.
1#ifndef NW_G3D_RES_BINDING_H_
2#define NW_G3D_RES_BINDING_H_
3
4#include <nw/g3d/g3d_config.h>
5
6namespace nw { namespace g3d { namespace res {
7
9{
10 BIND_TEXTURE = 0x1 << 0,
11
12 BIND_FUNCTION = 0x1 << 0
13};
14
16{
17public:
18 BindResult() : flag(0) {}
19
21 {
22 NW_G3D_ASSERT(mask <= MASK_ALL);
23 return BindResult(mask << SHIFT_SUCCESS);
24 }
25
27 {
28 NW_G3D_ASSERT(mask <= MASK_ALL);
29 return BindResult(mask << SHIFT_FAILURE);
30 }
31
33 {
34 NW_G3D_ASSERT(mask <= MASK_ALL);
35 return 0 == ((flag >> SHIFT_FAILURE) & mask);
36 }
37
38 bool IsMissed(bit32 mask = MASK_ALL)
39 {
40 NW_G3D_ASSERT(mask <= MASK_ALL);
41 return 0 == ((flag >> SHIFT_SUCCESS) & mask);
42 }
43
44 const BindResult operator|(BindResult rhs) const { return BindResult(*this) |= rhs; }
45
47 {
48 flag |= rhs.flag;
49 return *this;
50 }
51
52private:
53 enum
54 {
57 MASK_ALL = 0xFFFF
58 };
59
60 explicit BindResult(bit32 flag) : flag(flag) {}
61
63};
64
65} } } // namespace nw::g3d
66
67#endif // NW_G3D_RES_BINDING_H_
Definition g3d_Binding.h:16
@ MASK_ALL
Definition g3d_Binding.h:57
@ SHIFT_SUCCESS
Definition g3d_Binding.h:56
@ SHIFT_FAILURE
Definition g3d_Binding.h:55
bool IsComplete(bit32 mask=MASK_ALL)
Definition g3d_Binding.h:32
const BindResult operator|(BindResult rhs) const
Definition g3d_Binding.h:44
static BindResult Bound(bit32 mask=MASK_ALL)
Definition g3d_Binding.h:20
BindResult()
Definition g3d_Binding.h:18
bool IsMissed(bit32 mask=MASK_ALL)
Definition g3d_Binding.h:38
BindResult & operator|=(BindResult rhs)
Definition g3d_Binding.h:46
BindResult(bit32 flag)
Definition g3d_Binding.h:60
bit32 flag
Definition g3d_Binding.h:62
static BindResult NotBound(bit32 mask=MASK_ALL)
Definition g3d_Binding.h:26
#define NW_G3D_ASSERT(exp)
Definition g3d_assert.h:17
u32 bit32
Definition g3d_defs.h:131
Definition g3d_defs.h:122
BindTarget
Definition g3d_Binding.h:9
@ BIND_FUNCTION
Definition g3d_Binding.h:12
@ BIND_TEXTURE
Definition g3d_Binding.h:10
Definition g3d_GfxManage.cpp:10