DirectX (WIN32)
Name
display-directx : DirectX (WIN32)
Synopsis
display-directx: [ [-inwin=<winid>] [-keepcursor] [-nocursor] [-noinput] [-physz==<sizex>,<sizey>[dpi]] ]
Description
Used for Win32 DirectX port of libGGI.
Options
- '-inwin=<winid>|root'
Run in already-existing window with id winid. This can be used to embed a LibGGI application into a DirectX application. The value should be a DirectX window ID expressed as a decimal, hexadecimal or octal number in C syntax. The special string "root" will cause the application to run in the root window. Note that in the root window, you may need to explictly select a LibGII input source using the GGI_INPUT environment variable as Windows will absorb all events sent to the window. When using the root window other features (like direct framebuffer access and video hardware mode selection) may be available which are not available when the application is running in a normal window.
- '-fullscreen'
If mode switching is required for the mode, this option makes it possible to set it. Superior to -inwin=root.
- '-nocursor', '-keepcursor'
Normal behavior of display-directx is to create a small dot mouse cursor pixmap which is visible when the mouse is positioned over the window containing the visual. With the former option, the DirectX mouse cursor will be invisible when it is over the visual, with the latter, the cursor from the root window is used unaltered. If both options are supplied, the latter takes precedence. Note, that none of them works with the -inwin option.
- '-noinput'
DirectX events sent to the window are not captured and merged with any other LibGII input sources. This allows one to take input from raw devices without receiving duplicate events should DirectX also be configured to use the device.
- '-physz==<sizex>,<sizey>[dpi]'
This option will override the physical screen size reported by the DirectX, which affects applications which wish to remain resolution independent. sizex,:p:sizey are the x,y size of the entire screen (not just the DirectX window containing the visual) in millimeters, unless the optional 'dpi' string is affixed, in which case, they represent resolution in dots-per-inch. Yes, there are two equals signs there, for reasons of compatibility with other targets.
Features
- DirectBuffer
- Multiple frames (up to 16)
- Panning
Bugs
- On palettized windowed modes (i.e. not with -fullscreen) the first and last 10 entries of the palette are reserved by Windows and will not behave correctly. Even with the -fullscreen option, palettized modes can have problems with the first and the last entry, depending on what version of Windows is running.
- Can not draw directly in video ram, instead uses a intermediate buffer that is copied to video ram at regular intervals.
- The rate at which the above copy happens is fixed at 30Hz, and cannot be controlled by the user. The environment variable 'MANSYNC_FPS' should probably be used.
- Does not fall back to fullscreen if -fullscreen is not specified. That should ideally happen when the requested graphics mode is incompatible with the current Windows graphics mode and a matching fullscreen mode is there.