XIncludeFile "OpenGL.pbi"
Global hWnd.l
OpenWindow(0, 0, 0, 500, 400,"",#PB_Window_SystemMenu )
hWnd = WindowID(0)
pfd.PIXELFORMATDESCRIPTOR
hDC = GetDC_(hWnd)
pfd\nSize = SizeOf(PIXELFORMATDESCRIPTOR)
pfd\nVersion = 1
pfd\dwFlags = #PFD_SUPPORT_OPENGL | #PFD_DOUBLEBUFFER | #PFD_DRAW_TO_WINDOW
pfd\iLayerType = #PFD_MAIN_PLANE
pfd\iPixelType = #PFD_TYPE_RGBA
pfd\cColorBits = 24
pfd\cDepthBits = 32
pixformat = ChoosePixelFormat_(hDC, pfd)
SetPixelFormat_(hDC, pixformat, pfd)
hrc = wglCreateContext_(hDC)
wglMakeCurrent_(hDC, hrc)
glClearColor_(0.0, 0.0, 1.0, 1.0)
Repeat
glClear_(#GL_COLOR_BUFFER_BIT)
SwapBuffers_(hDC)
Event = WindowEvent()
If Event = #PB_Event_CloseWindow
End
ElseIf Event = 0
Else
Delay(5)
EndIf
ForEver
Screen öffnen, und anstelle von WindowID() ScreenID() schreiben
glut und glu für purebasic
-
- Beiträge: 557
- Registriert: 29.11.2005 15:05
hallo, irgendwie pack ich das nicht.
die fehlermeldung:
"initsprite() must be called before use 'sprite'commands
erscheint.
ich habe unten dieses eigenständige programm für opengl , es lädt ein bild ein.
kannst du mir mal einen button anordnen , und das mein programm als openglfenster links oder rechts daneben erscheint.
das eigenständige programm :
bin dir sehr dankbar, für deine vorherige hilfe.
vielleicht klappt es. danke
mfg
die fehlermeldung:
"initsprite() must be called before use 'sprite'commands
erscheint.
ich habe unten dieses eigenständige programm für opengl , es lädt ein bild ein.
kannst du mir mal einen button anordnen , und das mein programm als openglfenster links oder rechts daneben erscheint.
das eigenständige programm :
Code: Alles auswählen
XIncludeFile "OGLFunctions.pb"
EnableExplicit
Global FPSCount.l, FPSStartTime.l, FPSReal.l
Global textest.l
Procedure Init(hwnd.l)
Protected bimg.l, z.l
textest = OGLImageLoadTGA("foot3.tga")
OGLFontLoad("Arial", #True)
FPSStartTime = GetTickCount_()
If textest = 0
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Procedure Draw(hwnd.l)
Protected z.l, x.f, y.f, n.l
Static Angle.f = 0
OGLScreenClear(1.0, 0.0, 1.0)
FPSCount + 1
If GetTickCount_() - FPSStartTime > 1000
FPSStartTime + 1000
FPSReal = FPSCount
FPSCount = 0
EndIf
OGLFontDraw(10, 970, "FPS: " + Str(FPSReal), 0, 0, 0, 0.5)
Angle + 0.1
OGLBlendingStart() ;>
OGLImageSetAngle(textest, Angle)
OGLImageDraw(textest, 200, 200)
OGLBlendingStop() ;<
OGLSwapBuffers()
If GetAsyncKeyState_(#VK_ESCAPE)
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
OGLStart(@Init(), @Draw(), 800, 600, 32, #False, "OGL")
bin dir sehr dankbar, für deine vorherige hilfe.
vielleicht klappt es. danke
mfg