Poster | Thread |
terminills
|  |
Re: RTG libraries Posted on 12-Dec-2022 16:52:31
| | [ #21 ] |
|
|
 |
AROS Core Developer  |
Joined: 8-Mar-2003 Posts: 1500
From: Unknown | | |
|
| @Karlos
IIRC CGX API is supported across all the platforms Classic, AROS, OS4+, MorphOS. So unless you're looking for OS specific versions CGX would make the most sense.
_________________ Support AROS sponsor a developer.
"AROS is prolly illegal ~ Evert Carton" intentionally quoted out of context for dramatic effect |
|
Status: Offline |
|
|
Karlos
|  |
Re: RTG libraries Posted on 12-Dec-2022 17:03:47
| | [ #22 ] |
|
|
 |
Elite Member  |
Joined: 24-Aug-2003 Posts: 4943
From: As-sassin-aaate! As-sassin-aaate! Ooh! We forgot the ammunition! | | |
|
| @terminills
It was always my goto RTG API for 3.x, and almost everything worked the same on p96 on mediator, UAE and OS4. However, I believe the OP wants to use p96 and that it's had recent development. To be honest, I think if you want to do basic software rendering to a surface, both API have you covered. You lock a bitmap, get the address and do your thing. _________________ Doing stupid things for fun... |
|
Status: Offline |
|
|
Hypex
 |  |
Re: RTG libraries Posted on 14-Dec-2022 15:20:47
| | [ #23 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @Karlos
I suppose if you set the screen mode you don't need to worry so much about what depth it is.
There is GetBitMapAttr() as well if that can work. I never understood the tags being in steps of 4. Couldn't correlate that to any field offset so seems strange to do that. |
|
Status: Offline |
|
|
Hypex
 |  |
Re: RTG libraries Posted on 14-Dec-2022 15:51:12
| | [ #24 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @Drule
Quote:
OK, so with that in mind, could you post a code example of how to render 32-bit ARGB with the graphics.library alone. I'm evidently missing something. |
If your Amiga hardware supports it, it can be done. You just need to avoid functions specific to planar. And use functions that can act generically. You need BOOPSI, datatypes as well as graphics,
So you need your ARGB in a picture format such as on disk. Load it in using NewDTObject() from datatypes.library. Can also be in memory from OS3.5 V44.
You can use BOOPSI functions to render into a window. Or, if you just want to render direct to screen, simply use BlitBitMap(). Classic function there.
You're right. Example code. I'm going from the top of my head when I figured it out years ago.  |
|
Status: Offline |
|
|
NutsAboutAmiga
|  |
Re: RTG libraries Posted on 14-Dec-2022 22:25:14
| | [ #25 ] |
|
|
 |
Elite Member  |
Joined: 9-Jun-2004 Posts: 12991
From: Norway | | |
|
| |
Status: Offline |
|
|
NutsAboutAmiga
|  |
Re: RTG libraries Posted on 14-Dec-2022 22:33:33
| | [ #26 ] |
|
|
 |
Elite Member  |
Joined: 9-Jun-2004 Posts: 12991
From: Norway | | |
|
| @Drule
Here is diff between AmigaOS3.2 NDK and AmigaOS4.1 SDK graphics.library
7a8 graphics.library/AllocBitMapTagList 26a28 > graphics.library/BltBitMapTagList 36a39 > graphics.library/CINIT 45a49 > graphics.library/CompositeTagList 61a66,67 > graphics.library/FreeCopList > graphics.library/FreeCprList 66a73 > graphics.library/FreeVPortCopLists 68a76,77 > graphics.library/GetBoardBytesPerRow > graphics.library/GetBoardDataTagList 74a84 > graphics.library/GetMonitorDataTagList 78c88 < graphics.library/GetRPAttrA --- > graphics.library/GetRPAttrsA 83c93 < graphics.library/GfxLookUP --- > graphics.library/GfxLookUp 84a95 > graphics.library/GraphicsControlTagList 96a108,109 > graphics.library/LockBitMapTagList > graphics.library/LockBitMapToBoardTagList 115a129 > graphics.library/ReadPixelArray 116a131 > graphics.library/ReadPixelColor 118a134 > graphics.library/RectFillColor 143c159 < graphics.library/SetRPAttrA --- > graphics.library/SetRPAttrsA 153c169,170 < graphics.library/UCopperListInit --- > graphics.library/UnlockBitMap > graphics.library/UnlockBitMapFromBoard 157d173 < graphics.library/VPOrigin 162a179 > graphics.library/WritePixelArray 163a181 > graphics.library/WritePixelColor 167,169c185,187 < graphics.library/CMove < graphics.library/CWait
Last edited by NutsAboutAmiga on 14-Dec-2022 at 10:35 PM.
_________________ http://lifeofliveforit.blogspot.no/ Facebook::LiveForIt Software for AmigaOS |
|
Status: Offline |
|
|
NutsAboutAmiga
|  |
Re: RTG libraries Posted on 14-Dec-2022 22:53:29
| | [ #27 ] |
|
|
 |
Elite Member  |
Joined: 9-Jun-2004 Posts: 12991
From: Norway | | |
|
| @Drule
As you can see SDK4.1 introduces bitmap locking, and functions to draw using 32bit, instead of functions that uses pens. You also see renamed some functions coursing problems when you try to compile stuff. Interestingly they added CINIT, FreeCopList, that technically none useable on a pure RTG system, and not available AmigaOS3.2, but they removed CMove and CWait.
AmigaOS3.2 / graphic library does not have Important functions like LockBitMapTagList, UnlockBitMap, this means you can’t do any safe reads and writes to bitmap memory directly. (there is also a function name conflict with Cyber graphics library creating problems, when including graphic library and cyber graphics at same time, they use different tags, so nothing really works.)
There is a workaround, allocating bitmap manually in fast memory, and blit it into Screen bitmap, you need to careful when initializing, telling the system its not a displayable bitmap. As displayable bitmap can be moved in and out of Graphic card memory, this why we need bitmap lock functions. (32bit RGB is stored in the bitplane 0 pointer, if I'm not mistaken.)
the alternative is if you use the API’s you have available. And that’s the PEN functions. You need allocate a PEN, you change PEN color as you draw, the other pixels will not be affected. Of course, this will be slow.
that’s until AmigaOS3.x gets the same functions, we most likely have edit wars, where something changes because it has not the same name, its renamed, or because incompatibilities. I see your part of the “Amiga Developer Team", so you should know about this already.
There are most likely a bunch of flags you can’t use in the tag lists.
If you want to write compatible software, and not get lots of complaints, there is lots to think about, because it’s really is lot that is changed. (With open source everyone can make their own changes, if its none profit.)
But build system, can get complicated, but it all depends on what you’re making, and who it’s for. It should be stated clearly in the readme. And release notes. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:24 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:22 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:22 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:15 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:13 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:03 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 11:00 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 10:58 PM. Last edited by NutsAboutAmiga on 14-Dec-2022 at 10:56 PM.
_________________ http://lifeofliveforit.blogspot.no/ Facebook::LiveForIt Software for AmigaOS |
|
Status: Offline |
|
|
Karlos
|  |
Re: RTG libraries Posted on 15-Dec-2022 14:15:29
| | [ #28 ] |
|
|
 |
Elite Member  |
Joined: 24-Aug-2003 Posts: 4943
From: As-sassin-aaate! As-sassin-aaate! Ooh! We forgot the ammunition! | | |
|
| |
Status: Offline |
|
|