public:
void set_pipeline_key(std::uintptr_t);
+ void set_pipeline_key(const void *p) { set_pipeline_key(reinterpret_cast<uintptr_t>(p)); }
+
+ template<typename T>
+ void set_pipeline_key(std::uintptr_t k, T d)
+ { set_pipeline_key(k^(static_cast<uintptr_t>(d)<<((sizeof(std::uintptr_t)-sizeof(T))*std::numeric_limits<char>::digits))); }
+
+ template<typename T>
+ void set_pipeline_key(const void *p, T d) { set_pipeline_key(reinterpret_cast<uintptr_t>(p), d); }
/** Sets the camera to render from. The model matrix is reset to identity. */
void set_camera(const Camera &);