mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-29 11:55:59 +01:00
Revert "Render pages for printing in render thread."
This reverts commit 8271419222
.
This commit is contained in:
parent
8271419222
commit
f28decccc1
4 changed files with 9 additions and 49 deletions
|
@ -452,7 +452,7 @@ zathura_page_widget_draw(GtkWidget* widget, cairo_t* cairo)
|
|||
}
|
||||
|
||||
/* render real page */
|
||||
render_page(priv->zathura->sync.render_thread, priv->page, false, NULL);
|
||||
render_page(priv->zathura->sync.render_thread, priv->page);
|
||||
}
|
||||
g_static_mutex_unlock(&(priv->lock));
|
||||
return FALSE;
|
||||
|
|
2
print.c
2
print.c
|
@ -93,5 +93,5 @@ cb_print_draw_page(GtkPrintOperation* UNUSED(print_operation), GtkPrintContext*
|
|||
return;
|
||||
}
|
||||
|
||||
render_page(zathura->sync.render_thread, page, true, cairo);
|
||||
zathura_page_render(page, cairo, true);
|
||||
}
|
||||
|
|
50
render.c
50
render.c
|
@ -22,38 +22,17 @@ struct render_thread_s
|
|||
GThreadPool* pool; /**< Pool of threads */
|
||||
};
|
||||
|
||||
typedef struct job_s
|
||||
{
|
||||
zathura_page_t* page;
|
||||
bool printing;
|
||||
cairo_t* target;
|
||||
GMutex* mutex;
|
||||
GCond* cond;
|
||||
} job_t;
|
||||
|
||||
static void
|
||||
render_job(void* data, void* user_data)
|
||||
{
|
||||
job_t* job = data;
|
||||
zathura_page_t* page = data;
|
||||
zathura_t* zathura = user_data;
|
||||
if (job == NULL || zathura == NULL || job->page == NULL) {
|
||||
if (page == NULL || zathura == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (job->printing == false) {
|
||||
girara_debug("Rendering page %d", zathura_page_get_index(job->page));
|
||||
if (render(zathura, job->page) != true) {
|
||||
girara_error("Rendering failed (page %d)\n", zathura_page_get_index(job->page));
|
||||
}
|
||||
g_free(data);
|
||||
} else if (job->target != NULL) {
|
||||
girara_debug("Rendering page %d for printing", zathura_page_get_index(job->page));
|
||||
g_mutex_lock(job->mutex);
|
||||
if (zathura_page_render(job->page, job->target, true) != ZATHURA_ERROR_OK) {
|
||||
girara_error("Rendering failed (page %d)\n", zathura_page_get_index(job->page));
|
||||
}
|
||||
g_cond_signal(job->cond);
|
||||
g_mutex_unlock(job->mutex);
|
||||
if (render(zathura, page) != true) {
|
||||
girara_error("Rendering failed (page %d)\n", zathura_page_get_index(page));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -93,30 +72,13 @@ render_free(render_thread_t* render_thread)
|
|||
}
|
||||
|
||||
bool
|
||||
render_page(render_thread_t* render_thread, zathura_page_t* page, bool printing, cairo_t* target)
|
||||
render_page(render_thread_t* render_thread, zathura_page_t* page)
|
||||
{
|
||||
if (render_thread == NULL || page == NULL || render_thread->pool == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
job_t* job = g_malloc0(sizeof(job_t));
|
||||
job->page = page;
|
||||
job->printing = printing;
|
||||
job->target = target;
|
||||
if (printing == true) {
|
||||
job->mutex = g_mutex_new();
|
||||
job->cond = g_cond_new();
|
||||
g_mutex_lock(job->mutex);
|
||||
}
|
||||
g_thread_pool_push(render_thread->pool, job, NULL);
|
||||
if (printing == true) {
|
||||
g_cond_wait(job->cond, job->mutex);
|
||||
g_mutex_unlock(job->mutex);
|
||||
g_cond_free(job->cond);
|
||||
g_mutex_free(job->mutex);
|
||||
g_free(job);
|
||||
}
|
||||
|
||||
g_thread_pool_push(render_thread->pool, page, NULL);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
4
render.h
4
render.h
|
@ -31,11 +31,9 @@ void render_free(render_thread_t* render_thread);
|
|||
*
|
||||
* @param render_thread The render thread object
|
||||
* @param page The page that should be rendered
|
||||
* @param printing Render the page for printing.
|
||||
* @param target Rendering target in case we're rendering for printing.
|
||||
* @return true if no error occured
|
||||
*/
|
||||
bool render_page(render_thread_t* render_thread, zathura_page_t* page, bool printing, cairo_t* target);
|
||||
bool render_page(render_thread_t* render_thread, zathura_page_t* page);
|
||||
|
||||
/**
|
||||
* This function is used to unmark all pages as not rendered. This should
|
||||
|
|
Loading…
Reference in a new issue