Showing changes from revision #2 to #3:
Added | Removed | Changed
Entry | |
---|---|
R0 | Reason |
R1 | 223 (&DF) |
R2 | Display number |
R3 | Reason 1: Pointer to device descriptor |
Other reason codes: Undefined |
# | Hex # | Action |
---|---|---|
0 | &00 | Device deregistered |
1 | &01 | Device registered |
128 | &80 | Device configuration changing |
129 | &81 | Device configuration changed |
This service call is issued by the kernel when video drivers register or deregister with the system, or by drivers when their configuration/capabilities change in a noteworthy way.
Under RISC OS 5, the display number in R2 corresponds to the GraphicsV driver number. Reason 1 is issued when a driver calls OS_ScreenMode 65, just after the kernel marks the driver as being ready for use. However because GraphicsV does not use device descriptors, the descriptor pointed to by R3 will be empty (a single terminator word). Reason 0 is issued when a driver calls OS_ScreenMode 66, before the kernel marks the driver as having stopped.
Under RISC OS Select, the display number in R2 corresponds to the VideoV? driver number, and the service calls are issued at the appropriate times for the VideoV API.
Under RISC OS 5, drivers will issue reason codes 128 and 129 when their configuration changes in a noteworthy way, e.g. when the list of available pixel formats changes. Reason code 128 should be issued before the change takes place and reason code 129 should be issued after the change is complete. This allows the driver to warn software running in the background that the driver is entering an indeterminate state, and to notify it when the state change is complete.
The kernel will listen out for configuration change service calls which correspond to the current GraphicsV driver and transform them into the appropriate Service_DisplayChanged calls. Specifically, DisplayChanged reason 128 (PreChanging) will be issued when the DisplayStatus 128 is received, and DisplayChanged reasons 0 (Changing) and 1 (Changed) will be issued once the change is complete. This forwarding of service calls means that software which is only interested in the current GraphicsV driver only has one service call to listen out for (Service_DisplayChanged) instead of two.