
DX9 Subsystem v0.5
-
- Enthusiast
- Posts: 372
- Joined: Sun Apr 03, 2005 2:14 am
- Location: England
Hi
Sorry for the long delay...
But now it's time for a big update:
DX9S v0.5(473 KB)
It would be great if somebody could test esp. SpritePixelCollision(), DisplaySprite3D(),TransformSprite3D(),RotateSprite3D(),ZoomSprite3D(), LoadSprite(),CatchSprite(),ScreenOutput(),SpriteOutput() and GrabSprite(), because these commands are changed completely.
So they could have many new bugs
Now DisplaySprite3D() beats sometimes the rendering speed of the DX7 subsystem.
This is often the case if you draw many sprites which are partly outside the screen( or completely) or if you display the same texture often.
Note:
Some examples don't work at the moment because there seems to be a bug with direct memory access in PB 4.1 b1.
Btw, have a look at example 6...
Regards,
Stefan
Sorry for the long delay...
But now it's time for a big update:

Link:Changes since version 0.4: (06.06.07)
- Removed: dirty DX hacks, because they don't improve the performance much
- Corrected: bug in CopySprite()
- Corrected: bug in DisplaySprite3D()
- Corrected: bug in DisplaySolidSprite()
- Corrected: bug in ChangeGamma()
- Corrected: bug in ClipSprite()
- Corrected: bug in texture manager
- Corrected: strange bug in SpritePixelCollision()
- Corrected: bug in ScreenID()
- Improved: performance of Grabsprite() is much better, although still not hw accelerated
- Improved: loading speed of LoadSprite() and CatchSprite() if you do it right (see help)
- Improved: SpritePixelCollision() between static sprites is much faster (nearly 50 times faster !?)
- Improved: DisplaySprite3D() optimized for displaying 3D-sprites with the same texture at once
- Improved: DisplaySprite3D() uses clipping only if necessary
- Improved: FlipBuffers()
DX9S v0.5(473 KB)
It would be great if somebody could test esp. SpritePixelCollision(), DisplaySprite3D(),TransformSprite3D(),RotateSprite3D(),ZoomSprite3D(), LoadSprite(),CatchSprite(),ScreenOutput(),SpriteOutput() and GrabSprite(), because these commands are changed completely.
So they could have many new bugs

Now DisplaySprite3D() beats sometimes the rendering speed of the DX7 subsystem.
This is often the case if you draw many sprites which are partly outside the screen( or completely) or if you display the same texture often.
Note:
Some examples don't work at the moment because there seems to be a bug with direct memory access in PB 4.1 b1.
Btw, have a look at example 6...
Regards,
Stefan
Wow! Very nice and amazing work man! 
test1.pb == 465 to 600 fps (not constant) / works
test2.pb == 40 to 46 fps / works
test3.pb == 585 to 587 fps / works
test4.pb == n/a fps / works but see noting moving nor changing
test5.pb:
FlipBuffer = 0 | all other = 1 == 71 to 85 fps
FlipBuffer = 1 | all other = 1 == 59 to 61 fps
FlipBuffer = 2 | all other = 1 == 59 to 61 fps
FlipBuffer = 0 | all other = 0 == 1700 to 1790 fps
FlipBuffer = 1 | all other = 0 == 145 to 168 fps
FlipBuffer = 2 | all other = 0 == 145 to 168 fps
example6 DX7: 6 to 7 fps
example6 DX9: 52 to 100 fps (no constant smooth scrolling)
Here on my Intel DualCore Notebook with 2 GB DDR2 Ram and ATI X1400 it works very fine! BIG RESPECT !!!! thumbs up !!!!

