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
 |