diff options
Diffstat (limited to 'src/nanosvg.h')
-rw-r--r-- | src/nanosvg.h | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/nanosvg.h b/src/nanosvg.h index 98b06bea..77617f65 100644 --- a/src/nanosvg.h +++ b/src/nanosvg.h @@ -125,7 +125,7 @@ typedef struct NSVGpaint { union { unsigned int color; NSVGgradient* gradient; - }; + } v; } NSVGpaint; typedef struct NSVGpath @@ -405,7 +405,7 @@ typedef struct NSVGgradientData union { NSVGlinearData linear; NSVGradialData radial; - }; + } grad; char spread; char units; float xform[6]; @@ -673,7 +673,7 @@ static void nsvg__deletePaths(NSVGpath* path) static void nsvg__deletePaint(NSVGpaint* paint) { if (paint->type == NSVG_PAINT_LINEAR_GRADIENT || paint->type == NSVG_PAINT_RADIAL_GRADIENT) - free(paint->gradient); + free(paint->v.gradient); } static void nsvg__deleteGradientData(NSVGgradientData* grad) @@ -875,10 +875,10 @@ static NSVGgradient* nsvg__createGradient(NSVGparser* p, const char* id, const f if (data->type == NSVG_PAINT_LINEAR_GRADIENT) { float x1, y1, x2, y2, dx, dy; - x1 = nsvg__convertToPixels(p, data->linear.x1, ox, sw); - y1 = nsvg__convertToPixels(p, data->linear.y1, oy, sh); - x2 = nsvg__convertToPixels(p, data->linear.x2, ox, sw); - y2 = nsvg__convertToPixels(p, data->linear.y2, oy, sh); + x1 = nsvg__convertToPixels(p, data->grad.linear.x1, ox, sw); + y1 = nsvg__convertToPixels(p, data->grad.linear.y1, oy, sh); + x2 = nsvg__convertToPixels(p, data->grad.linear.x2, ox, sw); + y2 = nsvg__convertToPixels(p, data->grad.linear.y2, oy, sh); // Calculate transform aligned to the line dx = x2 - x1; dy = y2 - y1; @@ -887,11 +887,11 @@ static NSVGgradient* nsvg__createGradient(NSVGparser* p, const char* id, const f grad->xform[4] = x1; grad->xform[5] = y1; } else { float cx, cy, fx, fy, r; - cx = nsvg__convertToPixels(p, data->radial.cx, ox, sw); - cy = nsvg__convertToPixels(p, data->radial.cy, oy, sh); - fx = nsvg__convertToPixels(p, data->radial.fx, ox, sw); - fy = nsvg__convertToPixels(p, data->radial.fy, oy, sh); - r = nsvg__convertToPixels(p, data->radial.r, 0, sl); + cx = nsvg__convertToPixels(p, data->grad.radial.cx, ox, sw); + cy = nsvg__convertToPixels(p, data->grad.radial.cy, oy, sh); + fx = nsvg__convertToPixels(p, data->grad.radial.fx, ox, sw); + fy = nsvg__convertToPixels(p, data->grad.radial.fy, oy, sh); + r = nsvg__convertToPixels(p, data->grad.radial.r, 0, sl); // Calculate transform aligned to the circle grad->xform[0] = r; grad->xform[1] = 0; grad->xform[2] = 0; grad->xform[3] = r; @@ -1001,8 +1001,8 @@ static void nsvg__addShape(NSVGparser* p) shape->fill.type = NSVG_PAINT_NONE; } else if (attr->hasFill == 1) { shape->fill.type = NSVG_PAINT_COLOR; - shape->fill.color = attr->fillColor; - shape->fill.color |= (unsigned int)(attr->fillOpacity*255) << 24; + shape->fill.v.color = attr->fillColor; + shape->fill.v.color |= (unsigned int)(attr->fillOpacity*255) << 24; } else if (attr->hasFill == 2) { shape->fill.type = NSVG_PAINT_UNDEF; } @@ -1012,8 +1012,8 @@ static void nsvg__addShape(NSVGparser* p) shape->stroke.type = NSVG_PAINT_NONE; } else if (attr->hasStroke == 1) { shape->stroke.type = NSVG_PAINT_COLOR; - shape->stroke.color = attr->strokeColor; - shape->stroke.color |= (unsigned int)(attr->strokeOpacity*255) << 24; + shape->stroke.v.color = attr->strokeColor; + shape->stroke.v.color |= (unsigned int)(attr->strokeOpacity*255) << 24; } else if (attr->hasStroke == 2) { shape->stroke.type = NSVG_PAINT_UNDEF; } @@ -2717,14 +2717,14 @@ static void nsvg__parseGradient(NSVGparser* p, const char** attr, signed char ty grad->units = NSVG_OBJECT_SPACE; grad->type = type; if (grad->type == NSVG_PAINT_LINEAR_GRADIENT) { - grad->linear.x1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); - grad->linear.y1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); - grad->linear.x2 = nsvg__coord(100.0f, NSVG_UNITS_PERCENT); - grad->linear.y2 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + grad->grad.linear.x1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + grad->grad.linear.y1 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); + grad->grad.linear.x2 = nsvg__coord(100.0f, NSVG_UNITS_PERCENT); + grad->grad.linear.y2 = nsvg__coord(0.0f, NSVG_UNITS_PERCENT); } else if (grad->type == NSVG_PAINT_RADIAL_GRADIENT) { - grad->radial.cx = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); - grad->radial.cy = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); - grad->radial.r = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + grad->grad.radial.cx = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + grad->grad.radial.cy = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); + grad->grad.radial.r = nsvg__coord(50.0f, NSVG_UNITS_PERCENT); } nsvg__xformIdentity(grad->xform); @@ -2742,23 +2742,23 @@ static void nsvg__parseGradient(NSVGparser* p, const char** attr, signed char ty } else if (strcmp(attr[i], "gradientTransform") == 0) { nsvg__parseTransform(grad->xform, attr[i + 1]); } else if (strcmp(attr[i], "cx") == 0) { - grad->radial.cx = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.radial.cx = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "cy") == 0) { - grad->radial.cy = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.radial.cy = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "r") == 0) { - grad->radial.r = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.radial.r = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "fx") == 0) { - grad->radial.fx = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.radial.fx = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "fy") == 0) { - grad->radial.fy = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.radial.fy = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "x1") == 0) { - grad->linear.x1 = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.linear.x1 = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "y1") == 0) { - grad->linear.y1 = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.linear.y1 = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "x2") == 0) { - grad->linear.x2 = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.linear.x2 = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "y2") == 0) { - grad->linear.y2 = nsvg__parseCoordinateRaw(attr[i + 1]); + grad->grad.linear.y2 = nsvg__parseCoordinateRaw(attr[i + 1]); } else if (strcmp(attr[i], "spreadMethod") == 0) { if (strcmp(attr[i+1], "pad") == 0) grad->spread = NSVG_SPREAD_PAD; @@ -3050,14 +3050,14 @@ static void nsvg__scaleToViewbox(NSVGparser* p, const char* units) } if (shape->fill.type == NSVG_PAINT_LINEAR_GRADIENT || shape->fill.type == NSVG_PAINT_RADIAL_GRADIENT) { - nsvg__scaleGradient(shape->fill.gradient, tx,ty, sx,sy); - memcpy(t, shape->fill.gradient->xform, sizeof(float)*6); - nsvg__xformInverse(shape->fill.gradient->xform, t); + nsvg__scaleGradient(shape->fill.v.gradient, tx,ty, sx,sy); + memcpy(t, shape->fill.v.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->fill.v.gradient->xform, t); } if (shape->stroke.type == NSVG_PAINT_LINEAR_GRADIENT || shape->stroke.type == NSVG_PAINT_RADIAL_GRADIENT) { - nsvg__scaleGradient(shape->stroke.gradient, tx,ty, sx,sy); - memcpy(t, shape->stroke.gradient->xform, sizeof(float)*6); - nsvg__xformInverse(shape->stroke.gradient->xform, t); + nsvg__scaleGradient(shape->stroke.v.gradient, tx,ty, sx,sy); + memcpy(t, shape->stroke.v.gradient->xform, sizeof(float)*6); + nsvg__xformInverse(shape->stroke.v.gradient->xform, t); } shape->strokeWidth *= avgs; @@ -3080,7 +3080,7 @@ static void nsvg__createGradients(NSVGparser* p) float inv[6], localBounds[4]; nsvg__xformInverse(inv, shape->xform); nsvg__getLocalBounds(localBounds, shape, inv); - shape->fill.gradient = nsvg__createGradient(p, shape->fillGradient, localBounds, shape->xform, &shape->fill.type); + shape->fill.v.gradient = nsvg__createGradient(p, shape->fillGradient, localBounds, shape->xform, &shape->fill.type); } if (shape->fill.type == NSVG_PAINT_UNDEF) { shape->fill.type = NSVG_PAINT_NONE; @@ -3091,7 +3091,7 @@ static void nsvg__createGradients(NSVGparser* p) float inv[6], localBounds[4]; nsvg__xformInverse(inv, shape->xform); nsvg__getLocalBounds(localBounds, shape, inv); - shape->stroke.gradient = nsvg__createGradient(p, shape->strokeGradient, localBounds, shape->xform, &shape->stroke.type); + shape->stroke.v.gradient = nsvg__createGradient(p, shape->strokeGradient, localBounds, shape->xform, &shape->stroke.type); } if (shape->stroke.type == NSVG_PAINT_UNDEF) { shape->stroke.type = NSVG_PAINT_NONE; |