I hope somebody may help me with this urgent work since I'm too near to a
deadline.
For a contract work I had to write a player for a multimedia presentation.
I didn't use Flash, Director and such because I had to show, in this
presentation, the application running.. which is a complex application and
"simulating" it accurately via those standard programs would have been
impossible.
So, since I wrote that application myself, I thought about just adding to it
a "videorecorder" routine, which would detect any screen change, compress it,
and record it to a file. So I made a custom player for this file.
Now that I'm nearly at the end of it all, I'd like to add some cool initial
effect. I thought about crossfading the user's desktop into the initial image
of this presentation.
Problems are:
1) I can only use DirectX 3.. nothing better than that.
2) It should run even on very slow machines (e.g. Pentium-75), and on high
resolutions and frame rates.
So 2) bandwidth limitations leads out a (even superoptimized MMX) software
solution.. leaving me, to be sure that it will run ok on those low-end
systems, to take advantage of the card's blitter.
My questions are:
How common is hardware acceleration of a blit between two fullscreen images
and a alpha value to crossfade them? Would e.g. an old S3 Virge PCI support
hardware acceleration for this feature? There's no scaling involved.. just
a global alpha value, and two images.
Since I'm really in a hurry.. could you tell me which DX3 functions to use
to get max performance? Some important hints on DX3 maybe? Time is so little
that I really can't explore it, this time.
Thanks a lot for any help.
deadline.
For a contract work I had to write a player for a multimedia presentation.
I didn't use Flash, Director and such because I had to show, in this
presentation, the application running.. which is a complex application and
"simulating" it accurately via those standard programs would have been
impossible.
So, since I wrote that application myself, I thought about just adding to it
a "videorecorder" routine, which would detect any screen change, compress it,
and record it to a file. So I made a custom player for this file.
Now that I'm nearly at the end of it all, I'd like to add some cool initial
effect. I thought about crossfading the user's desktop into the initial image
of this presentation.
Problems are:
1) I can only use DirectX 3.. nothing better than that.
2) It should run even on very slow machines (e.g. Pentium-75), and on high
resolutions and frame rates.
So 2) bandwidth limitations leads out a (even superoptimized MMX) software
solution.. leaving me, to be sure that it will run ok on those low-end
systems, to take advantage of the card's blitter.
My questions are:
How common is hardware acceleration of a blit between two fullscreen images
and a alpha value to crossfade them? Would e.g. an old S3 Virge PCI support
hardware acceleration for this feature? There's no scaling involved.. just
a global alpha value, and two images.
Since I'm really in a hurry.. could you tell me which DX3 functions to use
to get max performance? Some important hints on DX3 maybe? Time is so little
that I really can't explore it, this time.
Thanks a lot for any help.
Ummmmm, I think MMX came about when P200s we top of the line. A P75 definetly wont have MMX.
How big is you screen size?
What color depth?
Can you use D3D?
If you can, make 2 planes and add trasparancy to the top plane. Ramp the trans from invisible to opaque.
D2D?
If I remember correctly it does not support alpha blitting. Without getting too fancy, have image 1 and image 2 in thier own buffers. Combine the pixels from both buffers on the back buffer. Use
Blt() and flip to primary. Cycle until done. In other words, you'll probably have to write your own crossfader between image 1 and 2 outputting to the back buffer.
You probably know all this already? :(
So what you might want is an optomized PPlain crossfade routine.
Warning: If its is supposed to crossfade each time the program is run, it can get annoying.
How big is you screen size?
What color depth?
Can you use D3D?
If you can, make 2 planes and add trasparancy to the top plane. Ramp the trans from invisible to opaque.
D2D?
If I remember correctly it does not support alpha blitting. Without getting too fancy, have image 1 and image 2 in thier own buffers. Combine the pixels from both buffers on the back buffer. Use
Blt() and flip to primary. Cycle until done. In other words, you'll probably have to write your own crossfader between image 1 and 2 outputting to the back buffer.
You probably know all this already? :(
So what you might want is an optomized PPlain crossfade routine.
Warning: If its is supposed to crossfade each time the program is run, it can get annoying.
I found a DX3 help file, and noticed how much archaic are blitting functions there. No alpha blitting of two sources into a destination whatsoever. Lameness..
Time is over now.. gotta hand over this presentation. Anyway, thanks for trying.
Time is over now.. gotta hand over this presentation. Anyway, thanks for trying.
Video card makes have had bitmap alpha blit for awhile, but even in DX7 there is no support for bitmap alpha blitting(on card support), but 3D alpha support is there.