Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Grafik und Fonts

OpenGl mit transparentem Hintergrund

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.RedakteurVolta 16.03.2013

Windows Aero ist ein Skin der in den meisten Editionen von Windows Vista und Windows 7 enthalten ist und halbdurchsichtige Fensterrahmen bietet. Diese Technik erlaubt nicht die nachfolgenden Fenstereinstellungen. Erst wenn Aero deaktiviert wird ist der nachfolgende Effekt darstellbar.

#Include "windows.bi"
#Include "GL/glu.bi"

Sub RenderScene
  Static rtri As Single
  glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT
  glPushMatrix

  glLoadIdentity
  glTranslatef 0.0, 0.0, -4.0
  glRotatef rtri, 0, 1, 0

  glBegin GL_TRIANGLES
  glColor3f   1.0, 0.0, 0.0         'Red
  glVertex3f  0.0, 1.0, 0.0         'Top Of Triangle  Front)
  glColor3f   0.0, 1.0, 0.0         'Green
  glVertex3f -1.0,-1.0, 1.0         'Left Of Triangle  Front)
  glColor3f   0.0, 0.0, 1.0         'Blue
  glVertex3f  1.0,-1.0, 1.0         'Right Of Triangle  Front)
  glColor3f   1.0, 0.0, 0.0         'Red
  glVertex3f  0.0, 1.0, 0.0         'Top Of Triangle  Right)
  glColor3f   0.0, 0.0, 1.0         'Blue
  glVertex3f  1.0,-1.0, 1.0         'Left Of Triangle  Right)
  glColor3f   0.0, 1.0, 0.0         'Green
  glVertex3f  1.0,-1.0,-1.0         'Right Of Triangle  Right)
  glColor3f   1.0, 0.0, 0.0         'Red
  glVertex3f  0.0, 1.0, 0.0         'Top Of Triangle  Back)
  glColor3f   0.0, 1.0, 0.0         'Green
  glVertex3f  1.0,-1.0,-1.0         'Left Of Triangle  Back)
  glColor3f   0.0, 0.0, 1.0         'Blue
  glVertex3f -1.0,-1.0,-1.0         'Right Of Triangle  Back)
  glColor3f   1.0, 0.0, 0.0         'Red
  glVertex3f  0.0, 1.0, 0.0         'Top Of Triangle  Left)
  glColor3f   0.0, 0.0, 1.0         'Blue
  glVertex3f -1.0,-1.0,-1.0         'Left Of Triangle  Left)
  glColor3f   0.0, 1.0, 0.0         'Green
  glVertex3f -1.0,-1.0, 1.0         'Right Of Triangle  Left)
  glEnd
  glPopMatrix
  rtri = rtri + 2.0f
  Flip
End Sub

ScreenRes 640, 480, 32,,2 'OpenGL-Modus
Dim As HWND hwnd
ScreenControl(2 ,Cast(Integer, hwnd)) 'GET_WINDOW_HANDLE
'http://msdn.microsoft.com/de-de/library/bb979284.aspx
SetWindowLong hwnd, GWL_STYLE, WS_POPUP Or WS_VISIBLE 'geränderten Fensterstil setzen
SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_LAYERED 'erweiterter Fensterstil setzen
SetLayeredWindowAttributes(hwnd, 0, 0, LWA_COLORKEY)'Transparenzinformationen zuweisen

glViewport 0, 0, 640, 480              ' Reset The Current Viewport
glMatrixMode GL_PROJECTION             ' Select The Projection Matrix
glLoadIdentity                         ' Reset The Projection Matrix
gluPerspective 45, 640/480, 0.1, 100   ' Calculate The Aspect Ratio Of The Window
glMatrixMode GL_MODELVIEW              ' Select The Modelview Matrix
glLoadIdentity                         ' Reset The Modelview Matrix

'glEnable GL_ALPHA_TEST
glEnable GL_DEPTH_TEST

'Transparent-OpenGL-window
'glEnable GL_BLEND
'glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
glClearColor 0, 0, 0, 0

Do
  RenderScene
  Sleep 1
Loop While InKey = ""

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 13.03.2013 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 16.03.2013 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen