Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BGL.py « doc « api2_2x « python « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: eec9961c06bfa263e985e3838f2e49c69d9bd99c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Blender.BGL module (OpenGL wrapper)

"""
The Blender.BGL submodule (the OpenGL wrapper).

The Blender.BGL submodule
=========================

This module wraps OpenGL constants and functions, making them available from
within Blender Python.

The complete list can be retrieved from the module itself, by listing its
contents: dir(Blender.BGL).  There are too many to be documented here, but
a simple search on the net can point to more than enough material to teach
OpenGL programming, from books to many collections of tutorials.

The "red book": "I{OpenGL Programming Guide: The Official Guide to Learning
OpenGL}" and the online NeHe tutorials are two of the best resources.

@see: U{www.opengl.org}

Example::
  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
"""