OpenGLGadgetSwapBuffers

3D (OpenGl) ››
Parent Previous Next

OpenGLGadgetSwapBuffers

Синтаксис

Sub OpenGLGadgetSwapBuffers(ByVal gadget As Long)

Описание

Производит смену видеостраниц (двойная буферизация)

Параметры

gadget - номер гаджета

Платформы

Windows , Linux

Пример

#Include "window9.bi"
Enum gadgets
  opengl =1
  opengl2
  Butchange
End enum
Dim Shared change As Integer
sub SceneDraw()
  var w = GadgetWidth(change)
  var h = GadGetHeight(change)
  glClearColor(0,0,0,0)
  glClear(GL_COLOR_BUFFER_BIT)
  glBegin(GL_POINTS)
  for i as integer = 1 to 5000
     glColor3f(rnd,rnd,rnd)
     glVertex2i(rnd*w,rnd*h)
  next
  glEnd()
  OpenGLGadgetSwapBuffers(Change)
end sub
var win = OpenWindow("OpenGL Gadget",100,100,510,250)
#Ifdef __FB_WIN32__
ButtonGadget(Butchange,420,80,70,70,"Change Gadget" , BS_MULTILINE)
#Else
ButtonGadget(Butchange,420,80,70,70,!"Change\nGadget")
#EndIf
OpenGLGadget(opengl,5,5,200,200,,0) ' 0 = no depth buffer
OpenGLGadget(opengl2,210,5,200,200,,0) ' 0 = no depth buffer
change=opengl
OpenGLGadgetMakeCurrent(change)
Do
  var event = WindowEvent()
  Select Case event
     Case eventclose
        Exit Do
     Case eventgadget
        If EventNumber = 3 Then
           Change = ((change-1) Xor 1)+1
           OpenGLGadgetMakeCurrent(change)
        EndIf
  End Select
  SceneDraw()
  sleep(1)
Loop

Результат

Created with the Personal Edition of HelpNDoc: Full featured Kindle eBooks generator