void ActionQueue::addAction(Action* action, int stacking_delay) { BatchAction* batch = createBatch(action->getType()); batch->addAndCommitAction(action); if(batch->size() == 0) { delete batch; return; } addBatch(batch, stacking_delay); }
void FlatShadedMesh::init(int nraw_vertices, int ntriangles) { nraw_vertices_ = nraw_vertices; ntriangles_ = ntriangles; nvertices_ = ntriangles_ * 3; raw_vertices_ = new vertex_t[nraw_vertices_]; raw_indices_ = new int[ntriangles_ * 3]; Program *p = new Program(shader_vertex, shader_fragment); Material *m = new Material(p); //m->setUniform("uv3_l1_pos", vec3f(6.,-7.,8.f)); m->setUniform("uv3_l1_pos", vec3f(1,1,.2f).normalized()); m->setUniform("uv3_l1_color", vec3f(.8f, .6f, .2f)); Batch *b = new Batch(m); vertices_ = new Buffer(); vertices_->alloc(nvertices_ * sizeof(vertex_t), Buffer::StreamDraw); buf_vertices_ = new vertex_t[nvertices_]; b->setGeometry(Batch::GeometryTriangleList, 0, nvertices_); b->setAttribSource("av3_pos", vertices_, 3, 0, sizeof(vertex_t)); b->setAttribSource("av3_normal", vertices_, 3, sizeof(vec3f), sizeof(vertex_t)); b->setAttribSource("av3_v", vertices_, 3, 2*sizeof(vec3f), sizeof(vertex_t)); addBatch(b); }