static void render_test (gconstpointer user_data) { const char *filename = user_data; char *basename; LsmDomDocument *document; LsmDomView *view; LsmBox viewport; unsigned int width, height; cairo_t *cairo; cairo_surface_t *surface; basename = g_path_get_basename (filename); document = lsm_dom_document_new_from_path (filename, NULL); g_assert (LSM_IS_DOM_DOCUMENT (document)); view = lsm_dom_document_create_view (document); g_assert (LSM_IS_DOM_VIEW (view)); viewport.x = 0.0; viewport.y = 0.0; viewport.width = 480.0; viewport.height = 360.0; lsm_dom_view_set_resolution (view, 96); lsm_dom_view_set_viewport_pixels (view, &viewport); lsm_dom_view_get_size_pixels (LSM_DOM_VIEW (view), &width, &height, NULL); surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); cairo = cairo_create (surface); cairo_surface_destroy (surface); if (cairo_status (cairo) == CAIRO_STATUS_SUCCESS) { lsm_dom_view_render (LSM_DOM_VIEW (view), cairo, 1, 1); if (cairo_status (cairo) != CAIRO_STATUS_SUCCESS) { g_test_message ("cairo_status = %s", cairo_status_to_string (cairo_status (cairo))); if (!g_key_file_get_boolean (suite_options, basename, "ignore-cairo-status", NULL)) { g_test_message ("incorrect cairo status"); g_test_fail (); } } } cairo_destroy (cairo); g_object_unref (view); g_object_unref (document); g_free (basename); }
static void render_test (gconstpointer user_data) { const char *filename = user_data; LsmDomDocument *document; LsmDomView *view; LsmBox viewport; unsigned int width, height; cairo_t *cairo; cairo_surface_t *surface; document = lsm_dom_document_new_from_path (filename, NULL); g_assert (LSM_IS_DOM_DOCUMENT (document)); view = lsm_dom_document_create_view (document); g_assert (LSM_IS_DOM_VIEW (view)); viewport.x = 0.0; viewport.y = 0.0; viewport.width = 480.0; viewport.height = 360.0; lsm_dom_view_set_resolution (view, 96); lsm_dom_view_set_viewport_pixels (view, &viewport); lsm_dom_view_get_size_pixels (LSM_DOM_VIEW (view), &width, &height, NULL); surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); cairo = cairo_create (surface); cairo_surface_destroy (surface); if (cairo_status (cairo) == CAIRO_STATUS_SUCCESS) { lsm_dom_view_render (LSM_DOM_VIEW (view), cairo, 1, 1); g_assert (cairo_status (cairo) == CAIRO_STATUS_SUCCESS); } cairo_destroy (cairo); g_object_unref (view); g_object_unref (document); }