f3d icon indicating copy to clipboard operation
f3d copied to clipboard

Improve Windows Thumbnailer

Open mwestphal opened this issue 2 years ago • 5 comments

Context F3D thumbnailer implementation on Windows rely on an old Windows standard which requires creating a F3D process every time, which is slow. There is a new standard for thumbnails on Windows that rely on sandboxing and would be much more efficient. We should use that standard.

Skills Needed

  • Windows C++

Is your feature request related to a problem? Please describe. Multiple users remarked that the Windows thumbnailers is not as efficient or as usable as it could be:

  • #777
  • #652
  • #1566

With the stabilisation of the libf3d API and general improvement of the behavior of the libf3d, it seems that now would be a great time to try and improve it again, in a similar direction as the first implementation, but of course, one would need to avoid the issues that the initial implementation had where it would crash fully a user computer if the libf3d segfaults.

Reading microsoft documentation on that regards, it looks like thumbnail should run in a separate process automatically.

Doc

  • Previous implementation: https://github.com/f3d-app/f3d/pull/137
  • https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ee330724(v=vs.85)
  • https://learn.microsoft.com/en-us/previous-versions//bb776855(v=vs.85)
  • https://learn.microsoft.com/en-us/windows/win32/api/thumbcache/nn-thumbcache-ithumbnailprovider
  • https://learn.microsoft.com/en-us/windows/win32/shell/building-thumbnail-providers
  • https://learn.microsoft.com/en-us/windows/win32/shell/thumbnail-providers
  • https://learn.microsoft.com/en-us/windows/win32/shell/thumbnail-provider-guidelines

mwestphal avatar Apr 30 '23 16:04 mwestphal

@jpouderoux your contribution would be very much appreciated here, especially if you remember why you had to use f3d executable to avoid the explorer crash :)

mwestphal avatar Apr 30 '23 16:04 mwestphal

@jpouderoux your contribution would be very much appreciated here, especially if you remember why you had to use f3d executable to avoid the explorer crash :)

Sorry, I just saw your comment. I will try to give a look at it later this week :)

jpouderoux avatar May 09 '23 16:05 jpouderoux

Thanks a lot @jpouderoux ! Do not hesitate to reach out :)

BTW we have a discord now if thats your thing: https://discord.f3d.app

mwestphal avatar May 09 '23 16:05 mwestphal

@jpouderoux did you had a chance to test with the OBJ or STL format since they support streaming now ?

mwestphal avatar Jul 05 '23 06:07 mwestphal

@jpouderoux pinging again 🙏

mwestphal avatar Jan 25 '24 07:01 mwestphal