ret = drmModeAddFB2(drm->fd, buffer->w, buffer->h, gbm_bo_get_format(bo),
handles, strides, offsets, &buffer->id , 0);
- PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB2() failed.\n");
- ret = drmModeAddFB(drm->fd, buffer->w, buffer->h, 24, 32,
- buffer->stride, buffer->handle, &buffer->id);
- PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB() failed.\n");
+ if (ret != 0)
+ {
+ ret = drmModeAddFB(drm->fd, buffer->w, buffer->h, 24, 32,
+ buffer->stride, buffer->handle, &buffer->id);
+ PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB() failed.\n");
+ }
return PEPPER_TRUE;
}
PEPPER_API void
pepper_drm_destroy(pepper_drm_t *drm)
{
- drm_connector_t *conn;
- drm_plane_t *plane;
+ drm_connector_t *conn, *next_conn;
+ drm_plane_t *plane, *next_plane;
- pepper_list_for_each(conn, &drm->connector_list, link)
+ pepper_list_for_each_safe(conn, next_conn, &drm->connector_list, link)
{
if (conn->output)
drm_output_destroy(conn->output);
drm_connector_destroy(conn);
}
- pepper_list_for_each(plane, &drm->plane_list, link)
+ pepper_list_for_each_safe(plane, next_plane, &drm->plane_list, link)
drm_plane_destroy(plane);
-/* if (drm->pixman_renderer)
+ if (drm->pixman_renderer)
pepper_renderer_destroy(drm->pixman_renderer);
if (drm->gl_renderer)
- pepper_renderer_destroy(drm->gl_renderer);*/
+ pepper_renderer_destroy(drm->gl_renderer);
if (drm->resources)
drmModeFreeResources(drm->resources);
}
pixman_region32_init(&output->previous_damage);
+ output->render_type = DRM_RENDER_TYPE_PIXMAN;
+
return;
error:
PEPPER_FORMAT_XRGB8888,
&native_visual_id);
PEPPER_CHECK(output->render_target, goto error, "pepper_gl_renderer_create_target() failed.\n");
+ output->render_type = DRM_RENDER_TYPE_GL;
+
return;
error: