当前位置: 首页>>代码示例>>C++>>正文


C++ cairo_identity_matrix函数代码示例

本文整理汇总了C++中cairo_identity_matrix函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_identity_matrix函数的具体用法?C++ cairo_identity_matrix怎么用?C++ cairo_identity_matrix使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了cairo_identity_matrix函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: cairo_create

void BenchCairo::runFillRectRotate(BenchOutput& output, const BenchParams& params)
{
  cairo_t* cr = cairo_create(screenCairo);
  configureContext(cr, params);

  BenchRandom rRect(app);
  BenchRandom rArgb(app);

  float cx = (float)params.screenSize.w * 0.5f;
  float cy = (float)params.screenSize.h * 0.5f;
  float angle = 0.0f;

  if (params.source == BENCH_SOURCE_SOLID)
  {
    uint32_t i, quantity = params.quantity;
    for (i = 0; i < quantity; i++, angle += 0.01f)
    {
      Fog::RectF r(rRect.getRectF(params.screenSize, params.shapeSize, params.shapeSize));
      Fog::Argb32 c0(rArgb.getArgb32());

      cairo_translate(cr, cx, cy);
      cairo_rotate(cr, angle);
      cairo_translate(cr, -cx, -cy);

      cairo_set_source_rgba(cr, double(c0.r) * sc, double(c0.g) * sc, double(c0.b) * sc, double(c0.a) * sc);
      cairo_rectangle(cr, r.x, r.y, r.w, r.h);
      cairo_fill(cr);

      cairo_identity_matrix(cr);
    }
  }
  else
  {
    uint32_t i, quantity = params.quantity;
    for (i = 0; i < quantity; i++, angle += 0.01f)
    {
      Fog::RectF r(rRect.getRectF(params.screenSize, params.shapeSize, params.shapeSize));
      Fog::Argb32 c0(rArgb.getArgb32());
      Fog::Argb32 c1(rArgb.getArgb32());
      Fog::Argb32 c2(rArgb.getArgb32());

      cairo_translate(cr, cx, cy);
      cairo_rotate(cr, angle);
      cairo_translate(cr, -cx, -cy);

      cairo_pattern_t* pattern = createLinearGradient(r.x, r.y, r.x + r.w, r.y + r.h, c0, c1, c2);
      cairo_set_source(cr, pattern);

      cairo_rectangle(cr, r.x, r.y, r.w, r.h);
      cairo_fill(cr);

      cairo_identity_matrix(cr);
      cairo_pattern_destroy(pattern);
    }
  }

  cairo_destroy(cr);
}
开发者ID:Lewerow,项目名称:DetailIdentifier,代码行数:58,代码来源:BenchCairo.cpp

示例2: dtgtk_cairo_paint_triangle

