Hallo, guten Tag.
Das Ogl-Fenster erscheint erst wenn ich die Grafik darin kurz drehe und das andere Grafikfenster erscheint erst wenn ich mit der Maus
das Window kurz verschiebe.
Woran liegt das bitte.
Danke.
Gruss
Code
$MAKE CLE
$H Windows.ph
declare hWin&,hintergrpic&,vordergrpic&
declare ende&,winkel!,groesse&,dib&,array&
declare bild_auto&,auto1&,auto11&,pi180!
declare bmi#,ogl_rgb#
declare x1!,y1!,dx!,dy!
Declare ClassName$
Def &GL_BGR $80E0
DEF CreateDIB(2) !"dib","CreateDIB"
DEF FreeDIB(1) !"dib","FreeDIB"
DEF DrawDIB(4) !"dib","DrawDIB"
DEF CloneDIB(1) !"dib","CloneDIB"
dib&=usedll("dib.dll")
hintergrpic& = create("hNewPic", 400,400,rgb(255,255,0))
vordergrpic& = create("hNewPic", 400,400,rgb(255,255,0))
bild_auto& = create("hNewPic", 128,128,rgb(255,255,0))
Pi180!=0.0174532925199433
ende&=1
array&=CreateDIB(128,128)
groesse&=128*128*4
dim ogl_rgb#,groesse&
Window 20,20-800,600
Cls RGB(220,220,220)
startpaint hintergrpic&
UsePen 0,1,Rgb(0,255,0)
usebrush 1,rgb(0,255,0)
ellipse 150,150-250,250
endpaint
ClassName$ = "Fenster"
External("User32", "GetClassNameA", %HWnd, ClassName$, 64)
hWin& = Control(Trim$(ClassName$), "", $50000000, 10, 10, 128, 128, %HWnd, 0, %HInstance)
oGL("Init",hwin&,0,0,0,0)
oGL("PosMode", 1)
auto1&=oGL("LoadTextureBMP","d:/xprofan/pebi-xpia/data/auto1.bmp",1)
auto11&=oGL("LoadTextureBMP","d:/xprofan/pebi-xpia/data/auto11.bmp",1)
OGL("Clear")
OGL("texture",auto1&,1)
drawglscene
zeichne
WHILE ende&
if isKey(89)
OGL("texture",auto1&,1)
drawglscene
zeichne
ElseIf Iskey(65)
OGL("texture",auto11&,1)
drawglscene
zeichne
EndIf
if isKey(87)
y1!=Sin(-winkel!*Pi180!)*0.3
x1!=Cos(-winkel!*Pi180!)*0.3
dx!=dx!-x1!
dy!=dy!-y1!
zeichne
Elseif isKey(83)
y1!=Sin(-winkel!*Pi180!)*0.3
x1!=Cos(-winkel!*Pi180!)*0.3
dx!=dx!+x1!
dy!=dy!+y1!
zeichne
endif
if isKey(81)
winkel!=winkel!+0.5
drawglscene
zeichne
Elseif isKey(69)
winkel!=winkel!-0.5
drawglscene
zeichne
EndIf
EndWhile
FreeDIB(array&)
end
Proc zeichne
StartPaint vordergrpic&
DrawPic hintergrpic&,0,0;0
drawpic bild_auto&,50+dx!,50+dy!;-1
EndPaint
DrawPic vordergrpic&, 300,50;0
EndProc
proc drawglscene
OGL("quad",0.5,0.5)
OGL("origin",0,0,-1.2)
OGL("rotate",0,0,winkel!)
OGL("show")
ogl("glReadPixels",0,0,128,128,&GL_BGR, ~GL_UNSIGNED_BYTE,ogl_rgb#)
~setDIBits(%hdc,bild_auto&,0,128,ogl_rgb#,array&,0)
endproc
Alles anzeigen