Py API Docs: improve 2D image example
authorJacques Lucke <mail@jlucke.com>
Wed, 7 Nov 2018 15:13:55 +0000 (16:13 +0100)
committerJacques Lucke <mail@jlucke.com>
Wed, 7 Nov 2018 15:14:11 +0000 (16:14 +0100)
doc/python_api/examples/gpu.7.py

index 9f5fb4f54590988a2d17f78d70170ab3b6ca7a89..486ed5fd4117abeeeb04aafb37b7141ee292a70e 100644 (file)
@@ -1,6 +1,8 @@
 """
 2D Image
 --------
+
+To use this example you have to provide an image that should be displayed.
 """
 import bpy
 import gpu
@@ -10,40 +12,20 @@ from gpu_extras.batch import batch_for_shader
 IMAGE_NAME = "Untitled"
 image = bpy.data.images[IMAGE_NAME]
 
-coords = [
-    (100, 100), (200, 100),
-    (100, 200), (200, 200)]
-
-uvs = [(0, 0), (1, 0), (0, 1), (1, 1)]
-
-indices = [(0, 1, 2), (2, 1, 3)]
-
 shader = gpu.shader.from_builtin('2D_IMAGE')
-batch = batch_for_shader(shader, 'TRIS',
-    {"pos" : coords,
-     "texCoord" : uvs},
-    indices=indices)
+batch = batch_for_shader(shader, 'TRI_FAN',
+    {"pos" : ((100, 100), (200, 100), (200, 200), (100, 200)),
+     "texCoord" : ((0, 0), (1, 0), (1, 1), (0, 1))})
 
-# send image to gpu if it isn't there already
 if image.gl_load():
     raise Exception()
 
-# texture identifier on gpu
-texture_id = image.bindcode
-
 def draw():
-    # in case someone disabled it before
-    bgl.glEnable(bgl.GL_TEXTURE_2D)
-
-    # bind texture to image unit 0
     bgl.glActiveTexture(bgl.GL_TEXTURE0)
-    bgl.glBindTexture(bgl.GL_TEXTURE_2D, texture_id)
+    bgl.glBindTexture(bgl.GL_TEXTURE_2D, image.bindcode)
 
     shader.bind()
-    # tell shader to use the image that is bound to image unit 0
     shader.uniform_int("image", 0)
     batch.draw(shader)
 
-    bgl.glDisable(bgl.GL_TEXTURE_2D)
-
 bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
\ No newline at end of file