Skip to content

Instantly share code, notes, and snippets.

@czlc
Created February 24, 2016 05:57
Show Gist options
  • Save czlc/fe4a4694bb885c73b06b to your computer and use it in GitHub Desktop.
Save czlc/fe4a4694bb885c73b06b to your computer and use it in GitHub Desktop.
union {
struct sprite * children[1];
struct rich_text * rich_text;
int scissor;
struct anchor_data *anchor;
struct pack_polygon *polygon;
} data;
int
sprite_size(struct sprite_pack *pack, int id) {
else if (type == TYPE_POLYGON) {
offset_t *data = OFFSET_TO_POINTER(offset_t, pack, pack->data);
struct pack_polygon_data * poly = OFFSET_TO_POINTER(struct pack_polygon_data, pack, data[id]);
return sizeof(struct sprite) + sizeof (pack_polygon) + (poly->n - 1) * sizeof(struct pack_poly *) ;
}
}
void
sprite_init(struct sprite * s, struct sprite_pack * pack, int id, int sz) {
else if (s->type == TYPE_POLYGON) {
struct pack_polygon_data * polygon = (struct pack_polygon_data *)s->s.poly;
s->data.polygon = (struct pack_polygon *)(s + 1);
s->data.polygon->n = polygon->n;
int i;
for (i=0; i<polygon->n; i++) {
s->data.polygon->poly[i].texture_coord = OFFSET_TO_POINTER(uv_t, pack, polygon->poly[i].texture_coord);
s->data.polygon->poly[i].screen_coord = OFFSET_TO_POINTER(int32_t, pack, polygon->poly[i].screen_coord);
s->data.polygon->poly[i].texid = polygon->poly[i].texid;
s->data.polygon->poly[i].n = polygon->poly[i].n;
}
s->s.poly = s->data.polygon;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment