Commit 65c57a08 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Use different layouts for different screen modes

Detail:
  Rather than using a fixed layout (which assumes a fixed screen size), BootFX now supports multiple layouts, which are able to adjust their scale to fit the current screen.
  First the layout most appropriate to the aspect ratio is chosen, and then coordinates and scale factors are adjusted in order to account for any difference in resolution.
  If the scaling results in a text window which is deemed to be "too small" then another layout will be tried, or in extreme cases BootFX will give up and go inactive for that mode.
  For cases where there is an inexact aspect ratio match, borders will be added to the layout in order to allow it to maintain the correct aspect ratio. This may result in some wasted space but sufficient for most purposes.
  File changes:
  - Docs/Spec.txt - Document BootFX_BarLoad addition to allow custom bar scale factors to be used
  - c/bootfx - Move hard-coded layout parameters into layout_t structs, and implement the layout adjustment logic. Define two layouts for Raspberry Pi; 4:3 layout will crop off the top portion of the splash so that a large text window can be placed underneath.
  - h/bootfx - Remove a few constants which are defined elsewhere in shared headers
Admin:
  Tested on Raspberry Pi, in a variety of screen modes


Version 0.07. Tagged as 'BootFX-0_07'
parent c600f670
......@@ -173,7 +173,10 @@ BootFX_BarLoad (0x59141)
In...
R0 = flags (unspecified bits should be zero)
0 - if set, R2 is a pointer to scale factors
R1 = pointer to zero-terminated filename
R2 = pointer to scale factors (if flag bit 0 set), as per "plot scaled"
SpriteOps
Out...
R0 = progress bar handle
......@@ -231,4 +234,5 @@ Out...
R3 = width (OS units)
R4 = height (OS units)
Return information about the specified progress bar.
Return information about the specified progress bar. Width and height take into
account any scale factors that were provided to SWI BootFX_BarLoad.
/* (0.06)
/* (0.07)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.06
#define Module_MajorVersion_CMHG 0.07
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 10 Oct 2012
#define Module_Date_CMHG 26 Nov 2016
#define Module_MajorVersion "0.06"
#define Module_Version 6
#define Module_MajorVersion "0.07"
#define Module_Version 7
#define Module_MinorVersion ""
#define Module_Date "10 Oct 2012"
#define Module_Date "26 Nov 2016"
#define Module_ApplicationDate "10-Oct-12"
#define Module_ApplicationDate "26-Nov-16"
#define Module_ComponentName "BootFX"
#define Module_ComponentPath "bsd/RiscOS/Sources/Video/UserI/BootFX"
#define Module_FullVersion "0.06"
#define Module_HelpVersion "0.06 (10 Oct 2012)"
#define Module_LibraryVersionInfo "0:6"
#define Module_FullVersion "0.07"
#define Module_HelpVersion "0.07 (26 Nov 2016)"
#define Module_LibraryVersionInfo "0:7"
This diff is collapsed.
......@@ -41,18 +41,11 @@
#ifndef ScreenFX_Fade
#define ScreenFX_Fade (0x58440)
#endif
/** Global/ModHand.h defines this, but also defines macros that conflict with our CMHG handler functions
*/
#ifndef ModHandReason_LookupName
#define ModHandReason_LookupName (18)
#endif
#ifndef OSFind_Close
#define OSFind_Close (0)
#endif
#ifndef OSDA_Create
#define OSDA_Create (0)
#endif
#ifndef OSDA_Remove
#define OSDA_Remove (1)
#endif
#endif
......
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