Skip to content

Commit

Permalink
Merge branch 'master' into as/cairomesh2d
Browse files Browse the repository at this point in the history
  • Loading branch information
asinghvi17 authored Oct 21, 2024
2 parents 5e9f839 + 6b26779 commit 60e5fc2
Show file tree
Hide file tree
Showing 14 changed files with 317 additions and 80 deletions.
7 changes: 6 additions & 1 deletion .github/workflows/compilation-benchmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,9 @@ jobs:
GITHUB_TOKEN: ${{ secrets.BENCHMARK_KEY }}
PR_NUMBER: ${{ github.event.number }}
run: >
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=./metrics/ttfp/ ./metrics/ttfp/run-benchmark.jl ${{ matrix.package }} 7 ${{ github.event.pull_request.base.ref }}
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=./metrics/ttfp/ ./metrics/ttfp/run-benchmark.jl ${{ matrix.package }} 20 ${{ github.event.pull_request.base.ref }}
- name: Upload measurements as artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.package }}
path: ./json
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

## [Unreleased]

- Fix relocatability of GLMakie [#4461](https://github.com/MakieOrg/Makie.jl/pull/4461).
- Improved CairoMakie's 2D mesh drawing performance by ~30% [#4132](https://github.com/MakieOrg/Makie.jl/pull/4132).
- For `Textbox`es in which a fixed width is specified, the text is now scrolled
if the width is exceeded [#4293](https://github.com/MakieOrg/Makie.jl/pull/4293)
- Changed image, heatmap and surface picking indices to correctly index the relevant matrix arguments. [#4459](https://github.com/MakieOrg/Makie.jl/pull/4459)
- Improved performance of `record` by avoiding unnecessary copying in common cases [#4475](https://github.com/MakieOrg/Makie.jl/pull/4475).
- Fix usage of `AggMean()` and other aggregations operating on 3d data for `datashader` [#4346](https://github.com/MakieOrg/Makie.jl/pull/4346).
- Use polys for axis3 [#4463](https://github.com/MakieOrg/Makie.jl/pull/4463).
- Changed default for `circular_rotation` in Camera3D to false, so that the camera doesn't change rotation direction anymore [4492](https://github.com/MakieOrg/Makie.jl/pull/4492)
- Fixed `pick(scene, rect2)` in WGLMakie [#4488](https://github.com/MakieOrg/Makie.jl/pull/4488)

Expand Down
2 changes: 2 additions & 0 deletions CairoMakie/test/svg_tests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ end
@testset "SVG rasterization" begin
@test svg_isnt_rasterized(Scene())
@test svg_isnt_rasterized(begin f = Figure(); Axis(f[1, 1]); f end)
@test svg_isnt_rasterized(begin f = Figure(); Axis3(f[1, 1]); f end)
@test svg_isnt_rasterized(begin f = Figure(); PolarAxis(f[1, 1]); f end)
@test svg_isnt_rasterized(scatter(1:3))
@test svg_isnt_rasterized(lines(1:3))
@test svg_isnt_rasterized(heatmap(rand(5, 5)))
Expand Down
42 changes: 41 additions & 1 deletion ReferenceTests/src/tests/figures_and_makielayout.jl
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,46 @@ end
f
end

@reference_test "Textbox" begin
f = Figure()

tb1 = Makie.Textbox(f[1,1])
Makie.set!(tb1, "1234567890qwertyuiop")
Makie.focus!(tb1)
f.scene.events.mouseposition[] = (297, 221)
f.scene.events.mousebutton[] = Makie.MouseButtonEvent(Makie.Mouse.left, Makie.Mouse.press)
Makie.defocus!(tb1)

tb2 = Makie.Textbox(f[2,1], width=100)
Makie.set!(tb2, "1234567890qwertyuiop")
tb2.cursorindex[] = 20
Makie.focus!(tb2)
f.scene.events.keyboardbutton[] = Makie.KeyEvent(Makie.Keyboard.backspace, Makie.Keyboard.press)
Makie.defocus!(tb2)

tb3 = Makie.Textbox(f[3,1], width=100)
Makie.set!(tb3, "1234567890qwertyuiop")
tb3.cursorindex[] = 20
Makie.focus!(tb3)
f.scene.events.mouseposition[] = (259, 173) # between 7 and 8
f.scene.events.mousebutton[] = Makie.MouseButtonEvent(Makie.Mouse.left, Makie.Mouse.press)
f.scene.events.keyboardbutton[] = Makie.KeyEvent(Makie.Keyboard.left, Makie.Keyboard.press)
f.scene.events.keyboardbutton[] = Makie.KeyEvent(Makie.Keyboard.left, Makie.Keyboard.press)
Makie.defocus!(tb3)

tb4 = Makie.Textbox(f[4,1], width=100)
Makie.set!(tb4, "1234567890qwertyuiop")
tb4.cursorindex[] = 20
tb4.cursorindex[] = 10
Makie.focus!(tb4)
for _ in 1:8
f.scene.events.keyboardbutton[] = Makie.KeyEvent(Makie.Keyboard.backspace, Makie.Keyboard.press)
end
Makie.defocus!(tb4)

f
end

@reference_test "Button - Slider - Toggle - Textbox" begin
f = Figure(size = (500, 250))
Makie.Button(f[1, 1:2])
Expand Down Expand Up @@ -444,4 +484,4 @@ end
Makie.set!(tb, "some string")

f
end
end
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ NodeJS = "2bd173c7-0d6d-553b-b6af-13a54713934c"
Observables = "510215fc-4207-5dde-b226-833fc4488ee2"
RPRMakie = "22d9f318-5e34-4b44-b769-6e3734a732a6"
RadeonProRender = "27029320-176d-4a42-b57d-56729d2ad457"
Typst_jll = "eb4b1da6-20f6-5c66-9826-fdb8ad410d0e"
WGLMakie = "276b4fcb-3e11-5398-bf8b-a0c2d153d008"
43 changes: 24 additions & 19 deletions docs/makedocs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ pages = [
"explanations/transparency.md",
],
"How-Tos" => [
"how-to/match-figure-size-font-sizes-and-dpi.md",
"how-to/draw-boxes-around-subfigures.md",
"how-to/save-figure-with-transparency.md",
],
Expand All @@ -197,25 +198,29 @@ pages = [
]
]

empty!(MakieDocsHelpers.FIGURES)

# filter pages here when working on docs interactively
# pages = nested_filter(pages, r"reference/blocks/(axis|axis3|overview)")

Documenter.makedocs(;
sitename="Makie",
format=DocumenterVitepress.MarkdownVitepress(;
repo = "github.com/MakieOrg/Makie.jl",
devurl = "dev",
devbranch = "master",
deploy_url = "https://docs.makie.org", # for local testing not setting this has broken links with Makie.jl in them
description = "Create impressive data visualizations with Makie, the plotting ecosystem for the Julia language. Build aesthetic plots with beautiful customizable themes, control every last detail of publication quality vector graphics, assemble complex layouts and quickly prototype interactive applications to explore your data live.",
deploy_decision,
),
pages,
expandfirst = unnest(nested_filter(pages, r"reference/(plots|blocks)/(?!overview)")),
warnonly = get(ENV, "CI", "false") != "true",
pagesonly = true,
function make_docs(; pages)
empty!(MakieDocsHelpers.FIGURES)

Documenter.makedocs(;
sitename="Makie",
format=DocumenterVitepress.MarkdownVitepress(;
repo = "github.com/MakieOrg/Makie.jl",
devurl = "dev",
devbranch = "master",
deploy_url = "https://docs.makie.org", # for local testing not setting this has broken links with Makie.jl in them
description = "Create impressive data visualizations with Makie, the plotting ecosystem for the Julia language. Build aesthetic plots with beautiful customizable themes, control every last detail of publication quality vector graphics, assemble complex layouts and quickly prototype interactive applications to explore your data live.",
deploy_decision,
),
pages,
expandfirst = unnest(nested_filter(pages, r"reference/(plots|blocks)/(?!overview)")),
warnonly = get(ENV, "CI", "false") != "true",
pagesonly = true,
)
end

make_docs(;
# filter pages here when working on docs interactively
pages # = nested_filter(pages, r"explanations/figure|match-figure"),
)

##
Expand Down
2 changes: 1 addition & 1 deletion docs/src/explanations/backends/wglmakie.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# WGLMakie

[WGLMakie](https://github.com/MakieOrg/Makie.jl/tree/master/WGLMakie) is the web-based backend, which is mostly implemented in Julia right now.
WGLMakie uses [Bonito](https://github.com/SimonDanisch/Bonito.jl) to generate the HTML and JavaScript for displaying the plots. On the JavaScript side, we use [ThreeJS](https://threejs.org/) and [WebGL](https://de.wikipedia.org/wiki/WebGL) to render the plots.
WGLMakie uses [Bonito](https://github.com/SimonDanisch/Bonito.jl) to generate the HTML and JavaScript for displaying the plots. On the JavaScript side, we use [ThreeJS](https://threejs.org/) and [WebGL](https://en.wikipedia.org/wiki/WebGL) to render the plots.
Moving more of the implementation to JavaScript is currently the goal and will give us a better JavaScript API, and more interaction without a running Julia server.


Expand Down
Loading

0 comments on commit 60e5fc2

Please sign in to comment.