本文整理汇总了C++中cairo_pattern_add_color_stop_rgb函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_pattern_add_color_stop_rgb函数的具体用法?C++ cairo_pattern_add_color_stop_rgb怎么用?C++ cairo_pattern_add_color_stop_rgb使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_pattern_add_color_stop_rgb函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cairo_rectangle
void Taskbar::Draw(cairo_t *cr)
{
static double start_colour = 0.8;
static double end_colour = 0.7;
int m_colour = 0xf0f0f0;
cairo_pattern_t *pattern;
double red = ((m_colour >> 16) & 0xff) / 255.0;
double green = ((m_colour >> 8) & 0xff) / 255.0;
double blue = ((m_colour) & 0xff) / 255.0;
cairo_rectangle(cr, 0.5, 0.5, m_draw_size.m_width-1.0, m_draw_size.m_height-1.0);
pattern = cairo_pattern_create_linear(0, 0, 0, m_draw_size.m_height);
cairo_pattern_add_color_stop_rgb(pattern, 0.0, start_colour*red, start_colour*green, start_colour*blue);
cairo_pattern_add_color_stop_rgb(pattern, 1.0, end_colour*red, end_colour*green, end_colour*blue);
/* Fill with our pattern */
cairo_set_source(cr, pattern);
cairo_fill(cr);
/* Destroy the pattern */
cairo_pattern_destroy(pattern);
// Now draw a line at the bottom
const double bound_colour = 0.5;
cairo_set_source_rgb(cr, bound_colour, bound_colour, bound_colour);
cairo_set_line_width(cr, 1.0);
cairo_move_to(cr, 0.5, m_draw_size.m_height-0.5);
cairo_line_to(cr, m_draw_size.m_width-0.5, m_draw_size.m_height-0.5);
cairo_stroke(cr);
drawChild(cr);
}
开发者ID:gerryg400,项目名称:anvilos,代码行数:34,代码来源:Taskbar.cpp
示例2: copy_cell_glyph
void copy_cell_glyph(cairo_t *cr, int rotation) {
static cairo_pattern_t *pat = 0;
if(pat == 0) {
pat = cairo_pattern_create_radial (0.27, 0.3, 0.08, 0.2, 0.35, 0.6);
cairo_pattern_add_color_stop_rgb (pat, 0, 0.9, 0.9, 0.9);
cairo_pattern_add_color_stop_rgb (pat, 1, 0.2, 0.9, 0.3);
}
cairo_save(cr);
cairo_scale(cr,0.8,0.8);
cairo_new_path(cr);
cairo_arc(cr,0.5,0.5,0.5,(rotation*2-5)*M_PI/4,(rotation*2+5)*M_PI/4);
cairo_line_to(cr,0.5,0.5);
cairo_close_path(cr);
cairo_set_source (cr, pat);
cairo_fill_preserve (cr);
cairo_set_source_rgb(cr,0.0,0.0,0.0);
cairo_set_line_width(cr,0.07);
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND);
cairo_stroke(cr);
cairo_restore(cr);
}
开发者ID:petersn,项目名称:rala_util,代码行数:28,代码来源:rala_glyphs.c
示例3: clearlooks_draw_glossy_gradient
static void
clearlooks_draw_glossy_gradient (cairo_t *cr,
double x, double y, int width, int height,
const CairoColor *color,
gboolean disabled, gboolean radius, CairoCorners corners)
{
CairoColor a, b, c, d;
cairo_pattern_t *pt;
ge_shade_color (color, disabled? 1.06 : 1.16, &a);
ge_shade_color (color, disabled? 1.02 : 1.08, &b);
ge_shade_color (color, disabled? 0.98 : 1.00, &c);
ge_shade_color (color, disabled? 1.02 : 1.08, &d);
pt = cairo_pattern_create_linear (x, y, x, y+height);
cairo_pattern_add_color_stop_rgb (pt, 0.0, a.r, a.g, a.b);
cairo_pattern_add_color_stop_rgb (pt, 0.5, b.r, b.g, b.b);
cairo_pattern_add_color_stop_rgb (pt, 0.5, c.r, c.g, c.b);
cairo_pattern_add_color_stop_rgb (pt, 1.0, d.r, d.g, d.b);
cairo_set_source (cr, pt);
ge_cairo_rounded_rectangle (cr, x, y, width, height, radius, corners);
cairo_fill (cr);
cairo_pattern_destroy (pt);
}
开发者ID:GNOME,项目名称:gtk-theme-engine-clearlooks,代码行数:26,代码来源:clearlooks_draw_glossy.c
示例4: or_gate_glyph
void or_gate_glyph(cairo_t *cr) {
static cairo_pattern_t *pat = 0;
cairo_save(cr);
cairo_scale(cr,0.8,0.8);
if(pat == 0) {
pat = cairo_pattern_create_radial (0.35, 0.3, 0.08, 0.2, 0.35, 0.6);
cairo_pattern_add_color_stop_rgb (pat, 0, 0.9, 0.9, 0.9);
cairo_pattern_add_color_stop_rgb (pat, 1, 0.68, 1.0, 0.68);
}
cairo_new_path(cr);
cairo_move_to(cr,0,0);
cairo_arc(cr,-0.5,0.5,sqrt(2.0)/2,-M_PI/4,M_PI/4);
cairo_line_to(cr,0.5,1.0);
cairo_save(cr);
cairo_scale(cr,0.9,2.0);
double angle = asin(3.0/4);
cairo_arc_negative(cr,0.5,-0.5,1.0,M_PI/2,angle);
cairo_arc_negative(cr,0.5,1.0,1.0,-angle,-M_PI/2);
cairo_restore(cr);
cairo_close_path(cr);
cairo_set_source (cr, pat);
cairo_fill_preserve (cr);
cairo_set_source_rgb(cr,0.0,0.0,0.0);
cairo_set_line_width(cr,0.07);
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND);
cairo_stroke(cr);
cairo_restore(cr);
}
开发者ID:petersn,项目名称:rala_util,代码行数:35,代码来源:rala_glyphs.c
示例5: terranova_draw_candy_icon_view_item
static void
terranova_draw_candy_icon_view_item (cairo_t *cr,
const terranovaColors *colors,
const WidgetParameters *params,
int x, int y, int width, int height)
{
const CairoColor *fill = &colors->bg[GTK_STATE_SELECTED];
cairo_save (cr);
cairo_translate (cr, x, y);
cairo_pattern_t *pattern;
CairoColor shade1, shade2;
tn_shade_color (fill, 0.94, &shade1);
tn_shade_color (fill, 1.00, &shade2);
pattern = cairo_pattern_create_linear (0, 1, 0, height);
cairo_pattern_add_color_stop_rgb (pattern, 0.00, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.35, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.65, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.00, shade2.r, shade2.g, shade2.b);
cairo_set_source (cr, pattern);
tn_cairo_rounded_rectangle (cr, 0, 0, width, height, params->radius, CR_CORNER_ALL);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
cairo_restore (cr);
}
开发者ID:Nanolx,项目名称:TerraNova-GTK2,代码行数:32,代码来源:terranova_draw_candy.c
示例6: terranova_draw_candy_list_view_header
static void
terranova_draw_candy_list_view_header (cairo_t *cr,
const terranovaColors *colors,
const WidgetParameters *params,
const ListViewHeaderParameters *header,
int x, int y, int width, int height)
{
const CairoColor *fill = &colors->bg[GTK_STATE_NORMAL];
cairo_pattern_t *pattern;
cairo_translate (cr, x, y);
CairoColor shade1, shade2;
tn_shade_color (fill, 0.96, &shade1);
tn_shade_color (fill, 1.10, &shade2);
pattern = cairo_pattern_create_linear (0, 0, 0, height);
cairo_pattern_add_color_stop_rgb (pattern, 0.00, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.35, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.65, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.00, shade2.r, shade2.g, shade2.b);
cairo_set_source (cr, pattern);
cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
}
开发者ID:Nanolx,项目名称:TerraNova-GTK2,代码行数:27,代码来源:terranova_draw_candy.c
示例7: terranova_draw_candy_selected_cell
static void
terranova_draw_candy_selected_cell (cairo_t *cr,
const terranovaColors *colors,
const WidgetParameters *params,
int x, int y, int width, int height)
{
cairo_save (cr);
cairo_translate (cr, x, y);
cairo_pattern_t *pattern;
CairoColor fill = colors->bg[params->state_type];
CairoColor shade1, shade2;
tn_shade_color (&fill, 0.96, &shade1);
tn_shade_color (&fill, 1.10, &shade2);
pattern = cairo_pattern_create_linear (0, 0, 0, height);
cairo_pattern_add_color_stop_rgb (pattern, 0.00, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.35, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.65, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.00, shade2.r, shade2.g, shade2.b);
cairo_set_source (cr, pattern);
cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
cairo_restore (cr);
}
开发者ID:Nanolx,项目名称:TerraNova-GTK2,代码行数:30,代码来源:terranova_draw_candy.c
示例8: terranova_draw_candy_menubaritem
static void
terranova_draw_candy_menubaritem (cairo_t *cr,
const terranovaColors *colors,
const WidgetParameters *params,
int x, int y, int width, int height)
{
const CairoColor *fill = &colors->bg[GTK_STATE_SELECTED];
CairoColor border = colors->spot[2];
cairo_pattern_t *pattern;
tn_shade_color (&border, 1.00, &border);
CairoColor shade1, shade2;
tn_shade_color (fill, 0.96, &shade1);
tn_shade_color (fill, 1.10, &shade2);
pattern = cairo_pattern_create_linear (x, y, x, y + height);
cairo_pattern_add_color_stop_rgb (pattern, 0.00, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.35, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.65, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.00, shade2.r, shade2.g, shade2.b);
cairo_set_source (cr, pattern);
tn_cairo_rounded_rectangle (cr, x+0.75, y+0.75, width - 1, height - 1, params->radius, params->corners);
cairo_fill_preserve (cr);
cairo_pattern_destroy (pattern);
tn_cairo_set_color (cr, &border);
cairo_stroke_preserve (cr);
}
开发者ID:Nanolx,项目名称:TerraNova-GTK2,代码行数:30,代码来源:terranova_draw_candy.c
示例9: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_pattern_t *pattern;
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_paint (cr);
/* with alpha */
pattern = cairo_pattern_create_linear (0, 0, 0, height);
cairo_pattern_add_color_stop_rgba (pattern, 0, 1, 1, 1, .5);
cairo_pattern_add_color_stop_rgba (pattern, 1, 1, 1, 1, .5);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr, 0, 0, width/2, height);
cairo_fill (cr);
/* without alpha */
pattern = cairo_pattern_create_linear (0, 0, 0, height);
cairo_pattern_add_color_stop_rgb (pattern, 0, 1, 1, 1);
cairo_pattern_add_color_stop_rgb (pattern, 1, 1, 1, 1);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr, width/2, 0, width/2, height);
cairo_fill (cr);
return CAIRO_TEST_SUCCESS;
}
开发者ID:AZed,项目名称:cairo,代码行数:28,代码来源:linear-uniform.c
示例10: clearlooks_glossy_draw_menubaritem
static void
clearlooks_glossy_draw_menubaritem (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *params,
int x, int y, int width, int height)
{
const CairoColor *fill = &colors->spot[1];
const CairoColor *border = &colors->spot[2];
CairoColor shade1, shade2, shade3;
cairo_pattern_t *pattern;
ge_shade_color (fill, 1.16, &shade1);
ge_shade_color (fill, 1.08, &shade2);
ge_shade_color (fill, 1.08, &shade3);
cairo_set_line_width (cr, 1.0);
ge_cairo_rounded_rectangle (cr, x+0.5, y+0.5, width - 1, height - 1, params->radius, params->corners);
pattern = cairo_pattern_create_linear (x, y, x, y + height);
cairo_pattern_add_color_stop_rgb (pattern, 0, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, fill->r, fill->g, fill->b);
cairo_pattern_add_color_stop_rgb (pattern, 1, shade3.r, shade3.g, shade3.b);
cairo_set_source (cr, pattern);
cairo_fill_preserve (cr);
cairo_pattern_destroy (pattern);
ge_cairo_set_color (cr, border);
cairo_stroke (cr);
}
开发者ID:GNOME,项目名称:gtk-theme-engine-clearlooks,代码行数:31,代码来源:clearlooks_draw_glossy.c
示例11: ghid_trackball_expose
static gboolean
ghid_trackball_expose (GtkWidget * widget, GdkEventExpose * ev)
{
cairo_t *cr;
cairo_pattern_t *pattern;
GtkAllocation allocation;
GdkColor color;
double radius;
cr = gdk_cairo_create (gtk_widget_get_window (widget));
/* set a clip region for the expose event */
cairo_rectangle (cr,
ev->area.x, ev->area.y,
ev->area.width, ev->area.height);
cairo_clip (cr);
gtk_widget_get_allocation (widget, &allocation);
radius = (MIN (allocation.width, allocation.height) - 5) / 2.;
pattern = cairo_pattern_create_radial (2 * radius * 0.8,
2 * radius * 0.3,
0.,
2 * radius * 0.50,
2 * radius * 0.50,
2 * radius * 0.71);
color = widget->style->fg[GTK_WIDGET_STATE (widget)];
cairo_pattern_add_color_stop_rgb (pattern, 0.0,
(color.red / 65535. * 0.5 + 4.5) / 5.,
(color.green / 65535. * 0.5 + 4.5) / 5.,
(color.blue / 65535. * 0.5 + 4.5) / 5.);
cairo_pattern_add_color_stop_rgb (pattern, 0.2,
(color.red / 65535. * 1.5 + 3.7) / 5.,
(color.green / 65535. * 1.5 + 3.7) / 5.,
(color.blue / 65535. * 1.5 + 3.7) / 5.);
cairo_pattern_add_color_stop_rgb (pattern, 1.0,
(color.red / 65535. * 5. + 0.) / 5.,
(color.green / 65535. * 5. + 0.) / 5.,
(color.blue / 65535. * 5. + 0.) / 5.);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_save (cr);
cairo_translate (cr, allocation.width / 2., allocation.height / 2.);
cairo_scale (cr, radius, radius);
cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI);
cairo_restore (cr);
cairo_fill_preserve (cr);
gdk_cairo_set_source_color (cr, &widget->style->bg[GTK_WIDGET_STATE (widget)]);
cairo_set_line_width (cr, 0.4);
cairo_stroke (cr);
cairo_destroy (cr);
return FALSE;
}
开发者ID:bgamari,项目名称:geda-pcb,代码行数:60,代码来源:gui-trackball.c
示例12: clearlooks_inverted_draw_menubaritem
static void
clearlooks_inverted_draw_menubaritem (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
int x, int y, int width, int height)
{
CairoColor *fill = (CairoColor*)&colors->spot[1];
CairoColor fill_shade;
CairoColor border = colors->spot[2];
cairo_pattern_t *pattern;
ge_shade_color (&border, 1.05, &border);
ge_shade_color (fill, 0.85, &fill_shade);
cairo_set_line_width (cr, 1.0);
ge_cairo_rounded_rectangle (cr, x + 0.5, y + 0.5, width - 1, height, widget->radius, widget->corners);
pattern = cairo_pattern_create_linear (x, y, x, y + height);
cairo_pattern_add_color_stop_rgb (pattern, 0, fill_shade.r, fill_shade.g, fill_shade.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.0, fill->r, fill->g, fill->b);
cairo_set_source (cr, pattern);
cairo_fill_preserve (cr);
cairo_pattern_destroy (pattern);
ge_cairo_set_color (cr, &border);
cairo_stroke_preserve (cr);
}
开发者ID:TALAPCH1,项目名称:LXDE-configuration,代码行数:28,代码来源:clearlooks_draw_inverted.c
示例13: and_gate_glyph
void and_gate_glyph(cairo_t *cr) {
static cairo_pattern_t *pat = 0;
cairo_save(cr);
cairo_scale(cr,0.8,0.8);
if(pat == 0) {
pat = cairo_pattern_create_radial (0.27, 0.3, 0.08, 0.2, 0.35, 0.6);
cairo_pattern_add_color_stop_rgb (pat, 0, 0.9, 0.9, 0.9);
cairo_pattern_add_color_stop_rgb (pat, 1, 1.0, 0.68, 0.68);
}
cairo_new_path(cr);
cairo_move_to(cr,0.0,0.0);
cairo_line_to(cr,0.0,1.0);
cairo_line_to(cr,0.5,1.0);
cairo_arc_negative(cr,0.5,0.5,0.5,M_PI/2.0,-M_PI/2.0);
cairo_close_path(cr);
cairo_set_source (cr, pat);
cairo_fill_preserve (cr);
cairo_set_source_rgb(cr,0.0,0.0,0.0);
cairo_set_line_width(cr,0.07);
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND);
cairo_stroke(cr);
cairo_restore(cr);
}
开发者ID:petersn,项目名称:rala_util,代码行数:30,代码来源:rala_glyphs.c
示例14: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_pattern_t *pattern;
cairo_set_source_rgb (cr, 0.5, 0.5, 0.5);
cairo_paint (cr);
cairo_save (cr);
pattern = cairo_pattern_create_linear (0, 0, 10.0, 0);
cairo_pattern_add_color_stop_rgb (pattern, 0.0,
0.0, 0.0, 1.0);
cairo_pattern_add_color_stop_rgb (pattern, 1.0,
1.0, 0.0, 0.0);
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REFLECT);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
cairo_rectangle (cr, 0.0, 0.0, WIDTH, HEIGHT);
cairo_fill (cr);
cairo_restore (cr);
return CAIRO_TEST_SUCCESS;
}
开发者ID:ghub,项目名称:NVprSDK,代码行数:27,代码来源:linear-gradient-reflect.c
示例15: br_cairo_draw_section
static void br_cairo_draw_section(duc_graph *g, double a1, double a2, double r1, double r2, double H, double S, double V, double line)
{
struct cairo_backend_data *bd = g->backend_data;
cairo_t *cr = bd->cr;
double R, G, B;
hsv2rgb(H, S, V, &R, &G, &B);
cairo_new_path(cr);
cairo_arc(cr, g->cx, g->cy, r1, ang(a1), ang(a2));
cairo_arc_negative(cr, g->cx, g->cy, r2, ang(a2), ang(a1));
cairo_close_path(cr);
if(R != 1.0 || G != 1.0 || B != 1.0) {
cairo_pattern_t *pat;
pat = cairo_pattern_create_radial(g->cx, g->cy, 0, g->cx, g->cy, g->cx-50);
double off1 = r2 / g->cx;
double off2 = r1 / g->cx;
cairo_pattern_add_color_stop_rgb(pat, off1, R, G, B);
cairo_pattern_add_color_stop_rgb(pat, off2, R * 0.6, G * 0.6, B * 0.6);
cairo_set_source(cr, pat);
cairo_fill_preserve(cr);
cairo_pattern_destroy(pat);
}
if(line) {
cairo_set_line_width(cr, 0.5);
cairo_set_source_rgba(cr, 0, 0, 0, 0.9);
cairo_stroke(cr);
}
}
开发者ID:NethServer,项目名称:duc,代码行数:32,代码来源:graph-cairo.c
示例16: clearlooks_glossy_draw_toolbar
static void
clearlooks_glossy_draw_toolbar (cairo_t *cr,
const ClearlooksColors *colors,
const WidgetParameters *widget,
const ToolbarParameters *toolbar,
int x, int y, int width, int height)
{
const CairoColor *fill = &colors->bg[GTK_STATE_NORMAL];
const CairoColor *dark = &colors->shade[3];
CairoColor light;
ge_shade_color (fill, 1.1, &light);
cairo_set_line_width (cr, 1.0);
cairo_translate (cr, x, y);
if (toolbar->style == 1) /* Enable Extra features */
{
cairo_pattern_t *pattern;
CairoColor shade1, shade2, shade3;
ge_shade_color (fill, 1.08, &shade1);
ge_shade_color (fill, 1.04, &shade2);
ge_shade_color (fill, 1.04, &shade3);
/* Draw the fill */
pattern = cairo_pattern_create_linear (0, 0, 0, height);
cairo_pattern_add_color_stop_rgb (pattern, 0.0, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.5, fill->r, fill->g, fill->b);
cairo_pattern_add_color_stop_rgb (pattern, 1.0, shade3.r, shade3.g, shade3.b);
cairo_set_source (cr, pattern);
cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
}
else /* Flat */
{
ge_cairo_set_color (cr, fill);
cairo_paint (cr);
if (!toolbar->topmost)
{
/* Draw highlight */
cairo_move_to (cr, 0, 0.5);
cairo_line_to (cr, width-1, 0.5);
ge_cairo_set_color (cr, &light);
cairo_stroke (cr);
}
}
/* Draw shadow */
cairo_move_to (cr, 0, height-0.5);
cairo_line_to (cr, width-1, height-0.5);
ge_cairo_set_color (cr, dark);
cairo_stroke (cr);
}
开发者ID:GNOME,项目名称:gtk-theme-engine-clearlooks,代码行数:58,代码来源:clearlooks_draw_glossy.c
示例17: add_line
static void
add_line(CrItem *group)
{
int i, total;
double angle, dist, cx, cy, x, y;
GArray *array;
CrItem *line;
guint color;
cairo_pattern_t *pattern;
array = g_array_new(FALSE, FALSE, sizeof(double));
total = g_random_int_range(3, 30);
cx = g_random_double_range(40, 360);
cy = g_random_double_range(40, 360);
for (i = 0, angle = 0; i < total; angle += 2. * M_PI/total, i++) {
dist = g_random_double_range(10, 40);
x = cx + dist * sin(angle);
y = cy + dist * cos(angle);
g_array_append_val(array, x);
g_array_append_val(array, y);
}
line = cr_line_new(group, "array", array,
"outline_color_rgba", 0x000000ff,
"line_scaleable", TRUE,
"line_width", 3.0,
NULL);
if (g_random_boolean()) {
color = g_random_int_range(0,255) << 24 |
g_random_int_range(0,255) << 16 |
g_random_int_range(0,255) << 8 |
0xff;
g_object_set(line, "fill_color_rgba", color, NULL);
}
else {
pattern = cairo_pattern_create_linear(0, 0,
g_random_double_range(5, 20),
g_random_double_range(5, 20));
cairo_pattern_add_color_stop_rgb(pattern, 0, g_random_double(),
g_random_double(), g_random_double());
cairo_pattern_add_color_stop_rgb(pattern, 10, g_random_double(),
g_random_double(), g_random_double());
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
g_object_set(line, "pattern", pattern, NULL);
cairo_pattern_destroy(pattern);
}
g_signal_connect(line, "event", (GCallback) item_event, NULL);
}
开发者ID:fastcoding,项目名称:sirrannon,代码行数:57,代码来源:custom-items.c
示例18: create_node_pattern
static cairo_pattern_t *
create_node_pattern(double r, double g, double b)
{
cairo_pattern_t *retval = cairo_pattern_create_radial(0.0, -0.33, 0.0, 0.0, 0.0, 1.0);
cairo_pattern_add_color_stop_rgb(retval, 0.0, MAX(1.0, r * 1.5), MAX(1.0, g * 1.5), MAX(1.0, b * 1.5));
cairo_pattern_add_color_stop_rgb(retval, 0.5, r, g, b);
cairo_pattern_add_color_stop_rgb(retval, 0.75, r * 0.5, g * 0.5, b * 0.5);
cairo_pattern_add_color_stop_rgb(retval, 1.0, r, g, b);
return retval;
}
开发者ID:sffej,项目名称:gnome-inform7,代码行数:10,代码来源:node.c
示例19: terranova_draw_candy_progressbar_trough
static void
terranova_draw_candy_progressbar_trough (cairo_t *cr,
const terranovaColors *colors,
const WidgetParameters *params,
int x, int y, int width, int height)
{
const CairoColor *border = &colors->shade[6];
cairo_pattern_t *pattern;
const CairoColor *fill = &colors->bg[params->state_type];
double radius = MIN (params->radius, MIN ((width - 4.0) / 2.0, (height - 4.0) / 2.0));
cairo_save (cr);
cairo_set_line_width (cr, 1.0);
/* Create trough box */
tn_cairo_rounded_rectangle (cr, x+1, y+1, width-2, height-2, radius, params->corners);
tn_cairo_set_color (cr, &colors->shade[1]);
cairo_fill (cr);
/* Draw border */
tn_cairo_rounded_rectangle (cr, x+0.5, y+0.5, width-1, height-1, radius, params->corners);
tn_cairo_set_color (cr, border);
cairo_stroke (cr);
/* clip the corners of the shadows */
tn_cairo_rounded_rectangle (cr, x+1, y+1, width-2, height-2, radius, params->corners);
cairo_clip (cr);
if (height > width)
{
int tmp = height;
height = width;
width = tmp;
terranova_mirror_rotate (cr, G_PI/2, x, y, FALSE, FALSE);
}
CairoColor shade1, shade2;
tn_shade_color (fill, 0.96, &shade1);
tn_shade_color (fill, 1.10, &shade2);
pattern = cairo_pattern_create_linear (x, y + 1, x, y + height);
cairo_pattern_add_color_stop_rgb (pattern, 0.00, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.35, shade1.r, shade1.g, shade1.b);
cairo_pattern_add_color_stop_rgb (pattern, 0.65, shade2.r, shade2.g, shade2.b);
cairo_pattern_add_color_stop_rgb (pattern, 1.00, shade2.r, shade2.g, shade2.b);
cairo_set_source (cr, pattern);
tn_cairo_rounded_rectangle (cr, 0, 0, width - 1, height - 1, params->radius, params->corners);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
}
开发者ID:Nanolx,项目名称:TerraNova-GTK2,代码行数:55,代码来源:terranova_draw_candy.c
示例20: towel_window_set_background_color
static void
towel_window_set_background_color(towel_window_t *win, cairo_t *cr)
{
cairo_pattern_t* pat = cairo_pattern_create_linear(win->width/2, 0,
win->width/2, win->height);
cairo_pattern_add_color_stop_rgb(pat, 0, .1, .1, .1);
cairo_pattern_add_color_stop_rgb(pat, 1, .2, .2, .2);
cairo_set_source(cr, pat);
cairo_rectangle(cr, 0, 0, win->width, win->height);
cairo_fill(cr);
cairo_pattern_destroy(pat);
}
开发者ID:kanru,项目名称:towel,代码行数:12,代码来源:towel.c
注:本文中的cairo_pattern_add_color_stop_rgb函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论