-
-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor display code to be Screen centric #2306
Conversation
This allows arbitrary scaling in CairoMakie, remains constant in GLMakie, and probably breaks WGLMakie.
for CairoMakie
Compile Times benchmarkNote, that these numbers may fluctuate on the CI servers, so take them with a grain of salt. All benchmark results are based on the mean time and negative percent mean faster than the base branch. Note, that GLMakie + WGLMakie run on an emulated GPU, so the runtime benchmark is much slower. Results are from running: using_time = @ctime using Backend
# Compile time
create_time = @ctime fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @ctime Makie.colorbuffer(display(fig))
# Runtime
create_time = @benchmark fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @benchmark Makie.colorbuffer(display(fig))
|
…ie.jl into sd/display-refactor
Missing reference imagesFound 5 new images without existing references. |
Missing reference imagesFound 1 new images without existing references. |
Final summary of changes: GLMakie Bug fixes
Saving + record
Speed and allocation improvements for recordWe gained some substantial speed improvements for GLMakie
CairoMakie
WGLMakie
Other
|
Missing reference imagesFound 1 new images without existing references. |
* Only rasterize if the backend is not itself raster * Define width of CairoScreen * Make colorbuffer use the size of the screen, not the scene This allows arbitrary scaling in CairoMakie, remains constant in GLMakie, and probably breaks WGLMakie. * Add GeometryBasics.widths for ThreeDisplay * Add GeometryBasics.widths for WebDisplay * Fix inadvertent bug * Add news entry * Decrease the number of evaljs_value calls * broadcast in WGLMakie method * Pass kwargs along to backend_show in backend_display for CairoMakie * Pass arbitrary kwargs along * convert Iterators.Pairs to namedtuple in backend_display for CairoMakie * Splat kwargs as a vector of pairs * refactor display code * new screen constructors * get CairoMakie & GLMakie to work * fix tests * more context switching * try thiss * hm * make sure we track context in shader compilation * clean up ROBJ and context switching * fix RPRMakie * fix thy backends * fix stepper and docs * remove all inline! use * fix GLMakie screen deregistering * fix offset in Stepper for CairoMakie * fix benchmarks + precompiles * implement switching of mimes * move display config to theme * fix parse error * bring back precompiles * small fixes/improvements * incorperate changes from MakieOrg#2231 and refactor scene Co-authored-by: Robert Bennett <[email protected]> * fix CI ? * improved screen clean up * clean up and tests * add logging * fix makie unit tests * let CI fail gracefully * fix import * remove last GLMakie.Screen related globals * small improvements for Pluto + friends * add comment * clean up docs * move preferred mime machinery to CairoMakie, since its not needed anywhere else * remove set_preferred_mime! from tests etc * fix mime test * last clean up & address review * update docs * initialize array * deprecate set_window_config! properly * forgot another constructor * small clean up and doc fixes * small doc fixes Co-authored-by: Anshul Singhvi <[email protected]> Co-authored-by: Anshul Singhvi <[email protected]> Co-authored-by: Robert Bennett <[email protected]>
Loosely a continuation of #2012, but really Rabbit holed into a refactor of the display code.
Screen is now the holder of all display related information like
device_scaling_factor
, desired output type and things like visibilityThis PR adds:
..And some more docs and clean ups to come