swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit f60ae1114f2a48d64aafa0aef5722ff4514734d7
parent 6d2e2b48a8e99d30c4cf554718d65127700dc9b9
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 14 Jun 2013 03:52:21 -0700

Draw borders on windows

Diffstat:
Mrenderer.c | 36+++++++++++++++++++++++++++++++++++-
Msurface.c | 2++
Msurface.h | 6++++++
3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/renderer.c b/renderer.c @@ -90,9 +90,43 @@ static void repaint_surface_for_output(struct swc_renderer * renderer, xy_src_copy_blt(&renderer->batch, src, src_pitch, 0, 0, back_buffer->bo, back_buffer->pitch, - surface->geometry.x, surface->geometry.y, + surface->geometry.x + surface->border.width, + surface->geometry.y + surface->border.width, surface->geometry.width, surface->geometry.height); } + + /* Draw border */ + { + switch_context(renderer, SWC_RENDERER_CONTEXT_BATCH, back_buffer); + + /* Top */ + xy_color_blt(&renderer->batch, back_buffer->bo, back_buffer->pitch, + surface->geometry.x, surface->geometry.y, + surface->geometry.x + surface->geometry.width + 2 * surface->border.width, + surface->geometry.y + surface->border.width, + surface->border.color); + /* Bottom */ + xy_color_blt(&renderer->batch, back_buffer->bo, back_buffer->pitch, + surface->geometry.x, + surface->geometry.y + surface->border.width + surface->geometry.height, + surface->geometry.x + surface->geometry.width + 2 * surface->border.width, + surface->geometry.y + surface->geometry.height + 2 * surface->border.width, + surface->border.color); + /* Left */ + xy_color_blt(&renderer->batch, back_buffer->bo, back_buffer->pitch, + surface->geometry.x, surface->geometry.y + surface->border.width, + surface->geometry.x + surface->border.width, + surface->geometry.y + + surface->border.width + surface->geometry.height, + surface->border.color); + /* Right */ + xy_color_blt(&renderer->batch, back_buffer->bo, back_buffer->pitch, + surface->geometry.x + surface->border.width + surface->geometry.width, + surface->geometry.y + surface->border.width, + surface->geometry.x + surface->geometry.width + 2 * surface->border.width, + surface->geometry.y + surface->border.width + surface->geometry.height, + surface->border.color); + + } } bool swc_renderer_initialize(struct swc_renderer * renderer, diff --git a/surface.c b/surface.c @@ -164,6 +164,8 @@ bool swc_surface_initialize(struct swc_surface * surface, wl_signal_init(&surface->event_signal); surface->output_mask = 0; + surface->border.width = 0; + surface->border.color = 0x000000; return true; } diff --git a/surface.h b/surface.h @@ -50,6 +50,12 @@ struct swc_surface uint32_t width, height; } geometry; + struct + { + uint32_t width; + uint32_t color; + } border; + uint32_t output_mask; struct wl_signal event_signal;