Use emplace_back when a new object is being constructed
Use default member initializers for simple types Also mark special member functions as defaulted instead of defining them as empty.
Use constructor delegation instead of init functions when possible
Use C++11 features with containers
Add inline data items to the collection This simplifies the internals of various objects and does away with the special keep() semantic of RefPtr. Blend and DepthTest will be handled separately as part of rendering state rework.
Rearrange soucre files into subdirectories