backend->device_name =
strdup (PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME);
+ ply_trace ("creating renderer backend for device %s", backend->device_name);
+
backend->loop = ply_event_loop_get_default ();
backend->heads = ply_list_new ();
backend->input_source.key_buffer = ply_buffer_new ();
initialize_head (ply_renderer_backend_t *backend,
ply_renderer_head_t *head)
{
+ ply_trace ("initializing %lux%lu head",
+ head->area.width, head->area.height);
head->pixel_buffer = ply_pixel_buffer_new (head->area.width,
head->area.height);
ply_pixel_buffer_fill_with_color (backend->head.pixel_buffer, NULL,
uninitialize_head (ply_renderer_backend_t *backend,
ply_renderer_head_t *head)
{
+ ply_trace ("uninitializing %lux%lu head",
+ head->area.width, head->area.height);
if (head->pixel_buffer != NULL)
{
ply_pixel_buffer_free (head->pixel_buffer);
destroy_backend (ply_renderer_backend_t *backend)
{
+ ply_trace ("destroying renderer backend for device %s",
+ backend->device_name);
free (backend->device_name);
uninitialize_head (backend, &backend->head);
static void
activate (ply_renderer_backend_t *backend)
{
+ ply_trace ("Redrawing screen");
backend->is_active = true;
if (backend->head.map_address != MAP_FAILED)
backend->dither_green = 0;
backend->dither_blue = 0;
+ ply_trace ("%d bpp (%d, %d, %d, %d) with rowstride %d",
+ (int) backend->bytes_per_pixel * 8,
+ backend->bits_for_red,
+ backend->bits_for_green,
+ backend->bits_for_blue,
+ backend->bits_for_alpha,
+ (int) backend->row_stride);
+
backend->head.size = backend->head.area.height * backend->row_stride;
if (backend->bytes_per_pixel == 4 &&
MAP_SHARED, backend->device_fd, 0);
if (head->map_address == MAP_FAILED)
- return false;
+ {
+ ply_trace ("could not map fb device: %m");
+ return false;
+ }
if (ply_terminal_is_active (backend->terminal))
- activate (backend);
+ {
+ ply_trace ("already on right vt, activating");
+ activate (backend);
+ }
else
- ply_terminal_activate_vt (backend->terminal);
+ {
+ ply_trace ("on wrong vt, changing vts");
+ ply_terminal_activate_vt (backend->terminal);
+ }
return true;
}
head = &backend->head;
+ ply_trace ("unmapping device");
if (head->map_address != MAP_FAILED)
{
munmap (head->map_address, head->size);