ShapeWrapperBase( Iterator names_begin, Iterator names_end, const ShapeBuilder& builder ): _face_winding(builder.FaceWinding()) , _shape_instr(builder.Instructions()) , _index_info(builder) , _vbos(std::distance(names_begin, names_end)+1) , _npvs(std::distance(names_begin, names_end)+1, 0) , _names(std::distance(names_begin, names_end)) { this->_init( builder, builder.Indices(), names_begin, names_end ); }
void Draw(void) { vao.Bind(); gl.FrontFace(make_shape.FaceWinding()); shape_instr.Draw(shape_indices, 1); }
void Draw(const std::function<bool (GLuint)>& drawing_driver) { vao.Bind(); gl.FrontFace(make_shape.FaceWinding()); shape_instr.Draw(shape_indices, 1, 0, drawing_driver); }