* * *

Author Topic: What's the state of Graphics32 in a cross-platform sense these days?  (Read 2733 times)

hayanninja

  • New member
  • *
  • Posts: 45
I remember at one point, it was mentioned as "works well on Windows and Mac, buggy on Linux, doesn't work at all on anything else".

Is this still the case, or has it gotten better? In particular - what's the support like for iOS and Android?

Aside from the lack of hardware acceleration, Graphics32 is pretty much the perfect graphics library for me; however, I'm hoping to eventually release my project on all three major desktop OSes and both major mobile OSes. My project has an abstraction layer between the program code and Graphics32 (which it's currently based around), so moving to another library, or even using different ones on different platforms, is not out of the question. I don't really need pixel-precise operations as such; I just need to be able to (a) put together a larger image (like a map or in-game text box) from segments of other bitmaps, and (b) draw sprites, with alpha blending. I plan on supporting resolutions at least as high as 1080p (possibly even 4K), so hardware acceleration would be great, but I'm not using a huge amount of flashy effects so can probably live without it if need be.

So - is Graphics32 suitable for this kind of cross-platform use these days, or should I start looking at alternatives? (At least for the game itself; the editing tools only need to run on Windows and Mac so I can stick with Graphics32 for them.)

Handoko

  • Hero Member
  • *****
  • Posts: 2606
  • My goal: build my own game engine using Lazarus
Re: What's the state of Graphics32 in a cross-platform sense these days?
« Reply #1 on: January 13, 2018, 08:24:03 am »
I haven't tried Graphics32. But on its official website, it seems still being actively maintained. Last update was 6 Dec 2017. You can try to contact the developer for more information.

Alternatively, maybe you can try BGRABitmap. It seems powerful enough for most graphics usages and the developers/contributors are active on this forum.

http://wiki.freepascal.org/Graphics_libraries

Thaddy

  • Hero Member
  • *****
  • Posts: 6896
Re: What's the state of Graphics32 in a cross-platform sense these days?
« Reply #2 on: January 13, 2018, 11:25:12 am »
Note it is cross-platform only for Intel/Amd, unlike BGRABitmap etc.
Ada's daddy wrote this:"Fools are my theme, let satire be my song."

Julius7

  • New member
  • *
  • Posts: 19
Re: What's the state of Graphics32 in a cross-platform sense these days?
« Reply #3 on: February 19, 2018, 05:53:13 am »
I see that the https://en.wikipedia.org/wiki/Graphics32 page states last release was 5 yrs ago,
 however Wikipedia could be out of date...
This page was last edited on 20 August 2017, at 03:38.

However you may find new information from one of the people on https://stackoverflow.com/questions/tagged/graphics32
 that is only a few months old from their comments

js

avra

  • Hero Member
  • *****
  • Posts: 1366
    • Additional info
Re: What's the state of Graphics32 in a cross-platform sense these days?
« Reply #4 on: February 19, 2018, 10:04:57 am »
I remember at one point, it was mentioned as "works well on Windows and Mac, buggy on Linux, doesn't work at all on anything else". Is this still the case, or has it gotten better? In particular - what's the support like for iOS and Android?"

I don't know if iOS and Android are supported, but according to this package installation matrix, Graphics32 works on  Win/Lin/BSD/Sol/Mac/GTK2/QT4/QT5/x86/x86_64/Arm/Arm64:
http://www.pilotlogic.com/sitejoom/index.php/wiki?id=198
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

x2nie

  • Sr. Member
  • ****
  • Posts: 478
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
I am a big fan of Graphics32 library.


The official Graphics32 is moved github: https://github.com/graphics32
and the documentation is https://graphics32.github.io/Docs/_Body.htm


I think the last state is ver 2.0 which is a rework specially in merging GR32 with VPR (Advanced Polygon things).
Another different with GR32 ver 1.9x (and below) is that in ver 1.9.x any calculation is suggested in integer (rather than floating point) which was far faster in that day;
While in ver 2.0 (svn-trunk/ git-master) the suggested calculation is in floating point (rather than TFixed) because the use of direct lowlevel x86/SSE/SSE2/SSE3 instruction which is now faster then.


I never try the GR32 version at CodeTypon/pilotlogic, but I assumed that (as usually) CodeTypon may modify some lines of code (plus bugfixes) any components/library they used for better "plug and play" softwares.


As for your question,
IMHO you can use GR32, the layers+sprites is very fast rendered especially when your layers are configured properly. That is because only few part of screen buffer repainted. Which the faature I didn't found in alternative library (a.f.a.i.k)
see MicroTiles for detail. https://graphics32.github.io/Docs/Additional%20Topics/Repaint%20Optimization.htm


Af for crossplatform,
for bitmap storage/buffer reason, GR32 depends on native VCL/win32-units for windows; otherwise it depends on widgetset (qt,gtk,customdrawn,cocoa/carbon).
I think it is because GR32 actually works best on 2 area: very fast buffer manipulation & very fast render on actual screen buffer by minimize the area being repainted.


So, again, your GR32 layers project will best depends of how you manage the layers properly.
For example, you know for each layer the "paint" procedure will be called twice, first for calculate the area being updated, and the second chance is for actual rendering.
I assumed you recognize it well yet.


--sorry for my bad/limited english if then--

When you were logged in, you can see attachments.
Lazarus Trunk @ Windows7 64bit, XP 32bit, Debian under VirtualMachine

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus