RTG sprite fallback?
I was thinking about writing a floating toolbox BOOPSI class but it depends on sprite hardware by transplanting pointer information from a SimpleSprite struct into a BitMap struct. If there's a way to indicate that only RTG softsprites are available, I'd like to enable a system-friendly fallback mode that makes no assumptions about sprites or video modes. If possible, I'd like to make one library work for all systems instead of one for RTG and one for chipsets. Can anybody offer useful advice? (I consider pontificating about operating systems having exclusive control of the hardware to be useless advice.)
PropertyFlags from DisplayInfoData() is what I needed. Since my proposed class is a size constrained speed optimization that can pass-through to the parent class when sprtes aren't there, it only needs to know what simple sprite it gets. AllocSpriteDataA() will never be used by my code.
Would love to have this palette-window class, DMusic2 had the best ever implementation of this.
For the record, there is that thing called GELS in graphics, which is few documented, and can manage both Sprites and "big transparent Blitter objects." over an intuition screen. Apparently that's what you use when you drag n drop icons on WB, which can be big transparent images. So that implies AGA and all RTG already manage very well GELS bobs. But Apparently again, may not be usable through the intuition windows drawing upade mecanism.
(note again, I "traced" my OS3 WB Screen,, and it has constantly 2 GLES defined in its gels list: I Think One is used as BOB to draw the dragndop icon. since GELS can be either sprite or BOB, I bet the other one is the mouse sprite, as GELS sprite. ) Note again, OS3 is meant to work on OCS/ECS machines, so sprite limitations must be likewise. ( remember things like!: overscan mode that gain left border will disable some sprites under OCS/AGA ... )
An esay way to achieve tooltip like sprites, as long as they are rectangles, is simply to create another mini-Window, with no border and special drawing. Intuition will naturally clip it.
The thread I opened to start to ask questions about the very mysterious GELS: https://developer.amigaos3.net/forum/119-os3-strategies-have-transparen…
Things in documentations:
https://developer.amigaos3.net/autodocs/graphics.library/InitGels.html
https://developer.amigaos3.net/autodocs/include_h/graphics/gels.h
http://amigadev.elowar.com/read/ADCD_2.1/Libraries_Manual_guide/node037…
Online Status
I am not sure, but I think that you can use GetDisplayInfoData() to retrieve DisplayInfo record, which contains two interesting informations:
- PropertyFlags. Only if DIPF_IS_SPRITES flag is set, you can use Amiga sprites in this display mode,
- NumStdSprites: a number of available Amiga sprites.
Additionally there were added two system-friendly functions for working with mouse pointer and sprites:
- pointerclass BOOPSI class,
- AllocSpriteDataA() compatible with RTG.
Hope that helps. Regards, Robert.