@gjsify/gtk-runtime-win32-x64 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -7
- package/gtk/manifest.json +13 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -141,13 +141,36 @@ both sufficient and the simplest mechanism.
|
|
|
141
141
|
The GdkWin32 backend is compiled **into** `libgtk-4-*.dll` (GTK4 builds every
|
|
142
142
|
backend in), so there is no separate backend DLL — the caches (`loaders.cache`,
|
|
143
143
|
`gschemas.compiled`, `icon-theme.cache`) + the librsvg backer are the
|
|
144
|
-
additions. The
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
that
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
144
|
+
additions. The bundle carries `epoxy-0.dll` — GL *dispatch* — and **no GL
|
|
145
|
+
*implementation***; the builder probes for one and records the answer as
|
|
146
|
+
`manifest.glImplementation` (`--require-gl` makes an empty result fatal, for the
|
|
147
|
+
promotion that ships one). On a host with a vendor OpenGL ICD that is invisible;
|
|
148
|
+
on a GPU-less one (VM, RDP, CI) every `Gtk.GLArea` fails with `No GL
|
|
149
|
+
implementation is available`. Measured on the win11-gjsify VM; tracked as #1097,
|
|
150
|
+
with the reasoning in the webgl-on-win32 entry of `status/open-todos.md`.
|
|
151
|
+
|
|
152
|
+
**Neither obvious way of closing it works as-is**, which is why the bundle still
|
|
153
|
+
ships none — both measured on 0.34.0:
|
|
154
|
+
- *ANGLE* (`libEGL`/`libGLESv2`) is what #1097 proposed, and gvsbuild ships none.
|
|
155
|
+
But adding it would not have helped: this `epoxy-0.dll` is built with **no EGL
|
|
156
|
+
support at all** (no `epoxy_has_egl` export, no `egl*` entry point), so
|
|
157
|
+
`gdk_win32_display_get_egl_display()` can never engage. That needs libepoxy
|
|
158
|
+
rebuilt with `-Degl=enabled` first.
|
|
159
|
+
- *A desktop ICD in `bin/`* (Mesa's `opengl32.dll` + `libgallium_wgl.dll`) is
|
|
160
|
+
inert by PLACEMENT: epoxy loads desktop GL with a bare
|
|
161
|
+
`LoadLibraryA("OPENGL32")`, which Windows answers from the **application
|
|
162
|
+
directory** and then **System32** — never from `PATH`, the only search the
|
|
163
|
+
loader's bundle wiring controls. System32's inbox GL 1.1 wins and GTK4 rejects
|
|
164
|
+
it. Reaching a bundled ICD needs the addon to opt the process into
|
|
165
|
+
`SetDefaultDllDirectories` + `AddDllDirectory(<bundle>/bin)`.
|
|
166
|
+
|
|
167
|
+
**The host-side answer works today** and needs no bundle change: register Mesa as
|
|
168
|
+
a system OpenGL ICD (`mesa-dist-win`'s `systemwidedeploy.cmd 1` writes
|
|
169
|
+
`HKLM\…\OpenGLDrivers\MSOGL` → `mesadrv.dll` and leaves the inbox `opengl32.dll`
|
|
170
|
+
in place as the loader). Measured on the win11-gjsify VM: GDK then reports
|
|
171
|
+
**OpenGL 4.6, non-legacy**, and `three-geometry-teapot` renders.
|
|
172
|
+
|
|
173
|
+
gvsbuild ships the tools this step runs (`gdk-pixbuf-query-loaders`,
|
|
151
174
|
`glib-compile-schemas`, `gtk4-update-icon-cache`, `fc-cache`) in `<prefix>/bin`.
|
|
152
175
|
Each data step is defensive — a missing tree/tool WARNs and continues (the DLL +
|
|
153
176
|
typelib bundle is always produced).
|
package/gtk/manifest.json
CHANGED
|
@@ -131,6 +131,19 @@
|
|
|
131
131
|
"GstApp"
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
|
+
"glImplementation": {
|
|
135
|
+
"matched": [],
|
|
136
|
+
"dispatch": [
|
|
137
|
+
"epoxy-0.dll"
|
|
138
|
+
],
|
|
139
|
+
"patterns": [
|
|
140
|
+
"/^opengl32\\.dll$/i",
|
|
141
|
+
"/^libgallium_wgl\\.dll$/i",
|
|
142
|
+
"/^mesadrv\\.dll$/i",
|
|
143
|
+
"/^libEGL.*\\.dll$/i",
|
|
144
|
+
"/^libGLESv2.*\\.dll$/i"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
134
147
|
"licenses": {
|
|
135
148
|
"notice": "THIRD-PARTY-NOTICES.md",
|
|
136
149
|
"dir": "licenses",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/gtk-runtime-win32-x64",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"description": "Batteries-included GTK/GObject-Introspection runtime bundle for Windows x64 — lets @gjsify/node-gi load gi:// namespaces (GLib/GObject/Gio/cairo/Pango/Graphene/Gdk) with NO gvsbuild/system GTK. Platform-gated (win32/x64 only).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|