RISC OS 5.21 sprite changes

David Thomas dave at davespace.co.uk
Thu Dec 22 00:04:11 GMT 2022


On 27/08/2022 12:33, David Thomas wrote:

> I might start using RO5's new sprite types in PrivateEye. OSLib ought to 
> know about them so I thought I'd sketch out the amendments needed and 
> pop them here for discussion. Here's what I've got so far.

<snip changes>

Here's a patch which amends OS.swi and OSSpriteOp.swi with those changes.

Regards,
Dave

-- 
David Thomas  dave at davespace.co.uk  http://www.davespace.co.uk/
-------------- next part --------------
Index: Source/Core/oslib/OS.swi
===================================================================
--- Source/Core/oslib/OS.swi	(revision 477)
+++ Source/Core/oslib/OS.swi	(working copy)
@@ -238,20 +238,31 @@
 
 TYPE OS_ModeFlags = .Bits;
 CONST
-   OS_ModeFlagNonGraphics     = OS_ModeFlags: %1,
-   OS_ModeFlagTeletext        = OS_ModeFlags: %10,
-   OS_ModeFlagGap             = OS_ModeFlags: %100,
-   OS_ModeFlagBBCGap          = OS_ModeFlags: %1000,
-   OS_ModeFlagHiResMono       = OS_ModeFlags: %10000,
-   OS_ModeFlagDoubleHeight    = OS_ModeFlags: %100000,
-   OS_ModeFlagHardwareScroll  = OS_ModeFlags: %1000000,
-   OS_ModeFlagFullPalette     = OS_ModeFlags: %10000000,
-   OS_ModeFlagInterlaced      = OS_ModeFlags: 0x10,
-   OS_ModeFlagGreyscale       = OS_ModeFlags: 0x20 "RISC OS 6",
-   OS_ModeFlagDataFormat      = OS_ModeFlags: %1111000000000000 "RISC OS 4.32+",
-   OS_ModeFlagDataFormatShift = .Int: 12 "RISC OS 4.32+",
-   OS_ModeFlagDataFormatRGB   = OS_ModeFlags: 0 "RISC OS 4.32+",
-   OS_ModeFlagDataFormatCMYK  = OS_ModeFlags: 1 "RISC OS 4.32+";
+   OS_ModeFlagNonGraphics               = OS_ModeFlags: %1,
+   OS_ModeFlagTeletext                  = OS_ModeFlags: %10,
+   OS_ModeFlagGap                       = OS_ModeFlags: %100,
+   OS_ModeFlagBBCGap                    = OS_ModeFlags: %1000,
+   OS_ModeFlagHiResMono                 = OS_ModeFlags: %10000,
+   OS_ModeFlagDoubleHeight              = OS_ModeFlags: %100000,
+   OS_ModeFlagHardwareScroll            = OS_ModeFlags: %1000000,
+   OS_ModeFlagFullPalette               = OS_ModeFlags: %10000000,
+   OS_ModeFlagInterlaced                = OS_ModeFlags: 0x10,
+   OS_ModeFlagGreyscale                 = OS_ModeFlags: 0x20 "RISC OS 6",
+   OS_ModeFlagDataFormat                = OS_ModeFlags: %1111000000000000 "RISC OS 4.32+",
+   OS_ModeFlagDataFormatShift           = .Int: 12 "RISC OS 4.32+",
+   OS_ModeFlagDataFormatRGB             = OS_ModeFlags: 0 "RISC OS 4.32+",
+   OS_ModeFlagDataFormatCMYK            = OS_ModeFlags: 1 "RISC OS 4.32+",
+   OS_ModeFlagDataFormatYCC             = OS_ModeFlags: 2 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatShift        = .Int: 14 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatTBGR         = OS_ModeFlags: 0 "RISC OS 4.32+",
+   OS_ModeFlagDataSubformatTRGB         = OS_ModeFlags: 1 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatABGR         = OS_ModeFlags: 2 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatARGB         = OS_ModeFlags: 3 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatKYMC         = OS_ModeFlags: 0 "RISC OS 4.32+",
+   OS_ModeFlagDataSubformatYCC601Full   = OS_ModeFlags: 0 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatYCC601Video  = OS_ModeFlags: 1 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatYCC709Full   = OS_ModeFlags: 2 "RISC OS 5.21+",
+   OS_ModeFlagDataSubformatYCC709Video  = OS_ModeFlags: 3 "RISC OS 5.21+";
 
 TYPE OS_VDUVar = OS_ModeVar;
 CONST
