コード例 #1
0
ファイル: shPaint.c プロジェクト: Chazzz/pyShiva
void SHPaint_ctor(SHPaint *p)
{
  int i;
  
  p->type = VG_PAINT_TYPE_COLOR;
  CSET(p->color, 0,0,0,1);
  SH_INITOBJ(SHStopArray, p->instops);
  SH_INITOBJ(SHStopArray, p->stops);
  p->premultiplied = VG_FALSE;
  p->spreadMode = VG_COLOR_RAMP_SPREAD_PAD;
  p->tilingMode = VG_TILE_FILL;
  for (i=0; i<4; ++i) p->linearGradient[i] = 0.0f;
  for (i=0; i<5; ++i) p->radialGradient[i] = 0.0f;
  p->pattern = VG_INVALID_HANDLE;
  
  glGenTextures(1, &p->texture);
  glBindTexture(GL_TEXTURE_1D, p->texture);
  glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, SH_GRADIENT_TEX_SIZE, 0,
               GL_RGBA, GL_FLOAT, NULL);
}
コード例 #2
0
void VGContext_ctor(VGContext *c)
{
    /* Surface info */
    c->surfaceWidth = 0;
    c->surfaceHeight = 0;

    /* GetString info */
    strncpy(c->vendor, "Ivan Leben", sizeof(c->vendor));
    strncpy(c->renderer, "ShivaVG 0.1.0", sizeof(c->renderer));
    strncpy(c->version, "1.0", sizeof(c->version));
    strncpy(c->extensions, "", sizeof(c->extensions));

    /* Mode settings */
    c->matrixMode = VG_MATRIX_PATH_USER_TO_SURFACE;
    c->fillRule = VG_EVEN_ODD;
    c->imageQuality = VG_IMAGE_QUALITY_FASTER;
    c->renderingQuality = VG_RENDERING_QUALITY_BETTER;
    c->blendMode = VG_BLEND_SRC_OVER;
    c->imageMode = VG_DRAW_IMAGE_NORMAL;

    /* Scissor rectangles */
    SH_INITOBJ(SHRectArray, c->scissor);
    c->scissoring = VG_FALSE;
    c->masking = VG_FALSE;

    /* Stroke parameters */
    c->strokeLineWidth = 1.0f;
    c->strokeCapStyle = VG_CAP_BUTT;
    c->strokeJoinStyle = VG_JOIN_MITER;
    c->strokeMiterLimit = 4.0f;
    c->strokeDashPhase = 0.0f;
    c->strokeDashPhaseReset = VG_FALSE;
    SH_INITOBJ(SHFloatArray, c->strokeDashPattern);

    /* Edge fill color for vgConvolve and pattern paint */
    CSET(c->tileFillColor, 0,0,0,0);

    /* Color for vgClear */
    CSET(c->clearColor, 0,0,0,0);

    /* Color components layout inside pixel */
    c->pixelLayout = VG_PIXEL_LAYOUT_UNKNOWN;

    /* Source format for image filters */
    c->filterFormatLinear = VG_FALSE;
    c->filterFormatPremultiplied = VG_FALSE;
    c->filterChannelMask = VG_RED|VG_GREEN|VG_BLUE|VG_ALPHA;

    /* Matrices */
    SH_INITOBJ(SHMatrix3x3, c->pathTransform);
    SH_INITOBJ(SHMatrix3x3, c->imageTransform);
    SH_INITOBJ(SHMatrix3x3, c->fillTransform);
    SH_INITOBJ(SHMatrix3x3, c->strokeTransform);

    /* Paints */
    c->fillPaint = NULL;
    c->strokePaint = NULL;
    SH_INITOBJ(SHPaint, c->defaultPaint);

    /* Error */
    c->error = VG_NO_ERROR;

    /* Resources */
    SH_INITOBJ(SHPathArray, c->paths);
    SH_INITOBJ(SHPaintArray, c->paints);
    SH_INITOBJ(SHImageArray, c->images);

    shLoadExtensions(c);
}