}
void
-c3context_prepare(
+c3context_dispose(
+ c3context_p c)
+{
+ c3object_dispose(c->root);
+ c3geometry_array_free(&c->projected);
+ free(c);
+}
+
+void
+c3context_project(
c3context_p c)
{
if (!c->root || !c->root->dirty)
c3context_draw(
c3context_p c)
{
- c3context_prepare(c);
+ c3context_project(c);
for (int gi = 0; gi < c->projected.count; gi++) {
c3geometry_p g = c->projected.e[gi];
- C3_DRIVER(c, geometry_draw, g);
+ c3geometry_draw(g);
}
}