Feed on
Posts
Comments

It seemed like such a good idea at the time.

How did Shazzam ended up with a dependency on the DirectX SDK?  You see there’s a couple ways to compile a pixel shader in DirectX.  The technique you frequently see mentioned is to use the command line utility called FXC.exe.   FXC works great but there is one tiny problem. It’s only available in the DirectX SDK. This might be a good time to mention that the current SDK is nearly 1 GB in size. Yes, that means to run Shazzam you have to download this gargantuan installer and wait 30 minutes for it to finish installing before you can even use Shazzam.

To remove the the dependency all you need to do is remove the call to FXC and find a way to invoke the DirectX DLLs directly. There are a couple techniques to accomplish this, and they all rely on making PInvoke calls.  Earlier releases of Shazzam attempted to get the correct PInvoke code but it was never quite right. Short story, we keep relying on FXC to do the job.

DirectX Ninja to the rescue

http://jmorrill.hjtcentral.com/

Jeremiah Morrill, or Jer to his friends, has a long history of working with .NET and DirectX.  He created the WPF media kit and the Laser Graffiti application.  He’s busy in the Silverlight world too, working on the SilverlightEncoder and SilverlightViewport. He’s the hero of this story because he’s the guy that wrote the new compiler code for Shazzam 1.3.

Three months ago, Jer and I  got together during the Expression Blend event at MIX10.  Over a few Irish beers we got to talking about the trouble with the SDK.  He volunteered to take a look at the problem and a couple months later he sent me the PInvoke code to make the DirectX compiler work. 

It wasn’t all a cakewalk however. Jer’s code worked great but we struggled with making the DirectX calls work and ensure that the correct DLLs were in place.  There were a number of complications which were discovered during testing but we worked them all out.

No more SDK

It’s with great pleasure that I can announce that Shazzam 1.3 is SDK free and works as soon as you install it on your computer. Time to celebrate.

On The Main Stage

  • On the main stage – by  Larry Brown.

Change to Settings Pane

One side effect of this change is that you no longer need to configure the path to FXE.exe in the Shazzam settings pane. The setting has been removed.

image

 

Release date:  July 12, 2010


Do you know about the Shazzam twitter feed?

http://twitter.com/shazzamtool

2 Responses to “Feature list V1.3 – Remove dependency on DirectX SDK”

  1. [...] « Oh, shiny! Animated Mandelbrot shader effect Feature list V1.3 – Remove dependency on DirectX SDK [...]