www.cendio.com
Bug 1122 - Support multicolor (ARGB) mouse cursors
: Support multicolor (ARGB) mouse cursors
Status: CLOSED FIXED
: ThinLinc
VNC
: trunk
: PC Linux
: P2 Enhancement
: 4.10.0
Assigned To:
:
:
: 6116 7158
: 2427 7374
  Show dependency treegraph
 
Reported: 2005-02-16 14:40 by
Modified: 2019-09-03 10:07 (History)
Acceptance Criteria:
* Cursor with alpha channel should be correctly rendered with the native client(s) * 16bit / 24bit cursors themes should still be rendered correctly with the native client(s) * Release note should be added


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2005-02-16 14:40:47
The RENDER extension provides support for multicolor (ARGB) mouse cursors.
Applications usually use the Xcursor library to simplify things. Xvnc (neither
VNC3 nor the VNC4 version) supports this, though. The cursor information in VNC4
is passed down this call chain:

pScreen->DisplayCursor - vncHooksDisplayCursor - XserverDesktop::setCursor -
VNCServerST::setCursor

vncHooksDisplayCursor recieves a CursorPtr argument. This structure only
supports the old "core" cursors. I guess one needs to add support for a newer
API in order to use ARGB cursors. Btw, Xnest doesn't support such cursors
either, at least not in X.Org 6.8.2.
------- Comment #1 From cendio 2005-02-16 14:42:37 -------
The easiest way of testing ARGB and animated cursors is to download and install
5507-Golden-XCursors-3D, and then start KDE. 
------- Comment #2 From cendio 2005-02-16 14:46:04 -------
Another test is to start "kcontrol" and select the mouse theme settings. If you
hover the mouse over the example cursors at the top of the dialogs, you'll see
the animation. 
------- Comment #3 From cendio 2009-05-06 19:50:54 -------
Since SLED11 (and other distros?) uses ARGB cursors by default nowadays, I'll
nominate this bug for the next release. 
------- Comment #4 From cendio 2010-11-17 11:31:11 -------
The VNC protocol supports colour cursors (even though TigerVNC doesn't
implement support properly), but it doesn't support a full alpha channel. We
need a new extension for full support.
------- Comment #5 From cendio 2011-06-08 18:34:46 -------
The new viewer and server implements colour support now, but alpha support is
still missing.
------- Comment #6 From cendio 2017-02-20 13:42:11 -------
FLTK also has a bug on this theme in that it doesn't properly pre-multiply
alpha as required. Fixed upstream in r12177, but needs to be back ported to our
FLTK.
------- Comment #7 From cendio 2017-02-22 17:03:20 -------
Implemented in TigerVNC now:

https://github.com/TigerVNC/tigervnc/pull/418

noVNC might need some restructuring given how this extension works.
------- Comment #8 From cendio 2018-09-05 11:04:27 -------
(In reply to comment #6)
> FLTK also has a bug on this theme in that it doesn't properly pre-multiply
> alpha as required. Fixed upstream in r12177, but needs to be back ported to our
> FLTK.

Upgrade to FLTK 1.3.4-2 on bug #6116 does not include this commit,
tag of 1.3.4-1 release are r12111.
------- Comment #9 From cendio 2018-09-18 14:13:25 -------
Rendering of cursors are broken highly probably cause is FLTK and lack of
premultiplied alpha for cursors (upstream commit r12177).

Let's add patch to cenbuild-fltk and see if solves the problem.
------- Comment #11 From cendio 2018-09-18 14:48:05 -------
(In reply to comment #9)
> Rendering of cursors are broken highly probably cause is FLTK and lack of
> premultiplied alpha for cursors (upstream commit r12177).
> 
> Let's add patch to cenbuild-fltk and see if solves the problem.

Adding patch of r12177 to FLTK solves the problem with black pixel borders
------- Comment #12 From cendio 2018-09-25 10:32:09 -------
> * Cursor with alpha channel should be correctly rendered
>   with the native client(s)

Yup. Tested on Linux, Windows and macOS.

> * 16bit / 24bit cursors themes should still be rendered
>   correctly with the native client(s)

AFAICT. I tested a bunch of different themes with varying color levels.

> * Release note should be added

Nope, they are missing.
------- Comment #13 From cendio 2018-09-25 16:05:05 -------
Release notes added in r33738.
------- Comment #14 From cendio 2018-09-25 16:05:21 -------
Everything should be done now. Closing.