本文整理汇总了C++中cairo_get_current_point函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_get_current_point函数的具体用法?C++ cairo_get_current_point怎么用?C++ cairo_get_current_point使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_get_current_point函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: do_text
static cairo_time_t
do_text (cairo_t *cr, int width, int height, int loops)
{
const char text[] = "the jay, pig, fox, zebra and my wolves quack";
int len = strlen (text);
double x, y;
int i = 0, j = 0;
cairo_set_font_size (cr, 9);
cairo_perf_timer_start ();
cairo_perf_set_thread_aware (cr, FALSE);
while (loops--) {
if (loops == 0)
cairo_perf_set_thread_aware (cr, TRUE);
do {
cairo_move_to (cr, 0, j++ * 10);
cairo_show_text (cr, text + i);
cairo_get_current_point (cr, &x, &y);
while (x < width && cairo_status (cr) == CAIRO_STATUS_SUCCESS) {
cairo_show_text (cr, text);
cairo_get_current_point (cr, &x, &y);
}
if (++i >= len)
i = 0;
} while (y < height && cairo_status (cr) == CAIRO_STATUS_SUCCESS);
}
cairo_perf_timer_stop ();
return cairo_perf_timer_elapsed ();
}
开发者ID:csyuschmjuh,项目名称:apl,代码行数:33,代码来源:text.c
示例2: show_text_with_page_feed
static PangoLayout *
show_text_with_page_feed (cairo_t *cr, const gchar *utf8)
{
PangoLayout *layout;
double x, y;
int width, height;
if (!utf8)
return NULL;
layout = cut_cairo_create_pango_layout(cr, utf8, 10);
if (!layout)
return NULL;
cairo_get_current_point(cr, &x, &y);
pango_layout_get_pixel_size(layout, &width, &height);
if (A4_HEIGHT < y + height) {
cairo_show_page(cr);
init_page(cr);
cairo_get_current_point(cr, NULL, &y);
cairo_move_to(cr, x, y);
}
pango_cairo_show_layout(cr, layout);
return layout;
}
开发者ID:andrewdavis12,项目名称:cutter,代码行数:27,代码来源:cut-pdf-report.c
示例3: do_world_map
static cairo_perf_ticks_t
do_world_map (cairo_t *cr, int width, int height, int loops)
{
const wm_element_t *e;
double cx, cy;
cairo_set_line_width (cr, 0.2);
cairo_perf_timer_start ();
while (loops--) {
cairo_set_source_rgb (cr, .68, .85, .90); /* lightblue */
cairo_rectangle (cr, 0, 0, 800, 400);
cairo_fill (cr);
e = &countries[0];
while (1) {
switch (e->type) {
case WM_NEW_PATH:
case WM_END:
cairo_set_source_rgb (cr, .75, .75, .75); /* silver */
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, .50, .50, .50); /* gray */
cairo_stroke (cr);
cairo_move_to (cr, e->x, e->y);
break;
case WM_MOVE_TO:
cairo_close_path (cr);
cairo_move_to (cr, e->x, e->y);
break;
case WM_LINE_TO:
cairo_line_to (cr, e->x, e->y);
break;
case WM_HLINE_TO:
cairo_get_current_point (cr, &cx, &cy);
cairo_line_to (cr, e->x, cy);
break;
case WM_VLINE_TO:
cairo_get_current_point (cr, &cx, &cy);
cairo_line_to (cr, cx, e->y);
break;
case WM_REL_LINE_TO:
cairo_rel_line_to (cr, e->x, e->y);
break;
}
if (e->type == WM_END)
break;
e++;
}
cairo_new_path (cr);
}
cairo_perf_timer_stop ();
return cairo_perf_timer_elapsed ();
}
开发者ID:Grlfx,项目名称:WinObjC,代码行数:57,代码来源:world-map.c
示例4: paint_output_info
static void paint_output_info(struct connector *c, struct igt_fb *fb)
{
cairo_t *cr = igt_get_cairo_ctx(drm_fd, fb);
int l_width = fb->width;
int l_height = fb->height;
double str_width;
double x, y, top_y;
double max_width;
int i;
cairo_move_to(cr, l_width / 2, l_height / 2);
/* Print connector and mode name */
cairo_set_font_size(cr, 48);
igt_cairo_printf_line(cr, align_hcenter, 10, "%s",
kmstest_connector_type_str(c->connector->connector_type));
cairo_set_font_size(cr, 36);
str_width = igt_cairo_printf_line(cr, align_hcenter, 10,
"%s @ %dHz on %s encoder", c->mode.name, c->mode.vrefresh,
kmstest_encoder_type_str(c->encoder->encoder_type));
cairo_rel_move_to(cr, -str_width / 2, 0);
/* List available modes */
cairo_set_font_size(cr, 18);
str_width = igt_cairo_printf_line(cr, align_left, 10,
"Available modes:");
cairo_rel_move_to(cr, str_width, 0);
cairo_get_current_point(cr, &x, &top_y);
max_width = 0;
for (i = 0; i < c->connector->count_modes; i++) {
cairo_get_current_point(cr, &x, &y);
if (y >= l_height) {
x += max_width + 10;
max_width = 0;
cairo_move_to(cr, x, top_y);
}
str_width = igt_cairo_printf_line(cr, align_right, 10,
"%s @ %dHz", c->connector->modes[i].name,
c->connector->modes[i].vrefresh);
if (str_width > max_width)
max_width = str_width;
}
if (qr_code)
paint_image(cr, "pass.png");
igt_assert(!cairo_status(cr));
cairo_destroy(cr);
}
开发者ID:jmb82,项目名称:intel-gpu-tools,代码行数:53,代码来源:testdisplay.c
示例5: icon_shape_renderer
static void
icon_shape_renderer (cairo_t *cr,
PangoAttrShape *attr,
gboolean do_path,
gpointer user_data)
{
IconShapeData *data = user_data;
gdouble x, y;
cairo_get_current_point (cr, &x, &y);
if (GPOINTER_TO_UINT (attr->data) == data->placeholder) {
gdouble ascent;
gdouble height;
GdkPixbuf *pixbuf;
GtkIconInfo *info;
ascent = pango_units_to_double (attr->ink_rect.y);
height = pango_units_to_double (attr->ink_rect.height);
info = gtk_icon_theme_lookup_by_gicon (gtk_icon_theme_get_default (),
data->icon,
(gint)height,
GTK_ICON_LOOKUP_FORCE_SIZE | GTK_ICON_LOOKUP_USE_BUILTIN);
pixbuf = gtk_icon_info_load_icon (info, NULL);
g_object_unref (info);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_reset_clip (cr);
gdk_cairo_set_source_pixbuf (cr, pixbuf, x, y + ascent);
cairo_paint (cr);
g_object_unref (pixbuf);
}
}
开发者ID:endlessm,项目名称:gnome-control-center,代码行数:32,代码来源:um-utils.c
示例6: add_rectangle
static void
add_rectangle (cairo_t *cr, double size)
{
double x, y;
if (size < 1)
return;
cairo_get_current_point (cr, &x, &y);
cairo_rel_move_to (cr, -size/2., -size/2.);
cairo_rel_line_to (cr, size, 0);
cairo_rel_line_to (cr, 0, size);
cairo_rel_line_to (cr, -size, 0);
cairo_close_path (cr);
cairo_save (cr);
cairo_translate (cr, -size/2., size);
cairo_move_to (cr, x, y);
cairo_rotate (cr, M_PI/4);
add_rectangle (cr, size / M_SQRT2);
cairo_restore (cr);
cairo_save (cr);
cairo_translate (cr, size/2., size);
cairo_move_to (cr, x, y);
cairo_rotate (cr, -M_PI/4);
add_rectangle (cr, size / M_SQRT2);
cairo_restore (cr);
}
开发者ID:AliYousuf,项目名称:cairo,代码行数:30,代码来源:pythagoras-tree.c
示例7: cairo_get_current_point
void CanvasCairo::pathAltArcTo(float rx, float ry, float angle, bool largeArc, bool sweep, float x, float y) {
double _x, _y;
cairo_get_current_point (_context, &_x, &_y);
rx = fabsf(rx); ry = fabsf(ry);
Mat4 transform(Mat4::IDENTITY); Mat4::createRotationZ(angle, &transform);
Mat4 inverse = transform; inverse.transpose();
Vec2 vDash(cocos2d::PointApplyTransform(Vec2((_x - x) / 2, (_y - y) / 2), inverse));
float lambda = (vDash.x * vDash.x) / (rx * rx) + (vDash.y * vDash.y) / (ry * ry);
if (lambda > 1.0f) {
rx = sqrtf(lambda) * rx; ry = sqrtf(lambda) * ry;
vDash = Vec2(cocos2d::PointApplyTransform(Vec2((_x - x) / 2, (_y - y) / 2), inverse));
}
float rx_y1_ = (rx * rx * vDash.y * vDash.y);
float ry_x1_ = (ry * ry * vDash.x * vDash.x);
float cst = sqrtf(((rx * rx * ry * ry) - rx_y1_ - ry_x1_) / (rx_y1_ + ry_x1_));
Vec2 cDash((largeArc != sweep ? 1.0f : -1.0f) * cst * rx * vDash.y / ry,
(largeArc != sweep ? 1.0f : -1.0f) * - cst * ry * vDash.x / rx);
float cx = cDash.x + (_x + x) / 2;
float cy = cDash.y + (_y + y) / 2;
float startAngle = Vec2::angle(Vec2(1.0f, 0.0f), Vec2((vDash.x - cDash.x) / rx, (vDash.y - cDash.y) / ry));
float sweepAngle = Vec2::angle(Vec2((vDash.x - cDash.x) / rx, (vDash.y - cDash.y) / ry),
Vec2((-vDash.x - cDash.x) / rx, (-vDash.y - cDash.y) / ry));
pathArcTo(cx, cy, rx, ry, startAngle, sweepAngle, angle);
}
开发者ID:SBKarr,项目名称:stappler,代码行数:32,代码来源:SPDrawCanvasCairo.cpp
示例8: show_test_case
static void
show_test_case (cairo_t *cr, CutTestCase *test_case, CutTestResultStatus status,
guint n_tests, guint n_successes, guint n_failures,
guint n_errors, guint n_pendings, guint n_omissions)
{
PangoLayout *layout;
const gchar *utf8;
int width, height;
gdouble x, y;
utf8 = cut_test_get_name(CUT_TEST(test_case));
layout = show_text_with_page_feed(cr, utf8);
if (!layout)
return;
cairo_get_current_point(cr, &x, &y);
cairo_save(cr);
pango_layout_get_pixel_size(layout, &width, &height);
cairo_rectangle(cr, A4_WIDTH - 100 - 10, y + 2, 100, height - 4);
cut_cairo_set_source_result_color(cr, status);
cairo_fill_preserve(cr);
cairo_set_line_width(cr, 0.5);
cairo_set_source_rgb(cr, 0, 0, 0);
cairo_stroke(cr);
cairo_restore(cr);
cairo_move_to(cr, x, y + height);
g_object_unref(layout);
}
开发者ID:andrewdavis12,项目名称:cutter,代码行数:29,代码来源:cut-pdf-report.c
示例9: pycairo_get_current_point
static PyObject *
pycairo_get_current_point (PycairoContext *o)
{
double x, y;
cairo_get_current_point (o->ctx, &x, &y);
return Py_BuildValue("(dd)", x, y);
}
开发者ID:anarcher,项目名称:enso-launcher-continued,代码行数:7,代码来源:pycairo-context.c
示例10: ml_cairo_get_current_point
CAMLprim value
ml_cairo_get_current_point (value cr)
{
double x, y;
cairo_get_current_point (cairo_t_val (cr), &x, &y);
return ml_cairo_point (x, y);
}
开发者ID:DMClambo,项目名称:pfff,代码行数:7,代码来源:ml_cairo.c
示例11: cr_get_current_point
static VALUE
cr_get_current_point (VALUE self)
{
double point[2];
cairo_get_current_point (_SELF, point, point + 1);
return rb_cairo__float_array (point, 2);
}
开发者ID:exvayn,项目名称:cairo-1.8.1-i386,代码行数:7,代码来源:rb_cairo_context.c
示例12: cairo_get_current_point
gfxPoint
gfxContext::CurrentPoint() const
{
double x, y;
cairo_get_current_point(mCairo, &x, &y);
return gfxPoint(x, y);
}
开发者ID:typ4rk,项目名称:mozilla-history,代码行数:7,代码来源:gfxContext.cpp
示例13: lsm_cairo_rel_horizontal
void
lsm_cairo_rel_horizontal (cairo_t *cairo, double dx)
{
double x0, y0;
cairo_get_current_point (cairo, &x0, &y0);
cairo_line_to (cairo, x0 + dx, y0);
}
开发者ID:GNOME,项目名称:lasem,代码行数:8,代码来源:lsmcairo.c
示例14: lsm_cairo_rel_vertical
void
lsm_cairo_rel_vertical (cairo_t *cairo, double dy)
{
double x0, y0;
cairo_get_current_point (cairo, &x0, &y0);
cairo_line_to (cairo, x0, y0 + dy);
}
开发者ID:GNOME,项目名称:lasem,代码行数:8,代码来源:lsmcairo.c
示例15: lsm_cairo_rel_quadratic_curve_to
void
lsm_cairo_rel_quadratic_curve_to (cairo_t *cr, double dx1, double dy1, double dx, double dy)
{
double x0, y0;
cairo_get_current_point (cr, &x0, &y0);
lsm_cairo_quadratic_curve_to (cr, x0 + dx1, y0 + dy1, x0 + dx, y0 + dy);
}
开发者ID:GNOME,项目名称:lasem,代码行数:8,代码来源:lsmcairo.c
示例16: tempMatrix
Point
PathBuilderCairo::CurrentPoint() const
{
CairoTempMatrix tempMatrix(*mPathContext, mTransform);
double x, y;
cairo_get_current_point(*mPathContext, &x, &y);
return Point((Float)x, (Float)y);
}
开发者ID:LyeSS,项目名称:mozilla-central,代码行数:8,代码来源:PathCairo.cpp
示例17: lime_cairo_get_current_point
value lime_cairo_get_current_point (double handle) {
double x, y;
cairo_get_current_point ((cairo_t*)(intptr_t)handle, &x, &y);
Vector2 vec2 = Vector2 (x, y);
return vec2.Value ();
}
开发者ID:rushmobius,项目名称:lime,代码行数:8,代码来源:CairoBindings.cpp
示例18: cairo_get_current_point
FloatPoint Path::currentPoint() const
{
// FIXME: Is this the correct way?
double x;
double y;
cairo_get_current_point(platformPath()->context(), &x, &y);
return FloatPoint(x, y);
}
开发者ID:bearmingo,项目名称:UI,代码行数:8,代码来源:PathCairo.cpp
示例19: lime_cairo_get_current_point
value lime_cairo_get_current_point (value handle) {
double x, y;
cairo_get_current_point ((cairo_t*)val_data (handle), &x, &y);
Vector2 vec2 = Vector2 (x, y);
return vec2.Value ();
}
开发者ID:Gemioli,项目名称:lime,代码行数:8,代码来源:CairoBindings.cpp
示例20: _emit_smooth_curve
static void
_emit_smooth_curve (LsmSvgPathContext *ctxt, gboolean relative)
{
double x, y;
double x0, y0;
cairo_get_current_point (ctxt->cr, &x0, &y0);
switch (ctxt->last_command) {
case 'C':
x = 2 * x0 - ctxt->values[2];
y = 2 * y0 - ctxt->values[3];
break;
case 'c':
x = 2 * x0 - (ctxt->values[2] + x0 - ctxt->values[4]);
y = 2 * y0 - (ctxt->values[3] + y0 - ctxt->values[5]);
break;
case 'S':
x = 2 * x0 - ctxt->values[0];
y = 2 * y0 - ctxt->values[1];
break;
case 's':
x = 2 * x0 - (ctxt->values[0] + x0 - ctxt->values[2]);
y = 2 * y0 - (ctxt->values[1] + y0 - ctxt->values[3]);
break;
default: x = x0; y = y0; break;
}
while (lsm_str_parse_double_list (&ctxt->ptr, 4, ctxt->values) == 4) {
if (relative) {
cairo_get_current_point (ctxt->cr, &x0, &y0);
cairo_curve_to (ctxt->cr,
x, y,
x0 + ctxt->values[0], y0 + ctxt->values[1],
x0 + ctxt->values[2], y0 + ctxt->values[3]);
x = 2 * (x0 + ctxt->values[2]) - (x0 + ctxt->values[0]);
y = 2 * (y0 + ctxt->values[3]) - (y0 + ctxt->values[1]);
} else {
cairo_curve_to (ctxt->cr, x, y,
ctxt->values[0], ctxt->values[1], ctxt->values[2], ctxt->values[3]);
x = 2 * ctxt->values[2] - ctxt->values[0];
y = 2 * ctxt->values[3] - ctxt->values[1];
}
}
}
开发者ID:GNOME,项目名称:lasem,代码行数:45,代码来源:lsmcairo.c
注:本文中的cairo_get_current_point函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论