Пример #1
0
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);
}
Пример #2
0
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);
}