ful1e5 / Bibata_Cursor

Open source, compact, and material designed cursor set.
https://www.bibata.live
GNU General Public License v3.0
1.77k stars 70 forks source link

The cursors are displaying blurry #116

Closed tsavpyn closed 1 year ago

tsavpyn commented 1 year ago

Hello.

I have installed the Bibata Modern Classic Cursor by clicking install.inf file.

It was normally installed.

But it was really burry when I am using it. Please see the screenshots.

image

image

So I wonder if there is a way to fix this problem. I would really appreciate it if you could help on this.

Environment: Microsoft Windows 8.1 (Got latest update).

tsavpyn commented 1 year ago

Please let me know if you need more information!

Many thanks.

ful1e5 commented 1 year ago

Bibata 2.0.0 has multiple-size cursor packages available for Windows. Also, you can create a custom-sized Windows cursor by following the README.md#customize-sizes.

happizy commented 1 year ago

the modern-ice small version appears the size of a normal pointer but blurred.... WHAT DID I DO WRONG ???

stanio commented 1 year ago

As far as I see this problem still persists (as of v2.0.3). It is likely more prevalent on HiDPI screens (greater than 100% scaling).

So I've found Greenfish Icon Editor Pro (Debian package also available) and opened few of the default Windows 10 cursor files:

arrow-regular arrow-large arrow-extra-large
working-regular working-large working-extra-large

The difference between regular, large, and extra large appears in the space occupied on the otherwise same-size canvas. All variants provide the same multiple resolutions: 32×32, 48×48, 64×64, 96×96, 128×128. Animated cursors provide just: 32×32, 48×48, 64×64 (I guess to conserve memory usage).

In contrast, the current Bibata Windows package provides:

Small 32×32, regular
Regular 32×32, large
Large 32×32, extra-large
Extra-Large 48×48, extra-large

You may notice "Large" and "Extra-Large" basically provide the same physical size but with two different resolutions.

I've gone ahead and compiled an alternative package (just "Bibata-Modern-Ice" as I'm doing it manually):

See an approximate preview of the old (original) and new (stanio) versions:

Old New
old-small new-regular
old-regular new-large
old-large new-extra-large
old-extra-large new-extra-large

I've basically merged the original "Large" and "Extra-Large" into a new "Extra-Large", and augmented it with 64×64, 96×96, and 128×128 resolutions. I've then enlarged the source bitmaps' canvases (200×200) into two more variants for "Large" (250×250) and "Regular" (300×300), padding with empty space to the bottom right. I've scaled the source bitmaps to the target resolutions. I've had to manually adjust the hotspots for the "Large" and "Regular" variants (maybe I could have reused the originals by padding the view-boxes/canvases evenly on all sides). Hope this could be of help to anyone trying these cursors on Windows.


I couldn't make the suggested "Build From Source" setup working with a WSL instance. I don't know if the author could look further into to it to produce official Windows packages as suggested here.

tsavpyn commented 1 year ago

Well, it's working well on my new PC now. My old PC was standard 2K, and I have changed it to 150%. But my new PC is 1920x1080, and it's 125%. Everything is normal on it. I have no idea why. It just works.

stanio commented 1 year ago

I've gone ahead and compiled an alternative package (just "Bibata-Modern-Ice" as I'm doing it manually):

Second revision (I had messed up the 96×96 resolutions of two of the extra-large cursors):

Well, it's working well on my new PC now. My old PC was standard 2K, and I have changed it to 150%. But my new PC is 1920x1080, and it's 125%. Everything is normal on it. I have no idea why. It just works.

I only speculate you might not be seeing a big enough difference. On 150% scaling, the original Extra-Large (48×48) should result in no additional scaling. Could you try my version and see if you find any difference?

I'm on 200% scaling (15" 2880×1620), thus the standard cursor resolution is 64×64. I'm also setting cursor size 2 (+1) in "Ease of Access / Mouse pointer":

ease-of-access-mouse-pointer

This results in using 96×96 standard cursor resolution. I'm using a regular size cursor scheme with +1 cursor size in "Ease of Access" settings vs. using a large/extra-large scheme, as the "Ease of Access" setting causes custom application cursors to get enlarged as well (although they might get blurrier).

On my screen I can definitely see the original Extra-Large (48×48) is less blurry than the original Large (32×32) but the blurriness is still noticeable (the Extra-Large and Large otherwise show the same physical size). Looking very closely I can see a small amount of blurriness with the enhanced-resolution animated cursors (my version) that provide a maximum resolution of 64×64, but it is small enough for me to not notice it during normal usage (that appears to be the case with the default Windows cursors scheme as well).

stanio commented 1 year ago

Could you try my version and see if you find any difference?

Specifically, try the original small, regular, and large, and compare to my regular, large, and extra-large variants.

silverwings15 commented 1 year ago

@stanio working great, thank you. i've experienced the same issue across other sets by @ful1e5, hopefully they will get a similar fix soon

stanio commented 9 months ago

I had the following revision done already before. Archiving it here for the benefit of others:

Notes from the top of my mind:

stanio commented 9 months ago

And following the v2.0.4 release here's an initial revision to what I think should be included in the official release:

Notes:

Specific to this package is: I've generated all individual resolutions from the SVG sources, and not used one bigger bitmap source to downscale all the rest. This should generally provide the best quality but differences may be minimal enough to deem it unnecessary. What I've noticed during this exercise is yarn render produces a variable frame count (every time) for the animated cursors which could be observed even in the official bitmaps.zip package:

     47 Bibata-Modern-Amber/left_ptr_watch
     65 Bibata-Modern-Amber/wait
     56 Bibata-Modern-Classic/left_ptr_watch
     68 Bibata-Modern-Classic/wait
     51 Bibata-Modern-Ice/left_ptr_watch
     65 Bibata-Modern-Ice/wait
     52 Bibata-Original-Amber/left_ptr_watch
     67 Bibata-Original-Amber/wait
     49 Bibata-Original-Classic/left_ptr_watch
     68 Bibata-Original-Classic/wait
     65 Bibata-Original-Ice/left_ptr_watch
     68 Bibata-Original-Ice/wait

This is problematic when trying to compose multi-resolution animated cursors as the frame count for all resolutions should match, but I've managed to trim and match as necessary. The generated frames may appear unevenly spaced (in time), also. This all may be related to the speed/performance of the build machine, but shouldn't happen in my opinion – nothing real-time is required.