charcoal/OpenGLEngine/Batched.h
elipzer d196e42522 Added a plane to the shadowed scene.
Also fixed multiple batches failing from vector resizing. Now
using a list as the back end for batched scenes.
2018-09-20 13:53:06 -04:00

29 lines
696 B
C++

#pragma once
#include <list>
namespace charcoal
{
namespace builtin
{
template <typename RenderableType, typename BatchType>
class Batched
{
protected:
BatchType& add_batch(RenderableType* renderable, int element_count)
{
return add_batch(renderable, element_count, element_count);
}
BatchType& add_batch(RenderableType* renderable, int element_count, int element_render_count)
{
m_batches.emplace_back(renderable, element_count, element_render_count);
return m_batches.back();
}
// Since the intention is to access the batches through the returned references,
// it is better to store them in a list.
std::list<BatchType> m_batches;
};
}
}