#include <msp/gl/extensions/arb_draw_instanced.h>
#include <msp/gl/extensions/msp_primitive_restart.h>
#include "batch.h"
-#include "bindable.h"
#include "buffer.h"
#include "error.h"
#include "mesh.h"
void Batch::set_index_type(DataType t)
{
+ if(t==index_type)
+ return;
if(t!=UNSIGNED_SHORT && t!=UNSIGNED_INT)
throw invalid_argument("Batch::set_data_type");
if(t==UNSIGNED_SHORT && max_index>0xFFFE)
void Batch::draw() const
{
- BindRestore _bind_ibuf(get_buffer(), ELEMENT_ARRAY_BUFFER);
const void *data_ptr = setup_draw();
-
glDrawElements(prim_type, size(), gl_index_type, data_ptr);
}
{
static Require req(ARB_draw_instanced);
- BindRestore _bind_ibuf(get_buffer(), ELEMENT_ARRAY_BUFFER);
const void *data_ptr = setup_draw();
-
glDrawElementsInstanced(prim_type, size(), gl_index_type, data_ptr, count);
}