Exemplo n.º 1
0
// -----------------------------------------------------------------
// render block and a box surrounding it
// -----------------------------------------------------------------
void render_block_boxed(Block* block, SpriteBatchBuffer* buffer, ds::Color* colors) {
	float r = 0.0f;
	ds::vec2 p = ds::vec2(block->position.x, block->position.y) + ds::vec2(HALF_SQUARE_SIZE, HALF_SQUARE_SIZE);
	ds::vec4 t(220, 140, 78, 78);
	if (block->rotating) {
		float norm = block->rotationTimer / ROTATION_TIME;
		r = norm * ds::PI * 0.5f;
	}
	buffer->add(p, t, ds::vec2(1, 1), r, { 64,64,64,255 });
	render_block(block, buffer, colors);
}
Exemplo n.º 2
0
void render(struct output *output, struct config *config, struct status_line *line) {
	int i;

	struct window *window = output->window;
	cairo_t *cairo = window->cairo;

	// Clear
	cairo_save(cairo);
	cairo_set_operator(cairo, CAIRO_OPERATOR_CLEAR);
	cairo_paint(cairo);
	cairo_restore(cairo);

	// Background
	cairo_set_source_u32(cairo, config->colors.background);
	cairo_paint(cairo);

	// Command output
	cairo_set_source_u32(cairo, config->colors.statusline);
	int width, height;

	if (line->protocol == TEXT) {
		get_text_size(window->cairo, window->font, &width, &height, "%s", line->text_line);
		cairo_move_to(cairo, window->width - margin - width, margin);
		pango_printf(window->cairo, window->font, "%s", line->text_line);
	} else if (line->protocol == I3BAR && line->block_line) {
		double pos = window->width - 0.5;
		bool edge = true;
		for (i = line->block_line->length - 1; i >= 0; --i) {
			struct status_block *block = line->block_line->items[i];
			if (block->full_text && block->full_text[0]) {
				render_block(window, config, block, &pos, edge);
				edge = false;
			}
		}
	}

	cairo_set_line_width(cairo, 1.0);
	double x = 0.5;

	// Workspaces
	if (config->workspace_buttons) {
		for (i = 0; i < output->workspaces->length; ++i) {
			struct workspace *ws = output->workspaces->items[i];
			render_workspace_button(window, config, ws, &x);
		}
	}

	// binding mode indicator
	if (config->mode && config->binding_mode_indicator) {
		render_binding_mode_indicator(window, config, x);
	}
}
Exemplo n.º 3
0
void render_line(int i) {
	int j;
	for(j=0; j<4; j++) {
		render_block(i*5, j*7, game.tabuleiro[i][j]);
	}
}