Changeset View
Changeset View
Standalone View
Standalone View
src/static_libs/vg_common/vg_common_svg.c
Show First 20 Lines • Show All 612 Lines • ▼ Show 20 Line(s) | 612 | { | |||
---|---|---|---|---|---|
613 | /** | 613 | /** | ||
614 | * That is according to Units in here | 614 | * That is according to Units in here | ||
615 | * | 615 | * | ||
616 | * https://www.w3.org/TR/2015/WD-SVG2-20150915/coords.html | 616 | * https://www.w3.org/TR/2015/WD-SVG2-20150915/coords.html | ||
617 | */ | 617 | */ | ||
618 | int min = (r.h > r.w) ? r.w : r.h; | 618 | int min = (r.h > r.w) ? r.w : r.h; | ||
619 | radius = sqrt(pow(min, 2) + pow(min, 2)) / sqrt(2.0); | 619 | radius = sqrt(pow(min, 2) + pow(min, 2)) / sqrt(2.0); | ||
620 | } | 620 | } | ||
621 | if (g->use_percentage) | ||||
622 | { | ||||
623 | g->radial->cx = g->radial->cx * r.w + r.x; | ||||
624 | g->radial->cy = g->radial->cy * r.h + r.y; | ||||
625 | g->radial->r = g->radial->r * radius; | ||||
626 | g->radial->fx = g->radial->fx * r.w + r.x; | ||||
627 | g->radial->fy = g->radial->fy * r.h + r.y; | ||||
628 | } | ||||
621 | grad_obj = efl_add(EFL_CANVAS_VG_GRADIENT_RADIAL_CLASS, parent); | 629 | grad_obj = efl_add(EFL_CANVAS_VG_GRADIENT_RADIAL_CLASS, parent); | ||
622 | efl_gfx_gradient_radial_center_set(grad_obj, g->radial->cx * r.w + r.x, g->radial->cy * r.h + r.y); | 630 | efl_gfx_gradient_radial_center_set(grad_obj, g->radial->cx, g->radial->cy); | ||
623 | efl_gfx_gradient_radial_radius_set(grad_obj, g->radial->r * radius); | 631 | efl_gfx_gradient_radial_radius_set(grad_obj, g->radial->r); | ||
624 | efl_gfx_gradient_radial_focal_set(grad_obj, g->radial->fx * r.w + r.x, g->radial->fy * r.h + r.y); | 632 | efl_gfx_gradient_radial_focal_set(grad_obj, g->radial->fx, g->radial->fy); | ||
625 | 633 | | |||
626 | /* in case of objectBoundingBox it need proper scaling */ | 634 | /* in case of objectBoundingBox it need proper scaling */ | ||
627 | if (!g->user_space) | 635 | if (!g->user_space) | ||
628 | { | 636 | { | ||
629 | double scale_X = 1.0, scale_reversed_X = 1.0; | 637 | double scale_X = 1.0, scale_reversed_X = 1.0; | ||
630 | double scale_Y = 1.0, scale_reversed_Y = 1.0; | 638 | double scale_Y = 1.0, scale_reversed_Y = 1.0; | ||
631 | 639 | | |||
632 | /* check the smallest size, find the scale value */ | 640 | /* check the smallest size, find the scale value */ | ||
▲ Show 20 Lines • Show All 317 Lines • ▼ Show 20 Line(s) | 951 | for (i = 0; i < count; i++) | |||
950 | } | 958 | } | ||
951 | if (efl_isa(vg, EFL_CANVAS_VG_GRADIENT_LINEAR_CLASS)) | 959 | if (efl_isa(vg, EFL_CANVAS_VG_GRADIENT_LINEAR_CLASS)) | ||
952 | { | 960 | { | ||
953 | grad->type = SVG_LINEAR_GRADIENT; | 961 | grad->type = SVG_LINEAR_GRADIENT; | ||
954 | grad->linear = calloc(1, sizeof(Svg_Linear_Gradient)); | 962 | grad->linear = calloc(1, sizeof(Svg_Linear_Gradient)); | ||
955 | if (!grad->linear) goto oom_error; | 963 | if (!grad->linear) goto oom_error; | ||
956 | efl_gfx_gradient_linear_start_get(vg, &grad->linear->x1, &grad->linear->y1); | 964 | efl_gfx_gradient_linear_start_get(vg, &grad->linear->x1, &grad->linear->y1); | ||
957 | efl_gfx_gradient_linear_end_get(vg, &grad->linear->x2, &grad->linear->y2); | 965 | efl_gfx_gradient_linear_end_get(vg, &grad->linear->x2, &grad->linear->y2); | ||
958 | grad->use_percentage = EINA_FALSE; | | |||
959 | } | 966 | } | ||
960 | else | 967 | else | ||
961 | { | 968 | { | ||
962 | grad->type = SVG_RADIAL_GRADIENT; | 969 | grad->type = SVG_RADIAL_GRADIENT; | ||
963 | grad->radial = calloc(1, sizeof(Svg_Radial_Gradient)); | 970 | grad->radial = calloc(1, sizeof(Svg_Radial_Gradient)); | ||
964 | if (!grad->radial) goto oom_error; | 971 | if (!grad->radial) goto oom_error; | ||
965 | efl_gfx_gradient_radial_center_get(vg, &grad->radial->cx, &grad->radial->cy); | 972 | efl_gfx_gradient_radial_center_get(vg, &grad->radial->cx, &grad->radial->cy); | ||
966 | efl_gfx_gradient_radial_focal_get(vg, &grad->radial->fx, &grad->radial->fy); | 973 | efl_gfx_gradient_radial_focal_get(vg, &grad->radial->fx, &grad->radial->fy); | ||
967 | grad->radial->r = efl_gfx_gradient_radial_radius_get(vg); | 974 | grad->radial->r = efl_gfx_gradient_radial_radius_get(vg); | ||
968 | } | 975 | } | ||
976 | grad->use_percentage = EINA_FALSE; | ||||
969 | 977 | | |||
970 | return grad; | 978 | return grad; | ||
971 | 979 | | |||
972 | oom_error: | 980 | oom_error: | ||
973 | ERR("OOM: Failed calloc()"); | 981 | ERR("OOM: Failed calloc()"); | ||
974 | return grad; | 982 | return grad; | ||
975 | } | 983 | } | ||
976 | 984 | | |||
▲ Show 20 Lines • Show All 109 Lines • Show Last 20 Lines |