| |
|
|
| qui Befehl &OGLBMP pour une OGL-Bild ärgert une entier joli. dans Profan2Cpp ist il pas durchführbar. et sur einigen Systemen avec Vue ärgert il aussi.
j'ai dans mon Programme une gute variante: proc oglzubmp ogl(glReadPixels,0,0,128,128,~GL_BGRA,~GL_UNSIGNED_BYTE,ogl_rgb#) ~setDIBits(%hdc,bild_auto_h&,0,128,ogl_rgb#,bmi#,0) endproc
Womit on qui situation et qui grösse aus einem Opengl-la fenêtre fischen peux. en supplément braucht on mais données aus dem Bitmapheader.
peut-être könntest du Roland den irgendwie einbauen.
mfg KompilierenMarqueSéparation $H Windows.ph
DEF rgb_umwandlung(2) ! bmptex.dll,bmptex
declare x1!,y1!,dx!,dy!,winkel!,y&,z%,groesse%
declare hWin&
declare width%,height%,texid%,ende%
declare bild_auto_h&,bild_umw_h&
declare bmi#,bildxy# ,ogl_rgb#
groesse%=128*128*4
dim bildxy#,groesse%
dim ogl_rgb#,groesse%
ende%=1
Window 20,20-400,200
Cls @RGB(220,220,220)
hWin& = @Create(text, %hWnd, Test1, 10, 10, 128,128)
oGL(Init, hwin&, 0,0, 0, 0)
oGL(PosMode, 1)
bild_auto_h& = Create(hnewPic,128,128,0 )
var tex.auto%=erzeugetex(auto.bmp)
drawglscene
drawglscene
oglzubmp
WHILE ende%
sleep 1
if isKey(81)
winkel!=winkel!+1.0
drawglscene
oglzubmp()
endif
if isKey(69)
winkel!=winkel!-1.0
drawglscene
oglzubmp()
endif
startpaint %hWnd
drawpic bild_auto_h&,200,10,-1
endpaint
ENDWHILE
end
proc oglzubmp
ogl(glReadPixels,0,0,128,128,~GL_BGRA,~GL_UNSIGNED_BYTE,ogl_rgb#)
~setDIBits(%hdc,bild_auto_h&,0,128,ogl_rgb#,bmi#,0)
endproc
proc drawglscene
OGL(Clear)
OGL(origin,0,0,-1.11)
OGL(texture,tex.auto%,1)
OGL(rotate,0,0,winkel!)
OGL(quad,0.5,0.5)
OGL(show)
endproc
proc bitmap_header
def &BI_RGB 0
def &DIB_RGB_COLORS 0
struct BITMAPINFOHEADER =
biSize&, biWidth&, biHeight&, biPlanes%, biBitCount%, biCompression&,
biSizeImage&, biXPelsPerMeter&, biYPelsPerMeter&, biClrUsed&, biClrImportant&
dim bmi#,BITMAPINFOHEADER
clear bmi#
with bmi#
.biSize& = sizeof(bmi#)
.biWidth& = width%
.biHeight& = height%
.biPlanes% = 1
.biBitCount% = 32
.biCompression& = &BI_RGB
.biSizeImage& = ((.biWidth& * .biBitCount% 8 - 1) | 3 + 1) * abs(.biHeight&)
endwith
endproc
proc erzeugetex
parameters namebild$
texid%=0
height%=128
width%=128
dispose bmi#
bitmap_header()
bild_umw_h& = Create(hPic, -1, namebild$)
~GetDIBits(%hdc,bild_umw_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
rgb_umwandlung(bildxy#,groesse%)
OGL(glGenTextures,1,ADDR(texid%))
OGL(glBindTexture,~GL_TEXTURE_2D,texid%)
OGL(glEnable,~GL_ALPHA_TEST)
OGL(glAlphaFunc,~GL_GREATER, 0.1)
OGL(glTexParameteri,~GL_TEXTURE_2D, ~GL_TEXTURE_MAG_FILTER, ~GL_LINEAR)
OGL(glTexParameteri,~GL_TEXTURE_2D, ~GL_TEXTURE_MIN_FILTER, ~GL_LINEAR)
OGL(gluBuild2DMipmaps,~GL_TEXTURE_2D, ~GL_RGBA, height%, width%, ~GL_RGBA, ~GL_UNSIGNED_BYTE, bildxy#)
dispose bildxy#
RETOUR texid%
endproc
|
|
|
| |
|
|
|
Jac de Lad | je serait plutôt dire, dass es Sebastians l'affaire ist, quoi il avec cela pouvoir. dans Profan funktionierts, si es avec dem Workaround dans Prf2CPP allez, ensuite peux Sebastian es oui so umsetzen. Den Befehl juste komplett umzustricken halte je personnelle pour pas sinnvoll. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.03.2009 ▲ |
|
|
|
|
Jac de Lad | Ok, je hab den anderen Fil en supplément seulement maintenant gelesen (&OGLBMP et Vue). je ziehe meinen vorigen Beitrag zurück. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.03.2009 ▲ |
|
|
|
|
| je serait plutôt dire, dass es Sebastians l'affaire ist, quoi il avec cela pouvoir. dans Profan funktionierts, si es avec dem Workaround dans Prf2CPP allez, ensuite peux Sebastian es oui so umsetzen.
le garçon...le garçon....
seulement penser, ensuite écrivons. Habe je dir glaube déjà im anderem Forum dit. Votre Flinte hat einem trop leichten Abzug. |
|
|
| |
|
|
|
Jac de Lad | cela hat rien avec penser trop 1faire, mais avec cela, dass qui Sprechblase den Fil dans dem geschrieben stand, dass es chez Vue grundsätzlich pas funktioniert, seulement pour diesem ouvert wurde et sich cela so naturellement anders darstellt. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 02.03.2009 ▲ |
|
|
|
|
RGH | Jac
Ok, je hab den anderen Fil en supplément seulement maintenant gelesen (&OGLBMP et Vue). je ziehe meinen vorigen Beitrag zurück.
wohin ist qui Fil &OGLBMP et Vue? je trouve ihn pas. Gibt es irgendwo un kleines Beispielprogramm dans reinem XPRofan, dass sous Vue pas korrekt fonctionne?
je sais, dass es sous XProfan 10 quelques Grafiktreiber (bzw. OpenGL-Treiber) donnais, chez denen Créer(hPic,...) avec dem Bildnamen &OGLBMP pas korrekt funktionierte. Betroffen étions quelques calculateur avec OnBoard-Grafiklösungen. Daraufhin habe je XProfan angepasst, um cela Problem trop tourner autour de. Sollte cela Problem sous Vue erneut auftauchen, devrait je regarder, si je là quoi 1faire peux.
Salut Roland
BTW: &OGLBMP ist ne...aucune Befehl (pas einmal une Systemvariable), mais une Konstante pour qui Funktionen Créer(hPic,...) et Créer(hSizedPic,...) |
|
|
| 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 | 02.03.2009 ▲ |
|
|
|
|
Jac de Lad | @Roland: je bezog mich hierauf [...] . suis mir mais pas sûrement, comment et si cela maintenant oui c'est ca funktioniert. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 02.03.2009 ▲ |
|
|
|
|
| Betroffen étions quelques calculateur avec OnBoard-Grafiklösungen. Daraufhin habe je XProfan angepasst, um cela Problem trop tourner autour de.
j'ai Grafik OnBoard. AMILO FUJITSU.
Tritt aussi chez XP sur.
alors de mir aus braucht es pas geändert volonté, j'ai mon Solution trouvé, qui je maintenant chez mir dans chaque Programme comme Ersatz einbaut habe pour &OGLBMP.
Zumal je maintenant aussi den Bildschirmausschnitt vom Openglscreen festlegen peux , welchen je comme BMP avons voudrais.
Windooof ist quelquefois têtu
mfg |
|
|
| |
|
|
|
| &OGLBMP
aussi avec Deleteobject müllt qui grenier voll, si je durable un OGL-Screen 128x128 Pixel einlade beim steuern meines Objektes.
mfg |
|
|
| |
|
|