Deutsch
Wünsche und Anregungen

ogl.show -> savebmp

 
SaveBmp speichert nicht die OGL-Ausgabe. (Bestimmt nurn DC-Problem) [...] 
KompilierenMarkierenSeparieren
 {$cleq}
cls
ogl(init,%hwnd,0.0,0.0,0.0,1)
oGL(Clear)
--Cam:
oGL(Origin, 0, 0, -15)
oGL(Rotate, 10, 10, 0)
oGL(Move, 0, -1, 0)
--Objects:
ogl(Pop)
ogl(Push)
ogl(Move,0,-0.5,-50)
ogl(rotate,90,0,0)
ogl(color,3,3,3,1)
ogl(quad,100,100)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(color,1,0,0,1)
ogl(cuboid,3,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,2,0,0)
ogl(color,4,1,0,1)
ogl(cuboid,0.7,0.8,0.8)
ogl(Pop)
ogl(Push)
ogl(Move,2.32,0.3,0)
ogl(color,0,0,0,0)
ogl(cuboid,0.1,0.4,0.81)
ogl(Pop)
ogl(Push)
ogl(Move,2.32,0.04,0)
ogl(color,0,0,1,0)
ogl(cuboid,0.1,0.2,0.81)
ogl(Pop)
ogl(Push)
ogl(Move,0.4,-0.12,0)
ogl(color,1,0,0,1)
ogl(cuboid,3.8,0.1,1)
ogl(Pop)
ogl(Push)
ogl(Move,1.6,-0.51,-0.51)
ogl(disk,0.06,0.3,30)
ogl(Pop)
ogl(Push)
ogl(Move,1.6,-0.51,0.51)
ogl(disk,0.06,0.3,30)
ogl(Pop)
ogl(Push)
ogl(Move,-1.1,-0.51,0.51)
ogl(disk,0.06,0.3,30)
ogl(Pop)
ogl(Push)
ogl(Move,-1.1,-0.51,-0.51)
ogl(disk,0.06,0.3,30)
ogl(Pop)
ogl(Push)
ogl(Move,1.6,-0.2,0.5)
ogl(color,0,0,1,5)
ogl(rotate,-90,0,0)
ogl(tube,0.03,0.03,1,9)
ogl(Pop)
ogl(Push)
ogl(Move,-1.1,-0.2,0.5)
ogl(color,0,0,1,5)
ogl(rotate,-90,0,0)
ogl(tube,0.03,0.03,1,9)
ogl(Pop)
ogl(Push)
ogl(Move,2.34,0.06,0.25)
ogl(sphere,0.08,50,50)
ogl(Pop)
ogl(Push)
ogl(Move,2.34,0.06,-0.25)
ogl(sphere,0.08,50,50)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,0,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,15,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,30,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,45,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,60,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,75,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,90,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,105,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,120,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,135,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,150,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,165,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,180,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,195,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,210,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,225,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,240,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,255,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,270,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,285,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,300,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,315,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,330,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
ogl(Pop)
ogl(Push)
ogl(Move,0,0,0)
ogl(rotate,345,0,0)
ogl(move,0,10,0)
ogl(cuboid,1,1,1)
--
ogl(show)
savebmp c:\test.bmp,0,0 - width(%hwnd),height(%hwnd)
waitinput
cls
loadbmp c:\test.bmp,0,0;0
waitinput
end

Workaround:
KompilierenMarkierenSeparieren
Nachteil vom Workaround: Die Zwischenablage wird gelöscht. In diesem Zusammenhang: Es fehlt eine Proc clipsavebmp. (Clipboardbild in Datei speichern)
 
24.08.2007  
 




RGH
OpenGL benutz einen eigenen, speziellen DeviceContext. Daher können Befehle wie SaveBMP nicht mit dem OpenGL-Bild funktionieren.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.08.2007  
 




Frank
Abbing
Wäre aber sicher einfach den SpezialDC in einen normalen zu kopieren/konvertieren und dann zu speichern.
 
24.08.2007  
 




RGH
Gewiß, aber es wäre doch ein wenig mit Verwaltungsaufwand verbunden, da das ja nur dann Sinn macht, wenn das Hauptfenster der OpenGL-Bildschirm ist. Dazu müßte ich ein Flag schaffen. Und vermutlich kommt dann der Wunsch auf, daß alle BMP-Befehle die fürs Hauptfenster gelten, in diesem Fall dann auch für den OpenGL-DC gelten ...
... aber man könnte drüber nachenken.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.08.2007  
 




Frank
Abbing
Siehste, wieder Anregungen für 11er Version...
 
25.08.2007  
 



Ein Rolandsches ogl(savebmp würde das Problem schon lösen, oder besser ein ogl(copybmptomem
 
25.08.2007  
 




RGH
iF
Ein Rolandsches ogl(savebmp würde das Problem schon lösen, oder besser ein ogl(copybmptomem


Ja, daran hatte ich zuerst auch gedacht (wäre auch die einfachst zu realisierende Variante), aber irgendwie geht mir das noch nicht weit genug ... aber ich bin schon am Basteln. Mir macht Puzzeln nämlich Spaß ... und wenn es mit Programmcode ist ... ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.08.2007  
 




RGH
Ok, ein erster Schritt ist getan: Wenn das OGL-Fenster das Hauptfenster ist, wird der OGL-DC genommen und iFs obiges Programm funktioniert wie von iF gewünscht, aber das ist noch nicht alles ...

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.08.2007  
 




RGH
Wo ich gerade dabei bin, Schritt 2:

Bislang (ab XProfan 10) Ist es möglich. mit create(hPic,0,&MEMBMP) eine Bitmap zu erzeugen, die die Memorybitmap zum Inhalt hat. Hier habe ich einige weitere integrierte Ressourcennamen hinzugefügt:

&OGLBMP: Ein Abbild des aktuellen OpenGL-Bildes wird als Bitmap erzeugt
&SCRBMP: Ein Abbild des aktuellen Hauptfensters wird als Bitmap erzeugt
&DSKBMP: Ein Abbild des aktuellen Desktops wird als Bitmap erzeugt

Schritt 3:
SavePic Dateiname$, Bitmaphandle&

All diese (und andere) Bitmaps kann man über ihr Bitmaphandle als BMP-Datei abspeichern.

Gruß
Roland

PS: Alle Angaben ohne Gewähr! (Ich überlege z.B. noch, ob ich bei SavePic die Parameter vertauschen soll ...
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
26.08.2007  
 



Bei SavePic  den Dateinamen ganz vorn. Gewohnt von LoadBmp  und SaveBmp .

Statt &SCRBMP besser &HDCBMP, einfach wg. &hdc
 
26.08.2007  
 




RGH
iF
Bei SavePic  den Dateinamen ganz vorn. Gewohnt von LoadBmp  und SaveBmp .


Man könnte auch argumentieren: Das Handle zuerst. Gewohnt von DrawPic ... ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
26.08.2007  
 



Nein das ist kein Argument da Drawpic keinen Dateinamen benötigt. Aber ich bin sicher Du hast Dich längst dafür entschieden den Dateinamen als ersten Parameter zu belegen, so wie es auch sein soll[te].
 
26.08.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.209 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang27.09.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie