Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
libvncserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rasky
libvncserver
Commits
2bc615f6
Commit
2bc615f6
authored
Feb 05, 2005
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc -solid color, -opts; tightvnc unix viewer alpha patch
parent
914f7b71
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1155 additions
and
405 deletions
+1155
-405
ChangeLog
ChangeLog
+5
-0
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
+143
-0
ChangeLog
x11vnc/ChangeLog
+4
-0
README
x11vnc/README
+463
-357
tkx11vnc
x11vnc/tkx11vnc
+11
-2
tkx11vnc.h
x11vnc/tkx11vnc.h
+11
-2
x11vnc.1
x11vnc/x11vnc.1
+42
-20
x11vnc.c
x11vnc/x11vnc.c
+476
-24
No files found.
ChangeLog
View file @
2bc615f6
2005-02-05 Karl Runge <runge@karlrunge.com>
* x11vnc: -solid color, -opts/-?
* tightvnc-1.3dev5-vncviewer-alpha-cursor.patch: create, name
says it all.
2005-01-23 Karl Runge <runge@karlrunge.com>
2005-01-23 Karl Runge <runge@karlrunge.com>
* x11vnc: -timeout, -noalphablend. make -R norepeat work.
* x11vnc: -timeout, -noalphablend. make -R norepeat work.
* sync with new draw cursor mechanism.
* sync with new draw cursor mechanism.
...
...
tightvnc-1.3dev5-vncviewer-alpha-cursor.patch
0 → 100644
View file @
2bc615f6
--- vnc_unixsrc.orig/vncviewer/cursor.c 2003-01-15 04:46:52.000000000 -0500
+++ vnc_unixsrc/vncviewer/cursor.c 2005-02-05 12:28:10.000000000 -0500
@@ -472,6 +472,140 @@
int offset, bytesPerPixel;
char *pos;
+#define alphahack
+#ifdef alphahack
+ /* hack to have cursor transparency at 32bpp <runge@karlrunge.com> */
+ static int alphablend = -1;
+
+ if (alphablend < 0) {
+ /* you have to set NO_ALPHABLEND=1 in your environment to disable */
+ if (getenv("NO_ALPHABLEND")) {
+ alphablend = 0;
+ } else {
+ alphablend = 1;
+ }
+ }
+
+ bytesPerPixel = myFormat.bitsPerPixel / 8;
+
+ if (alphablend && bytesPerPixel == 4) {
+ unsigned long pixel, put, *upos, *upix;
+ int got_alpha = 0, rsX, rsY, rsW, rsH;
+ static XImage *image = NULL;
+ static int iwidth = 128;
+
+ if (! image) {
+ /* watch out for tiny fb (rare) */
+ if (iwidth > si.framebufferWidth) {
+ iwidth = si.framebufferWidth;
+ }
+ if (iwidth > si.framebufferHeight) {
+ iwidth = si.framebufferHeight;
+ }
+
+ /* initialize an XImage with a chunk of desktopWin */
+ image = XGetImage(dpy, desktopWin, 0, 0, iwidth, iwidth,
+ AllPlanes, ZPixmap);
+ }
+
+ /* first check if there is any non-zero alpha channel data at all: */
+ for (y = 0; y < rcHeight; y++) {
+ for (x = 0; x < rcWidth; x++) {
+ int alpha;
+
+ offset = y * rcWidth + x;
+ pos = (char *)&rcSource[offset * bytesPerPixel];
+
+ upos = (unsigned long *) pos;
+ alpha = (*upos & 0xff000000) >> 24;
+ if (alpha) {
+ got_alpha = 1;
+ break;
+ }
+ }
+ if (got_alpha) {
+ break;
+ }
+ }
+
+ if (!got_alpha) {
+ /* no alpha channel data, fallback to the old way */
+ goto oldway;
+ }
+
+ /* load the saved fb patch in to image (faster way?) */
+ XGetSubImage(dpy, rcSavedArea, 0, 0, rcWidth, rcHeight,
+ AllPlanes, ZPixmap, image, 0, 0);
+ upix = (unsigned long *)image->data;
+
+ /* if the richcursor is clipped, the fb patch will be smaller */
+ rsW = rcWidth;
+ rsX = 0; /* used to denote a shift from the left side */
+ x = rcCursorX - rcHotX;
+ if (x < 0) {
+ rsW += x;
+ rsX = -x;
+ } else if (x + rsW > si.framebufferWidth) {
+ rsW = si.framebufferWidth - x;
+ }
+ rsH = rcHeight;
+ rsY = 0; /* used to denote a shift from the top side */
+ y = rcCursorY - rcHotY;
+ if (y < 0) {
+ rsH += y;
+ rsY = -y;
+ } else if (y + rsH > si.framebufferHeight) {
+ rsH = si.framebufferHeight - y;
+ }
+
+ /*
+ * now loop over the cursor data, blend in the fb values,
+ * and then overwrite the fb (CopyDataToScreen())
+ */
+ for (y = 0; y < rcHeight; y++) {
+ y0 = rcCursorY - rcHotY + y;
+ if (y0 < 0 || y0 >= si.framebufferHeight) {
+ continue; /* clipped */
+ }
+ for (x = 0; x < rcWidth; x++) {
+ int alpha, color_curs, color_fb, i;
+
+ x0 = rcCursorX - rcHotX + x;
+ if (x0 < 0 || x0 >= si.framebufferWidth) {
+ continue; /* clipped */
+ }
+
+ offset = y * rcWidth + x;
+ pos = (char *)&rcSource[offset * bytesPerPixel];
+
+ /* extract secret alpha byte from rich cursor: */
+ upos = (unsigned long *) pos;
+ alpha = (*upos & 0xff000000) >> 24; /* XXX MSB? */
+
+ /* extract the pixel from the fb: */
+ pixel = *(upix + (y-rsY)*iwidth + (x-rsX));
+
+ put = 0;
+ /* for simplicity, blend all 4 bytes */
+ for (i = 0; i < 4; i++) {
+ int sh = i*8;
+ color_curs = ((0xff << sh) & *upos) >> sh;
+ color_fb = ((0xff << sh) & pixel) >> sh;
+
+ /* XXX assumes pre-multipled color_curs */
+ color_fb = color_curs
+ + ((0xff - alpha) * color_fb)/0xff;
+ put |= color_fb << sh;
+ }
+ /* place in the fb: */
+ CopyDataToScreen((char *)&put, x0, y0, 1, 1);
+ }
+ }
+ return;
+ }
+oldway:
+#endif
+
bytesPerPixel = myFormat.bitsPerPixel / 8;
/* FIXME: Speed optimization is possible. */
x11vnc/ChangeLog
View file @
2bc615f6
2005-02-05 Karl Runge <runge@karlrunge.com>
* -solid solid color background when clients are connected.
* -opts/-? to show option names only.
2005-01-23 Karl Runge <runge@karlrunge.com>
2005-01-23 Karl Runge <runge@karlrunge.com>
* sync with new draw cursor mechanism, keep old way in OLD_TREE.
* sync with new draw cursor mechanism, keep old way in OLD_TREE.
* add -timeout option, change -alphablend to be default
* add -timeout option, change -alphablend to be default
...
...
x11vnc/README
View file @
2bc615f6
This diff is collapsed.
Click to expand it.
x11vnc/tkx11vnc
View file @
2bc615f6
...
@@ -120,6 +120,9 @@ Screen
...
@@ -120,6 +120,9 @@ Screen
=DP blackout:
=DP blackout:
=D xinerama
=D xinerama
--
--
solid
solid_color:
--
= xrandr
= xrandr
=-C:resize,newfbsize,exit xrandr_mode:
=-C:resize,newfbsize,exit xrandr_mode:
padgeom:
padgeom:
...
@@ -127,9 +130,9 @@ Screen
...
@@ -127,9 +130,9 @@ Screen
Keyboard
Keyboard
norepeat
norepeat
add_keysyms
add_keysyms
skip_keycodes:
modtweak
modtweak
xkb
xkb
skip_keycodes:
--
--
=FP remap:
=FP remap:
--
--
...
@@ -320,6 +323,10 @@ Shows a menu of currently connected VNC clients on the x11vnc server.
...
@@ -320,6 +323,10 @@ Shows a menu of currently connected VNC clients on the x11vnc server.
Allows you to find more information about them or disconnect them.
Allows you to find more information about them or disconnect them.
You will be prompted to confirm any disconnections.
You will be prompted to confirm any disconnections.
"
set
helptext
(
solid_color
)
"
Set the -solid color value.
"
"
set
helptext
(
xrandr_mode
)
"
set
helptext
(
xrandr_mode
)
"
...
@@ -390,7 +397,7 @@ will be \"(*none*)\" when there is no connection established.
...
@@ -390,7 +397,7 @@ will be \"(*none*)\" when there is no connection established.
4) Below the x11 and vnc displays text label is a text area there scrolling
4) Below the x11 and vnc displays text label is a text area there scrolling
information about actions being taken and commands being run is displayed.
information about actions being taken and commands being run is displayed.
To scroll use PageUp/PageDown or the arrow keys.
To scroll
click in the area and
use PageUp/PageDown or the arrow keys.
5) At the bottom is an entry area. When one selects a menu item that
5) At the bottom is an entry area. When one selects a menu item that
requires supplying a string value, the label will be set to the
requires supplying a string value, the label will be set to the
...
@@ -2319,6 +2326,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} {
...
@@ -2319,6 +2326,8 @@ proc get_start_x11vnc_cmd {{show_rc 0}} {
set nitem "sb"
set nitem "sb"
} elseif {
$nitem
== "xrandr_mode"} {
} elseif {
$nitem
== "xrandr_mode"} {
set nitem "xrandr"
set nitem "xrandr"
} elseif {
$nitem
== "solid_color"} {
set nitem "solid"
}
}
lappend cmd "-
$nitem
"
lappend cmd "-
$nitem
"
lappend cmd
$menu_var
(
$item
)
lappend cmd
$menu_var
(
$item
)
...
...
x11vnc/tkx11vnc.h
View file @
2bc615f6
...
@@ -126,6 +126,9 @@
...
@@ -126,6 +126,9 @@
" =DP blackout:
\n
"
" =DP blackout:
\n
"
" =D xinerama
\n
"
" =D xinerama
\n
"
" --
\n
"
" --
\n
"
" solid
\n
"
" solid_color:
\n
"
" --
\n
"
" = xrandr
\n
"
" = xrandr
\n
"
" =-C:resize,newfbsize,exit xrandr_mode:
\n
"
" =-C:resize,newfbsize,exit xrandr_mode:
\n
"
" padgeom:
\n
"
" padgeom:
\n
"
...
@@ -133,9 +136,9 @@
...
@@ -133,9 +136,9 @@
"Keyboard
\n
"
"Keyboard
\n
"
" norepeat
\n
"
" norepeat
\n
"
" add_keysyms
\n
"
" add_keysyms
\n
"
" skip_keycodes:
\n
"
" modtweak
\n
"
" modtweak
\n
"
" xkb
\n
"
" xkb
\n
"
" skip_keycodes:
\n
"
" --
\n
"
" --
\n
"
" =FP remap:
\n
"
" =FP remap:
\n
"
" --
\n
"
" --
\n
"
...
@@ -328,6 +331,10 @@
...
@@ -328,6 +331,10 @@
"You will be prompted to confirm any disconnections.
\n
"
"You will be prompted to confirm any disconnections.
\n
"
"
\"\n
"
"
\"\n
"
"
\n
"
"
\n
"
" set helptext(solid_color)
\"\n
"
"Set the -solid color value.
\n
"
"
\"\n
"
"
\n
"
" set helptext(xrandr_mode)
\"\n
"
" set helptext(xrandr_mode)
\"\n
"
"Set the -xrandr mode value.
\n
"
"Set the -xrandr mode value.
\n
"
"
\"\n
"
"
\"\n
"
...
@@ -396,7 +403,7 @@
...
@@ -396,7 +403,7 @@
"
\n
"
"
\n
"
"4) Below the x11 and vnc displays text label is a text area there scrolling
\n
"
"4) Below the x11 and vnc displays text label is a text area there scrolling
\n
"
"information about actions being taken and commands being run is displayed.
\n
"
"information about actions being taken and commands being run is displayed.
\n
"
"To scroll use PageUp/PageDown or the arrow keys.
\n
"
"To scroll
click in the area and
use PageUp/PageDown or the arrow keys.
\n
"
"
\n
"
"
\n
"
"5) At the bottom is an entry area. When one selects a menu item that
\n
"
"5) At the bottom is an entry area. When one selects a menu item that
\n
"
"requires supplying a string value, the label will be set to the
\n
"
"requires supplying a string value, the label will be set to the
\n
"
...
@@ -2325,6 +2332,8 @@
...
@@ -2325,6 +2332,8 @@
" set nitem
\"
sb
\"\n
"
" set nitem
\"
sb
\"\n
"
" } elseif {$nitem ==
\"
xrandr_mode
\"
} {
\n
"
" } elseif {$nitem ==
\"
xrandr_mode
\"
} {
\n
"
" set nitem
\"
xrandr
\"\n
"
" set nitem
\"
xrandr
\"\n
"
" } elseif {$nitem ==
\"
solid_color
\"
} {
\n
"
" set nitem
\"
solid
\"\n
"
" }
\n
"
" }
\n
"
" lappend cmd
\"
-$nitem
\"\n
"
" lappend cmd
\"
-$nitem
\"\n
"
" lappend cmd $menu_var($item)
\n
"
" lappend cmd $menu_var($item)
\n
"
...
...
x11vnc/x11vnc.1
View file @
2bc615f6
.\" This file was automatically generated from x11vnc -help output.
.\" This file was automatically generated from x11vnc -help output.
.TH X11VNC "1" "
Jan
uary 2005" "x11vnc " "User Commands"
.TH X11VNC "1" "
Febr
uary 2005" "x11vnc " "User Commands"
.SH NAME
.SH NAME
x11vnc - allow VNC connections to real X11 displays
x11vnc - allow VNC connections to real X11 displays
version: 0.7.1pre, lastmod: 2005-0
1-23
version: 0.7.1pre, lastmod: 2005-0
2-05
.SH SYNOPSIS
.SH SYNOPSIS
.B x11vnc
.B x11vnc
[OPTION]...
[OPTION]...
...
@@ -351,6 +351,22 @@ Do not use the new copy_tiles() framebuffer mechanism,
...
@@ -351,6 +351,22 @@ Do not use the new copy_tiles() framebuffer mechanism,
just use 1 shm tile for polling. Limits shm segments
just use 1 shm tile for polling. Limits shm segments
used to 3.
used to 3.
.PP
.PP
\fB-solid\fR \fI[color]\fR
.IP
To improve performance, when VNC clients are connected
try to change the desktop background to a solid color.
The [color] is optional: the default color is "cyan4".
For a different one specify the X color (rgb.txt name,
e.g. "darkblue" or numerical "#RRGGBB"). Currently
this option only works on GNOME, KDE, and classic X
(i.e. with the background image on the root window).
The "gconftool-2" and "dcop" external commands are
run for GNOME and KDE respectively. Other desktops
won't work, e.g. XFCE (send us the corresponding
commands if you find them). If x11vnc guesses your
desktop incorrectly, you can force it by prefixing
color with "gnome:", "kde:", or "root:".
.PP
\fB-blackout\fR \fIstring\fR
\fB-blackout\fR \fIstring\fR
.IP
.IP
Black out rectangles on the screen. \fIstring\fR is a
Black out rectangles on the screen. \fIstring\fR is a
...
@@ -426,6 +442,7 @@ Do not process any .x11vncrc file for options.
...
@@ -426,6 +442,7 @@ Do not process any .x11vncrc file for options.
\fB-h,\fR \fB-help\fR
\fB-h,\fR \fB-help\fR
.IP
.IP
Print this help text.
Print this help text.
-?, \fB-opts\fR Only list the x11vnc options.
.PP
.PP
\fB-V,\fR \fB-version\fR
\fB-V,\fR \fB-version\fR
.IP
.IP
...
@@ -764,11 +781,11 @@ pointer events). Also note that these modes are not
...
@@ -764,11 +781,11 @@ pointer events). Also note that these modes are not
available in \fB-threads\fR mode which has its own pointer
available in \fB-threads\fR mode which has its own pointer
event handling mechanism.
event handling mechanism.
.IP
.IP
To try out the different pointer modes to see
To try out the different pointer modes to see
which
which one gives the best response for your usage,
one gives the best response for your usage, it is
it is convenient to use the remote control function,
convenient to use the remote control function, for
e
.g. "x11vnc \fB-R\fR pointer_mode:4" or the tcl/tk gui
e
xample "x11vnc \fB-R\fR pm:4" or the tcl/tk gui (Tuning ->
(Tuning ->
pointer_mode -> n).
pointer_mode -> n).
.PP
.PP
\fB-input_skip\fR \fIn\fR
\fB-input_skip\fR \fIn\fR
.IP
.IP
...
@@ -1065,6 +1082,12 @@ onetile enable \fB-onetile\fR mode. (you may need to
...
@@ -1065,6 +1082,12 @@ onetile enable \fB-onetile\fR mode. (you may need to
.IP
.IP
noonetile disable \fB-onetile\fR mode.
noonetile disable \fB-onetile\fR mode.
.IP
.IP
solid enable \fB-solid\fR mode
.IP
nosolid disable \fB-solid\fR mode.
.IP
solid_color:color set \fB-solid\fR color (and apply it).
.IP
blackout:str set \fB-blackout\fR "str" (empty to disable).
blackout:str set \fB-blackout\fR "str" (empty to disable).
See \fB-blackout\fR for the form of "str"
See \fB-blackout\fR for the form of "str"
(basically: WxH+X+Y,...)
(basically: WxH+X+Y,...)
...
@@ -1130,8 +1153,6 @@ bell enable bell (if supported).
...
@@ -1130,8 +1153,6 @@ bell enable bell (if supported).
.IP
.IP
nobell disable bell.
nobell disable bell.
.IP
.IP
bell enable bell (if supported).
.IP
nosel enable \fB-nosel\fR mode.
nosel enable \fB-nosel\fR mode.
.IP
.IP
sel disable \fB-nosel\fR mode.
sel disable \fB-nosel\fR mode.
...
@@ -1315,17 +1336,18 @@ refresh reset close disconnect id sid waitmapped
...
@@ -1315,17 +1336,18 @@ refresh reset close disconnect id sid waitmapped
nowaitmapped flashcmap noflashcmap truecolor notruecolor
nowaitmapped flashcmap noflashcmap truecolor notruecolor
overlay nooverlay overlay_cursor overlay_yescursor
overlay nooverlay overlay_cursor overlay_yescursor
nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
nooverlay_nocursor nooverlay_cursor nooverlay_yescursor
overlay_nocursor visual scale viewonly noviewonly shared
overlay_nocursor visual scale viewonly noviewonly
noshared forever noforever once timeout deny lock nodeny
shared noshared forever noforever once timeout deny
unlock connect allowonce allow localhost nolocalhost
lock nodeny unlock connect allowonce allow localhost
accept gone shm noshm flipbyteorder noflipbyteorder
nolocalhost accept gone shm noshm flipbyteorder
onetile noonetile blackout xinerama noxinerama xrandr
noflipbyteorder onetile noonetile solid_color solid
noxrandr xrandr_mode padgeom quiet q noquiet modtweak
nosolid blackout xinerama noxinerama xrandr noxrandr
nomodtweak xkb noxkb skip_keycodes add_keysyms
xrandr_mode padgeom quiet q noquiet modtweak nomodtweak
noadd_keysyms clear_mods noclear_mods clear_keys
xkb noxkb skip_keycodes add_keysyms noadd_keysyms
noclear_keys remap repeat norepeat fb nofb bell nobell
clear_mods noclear_mods clear_keys noclear_keys
sel nosel primary noprimary cursorshape nocursorshape
remap repeat norepeat fb nofb bell nobell sel nosel
cursorpos nocursorpos cursor show_cursor noshow_cursor
primary noprimary cursorshape nocursorshape cursorpos
nocursorpos cursor show_cursor noshow_cursor
nocursor xfixes noxfixes alphacut alphafrac
nocursor xfixes noxfixes alphacut alphafrac
alpharemove noalpharemove alphablend noalphablend
alpharemove noalpharemove alphablend noalphablend
xwarp xwarppointer noxwarp noxwarppointer buttonmap
xwarp xwarppointer noxwarp noxwarppointer buttonmap
...
...
x11vnc/x11vnc.c
View file @
2bc615f6
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment