an example for blf - a basic Hello World (for bge, not blender)
[blender.git] / doc / python_api / examples / blf.py
1 """
2 Hello World Text Example
3 ++++++++++++++++++++++++
4 Blender Game Engine example of using the blf module. For this module to work we
5 need to use the OpenGL wrapper :class:`~bgl` as well.
6 """
7 # import game engine modules
8 import bge
9 from bge import render
10 from bge import logic
11 # import stand alone modules
12 import bgl
13 import blf
14
15 def init():
16     """init function - runs once"""
17     # create a new font object, use external ttf file
18     font_path = logic.expandPath('//Zeyada.ttf')
19         # store the font indice - to use later
20     logic.font_id = blf.load(font_path)
21
22     # set the font drawing routine to run every frame   
23     scene = logic.getCurrentScene()
24     scene.post_draw=[write]
25
26 def write():
27     """write on screen"""
28     width = render.getWindowWidth()
29     height = render.getWindowHeight()
30     
31     # OpenGL setup
32     bgl.glMatrixMode(bgl.GL_PROJECTION)
33     bgl.glLoadIdentity()
34     bgl.gluOrtho2D(0, width, 0, height)
35     bgl.glMatrixMode(bgl.GL_MODELVIEW)
36     bgl.glLoadIdentity()
37     
38     # BLF drawing routine
39     font_id = logic.font_id
40     blf.position(font_id, (width*0.2), (height*0.3), 0)
41     blf.size(font_id, 50, 72)
42     blf.draw(font_id, "Hello World")