summaryrefslogtreecommitdiffstats
path: root/src/render/renderstates/renderstates_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-07-01 12:42:12 +0200
committerPaul Lemire <paul.lemire@kdab.com>2016-07-05 13:24:49 +0000
commit26f300ee760888ad7dfc41fd6751f756592a9094 (patch)
tree6da544bd04c794d8c8eeff33659665fd93258526 /src/render/renderstates/renderstates_p.h
parent07a81c85745ce189e633b66c51fd328d7666734e (diff)
RenderStates: getOrCreateRenderStateImpl -> use variadic templates
Change-Id: Ia7ccfb6186e1ff1f95e09e643770024cfc2ef79e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/renderstates/renderstates_p.h')
-rw-r--r--src/render/renderstates/renderstates_p.h38
1 files changed, 3 insertions, 35 deletions
diff --git a/src/render/renderstates/renderstates_p.h b/src/render/renderstates/renderstates_p.h
index 207c6ff05..0f495c84e 100644
--- a/src/render/renderstates/renderstates_p.h
+++ b/src/render/renderstates/renderstates_p.h
@@ -59,43 +59,11 @@ QT_BEGIN_NAMESPACE
namespace Qt3DRender {
namespace Render {
-template <class State, class S>
-State* getOrCreateRenderStateImpl(const S& m1)
+template<class State, typename ... Args>
+State *getOrCreateRenderStateImpl(Args... values)
{
State state;
- state.set(m1);
- return getOrCreateRenderStateEqualTo<State>(state);
-}
-
-template <class State, class S, class T>
-State* getOrCreateRenderStateImpl(const S& m1, const T& m2)
-{
- State state;
- state.set(m1, m2);
- return getOrCreateRenderStateEqualTo<State>(state);
-}
-
-template <class State, class S, class T, class U>
-State* getOrCreateRenderStateImpl(const S& m1, const T& m2, const U& m3)
-{
- State state;
- state.set(m1, m2, m3);
- return getOrCreateRenderStateEqualTo<State>(state);
-}
-
-template <class State, class S, class T, class U, class V>
-State* getOrCreateRenderStateImpl(const S& m1, const T& m2, const U& m3, const V& m4)
-{
- State state;
- state.set(m1, m2, m3, m4);
- return getOrCreateRenderStateEqualTo<State>(state);
-}
-
-template <class State, class S, class T, class U, class V, class W, class Z>
-State* getOrCreateRenderStateImpl(const S& m1, const T& m2, const U& m3, const V& m4, const W& m5, const Z& m6)
-{
- State state;
- state.set(m1, m2, m3, m4, m5, m6);
+ state.set(values...);
return getOrCreateRenderStateEqualTo<State>(state);
}