' 
' Written by Paul Grunewald (aka Stormy)
' Date: 07.28.2006
' Mail: Paul.Grunewald@gmail.com
'
#include "inc/2d_opengl.bi"

' Festlegung der Konstanten, die für den Bildschirm wichtig sind
const scrnX = 640
const scrnY = 480
const depth = 32
const fullscreen = &h0           ' Vollbildmodus ( &h0 = aus, &h1 = an )

DIM AS GFXType texture

' Initialisiere den Schirm
Init_ogl2D(scrnX, scrnY, depth, fullscreen)

glEnable GL_TEXTURE_2D						' Texturen erlauben.
load_texture ("resources/examples/horse.tga", texture)		' Lade eine Textur

WindowTitle "[ Mirror ]"

DIM AS INTEGER x, y    
x = 150
y = 0
do
  glCls  
  
  ' Zeichne Untergrund
  
  glDepthfunc (GL_LESS)		 ' Standard-Tiefentest
  glDisable (GL_BLEND)		 ' Kein Blend-Modus
  
  glBindTexture GL_TEXTURE_2D, 0 ' Löse Textur, da wir farbige Objekte
  				 ' ohne Textur zeichnen wollen.
  
  glColor3ub 19,160,0		 ' Grüne Wiese
  PutBox (1, 200, 640, 480, 1)
  
  glColor3ub 0,16,160		 ' Wasserfläche
  PutBox (150, 230, 480, 480, 2)
  
  glColor3ub 255,255,255
  PutTexture (texture, x, y, 10) ' Figur
  ' Zeichne Spiegelung
  glDepthfunc (GL_EQUAL)	 ' Tiefentest: Gleiche Ebene
  glEnable (GL_BLEND)
  				 ' Unser schöner Blendmodus für Transparenz
  glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
  
  glColor4f 1,1,1,.5		 ' Zeichne verkehrte Figur
  PutTextureVert (texture, x, y+texture.height, 2)
  
  IF MULTIKEY(SC_LEFT) THEN x-=1  
  IF MULTIKEY(SC_RIGHT) THEN x+=1
  IF MULTIKEY(SC_UP) THEN y-=1
  IF MULTIKEY(SC_DOWN) THEN y+=1
    
  glFlush 
  flip 
  screensync
loop until multikey(SC_ESCAPE) ' Verlasse die Schleife sobald Escape gedrückt wird
