Also ob SDL ein Ersatz ist kann ich dir nicht sagen. Allerdings hat SDL durchaus die möglichkeit Hardwaresurfaces zu benutzen. Was durchaus schneller sein kann als Lazarus. Wenn die so etwas nicht benutzen. Aber so genau kenne ich mich damit dann auch nicht aus. SDL müsste aber die einzelnen Surfaces blenden können. Also halbtransparente Pixel. Das erfordert aber einen zusätzlichen Alphakanal innerhalb des Bildes.
Und das was ich meinte ist folgendes. Nehmen wir man an dein Polygon ist in wirklich ein Kreis innerhalb deines Bildes. Der Kreis ist weiß der Rest ist Pink. Dann könntest du unter Delphi hergehen und sagen alles was Pink ist möchte ich jetzt nicht zeichnen. Wenn du dann sagst Draw wird nur noch der Kreis gezeichnet und der Rest ignoriert. Wenn die TBitmaps von Lazarus die Eigenschaften
TransparentColor und
Transparent unterstützen stehen die Chancen gut das so etwas geht. Die können auch anders heißen.
So etwas wurde sicherlich auch in diesem Spiel gemacht. Ist eigentlich auch die übliche Technik bei so etwas. Ich denke mal Paint wird sich solche eine Maske intern auch erstellen. Wenn du aber eine andere Maske haben wolltest bräuchtest du ein anderes Bild, da eben andere Pixel anders gefärbt sein müssten.
In
OpenGL wird so etwas ausschließlich über einen Alphakanal gelöst. Der enthält dann Informationen über die Sichtbarkeit der einzelnen Pixel. Je nachdem wie man diesen Auswertet werden sie halbtranzparent oder Digital (an oder aus). Es wäre zwar auch technisch möglich anhand einer Punktedefinition einen polygonähnlichen Bereich eines Bildes zu zeichnen aber so etwas ist eher sehr unüblich. Da ist es wesentlich einfacher ein Rechteck zu zeichnen und dann die sichtbaren Pixel anhand des Alphakanals bestimmen zu lassen.