Frequently asked questions by category.

FAQ 1 - General

1.1 What operating systems does DirectPython support?
It should work with any Windows version that supports DirectX 9.0c (Win 98 and newer, excluding some NT-systems).

1.2 What version of DirecX does DirectPython need?
DirectX version 9.0c or greater. If you want to distribute your application to others, you must make sure that they have the end-user runtime installed. You can either download the latest version from here or use the custom version that came with DirectPython. It can be found in the redist-folder.

1.3 How do I know if I have the latest DirectX installed?
One way to check the version is to select "Start -> Run..." and type "dxdiag". If it does not work, you do not have the latest DirectX installed or something is not working right.

1.4 Does DirectPython support DirectX 10?
No. DirectX 10 is supported only in the new Windows Vista. It is already possible to make DirectPython work with DX 10, but the much wider OS support for DX 9 is considered to be more important. Eventually DirectPython will migrate to DX 10, but that is not soon. Note that DirectX9 applications (including DirectPython) will work in Vista.

1.5 What graphics cards should I support?
It depends from your application. Often the easiest way is to get a listing about the capabilities of the most common GPU's (Graphics Processor Unit). After deciding what capabilities your application requires, you can make a list of all the GPU's that can handle the requirements and mark them as supported. Other cards may work, but they are not officially supported. This can prevent headaches when trying to figure out why the application does not work right with some ancient card. There is no need to support all cards just because they exist.

FAQ 2 - Technical

2.1. I draw my vertices but nothing is shown on the screen
Make sure that you have set the right FVF and transformations. Also remember clear() and xxxScene() calls and present(). You can also check view settings.

2.2. My rendering gets all messed up when the window is resized
This happens because the device is (transparently in DirectPython) reset when the window is resized. After this all state information will be lost. You must set view, light etc. parameters again. d3dx.Frame and the samples save some information (like the view), so that they will handle some cases automatically.

2.3. My application does not work properly in fullscreen
Fullscreen mode is a very special state in Direct3D. If you switch to fullscreen and back, the device is often created again or reset. If the device is created again, all resources (meshes, buffers, fonts etc.) are invalidated and must be created again. d3dx.Frame and samples handle this situation properly. If you don't need a real fullscreen mode, you can "fake it" by using the MAXIMIZE style. You can't control the resolution, but life can be much easier.

2.4 My application works on one system but fails or looks odd on another
This is a relatively common problem. There are many different combinations of GPU's and drivers and it would be a miracle if all of them would act alike. Weird results are often results of rare corner cases or invalid values. The samples that came with DirectPython are tested with Direct3D reference rasterizer which is a full software version of Direct3D. All drivers and cards should produce same results as the reference device. In practice this is not always true, but samples can be a good source when trying to figure out if something is wrong with the driver or the card. One reason for failure can also be insufficient card capabilities: some methods may fail if certain requirements are not met. Logo