46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Testing the BGL module
 | |
| 
 | |
| import Blender
 | |
| from Blender.BGL import *
 | |
| from Blender import Draw
 | |
| 
 | |
| R = G = B = 0
 | |
| A = 1
 | |
| 
 | |
| instructions = "Hold mouse buttons to change the background color."
 | |
| quitting = " Press ESC or q to quit."
 | |
| 
 | |
| def show_win():
 | |
|   glClearColor(R,G,B,A)                # define color used to clear buffers 
 | |
|   glClear(GL_COLOR_BUFFER_BIT)         # use it to clear the color buffer
 | |
|   glColor3f(1,1,1)                     # change default color
 | |
|   glRasterPos2i(50,100)                # move cursor to x = 50, y = 100
 | |
|   Draw.Text("Testing BGL  + Draw")     # draw this text there
 | |
|   glRasterPos2i(350,20)                # move cursor again
 | |
|   Draw.Text(instructions + quitting)   # draw another msg
 | |
|   glBegin(GL_LINE_LOOP)                # begin a vertex-data list
 | |
|   glVertex2i(46,92)
 | |
|   glVertex2i(120,92)
 | |
|   glVertex2i(120,115)
 | |
|   glVertex2i(46,115)
 | |
|   glEnd()                              # close this list
 | |
|   glColor3f(0.35,0.18,0.92)            # change default color again
 | |
|   glBegin(GL_POLYGON)                  # another list, for a polygon
 | |
|   glVertex2i(315, 292)
 | |
|   glVertex2i(412, 200)
 | |
|   glVertex2i(264, 256)
 | |
|   glEnd()
 | |
|   Draw.Redraw(1)                       # make changes visible.
 | |
| 
 | |
| def ev(evt, val):                      # this is a callback for Draw.Register()
 | |
|   global R,G,B,A                       # it handles input events
 | |
|   if evt == Draw.ESCKEY or evt == Draw.QKEY:
 | |
|     Draw.Exit()                        # this quits the script
 | |
|   elif evt == Draw.LEFTMOUSE: R = 1 - R
 | |
|   elif evt == Draw.MIDDLEMOUSE: G = 1 - G
 | |
|   elif evt == Draw.RIGHTMOUSE: B = 1 - B
 | |
|   else:
 | |
|     Draw.Register(show_win, ev, None)
 | |
| 
 | |
| Draw.Register(show_win, ev, None)      # start the main loop
 |