本文整理汇总了C++中cairo_set_line_join函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_set_line_join函数的具体用法?C++ cairo_set_line_join怎么用?C++ cairo_set_line_join使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_set_line_join函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _e2_gesture_dialog_cairo_setup
/**
@brief setup @a cr for usage
@param cr cairo context for @a widget
@param widget to be drawn upon
@return
*/
static void _e2_gesture_dialog_cairo_setup (cairo_t *cr, GtkWidget *widget)
{
GdkRGBA *color;
GtkStyleContext *context;
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); //enable display of dots ?
cairo_set_line_width (cr, 1.0); //approx 1 pixel
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
context = gtk_widget_get_style_context (widget);
gtk_style_context_get (context, GTK_STATE_NORMAL, GTK_STYLE_PROPERTY_COLOR,
&color, NULL);
cairo_set_source_rgb (cr, color->red, color->green, color->blue);
gdk_rgba_free (color);
}
示例2: pycairo_set_line_join
static PyObject *
pycairo_set_line_join (PycairoContext *o, PyObject *args)
{
cairo_line_join_t line_join;
if (!PyArg_ParseTuple (args, "i:Context.set_line_join", &line_join))
return NULL;
cairo_set_line_join (o->ctx, line_join);
if (Pycairo_Check_Status (cairo_status (o->ctx)))
return NULL;
Py_RETURN_NONE;
}
示例3: set_linejoin
static void
set_linejoin(DiaRenderer *self, LineJoin mode)
{
DiaCairoRenderer *renderer = DIA_CAIRO_RENDERER (self);
DIAG_NOTE(g_message("set_join %d", mode));
switch(mode) {
case LINEJOIN_MITER:
cairo_set_line_join (renderer->cr, CAIRO_LINE_JOIN_MITER);
break;
case LINEJOIN_ROUND:
cairo_set_line_join (renderer->cr, CAIRO_LINE_JOIN_ROUND);
break;
case LINEJOIN_BEVEL:
cairo_set_line_join (renderer->cr, CAIRO_LINE_JOIN_BEVEL);
break;
default:
g_warning("DiaCairoRenderer : Unsupported join mode specified!\n");
}
DIAG_STATE(renderer->cr)
}
示例4: NSA_GET_G2D_PTR
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetLineJoin
(JNIEnv *env, jobject obj, jint join)
{
struct graphics2d *gr = NULL;
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_set_line_join %d\n", join);
switch ((enum java_awt_basic_stroke_join_rule) join)
{
case java_awt_basic_stroke_JOIN_MITER:
cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_MITER);
break;
case java_awt_basic_stroke_JOIN_ROUND:
cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_ROUND);
break;
case java_awt_basic_stroke_JOIN_BEVEL:
cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_BEVEL);
break;
}
}
示例5: ig_cairo_draw_bound
static void
ig_cairo_draw_bound (GnmItemGrid *ig, cairo_t* cr, int x0, int y0, int x1, int y1)
{
double width = ig->pane_divider_width;
cairo_set_line_width (cr, width);
cairo_set_dash (cr, NULL, 0, 0.);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
gdk_cairo_set_source_rgba (cr, &ig->pane_divider_color);
cairo_move_to (cr, x0 - width / 2, y0 - width / 2);
cairo_line_to (cr, x1 - width / 2, y1 - width / 2);
cairo_stroke (cr);
}
示例6: settings_set
static void
settings_set (cairo_t *cr, const settings_t *settings)
{
cairo_set_operator (cr, settings->op);
cairo_set_tolerance (cr, settings->tolerance);
cairo_set_fill_rule (cr, settings->fill_rule);
cairo_set_line_width (cr, settings->line_width);
cairo_set_line_cap (cr, settings->line_cap);
cairo_set_line_join (cr, settings->line_join);
cairo_set_miter_limit (cr, settings->miter_limit);
cairo_set_matrix (cr, &settings->matrix);
cairo_set_dash (cr, settings->dash, 5, settings->dash_offset);
}
示例7: gt_graphics_cairo_initialize
void gt_graphics_cairo_initialize(GtGraphics *gg, GtGraphicsOutType type,
unsigned int width, unsigned int height)
{
GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
g->outbuf = gt_str_new();
switch (type)
{
case GT_GRAPHICS_PDF:
#ifdef CAIRO_HAS_PDF_SURFACE
g->surf = cairo_pdf_surface_create_for_stream(str_write_func,
g->outbuf,
width,
height);
break;
#endif
case GT_GRAPHICS_PS:
#ifdef CAIRO_HAS_PS_SURFACE
g->surf = cairo_ps_surface_create_for_stream(str_write_func,
g->outbuf,
width,
height);
break;
#endif
case GT_GRAPHICS_SVG:
#ifdef CAIRO_HAS_SVG_SURFACE
g->surf = cairo_svg_surface_create_for_stream(str_write_func,
g->outbuf,
width,
height);
break;
#endif
case GT_GRAPHICS_PNG:
default:
g->surf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
break;
}
gt_assert(g->surf && cairo_surface_status(g->surf) == CAIRO_STATUS_SUCCESS);
g->cr = cairo_create(g->surf);
gt_assert(cairo_status(g->cr) == CAIRO_STATUS_SUCCESS);
/* set background default to transparent */
g->bg_color.red = g->bg_color.green = 0.0;
g->bg_color.blue = g->bg_color.alpha = 0.0;
g->width = width;
g->height = height;
g->margin_x = g->margin_y = 20;
cairo_set_line_join(g->cr, CAIRO_LINE_JOIN_ROUND);
cairo_set_line_cap(g->cr, CAIRO_LINE_CAP_ROUND);
cairo_select_font_face(g->cr, "sans-serif", CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);
g->type = type;
}
示例8: ca_setup_stroke
int
ca_setup_stroke(caskbench_context_t *ctx)
{
cairo_t *cr = ctx->cairo_cr;
line_length = 60;
element_spacing = sqrt( ((double)ctx->canvas_width * ctx->canvas_height) / ctx->size);
num_x_elements = ctx->canvas_width / element_spacing;
num_y_elements = ctx->canvas_height / element_spacing;
cairo_set_line_width(cr,ctx->shape_defaults.stroke_width?ctx->shape_defaults.stroke_width:5);
cairo_set_line_cap(cr,ctx->shape_defaults.cap_style?(cairo_line_cap_t)(ctx->shape_defaults.cap_style % 3):CAIRO_LINE_CAP_BUTT);
cairo_set_line_join(cr,ctx->shape_defaults.join_style?(cairo_line_join_t)(ctx->shape_defaults.join_style % 3):CAIRO_LINE_JOIN_MITER);
cairo_set_dash (cr, dashes, sizeof (dashes) / sizeof (dashes[0]), 0);
return 1;
}
示例9: draw_joins
static void
draw_joins (cairo_t *cr)
{
cairo_save (cr);
cairo_translate (cr, PAD, PAD);
make_path (cr);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL);
cairo_stroke (cr);
cairo_translate (cr, SIZE + PAD, 0.);
make_path (cr);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_stroke (cr);
cairo_translate (cr, SIZE + PAD, 0.);
make_path (cr);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
cairo_stroke (cr);
cairo_translate (cr, SIZE + PAD, 0.);
cairo_restore (cr);
}
示例10: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
/* First draw a checkered background */
cairo_test_paint_checkered (cr);
/* Then draw the original caps-joins test but with a bit of alphs thrown in. */
cairo_set_line_width (cr, LINE_WIDTH);
cairo_set_source_rgba (cr, 1.0, 0.0, 0.0, 0.5); /* 50% red */
cairo_translate (cr, PAD, PAD);
make_path (cr);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL);
cairo_stroke (cr);
cairo_set_source_rgba (cr, 0.0, 1.0, 0.0, 0.5); /* 50% green */
cairo_translate (cr, SIZE + PAD, 0.);
make_path (cr);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_stroke (cr);
cairo_set_source_rgba (cr, 0.0, 0.0, 1.0, 0.5); /* 50% blue */
cairo_translate (cr, SIZE + PAD, 0.);
make_path (cr);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
cairo_stroke (cr);
return CAIRO_TEST_SUCCESS;
}
示例11: gimp_display_shell_set_tool_fg_style
void
gimp_display_shell_set_tool_fg_style (GimpDisplayShell *shell,
cairo_t *cr,
gboolean highlight)
{
g_return_if_fail (cr != NULL);
cairo_set_line_width (cr, 1.0);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
if (highlight)
gimp_cairo_set_source_rgba (cr, &tool_fg_highlight);
else
gimp_cairo_set_source_rgba (cr, &tool_fg);
}
示例12: cairo_set_line_width
void wxSVGCanvasPathCairo::ApplyStrokeStyle(cairo_t* cr, const wxCSSStyleDeclaration& style) {
cairo_set_line_width(cr, style.GetStrokeWidth());
switch (style.GetStrokeLinecap()) {
case wxCSS_VALUE_ROUND:
cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
break;
case wxCSS_VALUE_SQUARE:
cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE);
break;
case wxCSS_VALUE_BUTT:
default:
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
break;
}
switch (style.GetStrokeLinejoin()) {
case wxCSS_VALUE_BEVEL:
cairo_set_line_join(cr, CAIRO_LINE_JOIN_BEVEL);
break;
case wxCSS_VALUE_ROUND:
cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
break;
case wxCSS_VALUE_MITER:
default:
cairo_set_line_join(cr, CAIRO_LINE_JOIN_MITER);
break;
}
if (style.GetStrokeDasharray().GetLength() > 0) {
double* dashed = new double[style.GetStrokeDasharray().GetLength()];
for (int i = 0; i < style.GetStrokeDasharray().GetLength(); i++) {
dashed[i] = style.GetStrokeDasharray().Item(i).GetFloatValue();
}
cairo_set_dash(cr, dashed, style.GetStrokeDasharray().GetLength(), 0.0);
delete dashed;
} else
cairo_set_dash(cr, NULL, 0, 0);
}
示例13: y
/*==================================================================================
pspltrgn - subroutine to set which small plot region to use
This routine is called by pschem in psvdraw_new in order to plot multiple
ternary chemographies on a single page. Each page can hold MAXPLOTSPERPAGE. If
another is requested, then a new document will be created with a name similar to
that of the first, and the process will begin again.
This overrides any settings made in psssc2, and assumes that x and y (real-unit)
bounds are 0.0-1.0. Note that if this routine is called, then plot_aspect_ratio will be ignored.
Note that plotnum is a zero-based index
==================================================================================*/
void pspltrgn_ (int *plotnum) {
char *outFileName = malloc((strlen(dmh_fileNameRoot)+50) * sizeof(char));
int plotPosition = *plotnum % MAXPLOTSPERPAGE;
int pageNum = *plotnum / MAXPLOTSPERPAGE;
int boxEdge, rowNum, colNum;
DEBUGPRINT(("In pspltrgn. Plotnum = %i, plotPosition = %i, pageNum = %i\n", *plotnum, plotPosition, pageNum));
if (plotPosition == 0 && pageNum > 0) {
/* we need to start a new page, so let's close the current one, and start a new one
with a related name */
DEBUGPRINT(("In pspltrgn. Closing current page and starting a new one with\n page number=%i and file type=%i\n", pageNum, dmh_outputFileType));
closeSurface(); // close existing surface
switch(dmh_outputFileType) {
case PDFTYPE:
sprintf(outFileName, "%s_%i.%s", dmh_fileNameRoot, pageNum, "pdf");
dmh_surf = cairo_pdf_surface_create (outFileName, dmh_pageWidth, dmh_pageHeight);
break;
case PSTYPE:
sprintf(outFileName, "%s_%i.%s", dmh_fileNameRoot, pageNum, "ps");
dmh_surf = cairo_ps_surface_create (outFileName, dmh_pageWidth, dmh_pageHeight);
cairo_ps_surface_set_eps (dmh_surf, 1);
break;
case SVGTYPE:
sprintf(outFileName, "%s_%i.%s", dmh_fileNameRoot, pageNum, "svg");
dmh_surf = cairo_svg_surface_create (outFileName, dmh_pageWidth, dmh_pageHeight);
break;
}
dmh_cr = cairo_create (dmh_surf);
cairo_identity_matrix(dmh_cr);
cairo_set_line_join(dmh_cr, CAIRO_LINE_JOIN_ROUND);
dmh_min_tracked_x = DBL_MAX;
}
/* Set the location on the page for the small plot */
dmh_aspectRatio = 1.0; /* Ignores plot_aspect_ratio. */
boxEdge = (dmh_pageWidth - LEFTMARGIN - RIGHTMARGIN - MULTIPLOTGUTTER) / 2;
rowNum = plotPosition / 2;
colNum = plotPosition % 2;
dmh_xoffset = LEFTMARGIN + ((boxEdge + MULTIPLOTGUTTER) * colNum);
dmh_yoffset = (dmh_pageHeight * 0.5) + (boxEdge * 1.5) + MULTIPLOTGUTTER - (boxEdge * (rowNum+1)) - (MULTIPLOTGUTTER * rowNum);
dmh_xscale = boxEdge;
dmh_yscale = boxEdge;
DEBUGPRINT(("End pspltrgn. boxEdge=%i; r,c=(%i,%i); scale=(%f, %f); offset=(%f, %f); DevPtRange=(%f,%f)-(%f,%f).\n", boxEdge, rowNum, colNum, dmh_xscale, dmh_yscale, dmh_xoffset, dmh_yoffset,deviceX(0), deviceY(0), deviceX(1), deviceY(1)));
}
示例14: gtk_css_image_builtin_draw_arrow
static void
gtk_css_image_builtin_draw_arrow (GtkCssImage *image,
cairo_t *cr,
double width,
double height,
GtkCssImageBuiltinType image_type)
{
GtkCssImageBuiltin *builtin = GTK_CSS_IMAGE_BUILTIN (image);
double line_width;
double size;
size = MIN (width, height);
cairo_translate (cr, width / 2.0, height / 2.0);
switch (image_type)
{
case GTK_CSS_IMAGE_BUILTIN_ARROW_UP:
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_DOWN:
cairo_rotate (cr, G_PI);
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_LEFT:
cairo_rotate (cr, 3 * G_PI / 2);
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_RIGHT:
cairo_rotate (cr, G_PI / 2);
break;
default:
g_assert_not_reached ();
break;
}
line_width = size / 3.0 / sqrt (2);
cairo_set_line_width (cr, line_width);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_scale (cr,
(size / (size + line_width)),
(size / (size + line_width)));
cairo_move_to (cr, -size / 2.0, size / 4.0);
cairo_rel_line_to (cr, size / 2.0, -size / 2.0);
cairo_rel_line_to (cr, size / 2.0, size / 2.0);
gdk_cairo_set_source_rgba (cr, &builtin->fg_color);
cairo_stroke (cr);
}
示例15: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_set_source_rgb (cr, 1, 1, 1);
cairo_paint (cr);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_translate (cr, PAD, PAD);
/* First compress the pen to a vertical line. */
cairo_rectangle (cr, 0, 0, SIZE, SIZE);
cairo_curve_to (cr, SIZE / 2, 0, SIZE, SIZE / 2, SIZE, SIZE);
cairo_save (cr);
{
cairo_scale (cr, 0.000001, 1.0);
cairo_stroke (cr);
}
cairo_restore (cr);
cairo_translate (cr, PAD + SIZE, 0);
/* Then compress the pen to a horizontal line. */
cairo_rectangle (cr, 0, 0, SIZE, SIZE);
cairo_curve_to (cr, SIZE / 2, 0, SIZE, SIZE / 2, SIZE, SIZE);
cairo_save (cr);
{
cairo_scale (cr, 1.0, 0.000001);
cairo_stroke (cr);
}
cairo_restore (cr);
cairo_translate (cr, PAD + SIZE, 0);
/* Finally a line at an angle. */
cairo_rectangle (cr, 0, 0, SIZE, SIZE);
cairo_curve_to (cr, SIZE / 2, 0, SIZE, SIZE / 2, SIZE, SIZE);
cairo_save (cr);
{
cairo_rotate (cr, M_PI / 4.0);
cairo_scale (cr, 0.000001, 1.0);
cairo_stroke (cr);
}
cairo_restore (cr);
return CAIRO_TEST_SUCCESS;
}