Exemplo n.º 1
0
void finalize_toolkit_label(struct toolkit_label *self)
{
	destroy_renderer_texture(self->image[0].texture);
	if (self->image[1].texture)
		destroy_renderer_texture(self->image[1].texture);
	finalize_toolkit_image(&self->image[0]);
	finalize_toolkit_image(&self->image[1]);
	finalize_rgba(&self->rgba);
}
Exemplo n.º 2
0
struct renderer_texture *make_texture(struct renderer *renderer,
				      const char *skin_id, const char *data_id)
{
	struct renderer_texture *texture = NULL;
	struct data_entry *entry;
	struct image_data *data;
	struct rgba rgba;
	if (get_image_data(skin_id, data_id, NULL, &entry, &data))
		goto bail_out;
	if (!initialize_rgba(&rgba, data->w, data->h)) {
		copy_rgba(data->rgba, *data->x, *data->y, data->w, data->h,
			  &rgba, 0, 0);
		texture = create_renderer_texture(renderer, &rgba);
		finalize_rgba(&rgba);
	} else
		log_w(_s("out of memory"));
	put_image_data(entry, data);
bail_out:
	return texture;
}
Exemplo n.º 3
0
static int initialize_menu_renderer_image(
	struct menu_renderer_image *self, struct renderer *renderer,
	const struct b6_clock *clock, float x, float y, float w, float h,
	float pos, float speed, const char *skin_id, const char *data_id,
	const struct renderer_observer_ops *ops)
{
	struct renderer_base *root = get_renderer_base(renderer);
	struct renderer_texture *texture[2];
	struct data_entry *entry;
	struct image_data *data;
	struct rgba rgba;
	self->base = NULL;
	if (get_image_data(skin_id, data_id, NULL, &entry, &data))
		return -1;
	initialize_rgba(&rgba, data->w, data->h);
	copy_rgba(data->rgba, *data->x, *data->y, data->w, data->h,
		  &rgba, 0, 0);
	texture[0] = create_renderer_texture_or_die(renderer, &rgba);
	make_shadow_rgba(&rgba);
	texture[1] = create_renderer_texture_or_die(renderer, &rgba);
	finalize_rgba(&rgba);
	self->base = create_renderer_base_or_die(renderer, root, "base", x, y);
	self->tile[1] = create_renderer_tile_or_die(
		renderer, create_renderer_base_or_die(renderer, self->base,
						      "shadow", 3, 3),
		0, 0, w, h, texture[1]);
	self->tile[0] = create_renderer_tile_or_die(
		renderer, create_renderer_base_or_die(renderer, self->base,
						      "image", 0, 0),
		0, 0, w, h, texture[0]);
	put_image_data(entry, data);
	if (ops->on_render == menu_renderer_image_on_render_v)
		setup_linear(&self->linear, clock, self->base->y, pos, speed);
	else
		setup_linear(&self->linear, clock, self->base->x, pos, speed);
	add_renderer_observer(renderer, setup_renderer_observer(
			&self->renderer_observer, data_id, ops));
	return 0;
}
Exemplo n.º 4
0
void finalize_fixed_font(struct fixed_font *self)
{
	int i;
	for (i = 0; i < b6_card_of(self->rgba); i += 1)
		finalize_rgba(&self->rgba[i]);
}