void dtgtk_cairo_paint_triangle(cairo_t *cr, gint x,int y,gint w,gint h, gint flags)
{
  /* initialize rotation and flip matrices */
  cairo_matrix_t hflip_matrix;
  cairo_matrix_init(&hflip_matrix,-1,0,0,1,1,0);

  double C=cos(-(M_PI/2.0)),S=sin(-(M_PI/2.0));  // -90 degrees
  C=flags&CPF_DIRECTION_DOWN?cos(-(M_PI*1.5)):C;
  S=flags&CPF_DIRECTION_DOWN?sin(-(M_PI*1.5)):S;
  cairo_matrix_t rotation_matrix;
  cairo_matrix_init(&rotation_matrix,C,S,-S,C,0.5-C*0.5+S*0.5,0.5-S*0.5-C*0.5);

  /* scale and transform*/
  gint s=w<h?w:h;
  cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
  cairo_scale(cr,s,s);
  cairo_set_line_width(cr,0.1);
  cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);

  if( flags&CPF_DIRECTION_UP || flags &CPF_DIRECTION_DOWN)
    cairo_transform(cr,&rotation_matrix);
  else if(flags&CPF_DIRECTION_LEFT)	// Flip x transformation
    cairo_transform(cr,&hflip_matrix);


  cairo_move_to(cr, 0.2, 0.2);
  cairo_line_to(cr, 0.7, 0.5);
  cairo_line_to(cr, 0.2, 0.8);
  cairo_line_to(cr, 0.2, 0.2);
  cairo_stroke(cr);
  cairo_identity_matrix(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:32,代码来源:paint.c

示例3: dtgtk_cairo_paint_empty

void dtgtk_cairo_paint_empty(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags)
{
  cairo_translate(cr, x, y);
  cairo_scale(cr, w, h);
  cairo_stroke(cr);
  cairo_identity_matrix(cr);
}
开发者ID:andyTsing,项目名称:darktable,代码行数:7,代码来源:paint.c

示例4: dtgtk_cairo_paint_masks_eye

void dtgtk_cairo_paint_masks_eye(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags)
{
  gint s = w < h ? w : h;
  cairo_translate(cr, x + (w / 2.0) - (s / 2.0), y + (h / 2.0) - (s / 2.0));
  cairo_scale(cr, s, s);
  cairo_set_line_width(cr, 0.15);
  cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);

  if((flags & CPF_ACTIVE))
    cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0);
  else
    cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.5);

  double dashed[] = { 0.2, 0.2 };
  int len = sizeof(dashed) / sizeof(dashed[0]);
  cairo_set_dash(cr, dashed, len, 0);

  cairo_arc(cr, 0.75, 0.75, 0.75, 2.8, 4.7124);
  cairo_set_line_width(cr, 0.1);
  cairo_stroke(cr);

  cairo_move_to(cr, 0.4, 0.1);
  cairo_line_to(cr, 0.3, 0.8);
  cairo_line_to(cr, 0.55, 0.716667);
  cairo_line_to(cr, 0.65, 1.016667);
  cairo_line_to(cr, 0.75, 0.983333);
  cairo_line_to(cr, 0.65, 0.683333);
  cairo_line_to(cr, 0.9, 0.6);
  cairo_line_to(cr, 0.4, 0.1);
  cairo_fill(cr);

  cairo_identity_matrix(cr);
}
开发者ID:andyTsing,项目名称:darktable,代码行数:33,代码来源:paint.c

示例5: dtgtk_cairo_paint_store

