Polluks wrote a little AREXX script to extract positions from JPG exif informations to show on the map, it also create geo: URIs suitable for Mapparium. He also asked me if it would be possible to include AREXX support directly to Mapparium. I always played with the idea to try some AREXX support things, but never had a reason. In principle is rather easy to get a message and return a error value.
I added two simple commands to Mapparium, goto and addwaypoint.
Mapparium with AREXX
At AROS sadly I didn’t get the AREXX (or Regina) to work, thats the reason I implement for Amiga Classic at the moment.
Strange problem appeared with Mapparium on AmigaOS4, all texts are invisible. The funny thing: on my UAE and the OS4 computer at Amiga meeting it was working, difficult to debug. But thanks to some guys at amiga.org I was able to solve it. First I thought it was some Font issue but then I found an informations about color setting in AmigaOS4 and that the given color also contains an alpha value and this was of course always zero for my setting now. MorphOS/AROS/Amiga does not need there a value. And after a failed try (I missed one call) I got a positive feedback from Amiga.org.
Besides this I fixed some little things and implemented Garmin tcx reading (also a xml format but seems only for tracks). Because of this I decided to make a new release for all platforms not only for AmigaOS4 and called it 0.3.
OpenStreetMap viewer for all Amiga systems.
FIX: Invisible texts on OS4
FIX: Go offline if internet is down
FIX: Start folder for load/save dialogs
FIX: Filter for dialogs
FIX: Version informations
ADD: Load tracks from Garmin TCX files
ADD: Set size of middle marker
ADD: Support for geo: URIs
ADD: DblClick to lower panel copies middle position to clipboard as geo: URI
New Version for the Virtual Lazarus crosscompiler, some crashes with mouse events (OnClick, OnMove, OnEnter, OnLeave), Redrawing and resizing problems and of course the biggest change adding support AmigaOS4 (PowerPC). I removed some not needed files and installations, so the download is much smaller this time.
Changes in short:
FIX: Redraw problems on AmigaOS3
FIX: Size problems
FIX: Mouse event crashes
ADD: Support for AmigaOS4
CHG: Striped image from unneeded things, reduced download size
I am thinking how to make an online updater, in principle not so difficult with a script, svn update from repository, recompile/install all compilers/crosscompilers, update lazarus repository, recompile and install lazarus, done.
I created a Release for the Free Pascal Compiler including RTL, Packages and a pre-alpha version of the Lazarus component Library.
For me the AmigaOS 4 implementation is considered as “done”. I will take care only that changes in FPC does not break the OS4 port and also the LCL changes not break OS4 compilation.
As promised, I cared about drawing with alpha channel on m68k Amiga. Little bit background. When I make a StretchDraw() the raw data is scaled directly in pascal (to keep the alpha channel) via a nearest neighbor routine. And exactly there I need to touch every pixel to scale it, of course a good position to also care about the alpha channel. For speed optimization the special cases 0 and 255 alpha channel are handled separately. And its not so slow as I thought, so I let it inside.
Amiga m68k with alpha channel drawing (left) and as comparison on AmigaOS4 (right)
Besides this I worked more on size calculations especially on MorphOS, still not completely sure how it should be. An additional problem appeared in the OS4 LCL. The size calculation as done before crashes, because it reads the Width/Height from the the MUI object which seems to be forbidden inside the Layout. If think about it’s not very surprising because the layout is called before the window is opened and to get the right size the Layout must be done. So I had to rewrite the section with AROS in mind of course. Seems it works now (again? I hope). With this changes the EdiSyn now also work on OS4.
Working on the image drawing in LCL, not only for OS4 but for all, the problem is that it needs (semi-)transparent drawing. I started with Picasso96 for OS4 but it seems it still has no Alpha channel support. But luckily it also supports the cybergraphics compatible layer with the alpha channel support. So I changed everything in LCL back to cybergraphics, which is even much better, because now it’s the same for all platforms.
On this occasion the problem on MorphOS came to light. I always had the problem that at MorphOS the images are not shown. I thought it is a problem with resources but now it became clear, it’s the drawing the globalalpha value was too small.
Sadly the cybergraphics on classic AmigaOS does not support this Alphachannel, thats the reason the image has the black border in the screenshot. Maybe one could try to make a simple Alpha (0/1) by hand, which will be very slow I guess.
Besides I found a big Event problem. Got this as bug report already, it was just a not initialized variable. A little bit more testing and I will make a release and also create a Virtual Lazarus again with all 4 platforms :-).
The AmigaOS4 LCL worked somehow but it did not draw anything on the LCL drawing procedure. Added some debug output and it seems everything works as expected. Finally I got it to work. So now the ColorIt game also work, maybe someone want to try.