Skip to content

Commit 41b3aac

Browse files
authored
Update for GLMakie v0.11 (#22)
Require GLMakie v0.11.
1 parent 788082b commit 41b3aac

File tree

6 files changed

+26
-15
lines changed

6 files changed

+26
-15
lines changed

Project.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
2222
Gtk4MakieCairoMakieExt = "CairoMakie"
2323

2424
[compat]
25-
CairoMakie = "0.11, 0.12"
25+
CairoMakie = "0.13"
2626
Colors = "0.11, 0.12, 0.13"
2727
FileIO = "1.10"
2828
FixedPointNumbers = "0.7, 0.8"
29-
GLMakie = "0.10.16"
30-
GeometryBasics = "0.4.11"
29+
GLMakie = "0.11"
30+
GeometryBasics = "0.5"
3131
Gtk4 = "0.7"
32-
Makie = "0.21"
32+
Makie = "0.22"
3333
ModernGL = "1"
3434
PrecompileTools = "1"
3535
Preferences = "1"
36-
ShaderAbstractions = "0.4"
36+
ShaderAbstractions = "0.5"
3737
julia = "1.10"

examples/interactive.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ g=grid(screen)
1818
g[1,2]=GtkButton("Generate new random plot")
1919

2020
function gen_cb(b)
21+
Gtk4.make_current(glarea(screen))
2122
empty!(ax)
2223
lines!(ax,rand(10))
2324
end

src/events.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function calc_dpi(m::GdkMonitor)
4141
min(wdpi,hdpi)
4242
end
4343

44-
function _glarea_resize_cb(aptr, w, h, user_data)
44+
@guarded function _glarea_resize_cb(aptr, w, h, user_data)
4545
dpi, area, winscale = user_data
4646
a = convert(GtkGLArea, aptr)::GtkGLMakie
4747
m=Gtk4.monitor(a)

src/screen.jl

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ function _create_screen(a::GtkGLMakie, w, config, s)
6464
# This is important for resource tracking, and only needed for the first context
6565
shader_cache = GLAbstraction.ShaderCache(a)
6666
ShaderAbstractions.switch_context!(a)
67-
fb = GLFramebuffer(s)
67+
fb = GLFramebuffer(a, s)
6868

6969
postprocessors = [
7070
config.ssao ? ssao_postprocessor(fb, shader_cache) : empty_postprocessor(),
@@ -176,19 +176,21 @@ end
176176
function Base.resize!(screen::Screen{T}, w::Int, h::Int) where T <: GtkWidget
177177
window = Makie.to_native(screen)
178178
(w > 0 && h > 0 && isopen(window)) || return nothing
179-
180-
ShaderAbstractions.switch_context!(window)
181-
winscale = screen.scalefactor[] / Gtk4.scale_factor(window)
182-
winw, winh = round.(Int, winscale .* (w, h))
183-
if size(window) != (winw, winh)
184-
size_change(window, winw, winh)
185-
end
186179

187180
# Then resize the underlying rendering framebuffers as well, which can be scaled
188181
# independently of the window scale factor.
189182
fbscale = screen.px_per_unit[]
190183
fbw, fbh = round.(Int, fbscale .* (w, h))
191184
resize!(screen.framebuffer, fbw, fbh)
185+
186+
winscale = screen.scalefactor[] / Gtk4.scale_factor(window)
187+
winw, winh = round.(Int, winscale .* (w, h))
188+
if size(window) != (winw, winh)
189+
size_change(window, winw, winh)
190+
end
191+
192+
screen.size = (fbw, fbh)
193+
192194
return nothing
193195
end
194196

src/widget.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ end
2525

2626
glarea(screen::GLMakie.Screen{T}) where T <: GtkGLArea = screen.glscreen
2727
window(screen::GLMakie.Screen{T}) where T <: GtkGLArea = toplevel(screen.glscreen)
28-
size_change(g::GtkGLArea, w, h) = nothing
28+
size_change(win::GtkGLArea, w, h) = nothing
2929

3030
##
3131

src/window.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ function GLMakie.destroy!(screen::GLMakie.Screen{T}) where T <: GtkWindow
3131
return
3232
end
3333

34+
function GLMakie.GLAbstraction.require_context(ctx::GtkGLMakie, current::GtkWindowLeaf)
35+
return nothing
36+
end
37+
38+
function GLMakie.GLAbstraction.require_context(ctx::GtkWindowLeaf, current::GtkGLMakie)
39+
return nothing
40+
end
41+
3442
GLMakie.framebuffer_size(w::GtkWindow) = GLMakie.framebuffer_size(win2glarea[w])
3543

3644
function ShaderAbstractions.native_switch_context!(w::GtkWindow)

0 commit comments

Comments
 (0)