void dtgtk_cairo_paint_store(cairo_t *cr,gint x,gint y,gint w,gint h,gint flags)
{
  gint s=w<h?w:h;
  cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
  cairo_scale(cr,s,s);
  cairo_set_line_width(cr,0.15);
  cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
  cairo_move_to(cr,0.275,0.1);
  cairo_line_to(cr,0.1,0.1);
  cairo_line_to(cr,0.1,0.9);
  cairo_line_to(cr,0.9,0.9);
  cairo_line_to(cr,0.9,0.175);
  cairo_line_to(cr,0.825,0.1);
  cairo_line_to(cr,0.825,0.5);
  cairo_line_to(cr,0.275,0.5);
  cairo_line_to(cr,0.275,0.1);

  cairo_stroke(cr);
  cairo_set_line_width(cr,0);
  cairo_rectangle(cr,0.5,0.025,0.17,0.275);
  cairo_fill(cr);

  cairo_stroke(cr);
  cairo_identity_matrix(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:25,代码来源:paint.c

示例6: dtgtk_cairo_paint_flip

void dtgtk_cairo_paint_flip(cairo_t *cr,gint x,gint y,gint w,gint h,gint flags)
{
  double C=cos(-1.570796327),S=sin(-1.570796327);
  cairo_matrix_t rotation_matrix;
  cairo_matrix_init(&rotation_matrix,C,S,-S,C,0.5-C*0.5+S*0.5,0.5-S*0.5-C*0.5);
  gint s=w<h?w:h;
  cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
  cairo_scale(cr,s,s);

  cairo_set_line_width(cr,0.15);
  cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
  if( (flags&CPF_DIRECTION_UP) ) // Rotate -90 degrees
    cairo_transform(cr,&rotation_matrix);

  cairo_move_to(cr,0.05,0.50);
  cairo_line_to(cr,0.05,0);
  cairo_line_to(cr,0.95,0.50);
  cairo_line_to(cr,0.2,0.50);
  cairo_stroke(cr);
  cairo_set_line_width(cr,0.04);
  cairo_move_to(cr,0.05,0.62);
  cairo_line_to(cr,0.05,1.0);
  cairo_line_to(cr,0.95,0.62);
  cairo_stroke(cr);
  cairo_identity_matrix(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:26,代码来源:paint.c

示例7: dtgtk_cairo_paint_switch

void dtgtk_cairo_paint_switch(cairo_t *cr,gint x,gint y,gint w,gint h,gint flags)
{
  gint s=w<h?w:h;
  cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
  cairo_scale(cr,s,s);

  if( !(flags&CPF_ACTIVE) )
    cairo_set_source_rgba(cr, 1,1,1,0.2);

  cairo_set_line_width(cr,0.125);
  cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
  cairo_arc (cr, 0.5, 0.5, 0.45, (-50*3.145/180),(230*3.145/180));
  cairo_move_to(cr,0.5,0.05);
  cairo_line_to(cr,0.5,0.45);
  cairo_stroke(cr);

  if( (flags&CPF_ACTIVE) ) // If active add some green diffuse light
  {
    cairo_set_source_rgba(cr, 1,1,1,0.2);
    cairo_set_line_width(cr,0.25);
    cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
    cairo_arc (cr, 0.5, 0.5, 0.45, (-50*3.145/180),(230*3.145/180));
    cairo_move_to(cr,0.5,0.1);
    cairo_line_to(cr,0.5,0.5);
    cairo_stroke(cr);
  }

  cairo_identity_matrix(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:29,代码来源:paint.c

示例8: dtgtk_cairo_paint_plusminus

void dtgtk_cairo_paint_plusminus(cairo_t *cr,gint x,gint y,gint w,gint h,gint flags)
{
  gint s=w<h?w:h;
  cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
  cairo_scale(cr,s,s);

  cairo_set_source_rgba(cr, 0.6,0.6,0.6,1.0);

  cairo_set_line_width(cr,0.125);
  cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
  cairo_arc (cr, 0.5, 0.5, 0.45, 0, 2*M_PI);
  cairo_stroke(cr);

  if( (flags&CPF_ACTIVE) )
  {
    cairo_move_to(cr,0.5,0.2);
    cairo_line_to(cr,0.5,0.8);
    cairo_move_to(cr,0.2,0.5);
    cairo_line_to(cr,0.8,0.5);
    cairo_stroke(cr);
  }
  else
  {
    cairo_arc (cr, 0.5, 0.5, 0.45, 0, 2*M_PI);
    cairo_fill(cr);
    cairo_set_source_rgba(cr, 0.1,0.1,0.1,1.0);
    cairo_move_to(cr,0.2,0.5);
    cairo_line_to(cr,0.8,0.5);
    cairo_stroke(cr);
  }

  cairo_identity_matrix(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:33,代码来源:paint.c

示例9: cr_identity_matrix

static VALUE
cr_identity_matrix (VALUE self)
{
  cairo_identity_matrix (_SELF);
  cr_check_status (_SELF);
  return self;
}
开发者ID:exvayn,项目名称:cairo-1.8.1-i386,代码行数:7,代码来源:rb_cairo_context.c

示例10: dtgtk_cairo_paint_eye_toggle

void dtgtk_cairo_paint_eye_toggle(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags)
{
  gint s = w < h ? w : h;
  cairo_translate(cr, x + (w / 2.0) - (s / 2.0), y + (h / 2.0) - (s / 2.0));
  cairo_scale(cr, s, s);
  cairo_set_line_width(cr, 0.15);
  cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);

  cairo_arc(cr, 0.5, 0.5, 0.1, 0, 6.2832);
  cairo_stroke(cr);

  cairo_translate(cr, 0, 0.20);
  cairo_save(cr);
  cairo_scale(cr, 1.0, 0.60);
  cairo_arc(cr, 0.5, 0.5, 0.45, 0, 6.2832);
  cairo_restore(cr);
  cairo_stroke(cr);

  cairo_translate(cr, 0, -0.20);
  if((flags & CPF_ACTIVE))
  {
    cairo_set_source_rgba(cr, 0.6, 0.1, 0.1, 1.0);
    cairo_move_to(cr, 0.1, 0.9);
    cairo_line_to(cr, 0.9, 0.1);
    cairo_stroke(cr);
  }

  cairo_identity_matrix(cr);
}
开发者ID:andyTsing,项目名称:darktable,代码行数:29,代码来源:paint.c

示例11: cairo_image_surface_create

cairo_surface_t* TheStage::Render()
{
  this->currentFrame++;

  cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, this->width, this->height);
  cairo_t* cairo = cairo_create(surface);

  // Clear the surface
  // cairo_set_source_rgb(cairo, 1.0, 1.0, 1.0);
  //  cairo_paint(cairo);

  for(std::list<ISymbol*>::iterator it = this->symbols.begin(); it != this->symbols.end(); ++it) {
    ISymbol* symbol = *it;
    Camera* primaryCamera = this->GetPrimaryCamera();
    double rx;
    double ry;
    double rscale = primaryCamera->GetZoom();
    symbol->Sync(this->currentFrame);
    primaryCamera->Translate(symbol->x, symbol->y, rx, ry);
    cairo_surface_t* subsurface = symbol->Render(rscale);
    cairo_translate(cairo, rx, ry);
    cairo_rotate(cairo, symbol->angle);
    cairo_translate(cairo, -symbol->centerX * rscale, -symbol->centerY * rscale);
    cairo_set_source_surface(cairo, subsurface, 0, 0);
    cairo_paint(cairo);
    cairo_surface_destroy(subsurface);
    cairo_identity_matrix(cairo);
  }

  cairo_destroy(cairo);
  return surface;
}
开发者ID:tnzk,项目名称:onstage,代码行数:32,代码来源:thestage.cpp

示例12: do_composite_checker

static cairo_perf_ticks_t
do_composite_checker (cairo_t *cr,
                      int      width,
                      int      height)
{
    /* Compute zoom so that the src_pattern covers the whole output image. */
    double xscale = width / (double) SRC_SIZE;
    double yscale = height / (double) SRC_SIZE;

    cairo_perf_timer_start ();

    cairo_identity_matrix (cr);

    /* Fill the surface with our background. */
    cairo_set_source (cr, checkerboard);
    cairo_paint (cr);

    /* Draw the scaled image on top. */
    cairo_scale (cr, xscale, yscale);
    cairo_set_source (cr, src_pattern);
    cairo_paint (cr);

    cairo_perf_timer_stop ();
    return cairo_perf_timer_elapsed ();
}
开发者ID:AliYousuf,项目名称:cairo,代码行数:25,代码来源:composite-checker.c

示例13: cairo_identity_matrix

void VectorGraphics::pop_matrix() {
    if(matrix_stack_.empty()) {
        cairo_identity_matrix(cr());
    } else {
        cairo_set_matrix(cr(), &matrix_stack_.front());
        matrix_stack_.pop_front();
    }
}
开发者ID:gmaslov,项目名称:ga-nn-followers,代码行数:8,代码来源:VectorGraphics.cpp

示例14: pycairo_identity_matrix

static PyObject *
pycairo_identity_matrix (PycairoContext *o)
{
    cairo_identity_matrix (o->ctx);
    if (Pycairo_Check_Status (cairo_status (o->ctx)))
	return NULL;
    Py_RETURN_NONE;
}
开发者ID:anarcher,项目名称:enso-launcher-continued,代码行数:8,代码来源:pycairo-context.c

示例15: cairo_identity_matrix_l

static int cairo_identity_matrix_l( lua_State* L )
{
  lua_cairo_t* lc = lua_cairo_check( L, 1 );

  cairo_identity_matrix( lc->cairo );

  return( 0 );
}
开发者ID:matthewburk,项目名称:cel-reactor,代码行数:8,代码来源:cairo_L.c


注:本文中的cairo_identity_matrix函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。