-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Nov 12, 2023
1 parent
20bc7d4
commit a81fdc1
Showing
24 changed files
with
33 additions
and
33 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Preference Settings · Gtk4.jl</title><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.045/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">Gtk4.jl</a></span></div><form class="docs-search" action="../../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../../manual/gettingStarted/">Getting Started</a></li><li><a class="tocitem" href="../../manual/properties/">Properties</a></li><li><a class="tocitem" href="../../manual/methods/">Automatically generated methods</a></li><li><a class="tocitem" href="../../manual/layout/">Layout</a></li><li><a class="tocitem" href="../../manual/signals/">Signals and Callbacks</a></li><li><a class="tocitem" href="../../manual/builder/">Builder</a></li><li><a class="tocitem" href="../../manual/textwidgets/">Text Widgets</a></li><li><a class="tocitem" href="../../manual/combobox/">Dropdown widgets</a></li><li><a class="tocitem" href="../../manual/listtreeview/">List and Tree Widgets</a></li><li><a class="tocitem" href="../../manual/dialogs/">Dialogs</a></li><li><a class="tocitem" href="../../manual/keyevents/">Key Events</a></li><li><a class="tocitem" href="../../manual/canvas/">Drawing with Cairo</a></li></ul></li><li><span class="tocitem">Howto</span><ul><li><a class="tocitem" href="../../howto/nonreplusage/">Using Gtk4 outside the REPL</a></li><li><a class="tocitem" href="../../howto/async/">Asynchronous UI</a></li><li><a class="tocitem" href="../../howto/sysimage/">Gtk4 in a sysimage</a></li></ul></li><li><a class="tocitem" href="../../diff3to4/">Gtk.jl to Gtk4.jl</a></li><li><span class="tocitem">Reference</span><ul><li><a class="tocitem" href="../reference/">Gtk4 Reference</a></li><li><a class="tocitem" href="../GLib_reference/">GLib Reference</a></li><li><a class="tocitem" href="../Gtk4_types_reference/">Gtk4 Types</a></li><li><a class="tocitem" href="../GLib_types_reference/">GLib Types</a></li><li><a class="tocitem" href="../constants_reference/">Constants</a></li><li class="is-active"><a class="tocitem" href>Preference Settings</a><ul class="internal"><li><a class="tocitem" href="#EGL-directories-(Linux-and-Wayland)"><span>EGL directories (Linux & Wayland)</span></a></li><li><a class="tocitem" href="#UV-loop-integration"><span>UV loop integration</span></a></li></ul></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Reference</a></li><li class="is-active"><a href>Preference Settings</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Preference Settings</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/JuliaGtk/Gtk4.jl/blob/main/docs/src/doc/preferences.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Preference-Settings"><a class="docs-heading-anchor" href="#Preference-Settings">Preference Settings</a><a id="Preference-Settings-1"></a><a class="docs-heading-anchor-permalink" href="#Preference-Settings" title="Permalink"></a></h1><p>Here is a list of preferences for Gtk4 that can be set using Preferences.jl.</p><h2 id="EGL-directories-(Linux-and-Wayland)"><a class="docs-heading-anchor" href="#EGL-directories-(Linux-and-Wayland)">EGL directories (Linux & Wayland)</a><a id="EGL-directories-(Linux-and-Wayland)-1"></a><a class="docs-heading-anchor-permalink" href="#EGL-directories-(Linux-and-Wayland)" title="Permalink"></a></h2><p>GTK4 has a few different rendering backends, and by default on Linux it uses one based on OpenGL. Gtk4.jl uses JLL based libraries rather than the ones that come with your Linux distribution, and on Wayland, unfortunately, unless you tell <code>libglvnd_jll</code> where to find libEGL, it will be unable to find an OpenGL provider. As a result, on Wayland a Cairo-based fallback backend will be used. This may work fine for you, but it means that <code>GtkGLArea</code> will not work. We can tell <code>libglvnd_jll</code> where to find libEGL by setting the environment variable <code>__EGL_VENDOR_LIBRARY_DIRS</code>. See <a href="https://gitlab.freedesktop.org/glvnd/libglvnd/-/blob/master/src/EGL/icd_enumeration.md">here</a> for details.</p><p>You can point <code>libglvnd_jll</code> to a libEGL location using the preference <code>"EGL_vendorlib_dirs"</code>:</p><pre><code class="language-julia hljs">using Gtk4 | ||
Gtk4.set_EGL_vendorlib_dirs("/usr/share/glvnd/egl_vendor.d") | ||
[ Info: Setting will take effect after restarting Julia.</code></pre><p>where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. <strong>Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.</strong></p><h2 id="UV-loop-integration"><a class="docs-heading-anchor" href="#UV-loop-integration">UV loop integration</a><a id="UV-loop-integration-1"></a><a class="docs-heading-anchor-permalink" href="#UV-loop-integration" title="Permalink"></a></h2><p>GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently <a href="https://github.com/JuliaGraphics/Gtk.jl/pull/630">disabled</a> because it caused <a href="https://github.com/JuliaGraphics/Gtk.jl/issues/503">slowdowns in multithreaded code</a>. On some Macs, unfortunately, <a href="https://github.com/JuliaGtk/Gtk4.jl/issues/23">REPL lag</a> occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).</p><p>By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference <code>"uv_loop_integration"</code>. If it's set to "enabled", the libuv GSource will be created. If it's set to "disabled", the libuv GSource will not be created, even on Macs in an interactive session. The setting "auto" uses the default behavior. The functions <code>GLib.set_uv_loop_integration</code> and <code>GLib.get_uv_loop_integration</code> can be used to set and get the preference.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../constants_reference/">« Constants</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Sunday 12 November 2023 00:59">Sunday 12 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> | ||
[ Info: Setting will take effect after restarting Julia.</code></pre><p>where "/usr/share/glvnd/egl_vendor.d" is a typical location for Mesa's libEGL (this should be modified if it's somewhere else on your distribution). Other vendor-provided libraries may be in other locations, and a colon-separated list of directories can be used for that situation. <strong>Note that this has only been tested for the Mesa-provided libEGL on Fedora and Ubuntu.</strong></p><h2 id="UV-loop-integration"><a class="docs-heading-anchor" href="#UV-loop-integration">UV loop integration</a><a id="UV-loop-integration-1"></a><a class="docs-heading-anchor-permalink" href="#UV-loop-integration" title="Permalink"></a></h2><p>GTK relies on an event loop (provided by GLib) to process and handle mouse and keyboard events, while Julia relies on its own event loop (provided by libuv) for IO, timers, etc. Interactions between these event loops can cause REPL lag and can interfere with multithreading performance. Explicit integration of the two loops by creating a libuv event source in the GLib main loop is currently <a href="https://github.com/JuliaGraphics/Gtk.jl/pull/630">disabled</a> because it caused <a href="https://github.com/JuliaGraphics/Gtk.jl/issues/503">slowdowns in multithreaded code</a>. On some Macs, unfortunately, <a href="https://github.com/JuliaGtk/Gtk4.jl/issues/23">REPL lag</a> occurs without this explicit integration (explicit in the sense that libuv can insert events in the GLib main loop through its own GSource).</p><p>By default, explicit GLib loop integration is only turned on on Macs in an interactive session. You can override this using the preference <code>"uv_loop_integration"</code>. If it's set to "enabled", the libuv GSource will be created. If it's set to "disabled", the libuv GSource will not be created, even on Macs in an interactive session. The setting "auto" uses the default behavior. The functions <code>GLib.set_uv_loop_integration</code> and <code>GLib.get_uv_loop_integration</code> can be used to set and get the preference.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../constants_reference/">« Constants</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.25 on <span class="colophon-date" title="Sunday 12 November 2023 01:51">Sunday 12 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.