mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-26 12:42:48 +02:00
eeshow/cro.c: disentangle interfaces
They all are very similar but still differ in subtle ways.
This commit is contained in:
parent
a564b5d03e
commit
e874d66ebb
84
eeshow/cro.c
84
eeshow/cro.c
@ -301,36 +301,6 @@ static struct cro_ctx *init_common(int argc, char *const *argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void *cr_png_init(int argc, char *const *argv)
|
|
||||||
{
|
|
||||||
struct cro_ctx *cc;
|
|
||||||
|
|
||||||
cc = init_common(argc, argv);
|
|
||||||
|
|
||||||
/* cr_text_width needs *something* to work with */
|
|
||||||
|
|
||||||
cc->s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 16, 16);
|
|
||||||
cc->cr = cairo_create(cc->s);
|
|
||||||
|
|
||||||
return cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void *cr_pdf_init(int argc, char *const *argv)
|
|
||||||
{
|
|
||||||
struct cro_ctx *cc;
|
|
||||||
|
|
||||||
cc = init_common(argc, argv);
|
|
||||||
|
|
||||||
/* cr_text_width needs *something* to work with */
|
|
||||||
|
|
||||||
cc->s = cairo_pdf_surface_create(NULL, 16, 16);
|
|
||||||
cc->cr = cairo_create(cc->s);
|
|
||||||
|
|
||||||
return cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void end_common(struct cro_ctx *cc, int *w, int *h, int *x, int *y)
|
static void end_common(struct cro_ctx *cc, int *w, int *h, int *x, int *y)
|
||||||
{
|
{
|
||||||
int xmin, ymin;
|
int xmin, ymin;
|
||||||
@ -366,13 +336,21 @@ static cairo_status_t stream_to_stdout(void *closure,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void cr_png_end(void *ctx)
|
/* ----- PDF (auto-sizing, using redraw) ----------------------------------- */
|
||||||
{
|
|
||||||
struct cro_ctx *cc = ctx;
|
|
||||||
int w, h, stride;
|
|
||||||
|
|
||||||
cro_img_end(cc, &w, &h, &stride);
|
|
||||||
cro_img_write(cc, cc->output_name);
|
static void *cr_pdf_init(int argc, char *const *argv)
|
||||||
|
{
|
||||||
|
struct cro_ctx *cc;
|
||||||
|
|
||||||
|
cc = init_common(argc, argv);
|
||||||
|
|
||||||
|
/* cr_text_width needs *something* to work with */
|
||||||
|
|
||||||
|
cc->s = cairo_pdf_surface_create(NULL, 16, 16);
|
||||||
|
cc->cr = cairo_create(cc->s);
|
||||||
|
|
||||||
|
return cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -432,6 +410,37 @@ static void cr_pdf_end(void *ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----- PNG (auto-sizing, using redraw) ----------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
static void *cr_png_init(int argc, char *const *argv)
|
||||||
|
{
|
||||||
|
struct cro_ctx *cc;
|
||||||
|
|
||||||
|
cc = init_common(argc, argv);
|
||||||
|
|
||||||
|
/* cr_text_width needs *something* to work with */
|
||||||
|
|
||||||
|
cc->s = cairo_image_surface_create(CAIRO_FORMAT_RGB24, 16, 16);
|
||||||
|
cc->cr = cairo_create(cc->s);
|
||||||
|
|
||||||
|
return cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void cr_png_end(void *ctx)
|
||||||
|
{
|
||||||
|
struct cro_ctx *cc = ctx;
|
||||||
|
int w, h, stride;
|
||||||
|
|
||||||
|
cro_img_end(cc, &w, &h, &stride);
|
||||||
|
cro_img_write(cc, cc->output_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----- Images (auto-sizing, using redraw) -------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
uint32_t *cro_img_end(struct cro_ctx *cc, int *w, int *h, int *stride)
|
uint32_t *cro_img_end(struct cro_ctx *cc, int *w, int *h, int *stride)
|
||||||
{
|
{
|
||||||
uint32_t *data;
|
uint32_t *data;
|
||||||
@ -470,6 +479,9 @@ void cro_img_write(struct cro_ctx *cc, const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----- Canvas (using redraw) --------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
void cro_canvas_end(struct cro_ctx *cc, int *w, int *h, int *xmin, int *ymin)
|
void cro_canvas_end(struct cro_ctx *cc, int *w, int *h, int *xmin, int *ymin)
|
||||||
{
|
{
|
||||||
end_common(cc, w, h, xmin, ymin);
|
end_common(cc, w, h, xmin, ymin);
|
||||||
|
Loading…
Reference in New Issue
Block a user