Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
statetable.cc File Reference
Include dependency graph for statetable.cc:

Go to the source code of this file.

Namespaces

 ion
 Copyright 2016 Google Inc.
 
 ion::gfx
 
 ion::base
 EnumHelper instantiations. These must be in the ion::base namespace.
 

Macros

#define ION_UPDATE_VALUE1(n)   data_.n = other.data_.n
 Definitions for each number of arguments. More...
 
#define ION_UPDATE_VALUE2(n1, n2)
 
#define ION_UPDATE_VALUE3(n1, n2, n3)
 
#define ION_UPDATE_VALUE4(n1, n2, n3, n4)
 
#define ION_UPDATE_VALUE5(n1, n2, n3, n4, n5)
 
#define ION_UPDATE_VALUE6(n1, n2, n3, n4, n5, n6)
 
#define ION_UPDATE_VALUE_(UPDATE_VALUE_MACRO,...)   UPDATE_VALUE_MACRO(__VA_ARGS__)
 
#define ION_UPDATE_VALUE(enum_name,...)
 This will call the right macro above by concatenating the macro name with the number of arguments. More...
 
#define ION_COPY_VAL(var)   data_.var = default_data.var
 
#define ION_INSTANTIATE_GETENUMSTRING(type)
 Enum to string utility functions. More...
 
#define ION_CHECK_ARRAYS(enums, strings)
 

Functions

 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (Capability)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (BlendEquation)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (BlendFunctionFactor)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (CullFaceMode)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (DepthFunction)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (FrontFaceMode)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (HintMode)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (StencilFunction)
 
 ion::gfx::ION_INSTANTIATE_GETENUMSTRING (StencilOperation)
 

Macro Definition Documentation

#define ION_CHECK_ARRAYS (   enums,
  strings 
)
Value:
ION_STATIC_ASSERT(ARRAYSIZE(enums) == ARRAYSIZE(strings), \
"Wrong size for " #strings)
#define ION_STATIC_ASSERT(expr, message)
Copyright 2016 Google Inc.
Definition: static_assert.h:35

Definition at line 509 of file statetable.cc.

Referenced by ion::base::EnumHelper::GetEnumData().

#define ION_COPY_VAL (   var)    data_.var = default_data.var
#define ION_INSTANTIATE_GETENUMSTRING (   type)
Value:
template <> ION_API const char* StateTable::GetEnumString(type value) { \
return base::EnumHelper::GetString(value); \
}
std::string type
Definition: printer.cc:353
double value

Enum to string utility functions.

Definition at line 482 of file statetable.cc.

#define ION_UPDATE_VALUE (   enum_name,
  ... 
)
Value:
if (state_to_test.IsValueSet(enum_name)) { \
data_.values_set.set(enum_name); \
__VA_ARGS__); \
}
#define ION_ARGCOUNT(...)
Definition: argcount.h:33
#define ION_UPDATE_VALUE_(UPDATE_VALUE_MACRO,...)
Definition: statetable.cc:65
#define ION_UPDATE_VALUE(enum_name,...)
This will call the right macro above by concatenating the macro name with the number of arguments...
Definition: statetable.cc:70
#define ION_ARGCOUNT_XCONCAT(a, b)
Definition: argcount.h:31

This will call the right macro above by concatenating the macro name with the number of arguments.

Definition at line 70 of file statetable.cc.

Referenced by ion::gfx::StateTable::MergeNonClearValuesFrom(), and ion::gfx::StateTable::MergeValuesFrom().

#define ION_UPDATE_VALUE1 (   n)    data_.n = other.data_.n

Definitions for each number of arguments.

Definition at line 49 of file statetable.cc.

#define ION_UPDATE_VALUE2 (   n1,
  n2 
)
Value:
data_.n2 = other.data_.n2
#define ION_UPDATE_VALUE1(n)
Definitions for each number of arguments.
Definition: statetable.cc:49

Definition at line 50 of file statetable.cc.

#define ION_UPDATE_VALUE3 (   n1,
  n2,
  n3 
)
Value:
data_.n3 = other.data_.n3
#define ION_UPDATE_VALUE2(n1, n2)
Definition: statetable.cc:50

Definition at line 53 of file statetable.cc.

#define ION_UPDATE_VALUE4 (   n1,
  n2,
  n3,
  n4 
)
Value:
ION_UPDATE_VALUE3(n1, n2, n3); \
data_.n4 = other.data_.n4
#define ION_UPDATE_VALUE3(n1, n2, n3)
Definition: statetable.cc:53

Definition at line 56 of file statetable.cc.

#define ION_UPDATE_VALUE5 (   n1,
  n2,
  n3,
  n4,
  n5 
)
Value:
ION_UPDATE_VALUE4(n1, n2, n3, n4); \
data_.n5 = other.data_.n5
#define ION_UPDATE_VALUE4(n1, n2, n3, n4)
Definition: statetable.cc:56

Definition at line 59 of file statetable.cc.

#define ION_UPDATE_VALUE6 (   n1,
  n2,
  n3,
  n4,
  n5,
  n6 
)
Value:
ION_UPDATE_VALUE5(n1, n2, n3, n4, n5); \
data_.n6 = other.data_.n6
#define ION_UPDATE_VALUE5(n1, n2, n3, n4, n5)
Definition: statetable.cc:59

Definition at line 62 of file statetable.cc.

#define ION_UPDATE_VALUE_ (   UPDATE_VALUE_MACRO,
  ... 
)    UPDATE_VALUE_MACRO(__VA_ARGS__)

Definition at line 65 of file statetable.cc.