webp-ify more

This commit is contained in:
Emilia 2025-04-25 09:55:31 -06:00
parent 94ff22870b
commit 266cea0f65
Signed by: lynxize
GPG key ID: 8615849B8532CD77
46 changed files with 18 additions and 18 deletions

View file

@ -44,7 +44,7 @@ From poking around on Keychron's website it looked like the simplest route to cu
Firefox doesn't support [webhid](https://caniuse.com/?search=webhid), but Chromium-based browsers do, so I opened up Chromium...
and what's this? An error? Already? I haven't even *done* anything yet.
{{ image(src="/assets/keyboard/keyboard-via-error.png", alt="Screenshot of VIA displaying an error", caption="Extremely useful error message") }}
{{ image(src="/assets/keyboard/keyboard-via-error.webp", alt="Screenshot of VIA displaying an error", caption="Extremely useful error message") }}
Ooookay?
@ -62,7 +62,7 @@ advertising a supposed way to program the lighting using somewhat sketchy-seemin
Soo... (not knowing any better), I guess it's Windows VM time!
{{ image(src="/assets/keyboard/keyboard-windont.png", alt="Windows installation screen inside of QEMU", caption="Ah shit, here we go again") }}
{{ image(src="/assets/keyboard/keyboard-windont.webp", alt="Windows installation screen inside of QEMU", caption="Ah shit, here we go again") }}
Maybe it had something to do with the keyboard itself being unsupported, maybe it was the software,
maybe it was USB device passthrough being weird, but the app always quit with a "no gaming device found" popup and no other useful information.

View file

