// ----------------------------------------------------------------- // 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); }
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); } }
void render_line(int i) { int j; for(j=0; j<4; j++) { render_block(i*5, j*7, game.tabuleiro[i][j]); } }