X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fimmediate.h;h=89380c41310c3717a20db88b35d9b8ad95b22cc2;hb=927a1aa0a3a27e463ec0efc08bd08e7c4e969909;hp=b979973c10a859fcd3aa2203d7cf9f98b0b69ad1;hpb=85facfb688035b5bbc9a3a87d080582fbf34930b;p=libs%2Fgl.git diff --git a/source/immediate.h b/source/immediate.h index b979973c..89380c41 100644 --- a/source/immediate.h +++ b/source/immediate.h @@ -8,9 +8,7 @@ Distributed under the LGPL #ifndef MSP_GL_IMMEDIATE_H_ #define MSP_GL_IMMEDIATE_H_ -#include "primitivetype.h" -#include "vertexarray.h" -#include "vertexbuilder.h" +#include "primitivebuilder.h" namespace Msp { namespace GL { @@ -22,20 +20,19 @@ end() to terminate the batch. However, unlike OpenGL immediate mode, vertices are not drawn as they are specified. Instead, they are accumulated in a VertexArray and drawn when end() is called. */ -class Immediate: public VertexBuilder +class Immediate: public PrimitiveBuilder { -public: - Immediate(VertexFormat); - void begin(PrimitiveType); - void end(); private: VertexArray array; - RefPtr builder; - PrimitiveType type; - bool in_batch; - unsigned n_vertices; + std::vector indices; - virtual void vertex_(float, float, float, float); +public: + Immediate(VertexFormat); + void reset(); +private: + virtual void begin_() { } + virtual void end_(); + virtual void element_(unsigned); }; } // namespace GL