Skip to content

Oculante next#799

Open
woelper wants to merge 63 commits intomasterfrom
oculante-next
Open

Oculante next#799
woelper wants to merge 63 commits intomasterfrom
oculante-next

Conversation

@woelper
Copy link
Copy Markdown
Owner

@woelper woelper commented Apr 8, 2026

This PR completely removes notan as a dependency. It will use egui exclusively for drawing operations. Please refer to testing.md for a todo list.

@woelper woelper requested a review from Stoppedpuma April 8, 2026 19:25
@Stoppedpuma
Copy link
Copy Markdown
Collaborator

Overall I am quite happy so far, have not run into real deal breakers

Out of curiosity, has there been anything notable so far?

Also regarding self_update, is the removal of the crate for us to use our own implementation insetad, or is the built-in updating feature just being outright removed?

@woelper
Copy link
Copy Markdown
Owner Author

woelper commented Apr 11, 2026

Overall I am quite happy so far, have not run into real deal breakers

Out of curiosity, has there been anything notable so far?

The main panic I had was with shaders and tiled rendering for large images, which worked. Egui seems to not support textures other than 32 bit rgba, so no native grayscale images to save memory or float texures, which is a bit sad. Maybe we can work around it later with something custom.

Also regarding self_update, is the removal of the crate for us to use our own implementation insetad, or is the built-in updating feature just being outright removed?

I think it can be removed completely. It dragged in massive dependencies. Also, I saw problems on Windows and Mac as virus scanners and OS-level threat detection don't like binaries being swapped. So we'd do this only for Linux. I think at this point a regular distribution through native channels like package managers is best.

@Stoppedpuma
Copy link
Copy Markdown
Collaborator

Stoppedpuma commented Apr 11, 2026

Makes sense, my only concern is just that Windows and Mac users generally don't use package managers. Would checking for a new release on launch be something for consideration? This would be a best of both worlds as it doesn't replace binaries, probably needs no new crates, lets us remove self_update, and still informs the user when there's an update available.

Reset view also doesn't seem take panels into consideration anymore:

reset_view.mp4

The 3d2.png test doesn't render at all but image stats update, It doesn't generate a preview image in the file opener either.

@woelper
Copy link
Copy Markdown
Owner Author

woelper commented Apr 13, 2026

Makes sense, my only concern is just that Windows and Mac users generally don't use package managers.
That is a good point. But at present, this behavior (at least in my tests) completely destroyed the app as OS-Level security would block the update and the resulting executable became 0 bytes and unusable. So if anyone used it, the app became broken.

With signing the app, we could release through brew or choco, which could make updates more seamless.

Would checking for a new release on launch be something for consideration? This would be a best of both worlds as it doesn't replace binaries, probably needs no new crates, lets us remove self_update, and still informs the user when there's an update available.

If we do it, I would recommend we do a very basic check if there is a more recent version on github releases that is optional. But we'd reintroduce lots of otherwise unnecessary dependencies such as network, dns, https, semantic versioning etc.

Reset view also doesn't seem take panels into consideration anymore:
reset_view.mp4

Thanks, good find!

The 3d2.png test doesn't render at all but image stats update, It doesn't generate a preview image in the file opener either.

I suspect the image does not decode at all with zune-png - I filed a new report here: etemesi254/zune-image#372

@Stoppedpuma
Copy link
Copy Markdown
Collaborator

That is a good point. But at present, this behavior (at least in my tests) completely destroyed the app as OS-Level security would block the update and the resulting executable became 0 bytes and unusable. So if anyone used it, the app became broken.

It's definitely good to remove this if that's the case.

If we do it, I would recommend we do a very basic check if there is a more recent version on github releases that is optional. But we'd reintroduce lots of otherwise unnecessary dependencies such as network, dns, https, semantic versioning etc.

Fine to drop it then in that case.

With signing the app, we could release through brew or choco, which could make updates more seamless.

Signing is the only thing that's been preventing me from putting Oculante onto brew. As soon as we can get a signed version out there though I can get that PR out there!

App Store releases might interest you as well. Putting an app onto Apple's App Store is part of the Apple Developer Program which I believe you've already paid for to sign the application releases if I recall correctly. The Microsoft store is free for individuals to upload their apps.

https://developer.apple.com/support/compare-memberships/

a

@Stoppedpuma Stoppedpuma added dependencies Issues / PRs related to dependencies next labels Apr 14, 2026
@Stoppedpuma Stoppedpuma moved this to In progress in Oculante Release Plan Apr 14, 2026
@Stoppedpuma
Copy link
Copy Markdown
Collaborator

Fit image on window resize is broken

resize_fit.mp4

@Stoppedpuma
Copy link
Copy Markdown
Collaborator

@woelper would you be able to take a glance at #769 to see about making this happen in this PR as well? This should be possible to do according to the multi touch example on egui.rs:

trackpad.mp4

@Stoppedpuma
Copy link
Copy Markdown
Collaborator

Another issue I just found, the keybinds section doesn't work properly with modifier keys such as shift or control.

CleanShot.2026-05-01.at.17.04.06.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Issues / PRs related to dependencies next

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

2 participants