Commit 6b9b62ab authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Improve mode substitution logic

  This updates ScreenModes to use similar mode substition logic to Kernel-6_14:
  - Try higher colour depths
  - Try lower colour depths
  - Try alternate resolutions (half-width non-double-pixel if original was double-pixel, assorted industry-standard resolutions, and monitor preferred resolution/timings)
  - Plus tries to preserve as many attributes as possible (eigen values, gap mode type, etc.)
  Additionally, LineLength values in the input mode selector block will be used to influence the VIDC list ExtraBytes value, as per the kernel
  File changes:
  - c/ScrModes - Update Service_ModeTranslation and Service_ModeExtension handlers, as described above
  - h/modex - "const PixelFormatRef" is a const pointer to a non-const PixelFormat, but we want "const PixelFormat *", for a pointer to a const PixelFormat
  Tested on Raspberry Pi 3, Iyonix, IGEPv5
  Note that we can't easily remove the Service_ModeTranslation handler from ScreenModes and rely purely on the one in the kernel because the kernel can't easily see which modes ScreenModes provides (ditto other Service_ModeTranslation handlers).

Version 0.71. Tagged as 'ScrModes-0_71'
parent 45b37ed5
/* (0.70)
/* (0.71)
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
#define Module_MajorVersion_CMHG 0.70
#define Module_MajorVersion_CMHG 0.71
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 25 Sep 2018
#define Module_Date_CMHG 07 Nov 2018
#define Module_MajorVersion "0.70"
#define Module_Version 70
#define Module_MajorVersion "0.71"
#define Module_Version 71
#define Module_MinorVersion ""
#define Module_Date "25 Sep 2018"
#define Module_Date "07 Nov 2018"
#define Module_ApplicationDate "25-Sep-18"
#define Module_ApplicationDate "07-Nov-18"
#define Module_ComponentName "ScrModes"
#define Module_ComponentPath "castle/RiscOS/Sources/Video/UserI/ScrModes"
#define Module_ComponentPath "apache/RiscOS/Sources/Video/UserI/ScrModes"
#define Module_FullVersion "0.70"
#define Module_HelpVersion "0.70 (25 Sep 2018)"
#define Module_LibraryVersionInfo "0:70"
#define Module_FullVersion "0.71"
#define Module_HelpVersion "0.71 (07 Nov 2018)"
#define Module_LibraryVersionInfo "0:71"
This diff is collapsed.
......@@ -256,7 +256,7 @@ void release_currentmonitor(void);
void free_monitordescription(MonitorDescriptionRef);
void compute_modedescription(ModeDescriptionRef);
void sort_modelist(ModeDescriptionRef *);
bool is_old_format(const PixelFormatRef);
bool is_old_format(const PixelFormat *);
bool find_deepest_by_xyhz(PixelFormatRef, ModeDescriptionRef);
_kernel_oserror *set_monitortype(int);
int read_monitortype(void);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment