Re: Deployment from MDX Sample Framework

From: Phil Taylor (phil_at_private-citizen.com)
Date: 02/03/05


Date: Wed, 2 Feb 2005 17:13:02 -0800

are you sure the proper .NET framework version and MDX version is deployed
already on the target machine, before the app deployment process occurs? if
so, what does the debug runtime output stream tell you? the debug runtime
output always has info for failed calls...

also, its strange that your app has a dependency on the samples, as
evidenced by the errror...does it always work on a machine with the SDK
installed but not on a machine without the SDK? so do you have another
dependency on the SDK?

"Kev" <Kev@discussions.microsoft.com> wrote in message
news:AD66A13C-2B48-4084-B66C-480005148886@microsoft.com...
>I hope someone can help me. I'm using the Managed DX sample framework and
> have created a setup project of a simple Direct3D program.
>
> This installs & run fine on my dev machine but not on others, the
> initialisation of Direct3D Fails. The error is always the same:
>
> ERROR at Microsoft.Samples.DirectX.UtilityToolkit.Framework.....
>
> I looked up the error number and found that it means, "Not available,
> Device
> does not support the queried technique".
>
> This is the same on Win2K, WinXP.
>
> I've noticed that the framework code depends on
> "Media\UI\dxutcontrols.dds"
> for rendering the UI for buttons etc so have included this (and the other
> UI
> files) in my msi but still no success, testing has showed that this would
> only cause an error when the UI is displayed anyway - not at startup.
>
> Has anyone else had deployment problems? Share some tips? Does anyone know
> what the problem likely is? Is there something about the sample framework
> I
> should be aware of when attempting deployment? I've run into problems with
> deployment before from my own 3d framework - always specifying Hardware
> Vertex Processing would cause a "Null Reference" exception, even on
> machines
> with GeForce FX cards ...
>
> I should also say that I'm supporting the IDeviceCreation Interface, here
> is
> some code from that.
>
> public bool IsDeviceAcceptable(Caps caps, Format adapterFormat, Format
> backBufferFormat, bool windowed)
> {
> // Skip back buffers that do not support Alpha blending
> if (!Manager.CheckDeviceFormat(caps.AdapterOrdinal, caps.DeviceType,
> adapterFormat,
> Usage.QueryPostPixelShaderBlending, ResourceType.Textures,
> backBufferFormat))
> return false;
>
> // Skip devices that do not support at least one light!
> if (caps.MaxActiveLights == 0)
> return false;
>
> return true;
> }
>
> public void ModifyDeviceSettings(DeviceSettings settings, Caps caps)
> {
> // This application is designed to work on a pure device by not using
> // any Get methods, so create a pure device if supported and using HWVP
> if ( (caps.DeviceCaps.SupportsPureDevice) &&
> ((settings.BehaviorFlags & CreateFlags.HardwareVertexProcessing) != 0) )
> settings.BehaviorFlags |= CreateFlags.PureDevice;
> }
>
>
> I'm totally at a loss with trying to deploy managed DirectX applications -
> please someone elighten me to the secrets!
>
>