| |
|
|
- Página 1 - |
|
| Wenn Yo hier en el Programa mein linkes Opengl-Bild drehe (Taste Q/E), se en el rechten Ventana el Bild como normales Pic dargestellt voluntad. Lo funktioniert soweit bajo el normalen Profano, con Profano2cpp no Das Problema, es si yo anfange a drehen, Luego se el rechte Bild erneuert, aber el Fläche es blanco, lo son no Daten drin
Muss en Profano2cpp irgendwie el Speicher fürs Bild usw anders reserviert voluntad? Welche Fehler Yo gemacht. Unten es el gesamte Programa.
Im Anhang es una Zip auch con una EXE de Profano y una EXE de Profano2cpp KompilierenMarcaSeparación $H Windows.ph
DEF rgb_umwandlung(2) ! "bmptex.dll","bmptex"
declare x1!,y1!,dx!,dy!,winkel!,y&,z%,a&,test%
declare bild_auto_h&,bild_umw_h&
declare bmi#,bildxy# ,ogl_rgb#
dim ogl_rgb#,128*128*4+1032
var texid%=0
var ende%=1
Window 20,20-600,400
Cls @RGB(220,220,220)
var hWin& = @Create("text", %hWnd, "Test1", 10, 10, 128,128)
var hWin1& = @Create("text", %hWnd, "Test1", 180, 10, 250,250)
oGL("Init", hwin&, 0,0, 0, 0)
oGL("PosMode", 1)
ogl("glReadBuffer",~GL_Front)
bild_auto_h& = Create("hPic", -1,"leer.bmp") Bildcontainer für "setDIBits"
var tex.auto%=erzeugetex("auto.bmp")
setTimer 18
drawglscene
drawglscene
oglzubmp
WHILE ende%
WaitInput
if isKey(81)
winkel!=winkel!+1.0
drawglscene
oglzubmp()
endif
if isKey(69)
winkel!=winkel!-1.0
drawglscene
oglzubmp()
endif
ENDWHILE
killTimer
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)
mcls 128,128
startpaint -1
drawpic bild_auto_h&,0,0,-1
endpaint
startpaint hWin1&
mcopybmp 0,0-127,127>50,50,-1
endpaint
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& = 128
.biHeight& = 128
.biPlanes% = 1
.biBitCount% = 32
.biCompression& = &BI_RGB
.biSizeImage& = ((.biWidth& * .biBitCount% 8 - 1) | 3 + 1) * abs(.biHeight&)
endwith
endproc
proc erzeugetex
parameters namebild$
bitmap_header()
bild_umw_h& = Create("hPic", -1, namebild$)
a&=bmi#.biSizeImage&
dim bildxy#,a&+1032
~GetDIBits(%hdc,bild_umw_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
rgb_umwandlung(bildxy#,a&)
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, 128, 128, ~GL_RGBA, ~GL_UNSIGNED_BYTE, bildxy#)
dispose bildxy#
RETORNO texid%
ENDPROC
mfg peter |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
Sebastian König | Ok, hecho Auf el Profano2Cpp-Homepage [...] hay nun el Testversion 2.0 para Descargar. |
|
|
| |
|
|
|
| ¡Hola, el ging aber Superschnell. El Grafik funktioniert auch como ellos se.
Un tolle Arbeit todos Profano2cpp 2.0
Wenn Yo ahora con BCC55 compiliere, kann Yo entonces como auch "if-auswertungen " ala C++ gemäß BCC55 reinbringen usw oder hay como irgendwelche besondere einschränkungen, el sólo bestimmter Code genommen voluntad darf?
Ein Fehler? Der Compiler beanstandet el "PVAR", el él el no sabe, si yo I más gehe, stürzt él de. KompilierenMarcaSeparación |
|
|
|
|
Jörg Sellmeyer | Ob el con el Inline CPP va, kann Yo no sagen aber ¿Quieres decir que doch sicher "EndProc" y no "end proc", oder? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 12.09.2008 ▲ |
|
|
|
|
| oGL("scale", scale_1!, scale_1!,scale_1!)
Dieser Befehl se beanstandet, porque el falsche Anzahl de Parametern transferencia se. En Scale voluntad aber 3 Parámetro transferencia. (war en Vers 1.6c no)
mfg peter |
|
|
| |
|
|
|
| Ein Parámetro para ogl.Scale! (en el Falle bin Yo auch ya getappt) |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
| "end proc"
Natürlich zusammen. Wurde hier falso reinkopiert. Ist en mi beanstandeten Programa correcto.
mfg |
|
|
| |
|
|
|
| procedure glScaled(x, y, z: TGLdouble);
Auszug de Opengl-Delphi .
mfg peter |
|
|
| |
|
|
|
| Falsche Hilfedatei, ogl("scale",x!) es XProfan - no Delphi. Hier se zudem el API genutzt, dass kannst Usted con XProfan bastante simplemente: ogl("glScaled",... |
|
|
| |
|
|
|
| Also entonces debería el veces en Xprofan10 /11 el Täglichen original Befehl adaptado voluntad.
mfg peter |
|
|
| |
|
|
|
| Lo son no Abweichungen, lo son 2 diferente Características y Idiomas. Den Sinn detrás de él, ogl.scale en 1 Parámetro a beschränken, Yo aber damals ya No se ha encontrado. Roland podría auch 3 Parámetro ermöglichen. |
|
|
| |
|
|
|
Sebastian König | ¡Hola Peter,
el Anweisung para el Inline-C++ debería una Kommentar ser: KompilierenMarcaSeparación Von Profano2Cpp de hay para el código eigentlich no direkte Einschränkung - Usted puede simplemente veces ausprobieren, qué funktioniert y qué no.
MfG
Sebastian |
|
|
| |
|
|
|
| Ah...y yo pensamiento el dieses "<INLINE_CPP>" una Befehl war.
danke.
mfg peter |
|
|
| |
|
|