Zu blöd für pixmaps?
Übersicht

mawBetreff: Zu blöd für pixmaps? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Solang du die Pixmap nicht zeichnest wirst du wohl kaum was sehen. | ||
maw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also mit drawpixmap o.ä.? Bin gerade in der Schule, kanns nicht ausprobieren...
Marc. |
||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach du hast ja das rgb-Pixmapformat genommen.
Hab da jetzt nicht drauf geachtet. Hast recht ![]() Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
maw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OK, dann ist plot also die schnellste Methode, einzelne Pixel zu verändern?
Marc. |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum willst du überhaupt einzelne Pixel verändern? | ||
maw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Na gut, dann werd ich irgendwann mal OpenGL lernen müssen... Danke soweit.
Marc. |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was hat das mit OpenGL zu tun? Polygone kannste auch mit DrawPoly zeichnen. | ||
maw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group