Page 1 of 1

Screen Wipe

PostPosted: Sep 6, 2007 @ 11:43am
by Ryumaster
Hi!
I can not understand, how to use Wipe.
Do I have to put StartWipe(0) on OnInit,
and Wipe(destanation, source, EWIPE_SLIDELEFT,0, NULL, 0) on OnNextFrame?
I've tried different combinations but program always breaks with an error so I wondering what am I doing wrong.

PostPosted: Sep 6, 2007 @ 2:05pm
by edge
Hi Ryumaster,

You need to call StartWipe() inside OnDisplayInit(), because the display isn't initialized in OnInit() yet.

I hope this helps.

BTW,
I've also added a solution for the hss.dll problem in the 3.10 version release topic.

PostPosted: Sep 6, 2007 @ 9:52pm
by Ryumaster
Hi!
Error was because of my mistake, and now test program runs without error breaks. But there is no screen wipe I can see. Am I doing the right sequence?

1. I'm creating 3 different surfaces 240X320.
2. Then: StartWipe(1) on DisplayInit.
3. Then: display->Wipe(&srf2, &srf1, &srf3,0,1,0,0) on OnNextFrame;
All I can see is the black screen. Maybe I have to use WipeScreenMap too, because I can not figure out what is that function for. Or maybe I have to update timer function manually somehow?

PostPosted: Sep 10, 2007 @ 10:50am
by edge
Hi Ryumaster,

For the wipe to work you need to set the fourth parameter to a time value between 0 and 65535.

The best way is to use a timer variable, and increase it every frame with the timedelta value you receive from OnNextFrame(). MapScreenWipe() is only needed for certain wipe types (EWIPE_BLOCKS and EWIPE_SCREEN).

PostPosted: Sep 12, 2007 @ 10:48am
by Ryumaster

PostPosted: Sep 12, 2007 @ 11:58am
by edge

PostPosted: Oct 29, 2008 @ 9:28am
by mamahow
Hi,

If we want to use wipe() API,
Can we use pixelate wipe type with "RGBA" surface?

If not, do you have suggestion if we strongly need to use alpha surface?

Thanks,
mamahow

PostPosted: Oct 30, 2008 @ 2:57pm
by edge
Hi,

Do you need to wipe from RGBA to RGBA, or from RGBA to a normal RGB surface?

PostPosted: Oct 31, 2008 @ 6:39am
by mamahow
Hi,
Yes, We need both of these two operations.

PostPosted: Nov 3, 2008 @ 11:47am
by edge
Hi,

Unfortunately, the only way to achieve this with good performance is to program your own wipe. The pixelate wipe works like this:
- Divide the image into several blocks (depending on the wipe size)
- Use fillrect on each block with a certain color on the destination surface
- The color is retrieved from the center of the block in the original image

about wipe()

PostPosted: Nov 10, 2008 @ 4:36am
by sunfred
1. I'm creating 3 different surfaces 240X320.
2. Then: StartWipe(1) on DisplayInit.
3. Then: display->Wipe(&srf2, &srf1, &srf3,1000,1,0,0) on OnNextFrame;

i followed the step,but i can not see the result.

PostPosted: Nov 11, 2008 @ 10:09am
by edge