Remove some other emplace_back.
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "tracks/track.hpp"
|
||||
#include "graphics/camera.hpp"
|
||||
#include "utils/profiler.hpp"
|
||||
#include "utils/cpp2011.hpp"
|
||||
|
||||
using namespace irr;
|
||||
|
||||
@@ -141,16 +142,16 @@ void STKAnimatedMesh::render()
|
||||
|
||||
GLMesh* mesh;
|
||||
for_in(mesh, MeshSolidMaterial[MAT_DEFAULT])
|
||||
ListMatDefault::Arguments.emplace_back(mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
pushVector(ListMatDefault::Arguments, mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
|
||||
for_in(mesh, MeshSolidMaterial[MAT_ALPHA_REF])
|
||||
ListMatAlphaRef::Arguments.emplace_back(mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
pushVector(ListMatAlphaRef::Arguments, mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
|
||||
for_in(mesh, MeshSolidMaterial[MAT_DETAIL])
|
||||
ListMatDetails::Arguments.emplace_back(mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
pushVector(ListMatDetails::Arguments, mesh, AbsoluteTransformation, invmodel, mesh->TextureMatrix, irr_driver->getSceneManager()->getAmbientLight());
|
||||
|
||||
for_in(mesh, MeshSolidMaterial[MAT_UNLIT])
|
||||
ListMatUnlit::Arguments.emplace_back(mesh, AbsoluteTransformation, core::matrix4::EM4CONST_IDENTITY);
|
||||
pushVector(ListMatUnlit::Arguments, mesh, AbsoluteTransformation, core::matrix4::EM4CONST_IDENTITY);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -191,10 +192,10 @@ void STKAnimatedMesh::render()
|
||||
else
|
||||
{
|
||||
for_in(mesh, TransparentMesh[TM_DEFAULT])
|
||||
ListBlendTransparent::Arguments.emplace_back(mesh, AbsoluteTransformation, mesh->TextureMatrix);
|
||||
pushVector(ListBlendTransparent::Arguments, mesh, AbsoluteTransformation, mesh->TextureMatrix);
|
||||
|
||||
for_in(mesh, TransparentMesh[TM_ADDITIVE])
|
||||
ListAdditiveTransparent::Arguments.emplace_back(mesh, AbsoluteTransformation, mesh->TextureMatrix);
|
||||
pushVector(ListAdditiveTransparent::Arguments, mesh, AbsoluteTransformation, mesh->TextureMatrix);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "modes/world.hpp"
|
||||
#include "utils/helpers.hpp"
|
||||
#include "utils/tuple.hpp"
|
||||
#include "utils/cpp2011.hpp"
|
||||
|
||||
STKMeshSceneNode::STKMeshSceneNode(irr::scene::IMesh* mesh, ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
|
||||
const irr::core::vector3df& position,
|
||||
@@ -189,18 +190,6 @@ void STKMeshSceneNode::OnRegisterSceneNode()
|
||||
CMeshSceneNode::OnRegisterSceneNode();
|
||||
}
|
||||
|
||||
template<typename T, typename... Args>
|
||||
static void
|
||||
pushVector(std::vector<T> &vec, Args ...args)
|
||||
{
|
||||
|
||||
#if __cplusplus >= 201103 || _MSC_VER >=1800
|
||||
vec.emplace_back(args...);
|
||||
#else
|
||||
vec.push_back(T(args...));
|
||||
#endif
|
||||
}
|
||||
|
||||
void STKMeshSceneNode::render()
|
||||
{
|
||||
irr::video::IVideoDriver* driver = irr_driver->getVideoDriver();
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
#ifndef CPP2011_HPP
|
||||
#define CPP2011_HPP
|
||||
#include <vector>
|
||||
#if __cplusplus >= 201103 || _MSC_VER >=1800
|
||||
|
||||
#define OVERRIDE override
|
||||
@@ -8,3 +10,19 @@
|
||||
#define OVERRIDE
|
||||
|
||||
#endif
|
||||
|
||||
#if (__cplusplus >= 201103 || _MSC_VER >=1800) && !(defined(__clang__) && defined(__APPLE__))
|
||||
#define STDCPP2003
|
||||
#endif
|
||||
|
||||
|
||||
template<typename T, typename... Args>
|
||||
void pushVector(std::vector<T> &vec, Args ...args)
|
||||
{
|
||||
#ifdef STDCPP2003
|
||||
vec.push_back(T(args...));
|
||||
#else
|
||||
vec.emplace_back(args...);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user