@ -20,7 +20,7 @@ I got as far as a pig in a spotlight before bad design decisions and my inexperi
*Maybe in retrospect trying to learn graphics programming and C++ at the same time was not the best idea*...
{{ image(src="/assets/6months/pig.png", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
{{ image(src="/assets/6months/pig.webp", alt="Minecraft pig model drawn in front of a space-themed skybox", caption="piiiiiiiggggg") }}
Fast-forward to 8 or so months ago, and I finally thought up a game idea I thought was worth persuing.
Something I could stay motivated to work on in the longer-term, and hopefully stick with long enough to complete.
@ -41,7 +41,7 @@ When I started, [LWJGL](https://github.com/LWJGL/lwjgl3) didn't have bindings fo
The first triangle was fairly straightforward.
{{ image(src="/assets/6months/triangle.png", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
{{ image(src="/assets/6months/triangle.webp", alt="A window displaying a rainbow triangle", caption="hello triangle") }}
And I guess it just spiraled out of control from there. Instead of making a game I've been making a game framework.
@ -92,9 +92,9 @@ I am *very* new to graphics programming, all things considered, and trying to im
I did get some cool screenshots before I realized my game wouldn't even benefit from this kind of lighting in the first place.
I probably could have figured it out if I'd spent a little more time, but I was getting bored.
{{ image(src="/assets/6months/idk.png", alt="Very broken scene", caption="yeah I don't even know lmao") }}
{{ image(src="/assets/6months/idk.webp", alt="Very broken scene", caption="yeah I don't even know lmao") }}
{{ image(src="/assets/6months/brokenrc.png", alt="Very broken scene", caption="significantly closer") }}
{{ image(src="/assets/6months/brokenrc.webp", alt="Very broken scene", caption="significantly closer") }}
{% note() %}
It wasn't helped by the fact that my test scene was almost entirely text and thin debug lines left over from messing with Box2D.
@ -110,7 +110,7 @@ If I could draw the pig with OpenGL, maybe I could do something similar with wha
It went... about as well as could be expected.
{{ image(src="/assets/6months/brokenfox.png", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
{{ image(src="/assets/6months/brokenfox.webp", alt="A fox with extremely broken textures", caption="biblically accurate fox or something idk") }}
I did eventually unbreak the fox and get a cubemap skybox mostly working.
@ -123,7 +123,7 @@ and some [neat tricks](https://www.saschawillems.de/blog/2016/08/13/vulkan-tutor
I initially tried plugging an opus decoder more or less directly into an `SDL_AudioStream`, but it turns out that was a bad idea.
So for now, I'm using [miniaudio](https://miniaud.io/).
{{ image(src="/assets/6months/audio.png", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
{{ image(src="/assets/6months/audio.webp", alt="debug ui for audio, with volume, pitch, and pan options", caption="little sound ui thing I made with Dear ImGui") }}
It supports basically everything I want to do anyway, like audio streaming, looping, pitch and pan modification, and more.
@ -144,7 +144,7 @@ I was almost tempted to try to use [Dear ImGui](https://github.com/ocornut/imgui
I figured drawing [9-slices](https://en.wikipedia.org/wiki/9-slice_scaling) would be a good place to start, using the sprite batch code I'd written earlier.
{{ image(src="/assets/6months/brokenui.png", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
{{ image(src="/assets/6months/brokenui.webp", alt="Extremely broken 9-slice drawing", caption="Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") }}
I decided to try to decouple the layout and the functionality a little, keeping the logic in Kotlin and the layout in [HOCON](https://en.wikipedia.org/wiki/JSON#HOCON).

View file

@ -23,12 +23,12 @@ I'm just going to go with that.
## Wine
My first thought was "well, will it just work with [Wine](https://winehq.org)?"
{{ image(src="/assets/solidworks/wine-installer.png", alt="SolidWorks installer under Wine", caption="So far so good") }}
{{ image(src="/assets/solidworks/wine-installer.webp", alt="SolidWorks installer under Wine", caption="So far so good") }}
No, [of course not](https://appdb.winehq.org/objectManager.php?sClass=application&iId=318).
It's never that easy, is it.
{{ image(src="/assets/solidworks/wine-installer-broken.png", alt="Broken (blank) SolidWorks popup", caption="Should have seen that coming...") }}
{{ image(src="/assets/solidworks/wine-installer-broken.webp", alt="Broken (blank) SolidWorks popup", caption="Should have seen that coming...") }}
There is [an existing script](https://github.com/cryinkfly/SOLIDWORKS-for-Linux) to get SolidWorks to run under [Wine](https://www.winehq.org/),
but even after dissecting it and trying various things with [winetricks](https://github.com/Winetricks/winetricks), I never got the installer
@ -47,7 +47,7 @@ At this point I was getting fairly frustrated and decided to spin up a VM instea
## VM
Using [virt-manager](https://github.com/virt-manager/virt-manager) I set up a quick Windows 10 VM, but quickly hit a wall.
{{ image(src="/assets/solidworks/installer-license.png", alt="SolidWorks license error", caption="Great...") }}
{{ image(src="/assets/solidworks/installer-license.webp", alt="SolidWorks license error", caption="Great...") }}
I'm not paying for my own license. I only use SolidWorks for school projects, and therefore use my school's license, and,
well, I'm not exactly interested in spending [around $3000 per year](https://www.solidworks.com/how-to-buy/solidworks-plans-pricing)
@ -111,19 +111,19 @@ Next you'll need the VirtIO SCSI guest drivers.
[here](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md), which is where I found them.
Grab the ISO, and add it as a virtual CDROM.
{{ image(src="/assets/solidworks/add-driver-cdrom.png", alt="Adding the virtio driver iso as a CDROM", caption="") }}
{{ image(src="/assets/solidworks/add-driver-cdrom.webp", alt="Adding the virtio driver iso as a CDROM", caption="") }}
Next, go to **Boot Options** and ensure the SCSI disk and the Windows installer are both selected.
{{ image(src="/assets/solidworks/boot-options.png", alt="Both devices selected in virt-manager's boot device order", caption="") }}
{{ image(src="/assets/solidworks/boot-options.webp", alt="Both devices selected in virt-manager's boot device order", caption="") }}
Now start the VM, and go through the normal Windows install process until it inevitably complains about not finding any drive to install on.
{{ image(src="/assets/solidworks/windows-no-drives.png", alt="Windows finds no drives to install on", caption="") }}
{{ image(src="/assets/solidworks/windows-no-drives.webp", alt="Windows finds no drives to install on", caption="") }}
Select "Load driver," and select the appropriate driver for the architecture and Windows version.
{{ image(src="/assets/solidworks/windows-install-driver.png", alt="Installing the VirtIO SCSI controller driver", caption="") }}
{{ image(src="/assets/solidworks/windows-install-driver.webp", alt="Installing the VirtIO SCSI controller driver", caption="") }}
Now the device should appear, and you can continue installing Windows as normal.
@ -131,13 +131,13 @@ Once it tries to reboot, remove both virtual SATA CDROMs, and boot into the new
After that, the installer should just work! SolidWorks no longer thinks it's in a VM, and installs normally!
{{ image(src="/assets/solidworks/victory.png", alt="SolidWorks open in a Windows 10 VM", caption="Finally! It works!!!") }}
{{ image(src="/assets/solidworks/victory.webp", alt="SolidWorks open in a Windows 10 VM", caption="Finally! It works!!!") }}
## Other Things
Interestingly, *Windows itself* still knows it's virtualized.
{{ image(src="/assets/solidworks/task-manager.png", alt="Task Manager showing that Windows is virtualized", caption="Virtual machine: Yes") }}
{{ image(src="/assets/solidworks/task-manager.webp", alt="Task Manager showing that Windows is virtualized", caption="Virtual machine: Yes") }}
You can fix this by [disabling the "hypervisor" feature](https://forum.level1techs.com/t/hiding-hypervisor-from-vm-guest/132755).
```xml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB