Beispiel #1
0
BOOL
SWFCharacter_getDependencies(SWFCharacter character,
														 SWFCharacter** depsPtr, int* nDepsPtr)
{
	int i;
	int nDeps = *nDepsPtr;
	SWFCharacter* deps = *depsPtr;

	if ( BLOCK(character)->type == SWF_DEFINEMORPHSHAPE )
		character = (SWFCharacter)SWFMorph_getShape1((SWFMorph)character);

	for ( i = 0; i < character->nDependencies; ++i )
	{
		SWFCharacter c = character->dependencies[i];

		if ( !SWFBlock_isDefined((SWFBlock)c) )
		{
			deps = (SWFCharacter*) realloc(deps, sizeof(SWFCharacter) * (nDeps + 1));
			deps[nDeps] = c;
			++nDeps;
		}
	}

	if ( nDeps == *nDepsPtr )
		return FALSE;

	*depsPtr = deps;
	*nDepsPtr = nDeps;

	return TRUE;
}
Beispiel #2
0
EXPORT BOOL WINAPI p_getShape1(SWFShape *p1, int p2, int p3, int p4)
{
	lstrcpy(funcname, "p_getShape1");
	*p1 = SWFMorph_getShape1(mhsp_morph);
	if (!mhsp_shape) {
		mhsp_shape = *p1;
	}
	return 0;
}
Beispiel #3
0
int
main(int argc, char** argv)
{
  
  SWFMovie mo;
  SWFMovieClip dejagnuclip;
  SWFMorph morph;
  SWFShape startShape, endShape;
  SWFDisplayItem it;
  float ratio;


  const char *srcdir=".";
  if ( argc>1 ) 
    srcdir=argv[1];
  else
  {
      fprintf(stderr, "Usage: %s <mediadir>\n", argv[0]);
      return 1;
  }

  Ming_init();
  mo = newSWFMovieWithVersion(OUTPUT_VERSION);
  SWFMovie_setDimension(mo, 800, 600);
  SWFMovie_setRate (mo, 1.0);

  // _root.frame1
  dejagnuclip = get_dejagnu_clip((SWFBlock)get_default_font(srcdir), 10, 0, 0, 800, 600);
  SWFMovie_add(mo, (SWFBlock)dejagnuclip);
  SWFMovie_nextFrame(mo); 

  // _root.frame2, define and place a morph
  morph =  newSWFMorphShape();
  startShape = SWFMorph_getShape1(morph);
  make_shape(startShape, 0, 0, 100, 100, 255, 0 ,0);
  endShape = SWFMorph_getShape2(morph);
  make_shape(endShape, 700, 500, 100, 100, 0, 255 ,0);

  it = SWFMovie_add(mo, (SWFBlock)morph); 
  SWFMovie_nextFrame(mo); 
  
  // update the morph with different ratios
  for(ratio=0.2; ratio<1.01; ratio+=0.2)
  {
     SWFDisplayItem_remove(it);
     it = SWFMovie_add(mo, (SWFBlock)morph);
     SWFDisplayItem_setRatio(it, ratio);
     SWFMovie_nextFrame(mo);     
  }

  /* Test for #39989 by adding an empty morph shape. */
  morph = newSWFMorphShape();
  startShape = SWFMorph_getShape1(morph);
  endShape = SWFMorph_getShape2(morph);
  it = SWFMovie_add(mo, (SWFBlock)morph);
  SWFMovie_nextFrame(mo);
  
  //Output movie
  puts("Saving " OUTPUT_FILENAME );
  SWFMovie_save(mo, OUTPUT_FILENAME);

  return 0;
}
Beispiel #4
0
int main(int argc, char *argv[])
{
   SWFMovie movie;
   SWFMorph p;
   SWFShape shape_1;
   SWFGradient grad_1;
   SWFFill fill1;
   SWFShape shape_2;
   SWFGradient grad_2;
   SWFFill fill2;
   SWFDisplayItem timeline;
   float n;

   Ming_init(argc, argv);
   Ming_useSWFVersion(5);
   movie= newSWFMovie();
   SWFMovie_setDimension(movie, 320, 240);

   p= newSWFMorphShape();

   grad_1= newSWFGradient();
   SWFGradient_addEntry(grad_1, 0, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_1, 0.16, 0xFF, 0xFF, 0xFF, 0xFF);
   SWFGradient_addEntry(grad_1, 0.32, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_1, 0.48, 0xFF, 0xFF, 0xFF, 0xFF);
   SWFGradient_addEntry(grad_1, 0.64, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_1, 0.8, 0xFF, 0xFF, 0xFF, 0xFF);
   SWFGradient_addEntry(grad_1, 1, 0x00, 0x00, 0x00, 0xFF);

   shape_1= SWFMorph_getShape1(p);
   fill1= SWFShape_addGradientFill(shape_1,grad_1, SWFFILL_RADIAL_GRADIENT);
   SWFFill_scaleTo(fill1, 0.100, 0.100);
   SWFShape_setLeftFill(shape_1, fill1);
   SWFShape_movePenTo(shape_1, -160.00, -120.00);
   SWFShape_drawLineTo(shape_1, 160.00, -120.00);
   SWFShape_drawLineTo(shape_1, 160.00, 120.00);
   SWFShape_drawLineTo(shape_1, -160.00, 120.00);
   SWFShape_drawLineTo(shape_1, -160.00, -120.00);

   grad_2= newSWFGradient();
   SWFGradient_addEntry(grad_2, 0, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_2, 0.16, 0xFF, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_2, 0.32, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_2, 0.48, 0x00, 0xFF, 0x00, 0xFF);
   SWFGradient_addEntry(grad_2, 0.64, 0x00, 0x00, 0x00, 0xFF);
   SWFGradient_addEntry(grad_2, 0.8, 0x00, 0x00, 0xFF, 0xFF);
   SWFGradient_addEntry(grad_2, 1, 0x00, 0x00, 0x00, 0xFF);

   shape_2= SWFMorph_getShape2(p);
   fill2= SWFShape_addGradientFill(shape_2,grad_2, SWFFILL_RADIAL_GRADIENT);

   SWFFill_scaleTo(fill2, 0.16, 0.16);
   SWFFill_skewXTo(fill2, -0.50);
   //SWFFill_rotateTo(fill2, -26.57);

   SWFShape_setLeftFill(shape_2, fill2);
   SWFShape_movePenTo(shape_2, -160.00, -120.00);
   SWFShape_drawLineTo(shape_2, 160.00, -120.00);
   SWFShape_drawLineTo(shape_2, 160.00, 120.00);
   SWFShape_drawLineTo(shape_2, -160.00, 120.00);
   SWFShape_drawLineTo(shape_2, -160.00, -120.00);

   timeline= SWFMovie_add(movie,(SWFBlock) p);
   SWFDisplayItem_moveTo(timeline, 160.00, 120.00);

   for(n=0; n<=1.001; n+=0.01)
   {
      SWFDisplayItem_setRatio(timeline, n);
      SWFMovie_nextFrame(movie);
   }

   SWFMovie_save(movie, "gradientxform.swf");

   return 0;
}