Zu blöd für pixmaps?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

maw

Betreff: Zu blöd für pixmaps?

BeitragDi, Mai 22, 2007 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ein Problem mit pixmaps, das ich einfach nicht verstehe... Die Suche hier hat mir nicht geholfen.

Mein erster codeversuch mit pixmaps, ein einfaches weißes rechteck mit rotem Punkt:

Code: [AUSKLAPPEN]

graphics 640,480
local pix:pixmap=createpixmap(100,100,pf_rgb888,$FFFFFF)
for local i:int=45 to 55
for local j:int=45 to 55
writepixel(pix,i,j,FF0000)
next
next
flip
waitkey
'zum überprüfen
print readpixel(pix,45,45)
end


Es passiert genau gar nichts. Der Bildschirm ist schwarz, und ich bekomme die Ausgabe "0".

Bin ich zu blöd oder was?


Dankeschön,

Marc.

BtbN

BeitragDi, Mai 22, 2007 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Solang du die Pixmap nicht zeichnest wirst du wohl kaum was sehen.
 

maw

BeitragDi, Mai 22, 2007 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Also mit drawpixmap o.ä.? Bin gerade in der Schule, kanns nicht ausprobieren...

Marc.

FOODy

BeitragDi, Mai 22, 2007 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
In mehr oder weniger korrektem BlitzMax würd es so lauten:

Code: [AUSKLAPPEN]
Graphics 640,480

Local pix:TPixmap=CreatePixmap(100,100,pf_rgb888)
Cls
For Local i:Int=0 Until pix.width
   For Local j:Int=0 Until pix.height
      If i>=45 And i<=55 And j>=45 And j<=55
         WritePixel(pix,i,j,$FFFF0000)
      Else
         WritePixel(pix,i,j,$FFFFFFFF)
      EndIf
   Next
Next

DrawPixmap pix,32,32

Flip
WaitKey
'zum überprüfen
Print ReadPixel(pix,45,45)
End 
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

maw

BeitragDi, Mai 22, 2007 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, ich werd es nachher mal probieren...

@ floody:

Aber hast Du Dich vielleicht vertan bei den Hex-Werten, die brauchen ohne Alpha doch nur sechs Stellen, oder?

Marc.

FOODy

BeitragDi, Mai 22, 2007 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach du hast ja das rgb-Pixmapformat genommen.
Hab da jetzt nicht drauf geachtet.

Hast recht Very Happy


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

maw

BeitragMi, Mai 23, 2007 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
So, es hat alles geklappt, vielen Dank. Ich bin aber ein bisschen enttäuscht ob der Geschwindigkeit - ich wollte was mit writepixel machen, weil es doch angeblich schneller ist als plot... scheint mir aber nicht so, oder ich kann es nicht effizient nutzen.

Marc.

BtbN

BeitragMi, Mai 23, 2007 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das gillt nur für BlitzBasic.
Pixmaps sind in BMax lahm, weil sie im Ram lagern und bei jedem aufruf von DrawPixmap neu hochgeladen werden müssen.
 

maw

BeitragDo, Mai 24, 2007 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, dann ist plot also die schnellste Methode, einzelne Pixel zu verändern?

Marc.

BtbN

BeitragDo, Mai 24, 2007 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum willst du überhaupt einzelne Pixel verändern?
 

maw

BeitragDo, Mai 24, 2007 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich würd mich halt gern selbst mal an kleinen Effekten versuchen, Flammen, abstrakte organische Muster, flüssiges Zeug o.ä. ... nur so aus Spaß. Einfach mal gucken, was man selbst so hinkriegt. Ist doch nicht soo ungewöhnlich, oder..?

Marc.

BtbN

BeitragDo, Mai 24, 2007 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Da würd ich nicht auf Pixel-Ebene gehen, viel zu ineffizient bei einer 3D-Engine wie OpenGL oder Direct3D, arbeite lieber mit Polygonen. Zwar auch nicht das schnellste, aber schneller.
 

maw

BeitragSa, Mai 26, 2007 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Na gut, dann werd ich irgendwann mal OpenGL lernen müssen... Danke soweit.

Marc.

BtbN

BeitragSa, Mai 26, 2007 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Was hat das mit OpenGL zu tun? Polygone kannste auch mit DrawPoly zeichnen.
 

maw

BeitragSo, Mai 27, 2007 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh! Wusste ich nicht. Dachte, drawimage, -rect, -line und -oval wären die einzigen Zeichenbefehle. Vielleicht sollte ich mal an meiner Art zu lernen arbeiten... bin da ziemlich inkonsequent. Gibt es auch eine Möglichkeit, innerhalb dieser Polygone Farbverläufe zu zeichnen? Das geht ja zB. mit OpenGL etc. Und wo wir schon dabei sind: gibt es eigentlich eine z-Achse "eingebaut" (vielleicht schon mit perspektivischer Verkürzung etc.)? Oder muss man sowas erst selbst machen? Sorry für die Fragen-Flut, werd mich auch selbst noch mal umschauen...

Marc.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group