Пример #1
0
static int pssvg_convert_ith(grd5_t *grd5, size_t i,
			     gstack_t *gstack,
			     pssvg_opt_t opt)
{
  grd5_grad_t *grd5_grad = grd5->gradients + i;
  svg_t *svg;
  int err = 0, pushed = 0;

  switch (grd5_grad->type)
    {
    case GRD5_GRAD_CUSTOM:

      if ((svg = svg_new()) == NULL)
	err++;
      else
	{
	  if (pssvg_title(grd5_grad, svg, opt, i+1) != 0)
	    err++;
	  else
	    {
	      if (pssvg_convert_one(&(grd5_grad->u.custom), svg, opt) != 0)
		{
		  /* failure to convert is not an error */
		  btrace("failed convert of gradient %zi", i);
		}
	      else
		{
		  if (gstack_push(gstack, &svg) != 0)
		    {
		      btrace("error pushing result to stack");
		      err++;
		    }
		  else
		    {
		      pushed++;
		    }
		}
	    }

	  if (! pushed) svg_destroy(svg);
	}

      break;

    case GRD5_GRAD_NOISE:

      btrace("no conversion of (noise) gradient %zi", i);
      break;

    default:

      btrace("bad type (%i) for gradient %zi", grd5_grad->type, i);
    }

  return err;
}
Пример #2
0
static void svgset_destroy(svgset_t *svgset)
{
  int i;

  for (i=0 ; i < svgset->n ; i++)
    svg_destroy(svgset->svg[i]);

  free(svgset->svg);
  free(svgset);
}
Пример #3
0
svg_android_status_t svgAndroidDestroy(svg_android_t *svg_android) {
	svg_android_status_t status;

	_svg_android_pop_state (svg_android);

	status = svg_destroy (svg_android->svg);

	free (svg_android);

	return status;
}
Пример #4
0
extern int gimpsvg(const char *infile, 
		   const char *outfile, 
		   gimpsvg_opt_t opt)
{
    gradient_t *gradient;
    svg_t *svg;
    int err;

    /* load the gradient */
    
    if ((gradient = grad_load_gradient(infile)) == NULL)
      {
	btrace("failed to load gradient from %s",
	       (infile ? infile : "<stdin>"));
	return 1;
      }
    
    /* create a svg struct */

    if ((svg = svg_new()) == NULL)
      {
	btrace("failed to get new cpt strcture");
	return 1;
      }
    
    /* transfer the gradient data to the svg_t struct */

    if ((err = gimpsvg_convert(gradient, svg, opt)) != 0)
      {
	switch (err)
	  {
	  case ERR_SEGMENT_RGBA:
	    btrace("error gretting colour from segment");
	    break;
	  case ERR_NULL:
	    btrace("null structure");
	    break;
	  case ERR_INSERT:
	    btrace("failed structure insert");
	    break;
	  default:
	    btrace("unknown error");
	  }
	return 1;
      }

    if (opt.verbose) 
      printf("converted to %i stops\n",svg_num_stops(svg));

    /* write the cpt file */
    
    if (svg_write(outfile, 1, (const svg_t**)(&svg), &(opt.preview)) != 0)
      {
	btrace("failed to write gradient to %s",
	       (outfile ? outfile : "<stdout>"));
	return 1;
      }
    
    /* tidy */
    
    svg_destroy(svg);
    grad_free_gradient(gradient);
    
    return 0;
}
Пример #5
0
void SVG_Free(SDL_svg_context *Source)
{
	svg_destroy (Source->SVG);
	destroy_SDL_svg_context (Source);
}