Bug 1122 - Support multicolor (ARGB) mouse cursors
Summary: Support multicolor (ARGB) mouse cursors
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: VNC (show other bugs)
Version: trunk
Hardware: PC Linux
: P2 Enhancement
Target Milestone: 4.10.0
Assignee: Pierre Ossman
URL:
Keywords: hean01_tester, relnotes, upstream
Depends on: 6116 7158
Blocks: 2427 7374
  Show dependency treegraph
 
Reported: 2005-02-16 14:40 CET by Peter Åstrand
Modified: 2019-09-03 10:07 CEST (History)
2 users (show)

See Also:
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

Description Peter Åstrand cendio 2005-02-16 14:40:47 CET
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 Peter Åstrand cendio 2005-02-16 14:42:37 CET
The easiest way of testing ARGB and animated cursors is to download and install
5507-Golden-XCursors-3D, and then start KDE. 
Comment 2 Peter Åstrand cendio 2005-02-16 14:46:04 CET
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 Peter Åstrand cendio 2009-05-06 19:50:54 CEST
Since SLED11 (and other distros?) uses ARGB cursors by default nowadays, I'll nominate this bug for the next release. 
Comment 4 Pierre Ossman cendio 2010-11-17 11:31:11 CET
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 Pierre Ossman cendio 2011-06-08 18:34:46 CEST
The new viewer and server implements colour support now, but alpha support is still missing.
Comment 6 Pierre Ossman cendio 2017-02-20 13:42:11 CET
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 Pierre Ossman cendio 2017-02-22 17:03:20 CET
Implemented in TigerVNC now:

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

noVNC might need some restructuring given how this extension works.
Comment 8 Henrik Andersson cendio 2018-09-05 11:04:27 CEST
(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 Henrik Andersson cendio 2018-09-18 14:13:25 CEST
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 Henrik Andersson cendio 2018-09-18 14:48:05 CEST
(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 Pierre Ossman cendio 2018-09-25 10:32:09 CEST
> * 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 Pierre Ossman cendio 2018-09-25 16:05:05 CEST
Release notes added in r33738.
Comment 14 Pierre Ossman cendio 2018-09-25 16:05:21 CEST
Everything should be done now. Closing.

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