I'd like to output a different static bitmap/jpeg to individual monitors, one image per port/monitor. Can this be done?
The configuration is that port 1 will be a standard Windows 8 display. Other ports, the ones I'm interested in, may be connected to various monitors, not configured as a wall. In fact I'd be happy to bypass windows and force output even if there is no physical monitor attached.
Usually these other ports will be off/unused but then I need to turn one on and display a full screen image that will be static.
Can this be done? Or, do I have to configure windows for all monitors, always on, and calculate monitor edges for the images?
You can activate EDID emulation on all connectors except connector 1 which has the physical monitor attached. Now you will have 6 displays that are visible to Windows and you can create a window on all of them that shows your static image. Once a real monitor gets connected it will display your image.
To configure EDID emulation, please open the Catalyst Control Center, open the AMD FirePro tab and select EDID emulation. To fake a display you will need a vaild EDID. You can e.g. capture it from your monitor.
There are different ways of emulation. One is to always force the EDID. In this case you need to be aware that the video timing that is defined in the EDID will be applied regardless which monitor gets connected. You should make sure to use a resolution and refresh that will work for the monitor that might get connected.
Sounds like a workable solution but for my desired operating mode, only partially there for my needs.
Can this be done programmatically? I.E. run an app, that I write, to enable a specific port and set the EDID of a particular monitor, and specify the image to display on it? This would have to be done without causing a windows reboot or similar. Could it then also turn it back off?
If so, where would I find the API documentation. (Link, page #)?
Yes, you can do this programmatically. Please have a look at the ADL 7.0 SDK.
Functions of interest are: ADL_Adapter_ConnectionData_set and ADL_Adapter_EmulationMode_Set
You could set the connection data at initialization time and use ADL_Adapter_EmulationMode_Set to enable or disable the emulation whenever it is required by your application.
The ADL SDK comes with a sample tool to manage EDID emulation. Please have a look at the sources of the EDIDSampleTool