Skip to content

Commit 5eeb34d

Browse files
committed
add some more context switches, idk
1 parent 772db38 commit 5eeb34d

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

Diff for: GLMakie/src/postprocessing.jl

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ GLRenderPipeline() = GLRenderPipeline(Makie.Pipeline(), AbstractRenderStep[])
6060

6161
function render_frame(screen, glscene, pipeline::GLRenderPipeline)
6262
for step in pipeline.steps
63+
ShaderAbstractions.switch_context!(screen.glscreen)
6364
run_step(screen, glscene, step)
6465
end
6566
return

Diff for: GLMakie/src/render_pipeline.jl

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ function gl_render_pipeline!(screen::Screen, pipeline::Makie.Pipeline)
6767
# Maybe safer to wait on rendertask to finish and replace the GLRenderPipeline
6868
# with an empty one while we mess with it?
6969
wait(screen)
70+
ShaderAbstractions.switch_context!(screen.glscreen)
7071
screen.render_pipeline = GLRenderPipeline()
7172

7273
# Resolve pipeline

Diff for: GLMakie/src/screen.jl

+2-1
Original file line numberDiff line numberDiff line change
@@ -634,9 +634,10 @@ function destroy!(screen::Screen)
634634
window = screen.glscreen
635635
GLFW.SetWindowRefreshCallback(window, nothing)
636636
GLFW.SetWindowContentScaleCallback(window, nothing)
637-
destroy!(window)
637+
ShaderAbstractions.switch_context!(screen.glscreen)
638638
destroy!(screen.framebuffer_factory)
639639
destroy!(screen.render_pipeline)
640+
destroy!(window)
640641
# Since those are sets, we can just delete them from there, even if they weren't in there (e.g. reuse=false)
641642
delete!(SCREEN_REUSE_POOL, screen)
642643
delete!(ALL_SCREENS, screen)

0 commit comments

Comments
 (0)