/* Mark entire subtree's geometry as dirty. */
if (flag & PEPPER_VIEW_GEOMETRY_DIRTY) {
pepper_list_for_each(child, &view->children_list, parent_link)
- pepper_view_mark_dirty(child, PEPPER_VIEW_GEOMETRY_DIRTY);
+ pepper_view_mark_dirty(child, PEPPER_VIEW_GEOMETRY_DIRTY);
for (i = 0; i < PEPPER_MAX_OUTPUT_COUNT; i++)
view->plane_entries[i].need_transform_update = PEPPER_TRUE;
/* Mark entire subtree's active as dirty. */
if (flag & PEPPER_VIEW_ACTIVE_DIRTY) {
pepper_list_for_each(child, &view->children_list, parent_link)
- pepper_view_mark_dirty(child, PEPPER_VIEW_ACTIVE_DIRTY);
+ pepper_view_mark_dirty(child, PEPPER_VIEW_ACTIVE_DIRTY);
}
pepper_compositor_schedule_repaint(view->compositor);
pepper_view_t *child;
pepper_list_for_each(child, &view->children_list, parent_link)
- pos = view_insert(child, pos, subtree);
+ pos = view_insert(child, pos, subtree);
}
return pos;
* as damaged and the damage for the remap will be inflicted separately for
* each output when the visible region is calculated on output repaint.
*/
-
for (i = 0; i < PEPPER_MAX_OUTPUT_COUNT; i++) {
pepper_plane_entry_t *entry = &view->plane_entries[i];
output_overlap_prev = view->output_overlap;
view->output_overlap = 0;
- if (view->surface) {
+ if (view->surface) {
pepper_list_for_each(output, &view->compositor->output_list, link) {
pepper_box_t box = {
output->geometry.x,
};
if (pepper_region_contains_rectangle(&view->bounding_region,
- &box) != PEPPER_REGION_OUT) {
+ &box) != PEPPER_REGION_OUT) {
view->output_overlap |= (1 << output->id);
if (!(output_overlap_prev & (1 << output->id)))
pepper_surface_send_enter(view->surface, output);
pepper_surface_send_leave(view->surface, output);
}
}
- }
+ }
}
/* Mark the plane entries as damaged. */
view_link_to_surface(view);
pepper_view_mark_dirty(view, PEPPER_VIEW_GEOMETRY_DIRTY);
+
return PEPPER_TRUE;
}
plane_entry_set_plane(&view->plane_entries[i], NULL);
pepper_list_for_each_safe(child, tmp, &view->children_list, parent_link)
- pepper_view_destroy(child);
+ pepper_view_destroy(child);
if (view->parent)
pepper_list_remove(&view->parent_link);
pepper_region_copy(&output->previous_damage, damage);
pepper_renderer_repaint_output(output->renderer, output->base, render_list,
- &total_damage);
+ &total_damage);
pepper_region_fini(&total_damage);
pepper_plane_clear_damage_region(output->primary_plane->base);
static void
__tdm_renderer_pixman_init(pepper_tdm_output_t *output)
{
- pepper_tdm_t *tdm = output->tdm;
- const tdm_output_mode *mode;
- tdm_error err = TDM_ERROR_NONE;
+ pepper_tdm_t *tdm = output->tdm;
+ const tdm_output_mode *mode;
+ tdm_error err = TDM_ERROR_NONE;
- if (!tdm->pixman_renderer) {
- tdm->pixman_renderer = pepper_pixman_renderer_create(tdm->compositor);
- PEPPER_CHECK(tdm->pixman_renderer, return,
- "pepper_pixman_renderer_create() failed.\n");
- }
+ if (!tdm->pixman_renderer) {
+ tdm->pixman_renderer = pepper_pixman_renderer_create(tdm->compositor);
+ PEPPER_CHECK(tdm->pixman_renderer, return,
+ "pepper_pixman_renderer_create() failed.\n");
+ }
- output->renderer = tdm->pixman_renderer;
+ output->renderer = tdm->pixman_renderer;
- err = tdm_output_get_mode(output->output, &mode);
- PEPPER_CHECK(err == TDM_ERROR_NONE, goto error,
- "tdm_output_get_mode() failed.\n");
- output->tbm_surface_queue = tbm_surface_queue_create(3,
- mode->hdisplay, mode->vdisplay,
- TBM_FORMAT_XBGR8888, TBM_BO_SCANOUT);
- PEPPER_CHECK(output->tbm_surface_queue, goto error,
- "tbm_surface_queue_create() failed.\n");
+ err = tdm_output_get_mode(output->output, &mode);
+ PEPPER_CHECK(err == TDM_ERROR_NONE, goto error,
+ "tdm_output_get_mode() failed.\n");
+ output->tbm_surface_queue = tbm_surface_queue_create(3,
+ mode->hdisplay, mode->vdisplay,
+ TBM_FORMAT_XBGR8888, TBM_BO_SCANOUT);
+ PEPPER_CHECK(output->tbm_surface_queue, goto error,
+ "tbm_surface_queue_create() failed.\n");
- pepper_region_init(&output->previous_damage);
- output->render_type = TDM_RENDER_TYPE_PIXMAN;
+ pepper_region_init(&output->previous_damage);
+ output->render_type = TDM_RENDER_TYPE_PIXMAN;
- return;
+ return;
error:
- __tdm_renderer_pixman_fini(output);
+ __tdm_renderer_pixman_fini(output);
}
static void
static void
__tdm_renderer_gl_init(pepper_tdm_output_t *output)
{
- pepper_tdm_t *tdm = output->tdm;
- const tdm_output_mode *mode;
- uint32_t native_visual_id = TBM_FORMAT_XRGB8888;
- tdm_error err = TDM_ERROR_NONE;
-
- if (!tdm->gl_renderer) {
- tdm->gl_renderer = pepper_gl_renderer_create(tdm->compositor, tdm->bufmgr,
- "tbm");
- PEPPER_CHECK(tdm->gl_renderer, return, "pepper_gl_renderer_create() failed.\n");
- }
-
- output->renderer = tdm->gl_renderer;
-
- err = tdm_output_get_mode(output->output, &mode);
- PEPPER_CHECK(err == TDM_ERROR_NONE, goto error,
- "tdm_output_get_mode() failed.\n");
-
- output->tbm_surface_queue = tbm_surface_queue_create(3,
- mode->hdisplay, mode->vdisplay,
- TBM_FORMAT_XRGB8888,
- TBM_BO_SCANOUT);
- PEPPER_CHECK(output->tbm_surface_queue, goto error,
- "tbm_surface_queue_create() failed.\n");
-
- output->render_target = pepper_gl_renderer_create_target(tdm->gl_renderer,
- output->tbm_surface_queue,
- PEPPER_FORMAT_XRGB8888,
- &native_visual_id,
- mode->hdisplay, mode->vdisplay);
- PEPPER_CHECK(output->render_target, goto error,
- "pepper_gl_renderer_create_target() failed.\n");
- output->render_type = TDM_RENDER_TYPE_GL;
-
- pepper_renderer_set_target(output->renderer, output->render_target);
- return;
+ pepper_tdm_t *tdm = output->tdm;
+ const tdm_output_mode *mode;
+ uint32_t native_visual_id = TBM_FORMAT_XRGB8888;
+ tdm_error err = TDM_ERROR_NONE;
+
+ if (!tdm->gl_renderer) {
+ tdm->gl_renderer = pepper_gl_renderer_create(tdm->compositor, tdm->bufmgr,
+ "tbm");
+ PEPPER_CHECK(tdm->gl_renderer, return, "pepper_gl_renderer_create() failed.\n");
+ }
+
+ output->renderer = tdm->gl_renderer;
+
+ err = tdm_output_get_mode(output->output, &mode);
+ PEPPER_CHECK(err == TDM_ERROR_NONE, goto error,
+ "tdm_output_get_mode() failed.\n");
+
+ output->tbm_surface_queue = tbm_surface_queue_create(3,
+ mode->hdisplay, mode->vdisplay,
+ TBM_FORMAT_XRGB8888,
+ TBM_BO_SCANOUT);
+ PEPPER_CHECK(output->tbm_surface_queue, goto error,
+ "tbm_surface_queue_create() failed.\n");
+
+ output->render_target = pepper_gl_renderer_create_target(tdm->gl_renderer,
+ output->tbm_surface_queue,
+ PEPPER_FORMAT_XRGB8888,
+ &native_visual_id,
+ mode->hdisplay, mode->vdisplay);
+ PEPPER_CHECK(output->render_target, goto error,
+ "pepper_gl_renderer_create_target() failed.\n");
+ output->render_type = TDM_RENDER_TYPE_GL;
+
+ pepper_renderer_set_target(output->renderer, output->render_target);
+
+ return;
error:
- __tdm_renderer_gl_fini(output);
+ __tdm_renderer_gl_fini(output);
}
static void
static void
pepper_tdm_output_get_mode(void *o, int index, pepper_output_mode_t *mode)
{
- pepper_tdm_output_t *output = (pepper_tdm_output_t *)o;
- int num_mode;
- const tdm_output_mode *modes;
- const tdm_output_mode *cur_mode;
- tdm_error error = TDM_ERROR_NONE;
-
- tdm_output_get_available_modes(output->output, &modes, &num_mode);
- PEPPER_CHECK(index < num_mode, return, "mode index is invalid\n");
-
- mode->flags = 0;
- mode->w = modes[index].hdisplay;
- mode->h = modes[index].vdisplay;
- mode->refresh = modes[index].vrefresh;
-
- if (modes[index].type & TDM_OUTPUT_MODE_TYPE_PREFERRED)
- mode->flags |= WL_OUTPUT_MODE_PREFERRED;
-
- error = tdm_output_get_mode(output->output, &cur_mode);
- if (error == TDM_ERROR_NONE)
- {
- if (cur_mode == &modes[index])
- mode->flags |= WL_OUTPUT_MODE_CURRENT;
- }
+ pepper_tdm_output_t *output = (pepper_tdm_output_t *)o;
+ int num_mode;
+ const tdm_output_mode *modes;
+ const tdm_output_mode *cur_mode;
+ tdm_error error = TDM_ERROR_NONE;
+
+ tdm_output_get_available_modes(output->output, &modes, &num_mode);
+ PEPPER_CHECK(index < num_mode, return, "mode index is invalid\n");
+
+ mode->flags = 0;
+ mode->w = modes[index].hdisplay;
+ mode->h = modes[index].vdisplay;
+ mode->refresh = modes[index].vrefresh;
+
+ if (modes[index].type & TDM_OUTPUT_MODE_TYPE_PREFERRED)
+ mode->flags |= WL_OUTPUT_MODE_PREFERRED;
+
+ error = tdm_output_get_mode(output->output, &cur_mode);
+ if (error == TDM_ERROR_NONE) {
+ if (cur_mode == &modes[index])
+ mode->flags |= WL_OUTPUT_MODE_CURRENT;
+ }
}
static pepper_bool_t
static void
pepper_tdm_output_assign_planes(void *o, const pepper_list_t *view_list)
{
- pepper_list_t *l;
- pepper_tdm_output_t *output = o;
+ pepper_list_t *l;
+ pepper_tdm_output_t *output = o;
pepper_list_for_each_list(l, view_list) {
pepper_view_t *view = l->item;
const tdm_output_mode *preferred_mode = NULL;
int num_mode;
- const char *render_env = getenv("PEPPER_RENDERER");
+ const char *render_env = getenv("PEPPER_RENDERER");
err = tdm_display_get_output_count(tdm->disp, &num_output);
PEPPER_CHECK(err == TDM_ERROR_NONE, return PEPPER_FALSE, "Failed to get number of outputs\n");
if (status != TDM_OUTPUT_CONN_STATUS_CONNECTED)
continue;
-
/*Setup default mode*/
err = tdm_output_get_available_modes(output->output, &modes, &num_mode);
PEPPER_CHECK(err == TDM_ERROR_NONE, goto error,