Skip to content

Commit fa4f452

Browse files
committed
fix broken headless rendering
1 parent cd42eb0 commit fa4f452

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

demosys/context/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,4 @@ def set_default_viewport(self):
105105

106106
# How much positive or negative y padding
107107
blank_space = self.buffer_height - expected_height
108-
self.ctx.screen.viewport = (0, blank_space // 2, self.buffer_width, expected_height)
108+
self.fbo.viewport = (0, blank_space // 2, self.buffer_width, expected_height)

demosys/context/glfw.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def __init__(self):
6666
# Create mederngl context from existing context
6767
self.ctx = moderngl.create_context()
6868
self.fbo = FBO()
69+
self.fbo.ctx = self.ctx
6970
self.fbo.fbo = self.ctx.screen
7071
self.fbo.default_framebuffer = True
7172
context.WINDOW = self

demosys/context/headless.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import moderngl
2-
from demosys.conf import settings
3-
from demosys.conf import ImproperlyConfigured
2+
from demosys import context
3+
from demosys.conf import ImproperlyConfigured, settings
44
from demosys.opengl.fbo import FBO
55

66
from .base import Window
@@ -19,7 +19,16 @@ def __init__(self):
1919

2020
self._close = False
2121
self.ctx = moderngl.create_standalone_context()
22-
self.screenbuffer = FBO.create((self.width, self.height), depth=True)
22+
23+
self.fbo = FBO()
24+
self.fbo.ctx = self.ctx
25+
self.fbo.fbo = self.ctx.framebuffer(
26+
color_attachments=self.ctx.texture((self.width, self.height), 4),
27+
depth_attachment=self.ctx.depth_texture((self.width, self.height)),
28+
)
29+
# self.fbo.default_framebuffer = True
30+
context.WINDOW = self
31+
self.set_default_viewport()
2332

2433
def draw(self, current_time, frame_time):
2534
super().draw(current_time, frame_time)
@@ -28,7 +37,7 @@ def draw(self, current_time, frame_time):
2837
self.close()
2938

3039
def use(self):
31-
self.screenbuffer.use(stack=False)
40+
self.fbo.use(stack=False)
3241

3342
def should_close(self):
3443
return self._close

0 commit comments

Comments
 (0)