bpy blf api example update
With changes from Campbell Barton as well.
This commit is contained in:
parent
aff71a7fdc
commit
c558d8fa7c
@ -2,43 +2,44 @@
|
||||
Hello World Text Example
|
||||
++++++++++++++++++++++++
|
||||
|
||||
Blender Game Engine example of using the blf module. For this module to work we
|
||||
Example of using the blf module. For this module to work we
|
||||
need to use the OpenGL wrapper :class:`~bgl` as well.
|
||||
"""
|
||||
# import game engine modules
|
||||
from bge import render
|
||||
from bge import logic
|
||||
# import stand alone modules
|
||||
import bgl
|
||||
import blf
|
||||
import bpy
|
||||
|
||||
font_info = {
|
||||
"font_id": 0,
|
||||
"handler": None,
|
||||
}
|
||||
|
||||
def init():
|
||||
"""init function - runs once"""
|
||||
# create a new font object, use external ttf file
|
||||
font_path = logic.expandPath('//Zeyada.ttf')
|
||||
# store the font indice - to use later
|
||||
logic.font_id = blf.load(font_path)
|
||||
import os
|
||||
# Create a new font object, use external ttf file.
|
||||
font_path = bpy.path.abspath('//Zeyada.ttf')
|
||||
# Store the font indice - to use later.
|
||||
if os.path.exists(font_path):
|
||||
font_info["font_id"] = blf.load(font_path)
|
||||
else:
|
||||
# Default font.
|
||||
font_info["font_id"] = 0
|
||||
|
||||
# set the font drawing routine to run every frame
|
||||
scene = logic.getCurrentScene()
|
||||
scene.post_draw = [write]
|
||||
font_info["handler"] = bpy.types.SpaceView3D.draw_handler_add(
|
||||
draw_callback_px, (None, None), 'WINDOW', 'POST_PIXEL')
|
||||
|
||||
|
||||
def write():
|
||||
"""write on screen"""
|
||||
width = render.getWindowWidth()
|
||||
height = render.getWindowHeight()
|
||||
|
||||
# OpenGL setup
|
||||
bgl.glMatrixMode(bgl.GL_PROJECTION)
|
||||
bgl.glLoadIdentity()
|
||||
bgl.gluOrtho2D(0, width, 0, height)
|
||||
bgl.glMatrixMode(bgl.GL_MODELVIEW)
|
||||
bgl.glLoadIdentity()
|
||||
|
||||
def draw_callback_px(self, context):
|
||||
"""Draw on the viewports"""
|
||||
# BLF drawing routine
|
||||
font_id = logic.font_id
|
||||
blf.position(font_id, (width * 0.2), (height * 0.3), 0)
|
||||
font_id = font_info["font_id"]
|
||||
blf.position(font_id, 2, 80, 0)
|
||||
blf.size(font_id, 50, 72)
|
||||
blf.draw(font_id, "Hello World")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
init()
|
||||
|
Loading…
Reference in New Issue
Block a user