File: moderngl_logo_spv.py

package info (click to toggle)
python-moderngl 5.12.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,700 kB
  • sloc: python: 15,758; cpp: 14,665; makefile: 14
file content (25 lines) | stat: -rw-r--r-- 692 bytes parent folder | download
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
import moderngl
from PIL import Image

ctx = moderngl.create_standalone_context()

fbo1 = ctx.framebuffer([ctx.renderbuffer((800, 800), components=4, samples=16)])
fbo2 = ctx.framebuffer([ctx.renderbuffer((800, 800), components=4)])

prog = ctx.program(
    vertex_shader=open('examples/data/logo.vert.spv', 'rb').read(),
    fragment_shader=open('examples/data/logo.frag.spv', 'rb').read(),
)

vao = ctx.vertex_array(prog, [])
vao.scope = ctx.scope(fbo1)
vao.instances = 9
vao.vertices = 3

fbo1.clear(0.0, 0.0, 0.0, 0.0)
vao.render()

ctx.copy_framebuffer(fbo2, fbo1)

img = Image.frombuffer('RGBA', fbo2.size, fbo2.read(components=4)).transpose(Image.Transpose.FLIP_TOP_BOTTOM)
img.show()