Surfaces mit Pixmaps?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

FOODy

Betreff: Surfaces mit Pixmaps?

BeitragSo, Mai 07, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo leute!
Ich möchte gern wissen ob man Pixmaps als Surface benutzen kann.
Also das zeichnen auf ein Pixmap und dann auf dem bildschirm darstellen.
Weiß net genau wie ichs erklären soll....

Ich möchte verschiedene "Layer" haben.
Zb. ein Schattensurface.
Die Schattenverläufe sollen nicht auf das eigen "reagieren".
Sprich Schattenfarbe Schwarz und Alpha 1, dann gibts schonma ein einheitsschatten im gesamtsurface.
Wenn ich das Surface aber zeichnen will möcht ich es gerne auf 0.5 (alpha) setzen damit die schatten transparent werden.

Das mit den Schatten ist ein nicht so dolles beispiel.
Aber wenn ich jeden Schatten einzeln zeichnen würde, würde es so aussehen:
user posted image

Ich möcht es aber so:
user posted image


Achja.
Das mit den Schatten ist nur ein BEISPIEL ;D


Freu mich wenn mir jemand helfen würde. Very Happy


FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Dreamora

BeitragSo, Mai 07, 2006 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Davon ist abzuraten.
Da Pixmap garkeine Surface sind, sondern Bitdaten im RAM müssen diese vor dem Zeichnen erst in Bilder verwandelt werden müssen. (natürlich nicht zwingend, aber Pixmaps sind 10x langsamer als Images und unterstützen keine der Zeichenbefehle).


Für Schatten könntest du auch Images zeichen mit Solidblend und das dann grabben, zb.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

FOODy

BeitragSo, Mai 07, 2006 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibts keine andere Möglichkeit?
Oder kann man das nur mit Pixmaps machen oO

Welche Lösung wäre die beste für mein problem?

EDIT:
@Grab:
Wie soll das den gehen?
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Dreamora

BeitragSo, Mai 07, 2006 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
wie gesagt.
Alle Schattendaten mit Solidblend zeichnen, davon ein Image grabben und das dann als "Surface" oder "Layer" handhaben den du mit alphablend zeichnest
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

FOODy

BeitragMo, Mai 08, 2006 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja danke Very Happy
Das hab ich gesucht!
Daaaaaaaannnkkkeeeeeeeee. Very HappyVery HappyVery Happy

Nur schade das es so langsam ist :-/

Code: [AUSKLAPPEN]
Graphics 800,600,0

Local mil:Int = MilliSecs()

SetMaskColor 0,244,0

Local image:TImage = CreateImage(800,600,1,DYNAMICIMAGE|MASKEDIMAGE)
Update(image)

Print " "+(MilliSecs()-mil)+"ms"

While Not KeyDown(KEY_ESCAPE)
   SetClsColor 255,255,255
   SetColor 255,255,255
   Cls
      SetBlend ALPHABLEND
      SetAlpha 0.5
      DrawImage image,0,0
   Flip
   'Update(image) 'Viel zu langsam....
Wend


Function Update(image:TImage)
   SetClsColor 0,244,0
   Cls
   SetBlend SOLIDBLEND
   SetColor 0,0,0
   DrawOval 50,50,200,200
   DrawOval 75,75,200,200
   DrawOval 175,225,200,300
   DrawOval MouseX(),MouseY(),200,200
   GrabImage image,0,0
EndFunction


Den hab ich mal schnell geschrieben, also noch nicht viel dabei gedacht ^^
Ist es so am besten anzuwenden?
Oder gibts schnellere möglichkeit...
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Dreamora

BeitragMo, Mai 08, 2006 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Am besten aktualisierst du es nur, wenn es nötig ist. Weil häufig ändert sich nicht soviel, dass es jedes Frame notwendig würde.

Die einzig andere Möglichkeit wäre Indiepaths render2texture modul, nur existiert das leider aktuell net ... Damit kann man direkt in ein Image reinreindern und dieses in den backbuffer packen und zwar mit so einem tempo als ob du es direkt in den backbuffer gezeichnet hättest.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

FOODy

BeitragMo, Mai 08, 2006 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
oha o_O
Wann kommt den das modul?
Steht das schon fest?

Sry für die vielen fragen. ^^"

@Aktualisieren:
Jo, das stimmt.
Ich versuch ma mit abfrage.
Ma schaun wie "schnell" es dann sein wird :-/
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

Dreamora

BeitragMo, Mai 08, 2006 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das weiss niemand.

Er hat es für Version 1.16 an Leute die ihn angemailt haben gegeben. Nur hat er aktuell keine Zeit mehr und insofern gibts das Modul net ... wenns wieder kommt, dann nicht mehr umsonst denke ich (dann werden wahrscheinlich alle seine Module zusammengepackt und verkauft)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group