test1.pb == 465 to 600 fps (not constant) / works
test2.pb == 40 to 46 fps / works
test3.pb == 585 to 587 fps / works
test4.pb == n/a fps / works but see noting moving nor changing
test5.pb:
FlipBuffer = 0 | all other = 1 == 71 to 85 fps
FlipBuffer = 1 | all other = 1 == 59 to 61 fps
FlipBuffer = 2 | all other = 1 == 59 to 61 fps
FlipBuffer = 0 | all other = 0 == 1700 to 1790 fps
FlipBuffer = 1 | all other = 0 == 145 to 168 fps
FlipBuffer = 2 | all other = 0 == 145 to 168 fps
example6 DX7: 6 to 7 fps
example6 DX9: 52 to 100 fps (no constant smooth scrolling)
Here on my Intel DualCore Notebook with 2 GB DDR2 Ram and ATI X1400 it works very fine! BIG RESPECT !!!! thumbs up !!!!
Last edited by va!n on Sat Jun 09, 2007 5:33 am, edited 1 time in total.
va!n aka Thorsten
Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
This system provides a way to colorize your sprites, I do not know if PB 4.20 will provide this option.
A question of my own ...
Is there a way to convert a sprite from this system into an Image?
And for the last one
All DX9S_* functions was removed with the newest release of this library. Is there a way we can get these needed functions back in? In particular DX9S_GetSpriteDC() and DX9S_ReleaseSpriteDC()?
A question of my own ...
Is there a way to convert a sprite from this system into an Image?
And for the last one

All DX9S_* functions was removed with the newest release of this library. Is there a way we can get these needed functions back in? In particular DX9S_GetSpriteDC() and DX9S_ReleaseSpriteDC()?
Hi
As I haven't much free time at the moment you can now download the source code of the DX9 subsystem.
Feel free to do what you want with it!
http://stefanmoebius.de/Files/DX9S_Src_3_07_07.zip
There is also a 2 year old and unfinished Irrlicht wrapper from me: (237 commands)
http://stefanmoebius.de/Files/I3DEngine.zip
@X
The functions are still included, please look at:
Examples\DX9Subsystem\DX9SEx\DX9SEx.pbi
You could use BitBlt_(),DX9S_GetSpriteDC() and DX9S_ReleaseSpriteDC() to copy the sprite on a image.
As I haven't much free time at the moment you can now download the source code of the DX9 subsystem.
Feel free to do what you want with it!
http://stefanmoebius.de/Files/DX9S_Src_3_07_07.zip
There is also a 2 year old and unfinished Irrlicht wrapper from me: (237 commands)
http://stefanmoebius.de/Files/I3DEngine.zip
@X
The functions are still included, please look at:
Examples\DX9Subsystem\DX9SEx\DX9SEx.pbi
You could use BitBlt_(),DX9S_GetSpriteDC() and DX9S_ReleaseSpriteDC() to copy the sprite on a image.
-
- Enthusiast
- Posts: 195
- Joined: Thu Nov 29, 2007 8:23 am
Andre wrote:I made a correct download today. So it should work (now)...
Thank you it works now.
Question:
There is an include file called "I3DEngine.pbi" that has a bunch of "ProcedureDLL" functions in it.
They are a wrapper to other functions supposedly residing in "I3DEngine.dll".
Why are these set up as "ProcedureDLL" and not as normal "Procedure" ?
The file "I3DEngine.pbi" is not used for the creation of the "I3DEngine.dll"...
BTW: How is the "I3DEngine.dll" created?
bye
fsw
-
- Enthusiast
- Posts: 142
- Joined: Mon Sep 17, 2007 10:28 am
- Location: P.O.P
- Contact:
what about source code, Stefan?S.M. wrote: There is also a 2 year old and unfinished Irrlicht wrapper from me: (237 commands)
http://stefanmoebius.de/Files/I3DEngine.zip

First off, just want to say good work on the DX9 Subsystem. Glad you took the time to implement this.
Second, If you are going to release the source to a library you give to the community, could you at least make sure its complete and correct versions?
Thanks for your hard work, and hope you come back to update the sources to correct versions and include the missing source file('s).
To my knowledge on studying your sources, they are not the same as the ones that built the dx9 subsystem v.5 library.
I may be wrong, but please correct me if I am.
Thanks.
Second, If you are going to release the source to a library you give to the community, could you at least make sure its complete and correct versions?
Thanks for your hard work, and hope you come back to update the sources to correct versions and include the missing source file('s).
To my knowledge on studying your sources, they are not the same as the ones that built the dx9 subsystem v.5 library.
I may be wrong, but please correct me if I am.
Thanks.
ANyone know why this doesnt work with PB 4.20 ?
Hello,
Anyone have a clue why the DX9 subsystem doesnt work with the new PB 4.20?
Fred and the team do great work but this subsystem is the fastest I've seen and would love to use it with the new Purebasic 4.20
thanks ahead of time
Anyone have a clue why the DX9 subsystem doesnt work with the new PB 4.20?
Fred and the team do great work but this subsystem is the fastest I've seen and would love to use it with the new Purebasic 4.20
thanks ahead of time