Python API Docs: fix some examples
[blender.git] / doc / python_api / examples / blf.py
1 """
2 Hello World Text Example
3 ++++++++++++++++++++++++
4
5 Example of using the blf module. For this module to work we
6 need to use the OpenGL wrapper :class:`~bgl` as well.
7 """
8 # import stand alone modules
9 import blf
10 import bpy
11
12 font_info = {
13     "font_id": 0,
14     "handler": None,
15 }
16
17
18 def init():
19     """init function - runs once"""
20     import os
21     # Create a new font object, use external ttf file.
22     font_path = bpy.path.abspath('//Zeyada.ttf')
23     # Store the font indice - to use later.
24     if os.path.exists(font_path):
25         font_info["font_id"] = blf.load(font_path)
26     else:
27         # Default font.
28         font_info["font_id"] = 0
29
30     # set the font drawing routine to run every frame
31     font_info["handler"] = bpy.types.SpaceView3D.draw_handler_add(
32         draw_callback_px, (None, None), 'WINDOW', 'POST_PIXEL')
33
34
35 def draw_callback_px(self, context):
36     """Draw on the viewports"""
37     # BLF drawing routine
38     font_id = font_info["font_id"]
39     blf.position(font_id, 2, 80, 0)
40     blf.size(font_id, 50, 72)
41     blf.draw(font_id, "Hello World")
42
43
44 if __name__ == '__main__':
45     init()