Hallo,
ich möchte in meiner Anwendung verschiedenfarbige Buttons benutzen.
Da es aber nicht wenige sind, möchte ich aus Speicherplatz- und Aufwandsgründen nicht für jeden Button 3 Bilder erstellen (on,off,over).
Stattdessen habe ich mir gedacht 3 Rahmen mit jeweils halbtransparenten Schatten zu erstellen.
Die Buttonrahmen haben jeweils eine Größe von 256*64 Pixeln, sind im TGA-Format gespeichert und werden im Programm später an die Bildschirmgröße angepasst.
Nun erstelle ich beim Starten der Anwendung verschiedenfarbige, rechteckige Buttonhintergründe und möchte, dass diese jeweils in den Rahmen eingefügt werden.
Das Einfügen des Hintergrundes versuche ich mit 'bmap_blit'. Das Problem ist, dass 'bmap_blit' bei mir keine Transparenz beachtet. Wenn an der Stelle (x,y) z.B. ein
roter Pixel ist und jetzt ein anderer Pixel dort hin soll, welcher aber den Alphawert Null besitzt, wird der rote Pixel einfach mit dem Neuen überschrieben.
Ich möchte aber, dass die Pixel je nach Transparenz 'überlagert' werden, wenn ihr versteht, was ich damit meine.
Gibt es eine Funktion die das übernehmen kann oder muss ich hier selbst eine schreiben ?

Hier ist mal ein kurzer Quellcode zu meinem Problem:
Code:
// bmapEmpty = leerer Hintergrund der Größe 256*64 (Alpha = 0)
// bmapRect = rechteckiger, farbiger Hintergrund, welcher die Größe 224*33 (Alpha = 100) besitzt
              und mittig in bmapEmpty plaziert wird
// BnormalO = Buttonrahmen für das "CursorOver"-Bitmap (Alpha zwischen 0 und 100)

bmapEmpty = bmap_createblack(256,64,32);   bmap_fill(bmapEmpty,vector(0,0,0),0);
bmapRect  = bmap_createblack(224,33,32);   bmap_fill(bmapRect,vector(0,0,255),100);
bmap_blit(bmapEmpty,bmapRect,vector(18,15,0),NULL);
	
bmap_blit(bmapEmpty,bmapBnormalO,NULL,NULL);   // setze den Rahmen über den Hintergrund



Danke im Voraus laugh