#include "bindable.h"
#include "buffer.h"
#include "error.h"
-#include "extension.h"
+#include "ext_draw_range_elements.h"
#include "nv_primitive_restart.h"
#include "vertexarray.h"
next_in_ibuf(0),
prev_in_ibuf(0),
dirty(false)
-{ }
+{
+ /* XXX Should probably provide a fallback to glDrawElements since this class
+ is pretty much required to render anything. */
+ static Require _req(EXT_draw_range_elements);
+}
Batch::~Batch()
{
else if(prim_type==POLYGON)
throw incompatible_data("Batch::append");
else if(prim_type==TRIANGLE_FAN)
- static RequireExtension _ext("GL_NV_primitive_restart");
+ static Require _req(NV_primitive_restart);
if(other.data.empty())
return;
- if(is_supported("GL_NV_primitive_restart"))
+ if(NV_primitive_restart)
{
restart = true;
if(data_type==UNSIGNED_SHORT)
BufferAlias<ELEMENT_ARRAY_BUFFER> alias(*ibuf);
Bind bind_ibuf(alias, true);
- glDrawRangeElements(prim_type, min_index, max_index, size(), data_type, (void *)ibuf_offset);
+ glDrawRangeElements(prim_type, min_index, max_index, size(), data_type, reinterpret_cast<void *>(ibuf_offset));
}
else
glDrawRangeElements(prim_type, min_index, max_index, size(), data_type, &data[0]);