Seite 1 von 1

In das hdc Poken und Peeken

Verfasst: 02.09.2009 08:36
von super_castle
Unten wird ein Openglscreen erzeugt, darin kommt der Befehl :
SwapBuffers_(hdc) vor.

Kann man eigentlich durch "Hinein-Poken" dieses hdc ändern.
Bzw kommt man an das Bild mit Peek?

mfg

Code: Alles auswählen

Procedure OpenGLScreen(*p.GLscreen,xx,yy,ww,hh)
  If *p
    container = ContainerGadget(#PB_Any,xx,yy,ww,hh)
    If container
      hwnd = GadgetID(container)
      hdc = GetDC_(hwnd)
      pfd.PIXELFORMATDESCRIPTOR
      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 = 32
      pfd\cDepthBits = 32
      pixformat = ChoosePixelFormat_(hdc, pfd)
      SetPixelFormat_(hdc, pixformat, pfd)
      hrc = wglCreateContext_(hdc)
      wglMakeCurrent_(hdc, hrc)
      SwapBuffers_(hdc)
      *p\container = container
      *p\hWnd      = GadgetID(container)
      *p\hDC       = hdc
     
       glMatrixMode_(#GL_PROJECTION)
       gluPerspective_(45, 1, 0.1,1000.0)
       glMatrixMode_(#GL_MODELVIEW)
       glEnable_(#GL_ALPHA_TEST)
       glAlphaFunc_(#GL_GREATER, 0.0)
      
       glShadeModel_(#gl_smooth)
       glClearColor_( 0.0, 0.5, 1.0, 0.0)
       glClearDepth_(1.0)   
       glEnable_(#GL_DEPTH_TEST)
       glDepthFunc_(#gl_lequal)
       glHint_(#gl_perspective_correction_hint,#gl_nicest)
       glEnable_ (#GL_COLOR_MATERIAL)
       glEnable_(#GL_TEXTURE_2D)
      
      ProcedureReturn 1
    EndIf
  EndIf
EndProcedure