Index: Source/Core/oslib/OSSpriteOp.swi
===================================================================
--- Source/Core/oslib/OSSpriteOp.swi	(revision 477)
+++ Source/Core/oslib/OSSpriteOp.swi	(working copy)
@@ -48,14 +48,28 @@
 
 TYPE OSSpriteOp_ModeWord = .Bits;
 CONST //for sprite mode words
-   OSSpriteOp_NewStyle  = OSSpriteOp_ModeWord: %1,
-   OSSpriteOp_XRes      = OSSpriteOp_ModeWord: %11111111111110,
-   OSSpriteOp_XResShift = .Int: 1,
-   OSSpriteOp_YRes      = OSSpriteOp_ModeWord: %111111111111100000000000000,
-   OSSpriteOp_YResShift = .Int: 14,
-   OSSpriteOp_Type      = OSSpriteOp_ModeWord: %1111000000000000000000000000000,
-   OSSpriteOp_TypeShift = .Int: 27,
-   OSSpriteOp_AlphaMask = OSSpriteOp_ModeWord: %10000000000000000000000000000000 "RISC OS Select";
+   OSSpriteOp_NewStyle      = OSSpriteOp_ModeWord: %1,
+   OSSpriteOp_XRes          = OSSpriteOp_ModeWord: %11111111111110,
+   OSSpriteOp_XResShift     = .Int: 1,
+   OSSpriteOp_YRes          = OSSpriteOp_ModeWord: %111111111111100000000000000,
+   OSSpriteOp_YResShift     = .Int: 14,
+   OSSpriteOp_Type          = OSSpriteOp_ModeWord: %1111000000000000000000000000000,
+   OSSpriteOp_TypeShift     = .Int: 27,
+   OSSpriteOp_AlphaMask     = OSSpriteOp_ModeWord: %10000000000000000000000000000000 "RISC OS Select",
+   OSSpriteOp_ExtStyle      = OSSpriteOp_ModeWord: 0x78000001 "RISC OS 5.21+",
+   OSSpriteOp_ExtStyleMask  = OSSpriteOp_ModeWord: 0x780F000F "RISC OS 5.21+",
+   OSSpriteOp_ExtXRes       = OSSpriteOp_ModeWord: 0x00000030 "RISC OS 5.21+",
+   OSSpriteOp_ExtXResShift  = .Int: 4 "RISC OS 5.21+",
+   OSSpriteOp_ExtYRes       = OSSpriteOp_ModeWord: 0x000000C0 "RISC OS 5.21+",
+   OSSpriteOp_ExtYResShift  = .Int: 6 "RISC OS 5.21+",
+   OSSpriteOp_ExtModeFlags  = OSSpriteOp_ModeWord: 0x0000FF00 "RISC OS 5.21+",
+   OSSpriteOp_ExtModeFlagsShift = .Int: 8 "RISC OS 5.21+",
+   OSSpriteOp_ExtType       = OSSpriteOp_ModeWord: 0x07F00000 "RISC OS 5.21+",
+   OSSpriteOp_ExtTypeShift  = .Int: 20 "RISC OS 5.21+",
+   OSSpriteOp_ExtRes180     = .Int: 0 "RISC OS 5.21+",
+   OSSpriteOp_ExtRes90      = .Int: 1 "RISC OS 5.21+",
+   OSSpriteOp_ExtRes45      = .Int: 2 "RISC OS 5.21+",
+   OSSpriteOp_ExtRes23      = .Int: 3 "RISC OS 5.21+";
 
 CONST
    OSSpriteOp_TypeOld       = OSSpriteOp_ModeWord: 0,
@@ -68,7 +82,11 @@
    OSSpriteOp_TypeCMYK      = OSSpriteOp_ModeWord: 7,
 //   OSSpriteOp_Type24Compact = OSSpriteOp_ModeWord: 8 "allocated but not used",
 //   OSSpriteOp_TypeJPEG      = OSSpriteOp_ModeWord: 9 "allocated but not used",
-   OSSpriteOp_Type16bpp64K  = OSSpriteOp_ModeWord: 10 "RISC OS 6";
+   OSSpriteOp_Type16bpp64K  = OSSpriteOp_ModeWord: 10 "RISC OS 6",
+   OSSpriteOp_TypeExt       = OSSpriteOp_ModeWord: 15 "RISC OS 5.21+",
+   OSSpriteOp_Type16bpp4K   = OSSpriteOp_ModeWord: 16 "RISC OS 5.21+",
+   OSSpriteOp_Type420YCC    = OSSpriteOp_ModeWord: 17 "RISC OS 6.21+",
+   OSSpriteOp_Type422YCC    = OSSpriteOp_ModeWord: 18 "RISC OS 5.21+";
 
 CONST OSSpriteOp_Unspecified = .Ref OSSpriteOp_Area: &100;
 


More information about the oslib-user mailing list