fix from 2.5x r26079
[blender.git] / source / blender / python / api2_2x / doc / testbgl.py
1 # Testing the BGL module
2
3 import Blender
4 from Blender.BGL import *
5 from Blender import Draw
6
7 R = G = B = 0
8 A = 1
9
10 instructions = "Hold mouse buttons to change the background color."
11 quitting = " Press ESC or q to quit."
12
13 def show_win():
14   glClearColor(R,G,B,A)                # define color used to clear buffers 
15   glClear(GL_COLOR_BUFFER_BIT)         # use it to clear the color buffer
16   glColor3f(1,1,1)                     # change default color
17   glRasterPos2i(50,100)                # move cursor to x = 50, y = 100
18   Draw.Text("Testing BGL  + Draw")     # draw this text there
19   glRasterPos2i(350,20)                # move cursor again
20   Draw.Text(instructions + quitting)   # draw another msg
21   glBegin(GL_LINE_LOOP)                # begin a vertex-data list
22   glVertex2i(46,92)
23   glVertex2i(120,92)
24   glVertex2i(120,115)
25   glVertex2i(46,115)
26   glEnd()                              # close this list
27   glColor3f(0.35,0.18,0.92)            # change default color again
28   glBegin(GL_POLYGON)                  # another list, for a polygon
29   glVertex2i(315, 292)
30   glVertex2i(412, 200)
31   glVertex2i(264, 256)
32   glEnd()
33   Draw.Redraw(1)                       # make changes visible.
34
35 def ev(evt, val):                      # this is a callback for Draw.Register()
36   global R,G,B,A                       # it handles input events
37   if evt == Draw.ESCKEY or evt == Draw.QKEY:
38     Draw.Exit()                        # this quits the script
39   elif evt == Draw.LEFTMOUSE: R = 1 - R
40   elif evt == Draw.MIDDLEMOUSE: G = 1 - G
41   elif evt == Draw.RIGHTMOUSE: B = 1 - B
42   else:
43     Draw.Register(show_win, ev, None)
44
45 Draw.Register(show_win, ev, None)      # start the main loop