Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
image.include : image_Create{}
#2
Die image.include ist nicht geeignet, um für ein Grafikprogram den Puffer bereits zu stellen. Du solltest ein eigenes Puffer System schreiben. Ursprünglich war das mal zwar das Ziel, aber die AmigaOS API ist historisch bedingt zu verkorkst als dass du damit glücklich werden würdest. Ist auch nicht weiter schwer:
[ab3]Newtype.ARGB
A.b,R.b,G.b,B.b
End Newtype

Function.l tnc_CreateBuffer{}

*buff.ARGB = AllocVec_(#MEMF_ANY,,AppContext\projectA\width,AppContext\projectA\height*sizeof.ARGB)
; *buff irgendwo hin retten, am besten in das Project
Function Return *buff><Null

End Function[/ab3]

Statt Fancy Blit programmierst du dir das mixen selbst. Evtl. nehme ich das in die ab3support.library auf, wenn du das nutzen würdest. Wäre dann auch später nativ auf PPC.

Zu deiner eigentlichen Frage:
Du kannst nicht transparent Blitten weil dein Bild keinen Alpha Kanal hat.

Du wirst nicht drumherum kommen ALLE Zeichenfunktionen selbst zu schreiben. Du kannst AmigaOS API *NICHT* dafür benutzen, da sie kein Konzept von Alpha Kanal hat. Du kannst dir ab und zu funktionalität "ausborgen", z.B. für Font Rendering, wirst aber alles Pixelweise durchkneten müssen um den gewünschten Effekt zu haben.
Deshalb rate ich dir auch von dem Gebrauch einer AmigaOS Bitmap aus Puffer ab. Du kannst dann keinerlei RastPort Funktionen mehr benutzen (RectFill, Line, BltBmapRastPort) etc. aber das sind falsche Freunde die dir am Ende nicht weiter helfen.

Möglicherweise möchstest du auch von 8bit Farbkanälen Abstand nehmen, und deshalb einen Abstraktions Layer zwischen schieben, sodass du später auch 16Bit oder Float Farbkanäle unterstützen kannst.

Ich wäre da gerne bereit auch zu helfen, aber geht nicht ohne Zugriff auf den Source.
Zitieren


Nachrichten in diesem Thema

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste