Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 28 Dec 2003
Offline Last Active Nov 13 2013 02:22 PM

#4023269 SlimDX -- A Prototype MDX Replacement Library

Posted by on 01 August 2007 - 12:39 PM

The Direct3D core is definitely working fine, it works like a charm in my Doom Builder 2 project. However, now the priority for me to continue using SlimDX is that DirectSound (and AudioVideoPlayback, of which we only use the Audio) goes in. After a few big bumps in the road with Doom Builder 2 (not SlimDX related), we have decided to pick up the Hellbent engine we built earlier and make a sequel to Bloodmasters (yes: Bloodmasters 2) but that engine is still using MDX for Direct3D and DirectSound and that Audio part. I'd really would like to switch that over as well, but heh, Sound and Audio ;)

I know that may sound like demanding a lot, but so is our game, sorry :( Good thing is that my experience with porting DirectX stuff over to SlimDX is very good, it does not take much work to port a project over, so it can wait.

Keep up the good work guys!

#4004925 SlimDX -- A Prototype MDX Replacement Library

Posted by on 10 July 2007 - 08:35 PM

Original post by remigius
Original post by Promit
By the way, there's one rather important thing I forgot to mention: Auto-release of objects is going away.


You will have to keep track of all your objects and dispose them correctly. I will be adding a couple leak detection/tracking features to help out, though. Those should be very useful in tracing bugs with object lifetime.

Good call. With my MDX projects I always disabled the events anyway, which made managing the lifetimes a lot more predictable. As far as I can tell, they've cut this from XNA as well, so I'd say this is a good thing (not that you'd need my approval or anything though [wink])

Maybe it's a good idea to include the PIX profiling functions, so folks can use a decent D3D profiler out of the box.

I concur. I too always disabled the events and dispose al my objects manually. And some leak detection/tracking features would be nice :D

#4004429 SlimDX -- A Prototype MDX Replacement Library

Posted by on 10 July 2007 - 06:55 AM

You should try sourceforge.net. For some reason I find them a lot more experienced in that area.

#4002708 SlimDX -- A Prototype MDX Replacement Library

Posted by on 07 July 2007 - 11:11 PM

The GraphicsStream from a VertexBuffer had a problem earlier that you were unable to Seek in it or getting it's Length. If that might have been your problem, this was fixed yesterday. At this time in SlimDX's development it is good to download and build a regular update because there are a lot of things being added and fixed.

If you need an example on SlimDX use, allow me to post this shameless plug:
The source code is in SVN and uses SlimDX for rendering with vertex buffers (note: my vertexbuffers are in the ManagedVertexBuffer class which adds management functionality I needed).

#3993916 SlimDX -- A Prototype MDX Replacement Library

Posted by on 25 June 2007 - 10:09 PM

I have ported my Doom Builder 2 project to use SlimDX instead of Direct3D and it works perfectly. I now just hope SlimDX can keep up with my development speed in case I encounter things I need to use that SlimDX doesnt have (yet) :)

There are a few more things I encountered that I think need your attention. Also, my requests above still apply as well.

1) SlimDX is missing the TextureAddress enum. This is required to be able to set texture addressing modes like this:

device.SetSamplerState(0, SamplerState.AddressU, TextureAddress.Wrap);

2) A low priority, but certainly important for that professional look & feel: Support the use of your enums in the methods where they are needed! This could be done by overloading your methods. Right now I need ugly (int) casts on every statement.

// Sampler settings
device.SetSamplerState(0, SamplerState.MagFilter, (int)TextureFilter.Linear);
device.SetSamplerState(0, SamplerState.MinFilter, (int)TextureFilter.Linear);
device.SetSamplerState(0, SamplerState.MipFilter, (int)TextureFilter.Linear);

// First texture stage
device.SetTextureStageState(0, TextureStage.ColorOp, (int)TextureOperation.Modulate);
device.SetTextureStageState(0, TextureStage.ColorArg1, (int)TextureArgument.Current);
device.SetTextureStageState(0, TextureStage.ColorArg2, (int)TextureArgument.TFactor);
device.SetTextureStageState(0, TextureStage.ResultArg, (int)TextureArgument.Current);
device.SetTextureStageState(0, TextureStage.TexCoordIndex, 0);

#3987012 SlimDX -- A Prototype MDX Replacement Library

Posted by on 15 June 2007 - 01:10 AM

I'm more than willing to use SlimDX in my Doom Builder 2 project (a .NET remake of my old Doom Builder which you can find here), however I have barely touched it yet and I noticed it needs two changes:

1) It should not initialize anything before I explicitly ask it to do so. Static components are initialized when the library is loaded and loading a library (either manually or by first reference) does not mean I want to use all of its components. This is a high priority IMO.

2) It needs a CheckDirectX() method which checks if the required DirectX libraries are installed (and versions are correct). This method can either report failure by throwing an exception or return information. (After discussing this idea with Promit, it seems that throwing an exception is what it would do) The reason for this method is allowing developers to make an early check instead of having to put a try/catch around every SlimDX call that could possibly be the first that initializes DirectX.

Until I make an official release on the Doom Builder website you won't find my new project there. However, you can find the Doom Builder 2 source and documentation at SourceForge.

#3958276 SlimDX -- A Prototype MDX Replacement Library

Posted by on 08 May 2007 - 06:14 AM

I like this project and I love that you deviate slightly from the original API to make it all a little more obvious.

Classes/structs that I'd like to see are the obvious ones, I am not working with anything out of the ordinary (yet). Oh, please don't lack device/displaymode/capabilities enumeration.