From 2ad5df96a391c0b3a87acd303be08f88c433cc93 Mon Sep 17 00:00:00 2001 From: Koichiro IWAO Date: Tue, 17 Apr 2018 13:26:18 +0900 Subject: [PATCH 1/2] Remove x11rdp from xrdp repository Now x11rdp is replaced with xorgxrdp. Deprecating it. Repository moved to https://github.com/neutrinolabs/x11rdp. --- xorg/.gitignore | 1 - xorg/X11R7.6/.gitignore | 3 - xorg/X11R7.6/Mesa-7.10.3.patch | 11 - xorg/X11R7.6/buildx.sh | 299 --- xorg/X11R7.6/cleanx.sh | 102 - xorg/X11R7.6/libXext-1.2.0.patch | 13 - xorg/X11R7.6/libpciaccess-0.12.0.patch | 24 - xorg/X11R7.6/pixman-0.30.0.patch | 11 - xorg/X11R7.6/rdp/.gitignore | 1 - xorg/X11R7.6/rdp/Makefile | 112 - xorg/X11R7.6/rdp/gcops.h | 35 - xorg/X11R7.6/rdp/rdp.h | 784 ------ xorg/X11R7.6/rdp/rdpComposite.c | 846 ------ xorg/X11R7.6/rdp/rdpCopyArea.c | 630 ----- xorg/X11R7.6/rdp/rdpCopyArea.h | 29 - xorg/X11R7.6/rdp/rdpCopyPlane.c | 241 -- xorg/X11R7.6/rdp/rdpCopyPlane.h | 30 - xorg/X11R7.6/rdp/rdpFillPolygon.c | 251 -- xorg/X11R7.6/rdp/rdpFillPolygon.h | 30 - xorg/X11R7.6/rdp/rdpFillSpans.c | 121 - xorg/X11R7.6/rdp/rdpFillSpans.h | 29 - xorg/X11R7.6/rdp/rdpImageGlyphBlt.c | 219 -- xorg/X11R7.6/rdp/rdpImageGlyphBlt.h | 30 - xorg/X11R7.6/rdp/rdpImageText16.c | 218 -- xorg/X11R7.6/rdp/rdpImageText16.h | 29 - xorg/X11R7.6/rdp/rdpImageText8.c | 218 -- xorg/X11R7.6/rdp/rdpImageText8.h | 29 - xorg/X11R7.6/rdp/rdpPolyArc.c | 248 -- xorg/X11R7.6/rdp/rdpPolyArc.h | 28 - xorg/X11R7.6/rdp/rdpPolyFillArc.c | 248 -- xorg/X11R7.6/rdp/rdpPolyFillArc.h | 28 - xorg/X11R7.6/rdp/rdpPolyFillRect.c | 319 --- xorg/X11R7.6/rdp/rdpPolyFillRect.h | 29 - xorg/X11R7.6/rdp/rdpPolyGlyphBlt.c | 220 -- xorg/X11R7.6/rdp/rdpPolyGlyphBlt.h | 30 - xorg/X11R7.6/rdp/rdpPolyPoint.c | 307 --- xorg/X11R7.6/rdp/rdpPolyPoint.h | 29 - xorg/X11R7.6/rdp/rdpPolyRectangle.c | 323 --- xorg/X11R7.6/rdp/rdpPolyRectangle.h | 29 - xorg/X11R7.6/rdp/rdpPolySegment.c | 240 -- xorg/X11R7.6/rdp/rdpPolySegment.h | 28 - xorg/X11R7.6/rdp/rdpPolyText16.c | 220 -- xorg/X11R7.6/rdp/rdpPolyText16.h | 29 - xorg/X11R7.6/rdp/rdpPolyText8.c | 220 -- xorg/X11R7.6/rdp/rdpPolyText8.h | 29 - xorg/X11R7.6/rdp/rdpPolylines.c | 290 -- xorg/X11R7.6/rdp/rdpPolylines.h | 29 - xorg/X11R7.6/rdp/rdpPushPixels.c | 214 -- xorg/X11R7.6/rdp/rdpPushPixels.h | 29 - xorg/X11R7.6/rdp/rdpPutImage.c | 214 -- xorg/X11R7.6/rdp/rdpPutImage.h | 29 - xorg/X11R7.6/rdp/rdpSetSpans.c | 172 -- xorg/X11R7.6/rdp/rdpSetSpans.h | 29 - xorg/X11R7.6/rdp/rdpdraw.c | 1536 ----------- xorg/X11R7.6/rdp/rdpdraw.h | 48 - xorg/X11R7.6/rdp/rdpglyph.c | 862 ------ xorg/X11R7.6/rdp/rdpglyph.h | 64 - xorg/X11R7.6/rdp/rdpinput.c | 987 ------- xorg/X11R7.6/rdp/rdpkeyboard.c | 95 - xorg/X11R7.6/rdp/rdpkeyboard.h | 68 - xorg/X11R7.6/rdp/rdpkeyboardbase.c | 301 --- xorg/X11R7.6/rdp/rdpkeyboardbase.h | 30 - xorg/X11R7.6/rdp/rdpkeyboardevdev.c | 300 --- xorg/X11R7.6/rdp/rdpkeyboardevdev.h | 30 - xorg/X11R7.6/rdp/rdpmain.c | 857 ------ xorg/X11R7.6/rdp/rdpmisc.c | 696 ----- xorg/X11R7.6/rdp/rdprandr.c | 456 ---- xorg/X11R7.6/rdp/rdprandr.h | 63 - xorg/X11R7.6/rdp/rdpup.c | 2990 --------------------- xorg/X11R7.6/rdp/rdpxv.c | 448 --- xorg/X11R7.6/x11_file_list.txt | 101 - xorg/X11R7.6/xkeyboard-config-2.0.patch | 88 - xorg/X11R7.6/xorg-server-1.9.3.patch | 10 - xorg/debuild/debX11rdp.sh | 30 - xorg/debuild/x11rdp-files/DEBIAN/control | 7 - xorg/debuild/x11rdp-files/DEBIAN/postinst | 18 - xorg/readme.txt | 2 - xorg/tests/nx/client.sh | 16 - xorg/tests/nx/server.sh | 14 - xorg/tests/randr/Makefile | 11 - xorg/tests/randr/trandr.c | 146 - xorg/tests/xdemo/Makefile | 11 - xorg/tests/xdemo/README.txt | 3 - xorg/tests/xdemo/bmp_parser.c | 238 -- xorg/tests/xdemo/common.h | 37 - xorg/tests/xdemo/xdemo.c | 897 ------- xorg/tests/xdemo/yosemite.bmp | Bin 1843254 -> 0 bytes 87 files changed, 19416 deletions(-) delete mode 100644 xorg/.gitignore delete mode 100644 xorg/X11R7.6/.gitignore delete mode 100644 xorg/X11R7.6/Mesa-7.10.3.patch delete mode 100755 xorg/X11R7.6/buildx.sh delete mode 100755 xorg/X11R7.6/cleanx.sh delete mode 100644 xorg/X11R7.6/libXext-1.2.0.patch delete mode 100644 xorg/X11R7.6/libpciaccess-0.12.0.patch delete mode 100644 xorg/X11R7.6/pixman-0.30.0.patch delete mode 100644 xorg/X11R7.6/rdp/.gitignore delete mode 100644 xorg/X11R7.6/rdp/Makefile delete mode 100644 xorg/X11R7.6/rdp/gcops.h delete mode 100644 xorg/X11R7.6/rdp/rdp.h delete mode 100644 xorg/X11R7.6/rdp/rdpComposite.c delete mode 100644 xorg/X11R7.6/rdp/rdpCopyArea.c delete mode 100644 xorg/X11R7.6/rdp/rdpCopyArea.h delete mode 100644 xorg/X11R7.6/rdp/rdpCopyPlane.c delete mode 100644 xorg/X11R7.6/rdp/rdpCopyPlane.h delete mode 100644 xorg/X11R7.6/rdp/rdpFillPolygon.c delete mode 100644 xorg/X11R7.6/rdp/rdpFillPolygon.h delete mode 100644 xorg/X11R7.6/rdp/rdpFillSpans.c delete mode 100644 xorg/X11R7.6/rdp/rdpFillSpans.h delete mode 100644 xorg/X11R7.6/rdp/rdpImageGlyphBlt.c delete mode 100644 xorg/X11R7.6/rdp/rdpImageGlyphBlt.h delete mode 100644 xorg/X11R7.6/rdp/rdpImageText16.c delete mode 100644 xorg/X11R7.6/rdp/rdpImageText16.h delete mode 100644 xorg/X11R7.6/rdp/rdpImageText8.c delete mode 100644 xorg/X11R7.6/rdp/rdpImageText8.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyArc.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyArc.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyFillArc.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyFillArc.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyFillRect.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyFillRect.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyGlyphBlt.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyGlyphBlt.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyPoint.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyPoint.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyRectangle.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyRectangle.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolySegment.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolySegment.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyText16.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyText16.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolyText8.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolyText8.h delete mode 100644 xorg/X11R7.6/rdp/rdpPolylines.c delete mode 100644 xorg/X11R7.6/rdp/rdpPolylines.h delete mode 100644 xorg/X11R7.6/rdp/rdpPushPixels.c delete mode 100644 xorg/X11R7.6/rdp/rdpPushPixels.h delete mode 100644 xorg/X11R7.6/rdp/rdpPutImage.c delete mode 100644 xorg/X11R7.6/rdp/rdpPutImage.h delete mode 100644 xorg/X11R7.6/rdp/rdpSetSpans.c delete mode 100644 xorg/X11R7.6/rdp/rdpSetSpans.h delete mode 100644 xorg/X11R7.6/rdp/rdpdraw.c delete mode 100644 xorg/X11R7.6/rdp/rdpdraw.h delete mode 100644 xorg/X11R7.6/rdp/rdpglyph.c delete mode 100644 xorg/X11R7.6/rdp/rdpglyph.h delete mode 100644 xorg/X11R7.6/rdp/rdpinput.c delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboard.c delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboard.h delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboardbase.c delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboardbase.h delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboardevdev.c delete mode 100644 xorg/X11R7.6/rdp/rdpkeyboardevdev.h delete mode 100644 xorg/X11R7.6/rdp/rdpmain.c delete mode 100644 xorg/X11R7.6/rdp/rdpmisc.c delete mode 100644 xorg/X11R7.6/rdp/rdprandr.c delete mode 100644 xorg/X11R7.6/rdp/rdprandr.h delete mode 100644 xorg/X11R7.6/rdp/rdpup.c delete mode 100644 xorg/X11R7.6/rdp/rdpxv.c delete mode 100644 xorg/X11R7.6/x11_file_list.txt delete mode 100644 xorg/X11R7.6/xkeyboard-config-2.0.patch delete mode 100644 xorg/X11R7.6/xorg-server-1.9.3.patch delete mode 100755 xorg/debuild/debX11rdp.sh delete mode 100644 xorg/debuild/x11rdp-files/DEBIAN/control delete mode 100755 xorg/debuild/x11rdp-files/DEBIAN/postinst delete mode 100644 xorg/readme.txt delete mode 100755 xorg/tests/nx/client.sh delete mode 100755 xorg/tests/nx/server.sh delete mode 100644 xorg/tests/randr/Makefile delete mode 100644 xorg/tests/randr/trandr.c delete mode 100644 xorg/tests/xdemo/Makefile delete mode 100644 xorg/tests/xdemo/README.txt delete mode 100644 xorg/tests/xdemo/bmp_parser.c delete mode 100644 xorg/tests/xdemo/common.h delete mode 100644 xorg/tests/xdemo/xdemo.c delete mode 100644 xorg/tests/xdemo/yosemite.bmp diff --git a/xorg/.gitignore b/xorg/.gitignore deleted file mode 100644 index 24600083..00000000 --- a/xorg/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!Makefile diff --git a/xorg/X11R7.6/.gitignore b/xorg/X11R7.6/.gitignore deleted file mode 100644 index 218e4a9a..00000000 --- a/xorg/X11R7.6/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build_dir -cookies -downloads diff --git a/xorg/X11R7.6/Mesa-7.10.3.patch b/xorg/X11R7.6/Mesa-7.10.3.patch deleted file mode 100644 index 5171d388..00000000 --- a/xorg/X11R7.6/Mesa-7.10.3.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/mesa/x86-64/xform4.S -+++ b/src/mesa/x86-64/xform4.S -@@ -118,7 +118,7 @@ - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 --.float 0f+1.0 -+.float 1.0 - - .text - .align 16 diff --git a/xorg/X11R7.6/buildx.sh b/xorg/X11R7.6/buildx.sh deleted file mode 100755 index bf871744..00000000 --- a/xorg/X11R7.6/buildx.sh +++ /dev/null @@ -1,299 +0,0 @@ -#!/bin/sh - -# buildx.sh: a script for building X11R7.6 X server for use with xrdp -# -# Copyright 2011-2013 Jay Sorg Jay.Sorg@gmail.com -# -# Authors -# Jay Sorg Jay.Sorg@gmail.com -# Laxmikant Rashinkar LK.Rashinkar@gmail.com -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# debian packages needed -# flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils - -download_all_files() -{ - # download files in parallel using keepalive - a little bit faster - # than calling wget for a single file more than 100 times - urls= - for f in `cut -f1 -d: x11_file_list.txt`; do - if ! test -s "downloads/$f"; then - urls="$urls ${download_url}/$f" - fi - done - if test -n "$urls"; then - echo $urls | \ - xargs -P2 -n $(expr $num_modules / 2 + 1) \ - wget \ - --directory-prefix=downloads \ - --no-verbose \ - --timestamping \ - --continue - fi - - status=$? - return $status -} - -remove_modules() -{ - local mod_file mod_dir mod_args - if [ -d cookies ]; then - rm cookies/* - fi - - if [ ! -d build_dir ]; then - echo "" - echo "build_dir does not exist; nothing to delete" - echo "" - exit 0 - fi - - while IFS=: read mod_file mod_dir mod_args - do - (cd build_dir; [ -d $mod_dir ] && rm -rf $mod_dir) - done < $data_file -} - -extract_it() -{ - local mod_file mod_name mod_args comp - mod_file=$1 - mod_name=$2 - mod_args=$3 - - if [ -e cookies/$mod_name.extracted ]; then - return 0 - fi - - cd build_dir - - # if pkg has not yet been extracted, do so now - if [ ! -d $mod_name ]; then - case "$mod_file" in - *.tar.bz2) comp=j ;; - *.tar.gz) comp=z ;; - *.tar.xz) comp=J ;; - *.tar) comp= ;; - *) echo "unknown compressed module $mod_name" ; exit 1 ;; - esac - if ! tar x${comp}f ../downloads/$mod_file > /dev/null - then - echo "error extracting module $mod_name" - exit 1 - fi - fi - - # patch and configure module - we only need to do this once - cd $mod_name - # check for patches - if [ -e ../../$mod_name.patch ]; then - patch -N -p1 < ../../$mod_name.patch - fi - # now configure - echo "executing ./configure --prefix=$PREFIX_DIR $mod_args" - if ! ./configure --prefix=$PREFIX_DIR $mod_args - then - echo "configuration failed for module $mod_name" - exit 1 - fi - - cd ../.. - - touch cookies/$mod_name.extracted -} - -make_it() -{ - local mod_file mod_name mod_args - mod_file=$1 - mod_name=$2 - mod_args=$3 - - count=`expr $count + 1` - - # if a cookie with $mod_name exists... - if [ -e cookies/$mod_name.installed ]; then - # ...package has already been installed - return 0 - fi - - echo "" - echo "*** processing module $mod_name ($count of $num_modules) ***" - echo "" - - if ! extract_it $mod_file $mod_name "$mod_args" - then - echo "" - echo "extract failed for module $mod_name" - echo "" - exit 1 - fi - - # make module - if [ ! -e cookies/$mod_name.made ]; then - if ! make -j $NPROC -C build_dir/$mod_name - then - echo "" - echo "make failed for module $mod_name" - echo "" - exit 1 - fi - touch cookies/$mod_name.made - fi - - # install module - if ! make -C build_dir/$mod_name install - then - echo "" - echo "make install failed for module $mod_name" - echo "" - exit 1 - fi - - touch cookies/$mod_name.installed - return 0 -} - -# this is where we store list of modules to be processed -data_file=x11_file_list.txt - -# this is the default download location for most modules -# changed now to server1.xrdp.org -# was www.x.org/releases/X11R7.6/src/everything -download_url=http://server1.xrdp.org/xrdp/X11R7.6 - -num_modules=`wc -l < $data_file` -count=0 - -########################## -# program flow starts here -########################## - -if [ $# -lt 1 ]; then - echo "" - echo "usage: buildx.sh " - echo "usage: buildx.sh clean" - echo "usage: buildx.sh default" - echo "usage: buildx.sh drop - set env and run bash in rdp dir" - echo "" - exit 1 -fi - -# remove all modules -if [ "$1" = "clean" ]; then - echo "removing source modules" - remove_modules - exit 0 -fi - -if [ "$1" = "default" ]; then - export PREFIX_DIR=$PWD/staging -else - export PREFIX_DIR=$1 -fi - -# prefix dir must exist... -if [ ! -d $PREFIX_DIR ]; then - echo "$PREFIX_DIR does not exist, creating it" - if ! mkdir -p $PREFIX_DIR; then - echo "$PREFIX_DIR cannot be created - cannot continue" - exit 1 - fi -fi - -# ...and be writable -if [ ! -w $PREFIX_DIR ]; then - echo "$PREFIX_DIR is not writable - cannot continue" - exit 1 -fi - -echo "installation directory: $PREFIX_DIR" - -export PKG_CONFIG_PATH=$PREFIX_DIR/lib/pkgconfig:$PREFIX_DIR/share/pkgconfig -export PATH=$PREFIX_DIR/bin:$PATH -export LDFLAGS=-Wl,-rpath=$PREFIX_DIR/lib -export CFLAGS="-I$PREFIX_DIR/include -fPIC -O2" - -# create a downloads dir -if [ ! -d downloads ]; then - if ! mkdir downloads - then - echo "error creating downloads directory" - exit 1 - fi -fi - -# this is where we do the actual build -if [ ! -d build_dir ]; then - if ! mkdir build_dir - then - echo "error creating build_dir directory" - exit 1 - fi -fi - -# this is where we store cookie files -if [ ! -d cookies ]; then - if ! mkdir cookies - then - echo "error creating cookies directory" - exit 1 - fi -fi - -if ! NPROC=`nproc`; then - NPROC=1 -fi - -if ! download_all_files; then - echo "" - echo "download failed - aborting build" - echo "rerun this script to resume download/build" - echo "" - exit 1 -fi - -while IFS=: read mod_file mod_dir mod_args -do - mod_args=`eval echo $mod_args` - - make_it $mod_file $mod_dir "$mod_args" -done < $data_file - -echo "build for X OK" - -X11RDPBASE=$PREFIX_DIR -export X11RDPBASE - -if ! make -C rdp -then - echo "error building rdp" - exit 1 -fi - -# this will copy the build X server with the other X server binaries -cd rdp -cp X11rdp $X11RDPBASE/bin/X11rdp -strip $X11RDPBASE/bin/X11rdp - -if [ "$2" = "drop" ]; then - echo "" - echo "dropping you in dir, type exit to get out" - bash - exit 1 -fi - -echo "All done" diff --git a/xorg/X11R7.6/cleanx.sh b/xorg/X11R7.6/cleanx.sh deleted file mode 100755 index 7ec804e0..00000000 --- a/xorg/X11R7.6/cleanx.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -# -# all directories can be read only except -# Read Write -# share/X11/xkb/compiled/ - -if test $# -lt 1 -then - echo "" - echo "usage: clean_build_dir.sh " - echo "" - exit 1 -fi - -BASEDIR=$1 - -if ! test -d $BASEDIR -then - echo "error directory $BASEDIR does not exist" - exit 1 -fi - -if ! test -w $BASEDIR -then - echo "error directory $BASEDIR is not writable" - exit 1 -fi - -echo cleaning $BASEDIR - -if ! test -x $BASEDIR/bin/X11rdp -then - echo "error $BASEDIR/bin/X11rdp does not exist" -fi - -bin_check_file() -{ - if [ "$1" = "X11rdp" ] - then - return 0 - fi - if [ "$1" = "xkbcomp" ] - then - return 0 - fi - rm -f $1 - return 0 -} - -HOLDPATH=$PWD -cd $BASEDIR - -# remove unused directories -rm -fr man/ -rm -fr include/ -rm -fr lib/python2.7/ -rm -fr lib/pkgconfig/ -rm -fr share/pkgconfig/ -rm -fr share/gtk-doc -rm -fr share/doc -rm -fr share/man -rm -fr share/aclocal -rm -fr share/intltool -rm -fr share/util-macros - -# remove development files -rm -f lib/*.a -rm -f lib/*.la -rm -f lib/xorg/modules/*.a -rm -f lib/xorg/modules/*.la - -# remove symbols -#strip lib/*.so -#strip lib/xorg/modules/*.so - -# remove hardware specific files -rm -f lib/dri/i915_dri.so -rm -f lib/dri/i965_dri.so -rm -f lib/dri/mach64_dri.so -rm -f lib/dri/mga_dri.so -rm -f lib/dri/r128_dri.so -rm -f lib/dri/r200_dri.so -rm -f lib/dri/r300_dri.so -rm -f lib/dri/r600_dri.so -rm -f lib/dri/radeon_dri.so -rm -f lib/dri/savage_dri.so -#strip lib/dri/swrast_dri.so -rm -f lib/dri/tdfx_dri.so -rm -f lib/dri/unichrome_dri.so - -# remove extra bin tools -cd bin -for i in * -do - if ! test -d "$i" - then - bin_check_file $i - fi -done -cd .. - -cd $HOLDPATH diff --git a/xorg/X11R7.6/libXext-1.2.0.patch b/xorg/X11R7.6/libXext-1.2.0.patch deleted file mode 100644 index 2ddc7ec0..00000000 --- a/xorg/X11R7.6/libXext-1.2.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/Xge.c b/src/Xge.c -index 7a583e5..2ea5d27 100644 ---- a/src/Xge.c -+++ b/src/Xge.c -@@ -294,7 +294,7 @@ _xgeEventToWire(Display* dpy, XEvent* re, xEvent* event) - /* - * Extensions need to register callbacks for their events. - */ --Bool -+_X_HIDDEN Bool - xgeExtRegister(Display* dpy, int offset, XExtensionHooks* callbacks) - { - XGEExtNode* newExt; diff --git a/xorg/X11R7.6/libpciaccess-0.12.0.patch b/xorg/X11R7.6/libpciaccess-0.12.0.patch deleted file mode 100644 index 7d45d0b2..00000000 --- a/xorg/X11R7.6/libpciaccess-0.12.0.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ur a/src/common_interface.c b/src/common_interface.c ---- a/src/common_interface.c -+++ b/src/common_interface.c -@@ -51,6 +51,20 @@ - # define HTOLE_32(x) (x) - #endif /* linux */ - -+#elif defined(__GNUC__) || defined(__clang__) -+ -+#if __BYTE_ORDER == __BIG_ENDIAN -+# define LETOH_16(x) __builtin_bswap16(x) -+# define HTOLE_16(x) __builtin_bswap16(x) -+# define LETOH_32(x) __builtin_bswap32(x) -+# define HTOLE_32(x) __builtin_bswap32(x) -+#else -+# define LETOH_16(x) (x) -+# define HTOLE_16(x) (x) -+# define LETOH_32(x) (x) -+# define HTOLE_32(x) (x) -+#endif /* gcc or clang */ -+ - #elif defined(__sun) - - #include diff --git a/xorg/X11R7.6/pixman-0.30.0.patch b/xorg/X11R7.6/pixman-0.30.0.patch deleted file mode 100644 index 35acdc51..00000000 --- a/xorg/X11R7.6/pixman-0.30.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/pixman/pixman-mmx.c -+++ b/pixman/pixman-mmx.c -@@ -89,7 +89,7 @@ _mm_mulhi_pu16 (__m64 __A, __m64 __B) - return __A; - } - --# ifdef __OPTIMIZE__ -+# if defined(__OPTIMIZE__) && !defined(__clang__) - extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_shuffle_pi16 (__m64 __A, int8_t const __N) - { diff --git a/xorg/X11R7.6/rdp/.gitignore b/xorg/X11R7.6/rdp/.gitignore deleted file mode 100644 index c72c2cb4..00000000 --- a/xorg/X11R7.6/rdp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -X11rdp diff --git a/xorg/X11R7.6/rdp/Makefile b/xorg/X11R7.6/rdp/Makefile deleted file mode 100644 index 5debf3d2..00000000 --- a/xorg/X11R7.6/rdp/Makefile +++ /dev/null @@ -1,112 +0,0 @@ -# X11RDPBASE is the top-level X11rdp install directory -ifeq ($(X11RDPBASE),) -$(error X11RDPBASE needs to be set) -endif - -BINBASE = $(X11RDPBASE)/bin -INCBASE = $(X11RDPBASE)/include -LIBBASE = $(X11RDPBASE)/lib - -INSTALL = /usr/bin/install -c -XSRCBASE = ../build_dir/xorg-server-1.9.3 - -OBJS = rdpmain.o rdpdraw.o rdpinput.o rdpmisc.o rdpup.o rdprandr.o \ -rdpCopyArea.o rdpPolyFillRect.o rdpPutImage.o rdpPolyRectangle.o \ -rdpPolylines.o rdpPolySegment.o rdpFillSpans.o rdpSetSpans.o \ -rdpCopyPlane.o rdpPolyPoint.o rdpPolyArc.o rdpFillPolygon.o \ -rdpPolyFillArc.o rdpPolyText8.o rdpPolyText16.o \ -rdpImageText8.o rdpImageText16.o rdpImageGlyphBlt.o rdpPolyGlyphBlt.o \ -rdpPushPixels.o rdpxv.o rdpglyph.o rdpComposite.o \ -rdpkeyboard.o rdpkeyboardevdev.o rdpkeyboardbase.o \ -miinitext.o \ -fbcmap_mi.o - -# in Xorg 7.1, fbcmap.c was used but now it looks like fbcmap_mi.c should -# be used -#fbcmap_mi.o -#fbcmap.o - -LIBS = \ - $(XSRCBASE)/dix/.libs/libmain.a \ - librdp.a \ - $(XSRCBASE)/dbe/.libs/libdbe.a \ - $(XSRCBASE)/dix/.libs/libdix.a \ - $(XSRCBASE)/fb/.libs/libfb.a \ - $(XSRCBASE)/mi/.libs/libmi.a \ - $(XSRCBASE)/randr/.libs/librandr.a \ - $(XSRCBASE)/render/.libs/librender.a \ - $(XSRCBASE)/os/.libs/libos.a \ - $(XSRCBASE)/record/.libs/librecord.a \ - $(XSRCBASE)/xkb/.libs/libxkb.a \ - $(XSRCBASE)/Xext/.libs/libXext.a \ - $(XSRCBASE)/Xi/.libs/libXi.a \ - $(XSRCBASE)/glx/.libs/libglx.a \ - $(XSRCBASE)/xfixes/.libs/libxfixes.a \ - $(XSRCBASE)/damageext/.libs/libdamageext.a \ - $(XSRCBASE)/miext/damage/.libs/libdamage.a - -LLIBS = -Wl,-rpath=$(LIBBASE) -lfreetype -lz -lm -lXfont -lXau \ - -lXdmcp -lpixman-1 -lrt -ldl -lcrypto -lGL -lXdamage - -CFLAGS = -g -O2 -Wall -fno-strength-reduce \ - -I$(INCBASE) \ - -I$(INCBASE)/X11 \ - -I$(INCBASE)/X11/fonts \ - -I$(INCBASE)/X11/extensions \ - -I$(INCBASE)/xorg \ - -I$(INCBASE)/pixman-1 \ - -I../../../common \ - -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_REENTRANT \ - -DGLX_USE_MESA -DXRECORD -D_GNU_SOURCE -DXAPPGROUP \ - -DTOGCUP -DSINGLEDEPTH -DXFree86Server \ - -DDBE -DEVI -DXVMC -DFONTCACHE -DGCCUSESGAS -DSTATIC_COLOR \ - -DAVOID_GLYPHBLT -DFUNCPROTO=15 -DNARROWPROTO -DDDXOSFATALERROR \ - -DPART_NET -DDDXTIME -D_HAVE_XALLOC_DECLS \ - -DDAMAGE \ - -DXFIXES \ - -DSMART_SCHEDULE -DSERVER_LOCK -DGLXEXT -DSHAPE -DRENDER -DRANDR \ - -DBIGREQS -D_POSIX_SOURCE -D_BSD_SOURCE -DSCREENSAVER \ - -DXCMISC -DXTEST -DXTRAP -DXV -DXSYNC -DMITMISC -DPANORAMIX \ - -DDPMSExtension -DXvExtension -DXvMCExtension -DXResExtension \ - -DMITSHM -DPIXPRIV -DNDEBUG -DDDXOSINIT -DXKB -DXINPUT - -#-DDAMAGE - -# -pedantic -# -DXCSECURITY -DXF86BIGFONT - -# these are defined in xorg-server.h -# -D_XOPEN_SOURCE=500L -# -DX_BYTE_ORDER=X_LITTLE_ENDIAN -# -DSMART_SCHEDULE -DSERVER_LOCK -DGLXEXT -DSHAPE -DRENDER -DRANDR -# -DBIGREQS -D_POSIX_SOURCE -D_BSD_SOURCE -DSCREENSAVER -DXF86BIGFONT -# -DXCMISC -DXTEST -DXTRAP -DXV -DXSYNC -DMITMISC -DPANORAMIX -# -DDPMSExtension -DXvExtension -DXvMCExtension -DXResExtension -# -DMITSHM -DPIXPRIV -DNDEBUG -DDDXOSINIT - -# these are not needed I think -# -Dlinux -D__i386__ - -LDFLAGS = -L$(LIBBASE) -Wl,-rpath,$(LIBBASE) - -all: X11rdp - -X11rdp: $(OBJS) - $(AR) rvu librdp.a $(OBJS) - ranlib librdp.a - $(CC) $(LDFLAGS) -o X11rdp $(LIBS) $(LLIBS) - -clean: - rm -f $(OBJS) librdp.a - -miinitext.o: ../build_dir/xorg-server-1.9.3/mi/miinitext.c Makefile - $(CC) $(CFLAGS) -I../build_dir/xorg-server-1.9.3/Xext -c ../build_dir/xorg-server-1.9.3/mi/miinitext.c - -fbcmap.o: ../build_dir/xorg-server-1.9.3/fb/fbcmap.c - $(CC) $(CFLAGS) -c ../build_dir/xorg-server-1.9.3/fb/fbcmap.c - -fbcmap_mi.o: ../build_dir/xorg-server-1.9.3/fb/fbcmap_mi.c - $(CC) $(CFLAGS) -c ../build_dir/xorg-server-1.9.3/fb/fbcmap_mi.c - -install: all - $(INSTALL) X11rdp $(BINBASE)/X11rdp diff --git a/xorg/X11R7.6/rdp/gcops.h b/xorg/X11R7.6/rdp/gcops.h deleted file mode 100644 index 34870016..00000000 --- a/xorg/X11R7.6/rdp/gcops.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -static void -rdpValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr d); -static void -rdpChangeGC(GCPtr pGC, unsigned long mask); -static void -rdpCopyGC(GCPtr src, unsigned long mask, GCPtr dst); -static void -rdpDestroyGC(GCPtr pGC); -static void -rdpChangeClip(GCPtr pGC, int type, pointer pValue, int nrects); -static void -rdpDestroyClip(GCPtr pGC); -static void -rdpCopyClip(GCPtr dst, GCPtr src); diff --git a/xorg/X11R7.6/rdp/rdp.h b/xorg/X11R7.6/rdp/rdp.h deleted file mode 100644 index 56ee5ba8..00000000 --- a/xorg/X11R7.6/rdp/rdp.h +++ /dev/null @@ -1,784 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#if defined(__arm__) && !defined(__arm32__) -#define __arm32__ -#endif - -#include "xorg-server.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "X.h" -#define NEED_EVENTS -#include "Xproto.h" -#include "Xos.h" -#include "scrnintstr.h" -#include "servermd.h" -#define PSZ 8 - -//#include "cfb.h" - -#include "mibstore.h" -#include "colormapst.h" -#include "gcstruct.h" -#include "input.h" -#include "mipointer.h" -#include "dixstruct.h" -#include "propertyst.h" -#include "Xatom.h" -#include "dix.h" -#include "X11/keysym.h" -#include "dixfontstr.h" -#include "fontstruct.h" -#include "cursorstr.h" -#include "picturestr.h" -#include "XKBstr.h" -#include "inputstr.h" -#include "randrstr.h" -#include "mi.h" -#include "fb.h" -#include "micmap.h" -#include "events.h" -#include "exevents.h" -#include "xserver-properties.h" -#include "xkbsrv.h" -/* in xrdp/common */ -#include "xrdp_client_info.h" -#include "xrdp_constants.h" - -//#include "colormapst.h" - -#define X11RDPVER "0.9.6" - -#define PixelDPI 100 -#define PixelToMM(_size) (((_size) * 254 + (PixelDPI) * 5) / ((PixelDPI) * 10)) - -#define TAG_COMPOSITE 0 -#define TAG_COPYAREA 1 -#define TAG_POLYFILLRECT 2 -#define TAG_PUTIMAGE 3 -#define TAG_POLYRECTANGLE 4 -#define TAG_COPYPLANE 5 -#define TAG_POLYARC 6 -#define TAG_FILLPOLYGON 7 -#define TAG_POLYFILLARC 8 -#define TAG_IMAGETEXT8 9 -#define TAG_POLYTEXT8 10 -#define TAG_POLYTEXT16 11 -#define TAG_IMAGETEXT16 12 -#define TAG_IMAGEGLYPHBLT 13 -#define TAG_POLYGLYPHBLT 14 -#define TAG_PUSHPIXELS 15 - -struct image_data -{ - int width; - int height; - int bpp; - int Bpp; - int lineBytes; - char* pixels; - char* shmem_pixels; - int shmem_id; - int shmem_offset; - int shmem_lineBytes; -}; - -/* Per-screen (framebuffer) structure. There is only one of these, since we - don't allow the X server to have multiple screens. */ -struct _rdpScreenInfoRec -{ - int width; - int paddedWidthInBytes; - int height; - int depth; - int bitsPerPixel; - int sizeInBytes; /* size of current used frame buffer */ - int sizeInBytesAlloc; /* size of current alloc frame buffer, - always >= sizeInBytes */ - char* pfbMemory; - Pixel blackPixel; - Pixel whitePixel; - /* wrapped screen functions */ - /* Random screen procedures */ - CloseScreenProcPtr CloseScreen; - /* GC procedures */ - CreateGCProcPtr CreateGC; - /* Pixmap procedures */ - CreatePixmapProcPtr CreatePixmap; - DestroyPixmapProcPtr DestroyPixmap; - - /* Window Procedures */ - CreateWindowProcPtr CreateWindow; - DestroyWindowProcPtr DestroyWindow; - PositionWindowProcPtr PositionWindow; - RealizeWindowProcPtr RealizeWindow; - UnrealizeWindowProcPtr UnrealizeWindow; - ChangeWindowAttributesProcPtr ChangeWindowAttributes; - WindowExposuresProcPtr WindowExposures; - - CreateColormapProcPtr CreateColormap; - DestroyColormapProcPtr DestroyColormap; - - CopyWindowProcPtr CopyWindow; - ClearToBackgroundProcPtr ClearToBackground; - ScreenWakeupHandlerProcPtr WakeupHandler; - CreatePictureProcPtr CreatePicture; - DestroyPictureProcPtr DestroyPicture; - CompositeProcPtr Composite; - GlyphsProcPtr Glyphs; - /* Backing store procedures */ - RestoreAreasProcPtr RestoreAreas; - - int rdp_width; - int rdp_height; - int rdp_bpp; - int rdp_Bpp; - int rdp_Bpp_mask; - - struct xrdp_client_info client_info; -}; -typedef struct _rdpScreenInfoRec rdpScreenInfoRec; -typedef rdpScreenInfoRec* rdpScreenInfoPtr; - -struct _rdpGCRec -{ - GCFuncs* funcs; - GCOps* ops; -}; -typedef struct _rdpGCRec rdpGCRec; -typedef rdpGCRec* rdpGCPtr; -#define GETGCPRIV(_pGC) \ -(rdpGCPtr)dixGetPrivateAddr(&(_pGC->devPrivates), &g_rdpGCIndex) - -struct _rdpWindowRec -{ - int status; -}; -typedef struct _rdpWindowRec rdpWindowRec; -typedef rdpWindowRec* rdpWindowPtr; -#define GETWINPRIV(_pWindow) \ -(rdpWindowPtr)dixGetPrivateAddr(&(_pWindow->devPrivates), &g_rdpWindowIndex) - -#define XR_IS_ROOT(_pWindow) ((_pWindow)->drawable.pScreen->root == (_pWindow)) - -/* for tooltips */ -#define XR_STYLE_TOOLTIP (0x80000000) -#define XR_EXT_STYLE_TOOLTIP (0x00000080 | 0x00000008) - -/* for normal desktop windows */ -/* WS_TILEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | - WS_MINIMIZEBOX | WS_MAXIMIZEBOX) */ -#define XR_STYLE_NORMAL (0x00C00000 | 0x00080000 | 0x00040000 | 0x00010000 | 0x00020000) -#define XR_EXT_STYLE_NORMAL (0x00040000) - -/* for dialogs */ -#define XR_STYLE_DIALOG (0x80000000) -#define XR_EXT_STYLE_DIALOG (0x00040000) - -#define RDI_FILL 1 -#define RDI_IMGLL 2 /* lossless */ -#define RDI_IMGLY 3 /* lossy */ -#define RDI_LINE 4 -#define RDI_SCRBLT 5 -#define RDI_TEXT 6 - -struct urdp_draw_item_fill -{ - int opcode; - int fg_color; - int bg_color; - int pad0; -}; - -struct urdp_draw_item_img -{ - int opcode; - int pad0; -}; - -struct urdp_draw_item_line -{ - int opcode; - int fg_color; - int bg_color; - int width; - xSegment* segs; - int nseg; - int flags; -}; - -struct urdp_draw_item_scrblt -{ - int srcx; - int srcy; - int dstx; - int dsty; - int cx; - int cy; -}; - -struct urdp_draw_item_text -{ - int opcode; - int fg_color; - struct rdp_text* rtext; /* in rdpglyph.h */ -}; - -union urdp_draw_item -{ - struct urdp_draw_item_fill fill; - struct urdp_draw_item_img img; - struct urdp_draw_item_line line; - struct urdp_draw_item_scrblt scrblt; - struct urdp_draw_item_text text; -}; - -struct rdp_draw_item -{ - int type; /* RDI_FILL, RDI_IMGLL, ... */ - int flags; - struct rdp_draw_item* prev; - struct rdp_draw_item* next; - RegionPtr reg; - union urdp_draw_item u; -}; - -#define XRDP_USE_COUNT_THRESHOLD 1 - -struct _rdpPixmapRec -{ - int status; - int rdpindex; - int con_number; - int is_dirty; - int is_scratch; - int is_alpha_dirty_not; - /* number of times used in a remote operation - if this gets above XRDP_USE_COUNT_THRESHOLD - then we force remote the pixmap */ - int use_count; - int kind_width; - struct rdp_draw_item* draw_item_head; - struct rdp_draw_item* draw_item_tail; -}; -typedef struct _rdpPixmapRec rdpPixmapRec; -typedef rdpPixmapRec* rdpPixmapPtr; -#define GETPIXPRIV(_pPixmap) \ -(rdpPixmapPtr)dixGetPrivateAddr(&(_pPixmap->devPrivates), &g_rdpPixmapIndex) - -#define XRDP_IS_OS(_priv) (_priv->status != 0) - -/* rdpmisc.c */ -void -rdpLog(char *format, ...); -int -rdpBitsPerPixel(int depth); -void -rdpClientStateChange(CallbackListPtr* cbl, pointer myData, pointer clt); -int -g_tcp_recv(int sck, void* ptr, int len, int flags); -void -g_tcp_close(int sck); -int -g_tcp_last_error_would_block(int sck); -void -g_sleep(int msecs); -int -g_tcp_send(int sck, void* ptr, int len, int flags); -void* -g_malloc(int size, int zero); -void -g_free(void* ptr); -void -g_sprintf(char* dest, char* format, ...); -int -g_tcp_socket(void); -int -g_tcp_local_socket_dgram(void); -int -g_tcp_local_socket_stream(void); -void -g_memcpy(void* d_ptr, const void* s_ptr, int size); -int -g_tcp_set_no_delay(int sck); -int -g_tcp_set_non_blocking(int sck); -int -g_tcp_accept(int sck); -int -g_tcp_select(int sck1, int sck2, int sck3); -int -g_tcp_bind(int sck, char* port); -int -g_tcp_local_bind(int sck, char* port); -int -g_tcp_listen(int sck); -int -g_create_dir(const char* dirname); -int -g_directory_exist(const char* dirname); -int -g_chmod_hex(const char* filename, int flags); -const char * -g_socket_dir(void); -void -hexdump(unsigned char *p, unsigned int len); -void -RegionAroundSegs(RegionPtr reg, xSegment* segs, int nseg); -int -get_crc(char* data, int data_bytes); -int -get_mstime(void); - -/* rdpdraw.c */ -Bool -rdpCloseScreen(int i, ScreenPtr pScreen); - - -int -draw_item_add(rdpPixmapRec* priv, struct rdp_draw_item* di); -int -draw_item_remove(rdpPixmapRec* priv, struct rdp_draw_item* di); -int -draw_item_remove_all(rdpPixmapRec* priv); -int -draw_item_pack(PixmapPtr pix, rdpPixmapRec* priv); -int -draw_item_add_img_region(rdpPixmapRec* priv, RegionPtr reg, int opcode, - int type, int code); -int -draw_item_add_fill_region(rdpPixmapRec* priv, RegionPtr reg, int color, - int opcode); -int -draw_item_add_line_region(rdpPixmapRec* priv, RegionPtr reg, int color, - int opcode, int width, xSegment* segs, int nsegs, - int is_segment); -int -draw_item_add_srcblt_region(rdpPixmapRec* priv, RegionPtr reg, - int srcx, int srcy, int dstx, int dsty, - int cx, int cy); -int -draw_item_add_text_region(rdpPixmapRec* priv, RegionPtr reg, int color, - int opcode, struct rdp_text* rtext); - -PixmapPtr -rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, - unsigned usage_hint); -Bool -rdpDestroyPixmap(PixmapPtr pPixmap); -int -xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv); -Bool -rdpCreateWindow(WindowPtr pWindow); -Bool -rdpDestroyWindow(WindowPtr pWindow); -Bool -rdpPositionWindow(WindowPtr pWindow, int x, int y); -Bool -rdpRealizeWindow(WindowPtr pWindow); -Bool -rdpUnrealizeWindow(WindowPtr pWindow); -Bool -rdpChangeWindowAttributes(WindowPtr pWindow, unsigned long mask); -void -rdpWindowExposures(WindowPtr pWindow, RegionPtr pRegion, RegionPtr pBSRegion); - -Bool -rdpCreateGC(GCPtr pGC); -void -rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion); -void -rdpClearToBackground(WindowPtr pWin, int x, int y, int w, int h, - Bool generateExposures); -RegionPtr -rdpRestoreAreas(WindowPtr pWin, RegionPtr prgnExposed); -void -rdpInstallColormap(ColormapPtr pmap); -void -rdpUninstallColormap(ColormapPtr pmap); -int -rdpListInstalledColormaps(ScreenPtr pScreen, Colormap* pmaps); -void -rdpStoreColors(ColormapPtr pmap, int ndef, xColorItem* pdefs); -Bool -rdpSaveScreen(ScreenPtr pScreen, int on); -Bool -rdpRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); -Bool -rdpUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); -void -rdpCursorLimits(ScreenPtr pScreen, CursorPtr pCursor, - BoxPtr pHotBox, BoxPtr pTopLeftBox); -void -rdpConstrainCursor(ScreenPtr pScreen, BoxPtr pBox); -Bool -rdpSetCursorPosition(ScreenPtr pScreen, int x, int y, Bool generateEvent); -Bool -rdpDisplayCursor(ScreenPtr pScreen, CursorPtr pCursor); -void -rdpRecolorCursor(ScreenPtr pScreen, CursorPtr pCursor, - Bool displayed); - -/* rdpglyph.c */ -/* look in rdpglyph.h */ - -/* rdpComposite.c */ -int -rdpCreatePicture(PicturePtr pPicture); -void -rdpDestroyPicture(PicturePtr pPicture); -void -rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height); - -/* rdpinput.c */ -int -rdpKeybdProc(DeviceIntPtr pDevice, int onoff); -int -rdpMouseProc(DeviceIntPtr pDevice, int onoff); -Bool -rdpCursorOffScreen(ScreenPtr* ppScreen, int* x, int* y); -void -rdpCrossScreen(ScreenPtr pScreen, Bool entering); -void -rdpPointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y); -void -rdpPointerEnqueueEvent(DeviceIntPtr pDev, InternalEvent* event); -void -rdpPointerNewEventScreen(DeviceIntPtr pDev, ScreenPtr pScr, Bool fromDIX); -Bool -rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs); -Bool -rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs); -void -rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs, - int x, int y); -void -rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y); -Bool -rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr); -void -rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr); -void -PtrAddEvent(int buttonMask, int x, int y); -void -KbdAddEvent(int down, int param1, int param2, int param3, int param4); -void -KbdSync(int param1); -int -rdpLoadLayout(struct xrdp_client_info *client_info); - -/* rdpup.c */ -int -rdpup_add_os_bitmap(PixmapPtr pixmap, rdpPixmapPtr priv); -int -rdpup_remove_os_bitmap(int rdpindex); -int -rdpup_update_os_use(int rdpindex); -void -rdpup_get_screen_image_rect(struct image_data* id); -void -rdpup_get_pixmap_image_rect(PixmapPtr pPixmap, struct image_data* id); -int -rdpup_init(void); -int -rdpup_check(void); -int -rdpup_begin_update(void); -int -rdpup_end_update(void); -int -rdpup_fill_rect(short x, short y, int cx, int cy); -int -rdpup_screen_blt(short x, short y, int cx, int cy, short srcx, short srcy); -int -rdpup_set_clip(short x, short y, int cx, int cy); -int -rdpup_reset_clip(void); -int -rdpup_set_fgcolor(int fgcolor); -int -rdpup_set_bgcolor(int bgcolor); -int -rdpup_set_opcode(int opcode); -int -rdpup_paint_rect(short x, short y, int cx, int cy, - char* bmpdata, int width, int height, - short srcx, short srcy); -int -rdpup_set_pen(int style, int width); -int -rdpup_draw_line(short x1, short y1, short x2, short y2); -void -rdpup_send_area(struct image_data* id, int x, int y, int w, int h); -int -rdpup_set_cursor(short x, short y, char* cur_data, char* cur_mask); -int -rdpup_set_cursor_ex(short x, short y, char *cur_data, char *cur_mask, int bpp); -int -rdpup_create_os_surface(int rdpindex, int width, int height); -int -rdpup_create_os_surface_bpp(int rdpindex, int width, int height, int bpp); -int -rdpup_switch_os_surface(int rdpindex); -int -rdpup_delete_os_surface(int rdpindex); - -void -rdpup_paint_rect_os(int x, int y, int cx, int cy, - int rdpindex, int srcx, int srcy); -void -rdpup_set_hints(int hints, int mask); -void -rdpup_create_window(WindowPtr pWindow, rdpWindowRec* priv); -void -rdpup_delete_window(WindowPtr pWindow, rdpWindowRec* priv); -int -rdpup_check_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec* pDirtyPriv); -int -rdpup_check_alpha_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec* pDirtyPriv); -int -rdpup_check_dirty_screen(rdpPixmapRec* pDirtyPriv); -int -rdpup_add_char(int font, int character, short x, short y, int cx, int cy, - char* bmpdata, int bmpdata_bytes); -int -rdpup_add_char_alpha(int font, int character, short x, short y, int cx, int cy, - char* bmpdata, int bmpdata_bytes); -int -rdpup_draw_text(int font, int flags, int mixmode, - short clip_left, short clip_top, - short clip_right, short clip_bottom, - short box_left, short box_top, - short box_right, short box_bottom, short x, short y, - char* data, int data_bytes); -int -rdpup_composite(short srcidx, int srcformat, short srcwidth, CARD8 srcrepeat, - PictTransform* srctransform, CARD8 mskflags, - short mskidx, int mskformat, short mskwidth, CARD8 mskrepeat, - CARD8 op, short srcx, short srcy, short mskx, short msky, - short dstx, short dsty, short width, short height, - int dstformat); - -void -rdpScheduleDeferredUpdate(void); - -int -rdpXvInit(ScreenPtr pScreen); - -#if defined(X_BYTE_ORDER) -# if X_BYTE_ORDER == X_LITTLE_ENDIAN -# define L_ENDIAN -# else -# define B_ENDIAN -# endif -#else -# error Unknown endianness in rdp.h -#endif -/* check if we need to align data */ -/* check if we need to align data */ -#if defined(__sparc__) || defined(__alpha__) || defined(__hppa__) || \ - defined(__AIX__) || defined(__PPC__) || defined(__mips__) || \ - defined(__ia64__) || defined(__ppc__) || defined(__arm__) -#define NEED_ALIGN -#endif - -/* parser state */ -struct stream -{ - char* p; - char* end; - char* data; - int size; - /* offsets of various headers */ - char* iso_hdr; - char* mcs_hdr; - char* sec_hdr; - char* rdp_hdr; - char* channel_hdr; - char* next_packet; -}; - -/******************************************************************************/ -#define s_push_layer(s, h, n) \ -{ \ - (s)->h = (s)->p; \ - (s)->p += (n); \ -} - -/******************************************************************************/ -#define s_pop_layer(s, h) \ -{ \ - (s)->p = (s)->h; \ -} - -/******************************************************************************/ -#if defined(B_ENDIAN) || defined(NEED_ALIGN) -#define out_uint16_le(s, v) \ -{ \ - *((s)->p) = (unsigned char)((v) >> 0); \ - (s)->p++; \ - *((s)->p) = (unsigned char)((v) >> 8); \ - (s)->p++; \ -} -#else -#define out_uint16_le(s, v) \ -{ \ - *((unsigned short*)((s)->p)) = (unsigned short)(v); \ - (s)->p += 2; \ -} -#endif - -/******************************************************************************/ -#define out_uint8(s, v) \ -{ \ - *((s)->p) = (unsigned char)((v) >> 0); \ - (s)->p++; \ -} - -/******************************************************************************/ -#define init_stream(s, v) \ -{ \ - if ((v) > (s)->size) \ - { \ - g_free((s)->data); \ - (s)->data = (char*)g_malloc((v), 0); \ - (s)->size = (v); \ - } \ - (s)->p = (s)->data; \ - (s)->end = (s)->data; \ - (s)->next_packet = 0; \ -} - -/******************************************************************************/ -#define out_uint8p(s, v, n) \ -{ \ - g_memcpy((s)->p, (v), (n)); \ - (s)->p += (n); \ -} - -/******************************************************************************/ -#define out_uint8a(s, v, n) \ -{ \ - out_uint8p((s), (v), (n)); \ -} - -/******************************************************************************/ -#define out_uint8s(s, n) do \ -{ \ - memset((s)->p, 0, (n)); \ - (s)->p += (n); \ -} while (0) - -/******************************************************************************/ -#if defined(B_ENDIAN) || defined(NEED_ALIGN) -#define out_uint32_le(s, v) \ -{ \ - *((s)->p) = (unsigned char)((v) >> 0); \ - (s)->p++; \ - *((s)->p) = (unsigned char)((v) >> 8); \ - (s)->p++; \ - *((s)->p) = (unsigned char)((v) >> 16); \ - (s)->p++; \ - *((s)->p) = (unsigned char)((v) >> 24); \ - (s)->p++; \ -} -#else -#define out_uint32_le(s, v) \ -{ \ - *((unsigned int*)((s)->p)) = (v); \ - (s)->p += 4; \ -} -#endif - -/******************************************************************************/ -#if defined(B_ENDIAN) || defined(NEED_ALIGN) -#define in_uint32_le(s, v) \ -{ \ - (v) = (unsigned int) \ - ( \ - (*((unsigned char*)((s)->p + 0)) << 0) | \ - (*((unsigned char*)((s)->p + 1)) << 8) | \ - (*((unsigned char*)((s)->p + 2)) << 16) | \ - (*((unsigned char*)((s)->p + 3)) << 24) \ - ); \ - (s)->p += 4; \ -} -#else -#define in_uint32_le(s, v) \ -{ \ - (v) = *((unsigned int*)((s)->p)); \ - (s)->p += 4; \ -} -#endif - -/******************************************************************************/ -#if defined(B_ENDIAN) || defined(NEED_ALIGN) -#define in_uint16_le(s, v) \ -{ \ - (v) = (unsigned short) \ - ( \ - (*((unsigned char*)((s)->p + 0)) << 0) | \ - (*((unsigned char*)((s)->p + 1)) << 8) \ - ); \ - (s)->p += 2; \ -} -#else -#define in_uint16_le(s, v) \ -{ \ - (v) = *((unsigned short*)((s)->p)); \ - (s)->p += 2; \ -} -#endif - -/******************************************************************************/ -#define s_mark_end(s) \ -{ \ - (s)->end = (s)->p; \ -} - -/******************************************************************************/ -#define make_stream(s) \ -{ \ - (s) = (struct stream*)g_malloc(sizeof(struct stream), 1); \ -} - -/******************************************************************************/ -#define free_stream(s) do \ -{ \ - if ((s) != 0) \ - { \ - g_free((s)->data); \ - } \ - g_free((s)); \ -} while (0) diff --git a/xorg/X11R7.6/rdp/rdpComposite.c b/xorg/X11R7.6/rdp/rdpComposite.c deleted file mode 100644 index 9376a533..00000000 --- a/xorg/X11R7.6/rdp/rdpComposite.c +++ /dev/null @@ -1,846 +0,0 @@ -/* - Copyright 2012-2013 Jay Sorg - - Permission to use, copy, modify, distribute, and sell this software and its - documentation for any purpose is hereby granted without fee, provided that - the above copyright notice appear in all copies and that both that - copyright notice and this permission notice appear in supporting - documentation. - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - */ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_can_do_pix_to_pix; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ -extern int g_do_glyph_cache; /* in rdpmain.c */ -extern int g_doing_font; /* in rdpmain.c */ -extern int g_do_composite; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -extern int g_crc_seed; /* in rdpmisc.c */ -extern int g_crc_table[]; /* in rdpmisc.c */ - -/******************************************************************************/ -int -rdpCreatePicture(PicturePtr pPicture) -{ - PictureScreenPtr ps; - int rv; - - LLOGLN(10, ("rdpCreatePicture:")); - ps = GetPictureScreen(g_pScreen); - ps->CreatePicture = g_rdpScreen.CreatePicture; - rv = ps->CreatePicture(pPicture); - ps->CreatePicture = rdpCreatePicture; - return rv; -} - -/******************************************************************************/ -void -rdpDestroyPicture(PicturePtr pPicture) -{ - PictureScreenPtr ps; - - LLOGLN(10, ("rdpDestroyPicture:")); - ps = GetPictureScreen(g_pScreen); - ps->DestroyPicture = g_rdpScreen.DestroyPicture; - ps->DestroyPicture(pPicture); - ps->DestroyPicture = rdpDestroyPicture; -} - -/******************************************************************************/ -static int -print_format(PictFormatShort format) -{ - switch (format) - { - case PIXMAN_a2r10g10b10: - LLOGLN(0, (" PIXMAN_x2r10g10b10")); - break; - case PIXMAN_x2r10g10b10: - LLOGLN(0, (" PIXMAN_x2r10g10b10")); - break; - case PIXMAN_a2b10g10r10: - LLOGLN(0, (" PIXMAN_a2b10g10r10")); - break; - case PIXMAN_x2b10g10r10: - LLOGLN(0, (" PIXMAN_x2b10g10r10")); - break; - - case PIXMAN_a8r8g8b8: - LLOGLN(0, (" PIXMAN_a8r8g8b8")); - break; - case PIXMAN_x8r8g8b8: - LLOGLN(0, (" PIXMAN_x8r8g8b8")); - break; - case PIXMAN_a8b8g8r8: - LLOGLN(0, (" PIXMAN_a8b8g8r8")); - break; - case PIXMAN_x8b8g8r8: - LLOGLN(0, (" PIXMAN_x8b8g8r8")); - break; - case PIXMAN_b8g8r8a8: - LLOGLN(0, (" PIXMAN_b8g8r8a8")); - break; - case PIXMAN_b8g8r8x8: - LLOGLN(0, (" PIXMAN_b8g8r8x8")); - break; - - /* 24bpp formats */ - case PIXMAN_r8g8b8: - LLOGLN(0, (" PIXMAN_r8g8b8")); - break; - case PIXMAN_b8g8r8: - LLOGLN(0, (" PIXMAN_b8g8r8")); - break; - - /* 16bpp formats */ - case PIXMAN_r5g6b5: - LLOGLN(0, (" PIXMAN_r5g6b5")); - break; - case PIXMAN_b5g6r5: - LLOGLN(0, (" PIXMAN_b5g6r5")); - break; - - case PIXMAN_a1r5g5b5: - LLOGLN(0, (" PIXMAN_a1r5g5b5")); - break; - case PIXMAN_x1r5g5b5: - LLOGLN(0, (" PIXMAN_x1r5g5b5")); - break; - case PIXMAN_a1b5g5r5: - LLOGLN(0, (" PIXMAN_a1b5g5r5")); - break; - case PIXMAN_x1b5g5r5: - LLOGLN(0, (" PIXMAN_x1b5g5r5")); - break; - case PIXMAN_a4r4g4b4: - LLOGLN(0, (" PIXMAN_a4r4g4b4")); - break; - case PIXMAN_x4r4g4b4: - LLOGLN(0, (" PIXMAN_x4r4g4b4")); - break; - case PIXMAN_a4b4g4r4: - LLOGLN(0, (" PIXMAN_a4b4g4r4")); - break; - case PIXMAN_x4b4g4r4: - LLOGLN(0, (" PIXMAN_x4b4g4r4")); - break; - - /* 8bpp formats */ - case PIXMAN_a8: - LLOGLN(0, (" PIXMAN_a8")); - break; - case PIXMAN_r3g3b2: - LLOGLN(0, (" PIXMAN_r3g3b2")); - break; - case PIXMAN_b2g3r3: - LLOGLN(0, (" PIXMAN_b2g3r3")); - break; - case PIXMAN_a2r2g2b2: - LLOGLN(0, (" PIXMAN_a2r2g2b2")); - break; - case PIXMAN_a2b2g2r2: - LLOGLN(0, (" PIXMAN_a2b2g2r2")); - break; - - case PIXMAN_c8: - LLOGLN(0, (" PIXMAN_c8")); - break; - case PIXMAN_g8: - LLOGLN(0, (" PIXMAN_g8")); - break; - - case PIXMAN_x4a4: - LLOGLN(0, (" PIXMAN_x4a4")); - break; - - /* 4bpp formats */ - case PIXMAN_a4: - LLOGLN(0, (" PIXMAN_a4")); - break; - case PIXMAN_r1g2b1: - LLOGLN(0, (" PIXMAN_r1g2b1")); - break; - case PIXMAN_b1g2r1: - LLOGLN(0, (" PIXMAN_b1g2r1")); - break; - case PIXMAN_a1r1g1b1: - LLOGLN(0, (" PIXMAN_a1r1g1b1")); - break; - case PIXMAN_a1b1g1r1: - LLOGLN(0, (" PIXMAN_a1b1g1r1")); - break; - - case PIXMAN_c4: - LLOGLN(0, (" PIXMAN_c4")); - break; - case PIXMAN_g4: - LLOGLN(0, (" PIXMAN_g4")); - break; - - /* 1bpp formats */ - case PIXMAN_a1: - LLOGLN(0, (" PIXMAN_a1")); - break; - case PIXMAN_g1: - LLOGLN(0, (" PIXMAN_g1")); - break; - } - return 0; -} - -/******************************************************************************/ -static int -composite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height) -{ - PixmapPtr pSrcPixmap; - PixmapPtr pDstPixmap; - rdpPixmapRec* pSrcPriv; - rdpPixmapRec* pDstPriv; - - LLOGLN(0, ("composite_print: op %d xSrc %d ySrc %d xDst %d yDst %d " - "width %d height %d", - op, xSrc, ySrc, xDst, yDst, width, height)); - - if (pSrc != 0) - { - LLOGLN(0, (" src depth %d width %d height %d repeat %d repeatType %d " - "dither %d filter %d alphaMap %p componentAlpha %d", pSrc->pDrawable->depth, - pSrc->pDrawable->width, pSrc->pDrawable->height, - pSrc->repeat, pSrc->repeatType, pSrc->dither, pSrc->filter, - pSrc->alphaMap, pSrc->componentAlpha)); - LLOGLN(0, (" transform %p", pSrc->transform)); - LLOGLN(0, (" detail format red %d red mask %d green %d green mask %d " - "blue %d blue mask %d", - pSrc->pFormat->direct.red, pSrc->pFormat->direct.redMask, - pSrc->pFormat->direct.green, pSrc->pFormat->direct.greenMask, - pSrc->pFormat->direct.blue, pSrc->pFormat->direct.blueMask)); - print_format(pSrc->format); - if (pSrc->pDrawable->type == DRAWABLE_PIXMAP) - { - pSrcPixmap = (PixmapPtr)(pSrc->pDrawable); - pSrcPriv = GETPIXPRIV(pSrcPixmap); - LLOGLN(0, (" DRAWABLE_PIXMAP pSrcPriv %p status %d", pSrcPriv, pSrcPriv->status)); - } - else if (pSrc->pDrawable->type == DRAWABLE_WINDOW) - { - LLOGLN(0, (" DRAWABLE_WINDOW")); - } - else - { - LLOGLN(0, (" OTHER")); - } - } - if (pMask != 0) - { - LLOGLN(0, (" msk depth %d width %d height %d repeat %d repeatType %d", - pMask->pDrawable->depth, - pMask->pDrawable->width, - pMask->pDrawable->height, pMask->repeat, pMask->repeatType)); - print_format(pMask->format); - } - if (pDst != 0) - { - LLOGLN(0, (" dst depth %d width %d height %d repeat %d repeatType %d " - "dither %d filter %d alphaMap %p", pDst->pDrawable->depth, - pDst->pDrawable->width, pDst->pDrawable->height, - pDst->repeat, pDst->repeatType, pDst->dither, pDst->filter, - pDst->alphaMap)); - LLOGLN(0, (" transform %p", pDst->transform)); - print_format(pDst->format); - if (pDst->pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)(pDst->pDrawable); - pDstPriv = GETPIXPRIV(pDstPixmap); - LLOGLN(0, (" DRAWABLE_PIXMAP pDstPriv %p status %d", pDstPriv, pDstPriv->status)); - } - else if (pDst->pDrawable->type == DRAWABLE_WINDOW) - { - LLOGLN(0, (" DRAWABLE_WINDOW")); - } - else - { - LLOGLN(0, (" OTHER")); - } - } - return 0; -} - -/******************************************************************************/ -static int -src_alpha_needed(CARD8 op) -{ - int rv; - - rv = 0; - switch (op) - { - case 3: /* Over */ - case 6: /* InReverse */ - case 8: /* OutReverse */ - case 9: /* Atop */ - case 10: /* AtopReverse */ - case 11: /* Xor */ - case 13: /* Saturate */ - case 17: /* DisjointOver */ - case 18: /* DisjointOverReverse */ - case 19: /* DisjointIn */ - case 20: /* DisjointInReverse */ - case 21: /* DisjointOut */ - case 22: /* DisjointOutReverse */ - case 23: /* DisjointAtop */ - case 24: /* DisjointAtopReverse */ - case 25: /* DisjointXor */ - case 29: /* ConjointOver */ - case 30: /* ConjointOverReverse */ - case 31: /* ConjointIn */ - case 32: /* ConjointInReverse */ - case 33: /* ConjointOut */ - case 34: /* ConjointOutReverse */ - case 35: /* ConjointAtop */ - case 36: /* ConjointAtopReverse */ - case 37: /* ConjointXor */ - rv = 1; - break; - } - return rv; -} - -/******************************************************************************/ -static int -dst_alpha_needed(CARD8 op) -{ - int rv; - - rv = 0; - switch (op) - { - case 4: /* OverReverse */ - case 5: /* In */ - case 7: /* Out */ - case 9: /* Atop */ - case 10: /* AtopReverse */ - case 11: /* Xor */ - case 13: /* Saturate */ - case 17: /* DisjointOver */ - case 18: /* DisjointOverReverse */ - case 19: /* DisjointIn */ - case 20: /* DisjointInReverse */ - case 21: /* DisjointOut */ - case 22: /* DisjointOutReverse */ - case 23: /* DisjointAtop */ - case 24: /* DisjointAtopReverse */ - case 25: /* DisjointXor */ - case 29: /* ConjointOver */ - case 30: /* ConjointOverReverse */ - case 31: /* ConjointIn */ - case 32: /* ConjointInReverse */ - case 33: /* ConjointOut */ - case 34: /* ConjointOutReverse */ - case 35: /* ConjointAtop */ - case 36: /* ConjointAtopReverse */ - case 37: /* ConjointXor */ - rv = 1; - break; - } - return rv; -} - -struct msk_info -{ - int flags; - int idx; - int format; - int width; - int repeat; -}; - -static char g_com_fail_strings[][128] = -{ - "OK", - "src not remotable", - "dst not remotable", - "msk not remotable" -}; - -/******************************************************************************/ -/* returns boolean */ -static int -check_drawables(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height, struct msk_info* msk) -{ - int rv; - int fail_reason; - PixmapPtr pSrcPixmap; - PixmapPtr pDstPixmap; - PixmapPtr pMskPixmap; - rdpPixmapRec* pSrcPriv; - rdpPixmapRec* pDstPriv; - rdpPixmapRec* pMskPriv; - - fail_reason = 0; - pSrcPixmap = 0; - pDstPixmap = 0; - pMskPixmap = 0; - pSrcPriv = 0; - pDstPriv = 0; - pMskPriv = 0; - rv = 0; - if (pSrc != 0) - { - if (pSrc->pDrawable != 0) - { - if (pSrc->pDrawable->type == DRAWABLE_PIXMAP) - { - pSrcPixmap = (PixmapPtr)(pSrc->pDrawable); - pSrcPriv = GETPIXPRIV(pSrcPixmap); - if (xrdp_is_os(pSrcPixmap, pSrcPriv)) - { - if (pDst != 0) - { - if (pDst->pDrawable != 0) - { - if (pDst->pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)(pDst->pDrawable); - pDstPriv = GETPIXPRIV(pDstPixmap); - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - rv = 1; - } - else - { - fail_reason = 2; - } - } - } - } - } - else - { - fail_reason = 1; - } - } - } - } - if (rv) - { - if (pMask != 0) - { -#if 1 - rv = 0; - if (pMask->pDrawable != 0) - { - if (pMask->pDrawable->type == DRAWABLE_PIXMAP) - { - pMskPixmap = (PixmapPtr)(pMask->pDrawable); - pMskPriv = GETPIXPRIV(pMskPixmap); - if (xrdp_is_os(pMskPixmap, pMskPriv)) - { - rv = 1; - msk->flags = 1; - msk->idx = pMskPriv->rdpindex; - msk->format = pMask->format; - msk->width = pMask->pDrawable->width; - msk->repeat = pMask->repeatType; - } - else - { - fail_reason = 3; - } - } - } -#endif - } - } - if (rv == 0) - { - LLOGLN(10, ("check_drawables: can not remote [%s]", g_com_fail_strings[fail_reason])); -#if 0 - composite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, - xDst, yDst, width, height); -#endif - } - else - { - LLOGLN(10, ("check_drawables: can remote [%s]", g_com_fail_strings[fail_reason])); -#if 0 - composite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, - xDst, yDst, width, height); -#endif - } - return rv; -} - -/******************************************************************************/ -static int -rdpRemoteComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height) -{ - int ok_to_remote; - PixmapPtr pSrcPixmap; - PixmapPtr pMskPixmap; - PixmapPtr pDstPixmap; - rdpPixmapRec* pSrcPriv; - rdpPixmapRec* pMskPriv; - rdpPixmapRec* pDstPriv; - BoxRec box; - RegionRec reg1; - RegionRec reg2; - DrawablePtr p; - int j; - int num_clips; - struct msk_info msk; - - LLOGLN(10, ("rdpRemoteComposite:")); - - memset(&msk, 0, sizeof(msk)); - ok_to_remote = check_drawables(op, pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height, - &msk); - if (!ok_to_remote) - { - return 1; - } - - ValidatePicture(pSrc); - pSrcPixmap = (PixmapPtr)(pSrc->pDrawable); - pSrcPriv = GETPIXPRIV(pSrcPixmap); - rdpup_check_dirty(pSrcPixmap, pSrcPriv); - if (PIXMAN_FORMAT_A(pSrc->format) > 0) - { - if (src_alpha_needed(op)) - { - rdpup_check_alpha_dirty(pSrcPixmap, pSrcPriv); - } - } - - ValidatePicture(pDst); - pDstPixmap = (PixmapPtr)(pDst->pDrawable); - pDstPriv = GETPIXPRIV(pDstPixmap); - rdpup_check_dirty(pDstPixmap, pDstPriv); - - if (PIXMAN_FORMAT_A(pDst->format) > 0) - { - if (dst_alpha_needed(op)) - { - rdpup_check_alpha_dirty(pDstPixmap, pDstPriv); - } - } - - if (pMask != 0) - { - ValidatePicture(pMask); - pMskPixmap = (PixmapPtr)(pMask->pDrawable); - pMskPriv = GETPIXPRIV(pMskPixmap); - rdpup_check_dirty(pMskPixmap, pMskPriv); - if (PIXMAN_FORMAT_A(msk.format) > 0) - { - rdpup_check_alpha_dirty(pMskPixmap, pMskPriv); - } - } - - p = pDst->pDrawable; - rdpup_switch_os_surface(pDstPriv->rdpindex); - if (pDst->pCompositeClip != 0) - { - box.x1 = xDst; - box.y1 = yDst; - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - RegionInit(®1, &box, 0); - RegionInit(®2, NullBox, 0); - RegionCopy(®2, pDst->pCompositeClip); - RegionIntersect(®1, ®1, ®2); - RegionTranslate(®1, p->x, p->y); - num_clips = REGION_NUM_RECTS(®1); - if (num_clips > 0) - { - LLOGLN(10, ("num_clips %d", num_clips)); - rdpup_begin_update(); - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®1)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - LLOGLN(10, ("pSrc->format 0x%x 0x%x 0x%x %d %d %d %d %d %d %d %d", - pSrc->format, msk.format, pDst->format, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height)); - rdpup_composite(pSrcPriv->rdpindex, pSrc->format, - pSrc->pDrawable->width, pSrc->repeatType, - pSrc->transform, msk.flags, msk.idx, msk.format, - msk.width, msk.repeat, op, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height, pDst->format); - } - rdpup_reset_clip(); - rdpup_end_update(); - } - RegionUninit(®1); - RegionUninit(®2); - } - else - { - rdpup_begin_update(); - rdpup_composite(pSrcPriv->rdpindex, pSrc->format, - pSrc->pDrawable->width, pSrc->repeatType, - pSrc->transform, msk.flags, msk.idx, msk.format, - msk.width, msk.repeat, op, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height, pDst->format); - rdpup_end_update(); - } - rdpup_switch_os_surface(-1); - - return 0; -} - -/******************************************************************************/ -static void -rdpCompositeOrg(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height) -{ - PictureScreenPtr ps; - - ps = GetPictureScreen(g_pScreen); - ps->Composite = g_rdpScreen.Composite; - ps->Composite(op, pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height); - ps->Composite = rdpComposite; -} - -/******************************************************************************/ -/* it looks like all the antialias draws go through here - op is one of the following - #define PictOpMinimum 0 - #define PictOpClear 0 - #define PictOpSrc 1 - #define PictOpDst 2 - #define PictOpOver 3 - #define PictOpOverReverse 4 - #define PictOpIn 5 - #define PictOpInReverse 6 - #define PictOpOut 7 - #define PictOpOutReverse 8 - #define PictOpAtop 9 - #define PictOpAtopReverse 10 - #define PictOpXor 11 - #define PictOpAdd 12 - #define PictOpSaturate 13 - #define PictOpMaximum 13 - - see for porter duff - http://www.svgopen.org/2005/papers/abstractsvgopen/ - - */ -void -rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, - INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, - INT16 yDst, CARD16 width, CARD16 height) -{ - BoxRec box; - RegionRec reg1; - RegionRec reg2; - DrawablePtr p; - int dirty_type; - int j; - int num_clips; - int post_process; - int reset_surface; - int got_id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec* pDstPriv; - rdpPixmapRec* pDirtyPriv; - struct image_data id; - - LLOGLN(10, ("rdpComposite:")); - - if (g_doing_font == 2) - { - rdpCompositeOrg(op, pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height); - - return; - } - -#if 0 - if (g_do_glyph_cache && g_do_alpha_glyphs) - { - if (pSrc->pDrawable->width == 1 && - pSrc->pDrawable->height == 1) - { - if (pMask != 0) - { - /* TODO: here we can try to send it as a glyph */ - } - } - } -#endif - - /* try to remote the composite call */ - if (g_do_composite && - rdpRemoteComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, - xDst, yDst, width, height) == 0) - { - rdpCompositeOrg(op, pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height); - return; - } - - rdpCompositeOrg(op, pSrc, pMask, pDst, xSrc, ySrc, - xMask, yMask, xDst, yDst, width, height); - - LLOGLN(10, ("rdpComposite: op %d %p %p %p w %d h %d", op, pSrc, pMask, pDst, width, height)); - - p = pDst->pDrawable; - - pDstPriv = 0; - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - if (p->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)p; - pDstPriv = GETPIXPRIV(pDstPixmap); - if (XRDP_IS_OS(pDstPriv)) - { - post_process = 1; - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpComposite: getting dirty")); - pDstPriv->is_dirty = 1; - dirty_type = g_doing_font ? RDI_IMGLL : RDI_IMGLY; - pDirtyPriv = pDstPriv; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - LLOGLN(10, ("rdpComposite: offscreen")); - } - } - } - else - { - if (p->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)p; - if (pDstWnd->viewable) - { - post_process = 1; - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpComposite: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = g_doing_font ? RDI_IMGLL : RDI_IMGLY; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - if (pDst->pCompositeClip != 0) - { - box.x1 = p->x + xDst; - box.y1 = p->y + yDst; - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - RegionInit(®1, &box, 0); - RegionInit(®2, NullBox, 0); - RegionCopy(®2, pDst->pCompositeClip); - RegionIntersect(®1, ®1, ®2); - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_COMPOSITE); - } - else if (got_id) - { - num_clips = REGION_NUM_RECTS(®1); - if (num_clips > 0) - { - rdpup_begin_update(); - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®1)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - rdpup_end_update(); - } - } - RegionUninit(®1); - RegionUninit(®2); - } - else - { - box.x1 = p->x + xDst; - box.y1 = p->y + yDst; - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_COMPOSITE); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpCopyArea.c b/xorg/X11R7.6/rdp/rdpCopyArea.c deleted file mode 100644 index 4718a89c..00000000 --- a/xorg/X11R7.6/rdp/rdpCopyArea.c +++ /dev/null @@ -1,630 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_can_do_pix_to_pix; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static RegionPtr -rdpCopyAreaOrg(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, - int srcx, int srcy, int w, int h, int dstx, int dsty) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - RegionPtr rv; - - GC_OP_PROLOGUE(pGC); - rv = pGC->ops->CopyArea(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty); - GC_OP_EPILOGUE(pGC); - return rv; -} - -/******************************************************************************/ -static RegionPtr -rdpCopyAreaWndToWnd(WindowPtr pSrcWnd, WindowPtr pDstWnd, GCPtr pGC, - int srcx, int srcy, int w, int h, - int dstx, int dsty) -{ - int cd; - int lsrcx; - int lsrcy; - int ldstx; - int ldsty; - int num_clips; - int dx; - int dy; - int j; - BoxRec box; - RegionPtr rv; - RegionRec clip_reg; - - LLOGLN(10, ("rdpCopyAreaWndToWnd:")); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, &(pDstWnd->drawable), pGC); - lsrcx = pSrcWnd->drawable.x + srcx; - lsrcy = pSrcWnd->drawable.y + srcy; - ldstx = pDstWnd->drawable.x + dstx; - ldsty = pDstWnd->drawable.y + dsty; - - if (cd == 1) - { - rdpup_begin_update(); - rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy); - rdpup_end_update(); - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - rdpup_begin_update(); - dx = ldstx - lsrcx; - dy = ldsty - lsrcy; - - if ((dy < 0) || ((dy == 0) && (dx < 0))) - { - for (j = 0; j < num_clips; j++) - { - box = REGION_RECTS(&clip_reg)[j]; - LLOGLN(10, (" index %d x1 %d y1 %d x2 %d y2 %d", j, - box.x1, box.y1, box.x2, box.y2)); - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy); - } - } - else - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - LLOGLN(10, (" index %d x1 %d y1 %d x2 %d y2 %d", j, - box.x1, box.y1, box.x2, box.y2)); - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy); - } - } - - rdpup_reset_clip(); - rdpup_end_update(); - } - } - - RegionUninit(&clip_reg); - rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstWnd->drawable), - pGC, srcx, srcy, w, h, dstx, dsty); - return rv; -} - -/******************************************************************************/ -static RegionPtr -rdpCopyAreaWndToPixmap(WindowPtr pSrcWnd, - PixmapPtr pDstPixmap, rdpPixmapRec *pDstPriv, - GCPtr pGC, int srcx, int srcy, int w, int h, - int dstx, int dsty) -{ - int cd; - int lsrcx; - int lsrcy; - int ldstx; - int ldsty; - int num_clips; - int j; - BoxRec box; - RegionPtr rv; - RegionRec clip_reg; - - LLOGLN(10, ("rdpCopyAreaWndToPixmap:")); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, &(pDstPixmap->drawable), pGC); - lsrcx = pSrcWnd->drawable.x + srcx; - lsrcy = pSrcWnd->drawable.y + srcy; - ldstx = pDstPixmap->drawable.x + dstx; - ldsty = pDstPixmap->drawable.y + dsty; - - if (cd == 1) - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - rdpup_begin_update(); - rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - rdpup_begin_update(); - - for (j = 0; j < num_clips; j++) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy); - } - - rdpup_reset_clip(); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - } - } - - RegionUninit(&clip_reg); - rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstPixmap->drawable), - pGC, srcx, srcy, w, h, dstx, dsty); - return rv; -} - -/******************************************************************************/ -/* draw from an off screen pixmap to a visible window */ -static RegionPtr -rdpCopyAreaPixmapToWnd(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv, - WindowPtr pDstWnd, GCPtr pGC, - int srcx, int srcy, int w, int h, - int dstx, int dsty) -{ - int lsrcx; - int lsrcy; - int ldstx; - int ldsty; - int cd; - int j; - int num_clips; - RegionPtr rv; - RegionRec clip_reg; - BoxRec box; - - LLOGLN(10, ("rdpCopyAreaPixmapToWnd:")); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, &(pDstWnd->drawable), pGC); - ldstx = pDstWnd->drawable.x + dstx; - ldsty = pDstWnd->drawable.y + dsty; - lsrcx = pSrcPixmap->drawable.x + srcx; - lsrcy = pSrcPixmap->drawable.y + srcy; - - if (cd == 1) - { - rdpup_begin_update(); - rdpup_paint_rect_os(ldstx, ldsty, w, h, pSrcPriv->rdpindex, lsrcx, lsrcy); - rdpup_end_update(); - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - rdpup_begin_update(); - LLOGLN(10, ("rdpCopyAreaPixmapToWnd: num_clips %d", num_clips)); - - for (j = 0; j < num_clips; j++) - { - box = REGION_RECTS(&clip_reg)[j]; - LLOGLN(10, ("rdpCopyAreaPixmapToWnd: %d %d %d %d", box.x1, box.y1, box.x2, box.y2)); - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - LLOGLN(10, ("rdpCopyAreaPixmapToWnd: %d %d", w, h)); - rdpup_paint_rect_os(ldstx, ldsty, w, h, pSrcPriv->rdpindex, lsrcx, lsrcy); - } - - rdpup_reset_clip(); - rdpup_end_update(); - } - } - - RegionUninit(&clip_reg); - rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstWnd->drawable), - pGC, srcx, srcy, w, h, dstx, dsty); - return rv; -} - -/******************************************************************************/ -/* draw from an off screen pixmap to an off screen pixmap */ -static RegionPtr -rdpCopyAreaPixmapToPixmap(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv, - PixmapPtr pDstPixmap, rdpPixmapRec *pDstPriv, - GCPtr pGC, int srcx, int srcy, int w, int h, - int dstx, int dsty) -{ - int lsrcx; - int lsrcy; - int ldstx; - int ldsty; - int cd; - int j; - int num_clips; - int dx; - int dy; - RegionPtr rv; - RegionRec clip_reg; - BoxRec box; - - LLOGLN(10, ("rdpCopyAreaPixmapToPixmap:")); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, &(pDstPixmap->drawable), pGC); - LLOGLN(10, ("rdpCopyAreaPixmapToPixmap: cd %d", cd)); - ldstx = pDstPixmap->drawable.x + dstx; - ldsty = pDstPixmap->drawable.y + dsty; - lsrcx = pSrcPixmap->drawable.x + srcx; - lsrcy = pSrcPixmap->drawable.y + srcy; - - if (cd == 1) - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - rdpup_begin_update(); - rdpup_paint_rect_os(ldstx, ldsty, w, h, pSrcPriv->rdpindex, lsrcx, lsrcy); - LLOGLN(10, ("%d %d %d %d %d %d", ldstx, ldsty, w, h, lsrcx, lsrcy)); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - rdpup_begin_update(); - dx = ldstx - lsrcx; - dy = ldsty - lsrcy; - - LLOGLN(10, ("rdpCopyAreaPixmapToPixmap: num_clips %d", num_clips)); - - if ((dy < 0) || ((dy == 0) && (dx < 0))) - { - for (j = 0; j < num_clips; j++) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_paint_rect_os(ldstx, ldsty, w, h, pSrcPriv->rdpindex, lsrcx, lsrcy); - LLOGLN(10, ("%d %d %d %d %d %d", ldstx, ldsty, w, h, lsrcx, lsrcy)); - } - } - else - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_paint_rect_os(ldstx, ldsty, w, h, pSrcPriv->rdpindex, lsrcx, lsrcy); - LLOGLN(10, ("%d %d %d %d %d %d", ldstx, ldsty, w, h, lsrcx, lsrcy)); - } - } - - rdpup_reset_clip(); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - } - } - - RegionUninit(&clip_reg); - rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstPixmap->drawable), - pGC, srcx, srcy, w, h, dstx, dsty); - return rv; -} - -/******************************************************************************/ -RegionPtr -rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, - int srcx, int srcy, int w, int h, int dstx, int dsty) -{ - RegionPtr rv; - RegionRec clip_reg; - RegionRec box_reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int can_do_screen_blt; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - struct image_data id; - BoxRec box; - BoxPtr pbox; - PixmapPtr pSrcPixmap; - PixmapPtr pDstPixmap; - rdpPixmapRec *pSrcPriv; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - WindowPtr pDstWnd; - WindowPtr pSrcWnd; - - LLOGLN(10, ("rdpCopyArea: x %d y %d w %d h %d", dstx, dsty, w, h)); - - if (pSrc->type == DRAWABLE_WINDOW) - { - pSrcWnd = (WindowPtr)pSrc; - - if (pSrcWnd->viewable) - { - rdpup_check_dirty_screen(&g_screenPriv); - - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - can_do_screen_blt = pGC->alu == GXcopy; - - if (can_do_screen_blt) - { - return rdpCopyAreaWndToWnd(pSrcWnd, pDstWnd, pGC, - srcx, srcy, w, h, dstx, dsty); - } - } - } - else if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - can_do_screen_blt = pGC->alu == GXcopy; - - if (can_do_screen_blt) - { - rdpup_check_dirty(pDstPixmap, pDstPriv); - return rdpCopyAreaWndToPixmap(pSrcWnd, pDstPixmap, pDstPriv, pGC, - srcx, srcy, w, h, dstx, dsty); - } - } - else - { - LLOGLN(10, ("rdpCopyArea: 1")); - } - } - } - } - - if (pSrc->type == DRAWABLE_PIXMAP) - { - pSrcPixmap = (PixmapPtr)pSrc; - pSrcPriv = GETPIXPRIV(pSrcPixmap); - - LLOGLN(10, ("rdpCopyArea: 3 %d %d", pSrcPixmap->usage_hint, pSrcPriv->is_scratch)); - - if (xrdp_is_os(pSrcPixmap, pSrcPriv)) - { - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - rdpup_check_dirty_screen(&g_screenPriv); - rdpup_check_dirty(pSrcPixmap, pSrcPriv); - return rdpCopyAreaPixmapToWnd(pSrcPixmap, pSrcPriv, pDstWnd, pGC, - srcx, srcy, w, h, dstx, dsty); - } - } - else if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - if (g_can_do_pix_to_pix) - { - rdpup_check_dirty(pSrcPixmap, pSrcPriv); - rdpup_check_dirty(pDstPixmap, pDstPriv); - return rdpCopyAreaPixmapToPixmap(pSrcPixmap, pSrcPriv, - pDstPixmap, pDstPriv, - pGC, srcx, srcy, w, h, - dstx, dsty); - } - } - else - { - LLOGLN(10, ("rdpCopyArea: 4")); - } - } - } - else - { - LLOGLN(10, ("rdpCopyArea: 2 %d %d", pSrcPixmap->usage_hint, pSrcPriv->is_scratch)); - } - } - - LLOGLN(10, ("rdpCopyArea: fallback")); - - /* do original call */ - rv = rdpCopyAreaOrg(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpCopyArea: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - else - { - LLOGLN(10, ("rdpCopyArea: 3")); - } - } - else - { - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpCopyArea: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return rv; - } - - LLOGLN(10, ("rdpCopyArea: post_process")); - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDst, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_COPYAREA); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, pDst->x + dstx, pDst->y + dsty, w, h); - rdpup_end_update(); - } - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(&box_reg, &box, 0); - RegionIntersect(&clip_reg, &clip_reg, &box_reg); - draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type, TAG_COPYAREA); - RegionUninit(&box_reg); - } - else if (got_id) - { - rdpup_begin_update(); - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(&box_reg, &box, 0); - RegionIntersect(&clip_reg, &clip_reg, &box_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips < 10) - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - } - else - { - pbox = RegionExtents(&clip_reg); - rdpup_send_area(&id, pbox->x1, pbox->y1, pbox->x2 - pbox->x1, - pbox->y2 - pbox->y1); - } - - RegionUninit(&box_reg); - rdpup_end_update(); - } - } - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return rv; -} diff --git a/xorg/X11R7.6/rdp/rdpCopyArea.h b/xorg/X11R7.6/rdp/rdpCopyArea.h deleted file mode 100644 index 654b6edc..00000000 --- a/xorg/X11R7.6/rdp/rdpCopyArea.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPCOPYAREA_H -#define __RDPCOPYAREA_H - -RegionPtr -rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, - int srcx, int srcy, int w, int h, int dstx, int dsty); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpCopyPlane.c b/xorg/X11R7.6/rdp/rdpCopyPlane.c deleted file mode 100644 index 063766ee..00000000 --- a/xorg/X11R7.6/rdp/rdpCopyPlane.c +++ /dev/null @@ -1,241 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -RegionPtr -rdpCopyPlaneOrg(DrawablePtr pSrc, DrawablePtr pDst, - GCPtr pGC, int srcx, int srcy, int w, int h, - int dstx, int dsty, unsigned long bitPlane) -{ - RegionPtr rv; - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - rv = pGC->ops->CopyPlane(pSrc, pDst, pGC, srcx, srcy, - w, h, dstx, dsty, bitPlane); - GC_OP_EPILOGUE(pGC); - return rv; -} - -/******************************************************************************/ -RegionPtr -rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, - GCPtr pGC, int srcx, int srcy, int w, int h, - int dstx, int dsty, unsigned long bitPlane) -{ - RegionPtr rv; - RegionRec clip_reg; - RegionRec box_reg; - RegionRec reg1; - RegionRec reg2; - int cd; - int num_clips; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - BoxPtr pbox; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpCopyPlane:")); - - /* do original call */ - rv = rdpCopyPlaneOrg(pSrc, pDst, pGC, srcx, srcy, w, h, - dstx, dsty, bitPlane); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpCopyPlane: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpCopyPlane: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return rv; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDst, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_COPYPLANE); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, pDst->x + dstx, pDst->y + dsty, w, h); - rdpup_end_update(); - } - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - RegionInit(®2, NullBox, 0); - RegionCopy(®2, &clip_reg); - RegionIntersect(®1, ®1, ®2); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_COPYPLANE); - RegionUninit(®1); - RegionUninit(®2); - } - else if (got_id) - { - rdpup_begin_update(); - box.x1 = pDst->x + dstx; - box.y1 = pDst->y + dsty; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(&box_reg, &box, 0); - RegionIntersect(&clip_reg, &clip_reg, &box_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips < 10) - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - } - else - { - pbox = RegionExtents(&clip_reg); - rdpup_send_area(&id, pbox->x1, pbox->y1, pbox->x2 - pbox->x1, - pbox->y2 - pbox->y1); - } - - RegionUninit(&box_reg); - rdpup_end_update(); - } - } - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return rv; -} diff --git a/xorg/X11R7.6/rdp/rdpCopyPlane.h b/xorg/X11R7.6/rdp/rdpCopyPlane.h deleted file mode 100644 index 85a79e76..00000000 --- a/xorg/X11R7.6/rdp/rdpCopyPlane.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPCOPYPLANE_H -#define __RDPCOPYPLANE_H - -RegionPtr -rdpCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, - GCPtr pGC, int srcx, int srcy, int width, int height, - int dstx, int dsty, unsigned long bitPlane); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpFillPolygon.c b/xorg/X11R7.6/rdp/rdpFillPolygon.c deleted file mode 100644 index 960f619e..00000000 --- a/xorg/X11R7.6/rdp/rdpFillPolygon.c +++ /dev/null @@ -1,251 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpFillPolygonOrg(DrawablePtr pDrawable, GCPtr pGC, - int shape, int mode, int count, - DDXPointPtr pPts) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->FillPolygon(pDrawable, pGC, shape, mode, count, pPts); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC, - int shape, int mode, int count, - DDXPointPtr pPts) -{ - RegionRec clip_reg; - RegionRec box_reg; - RegionRec reg1; - int num_clips; - int cd; - int maxx; - int maxy; - int minx; - int miny; - int i; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpFillPolygon:")); - - box.x1 = 0; - box.y1 = 0; - box.x2 = 0; - box.y2 = 0; - - if (count > 0) - { - maxx = pPts[0].x; - maxy = pPts[0].y; - minx = maxx; - miny = maxy; - - for (i = 1; i < count; i++) - { - if (pPts[i].x > maxx) - { - maxx = pPts[i].x; - } - - if (pPts[i].x < minx) - { - minx = pPts[i].x; - } - - if (pPts[i].y > maxy) - { - maxy = pPts[i].y; - } - - if (pPts[i].y < miny) - { - miny = pPts[i].y; - } - } - - box.x1 = pDrawable->x + minx; - box.y1 = pDrawable->y + miny; - box.x2 = pDrawable->x + maxx + 1; - box.y2 = pDrawable->y + maxy + 1; - } - - /* do original call */ - rdpFillPolygonOrg(pDrawable, pGC, shape, mode, count, pPts); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpFillPolygon: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpFillPolygon: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_FILLPOLYGON); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(&box_reg, &box, 0); - RegionIntersect(&clip_reg, &clip_reg, &box_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type, TAG_FILLPOLYGON); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(&box_reg); - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpFillPolygon.h b/xorg/X11R7.6/rdp/rdpFillPolygon.h deleted file mode 100644 index 89da9ae0..00000000 --- a/xorg/X11R7.6/rdp/rdpFillPolygon.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPFILLPOLYGON_H -#define __RDPFILLPOLYGON_H - -void -rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC, - int shape, int mode, int count, - DDXPointPtr pPts); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpFillSpans.c b/xorg/X11R7.6/rdp/rdpFillSpans.c deleted file mode 100644 index 8025bf45..00000000 --- a/xorg/X11R7.6/rdp/rdpFillSpans.c +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static void -rdpFillSpansOrg(DrawablePtr pDrawable, GCPtr pGC, int nInit, - DDXPointPtr pptInit, int *pwidthInit, int fSorted) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->FillSpans(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit, - DDXPointPtr pptInit, int *pwidthInit, int fSorted) -{ - RegionRec clip_reg; - int cd; - int got_id; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - - LLOGLN(0, ("rdpFillSpans: todo")); - - /* do original call */ - rdpFillSpansOrg(pDrawable, pGC, nInit, pptInit, pwidthInit, fSorted); - - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - - if (!got_id) - { - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - } - else if (cd == 2) - { - } - - RegionUninit(&clip_reg); - rdpup_switch_os_surface(-1); -} diff --git a/xorg/X11R7.6/rdp/rdpFillSpans.h b/xorg/X11R7.6/rdp/rdpFillSpans.h deleted file mode 100644 index 7e014e6b..00000000 --- a/xorg/X11R7.6/rdp/rdpFillSpans.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPFILLSPANS_H -#define __RDPFILLSPANS_H - -void -rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit, - DDXPointPtr pptInit, int* pwidthInit, int fSorted); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpImageGlyphBlt.c b/xorg/X11R7.6/rdp/rdpImageGlyphBlt.c deleted file mode 100644 index d425a30b..00000000 --- a/xorg/X11R7.6/rdp/rdpImageGlyphBlt.c +++ /dev/null @@ -1,219 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpImageGlyphBltOrg(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->ImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpImageGlyphBlt:")); - - if (nglyph != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, nglyph, &box); - } - - /* do original call */ - rdpImageGlyphBltOrg(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpImageGlyphBlt: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpImageGlyphBlt: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(®, NullBox, 0); - - if (nglyph == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_IMAGEGLYPHBLT); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_IMAGEGLYPHBLT); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return; -} diff --git a/xorg/X11R7.6/rdp/rdpImageGlyphBlt.h b/xorg/X11R7.6/rdp/rdpImageGlyphBlt.h deleted file mode 100644 index c5483c7e..00000000 --- a/xorg/X11R7.6/rdp/rdpImageGlyphBlt.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPIMAGEGLYPHBLT_H -#define __RDPIMAGEGLYPHBLT_H - -void -rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr* ppci, pointer pglyphBase); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpImageText16.c b/xorg/X11R7.6/rdp/rdpImageText16.c deleted file mode 100644 index 604d85e3..00000000 --- a/xorg/X11R7.6/rdp/rdpImageText16.c +++ /dev/null @@ -1,218 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpImageText16Org(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->ImageText16(pDrawable, pGC, x, y, count, chars); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpImageText16(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpImageText16:")); - - if (count != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box); - } - - /* do original call */ - rdpImageText16Org(pDrawable, pGC, x, y, count, chars); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpImageText16: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpImageText16: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(®, NullBox, 0); - - if (count == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_IMAGETEXT16); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_IMAGETEXT16); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return; -} diff --git a/xorg/X11R7.6/rdp/rdpImageText16.h b/xorg/X11R7.6/rdp/rdpImageText16.h deleted file mode 100644 index 0ffb90f2..00000000 --- a/xorg/X11R7.6/rdp/rdpImageText16.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPIMAGETEXT16_H -#define __RDPIMAGETEXT16_H - -void -rdpImageText16(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short* chars); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpImageText8.c b/xorg/X11R7.6/rdp/rdpImageText8.c deleted file mode 100644 index 08dead18..00000000 --- a/xorg/X11R7.6/rdp/rdpImageText8.c +++ /dev/null @@ -1,218 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpImageText8Org(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char *chars) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->ImageText8(pDrawable, pGC, x, y, count, chars); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpImageText8(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char *chars) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpImageText8:")); - - if (count != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box); - } - - /* do original call */ - rdpImageText8Org(pDrawable, pGC, x, y, count, chars); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpImageText8: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpImageText8: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(®, NullBox, 0); - - if (count == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_IMAGETEXT8); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_IMAGETEXT8); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return; -} diff --git a/xorg/X11R7.6/rdp/rdpImageText8.h b/xorg/X11R7.6/rdp/rdpImageText8.h deleted file mode 100644 index dc0c4ec5..00000000 --- a/xorg/X11R7.6/rdp/rdpImageText8.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPIMAGETEXT8_H -#define __RDPIMAGETEXT8_H - -void -rdpImageText8(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char* chars); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyArc.c b/xorg/X11R7.6/rdp/rdpPolyArc.c deleted file mode 100644 index 84a85587..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyArc.c +++ /dev/null @@ -1,248 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPolyArcOrg(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyArc(pDrawable, pGC, narcs, parcs); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs) -{ - RegionRec clip_reg; - RegionPtr tmpRegion; - int cd; - int lw; - int extra; - int i; - int num_clips; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - xRectangle *rects; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyArc:")); - - rects = 0; - - if (narcs > 0) - { - rects = (xRectangle *)g_malloc(narcs * sizeof(xRectangle), 0); - lw = pGC->lineWidth; - - if (lw == 0) - { - lw = 1; - } - - extra = lw / 2; - - for (i = 0; i < narcs; i++) - { - rects[i].x = (parcs[i].x - extra) + pDrawable->x; - rects[i].y = (parcs[i].y - extra) + pDrawable->y; - rects[i].width = parcs[i].width + lw; - rects[i].height = parcs[i].height + lw; - } - } - - /* do original call */ - rdpPolyArcOrg(pDrawable, pGC, narcs, parcs); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyArc: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyArc: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - g_free(rects); - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (rects != 0) - { - tmpRegion = RegionFromRects(narcs, rects, CT_NONE); - num_clips = REGION_NUM_RECTS(tmpRegion); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, tmpRegion, GXcopy, dirty_type, TAG_POLYARC); - } - else if (got_id) - { - rdpup_begin_update(); - - for (i = num_clips - 1; i >= 0; i--) - { - box = REGION_RECTS(tmpRegion)[i]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionDestroy(tmpRegion); - } - } - else if (cd == 2) - { - if (rects != 0) - { - tmpRegion = RegionFromRects(narcs, rects, CT_NONE); - RegionIntersect(tmpRegion, tmpRegion, &clip_reg); - num_clips = REGION_NUM_RECTS(tmpRegion); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, tmpRegion, GXcopy, dirty_type, TAG_POLYARC); - } - else if (got_id) - { - rdpup_begin_update(); - - for (i = num_clips - 1; i >= 0; i--) - { - box = REGION_RECTS(tmpRegion)[i]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionDestroy(tmpRegion); - } - } - - RegionUninit(&clip_reg); - g_free(rects); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolyArc.h b/xorg/X11R7.6/rdp/rdpPolyArc.h deleted file mode 100644 index 7ebadc35..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyArc.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYARC_H -#define __RDPPOLYARC_H - -void -rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyFillArc.c b/xorg/X11R7.6/rdp/rdpPolyFillArc.c deleted file mode 100644 index e3822215..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyFillArc.c +++ /dev/null @@ -1,248 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPolyFillArcOrg(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyFillArc(pDrawable, pGC, narcs, parcs); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs) -{ - RegionRec clip_reg; - RegionPtr tmpRegion; - int cd; - int lw; - int extra; - int i; - int num_clips; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - xRectangle *rects; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyFillArc:")); - - rects = 0; - - if (narcs > 0) - { - rects = (xRectangle *)g_malloc(narcs * sizeof(xRectangle), 0); - lw = pGC->lineWidth; - - if (lw == 0) - { - lw = 1; - } - - extra = lw / 2; - - for (i = 0; i < narcs; i++) - { - rects[i].x = (parcs[i].x - extra) + pDrawable->x; - rects[i].y = (parcs[i].y - extra) + pDrawable->y; - rects[i].width = parcs[i].width + lw; - rects[i].height = parcs[i].height + lw; - } - } - - /* do original call */ - rdpPolyFillArcOrg(pDrawable, pGC, narcs, parcs); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyFillArc: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyFillArc: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - g_free(rects); - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (rects != 0) - { - tmpRegion = RegionFromRects(narcs, rects, CT_NONE); - num_clips = REGION_NUM_RECTS(tmpRegion); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, tmpRegion, GXcopy, dirty_type, TAG_POLYFILLARC); - } - else if (got_id) - { - rdpup_begin_update(); - - for (i = num_clips - 1; i >= 0; i--) - { - box = REGION_RECTS(tmpRegion)[i]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionDestroy(tmpRegion); - } - } - else if (cd == 2) - { - if (rects != 0) - { - tmpRegion = RegionFromRects(narcs, rects, CT_NONE); - RegionIntersect(tmpRegion, tmpRegion, &clip_reg); - num_clips = REGION_NUM_RECTS(tmpRegion); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, tmpRegion, GXcopy, dirty_type, TAG_POLYFILLARC); - } - else if (got_id) - { - rdpup_begin_update(); - - for (i = num_clips - 1; i >= 0; i--) - { - box = REGION_RECTS(tmpRegion)[i]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionDestroy(tmpRegion); - } - } - - RegionUninit(&clip_reg); - g_free(rects); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolyFillArc.h b/xorg/X11R7.6/rdp/rdpPolyFillArc.h deleted file mode 100644 index 9a9846e1..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyFillArc.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYFILLARC_H -#define __RDPPOLYFILLARC_H - -void -rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc* parcs); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyFillRect.c b/xorg/X11R7.6/rdp/rdpPolyFillRect.c deleted file mode 100644 index 6d37f587..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyFillRect.c +++ /dev/null @@ -1,319 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static void -rdpPolyFillRectOrg(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, - xRectangle *prectInit) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyFillRect(pDrawable, pGC, nrectFill, prectInit); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, - xRectangle *prectInit) -{ - int j; - int cd; - int num_clips; - RegionRec clip_reg; - RegionPtr fill_reg; - BoxRec box; - - int got_id; - int dirty_type; - int post_process; - int reset_surface; - - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyFillRect:")); - - /* make a copy of rects */ - fill_reg = RegionFromRects(nrectFill, prectInit, CT_NONE); - - /* do original call */ - rdpPolyFillRectOrg(pDrawable, pGC, nrectFill, prectInit); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - if (pDstPixmap->devPrivate.ptr == g_rdpScreen.pfbMemory) - { - /* treat like root window */ - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyFillRect: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = (FillTiled == pGC->fillStyle) ? - RDI_IMGLY : RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - else if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyFillRect: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = (FillTiled == pGC->fillStyle) ? - RDI_IMGLY : RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyFillRect: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = (FillTiled == pGC->fillStyle) ? - RDI_IMGLY : RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - RegionDestroy(fill_reg); - LLOGLN(10, ("rdpPolyFillRect: out, post_process not set")); - return; - } - - RegionTranslate(fill_reg, pDrawable->x, pDrawable->y); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - LLOGLN(10, ("rdpPolyFillRect: cd %d", cd)); - - if (cd == 1) /* no clip */ - { - if (dirty_type != 0) - { - if (pGC->fillStyle == 0 && /* solid fill */ - (pGC->alu == GXclear || - pGC->alu == GXset || - pGC->alu == GXinvert || - pGC->alu == GXnoop || - pGC->alu == GXand || - pGC->alu == GXcopy /*|| - pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */ - { - draw_item_add_fill_region(pDirtyPriv, fill_reg, pGC->fgPixel, - pGC->alu); - } - else - { - draw_item_add_img_region(pDirtyPriv, fill_reg, GXcopy, - dirty_type, TAG_POLYFILLRECT); - } - } - else if (got_id) - { - rdpup_begin_update(); - - if (pGC->fillStyle == 0 && /* solid fill */ - (pGC->alu == GXclear || - pGC->alu == GXset || - pGC->alu == GXinvert || - pGC->alu == GXnoop || - pGC->alu == GXand || - pGC->alu == GXcopy /*|| - pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */ - { - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - - for (j = REGION_NUM_RECTS(fill_reg) - 1; j >= 0; j--) - { - box = REGION_RECTS(fill_reg)[j]; - rdpup_fill_rect(box.x1, box.y1, - box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - } - else /* non solid fill */ - { - for (j = REGION_NUM_RECTS(fill_reg) - 1; j >= 0; j--) - { - box = REGION_RECTS(fill_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - } - - rdpup_end_update(); - } - } - else if (cd == 2) /* clip */ - { - RegionIntersect(&clip_reg, &clip_reg, fill_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - if (pGC->fillStyle == 0 && /* solid fill */ - (pGC->alu == GXclear || - pGC->alu == GXset || - pGC->alu == GXinvert || - pGC->alu == GXnoop || - pGC->alu == GXand || - pGC->alu == GXcopy /*|| - pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */ - { - LLOGLN(10, ("rdpPolyFillRect: 3")); - draw_item_add_fill_region(pDirtyPriv, &clip_reg, - pGC->fgPixel, - pGC->alu); - } - else - { - LLOGLN(10, ("rdpPolyFillRect: 4")); - draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, - dirty_type, TAG_POLYFILLRECT); - } - } - else if (got_id) - { - rdpup_begin_update(); - - LLOGLN(10, ("2 %x", pGC->fgPixel)); - - if (pGC->fillStyle == 0 && /* solid fill */ - (pGC->alu == GXclear || - pGC->alu == GXset || - pGC->alu == GXinvert || - pGC->alu == GXnoop || - pGC->alu == GXand || - pGC->alu == GXcopy /*|| - pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */ - { - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_fill_rect(box.x1, box.y1, - box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - } - else /* non solid fill */ - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, - box.x2 - box.x1, box.y2 - box.y1); - } - } - - rdpup_end_update(); - } - } - } - - RegionUninit(&clip_reg); - RegionDestroy(fill_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolyFillRect.h b/xorg/X11R7.6/rdp/rdpPolyFillRect.h deleted file mode 100644 index 94ac4b59..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyFillRect.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYFILLRECT_H -#define __RDPPOLYFILLRECT_H - -void -rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill, - xRectangle* prectInit); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.c b/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.c deleted file mode 100644 index 8ce1db08..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.c +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPolyGlyphBltOrg(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr *ppci, pointer pglyphBase) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyGlyphBlt:")); - - if (nglyph != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, nglyph, &box); - } - - /* do original call */ - rdpPolyGlyphBltOrg(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyGlyphBlt: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyGlyphBlt: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(®, NullBox, 0); - - if (nglyph == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_POLYGLYPHBLT); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_POLYGLYPHBLT); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return; -} diff --git a/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.h b/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.h deleted file mode 100644 index 9c6519d8..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyGlyphBlt.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYGLYPHBLT_H -#define __RDPPOLYGLYPHBLT_H - -void -rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, unsigned int nglyph, - CharInfoPtr* ppci, pointer pglyphBase); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyPoint.c b/xorg/X11R7.6/rdp/rdpPolyPoint.c deleted file mode 100644 index e2eadafd..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyPoint.c +++ /dev/null @@ -1,307 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPolyPointOrg(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr in_pts) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyPoint(pDrawable, pGC, mode, npt, in_pts); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr in_pts) -{ - RegionRec clip_reg; - RegionRec reg1; - RegionRec reg2; - int num_clips; - int cd; - int x; - int y; - int i; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - BoxRec total_box; - DDXPointPtr pts; - DDXPointRec stack_pts[32]; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyPoint:")); - LLOGLN(10, ("rdpPolyPoint: npt %d", npt)); - - if (npt > 32) - { - pts = (DDXPointPtr)g_malloc(sizeof(DDXPointRec) * npt, 0); - } - else - { - pts = stack_pts; - } - - for (i = 0; i < npt; i++) - { - pts[i].x = pDrawable->x + in_pts[i].x; - pts[i].y = pDrawable->y + in_pts[i].y; - - if (i == 0) - { - total_box.x1 = pts[0].x; - total_box.y1 = pts[0].y; - total_box.x2 = pts[0].x; - total_box.y2 = pts[0].y; - } - else - { - if (pts[i].x < total_box.x1) - { - total_box.x1 = pts[i].x; - } - - if (pts[i].y < total_box.y1) - { - total_box.y1 = pts[i].y; - } - - if (pts[i].x > total_box.x2) - { - total_box.x2 = pts[i].x; - } - - if (pts[i].y > total_box.y2) - { - total_box.y2 = pts[i].y; - } - } - - /* todo, use this total_box */ - } - - /* do original call */ - rdpPolyPointOrg(pDrawable, pGC, mode, npt, in_pts); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyPoint: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyPoint: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (npt > 0) - { - if (dirty_type != 0) - { - RegionInit(®1, NullBox, 0); - - for (i = 0; i < npt; i++) - { - box.x1 = pts[i].x; - box.y1 = pts[i].y; - box.x2 = box.x1 + 1; - box.y2 = box.y1 + 1; - RegionInit(®2, &box, 0); - RegionUnion(®1, ®1, ®2); - RegionUninit(®2); - } - - draw_item_add_fill_region(pDirtyPriv, ®1, pGC->fgPixel, - pGC->alu); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - - for (i = 0; i < npt; i++) - { - x = pts[i].x; - y = pts[i].y; - rdpup_fill_rect(x, y, 1, 1); - } - - rdpup_end_update(); - } - } - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (npt > 0 && num_clips > 0) - { - if (dirty_type != 0) - { - RegionInit(®1, NullBox, 0); - - for (i = 0; i < npt; i++) - { - box.x1 = pts[i].x; - box.y1 = pts[i].y; - box.x2 = box.x1 + 1; - box.y2 = box.y1 + 1; - RegionInit(®2, &box, 0); - RegionUnion(®1, ®1, ®2); - RegionUninit(®2); - } - - RegionIntersect(®1, ®1, &clip_reg); - draw_item_add_fill_region(pDirtyPriv, ®1, pGC->fgPixel, - pGC->alu); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - - for (i = 0; i < npt; i++) - { - x = pts[i].x; - y = pts[i].y; - rdpup_fill_rect(x, y, 1, 1); - } - } - - rdpup_reset_clip(); - rdpup_end_update(); - } - } - } - - RegionUninit(&clip_reg); - - if (pts != stack_pts) - { - g_free(pts); - } - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolyPoint.h b/xorg/X11R7.6/rdp/rdpPolyPoint.h deleted file mode 100644 index 87bf9459..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyPoint.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYPOINT_H -#define __RDPPOLYPOINT_H - -void -rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr in_pts); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyRectangle.c b/xorg/X11R7.6/rdp/rdpPolyRectangle.c deleted file mode 100644 index c1a5c971..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyRectangle.c +++ /dev/null @@ -1,323 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static void -rdpPolyRectangleOrg(DrawablePtr pDrawable, GCPtr pGC, int nrects, - xRectangle *rects) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolyRectangle(pDrawable, pGC, nrects, rects); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -/* tested with pGC->lineWidth = 0, 1, 2, 4 and opcodes 3 and 6 */ -void -rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects, - xRectangle *rects) -{ - RegionRec clip_reg; - RegionPtr fill_reg; - int num_clips; - int cd; - int lw; - int i; - int j; - int up; - int down; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - xRectangle *regRects; - xRectangle *r; - xRectangle *rect1; - BoxRec box; - struct image_data id; - - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyRectangle:")); - - /* make a copy of rects */ - rect1 = (xRectangle *)g_malloc(sizeof(xRectangle) * nrects, 0); - - for (i = 0; i < nrects; i++) - { - rect1[i] = rects[i]; - } - - /* do original call */ - rdpPolyRectangleOrg(pDrawable, pGC, nrects, rects); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyRectangle: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyRectangle: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - g_free(rect1); - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - regRects = 0; - - if ((cd != 0) && (nrects > 0)) - { - regRects = (xRectangle *)g_malloc(nrects * 4 * sizeof(xRectangle), 0); - lw = pGC->lineWidth; - - if (lw < 1) - { - lw = 1; - } - - up = lw / 2; - down = 1 + (lw - 1) / 2; - - for (i = 0; i < nrects; i++) - { - r = regRects + i * 4; - r->x = (rect1[i].x + pDrawable->x) - up; - r->y = (rect1[i].y + pDrawable->y) - up; - r->width = rect1[i].width + up + down; - r->height = lw; - r++; - r->x = (rect1[i].x + pDrawable->x) - up; - r->y = (rect1[i].y + pDrawable->y) + down; - r->width = lw; - r->height = MAX(rect1[i].height - (up + down), 0); - r++; - r->x = ((rect1[i].x + rect1[i].width) + pDrawable->x) - up; - r->y = (rect1[i].y + pDrawable->y) + down; - r->width = lw; - r->height = MAX(rect1[i].height - (up + down), 0); - r++; - r->x = (rect1[i].x + pDrawable->x) - up; - r->y = ((rect1[i].y + rect1[i].height) + pDrawable->y) - up; - r->width = rect1[i].width + up + down; - r->height = lw; - } - } - - if (cd == 1) - { - if (regRects != 0) - { - if (dirty_type != 0) - { - fill_reg = RegionFromRects(nrects * 4, regRects, CT_NONE); - - if (pGC->lineStyle == LineSolid) - { - draw_item_add_fill_region(pDirtyPriv, fill_reg, pGC->fgPixel, - pGC->alu); - } - else - { - draw_item_add_img_region(pDirtyPriv, fill_reg, GXcopy, dirty_type, TAG_POLYRECTANGLE); - } - - RegionDestroy(fill_reg); - } - else if (got_id) - { - rdpup_begin_update(); - - if (pGC->lineStyle == LineSolid) - { - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - - for (i = 0; i < nrects * 4; i++) - { - r = regRects + i; - rdpup_fill_rect(r->x, r->y, r->width, r->height); - } - - rdpup_set_opcode(GXcopy); - } - else - { - for (i = 0; i < nrects * 4; i++) - { - r = regRects + i; - rdpup_send_area(&id, r->x, r->y, r->width, r->height); - } - } - - rdpup_end_update(); - } - } - } - else if (cd == 2) - { - if (regRects != 0) - { - fill_reg = RegionFromRects(nrects * 4, regRects, CT_NONE); - RegionIntersect(&clip_reg, &clip_reg, fill_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - if (pGC->lineStyle == LineSolid) - { - draw_item_add_fill_region(pDirtyPriv, &clip_reg, pGC->fgPixel, - pGC->alu); - } - else - { - draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type, TAG_POLYRECTANGLE); - } - } - else if (got_id) - { - rdpup_begin_update(); - - if (pGC->lineStyle == LineSolid) - { - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_fill_rect(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - } - else - { - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - } - - rdpup_end_update(); - } - } - - RegionDestroy(fill_reg); - } - } - - RegionUninit(&clip_reg); - g_free(regRects); - g_free(rect1); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolyRectangle.h b/xorg/X11R7.6/rdp/rdpPolyRectangle.h deleted file mode 100644 index d09446d5..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyRectangle.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYRECTANGLE_H -#define __RDPPOLYRECTANGLE_H - -void -rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects, - xRectangle* rects); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolySegment.c b/xorg/X11R7.6/rdp/rdpPolySegment.c deleted file mode 100644 index f4bcfe31..00000000 --- a/xorg/X11R7.6/rdp/rdpPolySegment.c +++ /dev/null @@ -1,240 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPolySegmentOrg(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PolySegment(pDrawable, pGC, nseg, pSegs); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs) -{ - RegionRec clip_reg; - int cd; - int i; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - xSegment *segs; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolySegment:")); - LLOGLN(10, (" nseg %d", nseg)); - - segs = 0; - - if (nseg) /* get the rects */ - { - segs = (xSegment *)g_malloc(nseg * sizeof(xSegment), 0); - - for (i = 0; i < nseg; i++) - { - segs[i].x1 = pSegs[i].x1 + pDrawable->x; - segs[i].y1 = pSegs[i].y1 + pDrawable->y; - segs[i].x2 = pSegs[i].x2 + pDrawable->x; - segs[i].y2 = pSegs[i].y2 + pDrawable->y; - } - } - - /* do original call */ - rdpPolySegmentOrg(pDrawable, pGC, nseg, pSegs); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolySegment: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolySegment: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - g_free(segs); - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - LLOGLN(10, ("rdpPolySegment: cd %d", cd)); - - if (cd == 1) /* no clip */ - { - if (segs != 0) - { - if (dirty_type != 0) - { - RegionUninit(&clip_reg); - RegionInit(&clip_reg, NullBox, 0); - RegionAroundSegs(&clip_reg, segs, nseg); - draw_item_add_line_region(pDirtyPriv, &clip_reg, pGC->fgPixel, - pGC->alu, pGC->lineWidth, segs, nseg, 1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - rdpup_set_pen(0, pGC->lineWidth); - - for (i = 0; i < nseg; i++) - { - rdpup_draw_line(segs[i].x1, segs[i].y1, segs[i].x2, segs[i].y2); - } - - rdpup_set_opcode(GXcopy); - rdpup_end_update(); - } - } - } - else if (cd == 2) /* clip */ - { - if (segs != 0) - { - if (dirty_type != 0) - { - draw_item_add_line_region(pDirtyPriv, &clip_reg, pGC->fgPixel, - pGC->alu, pGC->lineWidth, segs, nseg, 1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - rdpup_set_pen(0, pGC->lineWidth); - - for (j = REGION_NUM_RECTS(&clip_reg) - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - - for (i = 0; i < nseg; i++) - { - rdpup_draw_line(segs[i].x1, segs[i].y1, segs[i].x2, segs[i].y2); - LLOGLN(10, (" %d %d %d %d", segs[i].x1, segs[i].y1, - segs[i].x2, segs[i].y2)); - } - } - - rdpup_reset_clip(); - rdpup_set_opcode(GXcopy); - rdpup_end_update(); - } - } - } - - g_free(segs); - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolySegment.h b/xorg/X11R7.6/rdp/rdpPolySegment.h deleted file mode 100644 index 8c5f33ab..00000000 --- a/xorg/X11R7.6/rdp/rdpPolySegment.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYSEGMENT_H -#define __RDPPOLYSEGMENT_H - -void -rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment* pSegs); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyText16.c b/xorg/X11R7.6/rdp/rdpPolyText16.c deleted file mode 100644 index a28030f0..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyText16.c +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -int -rdpPolyText16Org(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - int rv; - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - rv = pGC->ops->PolyText16(pDrawable, pGC, x, y, count, chars); - GC_OP_EPILOGUE(pGC); - return rv; -} - -/******************************************************************************/ -int -rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int rv; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyText16:")); - - if (count != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box); - } - - /* do original call */ - rv = rdpPolyText16Org(pDrawable, pGC, x, y, count, chars); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyText16: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyText16: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return rv; - } - - RegionInit(®, NullBox, 0); - - if (count == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_POLYTEXT16); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_POLYTEXT16); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return rv; -} diff --git a/xorg/X11R7.6/rdp/rdpPolyText16.h b/xorg/X11R7.6/rdp/rdpPolyText16.h deleted file mode 100644 index bcfa8379..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyText16.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYTEXT16_H -#define __RDPPOLYTEXT16_H - -int -rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, unsigned short* chars); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolyText8.c b/xorg/X11R7.6/rdp/rdpPolyText8.c deleted file mode 100644 index 3157a538..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyText8.c +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -int -rdpPolyText8Org(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char *chars) -{ - int rv; - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - rv = pGC->ops->PolyText8(pDrawable, pGC, x, y, count, chars); - GC_OP_EPILOGUE(pGC); - return rv; -} - -/******************************************************************************/ -int -rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char *chars) -{ - RegionRec reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int rv; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolyText8:")); - - if (count != 0) - { - GetTextBoundingBox(pDrawable, pGC->font, x, y, count, &box); - } - - /* do original call */ - rv = rdpPolyText8Org(pDrawable, pGC, x, y, count, chars); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolyText8: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolyText8: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return rv; - } - - RegionInit(®, NullBox, 0); - - if (count == 0) - { - cd = 0; - } - else - { - cd = rdp_get_clip(®, pDrawable, pGC); - } - - if (cd == 1) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_POLYTEXT8); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - rdpup_end_update(); - } - } - else if (cd == 2) - { - RegionInit(®1, &box, 0); - RegionIntersect(®, ®, ®1); - num_clips = REGION_NUM_RECTS(®); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_img_region(pDirtyPriv, ®, GXcopy, dirty_type, TAG_POLYTEXT8); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(®1); - } - - RegionUninit(®); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - - return rv; -} diff --git a/xorg/X11R7.6/rdp/rdpPolyText8.h b/xorg/X11R7.6/rdp/rdpPolyText8.h deleted file mode 100644 index 95e80412..00000000 --- a/xorg/X11R7.6/rdp/rdpPolyText8.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYTEXT8_H -#define __RDPPOLYTEXT8_H - -int -rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC, - int x, int y, int count, char* chars); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPolylines.c b/xorg/X11R7.6/rdp/rdpPolylines.c deleted file mode 100644 index ba6381b8..00000000 --- a/xorg/X11R7.6/rdp/rdpPolylines.c +++ /dev/null @@ -1,290 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static void -rdpPolylinesOrg(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr pptInit) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->Polylines(pDrawable, pGC, mode, npt, pptInit); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr pptInit) -{ - RegionRec clip_reg; - int num_clips; - int cd; - int i; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - xSegment *segs; - int nseg; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPolylines:")); - LLOGLN(10, (" npt %d mode %d x %d y %d", npt, mode, - pDrawable->x, pDrawable->y)); -#if 0 - LLOGLN(0, (" points")); - - for (i = 0; i < npt; i++) - { - LLOGLN(0, (" %d %d", pptInit[i].x, pptInit[i].y)); - } - -#endif - /* convert lines to line segments */ - nseg = npt - 1; - segs = 0; - - if (npt > 1) - { - segs = (xSegment *)g_malloc(sizeof(xSegment) * nseg, 0); - segs[0].x1 = pptInit[0].x + pDrawable->x; - segs[0].y1 = pptInit[0].y + pDrawable->y; - - if (mode == CoordModeOrigin) - { - segs[0].x2 = pptInit[1].x + pDrawable->x; - segs[0].y2 = pptInit[1].y + pDrawable->y; - - for (i = 2; i < npt; i++) - { - segs[i - 1].x1 = segs[i - 2].x2; - segs[i - 1].y1 = segs[i - 2].y2; - segs[i - 1].x2 = pptInit[i].x + pDrawable->x; - segs[i - 1].y2 = pptInit[i].y + pDrawable->y; - } - } - else - { - segs[0].x2 = segs[0].x1 + pptInit[1].x; - segs[0].y2 = segs[0].y1 + pptInit[1].y; - - for (i = 2; i < npt; i++) - { - segs[i - 1].x1 = segs[i - 2].x2; - segs[i - 1].y1 = segs[i - 2].y2; - segs[i - 1].x2 = segs[i - 1].x1 + pptInit[i].x; - segs[i - 1].y2 = segs[i - 1].y1 + pptInit[i].y; - } - } - } - else - { - LLOGLN(0, ("rdpPolylines: weird npt [%d]", npt)); - } - -#if 0 - LLOGLN(0, (" segments")); - - for (i = 0; i < nseg; i++) - { - LLOGLN(0, (" %d %d %d %d", segs[i].x1, segs[i].y1, - segs[i].x2, segs[i].y2)); - } - -#endif - - /* do original call */ - rdpPolylinesOrg(pDrawable, pGC, mode, npt, pptInit); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPolylines: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPolylines: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - g_free(segs); - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (segs != 0) - { - if (dirty_type != 0) - { - RegionUninit(&clip_reg); - RegionInit(&clip_reg, NullBox, 0); - RegionAroundSegs(&clip_reg, segs, nseg); - draw_item_add_line_region(pDirtyPriv, &clip_reg, pGC->fgPixel, - pGC->alu, pGC->lineWidth, segs, nseg, 0); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - rdpup_set_pen(0, pGC->lineWidth); - - for (i = 0; i < nseg; i++) - { - rdpup_draw_line(segs[i].x1, segs[i].y1, segs[i].x2, segs[i].y2); - } - - rdpup_set_opcode(GXcopy); - rdpup_end_update(); - } - } - } - else if (cd == 2) - { - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (nseg != 0 && num_clips > 0) - { - if (dirty_type != 0) - { - draw_item_add_line_region(pDirtyPriv, &clip_reg, pGC->fgPixel, - pGC->alu, pGC->lineWidth, segs, nseg, 0); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_set_fgcolor(pGC->fgPixel); - rdpup_set_opcode(pGC->alu); - rdpup_set_pen(0, pGC->lineWidth); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - - for (i = 0; i < nseg; i++) - { - rdpup_draw_line(segs[i].x1, segs[i].y1, segs[i].x2, segs[i].y2); - } - } - - rdpup_reset_clip(); - rdpup_set_opcode(GXcopy); - rdpup_end_update(); - } - } - } - - g_free(segs); - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPolylines.h b/xorg/X11R7.6/rdp/rdpPolylines.h deleted file mode 100644 index 2df3d388..00000000 --- a/xorg/X11R7.6/rdp/rdpPolylines.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPOLYLINES_H -#define __RDPPOLYLINES_H - -void -rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode, - int npt, DDXPointPtr pptInit); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPushPixels.c b/xorg/X11R7.6/rdp/rdpPushPixels.c deleted file mode 100644 index e7d330d1..00000000 --- a/xorg/X11R7.6/rdp/rdpPushPixels.c +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpPushPixelsOrg(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst, - int w, int h, int x, int y) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PushPixels(pGC, pBitMap, pDst, w, h, x, y); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst, - int w, int h, int x, int y) -{ - RegionRec clip_reg; - RegionRec box_reg; - RegionRec reg1; - int num_clips; - int cd; - int j; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - BoxRec box; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(10, ("rdpPushPixels:")); - - /* do original call */ - rdpPushPixelsOrg(pGC, pBitMap, pDst, w, h, x, y); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPushPixels: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPushPixels: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - memset(&box, 0, sizeof(box)); - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDst, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + x; - box.y1 = pDst->y + y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_PUSHPIXELS); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(0, pDst->x + x, pDst->y + y, w, h); - rdpup_end_update(); - } - } - else if (cd == 2) - { - box.x1 = pDst->x + x; - box.y1 = pDst->y + y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(&box_reg, &box, 0); - RegionIntersect(&clip_reg, &clip_reg, &box_reg); - num_clips = REGION_NUM_RECTS(&clip_reg); - - if (num_clips > 0) - { - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type, TAG_PUSHPIXELS); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_send_area(0, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - } - - RegionUninit(&box_reg); - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPushPixels.h b/xorg/X11R7.6/rdp/rdpPushPixels.h deleted file mode 100644 index 2e0cd1d1..00000000 --- a/xorg/X11R7.6/rdp/rdpPushPixels.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPUSHPIXELS_H -#define __RDPPUSHPIXELS_H - -void -rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst, - int w, int h, int x, int y); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpPutImage.c b/xorg/X11R7.6/rdp/rdpPutImage.c deleted file mode 100644 index d244d895..00000000 --- a/xorg/X11R7.6/rdp/rdpPutImage.c +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -static void -rdpPutImageOrg(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y, - int w, int h, int leftPad, int format, char *pBits) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->PutImage(pDst, pGC, depth, x, y, w, h, leftPad, - format, pBits); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y, - int w, int h, int leftPad, int format, char *pBits) -{ - RegionRec clip_reg; - int cd; - int j; - int reset_surface; - int post_process; - int got_id; - int dirty_type; - BoxRec box; - struct image_data id; - - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - RegionRec reg1; - RegionRec reg2; - - LLOGLN(10, ("rdpPutImage:")); - LLOGLN(10, ("rdpPutImage: drawable id 0x%x", (int)(pDst->id))); - LLOGLN(10, ("rdpPutImage: x %d y %d w %d h %d is_window %d", x, y, w, h, - pDst->type == DRAWABLE_WINDOW)); - - /* do original call */ - rdpPutImageOrg(pDst, pGC, depth, x, y, w, h, leftPad, format, pBits); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDst->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDst; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpPutImage: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDst->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDst; - - if (pDstWnd->viewable) - { - post_process = 1; - - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpPutImage: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDst, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + x; - box.y1 = pDst->y + y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_PUTIMAGE); - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - rdpup_send_area(&id, pDst->x + x, pDst->y + y, w, h); - rdpup_end_update(); - } - } - else if (cd == 2) - { - if (dirty_type != 0) - { - box.x1 = pDst->x + x; - box.y1 = pDst->y + y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - RegionInit(®1, &box, 0); - RegionInit(®2, NullBox, 0); - RegionCopy(®2, &clip_reg); - RegionIntersect(®1, ®1, ®2); - draw_item_add_img_region(pDirtyPriv, ®1, GXcopy, dirty_type, TAG_PUTIMAGE); - RegionUninit(®1); - RegionUninit(®2); - } - else if (got_id) - { - rdpup_begin_update(); - - for (j = REGION_NUM_RECTS(&clip_reg) - 1; j >= 0; j--) - { - box = REGION_RECTS(&clip_reg)[j]; - rdpup_set_clip(box.x1, box.y1, (box.x2 - box.x1), (box.y2 - box.y1)); - rdpup_send_area(&id, pDst->x + x, pDst->y + y, w, h); - } - - rdpup_reset_clip(); - rdpup_end_update(); - } - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpPutImage.h b/xorg/X11R7.6/rdp/rdpPutImage.h deleted file mode 100644 index 82e27872..00000000 --- a/xorg/X11R7.6/rdp/rdpPutImage.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPPUTIMAGE_H -#define __RDPPUTIMAGE_H - -void -rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y, - int w, int h, int leftPad, int format, char* pBits); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpSetSpans.c b/xorg/X11R7.6/rdp/rdpSetSpans.c deleted file mode 100644 index 62dd8c5c..00000000 --- a/xorg/X11R7.6/rdp/rdpSetSpans.c +++ /dev/null @@ -1,172 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "rdpdraw.h" - -#define LDEBUG 0 - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ - -extern GCOps g_rdpGCOps; /* from rdpdraw.c */ - -extern int g_con_number; /* in rdpup.c */ - -/******************************************************************************/ -void -rdpSetSpansOrg(DrawablePtr pDrawable, GCPtr pGC, char *psrc, - DDXPointPtr ppt, int *pwidth, int nspans, int fSorted) -{ - rdpGCPtr priv; - GCFuncs *oldFuncs; - - GC_OP_PROLOGUE(pGC); - pGC->ops->SetSpans(pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted); - GC_OP_EPILOGUE(pGC); -} - -/******************************************************************************/ -void -rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc, - DDXPointPtr ppt, int *pwidth, int nspans, int fSorted) -{ - RegionRec clip_reg; - int cd; - int got_id; - int dirty_type; - int post_process; - int reset_surface; - struct image_data id; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec *pDstPriv; - rdpPixmapRec *pDirtyPriv; - - LLOGLN(0, ("rdpSetSpans: todo")); - - /* do original call */ - rdpSetSpansOrg(pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted); - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)pDrawable; - pDstPriv = GETPIXPRIV(pDstPixmap); - - if (xrdp_is_os(pDstPixmap, pDstPriv)) - { - post_process = 1; - - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpSetSpans: getting dirty")); - pDstPriv->is_dirty = 1; - pDirtyPriv = pDstPriv; - dirty_type = RDI_IMGLY; - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - } - } - } - else - { - if (pDrawable->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)pDrawable; - - if (pDstWnd->viewable) - { - post_process = 1; - if (g_do_dirty_ons) - { - LLOGLN(10, ("rdpSetSpans: getting dirty")); - g_screenPriv.is_dirty = 1; - pDirtyPriv = &g_screenPriv; - dirty_type = RDI_IMGLL; - } - else - { - rdpup_get_screen_image_rect(&id); - got_id = 1; - } - } - } - } - - if (!post_process) - { - return; - } - - RegionInit(&clip_reg, NullBox, 0); - cd = rdp_get_clip(&clip_reg, pDrawable, pGC); - - if (cd == 1) - { - if (dirty_type != 0) - { - } - else if (got_id) - { - } - } - else if (cd == 2) - { - if (dirty_type != 0) - { - } - else if (got_id) - { - } - } - - RegionUninit(&clip_reg); - - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } -} diff --git a/xorg/X11R7.6/rdp/rdpSetSpans.h b/xorg/X11R7.6/rdp/rdpSetSpans.h deleted file mode 100644 index acaedd66..00000000 --- a/xorg/X11R7.6/rdp/rdpSetSpans.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPSETSPANS_H -#define __RDPSETSPANS_H - -void -rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char* psrc, - DDXPointPtr ppt, int* pwidth, int nspans, int fSorted); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpdraw.c b/xorg/X11R7.6/rdp/rdpdraw.c deleted file mode 100644 index 51fe5c61..00000000 --- a/xorg/X11R7.6/rdp/rdpdraw.c +++ /dev/null @@ -1,1536 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Xserver drawing ops and funcs - -*/ - -#include "rdp.h" -#include "gcops.h" -#include "rdpdraw.h" - -#include "rdpCopyArea.h" -#include "rdpPolyFillRect.h" -#include "rdpPutImage.h" -#include "rdpPolyRectangle.h" -#include "rdpPolylines.h" -#include "rdpPolySegment.h" -#include "rdpFillSpans.h" -#include "rdpSetSpans.h" -#include "rdpCopyPlane.h" -#include "rdpPolyPoint.h" -#include "rdpPolyArc.h" -#include "rdpFillPolygon.h" -#include "rdpPolyFillArc.h" -#include "rdpPolyText8.h" -#include "rdpPolyText16.h" -#include "rdpImageText8.h" -#include "rdpImageText16.h" -#include "rdpImageGlyphBlt.h" -#include "rdpPolyGlyphBlt.h" -#include "rdpPushPixels.h" -#include "rdpglyph.h" - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpGCIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern Bool g_wrapPixmap; /* from rdpmain.c */ -extern WindowPtr g_invalidate_window; /* in rdpmain.c */ -extern int g_use_rail; /* in rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ -extern int g_con_number; /* in rdpmain.c */ -extern int g_do_glyph_cache; /* in rdpmain.c */ - -ColormapPtr g_rdpInstalledColormap; - -GCFuncs g_rdpGCFuncs = -{ - rdpValidateGC, rdpChangeGC, rdpCopyGC, rdpDestroyGC, rdpChangeClip, - rdpDestroyClip, rdpCopyClip -}; - -GCOps g_rdpGCOps = -{ - rdpFillSpans, rdpSetSpans, rdpPutImage, rdpCopyArea, rdpCopyPlane, - rdpPolyPoint, rdpPolylines, rdpPolySegment, rdpPolyRectangle, - rdpPolyArc, rdpFillPolygon, rdpPolyFillRect, rdpPolyFillArc, - rdpPolyText8, rdpPolyText16, rdpImageText8, rdpImageText16, - rdpImageGlyphBlt, rdpPolyGlyphBlt, rdpPushPixels -}; - -/******************************************************************************/ -/* return 0, draw nothing */ -/* return 1, draw with no clip */ -/* return 2, draw using clip */ -int -rdp_get_clip(RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC) -{ - WindowPtr pWindow; - RegionPtr temp; - BoxRec box; - int rv; - - rv = 0; - - if (pDrawable->type == DRAWABLE_PIXMAP) - { - switch (pGC->clientClipType) - { - case CT_NONE: - rv = 1; - break; - case CT_REGION: - rv = 2; - RegionCopy(pRegion, pGC->pCompositeClip); - break; - default: - rdpLog("unimp clip type %d\n", pGC->clientClipType); - break; - } - - if (rv == 2) /* check if the clip is the entire pixmap */ - { - box.x1 = 0; - box.y1 = 0; - box.x2 = pDrawable->width; - box.y2 = pDrawable->height; - - if (RegionContainsRect(pRegion, &box) == rgnIN) - { - rv = 1; - } - } - } - else if (pDrawable->type == DRAWABLE_WINDOW) - { - pWindow = (WindowPtr)pDrawable; - - if (pWindow->viewable) - { - if (pGC->subWindowMode == IncludeInferiors) - { - temp = &pWindow->borderClip; - } - else - { - temp = &pWindow->clipList; - } - - if (RegionNotEmpty(temp)) - { - switch (pGC->clientClipType) - { - case CT_NONE: - rv = 2; - RegionCopy(pRegion, temp); - break; - case CT_REGION: - rv = 2; - RegionCopy(pRegion, pGC->clientClip); - RegionTranslate(pRegion, - pDrawable->x + pGC->clipOrg.x, - pDrawable->y + pGC->clipOrg.y); - RegionIntersect(pRegion, pRegion, temp); - break; - default: - rdpLog("unimp clip type %d\n", pGC->clientClipType); - break; - } - - if (rv == 2) /* check if the clip is the entire screen */ - { - box.x1 = 0; - box.y1 = 0; - box.x2 = g_rdpScreen.width; - box.y2 = g_rdpScreen.height; - - if (RegionContainsRect(pRegion, &box) == rgnIN) - { - rv = 1; - } - } - } - } - } - - return rv; -} - -/******************************************************************************/ -void -GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y, - int n, BoxPtr pbox) -{ - int maxAscent; - int maxDescent; - int maxCharWidth; - - if (FONTASCENT(font) > FONTMAXBOUNDS(font, ascent)) - { - maxAscent = FONTASCENT(font); - } - else - { - maxAscent = FONTMAXBOUNDS(font, ascent); - } - - if (FONTDESCENT(font) > FONTMAXBOUNDS(font, descent)) - { - maxDescent = FONTDESCENT(font); - } - else - { - maxDescent = FONTMAXBOUNDS(font, descent); - } - - if (FONTMAXBOUNDS(font, rightSideBearing) > - FONTMAXBOUNDS(font, characterWidth)) - { - maxCharWidth = FONTMAXBOUNDS(font, rightSideBearing); - } - else - { - maxCharWidth = FONTMAXBOUNDS(font, characterWidth); - } - - pbox->x1 = pDrawable->x + x; - pbox->y1 = pDrawable->y + y - maxAscent; - pbox->x2 = pbox->x1 + maxCharWidth * n; - pbox->y2 = pbox->y1 + maxAscent + maxDescent; - - if (FONTMINBOUNDS(font, leftSideBearing) < 0) - { - pbox->x1 += FONTMINBOUNDS(font, leftSideBearing); - } -} - -/******************************************************************************/ -#define GC_FUNC_PROLOGUE(_pGC) \ - { \ - priv = (rdpGCPtr)(dixGetPrivateAddr(&(_pGC->devPrivates), &g_rdpGCIndex)); \ - (_pGC)->funcs = priv->funcs; \ - if (priv->ops != 0) \ - { \ - (_pGC)->ops = priv->ops; \ - } \ - } - -/******************************************************************************/ -#define GC_FUNC_EPILOGUE(_pGC) \ - { \ - priv->funcs = (_pGC)->funcs; \ - (_pGC)->funcs = &g_rdpGCFuncs; \ - if (priv->ops != 0) \ - { \ - priv->ops = (_pGC)->ops; \ - (_pGC)->ops = &g_rdpGCOps; \ - } \ - } - -/******************************************************************************/ -static void -rdpValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr d) -{ - rdpGCRec *priv; - int wrap; - RegionPtr pRegion; - - LLOGLN(10, ("rdpValidateGC:")); - GC_FUNC_PROLOGUE(pGC); - pGC->funcs->ValidateGC(pGC, changes, d); - - if (g_wrapPixmap) - { - wrap = 1; - } - else - { - wrap = (d->type == DRAWABLE_WINDOW) && ((WindowPtr)d)->viewable; - - if (wrap) - { - if (pGC->subWindowMode == IncludeInferiors) - { - pRegion = &(((WindowPtr)d)->borderClip); - } - else - { - pRegion = &(((WindowPtr)d)->clipList); - } - - wrap = RegionNotEmpty(pRegion); - } - } - - priv->ops = 0; - - if (wrap) - { - priv->ops = pGC->ops; - } - - GC_FUNC_EPILOGUE(pGC); -} - -/******************************************************************************/ -static void -rdpChangeGC(GCPtr pGC, unsigned long mask) -{ - rdpGCRec *priv; - - LLOGLN(10, ("in rdpChangeGC")); - GC_FUNC_PROLOGUE(pGC); - pGC->funcs->ChangeGC(pGC, mask); - GC_FUNC_EPILOGUE(pGC); -} - -/******************************************************************************/ -static void -rdpCopyGC(GCPtr src, unsigned long mask, GCPtr dst) -{ - rdpGCRec *priv; - - LLOGLN(10, ("in rdpCopyGC")); - GC_FUNC_PROLOGUE(dst); - dst->funcs->CopyGC(src, mask, dst); - GC_FUNC_EPILOGUE(dst); -} - -/******************************************************************************/ -static void -rdpDestroyGC(GCPtr pGC) -{ - rdpGCRec *priv; - - LLOGLN(10, ("in rdpDestroyGC")); - GC_FUNC_PROLOGUE(pGC); - pGC->funcs->DestroyGC(pGC); - GC_FUNC_EPILOGUE(pGC); -} - -/******************************************************************************/ -static void -rdpChangeClip(GCPtr pGC, int type, pointer pValue, int nrects) -{ - rdpGCRec *priv; - - LLOGLN(10, ("in rdpChangeClip")); - GC_FUNC_PROLOGUE(pGC); - pGC->funcs->ChangeClip(pGC, type, pValue, nrects); - GC_FUNC_EPILOGUE(pGC); -} - -/******************************************************************************/ -static void -rdpDestroyClip(GCPtr pGC) -{ - rdpGCRec *priv; - - LLOGLN(10, ("in rdpDestroyClip")); - GC_FUNC_PROLOGUE(pGC); - pGC->funcs->DestroyClip(pGC); - GC_FUNC_EPILOGUE(pGC); -} - -/******************************************************************************/ -static void -rdpCopyClip(GCPtr dst, GCPtr src) -{ - rdpGCRec *priv; - - LLOGLN(0, ("in rdpCopyClip")); - GC_FUNC_PROLOGUE(dst); - dst->funcs->CopyClip(dst, src); - GC_FUNC_EPILOGUE(dst); -} - -/******************************************************************************/ -#define GC_OP_PROLOGUE(_pGC) \ - { \ - priv = (rdpGCPtr)dixGetPrivateAddr(&(pGC->devPrivates), &g_rdpGCIndex); \ - oldFuncs = _pGC->funcs; \ - (_pGC)->funcs = priv->funcs; \ - (_pGC)->ops = priv->ops; \ - } - -/******************************************************************************/ -#define GC_OP_EPILOGUE(_pGC) \ - { \ - priv->ops = (_pGC)->ops; \ - (_pGC)->funcs = oldFuncs; \ - (_pGC)->ops = &g_rdpGCOps; \ - } - -/******************************************************************************/ -Bool -rdpCloseScreen(int i, ScreenPtr pScreen) -{ - LLOGLN(10, ("in rdpCloseScreen")); - pScreen->CloseScreen = g_rdpScreen.CloseScreen; - pScreen->CreateGC = g_rdpScreen.CreateGC; - //pScreen->PaintWindowBackground = g_rdpScreen.PaintWindowBackground; - //pScreen->PaintWindowBorder = g_rdpScreen.PaintWindowBorder; - pScreen->CopyWindow = g_rdpScreen.CopyWindow; - pScreen->ClearToBackground = g_rdpScreen.ClearToBackground; - pScreen->RestoreAreas = g_rdpScreen.RestoreAreas; - return 1; -} - -/******************************************************************************/ -int -draw_item_add(rdpPixmapRec *priv, struct rdp_draw_item *di) -{ - priv->is_alpha_dirty_not = 0; - - if (priv->draw_item_tail == 0) - { - priv->draw_item_tail = di; - priv->draw_item_head = di; - } - else - { - di->prev = priv->draw_item_tail; - priv->draw_item_tail->next = di; - priv->draw_item_tail = di; - } - - if (priv == &g_screenPriv) - { - rdpScheduleDeferredUpdate(); - } - - return 0; -} - -/******************************************************************************/ -int -draw_item_remove(rdpPixmapRec *priv, struct rdp_draw_item *di) -{ - if (di->prev != 0) - { - di->prev->next = di->next; - } - - if (di->next != 0) - { - di->next->prev = di->prev; - } - - if (priv->draw_item_head == di) - { - priv->draw_item_head = di->next; - } - - if (priv->draw_item_tail == di) - { - priv->draw_item_tail = di->prev; - } - - if (di->type == RDI_LINE) - { - if (di->u.line.segs != 0) - { - g_free(di->u.line.segs); - } - } - - if (di->type == RDI_TEXT) - { - delete_rdp_text(di->u.text.rtext); - } - - RegionDestroy(di->reg); - g_free(di); - return 0; -} - -/******************************************************************************/ -int -draw_item_remove_all(rdpPixmapRec *priv) -{ - struct rdp_draw_item *di; - - di = priv->draw_item_head; - - while (di != 0) - { - draw_item_remove(priv, di); - di = priv->draw_item_head; - } - - return 0; -} - -/******************************************************************************/ -int -region_get_pixel_count(RegionPtr reg) -{ - int index; - int count; - int pixels; - int width; - int height; - BoxRec box; - - pixels = 0; - count = REGION_NUM_RECTS(reg); - for (index = 0; index < count; index++) - { - box = REGION_RECTS(reg)[index]; - width = box.x2 - box.x1; - height = box.y2 - box.y1; - pixels += width * height; - } - return pixels; -} - -/******************************************************************************/ -/* returns boolean */ -int -region_in_region(RegionPtr reg_small, int sreg_pcount, RegionPtr reg_big) -{ - int rv; - RegionRec reg; - - rv = 0; - RegionInit(®, NullBox, 0); - RegionIntersect(®, reg_small, reg_big); - if (sreg_pcount == -1) - { - sreg_pcount = region_get_pixel_count(reg_small); - } - if (sreg_pcount == 0) - { - /* empty region not even in */ - return 0; - } - if (region_get_pixel_count(®) == sreg_pcount) - { - rv = 1; - } - RegionUninit(®); - return rv; -} - -/******************************************************************************/ -static int -remove_empties(rdpPixmapRec* priv) -{ - struct rdp_draw_item* di; - struct rdp_draw_item* di_prev; - int rv; - - rv = 0; - /* remove draw items with empty regions */ - di = priv->draw_item_head; - di_prev = 0; - while (di != 0) - { - if (!RegionNotEmpty(di->reg)) - { - LLOGLN(10, ("remove_empties: removing empty item type %d", di->type)); - draw_item_remove(priv, di); - di = di_prev == 0 ? priv->draw_item_head : di_prev->next; - rv++; - } - else - { - di_prev = di; - di = di->next; - } - } - return rv; -} - -/******************************************************************************/ -static int -dump_draw_list(rdpPixmapRec* priv) -{ - struct rdp_draw_item* di; - int index; - int count; - BoxRec box; - - LLOGLN(0, ("dump_draw_list:")); - di = priv->draw_item_head; - while (di != 0) - { - LLOGLN(0, (" type %d", di->type)); - count = REGION_NUM_RECTS(di->reg); - if (count == 0) - { - LLOGLN(0, (" empty region")); - } - else - { - box = RegionExtents(di->reg)[0]; - LLOGLN(0, (" region list follows extents x1 %d y1 %d x2 %d y2 %d", - box.x1, box.y1, box.x2, box.y2)); - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(0, (" index %d x1 %d y1 %d x2 %d y2 %d", - index, box.x1, box.y1, box.x2, box.y2)); - } - } - di = di->next; - } - return 0; -} - -/******************************************************************************/ -/* returns boolean */ -static int -region_intersect_at_all(RegionPtr reg_small, RegionPtr reg_big) -{ - int rv; - RegionRec reg; - - if (!RegionNotEmpty(reg_small)) - { - return 0; - } - rv = 0; - RegionInit(®, NullBox, 0); - RegionIntersect(®, reg_big, reg_big); - if (RegionNotEmpty(®)) - { - rv = 1; - } - RegionUninit(®); - return rv; -} - -/******************************************************************************/ -int -draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv) -{ - struct rdp_draw_item *di; - struct rdp_draw_item *di_prev; - BoxRec box; - RegionRec treg; - -#if 1 - if (pix != 0) - { - box.x1 = 0; - box.x2 = pix->drawable.width; - box.y1 = 0; - box.y2 = pix->drawable.height; - RegionInit(&treg, &box, 0); - di = priv->draw_item_head; - di_prev = 0; - while (di != 0) - { - RegionIntersect(di->reg, di->reg, &treg); - di_prev = di; - di = di->next; - } - RegionUninit(&treg); - remove_empties(priv); - } -#endif - -#if 1 - /* look for repeating draw types */ - if (priv->draw_item_head != 0) - { - if (priv->draw_item_head->next != 0) - { - di_prev = priv->draw_item_head; - di = priv->draw_item_head->next; - - while (di != 0) - { -#if 0 - if ((di_prev->type == RDI_IMGLL || di_prev->type == RDI_IMGLY) && - (di->type == RDI_IMGLL || di->type == RDI_IMGLY)) - { - LLOGLN(10, ("draw_item_pack: packing RDI_IMGLL and RDI_IMGLY")); - di_prev->type = RDI_IMGLY; - RegionUnion(di_prev->reg, di_prev->reg, di->reg); - draw_item_remove(priv, di); - di = di_prev->next; - } -#else - if ((di_prev->type == RDI_IMGLL) && (di->type == RDI_IMGLL)) - { - LLOGLN(10, ("draw_item_pack: packing RDI_IMGLL")); - RegionUnion(di_prev->reg, di_prev->reg, di->reg); - draw_item_remove(priv, di); - di = di_prev->next; - } -#endif - else if ((di_prev->type == RDI_IMGLY) && (di->type == RDI_IMGLY)) - { - LLOGLN(10, ("draw_item_pack: packing RDI_IMGLY")); - RegionUnion(di_prev->reg, di_prev->reg, di->reg); - draw_item_remove(priv, di); - di = di_prev->next; - } - else - { - di_prev = di; - di = di_prev->next; - } - } - } - } - remove_empties(priv); -#endif - -#if 0 - if (priv->draw_item_tail != 0) - { - if (priv->draw_item_tail->prev != 0) - { - di = priv->draw_item_tail; - while (di->prev != 0) - { - di_prev = di->prev; - while (di_prev != 0) - { - if ((di->type == RDI_TEXT) && (di_prev->type == RDI_IMGLY)) - { - if (region_intersect_at_all(di->reg, di_prev->reg)) - { - di_prev->type = RDI_IMGLL; - } - } - di_prev = di_prev->prev; - } - di = di->prev; - } - } - } - remove_empties(priv); -#endif - -#if 0 - /* subtract regions */ - if (priv->draw_item_tail != 0) - { - if (priv->draw_item_tail->prev != 0) - { - di = priv->draw_item_tail; - - while (di->prev != 0) - { - /* skip subtract flag - * draw items like line can't be used to clear(subtract) previous - * draw items since they are not opaque - * eg they can not be the 'S' in 'D = M - S' - * the region for line draw items is the clip region */ - if ((di->flags & 1) == 0) - { - di_prev = di->prev; - - while (di_prev != 0) - { - if (region_in_region(di_prev->reg, -1, di->reg)) - { - /* empty region so this draw item will get removed below */ - RegionEmpty(di_prev->reg); - } - di_prev = di_prev->prev; - } - } - - di = di->prev; - } - } - } - remove_empties(priv); -#endif - - return 0; -} - -static char g_strings[][32] = -{ - "Composite", /* 0 */ - "CopyArea", /* 1 */ - "PolyFillRect", /* 2 */ - "PutImage", /* 3 */ - "PolyRectangle", /* 4 */ - "CopyPlane", /* 5 */ - "PolyArc", /* 6 */ - "FillPolygon", /* 7 */ - "PolyFillArc", /* 8 */ - "ImageText8", /* 9 */ - "PolyText8", /* 10 */ - "PolyText16", /* 11 */ - "ImageText16", /* 12 */ - "ImageGlyphBlt", /* 13 */ - "PolyGlyphBlt", /* 14 */ - "PushPixels", /* 15 */ - "Other" -}; - -/******************************************************************************/ -int -draw_item_add_img_region(rdpPixmapRec *priv, RegionPtr reg, int opcode, - int type, int code) -{ - struct rdp_draw_item *di; - - LLOGLN(10, ("draw_item_add_img_region: %s", g_strings[code])); - di = (struct rdp_draw_item *)g_malloc(sizeof(struct rdp_draw_item), 1); - di->type = type; - di->reg = RegionCreate(NullBox, 0); - RegionCopy(di->reg, reg); - di->u.img.opcode = opcode; - draw_item_add(priv, di); - return 0; -} - -/******************************************************************************/ -int -draw_item_add_fill_region(rdpPixmapRec *priv, RegionPtr reg, int color, - int opcode) -{ - struct rdp_draw_item *di; - - LLOGLN(10, ("draw_item_add_fill_region:")); - di = (struct rdp_draw_item *)g_malloc(sizeof(struct rdp_draw_item), 1); - di->type = RDI_FILL; - di->u.fill.fg_color = color; - di->u.fill.opcode = opcode; - di->reg = RegionCreate(NullBox, 0); - RegionCopy(di->reg, reg); - draw_item_add(priv, di); - return 0; -} - -/******************************************************************************/ -int -draw_item_add_line_region(rdpPixmapRec *priv, RegionPtr reg, int color, - int opcode, int width, xSegment *segs, int nseg, - int is_segment) -{ - struct rdp_draw_item *di; - - LLOGLN(10, ("draw_item_add_line_region:")); - di = (struct rdp_draw_item *)g_malloc(sizeof(struct rdp_draw_item), 1); - di->type = RDI_LINE; - di->u.line.fg_color = color; - di->u.line.opcode = opcode; - di->u.line.width = width; - di->u.line.segs = (xSegment *)g_malloc(sizeof(xSegment) * nseg, 1); - memcpy(di->u.line.segs, segs, sizeof(xSegment) * nseg); - di->u.line.nseg = nseg; - - if (is_segment) - { - di->u.line.flags = 1; - } - - di->reg = RegionCreate(NullBox, 0); - di->flags |= 1; - RegionCopy(di->reg, reg); - draw_item_add(priv, di); - return 0; -} - -/******************************************************************************/ -int -draw_item_add_srcblt_region(rdpPixmapRec *priv, RegionPtr reg, - int srcx, int srcy, int dstx, int dsty, - int cx, int cy) -{ - struct rdp_draw_item *di; - - LLOGLN(10, ("draw_item_add_srcblt_region:")); - di = (struct rdp_draw_item *)g_malloc(sizeof(struct rdp_draw_item), 1); - di->type = RDI_SCRBLT; - di->u.scrblt.srcx = srcx; - di->u.scrblt.srcy = srcy; - di->u.scrblt.dstx = dstx; - di->u.scrblt.dsty = dsty; - di->u.scrblt.cx = cx; - di->u.scrblt.cy = cy; - di->reg = RegionCreate(NullBox, 0); - RegionCopy(di->reg, reg); - draw_item_add(priv, di); - return 0; -} - -/******************************************************************************/ -int -draw_item_add_text_region(rdpPixmapRec* priv, RegionPtr reg, int color, - int opcode, struct rdp_text* rtext) -{ - struct rdp_draw_item* di; - - LLOGLN(10, ("draw_item_add_text_region:")); - di = (struct rdp_draw_item*)g_malloc(sizeof(struct rdp_draw_item), 1); - di->type = RDI_TEXT; - di->u.text.fg_color = color; - di->u.text.opcode = opcode; - di->u.text.rtext = rtext; - di->reg = RegionCreate(NullBox, 0); - RegionCopy(di->reg, reg); - draw_item_add(priv, di); - return 0; -} - -/******************************************************************************/ -PixmapPtr -rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, - unsigned usage_hint) -{ - PixmapPtr rv; - rdpPixmapRec *priv; - int org_width; - - org_width = width; - /* width must be a multiple of 4 in rdp */ - width = (width + 3) & ~3; - LLOGLN(10, ("rdpCreatePixmap: width %d org_width %d depth %d screen depth %d", - width, org_width, depth, g_rdpScreen.depth)); - pScreen->CreatePixmap = g_rdpScreen.CreatePixmap; - rv = pScreen->CreatePixmap(pScreen, width, height, depth, usage_hint); - pScreen->CreatePixmap = rdpCreatePixmap; - priv = GETPIXPRIV(rv); - priv->rdpindex = -1; - priv->kind_width = width; - pScreen->ModifyPixmapHeader(rv, org_width, 0, 0, 0, 0, 0); - if ((org_width == 0) && (height == 0)) - { - LLOGLN(10, ("rdpCreatePixmap: setting is_scratch")); - priv->is_scratch = 1; - } - return rv; -} - -extern struct rdpup_os_bitmap *g_os_bitmaps; - -/******************************************************************************/ -Bool -rdpDestroyPixmap(PixmapPtr pPixmap) -{ - Bool rv; - ScreenPtr pScreen; - rdpPixmapRec *priv; - - LLOGLN(10, ("rdpDestroyPixmap:")); - priv = GETPIXPRIV(pPixmap); - LLOGLN(10, ("status %d refcnt %d", priv->status, pPixmap->refcnt)); - - if (pPixmap->refcnt < 2) - { - if (XRDP_IS_OS(priv)) - { - if (priv->rdpindex >= 0) - { - rdpup_remove_os_bitmap(priv->rdpindex); - rdpup_delete_os_surface(priv->rdpindex); - } - } - } - - pScreen = pPixmap->drawable.pScreen; - pScreen->DestroyPixmap = g_rdpScreen.DestroyPixmap; - rv = pScreen->DestroyPixmap(pPixmap); - pScreen->DestroyPixmap = rdpDestroyPixmap; - return rv; -} - -/*****************************************************************************/ -int -xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv) -{ - RegionRec reg1; - BoxRec box; - int width; - int height; - struct image_data id; - - if (XRDP_IS_OS(priv)) - { - /* update time stamp */ - rdpup_update_os_use(priv->rdpindex); - } - else - { - width = pix->drawable.width; - height = pix->drawable.height; - if ((pix->usage_hint == 0) && - (pix->drawable.depth >= g_rdpScreen.depth) && - (width > 0) && (height > 0) && (priv->kind_width > 0) && - (priv->is_scratch == 0) && (priv->use_count >= 0)) - { - width = (width + 3) & ~3; - priv->rdpindex = rdpup_add_os_bitmap(pix, priv); - if (priv->rdpindex >= 0) - { - priv->status = 1; - rdpup_create_os_surface(priv->rdpindex, width, height); - box.x1 = 0; - box.y1 = 0; - box.x2 = width; - box.y2 = height; - if (g_do_dirty_os) - { - LLOGLN(10, ("xrdp_is_os: priv->con_number %d g_con_number %d", - priv->con_number, g_con_number)); - LLOGLN(10, ("xrdp_is_os: priv->use_count %d", priv->use_count)); - if (priv->con_number != g_con_number) - { - LLOGLN(10, ("xrdp_is_os: queuing invalidating all")); - draw_item_remove_all(priv); - RegionInit(®1, &box, 0); - draw_item_add_img_region(priv, ®1, GXcopy, RDI_IMGLY, 16); - RegionUninit(®1); - priv->is_dirty = 1; - priv->con_number = g_con_number; - } - } - else - { - rdpup_get_pixmap_image_rect(pix, &id); - rdpup_switch_os_surface(priv->rdpindex); - rdpup_begin_update(); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - } - priv->use_count++; - return 1; - } - else - { - LLOGLN(10, ("xrdp_is_os: rdpup_add_os_bitmap failed")); - } - } - priv->use_count++; - return 0; - } - priv->use_count++; - return 1; -} - -/******************************************************************************/ -Bool -rdpCreateWindow(WindowPtr pWindow) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpCreateWindow:")); - priv = GETWINPRIV(pWindow); - LLOGLN(10, (" %p status %d", priv, priv->status)); - pScreen = pWindow->drawable.pScreen; - pScreen->CreateWindow = g_rdpScreen.CreateWindow; - rv = pScreen->CreateWindow(pWindow); - pScreen->CreateWindow = rdpCreateWindow; - - if (g_use_rail) - { - } - - return rv; -} - -/******************************************************************************/ -Bool -rdpDestroyWindow(WindowPtr pWindow) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpDestroyWindow:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->DestroyWindow = g_rdpScreen.DestroyWindow; - rv = pScreen->DestroyWindow(pWindow); - pScreen->DestroyWindow = rdpDestroyWindow; - - if (g_use_rail) - { -#ifdef XRDP_WM_RDPUP - LLOGLN(10, (" rdpup_delete_window")); - rdpup_delete_window(pWindow, priv); -#endif - } - - return rv; -} - -/******************************************************************************/ -Bool -rdpPositionWindow(WindowPtr pWindow, int x, int y) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpPositionWindow:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->PositionWindow = g_rdpScreen.PositionWindow; - rv = pScreen->PositionWindow(pWindow, x, y); - pScreen->PositionWindow = rdpPositionWindow; - - if (g_use_rail) - { - if (priv->status == 1) - { - LLOGLN(10, ("rdpPositionWindow:")); - LLOGLN(10, (" x %d y %d", x, y)); - } - } - - return rv; -} - -/******************************************************************************/ -Bool -rdpRealizeWindow(WindowPtr pWindow) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpRealizeWindow:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->RealizeWindow = g_rdpScreen.RealizeWindow; - rv = pScreen->RealizeWindow(pWindow); - pScreen->RealizeWindow = rdpRealizeWindow; - - if (g_use_rail) - { - if ((pWindow != g_invalidate_window) && (pWindow->parent != 0)) - { - if (XR_IS_ROOT(pWindow->parent)) - { - LLOGLN(10, ("rdpRealizeWindow:")); - LLOGLN(10, (" pWindow %p id 0x%x pWindow->parent %p id 0x%x x %d " - "y %d width %d height %d", - pWindow, (int)(pWindow->drawable.id), - pWindow->parent, (int)(pWindow->parent->drawable.id), - pWindow->drawable.x, pWindow->drawable.y, - pWindow->drawable.width, pWindow->drawable.height)); - priv->status = 1; -#ifdef XRDP_WM_RDPUP - rdpup_create_window(pWindow, priv); -#endif - } - } - } - - return rv; -} - -/******************************************************************************/ -Bool -rdpUnrealizeWindow(WindowPtr pWindow) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpUnrealizeWindow:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->UnrealizeWindow = g_rdpScreen.UnrealizeWindow; - rv = pScreen->UnrealizeWindow(pWindow); - pScreen->UnrealizeWindow = rdpUnrealizeWindow; - - if (g_use_rail) - { - if (priv->status == 1) - { - LLOGLN(10, ("rdpUnrealizeWindow:")); - priv->status = 0; - if (pWindow->overrideRedirect) { -#ifdef XRDP_WM_RDPUP - /* - * Popups are unmapped by X server, so probably - * they will be mapped again. Thereby we should - * just hide those popups instead of destroying - * them. - */ - LLOGLN(10, (" rdpup_show_window")); - rdpup_show_window(pWindow, priv, 0x0); /* 0x0 - do not show the window */ -#endif - } - } - } - - return rv; -} - -/******************************************************************************/ -Bool -rdpChangeWindowAttributes(WindowPtr pWindow, unsigned long mask) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - Bool rv; - - LLOGLN(10, ("rdpChangeWindowAttributes:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->ChangeWindowAttributes = g_rdpScreen.ChangeWindowAttributes; - rv = pScreen->ChangeWindowAttributes(pWindow, mask); - pScreen->ChangeWindowAttributes = rdpChangeWindowAttributes; - - if (g_use_rail) - { - } - - return rv; -} - -/******************************************************************************/ -void -rdpWindowExposures(WindowPtr pWindow, RegionPtr pRegion, RegionPtr pBSRegion) -{ - ScreenPtr pScreen; - rdpWindowRec *priv; - - LLOGLN(10, ("rdpWindowExposures:")); - priv = GETWINPRIV(pWindow); - pScreen = pWindow->drawable.pScreen; - pScreen->WindowExposures = g_rdpScreen.WindowExposures; - pScreen->WindowExposures(pWindow, pRegion, pBSRegion); - - if (g_use_rail) - { - } - - pScreen->WindowExposures = rdpWindowExposures; -} - -/******************************************************************************/ -Bool -rdpCreateGC(GCPtr pGC) -{ - rdpGCRec *priv; - Bool rv; - - LLOGLN(10, ("in rdpCreateGC\n")); - priv = GETGCPRIV(pGC); - g_pScreen->CreateGC = g_rdpScreen.CreateGC; - rv = g_pScreen->CreateGC(pGC); - - if (rv) - { - priv->funcs = pGC->funcs; - priv->ops = 0; - pGC->funcs = &g_rdpGCFuncs; - } - else - { - rdpLog("error in rdpCreateGC, CreateGC failed\n"); - } - - g_pScreen->CreateGC = rdpCreateGC; - return rv; -} - -/******************************************************************************/ -void -rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion) -{ - RegionRec reg; - RegionRec reg1; - RegionRec clip; - int dx; - int dy; - int i; - int j; - int num_clip_rects; - int num_reg_rects; - BoxRec box1; - BoxRec box2; - BoxPtr box3; - - LLOGLN(10, ("rdpCopyWindow:")); - LLOGLN(10, ("rdpCopyWindow: new x %d new y %d old x %d old y %d", - pWin->drawable.x, pWin->drawable.y, ptOldOrg.x, ptOldOrg.y)); - RegionInit(®, NullBox, 0); - RegionCopy(®, pOldRegion); - RegionInit(&clip, NullBox, 0); - RegionCopy(&clip, &pWin->borderClip); - dx = pWin->drawable.x - ptOldOrg.x; - dy = pWin->drawable.y - ptOldOrg.y; - - if (g_do_dirty_ons) - { - rdpup_check_dirty_screen(&g_screenPriv); - } - - g_pScreen->CopyWindow = g_rdpScreen.CopyWindow; - g_pScreen->CopyWindow(pWin, ptOldOrg, pOldRegion); - g_pScreen->CopyWindow = rdpCopyWindow; - - num_clip_rects = REGION_NUM_RECTS(&clip); - num_reg_rects = REGION_NUM_RECTS(®); - LLOGLN(10, ("rdpCopyWindow: num_clip_rects %d num_reg_rects %d", - num_clip_rects, num_reg_rects)); - - if ((num_clip_rects == 0) || (num_reg_rects == 0)) - { - return; - } - rdpup_begin_update(); - - /* when there is a huge list of screen copies, just send as bitmap - firefox dragging test does this */ - if ((num_clip_rects > 16) && (num_reg_rects > 16)) - { - box3 = RegionExtents(®); - rdpup_send_area(0, box3->x1 + dx, box3->y1 + dy, - box3->x2 - box3->x1, - box3->y2 - box3->y1); - } - else - { - - /* should maybe sort the rects instead of checking dy < 0 */ - /* If we can depend on the rects going from top to bottom, left - to right we are ok */ - if (dy < 0 || (dy == 0 && dx < 0)) - { - for (j = 0; j < num_clip_rects; j++) - { - box1 = REGION_RECTS(&clip)[j]; - LLOGLN(10, ("clip x %d y %d w %d h %d", box1.x1, box1.y1, - box1.x2 - box1.x1, box1.y2 - box1.y1)); - rdpup_set_clip(box1.x1, box1.y1, - box1.x2 - box1.x1, - box1.y2 - box1.y1); - - for (i = 0; i < num_reg_rects; i++) - { - box2 = REGION_RECTS(®)[i]; - LLOGLN(10, ("reg x %d y %d w %d h %d", box2.x1, box2.y1, - box2.x2 - box2.x1, box2.y2 - box2.y1)); - rdpup_screen_blt(box2.x1 + dx, box2.y1 + dy, - box2.x2 - box2.x1, - box2.y2 - box2.y1, - box2.x1, box2.y1); - } - } - } - else - { - for (j = num_clip_rects - 1; j >= 0; j--) - { - box1 = REGION_RECTS(&clip)[j]; - LLOGLN(10, ("clip x %d y %d w %d h %d", box1.x1, box1.y1, - box1.x2 - box1.x1, box1.y2 - box1.y1)); - rdpup_set_clip(box1.x1, box1.y1, - box1.x2 - box1.x1, - box1.y2 - box1.y1); - - for (i = num_reg_rects - 1; i >= 0; i--) - { - box2 = REGION_RECTS(®)[i]; - LLOGLN(10, ("reg x %d y %d w %d h %d", box2.x1, box2.y1, - box2.x2 - box2.x1, box2.y2 - box2.y1)); - rdpup_screen_blt(box2.x1 + dx, box2.y1 + dy, - box2.x2 - box2.x1, - box2.y2 - box2.y1, - box2.x1, box2.y1); - } - } - } - } - - rdpup_reset_clip(); - rdpup_end_update(); - - RegionUninit(®); - RegionUninit(&clip); -} - -/******************************************************************************/ -void -rdpClearToBackground(WindowPtr pWin, int x, int y, int w, int h, - Bool generateExposures) -{ - int j; - BoxRec box; - RegionRec reg; - - LLOGLN(10, ("in rdpClearToBackground")); - g_pScreen->ClearToBackground = g_rdpScreen.ClearToBackground; - g_pScreen->ClearToBackground(pWin, x, y, w, h, generateExposures); - - if (!generateExposures) - { - if (w > 0 && h > 0) - { - box.x1 = x; - box.y1 = y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - } - else - { - box.x1 = pWin->drawable.x; - box.y1 = pWin->drawable.y; - box.x2 = box.x1 + pWin->drawable.width; - box.y2 = box.y1 + pWin->drawable.height; - } - - RegionInit(®, &box, 0); - RegionIntersect(®, ®, &pWin->clipList); - - if (g_do_dirty_ons) - { - draw_item_add_img_region(&g_screenPriv, ®, GXcopy, RDI_IMGLY, 16); - } - else - { - rdpup_begin_update(); - - for (j = REGION_NUM_RECTS(®) - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(0, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - - RegionUninit(®); - } - - g_pScreen->ClearToBackground = rdpClearToBackground; -} - -/******************************************************************************/ -RegionPtr -rdpRestoreAreas(WindowPtr pWin, RegionPtr prgnExposed) -{ - RegionRec reg; - RegionPtr rv; - int j; - BoxRec box; - - LLOGLN(0, ("in rdpRestoreAreas")); - RegionInit(®, NullBox, 0); - RegionCopy(®, prgnExposed); - g_pScreen->RestoreAreas = g_rdpScreen.RestoreAreas; - rv = g_pScreen->RestoreAreas(pWin, prgnExposed); - - if (g_do_dirty_ons) - { - draw_item_add_img_region(&g_screenPriv, ®, GXcopy, RDI_IMGLY, 16); - } - else - { - rdpup_begin_update(); - - for (j = REGION_NUM_RECTS(®) - 1; j >= 0; j--) - { - box = REGION_RECTS(®)[j]; - rdpup_send_area(0, box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_end_update(); - } - - RegionUninit(®); - g_pScreen->RestoreAreas = rdpRestoreAreas; - return rv; -} - -/******************************************************************************/ -void -rdpInstallColormap(ColormapPtr pmap) -{ - ColormapPtr oldpmap; - - oldpmap = g_rdpInstalledColormap; - - if (pmap != oldpmap) - { - if (oldpmap != (ColormapPtr)None) - { - WalkTree(pmap->pScreen, TellLostMap, (char *)&oldpmap->mid); - } - - /* Install pmap */ - g_rdpInstalledColormap = pmap; - WalkTree(pmap->pScreen, TellGainedMap, (char *)&pmap->mid); - /*rfbSetClientColourMaps(0, 0);*/ - } - - /*g_rdpScreen.InstallColormap(pmap);*/ -} - -/******************************************************************************/ -void -rdpUninstallColormap(ColormapPtr pmap) -{ - ColormapPtr curpmap; - - curpmap = g_rdpInstalledColormap; - - if (pmap == curpmap) - { - if (pmap->mid != pmap->pScreen->defColormap) - { - //curpmap = (ColormapPtr)LookupIDByType(pmap->pScreen->defColormap, - // RT_COLORMAP); - //pmap->pScreen->InstallColormap(curpmap); - } - } -} - -/******************************************************************************/ -int -rdpListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps) -{ - *pmaps = g_rdpInstalledColormap->mid; - return 1; -} - -/******************************************************************************/ -void -rdpStoreColors(ColormapPtr pmap, int ndef, xColorItem *pdefs) -{ -} - -/******************************************************************************/ -Bool -rdpSaveScreen(ScreenPtr pScreen, int on) -{ - return 1; -} diff --git a/xorg/X11R7.6/rdp/rdpdraw.h b/xorg/X11R7.6/rdp/rdpdraw.h deleted file mode 100644 index af29daa8..00000000 --- a/xorg/X11R7.6/rdp/rdpdraw.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPDRAW_H -#define __RDPDRAW_H - -/******************************************************************************/ -#define GC_OP_PROLOGUE(_pGC) \ -{ \ - priv = (rdpGCPtr)dixGetPrivateAddr(&(pGC->devPrivates), &g_rdpGCIndex); \ - oldFuncs = _pGC->funcs; \ - (_pGC)->funcs = priv->funcs; \ - (_pGC)->ops = priv->ops; \ -} - -/******************************************************************************/ -#define GC_OP_EPILOGUE(_pGC) \ -{ \ - priv->ops = (_pGC)->ops; \ - (_pGC)->funcs = oldFuncs; \ - (_pGC)->ops = &g_rdpGCOps; \ -} - -int -rdp_get_clip(RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC); -void -GetTextBoundingBox(DrawablePtr pDrawable, FontPtr font, int x, int y, - int n, BoxPtr pbox); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpglyph.c b/xorg/X11R7.6/rdp/rdpglyph.c deleted file mode 100644 index f0dda8d4..00000000 --- a/xorg/X11R7.6/rdp/rdpglyph.c +++ /dev/null @@ -1,862 +0,0 @@ -/* - Copyright 2012 Jay Sorg - - Permission to use, copy, modify, distribute, and sell this software and its - documentation for any purpose is hereby granted without fee, provided that - the above copyright notice appear in all copies and that both that - copyright notice and this permission notice appear in supporting - documentation. - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - */ - -/* - http://msdn.microsoft.com/en-us/library/cc241863(v=prot.20).aspx - 4.6.1 "d" Character - This topic has not yet been rated - Rate this topic - The following shows glyph image data (1 bpp format) for character - "d" extracted from a Cache Glyph (Revision 2) (section 2.2.2.2.1.2.6) - Secondary Drawing Order. - - Glyph width = 5 pixels - Glyph height = 9 pixels - Glyph origin = (0, -9), marked with an "X" on the image grid - Bitmap = { 0x08, 0x08, 0x08, 0x78, 0x88, 0x88, 0x88, 0x88, 0x78 } - - http://msdn.microsoft.com/en-us/library/cc241864(v=prot.20).aspx - 4.6.2 "p" Character - This topic has not yet been rated - Rate this topic - The following shows glyph image data (1 bpp format) for character - "p" extracted from a Cache Glyph (Revision 2) (section 2.2.2.2.1.2.6) - Secondary Drawing Order. - - Glyph width = 5 pixels - Glyph height = 8 pixels - Glyph origin = (0, -6), marked with an "X" on the image grid - Bitmap = { 0xF0, 0x88, 0x88, 0x88, 0x88, 0xF0, 0x80, 0x80 } - */ - -#include "rdp.h" -#include "rdpdraw.h" -#include "rdpglyph.h" - -extern DevPrivateKeyRec g_rdpPixmapIndex; /* from rdpmain.c */ -extern int g_do_dirty_os; /* in rdpmain.c */ -extern int g_do_alpha_glyphs; /* in rdpmain.c */ -extern int g_do_glyph_cache; /* in rdpmain.c */ -extern int g_doing_font; /* in rdpmain.c */ -extern ScreenPtr g_pScreen; /* in rdpmain.c */ -extern rdpScreenInfoRec g_rdpScreen; /* in rdpmain.c */ - - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ -do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ -do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -struct font_cache -{ - int offset; - int baseline; - int width; - int height; - int crc; - int stamp; -}; - -static struct font_cache g_font_cache[12][256]; -static int g_stamp = 0; - -/*****************************************************************************/ -static void -set_mono_pixel(char* data, int x, int y, int width, int pixel) -{ - int start; - int shift; - - width = (width + 7) / 8; - start = (y * width) + x / 8; - shift = x % 8; - if (pixel != 0) - { - data[start] = data[start] | (0x80 >> shift); - } - else - { - data[start] = data[start] & ~(0x80 >> shift); - } -} - -/*****************************************************************************/ -static int -lget_pixel(char* data, int x, int y, int depth, int stride_bytes) -{ - int start; - int shift; - - if (depth == 1) - { - start = (y * stride_bytes) + x / 8; - shift = x % 8; - return (data[start] & (0x01 << shift)) ? 0xff : 0; - } - else if (depth == 8) - { - return data[y * stride_bytes + x]; - } - return 0; -} - -/******************************************************************************/ -static int -glyph_get_data(ScreenPtr pScreen, GlyphPtr glyph, struct rdp_font_char* rfd) -{ - int i; - int j; - int src_xoff; - int src_yoff; - int src_stride_bytes; - int dst_stride_bytes; - int hh; - int ww; - int src_depth; - unsigned char pixel; - PicturePtr pPicture; - pixman_image_t *src; - uint32_t* pi32; - char* pi8; - - pPicture = GlyphPicture(glyph)[pScreen->myNum]; - if (pPicture == 0) - { - return 0; - } - src = image_from_pict(pPicture, FALSE, &src_xoff, &src_yoff); - if (src == 0) - { - return 0; - } - - src_stride_bytes = pixman_image_get_stride(src); - if (g_do_alpha_glyphs) - { - dst_stride_bytes = (glyph->info.width + 3) & ~3; - rfd->bpp = 8; - } - else - { - dst_stride_bytes = (((glyph->info.width + 7) / 8) + 3) & ~3; - rfd->bpp = 1; - } - src_depth = pixman_image_get_depth(src); - ww = pixman_image_get_width(src); - hh = pixman_image_get_height(src); - if ((ww != glyph->info.width) || (hh != glyph->info.height) || - ((src_depth != 1) && (src_depth != 8))) - { - LLOGLN(0, ("glyph_get_data: bad glyph")); - free_pixman_pict(pPicture, src); - return 0; - } - rfd->data_bytes = glyph->info.height * dst_stride_bytes; - rfd->data = (char*)g_malloc(rfd->data_bytes, 1); - rfd->offset = -glyph->info.x; - rfd->baseline = -glyph->info.y; - rfd->width = glyph->info.width; - rfd->height = glyph->info.height; - pi32 = pixman_image_get_data(src); - pi8 = (char*)pi32; - for (j = 0; j < rfd->height; j++) - { - for (i = 0; i < rfd->width; i++) - { - pixel = lget_pixel(pi8, i, j, src_depth, src_stride_bytes); - if (g_do_alpha_glyphs) - { - rfd->data[j * dst_stride_bytes + i] = pixel; - } - else - { - if (pixel > 0x7f) - { - set_mono_pixel(rfd->data, i, j, rfd->width, 1); - } - else - { - set_mono_pixel(rfd->data, i, j, rfd->width, 0); - } - } - } - } - free_pixman_pict(pPicture, src); - return 0; -} - -/******************************************************************************/ -struct rdp_text* -create_rdp_text(ScreenPtr pScreen, int nlists, GlyphListPtr lists, - GlyphPtr* glyphs) -{ - struct rdp_text* rv; - struct rdp_text* rtext; - struct rdp_text* last_rtext; - BoxRec box; - RegionRec reg1; - int n; - int lxoff; - int lyoff; - int count; - int lx; - int ly; - int font_index; - int max_height; - int min_height; - int force_new; - GlyphPtr glyph; - struct rdp_font_char* rfd; - - LLOGLN(10, ("create_rdp_text: nlists %d", nlists)); - - max_height = 0; - min_height = 0x7fffffff; - lx = lists->xOff; - ly = lists->yOff; - lxoff = 0; - lyoff = 0; - force_new = 0; - - rtext = (struct rdp_text*)g_malloc(sizeof(struct rdp_text), 1); - rtext->reg = RegionCreate(NullBox, 0); - rtext->flags = 3; - rtext->mixmode = 0; - rtext->x = lx; - rtext->y = ly; - - rv = rtext; - last_rtext = rtext; - - count = 0; - while (nlists--) - { - LLOGLN(10, ("lists->xOff %d lists->yOff %d", lists->xOff, lists->yOff)); - if (count != 0) - { - lx += lists->xOff; - ly += lists->yOff; - force_new = 1; - } - count++; - n = lists->len; - lists++; - while (n--) - { - glyph = *glyphs++; - /* process glyph here */ - if ((glyph->info.width > 0) && (glyph->info.height > 0)) - { - if (force_new) - { - LLOGLN(10, ("create_rdp_text: too many chars")); - force_new = 0; - rtext = (struct rdp_text*)g_malloc(sizeof(struct rdp_text), 1); - rtext->reg = RegionCreate(NullBox, 0); - rtext->flags = 3; - rtext->mixmode = 0; - rtext->x = lx; - rtext->y = ly; - last_rtext->next = rtext; - last_rtext = rtext; - lxoff = 0; - lyoff = 0; - } - LLOGLN(10, ("x %d y %d width %d height %d xOff %d yOff %d " - "num_chars %d lxoff %d lyoff %d lx %d ly %d", - glyph->info.x, glyph->info.y, - glyph->info.width, glyph->info.height, - glyph->info.xOff, glyph->info.yOff, rtext->num_chars, - lxoff, lyoff, lx, ly)); - rfd = (struct rdp_font_char*)g_malloc(sizeof(struct rdp_font_char), 1); - rtext->chars[rtext->num_chars] = rfd; - box.x1 = lx - glyph->info.x; - box.y1 = ly - glyph->info.y; - box.x2 = box.x1 + glyph->info.width; - box.y2 = box.y1 + glyph->info.height; - if (glyph->info.height > max_height) - { - max_height = glyph->info.height; - } - if (glyph->info.height < min_height) - { - min_height = glyph->info.height; - } - RegionInit(®1, &box, 0); - RegionUnion(rtext->reg, ®1, rtext->reg); - RegionUninit(®1); - - glyph_get_data(pScreen, glyph, rfd); - - rfd->incby = lxoff; - lxoff = glyph->info.xOff; - lyoff = glyph->info.yOff; - rtext->num_chars++; - if (rtext->num_chars > 63) - { - force_new = 1; - } - } - else - { - lxoff += glyph->info.xOff; - lyoff += glyph->info.yOff; - } - lx += glyph->info.xOff; - ly += glyph->info.yOff; - } - } - if (max_height > 10) - { - font_index = 8; - } - else if (max_height < 7) - { - font_index = 6; - } - else - { - font_index = 7; - } - LLOGLN(10, ("create_rdp_text: min_height %d max_height %d font_index %d", - min_height, max_height, font_index)); - rtext = rv; - while (rtext != 0) - { - rtext->font = font_index; - rtext = rtext->next; - } - return rv; -} - -/******************************************************************************/ -int -delete_rdp_text(struct rdp_text* rtext) -{ - int index; - - if (rtext == 0) - { - return 0; - } - for (index = 0; index < rtext->num_chars; index++) - { - if (rtext->chars[index] != 0) - { - g_free(rtext->chars[index]->data); - g_free(rtext->chars[index]); - } - } - RegionDestroy(rtext->reg); - delete_rdp_text(rtext->next); - g_free(rtext); - return 0; -} - -/******************************************************************************/ -static int -get_color(PicturePtr pPicture) -{ - int src_xoff; - int src_yoff; - int rv; - uint32_t* pi32; - pixman_image_t *src; - - src = image_from_pict(pPicture, FALSE, &src_xoff, &src_yoff); - if (src == 0) - { - return 0; - } - pi32 = pixman_image_get_data(src); - if (pi32 == 0) - { - return 0; - } - rv = *pi32; - LLOGLN(10, ("get_color: 0x%8.8x width %d height %d ", rv, - pixman_image_get_width(src), - pixman_image_get_height(src))); - free_pixman_pict(pPicture, src); - return rv; -} - -/******************************************************************************/ -static int -find_or_add_char(int font, struct rdp_font_char* rfd) -{ - int crc; - int index; - int char_index; - int oldest; - - crc = get_crc(rfd->data, rfd->data_bytes); - LLOGLN(10, ("find_or_add_char: crc 0x%8.8x", crc)); - char_index = 0; - oldest = 0x7fffffff; - for (index = 0; index < 250; index++) - { - if ((g_font_cache[font][index].crc == crc) && - (g_font_cache[font][index].width == rfd->width) && - (g_font_cache[font][index].height == rfd->height) && - (g_font_cache[font][index].offset == rfd->offset) && - (g_font_cache[font][index].baseline == rfd->baseline)) - { - g_stamp++; - g_font_cache[font][index].stamp = g_stamp; - LLOGLN(10, ("find_or_add_char: found char at %d %d", font, index)); - return index; - } - if (g_font_cache[font][index].stamp < oldest) - { - oldest = g_font_cache[font][index].stamp; - char_index = index; - } - } - g_stamp++; - g_font_cache[font][char_index].stamp = g_stamp; - g_font_cache[font][char_index].crc = crc; - g_font_cache[font][char_index].width = rfd->width; - g_font_cache[font][char_index].height = rfd->height; - g_font_cache[font][char_index].offset = rfd->offset; - g_font_cache[font][char_index].baseline = rfd->baseline; - LLOGLN(10, ("find_or_add_char: adding char at %d %d", font, char_index)); - if (rfd->bpp == 8) - { - rdpup_add_char_alpha(font, char_index, rfd->offset, rfd->baseline, - rfd->width, rfd->height, - rfd->data, rfd->data_bytes); - } - else - { - rdpup_add_char(font, char_index, rfd->offset, rfd->baseline, - rfd->width, rfd->height, - rfd->data, rfd->data_bytes); - } - return char_index; -} - -/******************************************************************************/ -int -rdp_text_chars_to_data(struct rdp_text* rtext) -{ - int index; - int data_bytes; - int char_index; - struct rdp_font_char* rfd; - - LLOGLN(10, ("rdp_text_chars_to_data: rtext->num_chars %d", rtext->num_chars)); - data_bytes = 0; - for (index = 0; index < rtext->num_chars; index++) - { - rfd = rtext->chars[index]; - if (rfd == 0) - { - LLOGLN(0, ("rdp_text_chars_to_data: error rfd is nil")); - continue; - } - char_index = find_or_add_char(rtext->font, rfd); - rtext->data[data_bytes] = char_index; - data_bytes++; - if (rfd->incby > 127) - { - rtext->data[data_bytes] = 0x80; - data_bytes++; - rtext->data[data_bytes] = (rfd->incby >> 0) & 0xff; - data_bytes++; - rtext->data[data_bytes] = (rfd->incby >> 8) & 0xff; - data_bytes++; - } - else - { - rtext->data[data_bytes] = rfd->incby; - data_bytes++; - } - } - rtext->data_bytes = data_bytes; - return 0; -} - -/******************************************************************************/ -/* - typedef struct _GlyphList { - INT16 xOff; - INT16 yOff; - CARD8 len; - PictFormatPtr format; - } GlyphListRec, *GlyphListPtr; - */ -/* see glyphstr.h but the following is not in there - typedef struct _XGlyphInfo { - unsigned short width; - unsigned short height; - short x; - short y; - short xOff; - short yOff; - } XGlyphInfo; - */ -static void -rdpGlyphu(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, - int nlists, GlyphListPtr lists, GlyphPtr* glyphs, - BoxPtr extents) -{ - BoxRec box; - RegionRec reg1; - RegionRec reg2; - DrawablePtr p; - int dirty_type; - int j; - int num_clips; - int post_process; - int reset_surface; - int got_id; - int fg_color; - WindowPtr pDstWnd; - PixmapPtr pDstPixmap; - rdpPixmapRec* pDstPriv; - rdpPixmapRec* pDirtyPriv; - struct image_data id; - struct rdp_text* rtext; - struct rdp_text* trtext; - - LLOGLN(10, ("rdpGlyphu: xSrc %d ySrc %d", xSrc, ySrc)); - - p = pDst->pDrawable; - - dirty_type = 0; - pDirtyPriv = 0; - post_process = 0; - reset_surface = 0; - got_id = 0; - if (p->type == DRAWABLE_PIXMAP) - { - pDstPixmap = (PixmapPtr)p; - pDstPriv = GETPIXPRIV(pDstPixmap); - if (XRDP_IS_OS(pDstPriv)) - { - rdpup_check_dirty(pDstPixmap, pDstPriv); - post_process = 1; - if (g_do_dirty_os) - { - LLOGLN(10, ("rdpGlyphu: getting dirty")); - pDstPriv->is_dirty = 1; - dirty_type = RDI_IMGLL; - pDirtyPriv = pDstPriv; - - } - else - { - rdpup_switch_os_surface(pDstPriv->rdpindex); - reset_surface = 1; - rdpup_get_pixmap_image_rect(pDstPixmap, &id); - got_id = 1; - LLOGLN(10, ("rdpGlyphu: offscreen")); - } - } - } - else - { - if (p->type == DRAWABLE_WINDOW) - { - pDstWnd = (WindowPtr)p; - if (pDstWnd->viewable) - { - post_process = 1; - rdpup_get_screen_image_rect(&id); - got_id = 1; - LLOGLN(10, ("rdpGlyphu: screen")); - } - } - } - if (!post_process) - { - return; - } - - rtext = create_rdp_text(pDst->pDrawable->pScreen, nlists, lists, glyphs); - if (rtext == 0) - { - LLOGLN(0, ("rdpGlyphu: create_rdp_text failed")); - return; - } - fg_color = get_color(pSrc); - - LLOGLN(10, ("rdpGlyphu: pDst->clientClipType %d pCompositeClip %p", - pDst->clientClipType, pDst->pCompositeClip)); - - if (pDst->pCompositeClip != 0) - { - box.x1 = p->x + extents->x1; - box.y1 = p->y + extents->y1; - box.x2 = p->x + extents->x2; - box.y2 = p->y + extents->y2; - RegionInit(®1, &box, 0); - RegionInit(®2, NullBox, 0); - RegionCopy(®2, pDst->pCompositeClip); - RegionIntersect(®1, ®1, ®2); - if (dirty_type != 0) - { - LLOGLN(10, ("1")); - draw_item_add_text_region(pDirtyPriv, ®1, fg_color, GXcopy, rtext); - rtext = 0; - } - else if (got_id) - { - num_clips = REGION_NUM_RECTS(®1); - if (num_clips > 0) - { - LLOGLN(10, (" num_clips %d", num_clips)); - rdpup_begin_update(); - rdpup_set_fgcolor(fg_color); - trtext = rtext; - while (trtext != 0) - { - rdp_text_chars_to_data(trtext); - for (j = num_clips - 1; j >= 0; j--) - { - box = REGION_RECTS(®1)[j]; - LLOGLN(10, ("2")); - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - LLOGLN(10, ("rdpGlyphu: rdpup_draw_text")); - box = RegionExtents(trtext->reg)[0]; - rdpup_draw_text(trtext->font, trtext->flags, trtext->mixmode, - box.x1 + p->x, box.y1 + p->y, - box.x2 + p->x, box.y2 + p->y, - //box.x1 + p->x, box.y1 + p->y, - //box.x2 + p->x, box.y2 + p->y, - 0, 0, 0, 0, - trtext->x + p->x, trtext->y + p->y, - trtext->data, trtext->data_bytes); - } - trtext = trtext->next; - } - rdpup_reset_clip(); - rdpup_end_update(); - } - } - RegionUninit(®1); - RegionUninit(®2); - } - else - { - box.x1 = p->x + extents->x1; - box.y1 = p->y + extents->y1; - box.x2 = p->x + extents->x2; - box.y2 = p->y + extents->y2; - if (dirty_type != 0) - { - RegionInit(®1, &box, 0); - LLOGLN(10, ("3")); - draw_item_add_text_region(pDirtyPriv, ®1, fg_color, GXcopy, rtext); - rtext = 0; - RegionUninit(®1); - } - else if (got_id) - { - rdpup_begin_update(); - LLOGLN(10, ("4")); - rdpup_set_fgcolor(fg_color); - trtext = rtext; - while (trtext != 0) - { - LLOGLN(10, ("rdpGlyphu: rdpup_draw_text")); - rdp_text_chars_to_data(trtext); - box = RegionExtents(trtext->reg)[0]; - rdpup_draw_text(trtext->font, trtext->flags, trtext->mixmode, - box.x1 + p->x, box.y1 + p->y, - box.x2 + p->x, box.y2 + p->y, - //box.x1 + p->x, box.y1 + p->y, - //box.x2 + p->x, box.y2 + p->y, - 0, 0, 0, 0, - trtext->x + p->x, trtext->y + p->y, - trtext->data, trtext->data_bytes); - trtext = trtext->next; - } - rdpup_end_update(); - } - } - if (reset_surface) - { - rdpup_switch_os_surface(-1); - } - delete_rdp_text(rtext); -} - -/******************************************************************************/ -static void -GlyphExtents(int nlist, GlyphListPtr list, GlyphPtr* glyphs, BoxPtr extents) -{ - int x1; - int x2; - int y1; - int y2; - int n; - int x; - int y; - GlyphPtr glyph; - - x = 0; - y = 0; - extents->x1 = MAXSHORT; - extents->x2 = MINSHORT; - extents->y1 = MAXSHORT; - extents->y2 = MINSHORT; - while (nlist--) - { - x += list->xOff; - y += list->yOff; - n = list->len; - list++; - while (n--) - { - glyph = *glyphs++; - x1 = x - glyph->info.x; - if (x1 < MINSHORT) - { - x1 = MINSHORT; - } - y1 = y - glyph->info.y; - if (y1 < MINSHORT) - { - y1 = MINSHORT; - } - x2 = x1 + glyph->info.width; - if (x2 > MAXSHORT) - { - x2 = MAXSHORT; - } - y2 = y1 + glyph->info.height; - if (y2 > MAXSHORT) - { - y2 = MAXSHORT; - } - if (x1 < extents->x1) - { - extents->x1 = x1; - } - if (x2 > extents->x2) - { - extents->x2 = x2; - } - if (y1 < extents->y1) - { - extents->y1 = y1; - } - if (y2 > extents->y2) - { - extents->y2 = y2; - } - x += glyph->info.xOff; - y += glyph->info.yOff; - } - } -} - -/******************************************************************************/ -static void -rdpGlypht(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, - int nlists, GlyphListPtr lists, GlyphPtr* glyphs) -{ - BoxRec extents; - - GlyphExtents(nlists, lists, glyphs, &extents); - if ((extents.x2 <= extents.x1) || (extents.y2 <= extents.y1)) - { - return; - } - rdpGlyphu(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlists, lists, - glyphs, &extents); -} - -/******************************************************************************/ -/* make sure no glyph is too big */ -/* returns boolean */ -static int -rdpGlyphCheck(int nlist, GlyphListPtr list, GlyphPtr* glyphs) -{ - int n; - GlyphPtr glyph; - - while (nlist--) - { - n = list->len; - list++; - while (n--) - { - glyph = *glyphs++; - if ((glyph->info.width * glyph->info.height) > 8192) - { - LLOGLN(10, ("rdpGlyphCheck: too big")); - return 0; - } - } - } - return 1; -} - -/******************************************************************************/ -void -rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, - INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists, - GlyphPtr* glyphs) -{ - PictureScreenPtr ps; - - LLOGLN(10, ("rdpGlyphs: op %d xSrc %d ySrc %d maskFormat %p", - op, xSrc, ySrc, maskFormat)); - - LLOGLN(10, ("rdpGlyphs: g_do_glyph_cache %d", g_do_glyph_cache)); - - if (g_do_glyph_cache && rdpGlyphCheck(nlists, lists, glyphs)) - { - g_doing_font = 2; - rdpGlypht(op, pSrc, pDst, maskFormat, xSrc, ySrc, nlists, lists, glyphs); - ps = GetPictureScreen(g_pScreen); - ps->Glyphs = g_rdpScreen.Glyphs; - ps->Glyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, - nlists, lists, glyphs); - ps->Glyphs = rdpGlyphs; - } - else - { - g_doing_font = 1; - rdpup_set_hints(1, 1); - ps = GetPictureScreen(g_pScreen); - ps->Glyphs = g_rdpScreen.Glyphs; - ps->Glyphs(op, pSrc, pDst, maskFormat, xSrc, ySrc, - nlists, lists, glyphs); - ps->Glyphs = rdpGlyphs; - rdpup_set_hints(0, 1); - } - g_doing_font = 0; - LLOGLN(10, ("rdpGlyphs: out")); -} - -/******************************************************************************/ -int -rdpGlyphInit(void) -{ - memset(&g_font_cache, 0, sizeof(g_font_cache)); - return 0; -} diff --git a/xorg/X11R7.6/rdp/rdpglyph.h b/xorg/X11R7.6/rdp/rdpglyph.h deleted file mode 100644 index 6907f9e7..00000000 --- a/xorg/X11R7.6/rdp/rdpglyph.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright 2012-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef __RDPGLYPH_H -#define __RDPGLYPH_H - -struct rdp_font_char -{ - int offset; /* x */ - int baseline; /* y */ - int width; /* cx */ - int height; /* cy */ - int incby; - int bpp; - char* data; - int data_bytes; -}; - -struct rdp_text -{ - RegionPtr reg; - int font; - int x; - int y; - int flags; - int mixmode; - char data[256]; - int data_bytes; - struct rdp_font_char* chars[256]; - int num_chars; - struct rdp_text* next; -}; - -int -delete_rdp_text(struct rdp_text* rtext); -int -rdp_text_chars_to_data(struct rdp_text* rtext); - -void -rdpGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, - PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, - int nlists, GlyphListPtr lists, GlyphPtr* glyphs); -int -rdpGlyphInit(void); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpinput.c b/xorg/X11R7.6/rdp/rdpinput.c deleted file mode 100644 index 6ef432e6..00000000 --- a/xorg/X11R7.6/rdp/rdpinput.c +++ /dev/null @@ -1,987 +0,0 @@ -/* -Copyright 2005-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard and mouse stuff - -*/ - -/* control notes */ -/* rdesktop sends control before scan code 69 but it doesn't set the - flags right so control down is used to determine between pause and - num lock */ -/* this should be fixed in rdesktop */ -/* g_pause_spe flag for special control sent by ms client before scan code - 69 is sent to tell that it's pause, not num lock. both pause and num - lock use scan code 69 */ - -/* tab notes */ -/* mstsc send tab up without a tab down to mark the mstsc has gained focus - this should make sure control alt and shift are all up - rdesktop does not do this */ -/* this should be fixed in rdesktop */ - -#include "rdp.h" -#include -#include - -#include "rdpkeyboard.h" -#include "rdpkeyboardbase.h" -#include "rdpkeyboardevdev.h" - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern ScreenPtr g_pScreen; /* in rdpmain.c */ -extern DeviceIntPtr g_pointer; /* in rdpmain.c */ -extern DeviceIntPtr g_keyboard; /* in rdpmain.c */ -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern int g_shift_down; /* in rdpmain.c */ -extern int g_alt_down; /* in rdpmain.c */ -extern int g_ctrl_down; /* in rdpmain.c */ - -static int g_old_button_mask = 0; -static int g_old_x = 0; -static int g_old_y = 0; -/* this is toggled every time num lock key is released, not like the - above *_down vars */ -static int g_scroll_lock_down = 0; -static OsTimerPtr g_kbtimer = 0; -static OsTimerPtr g_timer = 0; -static int g_x = 0; -static int g_y = 0; -static int g_timer_scheduled = 0; -static int g_delay_motion = 1; /* turn on or off */ -static int g_use_evdev = 0; - -/* Copied from Xvnc/lib/font/util/utilbitmap.c */ -static unsigned char g_reverse_byte[0x100] = -{ - 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, - 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, - 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, - 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, - 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, - 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, - 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, - 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, - 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, - 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, - 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, - 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, - 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, - 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, - 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, - 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, - 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, - 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, - 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, - 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, - 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, - 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, - 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, - 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, - 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, - 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, - 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, - 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, - 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, - 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, - 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, - 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff -}; - -#if 0 -/******************************************************************************/ -static void -rdpSendBell(void) -{ - LLOGLN(10, ("rdpSendBell:")); -} -#endif - -/******************************************************************************/ -void -KbdDeviceOn(void) -{ - LLOGLN(10, ("KbdDeviceOn:")); -} - -/******************************************************************************/ -void -KbdDeviceOff(void) -{ - LLOGLN(10, ("KbdDeviceOff:")); -} - -/******************************************************************************/ -void -rdpBell(int volume, DeviceIntPtr pDev, pointer ctrl, int cls) -{ - LLOGLN(0, ("rdpBell:")); -} - -/******************************************************************************/ -static CARD32 -rdpInDeferredUpdateCallback(OsTimerPtr timer, CARD32 now, pointer arg) -{ - LLOGLN(10, ("rdpInDeferredUpdateCallback:")); - - /* our keyboard device */ - XkbSetRepeatKeys(g_keyboard, -1, AutoRepeatModeOff); - /* the main one for the server */ - XkbSetRepeatKeys(inputInfo.keyboard, -1, AutoRepeatModeOff); - - return 0; -} - -/******************************************************************************/ -void -rdpChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl) -{ - XkbControlsPtr ctrls; - - LLOGLN(0, ("rdpChangeKeyboardControl:")); - ctrls = 0; - if (pDev != 0) - { - if (pDev->key != 0) - { - if (pDev->key->xkbInfo != 0) - { - if (pDev->key->xkbInfo->desc != 0) - { - if (pDev->key->xkbInfo->desc->ctrls != 0) - { - ctrls = pDev->key->xkbInfo->desc->ctrls; - } - } - } - } - } - if (ctrls != 0) - { - if (ctrls->enabled_ctrls & XkbRepeatKeysMask) - { - LLOGLN(10, ("rdpChangeKeyboardControl: autoRepeat on")); - /* schedule to turn off the autorepeat after 100 ms so any app - * polling it will be happy it's on */ - g_kbtimer = TimerSet(g_kbtimer, 0, 100, - rdpInDeferredUpdateCallback, 0); - } - else - { - LLOGLN(10, ("rdpChangeKeyboardControl: autoRepeat off")); - } - } -} - -/******************************************************************************/ -/* -0x00000401 Arabic (101) -0x00000402 Bulgarian -0x00000404 Chinese (Traditional) - US Keyboard -0x00000405 Czech -0x00000406 Danish -0x00000407 German -0x00000408 Greek -0x00000409 US -0x0000040A Spanish -0x0000040B Finnish -0x0000040C French -0x0000040D Hebrew -0x0000040E Hungarian -0x0000040F Icelandic -0x00000410 Italian -0x00000411 Japanese -0x00000412 Korean -0x00000413 Dutch -0x00000414 Norwegian -0x00000415 Polish (Programmers) -0x00000416 Portuguese (Brazilian ABNT) -0x00000418 Romanian -0x00000419 Russian -0x0000041A Croatian -0x0000041B Slovak -0x0000041C Albanian -0x0000041D Swedish -0x0000041E Thai Kedmanee -0x0000041F Turkish Q -0x00000420 Urdu -0x00000422 Ukrainian -0x00000423 Belarusian -0x00000424 Slovenian -0x00000425 Estonian -0x00000426 Latvian -0x00000427 Lithuanian IBM -0x00000429 Farsi -0x0000042A Vietnamese -0x0000042B Armenian Eastern -0x0000042C Azeri Latin -0x0000042F FYRO Macedonian -0x00000437 Georgian -0x00000438 Faroese -0x00000439 Devanagari - INSCRIPT -0x0000043A Maltese 47-key -0x0000043B Norwegian with Sami -0x0000043F Kazakh -0x00000440 Kyrgyz Cyrillic -0x00000444 Tatar -0x00000445 Bengali -0x00000446 Punjabi -0x00000447 Gujarati -0x00000449 Tamil -0x0000044A Telugu -0x0000044B Kannada -0x0000044C Malayalam -0x0000044E Marathi -0x00000450 Mongolian Cyrillic -0x00000452 United Kingdom Extended -0x0000045A Syriac -0x00000461 Nepali -0x00000463 Pashto -0x00000465 Divehi Phonetic -0x0000046E Luxembourgish -0x00000481 Maori -0x00000804 Chinese (Simplified) - US Keyboard -0x00000807 Swiss German -0x00000809 United Kingdom -0x0000080A Latin American -0x0000080C Belgian French -0x00000813 Belgian (Period) -0x00000816 Portuguese -0x0000081A Serbian (Latin) -0x0000082C Azeri Cyrillic -0x0000083B Swedish with Sami -0x00000843 Uzbek Cyrillic -0x0000085D Inuktitut Latin -0x00000C0C Canadian French (legacy) -0x00000C1A Serbian (Cyrillic) -0x00001009 Canadian French -0x0000100C Swiss French -0x0000141A Bosnian -0x00001809 Irish -0x0000201A Bosnian Cyrillic -*/ - -/******************************************************************************/ -int -rdpLoadLayout(struct xrdp_client_info *client_info) -{ - XkbRMLVOSet set; - XkbSrvInfoPtr xkbi; - XkbDescPtr xkb; - KeySymsPtr keySyms; - DeviceIntPtr pDev; - KeyCode first_key; - CARD8 num_keys; - - int keylayout = client_info->keylayout; - - LLOGLN(0, ("rdpLoadLayout: keylayout 0x%8.8x variant %s display %s", - keylayout, client_info->variant, display)); - memset(&set, 0, sizeof(set)); - if (g_use_evdev) - { - set.rules = "evdev"; - } - else - { - set.rules = "base"; - } - - set.model = "pc105"; - set.layout = "us"; - set.variant = ""; - set.options = ""; - - if (strlen(client_info->model) > 0) - { - set.model = client_info->model; - } - if (strlen(client_info->variant) > 0) - { - set.variant = client_info->variant; - } - if (strlen(client_info->layout) > 0) - { - set.layout = client_info->layout; - } - if (strlen(client_info->options) > 0) - { - set.options = client_info->options; - } - - retry: - /* free some stuff so we can call InitKeyboardDeviceStruct again */ - xkbi = g_keyboard->key->xkbInfo; - xkb = xkbi->desc; - XkbFreeKeyboard(xkb, 0, TRUE); - free(xkbi); - g_keyboard->key->xkbInfo = NULL; - free(g_keyboard->kbdfeed); - g_keyboard->kbdfeed = NULL; - free(g_keyboard->key); - g_keyboard->key = NULL; - - /* init keyboard and reload the map */ - if (!InitKeyboardDeviceStruct(g_keyboard, &set, rdpBell, - rdpChangeKeyboardControl)) - { - LLOGLN(0, ("rdpLoadLayout: InitKeyboardDeviceStruct failed")); - return 1; - } - - /* notify the X11 clients eg. X_ChangeKeyboardMapping */ - keySyms = XkbGetCoreMap(g_keyboard); - if (keySyms) - { - first_key = keySyms->minKeyCode; - num_keys = (keySyms->maxKeyCode - keySyms->minKeyCode) + 1; - XkbApplyMappingChange(g_keyboard, keySyms, first_key, num_keys, - NULL, serverClient); - for (pDev = inputInfo.devices; pDev; pDev = pDev->next) - { - if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key) - { - XkbApplyMappingChange(pDev, keySyms, first_key, num_keys, - NULL, serverClient); - } - } - } - else - { - /* sometimes, variant doesn't support all layouts */ - set.variant = ""; - goto retry; - } - - return 0; -} - -/******************************************************************************/ -int -rdpKeybdProc(DeviceIntPtr pDevice, int onoff) -{ - DevicePtr pDev; - XkbRMLVOSet set; - int ok; - - LLOGLN(10, ("rdpKeybdProc:")); - pDev = (DevicePtr)pDevice; - - switch (onoff) - { - case DEVICE_INIT: - LLOGLN(10, ("rdpKeybdProc: DEVICE_INIT")); - memset(&set, 0, sizeof(set)); - if (g_use_evdev) - { - set.rules = "evdev"; - } - else - { - set.rules = "base"; - } - set.model = "pc105"; - set.layout = "us"; - set.variant = ""; - set.options = ""; - ok = InitKeyboardDeviceStruct(pDevice, &set, rdpBell, - rdpChangeKeyboardControl); - LLOGLN(10, ("rdpKeybdProc: InitKeyboardDeviceStruct %d", ok)); - break; - case DEVICE_ON: - LLOGLN(10, ("rdpKeybdProc: DEVICE_ON")); - pDev->on = 1; - KbdDeviceOn(); - break; - case DEVICE_OFF: - LLOGLN(10, ("rdpKeybdProc: DEVICE_OFF")); - pDev->on = 0; - KbdDeviceOff(); - break; - case DEVICE_CLOSE: - LLOGLN(10, ("rdpKeybdProc: DEVICE_CLOSE")); - if (pDev->on) - { - pDev->on = 0; - KbdDeviceOff(); - } - break; - } - return Success; -} - -/******************************************************************************/ -void -PtrDeviceControl(DeviceIntPtr dev, PtrCtrl *ctrl) -{ - LLOGLN(10, ("PtrDeviceControl:")); -} - -/******************************************************************************/ -void -PtrDeviceInit(void) -{ - LLOGLN(10, ("PtrDeviceInit:")); -} - -/******************************************************************************/ -void -PtrDeviceOn(DeviceIntPtr pDev) -{ - LLOGLN(10, ("PtrDeviceOn:")); -} - -/******************************************************************************/ -void -PtrDeviceOff(void) -{ - LLOGLN(10, ("PtrDeviceOff:")); -} - -/******************************************************************************/ -static void -rdpMouseCtrl(DeviceIntPtr pDevice, PtrCtrl *pCtrl) -{ - LLOGLN(0, ("rdpMouseCtrl:")); -} - -/******************************************************************************/ -int -rdpMouseProc(DeviceIntPtr pDevice, int onoff) -{ - BYTE map[8]; - DevicePtr pDev; - Atom btn_labels[8]; - Atom axes_labels[2]; - - LLOGLN(10, ("rdpMouseProc:")); - pDev = (DevicePtr)pDevice; - - switch (onoff) - { - case DEVICE_INIT: - PtrDeviceInit(); - map[0] = 0; - map[1] = 1; - map[2] = 2; - map[3] = 3; - map[4] = 4; - map[5] = 5; - map[6] = 6; - map[7] = 7; - - btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); - btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); - btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); - btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP); - btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN); - btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT); - btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT); - - axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X); - axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y); - - InitPointerDeviceStruct(pDev, map, 7, btn_labels, rdpMouseCtrl, - GetMotionHistorySize(), 2, axes_labels); - - break; - case DEVICE_ON: - pDev->on = 1; - PtrDeviceOn(pDevice); - break; - case DEVICE_OFF: - pDev->on = 0; - PtrDeviceOff(); - break; - case DEVICE_CLOSE: - - if (pDev->on) - { - PtrDeviceOff(); - } - - break; - } - - return Success; -} - -/******************************************************************************/ -Bool -rdpCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y) -{ - LLOGLN(10, ("rdpCursorOffScreen:")); - return 0; -} - -/******************************************************************************/ -void -rdpCrossScreen(ScreenPtr pScreen, Bool entering) -{ - LLOGLN(10, ("rdpCrossScreen:")); -} - -/******************************************************************************/ -void -rdpPointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y) -{ - LLOGLN(0, ("rdpPointerWarpCursor:")); - miPointerWarpCursor(pDev, pScr, x, y); -} - -/******************************************************************************/ -void -rdpPointerEnqueueEvent(DeviceIntPtr pDev, InternalEvent *event) -{ - LLOGLN(0, ("rdpPointerEnqueueEvent:")); -} - -/******************************************************************************/ -void -rdpPointerNewEventScreen(DeviceIntPtr pDev, ScreenPtr pScr, Bool fromDIX) -{ - LLOGLN(0, ("rdpPointerNewEventScreen:")); -} - -/******************************************************************************/ -Bool -rdpSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs) -{ - LLOGLN(10, ("rdpSpriteRealizeCursor:")); - return 1; -} - -/******************************************************************************/ -Bool -rdpSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs) -{ - LLOGLN(10, ("rdpSpriteUnrealizeCursor:")); - return 1; -} - -/******************************************************************************/ -int -get_pixel_safe(char *data, int x, int y, int width, int height, int bpp) -{ - int start; - int shift; - int c; - unsigned int *src32; - - if (x < 0) - { - return 0; - } - - if (y < 0) - { - return 0; - } - - if (x >= width) - { - return 0; - } - - if (y >= height) - { - return 0; - } - - if (bpp == 1) - { - width = (width + 7) / 8; - start = (y * width) + x / 8; - shift = x % 8; - c = (unsigned char)(data[start]); -#if (X_BYTE_ORDER == X_LITTLE_ENDIAN) - return (g_reverse_byte[c] & (0x80 >> shift)) != 0; -#else - return (c & (0x80 >> shift)) != 0; -#endif - } - else if (bpp == 32) - { - src32 = (unsigned int*)data; - return src32[y * width + x]; - } - - return 0; -} - -/******************************************************************************/ -void -set_pixel_safe(char *data, int x, int y, int width, int height, int bpp, - int pixel) -{ - int start; - int shift; - unsigned int *dst32; - - if (x < 0) - { - return; - } - - if (y < 0) - { - return; - } - - if (x >= width) - { - return; - } - - if (y >= height) - { - return; - } - - if (bpp == 1) - { - width = (width + 7) / 8; - start = (y * width) + x / 8; - shift = x % 8; - - if (pixel & 1) - { - data[start] = data[start] | (0x80 >> shift); - } - else - { - data[start] = data[start] & ~(0x80 >> shift); - } - } - else if (bpp == 24) - { - *(data + (3 * (y * width + x)) + 0) = pixel >> 0; - *(data + (3 * (y * width + x)) + 1) = pixel >> 8; - *(data + (3 * (y * width + x)) + 2) = pixel >> 16; - } - else if (bpp == 32) - { - dst32 = (unsigned int*)data; - dst32[y * width + x] = pixel; - } -} - -/******************************************************************************/ -void -rdpSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScr, CursorPtr pCurs, - int x, int y) -{ - char cur_data[32 * (32 * 4)]; - char cur_mask[32 * (32 / 8)]; - char *mask; - char *data; - int i; - int j; - int w; - int h; - int p; - int xhot; - int yhot; - int paddedRowBytes; - int fgcolor; - int bgcolor; - int bpp; - - if (pCurs == 0) - { - return; - } - - if (pCurs->bits == 0) - { - return; - } - - w = pCurs->bits->width; - h = pCurs->bits->height; - if ((pCurs->bits->argb != 0) && - (g_rdpScreen.client_info.pointer_flags & 1)) - { - bpp = 32; - paddedRowBytes = PixmapBytePad(w, 32); - xhot = pCurs->bits->xhot; - yhot = pCurs->bits->yhot; - data = (char *)(pCurs->bits->argb); - memset(cur_data, 0, sizeof(cur_data)); - memset(cur_mask, 0, sizeof(cur_mask)); - - for (j = 0; j < 32; j++) - { - for (i = 0; i < 32; i++) - { - p = get_pixel_safe(data, i, j, paddedRowBytes / 4, h, 32); - set_pixel_safe(cur_data, i, 31 - j, 32, 32, 32, p); - } - } - } - else - { - bpp = 0; - paddedRowBytes = PixmapBytePad(w, 1); - xhot = pCurs->bits->xhot; - yhot = pCurs->bits->yhot; - data = (char *)(pCurs->bits->source); - mask = (char *)(pCurs->bits->mask); - fgcolor = (((pCurs->foreRed >> 8) & 0xff) << 16) | - (((pCurs->foreGreen >> 8) & 0xff) << 8) | - ((pCurs->foreBlue >> 8) & 0xff); - bgcolor = (((pCurs->backRed >> 8) & 0xff) << 16) | - (((pCurs->backGreen >> 8) & 0xff) << 8) | - ((pCurs->backBlue >> 8) & 0xff); - memset(cur_data, 0, sizeof(cur_data)); - memset(cur_mask, 0, sizeof(cur_mask)); - - for (j = 0; j < 32; j++) - { - for (i = 0; i < 32; i++) - { - p = get_pixel_safe(mask, i, j, paddedRowBytes * 8, h, 1); - set_pixel_safe(cur_mask, i, 31 - j, 32, 32, 1, !p); - - if (p != 0) - { - p = get_pixel_safe(data, i, j, paddedRowBytes * 8, h, 1); - p = p ? fgcolor : bgcolor; - set_pixel_safe(cur_data, i, 31 - j, 32, 32, 24, p); - } - } - } - } - - rdpup_begin_update(); - rdpup_set_cursor_ex(xhot, yhot, cur_data, cur_mask, bpp); - rdpup_end_update(); -} - -/******************************************************************************/ -void -rdpSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScr, int x, int y) -{ - LLOGLN(10, ("rdpSpriteMoveCursor:")); -} - -/******************************************************************************/ -Bool -rdpSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScr) -{ - LLOGLN(0, ("rdpSpriteDeviceCursorInitialize:")); - return 1; -} - -/******************************************************************************/ -void -rdpSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScr) -{ - LLOGLN(0, ("rdpSpriteDeviceCursorCleanup:")); -} - -/******************************************************************************/ -static void -rdpEnqueueMotion(int x, int y) -{ - int i; - int n; - int valuators[2]; - EventListPtr rdp_events; - xEvent *pev; - - LLOGLN(10, ("rdpEnqueueMotion: x %d y %d", x, y)); -# if 0 - - if (x < 128) - { - rdpup_begin_update(); - rdpup_send_area(0, 0, 0, 1024, 768); - rdpup_end_update(); - } - -#endif - miPointerSetPosition(g_pointer, &x, &y); - valuators[0] = x; - valuators[1] = y; - - GetEventList(&rdp_events); - n = GetPointerEvents(rdp_events, g_pointer, MotionNotify, 0, - POINTER_ABSOLUTE | POINTER_SCREEN, - 0, 2, valuators); - - for (i = 0; i < n; i++) - { - pev = (rdp_events + i)->event; - mieqEnqueue(g_pointer, (InternalEvent *)pev); - } -} - -/******************************************************************************/ -static void -rdpEnqueueButton(int type, int buttons) -{ - int i; - int n; - EventListPtr rdp_events; - xEvent *pev; - - LLOGLN(10, ("rdpEnqueueButton:")); - i = GetEventList(&rdp_events); - n = GetPointerEvents(rdp_events, g_pointer, type, buttons, 0, 0, 0, 0); - - for (i = 0; i < n; i++) - { - pev = (rdp_events + i)->event; - mieqEnqueue(g_pointer, (InternalEvent *)pev); - } -} - -/******************************************************************************/ -static CARD32 -rdpDeferredInputCallback(OsTimerPtr timer, CARD32 now, pointer arg) -{ - LLOGLN(10, ("rdpDeferredInputCallback:")); - g_timer_scheduled = 0; - if ((g_old_x != g_x) || (g_old_y != g_y)) - { - rdpEnqueueMotion(g_x, g_y); - g_old_x = g_x; - g_old_y = g_x; - } - return 0; -} - -/******************************************************************************/ -void -PtrAddEvent(int buttonMask, int x, int y) -{ - int i; - int type; - int buttons; - int send_now; - - LLOGLN(10, ("PtrAddEvent: x %d y %d", x, y)); - if (g_pointer == 0) - { - return; - } - send_now = (buttonMask ^ g_old_button_mask) || (g_delay_motion == 0); - LLOGLN(10, ("PtrAddEvent: send_now %d g_timer_scheduled %d", - send_now, g_timer_scheduled)); - if (send_now) - { - if (g_timer_scheduled) - { - g_timer_scheduled = 0; - TimerCancel(g_timer); - } - if ((g_old_x != x) || (g_old_y != y)) - { - rdpEnqueueMotion(x, y); - g_old_x = x; - g_old_y = y; - } - for (i = 0; i < 5; i++) - { - if ((buttonMask ^ g_old_button_mask) & (1 << i)) - { - if (buttonMask & (1 << i)) - { - type = ButtonPress; - buttons = i + 1; - rdpEnqueueButton(type, buttons); - } - else - { - type = ButtonRelease; - buttons = i + 1; - rdpEnqueueButton(type, buttons); - } - } - } - g_old_button_mask = buttonMask; - } - else - { - g_x = x; - g_y = y; - if (!g_timer_scheduled) - { - g_timer_scheduled = 1; - g_timer = TimerSet(g_timer, 0, 60, rdpDeferredInputCallback, 0); - } - } -} - -/******************************************************************************/ -void -KbdAddEvent(int down, int param1, int param2, int param3, int param4) -{ - if (g_use_evdev) - { - KbdAddEvent_evdev(down, param1, param2, param3, param4); - } - else - { - KbdAddEvent_base(down, param1, param2, param3, param4); - } -} - -/******************************************************************************/ -/* notes - - scroll lock doesn't seem to be a modifier in X -*/ -void -KbdSync(int param1) -{ - int xkb_state; - - if (g_keyboard == 0) - { - return; - } - xkb_state = XkbStateFieldFromRec(&(g_keyboard->key->xkbInfo->state)); - - if ((!(xkb_state & 0x02)) != (!(param1 & 4))) /* caps lock */ - { - LLOGLN(0, ("KbdSync: toggling caps lock")); - KbdAddEvent(1, 58, 0, 58, 0); - KbdAddEvent(0, 58, 49152, 58, 49152); - } - - if ((!(xkb_state & 0x10)) != (!(param1 & 2))) /* num lock */ - { - LLOGLN(0, ("KbdSync: toggling num lock")); - KbdAddEvent(1, 69, 0, 69, 0); - KbdAddEvent(0, 69, 49152, 69, 49152); - } - - if ((!(g_scroll_lock_down)) != (!(param1 & 1))) /* scroll lock */ - { - LLOGLN(0, ("KbdSync: toggling scroll lock")); - KbdAddEvent(1, 70, 0, 70, 0); - KbdAddEvent(0, 70, 49152, 70, 49152); - } -} diff --git a/xorg/X11R7.6/rdp/rdpkeyboard.c b/xorg/X11R7.6/rdp/rdpkeyboard.c deleted file mode 100644 index 31fefe54..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboard.c +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2005-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard - -*/ - -#include "rdp.h" -#include "rdpkeyboard.h" -#include "rdpkeyboardevdev.h" - -#define LOG_LEVEL 1 -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -extern DeviceIntPtr g_keyboard; /* in rdpmain.c */ -extern int g_shift_down; /* in rdpmain.c */ -extern int g_alt_down; /* in rdpmain.c */ -extern int g_ctrl_down; /* in rdpmain.c */ -extern int g_pause_spe; /* in rdpmain.c */ -extern int g_tab_down; /* in rdpmain.c */ - -/******************************************************************************/ -void -rdpEnqueueKey(int type, int scancode) -{ - int i; - int n; - EventListPtr rdp_events; - xEvent *pev; - - i = GetEventList(&rdp_events); - n = GetKeyboardEvents(rdp_events, g_keyboard, type, scancode); - - for (i = 0; i < n; i++) - { - pev = (rdp_events + i)->event; - mieqEnqueue(g_keyboard, (InternalEvent *)pev); - } -} - -/******************************************************************************/ -void -check_keysa(void) -{ - if (g_ctrl_down != 0) - { - rdpEnqueueKey(KeyRelease, g_ctrl_down); - g_ctrl_down = 0; - } - - if (g_alt_down != 0) - { - rdpEnqueueKey(KeyRelease, g_alt_down); - g_alt_down = 0; - } - - if (g_shift_down != 0) - { - rdpEnqueueKey(KeyRelease, g_shift_down); - g_shift_down = 0; - } -} - -/******************************************************************************/ -void -sendDownUpKeyEvent(int type, int x_scancode) -{ - /* if type is keydown, send keyup + keydown */ - if (type == KeyPress) - { - rdpEnqueueKey(KeyRelease, x_scancode); - rdpEnqueueKey(KeyPress, x_scancode); - } - else - { - rdpEnqueueKey(KeyRelease, x_scancode); - } -} diff --git a/xorg/X11R7.6/rdp/rdpkeyboard.h b/xorg/X11R7.6/rdp/rdpkeyboard.h deleted file mode 100644 index dc708501..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboard.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright 2013-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard map for base rules - -*/ - -#ifndef _RDPKEYBOARD_H -#define _RDPKEYBOARD_H - -#define MIN_KEY_CODE 8 -#define MAX_KEY_CODE 255 -#define NO_OF_KEYS ((MAX_KEY_CODE - MIN_KEY_CODE) + 1) -#define GLYPHS_PER_KEY 2 - -#define RDPSCAN_Tab 15 -#define RDPSCAN_Return 28 /* ext is used to know KP or not */ -#define RDPSCAN_Control 29 /* ext is used to know L or R */ -#define RDPSCAN_Shift_L 42 -#define RDPSCAN_Slash 53 -#define RDPSCAN_Shift_R 54 -#define RDPSCAN_KP_Multiply 55 -#define RDPSCAN_Alt 56 /* ext is used to know L or R */ -#define RDPSCAN_Caps_Lock 58 -#define RDPSCAN_Pause 69 -#define RDPSCAN_Scroll_Lock 70 -#define RDPSCAN_KP_7 71 /* KP7 or home */ -#define RDPSCAN_KP_8 72 /* KP8 or up */ -#define RDPSCAN_KP_9 73 /* KP9 or page up */ -#define RDPSCAN_KP_4 75 /* KP4 or left */ -#define RDPSCAN_KP_6 77 /* KP6 or right */ -#define RDPSCAN_KP_1 79 /* KP1 or home */ -#define RDPSCAN_KP_2 80 /* KP2 or up */ -#define RDPSCAN_KP_3 81 /* KP3 or page down */ -#define RDPSCAN_KP_0 82 /* KP0 or insert */ -#define RDPSCAN_KP_Decimal 83 /* KP. or delete */ -#define RDPSCAN_89 89 -#define RDPSCAN_90 90 -#define RDPSCAN_LWin 91 -#define RDPSCAN_RWin 92 -#define RDPSCAN_Menu 93 -#define RDPSCAN_115 115 -#define RDPSCAN_126 126 - -void -rdpEnqueueKey(int type, int scancode); -void -check_keysa(void); -void -sendDownUpKeyEvent(int type, int x_scancode); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpkeyboardbase.c b/xorg/X11R7.6/rdp/rdpkeyboardbase.c deleted file mode 100644 index c35a0392..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboardbase.c +++ /dev/null @@ -1,301 +0,0 @@ -/* -Copyright 2005-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard map for base rules - -*/ - -#include "rdp.h" -#include "rdpkeyboard.h" -#include "rdpkeyboardbase.h" - -extern DeviceIntPtr g_keyboard; /* in rdpmain.c */ -extern int g_shift_down; /* in rdpmain.c */ -extern int g_alt_down; /* in rdpmain.c */ -extern int g_ctrl_down; /* in rdpmain.c */ -extern int g_pause_spe; /* in rdpmain.c */ -extern int g_tab_down; /* in rdpmain.c */ - -#define LOG_LEVEL 1 -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -#define XSCAN_Tab 23 -#define XSCAN_Return 36 /* above right shift */ -#define XSCAN_Control_L 37 -#define XSCAN_Shift_L 50 -#define XSCAN_slash 61 -#define XSCAN_Shift_R 62 -#define XSCAN_KP_Multiply 63 -#define XSCAN_Alt_L 64 -#define XSCAN_Caps_Lock 66 /* caps lock */ -#define XSCAN_Num_Lock 77 /* num lock */ -#define XSCAN_KP_7 79 -#define XSCAN_KP_8 80 -#define XSCAN_KP_9 81 -#define XSCAN_KP_4 83 -#define XSCAN_KP_6 85 -#define XSCAN_KP_1 87 -#define XSCAN_KP_2 88 -#define XSCAN_KP_3 89 -#define XSCAN_KP_0 90 -#define XSCAN_KP_Decimal 91 -/* "/ ?" on br keyboard */ -#define XSCAN_97 97 /* ------------------------------? */ -#define XSCAN_Enter 108 /* 104 */ /* on keypad */ -#define XSCAN_Control_R 109 /* 105 */ -#define XSCAN_KP_Divide 112 /* 106 */ -#define XSCAN_Print 111 /* 107 */ -#define XSCAN_Alt_R 113 /* 108 */ -#define XSCAN_Home 97 /* 110 */ -#define XSCAN_Up 98 /* 111 */ -#define XSCAN_Prior 99 /* 112 */ -#define XSCAN_Left 100 /* 113 */ -#define XSCAN_Right 102 /* 114 */ -#define XSCAN_End 103 /* 115 */ -#define XSCAN_Down 104 /* 116 */ -#define XSCAN_Next 105 /* 117 */ -#define XSCAN_Insert 106 /* 118 */ -#define XSCAN_Delete 107 /* 119 */ -#define XSCAN_Pause 110 /* 127 */ -/* . on br keypad */ -#define XSCAN_129 129 /* ------------------------------? */ -#define XSCAN_LWin 115 /* 133 */ -#define XSCAN_RWin 116 /* 134 */ -#define XSCAN_Menu 117 /* 135 */ -#define XSCAN_LMeta 156 -#define XSCAN_RMeta 156 -#define XSCAN_211 211 /* "/ ?" on br keyboard, "\ _" on jp keyboard */ - -/******************************************************************************/ -void -KbdAddEvent_base(int down, int param1, int param2, int param3, int param4) -{ - int rdp_scancode; - int x_scancode; - int is_ext; - int is_spe; - int type; - - LLOGLN(10, ("KbdAddEvent_base: down=0x%x param1=0x%x param2=0x%x " - "param3=0x%x param4=0x%x", down, param1, param2, param3, param4)); - if (g_keyboard == 0) - { - return; - } - type = down ? KeyPress : KeyRelease; - rdp_scancode = param3; - is_ext = param4 & 256; /* 0x100 */ - is_spe = param4 & 512; /* 0x200 */ - x_scancode = 0; - - switch (rdp_scancode) - { - case RDPSCAN_Caps_Lock: /* caps lock */ - case RDPSCAN_Shift_L: /* left shift */ - case RDPSCAN_Shift_R: /* right shift */ - case RDPSCAN_Scroll_Lock: /* scroll lock */ - x_scancode = rdp_scancode + MIN_KEY_CODE; - - if (x_scancode > 0) - { - /* left or right shift */ - if ((rdp_scancode == RDPSCAN_Shift_L) || - (rdp_scancode == RDPSCAN_Shift_R)) - { - g_shift_down = down ? x_scancode : 0; - } - rdpEnqueueKey(type, x_scancode); - } - break; - - case RDPSCAN_Alt: /* left - right alt button */ - - if (is_ext) - { - x_scancode = XSCAN_Alt_R; /* right alt button */ - } - else - { - x_scancode = XSCAN_Alt_L; /* left alt button */ - } - - g_alt_down = down ? x_scancode : 0; - rdpEnqueueKey(type, x_scancode); - break; - - case RDPSCAN_Tab: /* tab */ - - if (!down && !g_tab_down) - { - check_keysa(); /* leave x_scancode 0 here, we don't want the tab key up */ - } - else - { - sendDownUpKeyEvent(type, XSCAN_Tab); - } - - g_tab_down = down; - break; - - case RDPSCAN_Control: /* left or right ctrl */ - - /* this is to handle special case with pause key sending control first */ - if (is_spe) - { - if (down) - { - g_pause_spe = 1; - /* leave x_scancode 0 here, we don't want the control key down */ - } - } - else - { - x_scancode = is_ext ? XSCAN_Control_R : XSCAN_Control_L; - g_ctrl_down = down ? x_scancode : 0; - rdpEnqueueKey(type, x_scancode); - } - - break; - - case RDPSCAN_Pause: /* Pause or Num Lock */ - - if (g_pause_spe) - { - x_scancode = XSCAN_Pause; - - if (!down) - { - g_pause_spe = 0; - } - } - else - { - x_scancode = g_ctrl_down ? XSCAN_Pause : XSCAN_Num_Lock; - } - - rdpEnqueueKey(type, x_scancode); - break; - - case RDPSCAN_Return: /* Enter or Return */ - x_scancode = is_ext ? XSCAN_Enter : XSCAN_Return; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_Slash: /* / */ - x_scancode = is_ext ? XSCAN_KP_Divide : XSCAN_slash; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_Multiply: /* * on KP or Print Screen */ - x_scancode = is_ext ? XSCAN_Print : XSCAN_KP_Multiply; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_7: /* 7 or Home */ - x_scancode = is_ext ? XSCAN_Home : XSCAN_KP_7; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_8: /* 8 or Up */ - x_scancode = is_ext ? XSCAN_Up : XSCAN_KP_8; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_9: /* 9 or PgUp */ - x_scancode = is_ext ? XSCAN_Prior : XSCAN_KP_9; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_4: /* 4 or Left */ - x_scancode = is_ext ? XSCAN_Left : XSCAN_KP_4; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_6: /* 6 or Right */ - x_scancode = is_ext ? XSCAN_Right : XSCAN_KP_6; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_1: /* 1 or End */ - x_scancode = is_ext ? XSCAN_End : XSCAN_KP_1; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_2: /* 2 or Down */ - x_scancode = is_ext ? XSCAN_Down : XSCAN_KP_2; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_3: /* 3 or PgDn */ - x_scancode = is_ext ? XSCAN_Next : XSCAN_KP_3; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_0: /* 0 or Insert */ - x_scancode = is_ext ? XSCAN_Insert : XSCAN_KP_0; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_Decimal: /* . or Delete */ - x_scancode = is_ext ? XSCAN_Delete : XSCAN_KP_Decimal; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_LWin: /* left win key */ - rdpEnqueueKey(type, XSCAN_LWin); - break; - - case RDPSCAN_RWin: /* right win key */ - rdpEnqueueKey(type, XSCAN_RWin); - break; - - case RDPSCAN_Menu: /* menu key */ - rdpEnqueueKey(type, XSCAN_Menu); - break; - - case RDPSCAN_89: /* left meta */ - rdpEnqueueKey(type, XSCAN_LMeta); - break; - - case RDPSCAN_90: /* right meta */ - rdpEnqueueKey(type, XSCAN_RMeta); - break; - - case RDPSCAN_115: - rdpEnqueueKey(type, XSCAN_211); /* "/ ?" on br keyboard, "\ _" on jp keyboard */ - break; - - case RDPSCAN_126: - rdpEnqueueKey(type, XSCAN_129); /* . on br keypad */ - break; - - default: - x_scancode = rdp_scancode + MIN_KEY_CODE; - - if (x_scancode > 0) - { - LLOGLN(10, ("KbdAddEvent_base: rdp_scancode %d x_scancode %d", - rdp_scancode, x_scancode)); - sendDownUpKeyEvent(type, x_scancode); - } - - break; - } -} diff --git a/xorg/X11R7.6/rdp/rdpkeyboardbase.h b/xorg/X11R7.6/rdp/rdpkeyboardbase.h deleted file mode 100644 index 6548b78e..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboardbase.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2013-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard map for base rules - -*/ - -#ifndef _RDPKEYBOARDBASE_H -#define _RDPKEYBOARDBASE_H - -void -KbdAddEvent_base(int down, int param1, int param2, int param3, int param4); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpkeyboardevdev.c b/xorg/X11R7.6/rdp/rdpkeyboardevdev.c deleted file mode 100644 index 0c560c83..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboardevdev.c +++ /dev/null @@ -1,300 +0,0 @@ -/* -Copyright 2005-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard map for evdev rules - -*/ - -#include "rdp.h" -#include "rdpkeyboard.h" -#include "rdpkeyboardevdev.h" - -extern DeviceIntPtr g_keyboard; /* in rdpmain.c */ -extern int g_shift_down; /* in rdpmain.c */ -extern int g_alt_down; /* in rdpmain.c */ -extern int g_ctrl_down; /* in rdpmain.c */ -extern int g_pause_spe; /* in rdpmain.c */ -extern int g_tab_down; /* in rdpmain.c */ - -#define LOG_LEVEL 1 -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -#define XSCAN_Tab 23 -#define XSCAN_Return 36 /* above right shift */ -#define XSCAN_Control_L 37 -#define XSCAN_Shift_L 50 -#define XSCAN_slash 61 -#define XSCAN_Shift_R 62 -#define XSCAN_KP_Multiply 63 -#define XSCAN_Alt_L 64 -#define XSCAN_Caps_Lock 66 /* caps lock */ -#define XSCAN_Num_Lock 77 /* num lock */ -#define XSCAN_KP_7 79 -#define XSCAN_KP_8 80 -#define XSCAN_KP_9 81 -#define XSCAN_KP_4 83 -#define XSCAN_KP_6 85 -#define XSCAN_KP_1 87 -#define XSCAN_KP_2 88 -#define XSCAN_KP_3 89 -#define XSCAN_KP_0 90 -#define XSCAN_KP_Decimal 91 -/* "/ ?" on br keyboard */ -#define XSCAN_97 97 -#define XSCAN_Enter 104 /* on keypad */ -#define XSCAN_Control_R 105 -#define XSCAN_KP_Divide 106 -#define XSCAN_Print 107 -#define XSCAN_Alt_R 108 -#define XSCAN_Home 110 -#define XSCAN_Up 111 -#define XSCAN_Prior 112 -#define XSCAN_Left 113 -#define XSCAN_Right 114 -#define XSCAN_End 115 -#define XSCAN_Down 116 -#define XSCAN_Next 117 -#define XSCAN_Insert 118 -#define XSCAN_Delete 119 -#define XSCAN_Pause 127 -/* . on br keypad */ -#define XSCAN_129 129 -#define XSCAN_LWin 133 -#define XSCAN_RWin 134 -#define XSCAN_Menu 135 -#define XSCAN_LMeta 156 -#define XSCAN_RMeta 156 - -/******************************************************************************/ -void -KbdAddEvent_evdev(int down, int param1, int param2, int param3, int param4) -{ - int rdp_scancode; - int x_scancode; - int is_ext; - int is_spe; - int type; - - LLOGLN(10, ("KbdAddEvent_evdev: down=0x%x param1=0x%x param2=0x%x " - "param3=0x%x param4=0x%x", down, param1, param2, param3, param4)); - if (g_keyboard == 0) - { - return; - } - type = down ? KeyPress : KeyRelease; - rdp_scancode = param3; - is_ext = param4 & 256; /* 0x100 */ - is_spe = param4 & 512; /* 0x200 */ - x_scancode = 0; - - switch (rdp_scancode) - { - case RDPSCAN_Caps_Lock: /* caps lock */ - case RDPSCAN_Shift_L: /* left shift */ - case RDPSCAN_Shift_R: /* right shift */ - case RDPSCAN_Scroll_Lock: /* scroll lock */ - x_scancode = rdp_scancode + MIN_KEY_CODE; - - if (x_scancode > 0) - { - /* left or right shift */ - if ((rdp_scancode == RDPSCAN_Shift_L) || - (rdp_scancode == RDPSCAN_Shift_R)) - { - g_shift_down = down ? x_scancode : 0; - } - rdpEnqueueKey(type, x_scancode); - } - break; - - case RDPSCAN_Alt: /* left - right alt button */ - - if (is_ext) - { - x_scancode = XSCAN_Alt_R; /* right alt button */ - } - else - { - x_scancode = XSCAN_Alt_L; /* left alt button */ - } - - g_alt_down = down ? x_scancode : 0; - rdpEnqueueKey(type, x_scancode); - break; - - case RDPSCAN_Tab: /* tab */ - - if (!down && !g_tab_down) - { - check_keysa(); /* leave x_scancode 0 here, we don't want the tab key up */ - } - else - { - sendDownUpKeyEvent(type, XSCAN_Tab); - } - - g_tab_down = down; - break; - - case RDPSCAN_Control: /* left or right ctrl */ - - /* this is to handle special case with pause key sending control first */ - if (is_spe) - { - if (down) - { - g_pause_spe = 1; - /* leave x_scancode 0 here, we don't want the control key down */ - } - } - else - { - x_scancode = is_ext ? XSCAN_Control_R : XSCAN_Control_L; - g_ctrl_down = down ? x_scancode : 0; - rdpEnqueueKey(type, x_scancode); - } - - break; - - case RDPSCAN_Pause: /* Pause or Num Lock */ - - if (g_pause_spe) - { - x_scancode = XSCAN_Pause; - - if (!down) - { - g_pause_spe = 0; - } - } - else - { - x_scancode = g_ctrl_down ? XSCAN_Pause : XSCAN_Num_Lock; - } - - rdpEnqueueKey(type, x_scancode); - break; - - case RDPSCAN_Return: /* Enter or Return */ - x_scancode = is_ext ? XSCAN_Enter : XSCAN_Return; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_Slash: /* / */ - x_scancode = is_ext ? XSCAN_KP_Divide : XSCAN_slash; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_Multiply: /* * on KP or Print Screen */ - x_scancode = is_ext ? XSCAN_Print : XSCAN_KP_Multiply; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_7: /* 7 or Home */ - x_scancode = is_ext ? XSCAN_Home : XSCAN_KP_7; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_8: /* 8 or Up */ - x_scancode = is_ext ? XSCAN_Up : XSCAN_KP_8; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_9: /* 9 or PgUp */ - x_scancode = is_ext ? XSCAN_Prior : XSCAN_KP_9; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_4: /* 4 or Left */ - x_scancode = is_ext ? XSCAN_Left : XSCAN_KP_4; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_6: /* 6 or Right */ - x_scancode = is_ext ? XSCAN_Right : XSCAN_KP_6; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_1: /* 1 or End */ - x_scancode = is_ext ? XSCAN_End : XSCAN_KP_1; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_2: /* 2 or Down */ - x_scancode = is_ext ? XSCAN_Down : XSCAN_KP_2; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_3: /* 3 or PgDn */ - x_scancode = is_ext ? XSCAN_Next : XSCAN_KP_3; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_0: /* 0 or Insert */ - x_scancode = is_ext ? XSCAN_Insert : XSCAN_KP_0; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_KP_Decimal: /* . or Delete */ - x_scancode = is_ext ? XSCAN_Delete : XSCAN_KP_Decimal; - sendDownUpKeyEvent(type, x_scancode); - break; - - case RDPSCAN_LWin: /* left win key */ - rdpEnqueueKey(type, XSCAN_LWin); - break; - - case RDPSCAN_RWin: /* right win key */ - rdpEnqueueKey(type, XSCAN_RWin); - break; - - case RDPSCAN_Menu: /* menu key */ - rdpEnqueueKey(type, XSCAN_Menu); - break; - - case RDPSCAN_89: /* left meta */ - rdpEnqueueKey(type, XSCAN_LMeta); - break; - - case RDPSCAN_90: /* right meta */ - rdpEnqueueKey(type, XSCAN_RMeta); - break; - - case RDPSCAN_115: - rdpEnqueueKey(type, XSCAN_97); /* "/ ?" on br keyboard */ - break; - - case RDPSCAN_126: - rdpEnqueueKey(type, XSCAN_129); /* . on br keypad */ - break; - - default: - x_scancode = rdp_scancode + MIN_KEY_CODE; - - if (x_scancode > 0) - { - LLOGLN(10, ("KbdAddEvent_evdev: rdp_scancode %d x_scancode %d", - rdp_scancode, x_scancode)); - sendDownUpKeyEvent(type, x_scancode); - } - - break; - } -} diff --git a/xorg/X11R7.6/rdp/rdpkeyboardevdev.h b/xorg/X11R7.6/rdp/rdpkeyboardevdev.h deleted file mode 100644 index 8c673cbf..00000000 --- a/xorg/X11R7.6/rdp/rdpkeyboardevdev.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2013-2014 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -keyboard map for base rules - -*/ - -#ifndef _RDPKEYBOARDEVDEV_H -#define _RDPKEYBOARDEVDEV_H - -void -KbdAddEvent_evdev(int down, int param1, int param2, int param3, int param4); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpmain.c b/xorg/X11R7.6/rdp/rdpmain.c deleted file mode 100644 index 7a1d444c..00000000 --- a/xorg/X11R7.6/rdp/rdpmain.c +++ /dev/null @@ -1,857 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -This is the main file called from main.c -Sets up the functions - -*/ - -#include "rdp.h" -#include "rdprandr.h" -#include "rdpglyph.h" - -#if 1 -#define DEBUG_OUT(arg) -#else -#define DEBUG_OUT(arg) ErrorF arg -#endif - -#ifndef XRDP_DISABLE_LINUX_ABSTRACT -#ifdef __linux__ -#define XRDP_DISABLE_LINUX_ABSTRACT 1 -#else -#define XRDP_DISABLE_LINUX_ABSTRACT 0 -#endif -#endif - -#if XRDP_DISABLE_LINUX_ABSTRACT -/* because including is problematic - * we dup a small struct - * we need to set flags to zero to turn off abstract sockets */ -struct _MyXtransport -{ - char *TransName; - int flags; -}; -/* in xtrans-1.2.6/Xtranssock.c */ -extern struct _MyXtransport _XSERVTransSocketLocalFuncs; -#endif - -rdpScreenInfoRec g_rdpScreen; /* the one screen */ -ScreenPtr g_pScreen = 0; - -DevPrivateKeyRec g_rdpGCIndex; -DevPrivateKeyRec g_rdpWindowIndex; -DevPrivateKeyRec g_rdpPixmapIndex; - -/* main mouse and keyboard devices */ -DeviceIntPtr g_pointer = 0; -DeviceIntPtr g_keyboard = 0; - -/* true if client is enhanced rdp client(freerdp) */ -int g_can_do_pix_to_pix = 0; - -int g_do_dirty_os = 1; /* delay remoting off screen bitmaps */ -int g_do_dirty_ons = 1; /* delay remoting screen */ -int g_do_glyph_cache = 0; /* rdpup.c may set this */ -int g_do_alpha_glyphs = 1; -int g_do_composite = 0; /* rdpup.c may set this */ -Bool g_wrapWindow = 1; -Bool g_wrapPixmap = 1; - -int g_codec_mode = 0; /* 0 = standard rdp, 1 = rfx */ - -rdpPixmapRec g_screenPriv; - -/* if true, running in RemoteApp / RAIL mode */ -int g_use_rail = 0; - -int g_con_number = 0; /* increments for each connection */ - -WindowPtr g_invalidate_window = 0; -int g_doing_font = 0; - -/* if true, use a unix domain socket instead of a tcp socket */ -int g_use_uds = 0; -char g_uds_data[256] = ""; /* data */ -char g_uds_cont[256] = ""; /* control */ - -int g_shift_down = 0; -int g_alt_down = 0; -int g_ctrl_down = 0; -int g_pause_spe = 0; -int g_tab_down = 0; - -/* set all these at once, use function set_bpp */ -int g_bpp = 16; -int g_Bpp = 2; -int g_Bpp_mask = 0xffff; -static int g_firstTime = 1; -static int g_redBits = 5; -static int g_greenBits = 6; -static int g_blueBits = 5; -static int g_initOutputCalled = 0; -/* Common pixmap formats */ -static PixmapFormatRec g_formats[MAXFORMATS] = -{ - { 1, 1, BITMAP_SCANLINE_PAD }, - { 4, 8, BITMAP_SCANLINE_PAD }, - { 8, 8, BITMAP_SCANLINE_PAD }, - { 15, 16, BITMAP_SCANLINE_PAD }, - { 16, 16, BITMAP_SCANLINE_PAD }, - { 24, 32, BITMAP_SCANLINE_PAD }, - { 32, 32, BITMAP_SCANLINE_PAD }, -}; -static int g_numFormats = 7; -static miPointerSpriteFuncRec g_rdpSpritePointerFuncs = -{ - /* these are in rdpinput.c */ - rdpSpriteRealizeCursor, - rdpSpriteUnrealizeCursor, - rdpSpriteSetCursor, - rdpSpriteMoveCursor, - rdpSpriteDeviceCursorInitialize, - rdpSpriteDeviceCursorCleanup -}; -static miPointerScreenFuncRec g_rdpPointerCursorFuncs = -{ - /* these are in rdpinput.c */ - rdpCursorOffScreen, - rdpCrossScreen, - rdpPointerWarpCursor, - rdpPointerEnqueueEvent, - rdpPointerNewEventScreen -}; - -int glGetBufferSubData(void); - -/******************************************************************************/ -/* returns error, zero is good */ -static int -set_bpp(int bpp) -{ - int rv; - - rv = 0; - g_bpp = bpp; - - if (g_bpp == 8) - { - g_Bpp = 1; - g_Bpp_mask = 0xff; - g_redBits = 3; - g_greenBits = 3; - g_blueBits = 2; - } - else if (g_bpp == 15) - { - g_Bpp = 2; - g_Bpp_mask = 0x7fff; - g_redBits = 5; - g_greenBits = 5; - g_blueBits = 5; - } - else if (g_bpp == 16) - { - g_Bpp = 2; - g_Bpp_mask = 0xffff; - g_redBits = 5; - g_greenBits = 6; - g_blueBits = 5; - } - else if (g_bpp == 24) - { - g_Bpp = 4; - g_Bpp_mask = 0xffffff; - g_redBits = 8; - g_greenBits = 8; - g_blueBits = 8; - } - else if (g_bpp == 32) - { - g_Bpp = 4; - g_Bpp_mask = 0xffffff; - g_redBits = 8; - g_greenBits = 8; - g_blueBits = 8; - } - else if (g_bpp == 33) - { - /* will never happen */ - glGetBufferSubData(); - } - else - { - rv = 1; - } - - return rv; -} - -/******************************************************************************/ -static void -rdpWakeupHandler(int i, pointer blockData, unsigned long err, - pointer pReadmask) -{ - g_pScreen->WakeupHandler = g_rdpScreen.WakeupHandler; - g_pScreen->WakeupHandler(i, blockData, err, pReadmask); - g_pScreen->WakeupHandler = rdpWakeupHandler; -} - -/******************************************************************************/ -static void -rdpBlockHandler1(pointer blockData, OSTimePtr pTimeout, pointer pReadmask) -{ -} - -/******************************************************************************/ -static void -rdpWakeupHandler1(pointer blockData, int result, pointer pReadmask) -{ - rdpup_check(); -} - -#if 0 -/******************************************************************************/ -static Bool -rdpDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen) -{ - ErrorF("rdpDeviceCursorInitializeProcPtr:\n"); - return 1; -} - -/******************************************************************************/ -static void -rdpDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen) -{ - ErrorF("rdpDeviceCursorCleanupProcPtr:\n"); -} -#endif - -#if 0 -/******************************************************************************/ -Bool -rdpCreateColormap(ColormapPtr pCmap) -{ - ErrorF("rdpCreateColormap:\n"); - return 1; -} - -/******************************************************************************/ -static void -rdpDestroyColormap(ColormapPtr pColormap) -{ - ErrorF("rdpDestroyColormap:\n"); -} -#endif - -/******************************************************************************/ -void -rdpSetUDSRights(void) -{ - char unixSocketName[128]; - - sprintf(unixSocketName, "/tmp/.X11-unix/X%s", display); - chmod(unixSocketName, 0700); -} - -/******************************************************************************/ -/* returns boolean, true if everything is ok */ -static Bool -rdpScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) -{ - int dpix; - int dpiy; - int ret; - Bool vis_found; - VisualPtr vis; - PictureScreenPtr ps; - rrScrPrivPtr pRRScrPriv; - - g_pScreen = pScreen; - memset(&g_screenPriv, 0, sizeof(g_screenPriv)); - - /*dpix = 75; - dpiy = 75; */ - dpix = PixelDPI; - dpiy = PixelDPI; - - if (monitorResolution != 0) - { - dpix = monitorResolution; - dpiy = monitorResolution; - } - - g_rdpScreen.paddedWidthInBytes = PixmapBytePad(g_rdpScreen.width, - g_rdpScreen.depth); - g_rdpScreen.bitsPerPixel = rdpBitsPerPixel(g_rdpScreen.depth); - ErrorF("\n"); - ErrorF("X11rdp, an X server for xrdp\n"); - ErrorF("Version %s\n", X11RDPVER); - ErrorF("Copyright (C) 2005-2015 Jay Sorg\n"); - ErrorF("See http://www.xrdp.org for information on xrdp.\n"); -#if defined(XORG_VERSION_CURRENT) && defined (XVENDORNAME) - ErrorF("Underlying X server release %d, %s\n", - XORG_VERSION_CURRENT, XVENDORNAME); -#endif -#if defined(XORG_RELEASE) - ErrorF("Xorg %s\n", XORG_RELEASE); -#endif - ErrorF("Screen width %d height %d depth %d bpp %d\n", g_rdpScreen.width, - g_rdpScreen.height, g_rdpScreen.depth, g_rdpScreen.bitsPerPixel); - ErrorF("dpix %d dpiy %d\n", dpix, dpiy); - - if (g_rdpScreen.pfbMemory == 0) - { - g_rdpScreen.sizeInBytes = - (g_rdpScreen.paddedWidthInBytes * g_rdpScreen.height); - ErrorF("buffer size %d\n", g_rdpScreen.sizeInBytes); - g_rdpScreen.pfbMemory = (char *)g_malloc(g_rdpScreen.sizeInBytes, 1); - g_rdpScreen.sizeInBytesAlloc = g_rdpScreen.sizeInBytes; - } - - if (g_rdpScreen.pfbMemory == 0) - { - rdpLog("rdpScreenInit g_malloc failed\n"); - return 0; - } - - miClearVisualTypes(); - - if (defaultColorVisualClass == -1) - { - defaultColorVisualClass = TrueColor; - } - - if (!miSetVisualTypes(g_rdpScreen.depth, - miGetDefaultVisualMask(g_rdpScreen.depth), - 8, defaultColorVisualClass)) - { - rdpLog("rdpScreenInit miSetVisualTypes failed\n"); - return 0; - } - - miSetPixmapDepths(); - - switch (g_rdpScreen.bitsPerPixel) - { - case 8: - ret = fbScreenInit(pScreen, g_rdpScreen.pfbMemory, - g_rdpScreen.width, g_rdpScreen.height, - dpix, dpiy, g_rdpScreen.paddedWidthInBytes, 8); - break; - case 16: - ret = fbScreenInit(pScreen, g_rdpScreen.pfbMemory, - g_rdpScreen.width, g_rdpScreen.height, - dpix, dpiy, g_rdpScreen.paddedWidthInBytes / 2, 16); - break; - case 32: - ret = fbScreenInit(pScreen, g_rdpScreen.pfbMemory, - g_rdpScreen.width, g_rdpScreen.height, - dpix, dpiy, g_rdpScreen.paddedWidthInBytes / 4, 32); - break; - default: - ErrorF("rdpScreenInit: error\n"); - return 0; - } - - if (!ret) - { - ErrorF("rdpScreenInit: error\n"); - return 0; - } - - miInitializeBackingStore(pScreen); - - /* this is for rgb, not bgr, just doing rgb for now */ - vis = g_pScreen->visuals + (g_pScreen->numVisuals - 1); - - while (vis >= pScreen->visuals) - { - if ((vis->class | DynamicClass) == DirectColor) - { - vis->offsetBlue = 0; - vis->blueMask = (1 << g_blueBits) - 1; - vis->offsetGreen = g_blueBits; - vis->greenMask = ((1 << g_greenBits) - 1) << vis->offsetGreen; - vis->offsetRed = g_blueBits + g_greenBits; - vis->redMask = ((1 << g_redBits) - 1) << vis->offsetRed; - } - - vis--; - } - - if (g_rdpScreen.bitsPerPixel > 4) - { - fbPictureInit(pScreen, 0, 0); - } - - if (!dixRegisterPrivateKey(&g_rdpGCIndex, PRIVATE_GC, sizeof(rdpGCRec))) - { - FatalError("rdpScreenInit: dixRegisterPrivateKey PRIVATE_GC failed\n"); - } - - if (!dixRegisterPrivateKey(&g_rdpWindowIndex, PRIVATE_WINDOW, sizeof(rdpWindowRec))) - { - FatalError("rdpScreenInit: dixRegisterPrivateKey PRIVATE_WINDOW failed\n"); - } - - if (!dixRegisterPrivateKey(&g_rdpPixmapIndex, PRIVATE_PIXMAP, sizeof(rdpPixmapRec))) - { - FatalError("rdpScreenInit: dixRegisterPrivateKey PRIVATE_PIXMAP failed\n"); - } - - /* Random screen procedures */ - g_rdpScreen.CloseScreen = pScreen->CloseScreen; - /* GC procedures */ - g_rdpScreen.CreateGC = pScreen->CreateGC; - /* Pixmap procedures */ - g_rdpScreen.CreatePixmap = pScreen->CreatePixmap; - g_rdpScreen.DestroyPixmap = pScreen->DestroyPixmap; - - /* Window Procedures */ - g_rdpScreen.CreateWindow = pScreen->CreateWindow; - g_rdpScreen.DestroyWindow = pScreen->DestroyWindow; - g_rdpScreen.ChangeWindowAttributes = pScreen->ChangeWindowAttributes; - g_rdpScreen.RealizeWindow = pScreen->RealizeWindow; - g_rdpScreen.UnrealizeWindow = pScreen->UnrealizeWindow; - g_rdpScreen.PositionWindow = pScreen->PositionWindow; - g_rdpScreen.WindowExposures = pScreen->WindowExposures; - g_rdpScreen.CopyWindow = pScreen->CopyWindow; - g_rdpScreen.ClearToBackground = pScreen->ClearToBackground; - - /* Backing store procedures */ - g_rdpScreen.RestoreAreas = pScreen->RestoreAreas; - g_rdpScreen.WakeupHandler = pScreen->WakeupHandler; - - g_rdpScreen.CreateColormap = pScreen->CreateColormap; - g_rdpScreen.DestroyColormap = pScreen->DestroyColormap; - - ps = GetPictureScreenIfSet(pScreen); - - if (ps) - { - g_rdpScreen.CreatePicture = ps->CreatePicture; - g_rdpScreen.DestroyPicture = ps->DestroyPicture; - g_rdpScreen.Composite = ps->Composite; - g_rdpScreen.Glyphs = ps->Glyphs; - - } - - pScreen->blackPixel = g_rdpScreen.blackPixel; - pScreen->whitePixel = g_rdpScreen.whitePixel; - /* Random screen procedures */ - pScreen->CloseScreen = rdpCloseScreen; - pScreen->WakeupHandler = rdpWakeupHandler; - - if (ps) - { - ps->CreatePicture = rdpCreatePicture; - ps->DestroyPicture = rdpDestroyPicture; - ps->Composite = rdpComposite; - ps->Glyphs = rdpGlyphs; - } - - pScreen->SaveScreen = rdpSaveScreen; - /* GC procedures */ - pScreen->CreateGC = rdpCreateGC; - - if (g_wrapPixmap) - { - /* Pixmap procedures */ - pScreen->CreatePixmap = rdpCreatePixmap; - pScreen->DestroyPixmap = rdpDestroyPixmap; - } - - if (g_wrapWindow) - { - /* Window Procedures */ - pScreen->CreateWindow = rdpCreateWindow; - pScreen->DestroyWindow = rdpDestroyWindow; - pScreen->ChangeWindowAttributes = rdpChangeWindowAttributes; - pScreen->RealizeWindow = rdpRealizeWindow; - pScreen->UnrealizeWindow = rdpUnrealizeWindow; - pScreen->PositionWindow = rdpPositionWindow; - pScreen->WindowExposures = rdpWindowExposures; - } - - pScreen->CopyWindow = rdpCopyWindow; - pScreen->ClearToBackground = rdpClearToBackground; - - /* Backing store procedures */ - pScreen->RestoreAreas = rdpRestoreAreas; - -#if 0 - pScreen->CreateColormap = rdpCreateColormap; - pScreen->DestroyColormap = rdpDestroyColormap; -#endif - - miPointerInitialize(pScreen, &g_rdpSpritePointerFuncs, - &g_rdpPointerCursorFuncs, 1); - -#if 0 - pScreen->DeviceCursorInitialize = rdpDeviceCursorInitialize; - pScreen->DeviceCursorCleanup = rdpDeviceCursorCleanup; -#endif - - vis_found = 0; - vis = g_pScreen->visuals + (g_pScreen->numVisuals - 1); - - while (vis >= pScreen->visuals) - { - if (vis->vid == pScreen->rootVisual) - { - vis_found = 1; - } - - vis--; - } - - if (!vis_found) - { - rdpLog("rdpScreenInit: couldn't find root visual\n"); - exit(1); - } - - ret = 1; - - if (ret) - { - ret = fbCreateDefColormap(pScreen); - - if (!ret) - { - ErrorF("rdpScreenInit: fbCreateDefColormap failed\n"); - } - } - - if (ret) - { - ret = rdpup_init(); - - if (!ret) - { - ErrorF("rdpScreenInit: rdpup_init failed\n"); - } - } - - if (ret) - { - RegisterBlockAndWakeupHandlers(rdpBlockHandler1, rdpWakeupHandler1, NULL); - } - - if (!RRScreenInit(pScreen)) - { - ErrorF("rdpmain.c: RRScreenInit: screen init failed\n"); - } - else - { - pRRScrPriv = rrGetScrPriv(pScreen); - ErrorF("pRRScrPriv %p\n", pRRScrPriv); - - pRRScrPriv->rrSetConfig = rdpRRSetConfig; - - pRRScrPriv->rrGetInfo = rdpRRGetInfo; - - pRRScrPriv->rrScreenSetSize = rdpRRScreenSetSize; - pRRScrPriv->rrCrtcSet = rdpRRCrtcSet; - pRRScrPriv->rrCrtcGetGamma = rdpRRCrtcGetGamma; - pRRScrPriv->rrCrtcSetGamma = rdpRRCrtcSetGamma; - pRRScrPriv->rrOutputSetProperty = rdpRROutputSetProperty; - pRRScrPriv->rrOutputValidateMode = rdpRROutputValidateMode; - pRRScrPriv->rrModeDestroy = rdpRRModeDestroy; - - pRRScrPriv->rrOutputGetProperty = rdpRROutputGetProperty; - pRRScrPriv->rrGetPanning = rdpRRGetPanning; - pRRScrPriv->rrSetPanning = rdpRRSetPanning; - - } - - rdpGlyphInit(); - - //rdpXvInit(pScreen); - - rdpSetUDSRights(); - - ErrorF("rdpScreenInit: ret %d\n", ret); - - return ret; -} - -/******************************************************************************/ -/* this is the first function called, it can be called many times - returns the number or parameters processed - if it doesn't apply to the rdp part, return 0 */ -int -ddxProcessArgument(int argc, char **argv, int i) -{ - if (g_firstTime) - { - memset(&g_rdpScreen, 0, sizeof(g_rdpScreen)); - g_rdpScreen.width = 1024; - g_rdpScreen.height = 768; - g_rdpScreen.depth = 24; - set_bpp(24); - g_rdpScreen.blackPixel = 1; - g_firstTime = 0; - RRExtensionInit(); - } - - if (strcmp(argv[i], "-geometry") == 0) - { - if (i + 1 >= argc) - { - UseMsg(); - } - - if (sscanf(argv[i + 1], "%dx%d", &g_rdpScreen.width, - &g_rdpScreen.height) != 2) - { - ErrorF("Invalid geometry %s\n", argv[i + 1]); - UseMsg(); - } - - return 2; - } - - if (strcmp(argv[i], "-depth") == 0) - { - if (i + 1 >= argc) - { - UseMsg(); - } - - g_rdpScreen.depth = atoi(argv[i + 1]); - - if (set_bpp(g_rdpScreen.depth) != 0) - { - UseMsg(); - } - - return 2; - } - - if (strcmp(argv[i], "-uds") == 0) - { - g_use_uds = 1; - return 1; - } - - return 0; -} - -/******************************************************************************/ -void -OsVendorInit(void) -{ -#if XRDP_DISABLE_LINUX_ABSTRACT - /* turn off the Linux abstract unix domain sockets TRANS_ABSTRACT */ - /* TRANS_NOLISTEN = 1 << 3 */ - _XSERVTransSocketLocalFuncs.flags = 0; -#endif -} - -/******************************************************************************/ -/* ddxInitGlobals - called by |InitGlobals| from os/util.c */ -void -ddxInitGlobals(void) -{ -} - -/******************************************************************************/ -int -XkbDDXSwitchScreen(DeviceIntPtr dev, KeyCode key, XkbAction *act) -{ - ErrorF("XkbDDXSwitchScreen:\n"); - return 1; -} - -/******************************************************************************/ -int -XkbDDXPrivate(DeviceIntPtr dev, KeyCode key, XkbAction *act) -{ - ErrorF("XkbDDXPrivate:\n"); - return 0; -} - -/******************************************************************************/ -int -XkbDDXTerminateServer(DeviceIntPtr dev, KeyCode key, XkbAction *act) -{ - ErrorF("XkbDDXTerminateServer:\n"); - GiveUp(1); - return 0; -} - -/******************************************************************************/ -/* InitOutput is called every time the server resets. It should call - AddScreen for each screen (but we only ever have one), and in turn this - will call rdpScreenInit. */ -void -InitOutput(ScreenInfo *screenInfo, int argc, char **argv) -{ - int i; - - ErrorF("InitOutput:\n"); - g_initOutputCalled = 1; - /* initialize pixmap formats */ - screenInfo->imageByteOrder = IMAGE_BYTE_ORDER; - screenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; - screenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD; - screenInfo->bitmapBitOrder = BITMAP_BIT_ORDER; - screenInfo->numPixmapFormats = g_numFormats; - - for (i = 0; i < g_numFormats; i++) - { - screenInfo->formats[i] = g_formats[i]; - } - - if (!AddCallback(&ClientStateCallback, rdpClientStateChange, NULL)) - { - rdpLog("InitOutput: AddCallback failed\n"); - return; - } - - /* initialize screen */ - if (AddScreen(rdpScreenInit, argc, argv) == -1) - { - FatalError("Couldn't add screen\n"); - } - - ErrorF("InitOutput: out\n"); -} - -/******************************************************************************/ -void -InitInput(int argc, char **argv) -{ - int rc; - - ErrorF("InitInput:\n"); - rc = AllocDevicePair(serverClient, "X11rdp", &g_pointer, &g_keyboard, - rdpMouseProc, rdpKeybdProc, 0); - - if (rc != Success) - { - FatalError("Failed to init X11rdp default devices.\n"); - } - - mieqInit(); - -} - -/******************************************************************************/ -void -ddxGiveUp(void) -{ - char unixSocketName[128]; - - ErrorF("ddxGiveUp:\n"); - g_free(g_rdpScreen.pfbMemory); - - if (g_initOutputCalled) - { - sprintf(unixSocketName, "/tmp/.X11-unix/X%s", display); - unlink(unixSocketName); - sprintf(unixSocketName, "%s/xrdp_disconnect_display_%s", - g_socket_dir(), display); - unlink(unixSocketName); - - if (g_uds_data[0] != 0) - { - unlink(g_uds_data); - } - } -} - -/******************************************************************************/ -Bool -LegalModifier(unsigned int key, DeviceIntPtr pDev) -{ - return 1; /* true */ -} - -/******************************************************************************/ -void -ProcessInputEvents(void) -{ - mieqProcessInputEvents(); -} - -/******************************************************************************/ -/* needed for some reason? todo - needs to be rfb */ -void -rfbRootPropertyChange(PropertyPtr pProp) -{ -} - -/******************************************************************************/ -void -AbortDDX(void) -{ - ddxGiveUp(); -} - -/******************************************************************************/ -void -OsVendorFatalError(void) -{ -} - -/******************************************************************************/ -/* print the command list parameters and exit the program */ -void -ddxUseMsg(void) -{ - ErrorF("\n"); - ErrorF("X11rdp specific options\n"); - ErrorF("-geometry WxH set framebuffer width & height\n"); - ErrorF("-depth D set framebuffer depth\n"); - ErrorF("-uds create and listen on xrdp_display_x\n"); - ErrorF("\n"); - exit(1); -} - -/******************************************************************************/ -void -OsVendorPreInit(void) -{ -} - -/******************************************************************************/ -void -CloseInput(void) -{ - ErrorF("CloseInput\n"); -} - -/******************************************************************************/ -void -DDXRingBell(int volume, int pitch, int duration) -{ - ErrorF("DDXRingBell\n"); -} - -/******************************************************************************/ -void -DeleteInputDeviceRequest(DeviceIntPtr dev) -{ - ErrorF("DeleteInputDeviceRequest\n"); -} diff --git a/xorg/X11R7.6/rdp/rdpmisc.c b/xorg/X11R7.6/rdp/rdpmisc.c deleted file mode 100644 index 4e0eca3c..00000000 --- a/xorg/X11R7.6/rdp/rdpmisc.c +++ /dev/null @@ -1,696 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -the rest - -*/ - -#include "rdp.h" - -#include - -Bool noFontCacheExtension = 1; - -static int g_crc_seed = 0xffffffff; -static int g_crc_table[256] = -{ - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d -}; - -#define CRC_START(in_crc) (in_crc) = g_crc_seed -#define CRC_PASS(in_pixel, in_crc) \ - (in_crc) = g_crc_table[((in_crc) ^ (in_pixel)) & 0xff] ^ ((in_crc) >> 8) -#define CRC_END(in_crc) (in_crc) = ((in_crc) ^ g_crc_seed) - -/******************************************************************************/ -/* print a time-stamped message to the log file (stderr). */ -void -rdpLog(char *format, ...) -{ - va_list args; - char buf[256]; - time_t clock; - - va_start(args, format); - time(&clock); - strftime(buf, 255, "%d/%m/%y %T ", localtime(&clock)); - fprintf(stderr, "%s", buf); - vfprintf(stderr, format, args); - fflush(stderr); - va_end(args); -} - -/******************************************************************************/ -int -rdpBitsPerPixel(int depth) -{ - if (depth == 1) - { - return 1; - } - else if (depth <= 8) - { - return 8; - } - else if (depth <= 16) - { - return 16; - } - else - { - return 32; - } -} - -/******************************************************************************/ -void -rdpClientStateChange(CallbackListPtr *cbl, pointer myData, pointer clt) -{ - dispatchException &= ~DE_RESET; /* hack - force server not to reset */ -} - -/******************************************************************************/ -int -DPMSSupported(void) -{ - return 0; -} - -/******************************************************************************/ -int -DPSMGet(int *level) -{ - return -1; -} - -/******************************************************************************/ -void -DPMSSet(int level) -{ -} - -/******************************************************************************/ -void -AddOtherInputDevices(void) -{ -} - -/******************************************************************************/ -void -OpenInputDevice(DeviceIntPtr dev, ClientPtr client, int *status) -{ -} - -/******************************************************************************/ -int -SetDeviceValuators(register ClientPtr client, DeviceIntPtr dev, - int *valuators, int first_valuator, int num_valuators) -{ - return BadMatch; -} - -/******************************************************************************/ -int -SetDeviceMode(register ClientPtr client, DeviceIntPtr dev, int mode) -{ - return BadMatch; -} - -/******************************************************************************/ -int -ChangeKeyboardDevice(DeviceIntPtr old_dev, DeviceIntPtr new_dev) -{ - return BadMatch; -} - -/******************************************************************************/ -int -ChangeDeviceControl(register ClientPtr client, DeviceIntPtr dev, - void *control) -{ - return BadMatch; -} - -/******************************************************************************/ -int -ChangePointerDevice(DeviceIntPtr old_dev, DeviceIntPtr new_dev, - unsigned char x, unsigned char y) -{ - return BadMatch; -} - -/******************************************************************************/ -void -CloseInputDevice(DeviceIntPtr d, ClientPtr client) -{ -} - -/* the g_ functions from os_calls.c */ - -/*****************************************************************************/ -int -g_tcp_recv(int sck, void *ptr, int len, int flags) -{ - return recv(sck, ptr, len, flags); -} - -/*****************************************************************************/ -void -g_tcp_close(int sck) -{ - if (sck == 0) - { - return; - } - - shutdown(sck, 2); - close(sck); -} - -/*****************************************************************************/ -int -g_tcp_last_error_would_block(int sck) -{ - return (errno == EWOULDBLOCK) || (errno == EINPROGRESS); -} - -/*****************************************************************************/ -void -g_sleep(int msecs) -{ - usleep(msecs * 1000); -} - -/*****************************************************************************/ -int -g_tcp_send(int sck, void *ptr, int len, int flags) -{ - return send(sck, ptr, len, flags); -} - -/*****************************************************************************/ -void * -g_malloc(int size, int zero) -{ - char *rv; - - //#ifdef _XSERVER64 -#if 1 - /* I thought xalloc would work here but I guess not, why, todo */ - rv = (char *)malloc(size); -#else - rv = (char *)Xalloc(size); -#endif - - if (zero) - { - if (rv != 0) - { - memset(rv, 0, size); - } - } - - return rv; -} - -/*****************************************************************************/ -void -g_free(void *ptr) -{ - if (ptr != 0) - { - //#ifdef _XSERVER64 -#if 1 - /* I thought xfree would work here but I guess not, why, todo */ - free(ptr); -#else - Xfree(ptr); -#endif - } -} - -/*****************************************************************************/ -void -g_sprintf(char *dest, char *format, ...) -{ - va_list ap; - - va_start(ap, format); - vsprintf(dest, format, ap); - va_end(ap); -} - -/*****************************************************************************/ -int -g_tcp_socket(void) -{ - int rv; - int i; - - i = 1; - rv = socket(PF_INET, SOCK_STREAM, 0); - setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (void *)&i, sizeof(i)); - setsockopt(rv, SOL_SOCKET, SO_REUSEADDR, (void *)&i, sizeof(i)); - return rv; -} - -/*****************************************************************************/ -int -g_tcp_local_socket_dgram(void) -{ - return socket(AF_UNIX, SOCK_DGRAM, 0); -} - -/*****************************************************************************/ -int -g_tcp_local_socket_stream(void) -{ - return socket(AF_UNIX, SOCK_STREAM, 0); -} - -/*****************************************************************************/ -void -g_memcpy(void *d_ptr, const void *s_ptr, int size) -{ - memcpy(d_ptr, s_ptr, size); -} - -/*****************************************************************************/ -int -g_tcp_set_no_delay(int sck) -{ - int i; - - i = 1; - setsockopt(sck, IPPROTO_TCP, TCP_NODELAY, (void *)&i, sizeof(i)); - return 0; -} - -/*****************************************************************************/ -int -g_tcp_set_non_blocking(int sck) -{ - unsigned long i; - - i = fcntl(sck, F_GETFL); - i = i | O_NONBLOCK; - fcntl(sck, F_SETFL, i); - return 0; -} - -/*****************************************************************************/ -int -g_tcp_accept(int sck) -{ - struct sockaddr_in s; - unsigned int i; - - i = sizeof(struct sockaddr_in); - memset(&s, 0, i); - return accept(sck, (struct sockaddr *)&s, &i); -} - -/*****************************************************************************/ -int -g_tcp_select(int sck1, int sck2, int sck3) -{ - fd_set rfds; - struct timeval time; - int max; - int rv; - - time.tv_sec = 0; - time.tv_usec = 0; - FD_ZERO(&rfds); - - if (sck1 > 0) - { - FD_SET(((unsigned int)sck1), &rfds); - } - - if (sck2 > 0) - { - FD_SET(((unsigned int)sck2), &rfds); - } - - if (sck3 > 0) - { - FD_SET(((unsigned int)sck3), &rfds); - } - - max = sck1; - - if (sck2 > max) - { - max = sck2; - } - - if (sck3 > max) - { - max = sck3; - } - - rv = select(max + 1, &rfds, 0, 0, &time); - - if (rv > 0) - { - rv = 0; - - if (FD_ISSET(((unsigned int)sck1), &rfds)) - { - rv = rv | 1; - } - - if (FD_ISSET(((unsigned int)sck2), &rfds)) - { - rv = rv | 2; - } - - if (FD_ISSET(((unsigned int)sck3), &rfds)) - { - rv = rv | 4; - } - } - else - { - rv = 0; - } - - return rv; -} - -/*****************************************************************************/ -int -g_tcp_bind(int sck, char *port) -{ - struct sockaddr_in s; - - memset(&s, 0, sizeof(struct sockaddr_in)); - s.sin_family = AF_INET; - s.sin_port = htons(atoi(port)); - s.sin_addr.s_addr = INADDR_ANY; - return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_in)); -} - -/*****************************************************************************/ -int -g_tcp_local_bind(int sck, char *port) -{ - struct sockaddr_un s; - - memset(&s, 0, sizeof(struct sockaddr_un)); - s.sun_family = AF_UNIX; - strcpy(s.sun_path, port); - return bind(sck, (struct sockaddr *)&s, sizeof(struct sockaddr_un)); -} - -/*****************************************************************************/ -int -g_tcp_listen(int sck) -{ - return listen(sck, 2); -} - -/*****************************************************************************/ -/* returns boolean */ -int -g_create_dir(const char *dirname) -{ - return mkdir(dirname, (mode_t) - 1) == 0; -} - -/*****************************************************************************/ -/* returns boolean, non zero if the directory exists */ -int -g_directory_exist(const char *dirname) -{ - struct stat st; - - if (stat(dirname, &st) == 0) - { - return S_ISDIR(st.st_mode); - } - else - { - return 0; - } -} - -/*****************************************************************************/ -/* returns error */ -int -g_chmod_hex(const char *filename, int flags) -{ - int fl; - - fl = 0; - fl |= (flags & 0x4000) ? S_ISUID : 0; - fl |= (flags & 0x2000) ? S_ISGID : 0; - fl |= (flags & 0x1000) ? S_ISVTX : 0; - fl |= (flags & 0x0400) ? S_IRUSR : 0; - fl |= (flags & 0x0200) ? S_IWUSR : 0; - fl |= (flags & 0x0100) ? S_IXUSR : 0; - fl |= (flags & 0x0040) ? S_IRGRP : 0; - fl |= (flags & 0x0020) ? S_IWGRP : 0; - fl |= (flags & 0x0010) ? S_IXGRP : 0; - fl |= (flags & 0x0004) ? S_IROTH : 0; - fl |= (flags & 0x0002) ? S_IWOTH : 0; - fl |= (flags & 0x0001) ? S_IXOTH : 0; - return chmod(filename, fl); -} - -/*****************************************************************************/ -/* returns directory where UNIX sockets are located */ -const char * -g_socket_dir(void) -{ - const char *socket_dir; - - socket_dir = getenv("XRDP_SOCKET_PATH"); - if (socket_dir == NULL || socket_dir[0] == '\0') - { - socket_dir = "/tmp/.xrdp"; - } - - return socket_dir; -} - -/* produce a hex dump */ -void -hexdump(unsigned char *p, unsigned int len) -{ - unsigned char *line; - int i; - int thisline; - int offset; - - offset = 0; - line = p; - - while (offset < len) - { - ErrorF("%04x ", offset); - thisline = len - offset; - - if (thisline > 16) - { - thisline = 16; - } - - for (i = 0; i < thisline; i++) - { - ErrorF("%02x ", line[i]); - } - - for (; i < 16; i++) - { - ErrorF(" "); - } - - for (i = 0; i < thisline; i++) - { - ErrorF("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.'); - } - - ErrorF("\n"); - offset += thisline; - line += thisline; - } -} - -/* - stub for XpClient* functions. -*/ - -/*****************************************************************************/ -Bool -XpClientIsBitmapClient(ClientPtr client) -{ - return 1; -} - -/*****************************************************************************/ -Bool -XpClientIsPrintClient(ClientPtr client, FontPathElementPtr fpe) -{ - return 0; -} - -/*****************************************************************************/ -int -PrinterOptions(int argc, char **argv, int i) -{ - return i; -} - -/*****************************************************************************/ -void -PrinterInitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) -{ -} - -/*****************************************************************************/ -void -PrinterUseMsg(void) -{ -} - -/*****************************************************************************/ -void -PrinterInitGlobals(void) -{ -} - -/*****************************************************************************/ -void -FontCacheExtensionInit(INITARGS) -{ -} - -/******************************************************************************/ -void -RegionAroundSegs(RegionPtr reg, xSegment *segs, int nseg) -{ - int index; - BoxRec box; - RegionRec treg; - - index = 0; - - while (index < nseg) - { - if (segs[index].x1 < segs[index].x2) - { - box.x1 = segs[index].x1; - box.x2 = segs[index].x2; - } - else - { - box.x1 = segs[index].x2; - box.x2 = segs[index].x1; - } - - box.x2++; - - if (segs[index].y1 < segs[index].y2) - { - box.y1 = segs[index].y1; - box.y2 = segs[index].y2; - } - else - { - box.y1 = segs[index].y2; - box.y2 = segs[index].y1; - } - - box.y2++; - RegionInit(&treg, &box, 0); - RegionUnion(reg, reg, &treg); - RegionUninit(&treg); - index++; - } -} - -/******************************************************************************/ -int -get_crc(char* data, int data_bytes) -{ - int crc; - int index; - - CRC_START(crc); - for (index = 0; index < data_bytes; index++) - { - CRC_PASS(data[index], crc); - } - CRC_END(crc); - return crc; -} - -/*****************************************************************************/ -int -get_mstime(void) -{ - struct timeval tp; - - gettimeofday(&tp, 0); - return (tp.tv_sec * 1000) + (tp.tv_usec / 1000); -} diff --git a/xorg/X11R7.6/rdp/rdprandr.c b/xorg/X11R7.6/rdp/rdprandr.c deleted file mode 100644 index 664a2244..00000000 --- a/xorg/X11R7.6/rdp/rdprandr.c +++ /dev/null @@ -1,456 +0,0 @@ -/* -Copyright 2011-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -RandR extension implementation - -*/ - -#include "rdp.h" -#include "rdprandr.h" - -#if 1 -#define DEBUG_OUT(arg) -#else -#define DEBUG_OUT(arg) ErrorF arg -#endif - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern DeviceIntPtr g_pointer; /* in rdpmain.c */ -extern DeviceIntPtr g_keyboard; /* in rdpmain.c */ -extern ScreenPtr g_pScreen; /* in rdpmain.c */ -extern WindowPtr g_invalidate_window; /* in rdpmain.c */ - -static XID g_wid = 0; - -static int g_panning = 0; - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -/******************************************************************************/ -Bool -rdpRRRegisterSize(ScreenPtr pScreen, int width, int height) -{ - int mmwidth; - int mmheight; - RRScreenSizePtr pSize; - - ErrorF("rdpRRRegisterSize: width %d height %d\n", width, height); - mmwidth = PixelToMM(width); - mmheight = PixelToMM(height); - pSize = RRRegisterSize(pScreen, width, height, mmwidth, mmheight); - /* Tell RandR what the current config is */ - RRSetCurrentConfig(pScreen, RR_Rotate_0, 0, pSize); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRSetConfig(ScreenPtr pScreen, Rotation rotateKind, int rate, - RRScreenSizePtr pSize) -{ - ErrorF("rdpRRSetConfig:\n"); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRGetInfo(ScreenPtr pScreen, Rotation *pRotations) -{ - ErrorF("rdpRRGetInfo:\n"); - *pRotations = RR_Rotate_0; - return TRUE; -} - -/******************************************************************************/ -/* for lack of a better way, a window is created that covers the area and - when its deleted, it's invalidated */ -static int -rdpInvalidateArea(ScreenPtr pScreen, int x, int y, int cx, int cy) -{ - WindowPtr pWin; - int result; - int attri; - XID attributes[4]; - Mask mask; - - DEBUG_OUT(("rdpInvalidateArea:\n")); - mask = 0; - attri = 0; - attributes[attri++] = pScreen->blackPixel; - mask |= CWBackPixel; - attributes[attri++] = xTrue; - mask |= CWOverrideRedirect; - - if (g_wid == 0) - { - g_wid = FakeClientID(0); - } - - pWin = CreateWindow(g_wid, pScreen->root, - x, y, cx, cy, 0, InputOutput, mask, - attributes, 0, serverClient, - wVisual(pScreen->root), &result); - - if (result == 0) - { - g_invalidate_window = pWin; - MapWindow(pWin, serverClient); - DeleteWindow(pWin, None); - g_invalidate_window = pWin; - } - - return 0; -} - -/******************************************************************************/ -Bool -rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height, - CARD32 mmWidth, CARD32 mmHeight) -{ - PixmapPtr screenPixmap; - BoxRec box; - - ErrorF("rdpRRScreenSetSize: width %d height %d mmWidth %d mmHeight %d\n", - width, height, (int)mmWidth, (int)mmHeight); - - if ((width < 1) || (height < 1)) - { - ErrorF(" error width %d height %d\n", width, height); - return FALSE; - } - - g_rdpScreen.width = width; - g_rdpScreen.height = height; - g_rdpScreen.paddedWidthInBytes = - PixmapBytePad(g_rdpScreen.width, g_rdpScreen.depth); - g_rdpScreen.sizeInBytes = - g_rdpScreen.paddedWidthInBytes * g_rdpScreen.height; - pScreen->width = width; - pScreen->height = height; - pScreen->mmWidth = mmWidth; - pScreen->mmHeight = mmHeight; - - screenPixmap = pScreen->GetScreenPixmap(pScreen); - - if (screenPixmap != 0) - { - ErrorF(" resizing screenPixmap [%p] to %dx%d, currently at %dx%d\n", - (void *)screenPixmap, width, height, - screenPixmap->drawable.width, screenPixmap->drawable.height); - if (g_rdpScreen.sizeInBytes > g_rdpScreen.sizeInBytesAlloc) - { - g_free(g_rdpScreen.pfbMemory); - g_rdpScreen.pfbMemory = (char*)g_malloc(g_rdpScreen.sizeInBytes, 1); - g_rdpScreen.sizeInBytesAlloc = g_rdpScreen.sizeInBytes; - ErrorF("new buffer size %d\n", g_rdpScreen.sizeInBytes); - } - pScreen->ModifyPixmapHeader(screenPixmap, width, height, - g_rdpScreen.depth, g_rdpScreen.bitsPerPixel, - g_rdpScreen.paddedWidthInBytes, - g_rdpScreen.pfbMemory); - ErrorF(" pixmap resized to %dx%d\n", - screenPixmap->drawable.width, screenPixmap->drawable.height); - } - - DEBUG_OUT((" root window %p\n", (void *)pScreen->root)); - box.x1 = 0; - box.y1 = 0; - box.x2 = width; - box.y2 = height; - RegionInit(&pScreen->root->winSize, &box, 1); - RegionInit(&pScreen->root->borderSize, &box, 1); - RegionReset(&pScreen->root->borderClip, &box); - RegionBreak(&pScreen->root->clipList); - pScreen->root->drawable.width = width; - pScreen->root->drawable.height = height; - ResizeChildrenWinSize(pScreen->root, 0, 0, 0, 0); - RRGetInfo(pScreen, 1); - RRScreenSizeNotify(pScreen); - rdpInvalidateArea(g_pScreen, 0, 0, g_rdpScreen.width, g_rdpScreen.height); - ErrorF(" screen resized to %dx%d\n", - pScreen->width, pScreen->height); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRCrtcSet(ScreenPtr pScreen, RRCrtcPtr crtc, RRModePtr mode, - int x, int y, Rotation rotation, int numOutputs, - RROutputPtr *outputs) -{ - ErrorF("rdpRRCrtcSet:\n"); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRCrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr crtc) -{ - ErrorF("rdpRRCrtcSetGamma:\n"); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRCrtcGetGamma(ScreenPtr pScreen, RRCrtcPtr crtc) -{ - ErrorF("rdpRRCrtcGetGamma:\n"); - crtc->gammaSize = 1; - if (crtc->gammaRed == NULL) - { - crtc->gammaRed = g_malloc(32, 1); - } - if (crtc->gammaBlue == NULL) - { - crtc->gammaBlue = g_malloc(32, 1); - } - if (crtc->gammaGreen == NULL) - { - crtc->gammaGreen = g_malloc(32, 1); - } - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRROutputSetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property, - RRPropertyValuePtr value) -{ - ErrorF("rdpRROutputSetProperty:\n"); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRROutputValidateMode(ScreenPtr pScreen, RROutputPtr output, - RRModePtr mode) -{ - ErrorF("rdpRROutputValidateMode:\n"); - return TRUE; -} - -/******************************************************************************/ -void -rdpRRModeDestroy(ScreenPtr pScreen, RRModePtr mode) -{ - ErrorF("rdpRRModeDestroy:\n"); -} - -/******************************************************************************/ -Bool -rdpRROutputGetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property) -{ - ErrorF("rdpRROutputGetProperty:\n"); - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRGetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea, - BoxPtr trackingArea, INT16 *border) -{ - ErrorF("rdpRRGetPanning:\n"); - - if (!g_panning) - { - return FALSE; - } - - if (totalArea != 0) - { - totalArea->x1 = 0; - totalArea->y1 = 0; - totalArea->x2 = g_rdpScreen.width; - totalArea->y2 = g_rdpScreen.height; - } - - if (trackingArea != 0) - { - trackingArea->x1 = 0; - trackingArea->y1 = 0; - trackingArea->x2 = g_rdpScreen.width; - trackingArea->y2 = g_rdpScreen.height; - } - - if (border != 0) - { - border[0] = 0; - border[1] = 0; - border[2] = 0; - border[3] = 0; - } - - return TRUE; -} - -/******************************************************************************/ -Bool -rdpRRSetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea, - BoxPtr trackingArea, INT16 *border) -{ - ErrorF("rdpRRSetPanning:\n"); - return TRUE; -} - -/******************************************************************************/ -static RROutputPtr -rdpRRAddOutput(const char *aname, int x, int y, int width, int height) -{ - RRModePtr mode; - RRCrtcPtr crtc; - RROutputPtr output; - xRRModeInfo modeInfo; - char name[64]; - const int vfreq = 50; - - sprintf (name, "%dx%d", width, height); - memset (&modeInfo, 0, sizeof(modeInfo)); - modeInfo.width = width; - modeInfo.height = height; - modeInfo.hTotal = width; - modeInfo.vTotal = height; - modeInfo.dotClock = vfreq * width * height; - modeInfo.nameLength = strlen(name); - mode = RRModeGet(&modeInfo, name); - if (mode == 0) - { - LLOGLN(0, ("rdpRRAddOutput: RRModeGet failed")); - return 0; - } - - crtc = RRCrtcCreate(g_pScreen, NULL); - if (crtc == 0) - { - LLOGLN(0, ("rdpRRAddOutput: RRCrtcCreate failed")); - RRModeDestroy(mode); - return 0; - } - output = RROutputCreate(g_pScreen, aname, strlen(aname), NULL); - if (output == 0) - { - LLOGLN(0, ("rdpRRAddOutput: RROutputCreate failed")); - RRCrtcDestroy(crtc); - RRModeDestroy(mode); - return 0; - } - if (!RROutputSetClones(output, NULL, 0)) - { - LLOGLN(0, ("rdpRRAddOutput: RROutputSetClones failed")); - } - if (!RROutputSetModes(output, &mode, 1, 0)) - { - LLOGLN(0, ("rdpRRAddOutput: RROutputSetModes failed")); - } - if (!RROutputSetCrtcs(output, &crtc, 1)) - { - LLOGLN(0, ("rdpRRAddOutput: RROutputSetCrtcs failed")); - } - if (!RROutputSetConnection(output, RR_Connected)) - { - LLOGLN(0, ("rdpRRAddOutput: RROutputSetConnection failed")); - } - RRCrtcNotify(crtc, mode, x, y, RR_Rotate_0, NULL, 1, &output); - - return output; -} - -/******************************************************************************/ -static void -RRSetPrimaryOutput(rrScrPrivPtr pScrPriv, RROutputPtr output) -{ - if (pScrPriv->primaryOutput == output) - { - return; - } - /* clear the old primary */ - if (pScrPriv->primaryOutput) - { - RROutputChanged(pScrPriv->primaryOutput, 0); - pScrPriv->primaryOutput = NULL; - } - /* set the new primary */ - if (output) - { - pScrPriv->primaryOutput = output; - RROutputChanged(output, 0); - } - pScrPriv->layoutChanged = TRUE; -} - -/******************************************************************************/ -int -rdpRRSetRdpOutputs(void) -{ - rrScrPrivPtr pRRScrPriv; - int index; - int width; - int height; - char text[256]; - RROutputPtr output; - - pRRScrPriv = rrGetScrPriv(g_pScreen); - - LLOGLN(0, ("rdpRRSetRdpOutputs: numCrtcs %d", pRRScrPriv->numCrtcs)); - while (pRRScrPriv->numCrtcs > 0) - { - RRCrtcDestroy(pRRScrPriv->crtcs[0]); - } - LLOGLN(0, ("rdpRRSetRdpOutputs: numOutputs %d", pRRScrPriv->numOutputs)); - while (pRRScrPriv->numOutputs > 0) - { - RROutputDestroy(pRRScrPriv->outputs[0]); - } - - if (g_rdpScreen.client_info.monitorCount == 0) - { - rdpRRAddOutput("rdp0", 0, 0, g_rdpScreen.width, g_rdpScreen.height); - } - else - { - for (index = 0; index < g_rdpScreen.client_info.monitorCount; index++) - { - snprintf(text, 255, "rdp%d", index); - width = g_rdpScreen.client_info.minfo[index].right - g_rdpScreen.client_info.minfo[index].left + 1; - height = g_rdpScreen.client_info.minfo[index].bottom - g_rdpScreen.client_info.minfo[index].top + 1; - output = rdpRRAddOutput(text, - g_rdpScreen.client_info.minfo[index].left, - g_rdpScreen.client_info.minfo[index].top, - width, height); - if ((output != 0) && (g_rdpScreen.client_info.minfo[index].is_primary)) - { - RRSetPrimaryOutput(pRRScrPriv, output); - } - } - } - -#if 0 - for (index = 0; index < pRRScrPriv->numOutputs; index++) - { - RROutputSetCrtcs(pRRScrPriv->outputs[index], pRRScrPriv->crtcs, - pRRScrPriv->numCrtcs); - } -#endif - - return 0; -} - diff --git a/xorg/X11R7.6/rdp/rdprandr.h b/xorg/X11R7.6/rdp/rdprandr.h deleted file mode 100644 index 1860fa96..00000000 --- a/xorg/X11R7.6/rdp/rdprandr.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2011-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#ifndef _RDPRANDR_H -#define _RDPRANDR_H - -Bool -rdpRRRegisterSize(ScreenPtr pScreen, int width, int height); -Bool -rdpRRGetInfo(ScreenPtr pScreen, Rotation* pRotations); -Bool -rdpRRSetConfig(ScreenPtr pScreen, Rotation rotateKind, int rate, - RRScreenSizePtr pSize); -Bool -rdpRRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height, - CARD32 mmWidth, CARD32 mmHeight); -Bool -rdpRRCrtcSet(ScreenPtr pScreen, RRCrtcPtr crtc, RRModePtr mode, - int x, int y, Rotation rotation, int numOutputs, - RROutputPtr* outputs); -Bool -rdpRRCrtcSetGamma(ScreenPtr pScreen, RRCrtcPtr crtc); -Bool -rdpRRCrtcGetGamma(ScreenPtr pScreen, RRCrtcPtr crtc); -Bool -rdpRROutputSetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property, - RRPropertyValuePtr value); -Bool -rdpRROutputValidateMode(ScreenPtr pScreen, RROutputPtr output, - RRModePtr mode); -void -rdpRRModeDestroy(ScreenPtr pScreen, RRModePtr mode); -Bool -rdpRROutputGetProperty(ScreenPtr pScreen, RROutputPtr output, Atom property); -Bool -rdpRRGetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea, - BoxPtr trackingArea, INT16* border); -Bool -rdpRRSetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea, - BoxPtr trackingArea, INT16* border); - -int -rdpRRSetRdpOutputs(void); - -#endif diff --git a/xorg/X11R7.6/rdp/rdpup.c b/xorg/X11R7.6/rdp/rdpup.c deleted file mode 100644 index 34b8cf45..00000000 --- a/xorg/X11R7.6/rdp/rdpup.c +++ /dev/null @@ -1,2990 +0,0 @@ -/* -Copyright 2005-2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#include "rdp.h" -#include "xrdp_rail.h" -#include "rdpglyph.h" -#include "rdprandr.h" - -#include -#include -#include -#include - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -static int g_use_shmem = 1; /* turns on or off */ -static int g_shmemid = -1; -static char *g_shmemptr = 0; -static int g_shmem_lineBytes = 0; -static RegionPtr g_shm_reg = 0; - -static int g_rect_id_ack = 0; -static int g_rect_id = 0; - -static int g_listen_sck = 0; -static int g_sck = 0; -static int g_sck_closed = 0; -static int g_connected = 0; -static int g_dis_listen_sck = 0; -//static int g_dis_sck = 0; -//static int g_dis_sck_closed = 0; -//static int g_dis_connected = 0; - -static int g_begin = 0; -static struct stream *g_out_s = 0; -static struct stream *g_in_s = 0; -static int g_button_mask = 0; -static int g_cursor_x = 0; -static int g_cursor_y = 0; -static OsTimerPtr g_timer = 0; -static int g_scheduled = 0; -static int g_count = 0; -static int g_rdpindex = -1; - -extern DevPrivateKeyRec g_rdpWindowIndex; /* from rdpmain.c */ -extern ScreenPtr g_pScreen; /* from rdpmain.c */ -extern int g_Bpp; /* from rdpmain.c */ -extern int g_Bpp_mask; /* from rdpmain.c */ -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ -extern int g_do_glyph_cache; /* from rdpmain.c */ -extern int g_can_do_pix_to_pix; /* from rdpmain.c */ -extern int g_use_rail; /* from rdpmain.c */ -extern int g_do_composite; /* from rdpmain.c */ - -/* true is to use unix domain socket */ -extern int g_use_uds; /* in rdpmain.c */ -extern char g_uds_data[]; /* in rdpmain.c */ -extern int g_do_dirty_ons; /* in rdpmain.c */ -extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */ -extern int g_con_number; /* in rdpmain.c */ - -struct rdpup_os_bitmap -{ - int used; - PixmapPtr pixmap; - rdpPixmapPtr priv; - int stamp; -}; - -#define USE_MAX_OS_BYTES 1 -#define MAX_OS_BYTES (16 * 1024 * 1024) -static struct rdpup_os_bitmap *g_os_bitmaps = 0; -static int g_max_os_bitmaps = 0; -static int g_os_bitmap_stamp = 0; -static int g_os_bitmap_alloc_size = 0; - -static int g_pixmap_byte_total = 0; -static int g_pixmap_num_used = 0; - -struct rdpup_top_window -{ - WindowPtr wnd; - struct rdpup_top_window *next; -}; - -/* -0 GXclear, 0 -1 GXnor, DPon -2 GXandInverted, DPna -3 GXcopyInverted, Pn -4 GXandReverse, PDna -5 GXinvert, Dn -6 GXxor, DPx -7 GXnand, DPan -8 GXand, DPa -9 GXequiv, DPxn -a GXnoop, D -b GXorInverted, DPno -c GXcopy, P -d GXorReverse, PDno -e GXor, DPo -f GXset 1 -*/ - -static int g_rdp_opcodes[16] = -{ - 0x00, /* GXclear 0x0 0 */ - 0x88, /* GXand 0x1 src AND dst */ - 0x44, /* GXandReverse 0x2 src AND NOT dst */ - 0xcc, /* GXcopy 0x3 src */ - 0x22, /* GXandInverted 0x4 NOT src AND dst */ - 0xaa, /* GXnoop 0x5 dst */ - 0x66, /* GXxor 0x6 src XOR dst */ - 0xee, /* GXor 0x7 src OR dst */ - 0x11, /* GXnor 0x8 NOT src AND NOT dst */ - 0x99, /* GXequiv 0x9 NOT src XOR dst */ - 0x55, /* GXinvert 0xa NOT dst */ - 0xdd, /* GXorReverse 0xb src OR NOT dst */ - 0x33, /* GXcopyInverted 0xc NOT src */ - 0xbb, /* GXorInverted 0xd NOT src OR dst */ - 0x77, /* GXnand 0xe NOT src OR NOT dst */ - 0xff /* GXset 0xf 1 */ -}; - -static int g_do_kill_disconnected = 0; /* turn on or off */ -static OsTimerPtr g_dis_timer = 0; -static int g_disconnect_scheduled = 0; -static CARD32 g_disconnect_timeout_s = 60; /* 60 seconds */ -static CARD32 g_disconnect_time_ms = 0; /* time of disconnect in milliseconds */ - -static int g_do_multimon = 0; /* multimon - turn on or off */ - -/******************************************************************************/ -static CARD32 -rdpDeferredDisconnectCallback(OsTimerPtr timer, CARD32 now, pointer arg) -{ - CARD32 lnow_ms; - - LLOGLN(10, ("rdpDeferredDisconnectCallback")); - if (g_connected) - { - /* this should not happen */ - LLOGLN(0, ("rdpDeferredDisconnectCallback: connected")); - if (g_dis_timer != 0) - { - LLOGLN(0, ("rdpDeferredDisconnectCallback: canceling g_dis_timer")); - TimerCancel(g_dis_timer); - TimerFree(g_dis_timer); - g_dis_timer = 0; - } - g_disconnect_scheduled = 0; - return 0; - } - else - { - LLOGLN(10, ("rdpDeferredDisconnectCallback: not connected")); - } - lnow_ms = GetTimeInMillis(); - if (lnow_ms - g_disconnect_time_ms > g_disconnect_timeout_s * 1000) - { - LLOGLN(0, ("rdpDeferredDisconnectCallback: exit X11rdp")); - kill(getpid(), SIGTERM); - return 0; - } - g_dis_timer = TimerSet(g_dis_timer, 0, 1000 * 10, - rdpDeferredDisconnectCallback, 0); - return 0; -} - -/*****************************************************************************/ -static int -rdpup_disconnect(void) -{ - int index; - - LLOGLN(0, ("rdpup_disconnect:")); - if (g_do_kill_disconnected) - { - if (!g_disconnect_scheduled) - { - LLOGLN(0, ("rdpup_disconnect: starting g_dis_timer")); - g_dis_timer = TimerSet(g_dis_timer, 0, 1000 * 10, - rdpDeferredDisconnectCallback, 0); - g_disconnect_scheduled = 1; - } - g_disconnect_time_ms = GetTimeInMillis(); - } - - RemoveEnabledDevice(g_sck); - g_connected = 0; - g_tcp_close(g_sck); - g_sck = 0; - g_sck_closed = 1; - g_pixmap_byte_total = 0; - g_pixmap_num_used = 0; - g_rdpindex = -1; - - if (g_max_os_bitmaps > 0) - { - for (index = 0; index < g_max_os_bitmaps; index++) - { - if (g_os_bitmaps[index].used) - { - if (g_os_bitmaps[index].priv != 0) - { - g_os_bitmaps[index].priv->status = 0; - } - } - } - } - g_os_bitmap_alloc_size = 0; - - g_max_os_bitmaps = 0; - g_free(g_os_bitmaps); - g_os_bitmaps = 0; - g_use_rail = 0; - g_do_glyph_cache = 0; - g_do_composite = 0; - return 0; -} - -/*****************************************************************************/ -/* returns -1 on error */ -int -rdpup_add_os_bitmap(PixmapPtr pixmap, rdpPixmapPtr priv) -{ - int index; - int rv; - int oldest; - int oldest_index; - int this_bytes; - - LLOGLN(10, ("rdpup_add_os_bitmap:")); - if (!g_connected) - { - LLOGLN(10, ("rdpup_add_os_bitmap: test error 1")); - return -1; - } - - if (g_os_bitmaps == 0) - { - LLOGLN(10, ("rdpup_add_os_bitmap: test error 2")); - return -1; - } - - this_bytes = pixmap->devKind * pixmap->drawable.height; - if (this_bytes > MAX_OS_BYTES) - { - LLOGLN(10, ("rdpup_add_os_bitmap: error, too big this_bytes %d " - "width %d height %d", this_bytes, - pixmap->drawable.height, pixmap->drawable.height)); - return -1; - } - - oldest = 0x7fffffff; - oldest_index = -1; - rv = -1; - index = 0; - - while (index < g_max_os_bitmaps) - { - if (g_os_bitmaps[index].used == 0) - { - g_os_bitmaps[index].used = 1; - g_os_bitmaps[index].pixmap = pixmap; - g_os_bitmaps[index].priv = priv; - g_os_bitmaps[index].stamp = g_os_bitmap_stamp; - g_os_bitmap_stamp++; - g_pixmap_num_used++; - rv = index; - break; - } - else - { - if (g_os_bitmaps[index].stamp < oldest) - { - oldest = g_os_bitmaps[index].stamp; - oldest_index = index; - } - } - index++; - } - - if (rv == -1) - { - if (oldest_index == -1) - { - LLOGLN(0, ("rdpup_add_os_bitmap: error")); - } - else - { - LLOGLN(10, ("rdpup_add_os_bitmap: too many pixmaps removing " - "oldest_index %d", oldest_index)); - rdpup_remove_os_bitmap(oldest_index); - rdpup_delete_os_surface(oldest_index); - g_os_bitmaps[oldest_index].used = 1; - g_os_bitmaps[oldest_index].pixmap = pixmap; - g_os_bitmaps[oldest_index].priv = priv; - g_os_bitmaps[oldest_index].stamp = g_os_bitmap_stamp; - g_os_bitmap_stamp++; - g_pixmap_num_used++; - rv = oldest_index; - } - } - - if (rv < 0) - { - LLOGLN(10, ("rdpup_add_os_bitmap: test error 3")); - return rv; - } - - g_os_bitmap_alloc_size += this_bytes; - LLOGLN(10, ("rdpup_add_os_bitmap: this_bytes %d g_os_bitmap_alloc_size %d", - this_bytes, g_os_bitmap_alloc_size)); -#if USE_MAX_OS_BYTES - while (g_os_bitmap_alloc_size > MAX_OS_BYTES) - { - LLOGLN(10, ("rdpup_add_os_bitmap: must delete g_pixmap_num_used %d", - g_pixmap_num_used)); - /* find oldest */ - oldest = 0x7fffffff; - oldest_index = -1; - index = 0; - while (index < g_max_os_bitmaps) - { - if (g_os_bitmaps[index].used && (g_os_bitmaps[index].stamp < oldest)) - { - oldest = g_os_bitmaps[index].stamp; - oldest_index = index; - } - index++; - } - if (oldest_index == -1) - { - LLOGLN(0, ("rdpup_add_os_bitmap: error 1")); - break; - } - if (oldest_index == rv) - { - LLOGLN(0, ("rdpup_add_os_bitmap: error 2")); - break; - } - rdpup_remove_os_bitmap(oldest_index); - rdpup_delete_os_surface(oldest_index); - } -#endif - LLOGLN(10, ("rdpup_add_os_bitmap: new bitmap index %d", rv)); - LLOGLN(10, ("rdpup_add_os_bitmap: g_pixmap_num_used %d " - "g_os_bitmap_stamp 0x%8.8x", g_pixmap_num_used, g_os_bitmap_stamp)); - return rv; -} - -/*****************************************************************************/ -int -rdpup_remove_os_bitmap(int rdpindex) -{ - PixmapPtr pixmap; - rdpPixmapPtr priv; - int this_bytes; - - LLOGLN(10, ("rdpup_remove_os_bitmap: index %d stamp %d", - rdpindex, g_os_bitmaps[rdpindex].stamp)); - - if (g_os_bitmaps == 0) - { - LLOGLN(10, ("rdpup_remove_os_bitmap: test error 1")); - return 1; - } - - if ((rdpindex < 0) && (rdpindex >= g_max_os_bitmaps)) - { - LLOGLN(10, ("rdpup_remove_os_bitmap: test error 2")); - return 1; - } - - if (g_os_bitmaps[rdpindex].used) - { - pixmap = g_os_bitmaps[rdpindex].pixmap; - priv = g_os_bitmaps[rdpindex].priv; - draw_item_remove_all(priv); - this_bytes = pixmap->devKind * pixmap->drawable.height; - g_os_bitmap_alloc_size -= this_bytes; - LLOGLN(10, ("rdpup_remove_os_bitmap: this_bytes %d " - "g_os_bitmap_alloc_size %d", this_bytes, - g_os_bitmap_alloc_size)); - g_os_bitmaps[rdpindex].used = 0; - g_os_bitmaps[rdpindex].pixmap = 0; - g_os_bitmaps[rdpindex].priv = 0; - g_pixmap_num_used--; - priv->status = 0; - priv->con_number = 0; - priv->use_count = 0; - } - else - { - LLOGLN(0, ("rdpup_remove_os_bitmap: error")); - } - - LLOGLN(10, ("rdpup_remove_os_bitmap: g_pixmap_num_used %d", - g_pixmap_num_used)); - return 0; -} - -/*****************************************************************************/ -int -rdpup_update_os_use(int rdpindex) -{ - LLOGLN(10, ("rdpup_update_use: index %d stamp %d", - rdpindex, g_os_bitmaps[rdpindex].stamp)); - - if (g_os_bitmaps == 0) - { - return 1; - } - - if ((rdpindex < 0) && (rdpindex >= g_max_os_bitmaps)) - { - return 1; - } - - if (g_os_bitmaps[rdpindex].used) - { - g_os_bitmaps[rdpindex].stamp = g_os_bitmap_stamp; - g_os_bitmap_stamp++; - } - else - { - LLOGLN(0, ("rdpup_update_use: error rdpindex %d", rdpindex)); - } - - return 0; -} - - -/*****************************************************************************/ -/* returns error */ -static int -rdpup_send(char *data, int len) -{ - int sent; - - LLOGLN(10, ("rdpup_send - sending %d bytes", len)); - - if (g_sck_closed) - { - return 1; - } - - while (len > 0) - { - sent = g_tcp_send(g_sck, data, len, 0); - - if (sent == -1) - { - if (g_tcp_last_error_would_block(g_sck)) - { - g_sleep(1); - } - else - { - LLOGLN(0, ("rdpup_send: g_tcp_send failed(returned -1)")); - rdpup_disconnect(); - return 1; - } - } - else if (sent == 0) - { - LLOGLN(0, ("rdpup_send: g_tcp_send failed(returned zero)")); - rdpup_disconnect(); - return 1; - } - else - { - data += sent; - len -= sent; - } - } - - return 0; -} - -/******************************************************************************/ -static int -rdpup_send_msg(struct stream *s) -{ - int len; - int rv; - - rv = 1; - - if (s != 0) - { - len = (int)(s->end - s->data); - - if (len > s->size) - { - rdpLog("overrun error len %d count %d\n", len, g_count); - } - - s_pop_layer(s, iso_hdr); - out_uint16_le(s, 3); - out_uint16_le(s, g_count); - out_uint32_le(s, len - 8); - rv = rdpup_send(s->data, len); - } - - if (rv != 0) - { - rdpLog("error in rdpup_send_msg\n"); - } - - return rv; -} - -/******************************************************************************/ -static int -rdpup_send_pending(void) -{ - int rv; - - rv = 0; - if (g_connected && g_begin) - { - LLOGLN(10, ("end %d", g_count)); - out_uint16_le(g_out_s, 2); - out_uint16_le(g_out_s, 4); - g_count++; - s_mark_end(g_out_s); - if (rdpup_send_msg(g_out_s) != 0) - { - LLOGLN(0, ("rdpup_send_pending: rdpup_send_msg failed")); - rv = 1; - } - } - - g_count = 0; - g_begin = 0; - return rv; -} - -/******************************************************************************/ -static CARD32 -rdpDeferredUpdateCallback(OsTimerPtr timer, CARD32 now, pointer arg) -{ - LLOGLN(10, ("rdpDeferredUpdateCallback")); - - if (g_do_dirty_ons) - { - if (g_rect_id == g_rect_id_ack) - { - rdpup_check_dirty_screen(&g_screenPriv); - } - else - { - LLOGLN(0, ("rdpDeferredUpdateCallback: skipping")); - } - } - else - { - rdpup_send_pending(); - } - - g_scheduled = 0; - return 0; -} - -/******************************************************************************/ -void -rdpScheduleDeferredUpdate(void) -{ - if (!g_scheduled) - { - g_scheduled = 1; - g_timer = TimerSet(g_timer, 0, 40, rdpDeferredUpdateCallback, 0); - } -} - -/******************************************************************************/ -/* returns error */ -static int -rdpup_recv(char *data, int len) -{ - int rcvd; - - if (g_sck_closed) - { - return 1; - } - - while (len > 0) - { - rcvd = g_tcp_recv(g_sck, data, len, 0); - - if (rcvd == -1) - { - if (g_tcp_last_error_would_block(g_sck)) - { - g_sleep(1); - } - else - { - LLOGLN(0, ("rdpup_recv: g_tcp_recv failed(returned -1)")); - rdpup_disconnect(); - return 1; - } - } - else if (rcvd == 0) - { - LLOGLN(0, ("rdpup_recv: g_tcp_recv failed(returned 0)")); - rdpup_disconnect(); - return 1; - } - else - { - data += rcvd; - len -= rcvd; - } - } - - return 0; -} - -/******************************************************************************/ -static int -rdpup_recv_msg(struct stream *s) -{ - int len; - int rv; - - rv = 1; - - if (s != 0) - { - init_stream(s, 4); - rv = rdpup_recv(s->data, 4); - - if (rv == 0) - { - in_uint32_le(s, len); - - if (len > 3) - { - init_stream(s, len); - rv = rdpup_recv(s->data, len - 4); - } - } - } - - if (rv != 0) - { - rdpLog("error in rdpup_recv_msg\n"); - } - - return rv; -} - -/*****************************************************************************/ -/* wait 'millis' milliseconds for the socket to be able to receive */ -/* returns boolean */ -static int -sck_can_recv(int sck, int millis) -{ - fd_set rfds; - struct timeval time; - int rv; - - time.tv_sec = millis / 1000; - time.tv_usec = (millis * 1000) % 1000000; - FD_ZERO(&rfds); - - if (sck > 0) - { - FD_SET(((unsigned int)sck), &rfds); - rv = select(sck + 1, &rfds, 0, 0, &time); - - if (rv > 0) - { - return 1; - } - } - - return 0; -} - -/******************************************************************************/ -/* - this from miScreenInit - pScreen->mmWidth = (xsize * 254 + dpix * 5) / (dpix * 10); - pScreen->mmHeight = (ysize * 254 + dpiy * 5) / (dpiy * 10); -*/ -static int -process_screen_size_msg(int width, int height, int bpp) -{ - int mmwidth; - int mmheight; - int bytes; - Bool ok; - - LLOGLN(0, ("process_screen_size_msg: set width %d height %d bpp %d", - width, height, bpp)); - g_rdpScreen.rdp_width = width; - g_rdpScreen.rdp_height = height; - g_rdpScreen.rdp_bpp = bpp; - - if (bpp < 15) - { - g_rdpScreen.rdp_Bpp = 1; - g_rdpScreen.rdp_Bpp_mask = 0xff; - } - else if (bpp == 15) - { - g_rdpScreen.rdp_Bpp = 2; - g_rdpScreen.rdp_Bpp_mask = 0x7fff; - } - else if (bpp == 16) - { - g_rdpScreen.rdp_Bpp = 2; - g_rdpScreen.rdp_Bpp_mask = 0xffff; - } - else if (bpp > 16) - { - g_rdpScreen.rdp_Bpp = 4; - g_rdpScreen.rdp_Bpp_mask = 0xffffff; - } - - if (g_use_shmem) - { - if (g_shmemptr != 0) - { - shmdt(g_shmemptr); - g_shmemptr = 0; - } - bytes = g_rdpScreen.rdp_width * g_rdpScreen.rdp_height * - g_rdpScreen.rdp_Bpp; - g_shmemid = shmget(IPC_PRIVATE, bytes, IPC_CREAT | 0777); - if (g_shmemid != -1) - { - g_shmemptr = shmat(g_shmemid, 0, 0); - if (g_shmemptr == (void *) -1) - { - LLOGLN(0, ("process_screen_size_msg: shmat failed for %d " - "bytes g_shmemid %d", bytes, g_shmemid)); - g_shmemptr = 0; - shmctl(g_shmemid, IPC_RMID, NULL); - g_shmemid = -1; - } - else - { - shmctl(g_shmemid, IPC_RMID, NULL); - } - LLOGLN(0, ("process_screen_size_msg: g_shmemid %d g_shmemptr %p", - g_shmemid, g_shmemptr)); - g_shmem_lineBytes = g_rdpScreen.rdp_Bpp * g_rdpScreen.rdp_width; - if (g_shm_reg != 0) - { - RegionDestroy(g_shm_reg); - } - g_shm_reg = RegionCreate(NullBox, 0); - } - } - - mmwidth = PixelToMM(width); - mmheight = PixelToMM(height); - - if ((g_rdpScreen.width != width) || (g_rdpScreen.height != height)) - { - LLOGLN(0, (" calling RRScreenSizeSet")); - ok = RRScreenSizeSet(g_pScreen, width, height, mmwidth, mmheight); - LLOGLN(0, (" RRScreenSizeSet ok=[%d]", ok)); - } - - return 0; -} - -/******************************************************************************/ -static int -l_bound_by(int val, int low, int high) -{ - if (val > high) - { - val = high; - } - - if (val < low) - { - val = low; - } - - return val; -} - -/******************************************************************************/ -static int -rdpup_send_caps(void) -{ - struct stream *ls; - int len; - int rv; - int cap_count; - int cap_bytes; - - make_stream(ls); - init_stream(ls, 8192); - s_push_layer(ls, iso_hdr, 8); - - cap_count = 0; - cap_bytes = 0; - -#if 0 - out_uint16_le(ls, 0); - out_uint16_le(ls, 4); - cap_count++; - cap_bytes += 4; - - out_uint16_le(ls, 1); - out_uint16_le(ls, 4); - cap_count++; - cap_bytes += 4; -#endif - - s_mark_end(ls); - len = (int)(ls->end - ls->data); - s_pop_layer(ls, iso_hdr); - out_uint16_le(ls, 2); /* caps */ - out_uint16_le(ls, cap_count); /* num caps */ - out_uint32_le(ls, cap_bytes); /* caps len after header */ - - rv = rdpup_send(ls->data, len); - - if (rv != 0) - { - LLOGLN(0, ("rdpup_send_caps: rdpup_send failed")); - } - - free_stream(ls); - return rv; -} - -/******************************************************************************/ -static int -process_version_msg(int param1, int param2, int param3, int param4) -{ - LLOGLN(0, ("process_version_msg: version %d %d %d %d", param1, param2, - param3, param4)); - - if ((param1 > 0) || (param2 > 0) || (param3 > 0) || (param4 > 0)) - { - rdpup_send_caps(); - } - - return 0; -} - -/******************************************************************************/ -static int -rdpup_send_rail(void) -{ - WindowPtr wnd; - rdpWindowRec *priv; - - wnd = g_pScreen->root; - - if (wnd != 0) - { - wnd = wnd->lastChild; - - while (wnd != 0) - { - if (wnd->realized) - { - priv = GETWINPRIV(wnd); - priv->status = 1; - rdpup_create_window(wnd, priv); - } - - wnd = wnd->prevSib; - } - } - - return 0; -} - -#define XR_BUTTON1 1 -#define XR_BUTTON2 2 -#define XR_BUTTON3 4 -#define XR_BUTTON4 8 -#define XR_BUTTON5 16 -#define XR_BUTTON6 32 -#define XR_BUTTON7 64 - -/******************************************************************************/ -static int -rdpup_process_msg(struct stream *s) -{ - int msg_type; - int msg; - int param1; - int param2; - int param3; - int param4; - int bytes; - int i1; - int flags; - int x; - int y; - int cx; - int cy; - int index; - RegionRec reg; - BoxRec box; - - in_uint16_le(s, msg_type); - - if (msg_type == 103) - { - in_uint32_le(s, msg); - in_uint32_le(s, param1); - in_uint32_le(s, param2); - in_uint32_le(s, param3); - in_uint32_le(s, param4); - LLOGLN(10, ("rdpup_process_msg - msg %d param1 %d param2 %d param3 %d " - "param4 %d", msg, param1, param2, param3, param4)); - - switch (msg) - { - case 15: /* key down */ - case 16: /* key up */ - KbdAddEvent(msg == 15, param1, param2, param3, param4); - break; - case 17: /* from RDP_INPUT_SYNCHRONIZE */ - KbdSync(param1); - break; - case 100: - /* without the minus 2, strange things happen when dragging - past the width or height */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 101: /* left button up */ - g_button_mask = g_button_mask & (~XR_BUTTON1); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 102: /* left button down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON1; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 103: /* right button up */ - g_button_mask = g_button_mask & (~XR_BUTTON3); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 104: /* right button down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON3; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 105: /* middle button down */ - g_button_mask = g_button_mask & (~XR_BUTTON2); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 106: /* middle button up */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON2; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 107: /* button 4 up */ - g_button_mask = g_button_mask & (~XR_BUTTON4); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 108: /* button 4 down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON4; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 109: /* button 5 up */ - g_button_mask = g_button_mask & (~XR_BUTTON5); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 110: /* button 5 down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON5; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 111: /* button 6 up */ - g_button_mask = g_button_mask & (~XR_BUTTON6); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 112: /* button 6 down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON6; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 113: /* button 7 up */ - g_button_mask = g_button_mask & (~XR_BUTTON7); - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 114: /* button 7 down */ - g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2); - g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2); - g_button_mask = g_button_mask | XR_BUTTON7; - PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y); - break; - case 200: - rdpup_begin_update(); - rdpup_send_area(0, (param1 >> 16) & 0xffff, param1 & 0xffff, - (param2 >> 16) & 0xffff, param2 & 0xffff); - rdpup_end_update(); - break; - case 300: - process_screen_size_msg(param1, param2, param3); - break; - case 301: - process_version_msg(param1, param2, param3, param4); - break; - } - } - else if (msg_type == 104) - { - in_uint32_le(s, bytes); - - if (bytes > sizeof(g_rdpScreen.client_info)) - { - bytes = sizeof(g_rdpScreen.client_info); - } - - memcpy(&(g_rdpScreen.client_info), s->p - 4, bytes); - g_rdpScreen.client_info.size = bytes; - LLOGLN(0, ("rdpup_process_msg: got client info bytes %d", bytes)); - LLOGLN(0, (" jpeg support %d", g_rdpScreen.client_info.jpeg)); - i1 = g_rdpScreen.client_info.offscreen_support_level; - LLOGLN(0, (" offscreen support %d", i1)); - i1 = g_rdpScreen.client_info.offscreen_cache_size; - LLOGLN(0, (" offscreen size %d", i1)); - i1 = g_rdpScreen.client_info.offscreen_cache_entries; - LLOGLN(0, (" offscreen entries %d", i1)); - - if (g_rdpScreen.client_info.offscreen_support_level > 0) - { - if (g_rdpScreen.client_info.offscreen_cache_entries > 0) - { - g_max_os_bitmaps = g_rdpScreen.client_info.offscreen_cache_entries; - g_free(g_os_bitmaps); - g_os_bitmaps = (struct rdpup_os_bitmap *) - g_malloc(sizeof(struct rdpup_os_bitmap) * g_max_os_bitmaps, 1); - } - } - - if (g_rdpScreen.client_info.rail_support_level > 0) - { - g_use_rail = 1; -#ifdef XRDP_WM_RDPUP - rdpup_send_rail(); -#endif - } - if (g_rdpScreen.client_info.orders[0x1b]) /* 27 NEG_GLYPH_INDEX_INDEX */ - { - LLOGLN(0, (" client supports glyph cache but server disabled")); - //g_do_glyph_cache = 1; - } - if (g_rdpScreen.client_info.order_flags_ex & 0x100) - { - g_do_composite = 1; - } - if (g_do_glyph_cache) - { - LLOGLN(0, (" using glyph cache")); - } - if (g_do_composite) - { - LLOGLN(0, (" using client composite")); - } - LLOGLN(10, ("order_flags_ex 0x%x", g_rdpScreen.client_info.order_flags_ex)); - if (g_rdpScreen.client_info.offscreen_cache_entries == 2000) - { - LLOGLN(0, (" client can do offscreen to offscreen blits")); - g_can_do_pix_to_pix = 1; - } - else - { - LLOGLN(0, (" client can not do offscreen to offscreen blits")); - g_can_do_pix_to_pix = 0; - } - if (g_rdpScreen.client_info.pointer_flags & 1) - { - LLOGLN(0, (" client can do new(color) cursor")); - } - else - { - LLOGLN(0, (" client can not do new(color) cursor")); - } - - if (g_rdpScreen.client_info.monitorCount > 0) - { - LLOGLN(0, (" client can do multimon")); - LLOGLN(0, (" client monitor data, monitorCount= %d", g_rdpScreen.client_info.monitorCount)); - box.x1 = g_rdpScreen.client_info.minfo[0].left; - box.y1 = g_rdpScreen.client_info.minfo[0].top; - box.x2 = g_rdpScreen.client_info.minfo[0].right; - box.y2 = g_rdpScreen.client_info.minfo[0].bottom; - g_do_multimon = 1; - /* adjust monitor info so it's not negative */ - for (index = 1; index < g_rdpScreen.client_info.monitorCount; index++) - { - box.x1 = min(box.x1, g_rdpScreen.client_info.minfo[index].left); - box.y1 = min(box.y1, g_rdpScreen.client_info.minfo[index].top); - box.x2 = max(box.x2, g_rdpScreen.client_info.minfo[index].right); - box.y2 = max(box.y2, g_rdpScreen.client_info.minfo[index].bottom); - } - for (index = 0; index < g_rdpScreen.client_info.monitorCount; index++) - { - g_rdpScreen.client_info.minfo[index].left -= box.x1; - g_rdpScreen.client_info.minfo[index].top -= box.y1; - g_rdpScreen.client_info.minfo[index].right -= box.x1; - g_rdpScreen.client_info.minfo[index].bottom -= box.y1; - LLOGLN(0, (" left %d top %d right %d bottom %d", - g_rdpScreen.client_info.minfo[index].left, - g_rdpScreen.client_info.minfo[index].top, - g_rdpScreen.client_info.minfo[index].right, - g_rdpScreen.client_info.minfo[index].bottom)); - } - rdpRRSetRdpOutputs(); - RRTellChanged(g_pScreen); - } - else - { - LLOGLN(0, (" client can not do multimon")); - g_do_multimon = 0; - rdpRRSetRdpOutputs(); - RRTellChanged(g_pScreen); - } - - rdpLoadLayout(&(g_rdpScreen.client_info)); - - } - else if (msg_type == 105) - { - LLOGLN(10, ("rdpup_process_msg: got msg 105")); - in_uint32_le(s, flags); - in_uint32_le(s, g_rect_id_ack); - in_uint32_le(s, x); - in_uint32_le(s, y); - in_uint32_le(s, cx); - in_uint32_le(s, cy); - LLOGLN(10, ("rdpup_process_msg: %d %d %d %d", x, y, cx ,cy)); - LLOGLN(10, ("rdpup_process_msg: rect_id %d rect_id_ack %d", g_rect_id, g_rect_id_ack)); - - box.x1 = x; - box.y1 = y; - box.x2 = box.x1 + cx; - box.y2 = box.y1 + cy; - - RegionInit(®, &box, 0); - LLOGLN(10, ("rdpup_process_msg: %d %d %d %d", box.x1, box.y1, box.x2, box.y2)); - RegionSubtract(g_shm_reg, g_shm_reg, ®); - RegionUninit(®); - - } - - - else - { - rdpLog("unknown message type in rdpup_process_msg %d\n", msg_type); - } - - return 0; -} - -/******************************************************************************/ -void -rdpup_get_screen_image_rect(struct image_data *id) -{ - id->width = g_rdpScreen.width; - id->height = g_rdpScreen.height; - id->bpp = g_rdpScreen.rdp_bpp; - id->Bpp = g_rdpScreen.rdp_Bpp; - id->lineBytes = g_rdpScreen.paddedWidthInBytes; - id->pixels = g_rdpScreen.pfbMemory; - id->shmem_pixels = g_shmemptr; - id->shmem_id = g_shmemid; - id->shmem_offset = 0; - id->shmem_lineBytes = g_shmem_lineBytes; -} - -/******************************************************************************/ -void -rdpup_get_pixmap_image_rect(PixmapPtr pPixmap, struct image_data *id) -{ - id->width = pPixmap->drawable.width; - id->height = pPixmap->drawable.height; - id->bpp = g_rdpScreen.rdp_bpp; - id->Bpp = g_rdpScreen.rdp_Bpp; - id->lineBytes = pPixmap->devKind; - id->pixels = (char *)(pPixmap->devPrivate.ptr); - id->shmem_pixels = 0; - id->shmem_id = 0; - id->shmem_offset = 0; - id->shmem_lineBytes = 0; -} - -/******************************************************************************/ -int -rdpup_init(void) -{ - char text[256]; - char *ptext; - int i; - const char *socket_dir; - - socket_dir = g_socket_dir(); - - if (!g_directory_exist(socket_dir)) - { - if (!g_create_dir(socket_dir)) - { - LLOGLN(0, ("rdpup_init: g_create_dir(%s) failed", socket_dir)); - return 0; - } - - g_chmod_hex(socket_dir, 0x1777); - } - - i = atoi(display); - - if (i < 1) - { - return 0; - } - - if (g_in_s == 0) - { - make_stream(g_in_s); - init_stream(g_in_s, 8192); - } - - if (g_out_s == 0) - { - make_stream(g_out_s); - init_stream(g_out_s, 8192 * g_Bpp + 100); - } - - if (g_use_uds) - { - g_sprintf(g_uds_data, "%s/xrdp_display_%s", socket_dir, display); - - if (g_listen_sck == 0) - { - g_listen_sck = g_tcp_local_socket_stream(); - - if (g_tcp_local_bind(g_listen_sck, g_uds_data) != 0) - { - LLOGLN(0, ("rdpup_init: g_tcp_local_bind failed")); - return 0; - } - - g_tcp_listen(g_listen_sck); - AddEnabledDevice(g_listen_sck); - } - } - else - { - g_sprintf(text, "62%2.2d", i); - - if (g_listen_sck == 0) - { - g_listen_sck = g_tcp_socket(); - - if (g_tcp_bind(g_listen_sck, text) != 0) - { - return 0; - } - - g_tcp_listen(g_listen_sck); - AddEnabledDevice(g_listen_sck); - } - } - - g_dis_listen_sck = g_tcp_local_socket_dgram(); - - if (g_dis_listen_sck != 0) - { - g_sprintf(text, "%s/xrdp_disconnect_display_%s", socket_dir, display); - - if (g_tcp_local_bind(g_dis_listen_sck, text) == 0) - { - AddEnabledDevice(g_dis_listen_sck); - } - else - { - rdpLog("g_tcp_local_bind failed [%s]\n", text); - } - } - - ptext = getenv("XRDP_SESMAN_MAX_IDLE_TIME"); - if (ptext != 0) - { - } - ptext = getenv("XRDP_SESMAN_MAX_DISC_TIME"); - if (ptext != 0) - { - i = atoi(ptext); - if (i > 0) - { - g_do_kill_disconnected = 1; - g_disconnect_timeout_s = atoi(ptext); - } - } - ptext = getenv("XRDP_SESMAN_KILL_DISCONNECTED"); - if (ptext != 0) - { - i = atoi(ptext); - if (i != 0) - { - g_do_kill_disconnected = 1; - } - } - - if (g_do_kill_disconnected && (g_disconnect_timeout_s < 60)) - { - g_disconnect_timeout_s = 60; - } - - rdpLog("kill disconnected [%d] timeout [%d] sec\n", g_do_kill_disconnected, - g_disconnect_timeout_s); - - return 1; -} - -/******************************************************************************/ -int -rdpup_check(void) -{ - int sel; - int new_sck; - char buf[8]; - - sel = g_tcp_select(g_listen_sck, g_sck, g_dis_listen_sck); - - if (sel & 1) - { - new_sck = g_tcp_accept(g_listen_sck); - - if (new_sck == -1) - { - } - else - { - if (g_sck != 0) - { - /* should maybe ask is user wants to allow here with timeout */ - rdpLog("replacing connection, already got a connection\n"); - rdpup_disconnect(); - } - - rdpLog("got a connection\n"); - g_sck = new_sck; - g_tcp_set_non_blocking(g_sck); - g_tcp_set_no_delay(g_sck); - g_connected = 1; - g_sck_closed = 0; - g_begin = 0; - g_con_number++; - rdpGlyphInit(); - AddEnabledDevice(g_sck); - - if (g_dis_timer != 0) - { - LLOGLN(0, ("rdpup_check: canceling g_dis_timer")); - TimerCancel(g_dis_timer); - TimerFree(g_dis_timer); - g_dis_timer = 0; - } - g_disconnect_scheduled = 0; - - } - } - - if (sel & 2) - { - if (rdpup_recv_msg(g_in_s) == 0) - { - rdpup_process_msg(g_in_s); - } - } - - if (sel & 4) - { - if (g_tcp_recv(g_dis_listen_sck, buf, 4, 0) > 0) - { - if (g_sck != 0) - { - rdpLog("disconnecting session via user request\n"); - rdpup_disconnect(); - } - } - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_begin_update(void) -{ - LLOGLN(10, ("rdpup_begin_update:")); - - if (g_connected) - { - if (g_begin) - { - return 0; - } - init_stream(g_out_s, 0); - s_push_layer(g_out_s, iso_hdr, 8); - out_uint16_le(g_out_s, 1); /* begin update */ - out_uint16_le(g_out_s, 4); /* size */ - LLOGLN(10, ("begin %d", g_count)); - g_begin = 1; - g_count = 1; - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_end_update(void) -{ - LLOGLN(10, ("rdpup_end_update")); - - if (g_connected && g_begin) - { - if (g_do_dirty_ons) - { - /* in this mode, end update is only called in check dirty */ - rdpup_send_pending(); - } - else - { - rdpScheduleDeferredUpdate(); - } - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_pre_check(int in_size) -{ - int rv; - - rv = 0; - if (!g_begin) - { - rdpup_begin_update(); - } - - if ((g_out_s->p - g_out_s->data) > (g_out_s->size - (in_size + 20))) - { - s_mark_end(g_out_s); - if (rdpup_send_msg(g_out_s) != 0) - { - LLOGLN(0, ("rdpup_pre_check: rdpup_send_msg failed")); - rv = 1; - } - g_count = 0; - init_stream(g_out_s, 0); - s_push_layer(g_out_s, iso_hdr, 8); - } - - return rv; -} - -/******************************************************************************/ -int -rdpup_fill_rect(short x, short y, int cx, int cy) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_fill_rect")); - rdpup_pre_check(12); - out_uint16_le(g_out_s, 3); /* fill rect */ - out_uint16_le(g_out_s, 12); /* size */ - g_count++; - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_screen_blt(short x, short y, int cx, int cy, short srcx, short srcy) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_screen_blt x %d y %d cx %d cy %d srcx %d srcy %d", - x, y, cx, cy, srcx, srcy)); - rdpup_pre_check(16); - out_uint16_le(g_out_s, 4); /* screen blt */ - out_uint16_le(g_out_s, 16); /* size */ - g_count++; - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - out_uint16_le(g_out_s, srcx); - out_uint16_le(g_out_s, srcy); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_clip(short x, short y, int cx, int cy) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_set_clip")); - rdpup_pre_check(12); - out_uint16_le(g_out_s, 10); /* set clip */ - out_uint16_le(g_out_s, 12); /* size */ - g_count++; - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_reset_clip(void) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_reset_clip")); - rdpup_pre_check(4); - out_uint16_le(g_out_s, 11); /* reset clip */ - out_uint16_le(g_out_s, 4); /* size */ - g_count++; - } - - return 0; -} - -#define COLOR8(r, g, b) \ - ((((r) >> 5) << 0) | (((g) >> 5) << 3) | (((b) >> 6) << 6)) -#define COLOR15(r, g, b) \ - ((((r) >> 3) << 10) | (((g) >> 3) << 5) | (((b) >> 3) << 0)) -#define COLOR16(r, g, b) \ - ((((r) >> 3) << 11) | (((g) >> 2) << 5) | (((b) >> 3) << 0)) -#define COLOR24(r, g, b) \ - ((((r) >> 0) << 0) | (((g) >> 0) << 8) | (((b) >> 0) << 16)) -#define SPLITCOLOR32(r, g, b, c) \ - { \ - r = ((c) >> 16) & 0xff; \ - g = ((c) >> 8) & 0xff; \ - b = (c) & 0xff; \ - } - -int -convert_pixel(int in_pixel) -{ - int red; - int green; - int blue; - int rv; - - rv = 0; - - if (g_rdpScreen.depth == 24) - { - if (g_rdpScreen.rdp_bpp >= 24) - { - rv = in_pixel; - SPLITCOLOR32(red, green, blue, rv); - rv = COLOR24(red, green, blue); - } - else if (g_rdpScreen.rdp_bpp == 16) - { - rv = in_pixel; - SPLITCOLOR32(red, green, blue, rv); - rv = COLOR16(red, green, blue); - } - else if (g_rdpScreen.rdp_bpp == 15) - { - rv = in_pixel; - SPLITCOLOR32(red, green, blue, rv); - rv = COLOR15(red, green, blue); - } - else if (g_rdpScreen.rdp_bpp == 8) - { - rv = in_pixel; - SPLITCOLOR32(red, green, blue, rv); - rv = COLOR8(red, green, blue); - } - } - else if (g_rdpScreen.depth == g_rdpScreen.rdp_bpp) - { - return in_pixel; - } - - return rv; -} - -int -convert_pixels(void *src, void *dst, int num_pixels) -{ - unsigned int pixel; - unsigned int red; - unsigned int green; - unsigned int blue; - unsigned int *src32; - unsigned int *dst32; - unsigned short *dst16; - unsigned char *dst8; - int index; - - if (g_rdpScreen.depth == g_rdpScreen.rdp_bpp) - { - memcpy(dst, src, num_pixels * g_Bpp); - return 0; - } - - if (g_rdpScreen.depth == 24) - { - src32 = (unsigned int *)src; - - if (g_rdpScreen.rdp_bpp >= 24) - { - dst32 = (unsigned int *)dst; - - for (index = 0; index < num_pixels; index++) - { - pixel = *src32; - *dst32 = pixel; - dst32++; - src32++; - } - } - else if (g_rdpScreen.rdp_bpp == 16) - { - dst16 = (unsigned short *)dst; - - for (index = 0; index < num_pixels; index++) - { - pixel = *src32; - SPLITCOLOR32(red, green, blue, pixel); - pixel = COLOR16(red, green, blue); - *dst16 = pixel; - dst16++; - src32++; - } - } - else if (g_rdpScreen.rdp_bpp == 15) - { - dst16 = (unsigned short *)dst; - - for (index = 0; index < num_pixels; index++) - { - pixel = *src32; - SPLITCOLOR32(red, green, blue, pixel); - pixel = COLOR15(red, green, blue); - *dst16 = pixel; - dst16++; - src32++; - } - } - else if (g_rdpScreen.rdp_bpp == 8) - { - dst8 = (unsigned char *)dst; - - for (index = 0; index < num_pixels; index++) - { - pixel = *src32; - SPLITCOLOR32(red, green, blue, pixel); - pixel = COLOR8(red, green, blue); - *dst8 = pixel; - dst8++; - src32++; - } - } - } - - return 0; -} - -/******************************************************************************/ -int -alpha_pixels(void* src, void* dst, int num_pixels) -{ - unsigned int* src32; - unsigned char* dst8; - int index; - - src32 = (unsigned int*)src; - dst8 = (unsigned char*)dst; - for (index = 0; index < num_pixels; index++) - { - *dst8 = (*src32) >> 24; - dst8++; - src32++; - } - return 0; -} - -/******************************************************************************/ -int -rdpup_set_fgcolor(int fgcolor) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_set_fgcolor")); - rdpup_pre_check(8); - out_uint16_le(g_out_s, 12); /* set fgcolor */ - out_uint16_le(g_out_s, 8); /* size */ - g_count++; - fgcolor = fgcolor & g_Bpp_mask; - fgcolor = convert_pixel(fgcolor) & g_rdpScreen.rdp_Bpp_mask; - out_uint32_le(g_out_s, fgcolor); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_bgcolor(int bgcolor) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_set_bgcolor")); - rdpup_pre_check(8); - out_uint16_le(g_out_s, 13); /* set bg color */ - out_uint16_le(g_out_s, 8); /* size */ - g_count++; - bgcolor = bgcolor & g_Bpp_mask; - bgcolor = convert_pixel(bgcolor) & g_rdpScreen.rdp_Bpp_mask; - out_uint32_le(g_out_s, bgcolor); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_opcode(int opcode) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_set_opcode")); - rdpup_pre_check(6); - out_uint16_le(g_out_s, 14); /* set opcode */ - out_uint16_le(g_out_s, 6); /* size */ - g_count++; - out_uint16_le(g_out_s, g_rdp_opcodes[opcode & 0xf]); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_pen(int style, int width) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_set_pen")); - rdpup_pre_check(8); - out_uint16_le(g_out_s, 17); /* set pen */ - out_uint16_le(g_out_s, 8); /* size */ - g_count++; - out_uint16_le(g_out_s, style); - out_uint16_le(g_out_s, width); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_draw_line(short x1, short y1, short x2, short y2) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_draw_line")); - rdpup_pre_check(12); - out_uint16_le(g_out_s, 18); /* draw line */ - out_uint16_le(g_out_s, 12); /* size */ - g_count++; - out_uint16_le(g_out_s, x1); - out_uint16_le(g_out_s, y1); - out_uint16_le(g_out_s, x2); - out_uint16_le(g_out_s, y2); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_cursor(short x, short y, char *cur_data, char *cur_mask) -{ - int size; - - if (g_connected) - { - LLOGLN(10, (" rdpup_set_cursor")); - size = 8 + 32 * (32 * 3) + 32 * (32 / 8); - rdpup_pre_check(size); - out_uint16_le(g_out_s, 19); /* set cursor */ - out_uint16_le(g_out_s, size); /* size */ - g_count++; - x = MAX(0, x); - x = MIN(31, x); - y = MAX(0, y); - y = MIN(31, y); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint8a(g_out_s, cur_data, 32 * (32 * 3)); - out_uint8a(g_out_s, cur_mask, 32 * (32 / 8)); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_set_cursor_ex(short x, short y, char *cur_data, char *cur_mask, int bpp) -{ - int size; - int Bpp; - - if (g_connected) - { - LLOGLN(10, (" rdpup_set_cursor_ex")); - Bpp = (bpp == 0) ? 3 : (bpp + 7) / 8; - size = 10 + 32 * (32 * Bpp) + 32 * (32 / 8); - rdpup_pre_check(size); - out_uint16_le(g_out_s, 51); /* set cursor ex */ - out_uint16_le(g_out_s, size); /* size */ - g_count++; - x = MAX(0, x); - x = MIN(31, x); - y = MAX(0, y); - y = MIN(31, y); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, bpp); - out_uint8a(g_out_s, cur_data, 32 * (32 * Bpp)); - out_uint8a(g_out_s, cur_mask, 32 * (32 / 8)); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_create_os_surface(int rdpindex, int width, int height) -{ - LLOGLN(10, ("rdpup_create_os_surface:")); - - if (g_connected) - { - LLOGLN(10, (" rdpup_create_os_surface width %d height %d", width, height)); - rdpup_pre_check(12); - out_uint16_le(g_out_s, 20); - out_uint16_le(g_out_s, 12); - g_count++; - out_uint32_le(g_out_s, rdpindex); - out_uint16_le(g_out_s, width); - out_uint16_le(g_out_s, height); - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_create_os_surface_bpp(int rdpindex, int width, int height, int bpp) -{ - LLOGLN(10, ("rdpup_create_os_surface_bpp:")); - if (g_connected) - { - LLOGLN(10, (" width %d height %d bpp %d", width, height, bpp)); - rdpup_pre_check(13); - out_uint16_le(g_out_s, 31); - out_uint16_le(g_out_s, 13); - g_count++; - out_uint32_le(g_out_s, rdpindex); - out_uint16_le(g_out_s, width); - out_uint16_le(g_out_s, height); - out_uint8(g_out_s, bpp); - } - return 0; -} - -/******************************************************************************/ -int -rdpup_switch_os_surface(int rdpindex) -{ - LLOGLN(10, ("rdpup_switch_os_surface:")); - - if (g_connected) - { - if (g_rdpindex == rdpindex) - { - return 0; - } - - g_rdpindex = rdpindex; - LLOGLN(10, ("rdpup_switch_os_surface: rdpindex %d", rdpindex)); - /* switch surface */ - rdpup_pre_check(8); - out_uint16_le(g_out_s, 21); - out_uint16_le(g_out_s, 8); - out_uint32_le(g_out_s, rdpindex); - g_count++; - } - - return 0; -} - -/******************************************************************************/ -int -rdpup_delete_os_surface(int rdpindex) -{ - LLOGLN(10, ("rdpup_delete_os_surface: rdpindex %d", rdpindex)); - - if (g_connected) - { - LLOGLN(10, ("rdpup_delete_os_surface: rdpindex %d", rdpindex)); - rdpup_pre_check(8); - out_uint16_le(g_out_s, 22); - out_uint16_le(g_out_s, 8); - g_count++; - out_uint32_le(g_out_s, rdpindex); - } - - return 0; -} - -/******************************************************************************/ -static int -get_single_color(struct image_data *id, int x, int y, int w, int h) -{ - int rv; - int i; - int j; - int p; - unsigned char *i8; - unsigned short *i16; - unsigned int *i32; - - p = 0; - rv = -1; - - if (g_Bpp == 1) - { - for (i = 0; i < h; i++) - { - i8 = (unsigned char *)(id->pixels + - ((y + i) * id->lineBytes) + (x * g_Bpp)); - - if (i == 0) - { - p = *i8; - } - - for (j = 0; j < w; j++) - { - if (i8[j] != p) - { - return -1; - } - } - } - - rv = p; - } - else if (g_Bpp == 2) - { - for (i = 0; i < h; i++) - { - i16 = (unsigned short *)(id->pixels + - ((y + i) * id->lineBytes) + (x * g_Bpp)); - - if (i == 0) - { - p = *i16; - } - - for (j = 0; j < w; j++) - { - if (i16[j] != p) - { - return -1; - } - } - } - - rv = p; - } - else if (g_Bpp == 4) - { - for (i = 0; i < h; i++) - { - i32 = (unsigned int *)(id->pixels + - ((y + i) * id->lineBytes) + (x * g_Bpp)); - - if (i == 0) - { - p = *i32; - } - - for (j = 0; j < w; j++) - { - if (i32[j] != p) - { - return -1; - } - } - } - - rv = p; - } - - return rv; -} - -/******************************************************************************/ -/* split the bitmap up into 64 x 64 pixel areas - or send using shared memory */ -void -rdpup_send_area(struct image_data *id, int x, int y, int w, int h) -{ - char *s; - char *d; - int i; - int single_color; - int lx; - int ly; - int lh; - int lw; - int size; - int safety; - struct image_data lid; - BoxRec box; - RegionRec reg; - - LLOGLN(10, ("rdpup_send_area: id %p x %d y %d w %d h %d", id, x, y, w, h)); - - if (id == 0) - { - rdpup_get_screen_image_rect(&lid); - id = &lid; - } - - if (x >= id->width) - { - return; - } - - if (y >= id->height) - { - return; - } - - if (x < 0) - { - w += x; - x = 0; - } - - if (y < 0) - { - h += y; - y = 0; - } - - if (w <= 0) - { - return; - } - - if (h <= 0) - { - return; - } - - if (x + w > id->width) - { - w = id->width - x; - } - - if (y + h > id->height) - { - h = id->height - y; - } - - LLOGLN(10, ("%d", w * h)); - - if (g_connected && g_begin) - { - LLOGLN(10, (" rdpup_send_area")); - - if (id->shmem_pixels != 0) - { - LLOGLN(10, ("rdpup_send_area: using shmem")); - box.x1 = x; - box.y1 = y; - box.x2 = box.x1 + w; - box.y2 = box.y1 + h; - LLOGLN(10, ("rdpup_send_area: 1 x %d y %d w %d h %d", x, y, w, h)); - safety = 0; - while (RegionContainsRect(g_shm_reg, &box)) - { - /* instead of rdpup_end_update, call rdpup_send_pending */ - rdpup_send_pending(); - rdpup_begin_update(); - safety++; - if (safety > 100) - { - LLOGLN(0, ("rdpup_send_area: shmem timeout")); - break; - } - if (sck_can_recv(g_sck, 100)) - { - if (rdpup_recv_msg(g_in_s) == 0) - { - rdpup_process_msg(g_in_s); - } - } - } - s = id->pixels; - s += y * id->lineBytes; - s += x * g_Bpp; - d = id->shmem_pixels + id->shmem_offset; - d += y * id->shmem_lineBytes; - d += x * g_rdpScreen.rdp_Bpp; - ly = y; - while (ly < y + h) - { - convert_pixels(s, d, w); - s += id->lineBytes; - d += id->shmem_lineBytes; - ly += 1; - } - size = 36; - rdpup_pre_check(size); - out_uint16_le(g_out_s, 60); - out_uint16_le(g_out_s, size); - g_count++; - LLOGLN(10, ("rdpup_send_area: 2 x %d y %d w %d h %d", x, y, w, h)); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, w); - out_uint16_le(g_out_s, h); - out_uint32_le(g_out_s, 0); - g_rect_id++; - out_uint32_le(g_out_s, g_rect_id); - out_uint32_le(g_out_s, id->shmem_id); - out_uint32_le(g_out_s, id->shmem_offset); - out_uint16_le(g_out_s, id->width); - out_uint16_le(g_out_s, id->height); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - RegionInit(®, &box, 0); - RegionUnion(g_shm_reg, g_shm_reg, ®); - RegionUninit(®); - return; - } - - ly = y; - while ((ly < y + h) && g_connected) - { - lx = x; - - while (lx < x + w) - { - lw = MIN(64, (x + w) - lx); - lh = MIN(64, (y + h) - ly); - single_color = get_single_color(id, lx, ly, lw, lh); - - if (single_color != -1) - { - LLOGLN(10, ("%d sending single color", g_count)); - rdpup_set_fgcolor(single_color); - rdpup_fill_rect(lx, ly, lw, lh); - } - else - { - size = lw * lh * id->Bpp + 24; - rdpup_pre_check(size); - out_uint16_le(g_out_s, 5); - out_uint16_le(g_out_s, size); - g_count++; - out_uint16_le(g_out_s, lx); - out_uint16_le(g_out_s, ly); - out_uint16_le(g_out_s, lw); - out_uint16_le(g_out_s, lh); - out_uint32_le(g_out_s, lw * lh * id->Bpp); - - for (i = 0; i < lh; i++) - { - s = (id->pixels + - ((ly + i) * id->lineBytes) + (lx * g_Bpp)); - convert_pixels(s, g_out_s->p, lw); - g_out_s->p += lw * id->Bpp; - } - - out_uint16_le(g_out_s, lw); - out_uint16_le(g_out_s, lh); - out_uint16_le(g_out_s, 0); - out_uint16_le(g_out_s, 0); - } - - lx += 64; - } - - ly += 64; - } - } -} - -/******************************************************************************/ -/* split the bitmap up into 64 x 64 pixel areas */ -void -rdpup_send_alpha_area(struct image_data* id, int x, int y, int w, int h) -{ - char* s; - int i; - int lx; - int ly; - int lh; - int lw; - int size; - struct image_data lid; - - LLOGLN(10, ("rdpup_send_alpha_area: id %p x %d y %d w %d h %d", - id, x, y, w, h)); - if (id == 0) - { - rdpup_get_screen_image_rect(&lid); - id = &lid; - } - - if (x >= id->width) - { - return; - } - if (y >= id->height) - { - return; - } - if (x < 0) - { - w += x; - x = 0; - } - if (y < 0) - { - h += y; - y = 0; - } - if (w <= 0) - { - return; - } - if (h <= 0) - { - return; - } - if (x + w > id->width) - { - w = id->width - x; - } - if (y + h > id->height) - { - h = id->height - y; - } - LLOGLN(10, ("%d", w * h)); - if (g_connected && g_begin) - { - LLOGLN(10, (" rdpup_send_area")); - ly = y; - while ((ly < y + h) && g_connected) - { - lx = x; - while ((lx < x + w) && g_connected) - { - lw = MIN(64, (x + w) - lx); - lh = MIN(64, (y + h) - ly); - size = lw * lh + 25; - rdpup_pre_check(size); - out_uint16_le(g_out_s, 32); /* server_paint_rect_bpp */ - out_uint16_le(g_out_s, size); - g_count++; - out_uint16_le(g_out_s, lx); - out_uint16_le(g_out_s, ly); - out_uint16_le(g_out_s, lw); - out_uint16_le(g_out_s, lh); - out_uint32_le(g_out_s, lw * lh); - for (i = 0; i < lh; i++) - { - s = (id->pixels + - ((ly + i) * id->lineBytes) + (lx * g_Bpp)); - alpha_pixels(s, g_out_s->p, lw); - g_out_s->p += lw; - } - out_uint16_le(g_out_s, lw); - out_uint16_le(g_out_s, lh); - out_uint16_le(g_out_s, 0); - out_uint16_le(g_out_s, 0); - out_uint8(g_out_s, 8); - lx += 64; - } - ly += 64; - } - } -} - -/******************************************************************************/ -void -rdpup_paint_rect_os(int x, int y, int cx, int cy, - int rdpindex, int srcx, int srcy) -{ - if (g_connected) - { - rdpup_pre_check(20); - out_uint16_le(g_out_s, 23); - out_uint16_le(g_out_s, 20); - g_count++; - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - out_uint32_le(g_out_s, rdpindex); - out_uint16_le(g_out_s, srcx); - out_uint16_le(g_out_s, srcy); - } -} - -/******************************************************************************/ -void -rdpup_set_hints(int hints, int mask) -{ - if (g_connected) - { - rdpup_pre_check(12); - out_uint16_le(g_out_s, 24); - out_uint16_le(g_out_s, 12); - g_count++; - out_uint32_le(g_out_s, hints); - out_uint32_le(g_out_s, mask); - } -} - -/******************************************************************************/ -void -rdpup_create_window(WindowPtr pWindow, rdpWindowRec *priv) -{ - int bytes; - int index; - int flags; - int num_window_rects; - int num_visibility_rects; - int title_bytes; - int style; - int ext_style; - int root_id; - char title[256]; - - LLOGLN(10, ("rdpup_create_window: id 0x%8.8x", - (int)(pWindow->drawable.id))); - - if (g_connected) - { - root_id = pWindow->drawable.pScreen->root->drawable.id; - - if (pWindow->overrideRedirect) - { - style = XR_STYLE_TOOLTIP; - ext_style = XR_EXT_STYLE_TOOLTIP; - } - else - { - style = XR_STYLE_NORMAL; - ext_style = XR_EXT_STYLE_NORMAL; - } - - flags = WINDOW_ORDER_TYPE_WINDOW | WINDOW_ORDER_STATE_NEW; - strcpy(title, "title"); - title_bytes = strlen(title); - - num_window_rects = 1; - num_visibility_rects = 1; - - /* calculate bytes */ - bytes = (2 + 2) + (5 * 4) + (2 + title_bytes) + (12 * 4) + - (2 + num_window_rects * 8) + (4 + 4) + - (2 + num_visibility_rects * 8) + 4; - - rdpup_pre_check(bytes); - out_uint16_le(g_out_s, 25); - out_uint16_le(g_out_s, bytes); - g_count++; - out_uint32_le(g_out_s, pWindow->drawable.id); /* window_id */ - out_uint32_le(g_out_s, pWindow->parent->drawable.id); /* owner_window_id */ - flags |= WINDOW_ORDER_FIELD_OWNER; - out_uint32_le(g_out_s, style); /* style */ - out_uint32_le(g_out_s, ext_style); /* extended_style */ - flags |= WINDOW_ORDER_FIELD_STYLE; - out_uint32_le(g_out_s, 0x05); /* show_state */ - flags |= WINDOW_ORDER_FIELD_SHOW; - out_uint16_le(g_out_s, title_bytes); /* title_info */ - out_uint8a(g_out_s, title, title_bytes); - flags |= WINDOW_ORDER_FIELD_TITLE; - out_uint32_le(g_out_s, 0); /* client_offset_x */ - out_uint32_le(g_out_s, 0); /* client_offset_y */ - flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET; - out_uint32_le(g_out_s, pWindow->drawable.width); /* client_area_width */ - out_uint32_le(g_out_s, pWindow->drawable.height); /* client_area_height */ - flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE; - out_uint32_le(g_out_s, 0); /* rp_content */ - out_uint32_le(g_out_s, root_id); /* root_parent_handle */ - flags |= WINDOW_ORDER_FIELD_ROOT_PARENT; - out_uint32_le(g_out_s, pWindow->drawable.x); /* window_offset_x */ - out_uint32_le(g_out_s, pWindow->drawable.y); /* window_offset_y */ - flags |= WINDOW_ORDER_FIELD_WND_OFFSET; - out_uint32_le(g_out_s, 0); /* window_client_delta_x */ - out_uint32_le(g_out_s, 0); /* window_client_delta_y */ - flags |= WINDOW_ORDER_FIELD_WND_CLIENT_DELTA; - out_uint32_le(g_out_s, pWindow->drawable.width); /* window_width */ - out_uint32_le(g_out_s, pWindow->drawable.height); /* window_height */ - flags |= WINDOW_ORDER_FIELD_WND_SIZE; - out_uint16_le(g_out_s, num_window_rects); /* num_window_rects */ - - for (index = 0; index < num_window_rects; index++) - { - out_uint16_le(g_out_s, 0); /* left */ - out_uint16_le(g_out_s, 0); /* top */ - out_uint16_le(g_out_s, pWindow->drawable.width); /* right */ - out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */ - } - - flags |= WINDOW_ORDER_FIELD_WND_RECTS; - out_uint32_le(g_out_s, pWindow->drawable.x); /* visible_offset_x */ - out_uint32_le(g_out_s, pWindow->drawable.y); /* visible_offset_y */ - flags |= WINDOW_ORDER_FIELD_VIS_OFFSET; - out_uint16_le(g_out_s, num_visibility_rects); /* num_visibility_rects */ - - for (index = 0; index < num_visibility_rects; index++) - { - out_uint16_le(g_out_s, 0); /* left */ - out_uint16_le(g_out_s, 0); /* top */ - out_uint16_le(g_out_s, pWindow->drawable.width); /* right */ - out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */ - } - - flags |= WINDOW_ORDER_FIELD_VISIBILITY; - - out_uint32_le(g_out_s, flags); /* flags */ - } -} - -/******************************************************************************/ -void -rdpup_delete_window(WindowPtr pWindow, rdpWindowRec *priv) -{ - LLOGLN(10, ("rdpup_delete_window: id 0x%8.8x", - (int)(pWindow->drawable.id))); - - if (g_connected) - { - rdpup_pre_check(8); - out_uint16_le(g_out_s, 26); - out_uint16_le(g_out_s, 8); - g_count++; - out_uint32_le(g_out_s, pWindow->drawable.id); /* window_id */ - } -} - -/******************************************************************************/ -void -rdpup_show_window(WindowPtr pWindow, rdpWindowRec* priv, int showState) -{ - LLOGLN(10, ("rdpup_show_window: id 0x%8.8x state 0x%x", pWindow->drawable.id, - showState)); - if (g_connected) - { - int flags = WINDOW_ORDER_TYPE_WINDOW; - - rdpup_pre_check(16); - out_uint16_le(g_out_s, 27); - out_uint16_le(g_out_s, 16); - g_count++; - out_uint32_le(g_out_s, pWindow->drawable.id); - flags |= WINDOW_ORDER_FIELD_SHOW; - out_uint32_le(g_out_s, flags); - out_uint32_le(g_out_s, showState); - } -} - -/******************************************************************************/ -int -rdpup_check_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec *pDirtyPriv) -{ - int index; - int clip_index; - int count; - int num_clips; - BoxRec box; - xSegment *seg; - struct image_data id; - struct rdp_draw_item *di; - struct rdp_text* rtext; - struct rdp_text* trtext; - - if (pDirtyPriv == 0) - { - return 0; - } - - if (pDirtyPriv->is_dirty == 0) - { - return 0; - } - - LLOGLN(10, ("rdpup_check_dirty: got dirty")); - rdpup_switch_os_surface(pDirtyPriv->rdpindex); - rdpup_get_pixmap_image_rect(pDirtyPixmap, &id); - rdpup_begin_update(); - draw_item_pack(pDirtyPixmap, pDirtyPriv); - di = pDirtyPriv->draw_item_head; - - while (di != 0) - { - LLOGLN(10, ("rdpup_check_dirty: type %d", di->type)); - - switch (di->type) - { - case RDI_FILL: - rdpup_set_fgcolor(di->u.fill.fg_color); - rdpup_set_opcode(di->u.fill.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_FILL %d %d %d %d", box.x1, box.y1, - box.x2, box.y2)); - rdpup_fill_rect(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - break; - case RDI_IMGLL: - rdpup_set_hints(1, 1); - rdpup_set_opcode(di->u.img.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_IMGLL %d %d %d %d", box.x1, box.y1, - box.x2, box.y2)); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - rdpup_set_hints(0, 1); - break; - case RDI_IMGLY: - rdpup_set_opcode(di->u.img.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_IMGLY %d %d %d %d", box.x1, box.y1, - box.x2, box.y2)); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - break; - case RDI_LINE: - LLOGLN(10, (" RDI_LINE")); - num_clips = REGION_NUM_RECTS(di->reg); - - if (num_clips > 0) - { - rdpup_set_fgcolor(di->u.line.fg_color); - rdpup_set_opcode(di->u.line.opcode); - rdpup_set_pen(0, di->u.line.width); - - for (clip_index = num_clips - 1; clip_index >= 0; clip_index--) - { - box = REGION_RECTS(di->reg)[clip_index]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - - for (index = 0; index < di->u.line.nseg; index++) - { - seg = di->u.line.segs + index; - LLOGLN(10, (" RDI_LINE %d %d %d %d", seg->x1, seg->y1, - seg->x2, seg->y2)); - rdpup_draw_line(seg->x1, seg->y1, seg->x2, seg->y2); - } - } - } - - rdpup_reset_clip(); - rdpup_set_opcode(GXcopy); - break; - case RDI_SCRBLT: - LLOGLN(10, (" RDI_SCRBLT")); - break; - case RDI_TEXT: - LLOGLN(10, (" RDI_TEXT")); - num_clips = REGION_NUM_RECTS(di->reg); - if (num_clips > 0) - { - LLOGLN(10, (" num_clips %d", num_clips)); - rdpup_set_fgcolor(di->u.text.fg_color); - rdpup_set_opcode(di->u.text.opcode); - rtext = di->u.text.rtext; - trtext = rtext; - while (trtext != 0) - { - rdp_text_chars_to_data(trtext); - for (clip_index = num_clips - 1; clip_index >= 0; clip_index--) - { - box = REGION_RECTS(di->reg)[clip_index]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - LLOGLN(10, (" %d %d %d %d", box.x1, box.y1, box.x2, box.y2)); - box = RegionExtents(trtext->reg)[0]; - rdpup_draw_text(trtext->font, trtext->flags, trtext->mixmode, - box.x1, box.y1, box.x2, box.y2, - //box.x1, box.y1, box.x2, box.y2, - 0, 0, 0, 0, - trtext->x, trtext->y, trtext->data, trtext->data_bytes); - } - trtext = trtext->next; - } - } - rdpup_reset_clip(); - rdpup_set_opcode(GXcopy); - break; - } - - di = di->next; - } - - draw_item_remove_all(pDirtyPriv); - rdpup_end_update(); - pDirtyPriv->is_dirty = 0; - rdpup_switch_os_surface(-1); - return 0; -} - -/******************************************************************************/ -int -rdpup_check_dirty_screen(rdpPixmapRec *pDirtyPriv) -{ - int index; - int clip_index; - int count; - int num_clips; - BoxRec box; - xSegment *seg; - struct image_data id; - struct rdp_draw_item *di; - - if (pDirtyPriv == 0) - { - return 0; - } - - if (pDirtyPriv->is_dirty == 0) - { - return 0; - } - - LLOGLN(10, ("rdpup_check_dirty_screen: got dirty")); - rdpup_get_screen_image_rect(&id); - rdpup_begin_update(); - draw_item_pack(0, pDirtyPriv); - di = pDirtyPriv->draw_item_head; - - while (di != 0) - { - LLOGLN(10, ("rdpup_check_dirty_screen: type %d", di->type)); - - switch (di->type) - { - case RDI_FILL: - rdpup_set_fgcolor(di->u.fill.fg_color); - rdpup_set_opcode(di->u.fill.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_FILL %d %d %d %d", box.x1, box.y1, - box.x2, box.y2)); - rdpup_fill_rect(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - break; - case RDI_IMGLL: - rdpup_set_hints(1, 1); - rdpup_set_opcode(di->u.img.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_IMGLL x %d y %d w %d h %d", box.x1, box.y1, - box.x2 - box.x1, box.y2 - box.y1)); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - rdpup_set_hints(0, 1); - break; - case RDI_IMGLY: - rdpup_set_opcode(di->u.img.opcode); - count = REGION_NUM_RECTS(di->reg); - - for (index = 0; index < count; index++) - { - box = REGION_RECTS(di->reg)[index]; - LLOGLN(10, (" RDI_IMGLY %d %d %d %d", box.x1, box.y1, - box.x2, box.y2)); - rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1, - box.y2 - box.y1); - } - - rdpup_set_opcode(GXcopy); - break; - case RDI_LINE: - LLOGLN(10, (" RDI_LINE")); - num_clips = REGION_NUM_RECTS(di->reg); - - if (num_clips > 0) - { - rdpup_set_fgcolor(di->u.line.fg_color); - rdpup_set_opcode(di->u.line.opcode); - rdpup_set_pen(0, di->u.line.width); - - for (clip_index = num_clips - 1; clip_index >= 0; clip_index--) - { - box = REGION_RECTS(di->reg)[clip_index]; - rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1); - - for (index = 0; index < di->u.line.nseg; index++) - { - seg = di->u.line.segs + index; - LLOGLN(10, (" RDI_LINE %d %d %d %d", seg->x1, seg->y1, - seg->x2, seg->y2)); - rdpup_draw_line(seg->x1, seg->y1, seg->x2, seg->y2); - } - } - } - - rdpup_reset_clip(); - rdpup_set_opcode(GXcopy); - break; - case RDI_SCRBLT: - LLOGLN(10, (" RDI_SCRBLT")); - break; - } - - di = di->next; - } - - draw_item_remove_all(pDirtyPriv); - rdpup_end_update(); - pDirtyPriv->is_dirty = 0; - return 0; -} - -/******************************************************************************/ -int -rdpup_check_alpha_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec* pDirtyPriv) -{ - struct image_data id; - - LLOGLN(10, ("rdpup_check_alpha_dirty: width %d height %d", - pDirtyPixmap->drawable.width, pDirtyPixmap->drawable.height)); - if (pDirtyPriv == 0) - { - return 0; - } - LLOGLN(10, ("rdpup_check_alpha_dirty: is_alpha_dirty_not %d", - pDirtyPriv->is_alpha_dirty_not)); - if (pDirtyPriv->is_alpha_dirty_not) - { - return 0; - } - pDirtyPriv->is_alpha_dirty_not = 1; - rdpup_switch_os_surface(pDirtyPriv->rdpindex); - rdpup_get_pixmap_image_rect(pDirtyPixmap, &id); - rdpup_begin_update(); - rdpup_send_alpha_area(&id, 0, 0, pDirtyPixmap->drawable.width, - pDirtyPixmap->drawable.height); - rdpup_end_update(); - rdpup_switch_os_surface(-1); - return 0; -} - -/******************************************************************************/ -int -rdpup_add_char(int font, int character, short x, short y, int cx, int cy, - char* bmpdata, int bmpdata_bytes) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_add_char")); - rdpup_pre_check(18 + bmpdata_bytes); - out_uint16_le(g_out_s, 28); /* add char */ - out_uint16_le(g_out_s, 18 + bmpdata_bytes); /* size */ - g_count++; - out_uint16_le(g_out_s, font); - out_uint16_le(g_out_s, character); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - out_uint16_le(g_out_s, bmpdata_bytes); - out_uint8a(g_out_s, bmpdata, bmpdata_bytes); - } - return 0; -} - -/******************************************************************************/ -int -rdpup_add_char_alpha(int font, int character, short x, short y, int cx, int cy, - char* bmpdata, int bmpdata_bytes) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_add_char_alpha")); - rdpup_pre_check(18 + bmpdata_bytes); - out_uint16_le(g_out_s, 29); /* add char alpha */ - out_uint16_le(g_out_s, 18 + bmpdata_bytes); /* size */ - g_count++; - out_uint16_le(g_out_s, font); - out_uint16_le(g_out_s, character); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, cx); - out_uint16_le(g_out_s, cy); - out_uint16_le(g_out_s, bmpdata_bytes); - out_uint8a(g_out_s, bmpdata, bmpdata_bytes); - } - return 0; -} - -/******************************************************************************/ -int -rdpup_draw_text(int font, int flags, int mixmode, - short clip_left, short clip_top, - short clip_right, short clip_bottom, - short box_left, short box_top, - short box_right, short box_bottom, short x, short y, - char* data, int data_bytes) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_draw_text")); - rdpup_pre_check(32 + data_bytes); - out_uint16_le(g_out_s, 30); /* draw text */ - out_uint16_le(g_out_s, 32 + data_bytes); /* size */ - g_count++; - out_uint16_le(g_out_s, font); - out_uint16_le(g_out_s, flags); - out_uint16_le(g_out_s, mixmode); - out_uint16_le(g_out_s, clip_left); - out_uint16_le(g_out_s, clip_top); - out_uint16_le(g_out_s, clip_right); - out_uint16_le(g_out_s, clip_bottom); - out_uint16_le(g_out_s, box_left); - out_uint16_le(g_out_s, box_top); - out_uint16_le(g_out_s, box_right); - out_uint16_le(g_out_s, box_bottom); - out_uint16_le(g_out_s, x); - out_uint16_le(g_out_s, y); - out_uint16_le(g_out_s, data_bytes); - out_uint8a(g_out_s, data, data_bytes); - } - return 0; -} - -/******************************************************************************/ -int -rdpup_composite(short srcidx, int srcformat, short srcwidth, CARD8 srcrepeat, - PictTransform* srctransform, CARD8 mskflags, - short mskidx, int mskformat, short mskwidth, CARD8 mskrepeat, - CARD8 op, short srcx, short srcy, short mskx, short msky, - short dstx, short dsty, short width, short height, - int dstformat) -{ - if (g_connected) - { - LLOGLN(10, (" rdpup_composite")); - rdpup_pre_check(84); - out_uint16_le(g_out_s, 33); - out_uint16_le(g_out_s, 84); /* size */ - g_count++; - out_uint16_le(g_out_s, srcidx); - out_uint32_le(g_out_s, srcformat); - out_uint16_le(g_out_s, srcwidth); - out_uint8(g_out_s, srcrepeat); - if (srctransform == 0) - { - out_uint8s(g_out_s, 10 * 4); - } - else - { - out_uint32_le(g_out_s, 1); - out_uint32_le(g_out_s, srctransform->matrix[0][0]); - out_uint32_le(g_out_s, srctransform->matrix[0][1]); - out_uint32_le(g_out_s, srctransform->matrix[0][2]); - out_uint32_le(g_out_s, srctransform->matrix[1][0]); - out_uint32_le(g_out_s, srctransform->matrix[1][1]); - out_uint32_le(g_out_s, srctransform->matrix[1][2]); - out_uint32_le(g_out_s, srctransform->matrix[2][0]); - out_uint32_le(g_out_s, srctransform->matrix[2][1]); - out_uint32_le(g_out_s, srctransform->matrix[2][2]); - } - out_uint8(g_out_s, mskflags); - out_uint16_le(g_out_s, mskidx); - out_uint32_le(g_out_s, mskformat); - out_uint16_le(g_out_s, mskwidth); - out_uint8(g_out_s, mskrepeat); - out_uint8(g_out_s, op); - out_uint16_le(g_out_s, srcx); - out_uint16_le(g_out_s, srcy); - out_uint16_le(g_out_s, mskx); - out_uint16_le(g_out_s, msky); - out_uint16_le(g_out_s, dstx); - out_uint16_le(g_out_s, dsty); - out_uint16_le(g_out_s, width); - out_uint16_le(g_out_s, height); - out_uint32_le(g_out_s, dstformat); - } - return 0; -} diff --git a/xorg/X11R7.6/rdp/rdpxv.c b/xorg/X11R7.6/rdp/rdpxv.c deleted file mode 100644 index 99fbd993..00000000 --- a/xorg/X11R7.6/rdp/rdpxv.c +++ /dev/null @@ -1,448 +0,0 @@ -/* -Copyright 2013 Jay Sorg - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -XVideo extension - -*/ - -#include "rdp.h" - -#include -#include -#include "xvdix.h" - -#include - -extern rdpScreenInfoRec g_rdpScreen; /* from rdpmain.c */ - -static DevPrivateKey g_XvScreenKey; -static char g_xv_adaptor_name[] = "xrdp XVideo adaptor"; -static char g_xv_encoding_name[] = "XV_IMAGE"; - -#define GET_XV_SCREEN(pScreen) \ - ((XvScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, g_XvScreenKey)) - -#define LOG_LEVEL 1 -#define LLOG(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0) -#define LLOGLN(_level, _args) \ - do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0) - -#define T_NUM_ENCODINGS 1 -static XvEncodingRec g_encodings[T_NUM_ENCODINGS]; - -#define T_NUM_FORMATS 1 -static XvFormatRec g_formats[T_NUM_FORMATS]; - -#define T_NUM_PORTS 1 -static XvPortRec g_ports[T_NUM_PORTS]; - -#define FOURCC_RV15 0x35315652 -#define FOURCC_RV16 0x36315652 -#define FOURCC_RV24 0x34325652 -#define FOURCC_RV32 0x32335652 - -#define T_NUM_IMAGES 8 -static XvImageRec g_images[T_NUM_IMAGES] = -{ - { - FOURCC_RV15,XvRGB,LSBFirst, - {'R','V','1','5',0,0,0,0,0,0,0,0,0,0,0,0}, - 16, XvPacked, 1, 15, 0x001f, 0x03e0, 0x7c00, 0, 0, 0, 0, 0, 0, 0, 0, 0, - {'R','V','B',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - XvTopToBottom - }, - { - FOURCC_RV16,XvRGB,LSBFirst, - {'R','V','1','6',0,0,0,0,0,0,0,0,0,0,0,0}, - 16, XvPacked, 1, 16, 0x001f, 0x07e0, 0xf800, 0, 0, 0, 0, 0, 0, 0, 0, 0, - {'R','V','B',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - XvTopToBottom - }, - { - FOURCC_RV24,XvRGB,LSBFirst, - {'R','V','2','4',0,0,0,0,0,0,0,0,0,0,0,0}, - 32, XvPacked, 1, 24, 0x000000ff, 0x0000ff00, 0x00ff0000, 0, 0, 0, 0, 0, 0, 0, 0, 0, - {'R','V','B',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - XvTopToBottom - }, - { - FOURCC_RV32, XvRGB, LSBFirst, - {'R','V','3','2',0,0,0,0,0,0,0,0,0,0,0,0}, - 32, XvPacked, 1, 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0, 0, 0, 0, 0, 0, 0, 0, 0, - {'R','V','B',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - XvTopToBottom - }, - XVIMAGE_YV12, - XVIMAGE_YUY2, - XVIMAGE_UYVY, - XVIMAGE_I420 -}; - -/*****************************************************************************/ -static int -rdpXvAllocatePort(unsigned long port, XvPortPtr pPort, XvPortPtr* ppPort) -{ - LLOGLN(0, ("rdpXvAllocatePort:")); - *ppPort = pPort; - return Success; -} - -/*****************************************************************************/ -static int -rdpXvFreePort(XvPortPtr pPort) -{ - LLOGLN(0, ("rdpXvFreePort:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvPutVideo(ClientPtr client, DrawablePtr pDraw, XvPortPtr pPort, GCPtr pGC, - INT16 vid_x, INT16 vid_y, CARD16 vid_w, CARD16 vid_h, - INT16 drw_x, INT16 drw_y, CARD16 drw_w, CARD16 drw_h) -{ - LLOGLN(0, ("rdpXvPutVideo:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvPutStill(ClientPtr client, DrawablePtr pDraw, XvPortPtr pPort, GCPtr pGC, - INT16 vid_x, INT16 vid_y, CARD16 vid_w, CARD16 vid_h, - INT16 drw_x, INT16 drw_y, CARD16 drw_w, CARD16 drw_h) -{ - LLOGLN(0, ("rdpXvPutStill:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvGetVideo(ClientPtr client, DrawablePtr pDraw, XvPortPtr pPort, GCPtr pGC, - INT16 vid_x, INT16 vid_y, CARD16 vid_w, CARD16 vid_h, - INT16 drw_x, INT16 drw_y, CARD16 drw_w, CARD16 drw_h) -{ - LLOGLN(0, ("rdpXvGetVideo:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvGetStill(ClientPtr client, DrawablePtr pDraw, XvPortPtr pPort, GCPtr pGC, - INT16 vid_x, INT16 vid_y, CARD16 vid_w, CARD16 vid_h, - INT16 drw_x, INT16 drw_y, CARD16 drw_w, CARD16 drw_h) -{ - LLOGLN(0, ("rdpXvGetStill:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw) -{ - LLOGLN(0, ("rdpXvStopVideo:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvSetPortAttribute(ClientPtr client, XvPortPtr pPort, Atom attribute, - INT32 value) -{ - LLOGLN(0, ("rdpXvSetPortAttribute:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvGetPortAttribute(ClientPtr client, XvPortPtr pPort, Atom attribute, - INT32* p_value) -{ - LLOGLN(0, ("rdpXvGetPortAttribute:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvQueryBestSize(ClientPtr client, XvPortPtr pPort, CARD8 motion, - CARD16 vid_w, CARD16 vid_h, CARD16 drw_w, CARD16 drw_h, - unsigned int *p_w, unsigned int *p_h) -{ - LLOGLN(0, ("rdpXvQueryBestSize:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvPutImage(ClientPtr client, DrawablePtr pDraw, XvPortPtr pPort, GCPtr pGC, - INT16 src_x, INT16 src_y, CARD16 src_w, CARD16 src_h, - INT16 drw_x, INT16 drw_y, CARD16 drw_w, CARD16 drw_h, - XvImagePtr format, unsigned char* data, Bool sync, - CARD16 width, CARD16 height) -{ - LLOGLN(0, ("rdpXvPutImage:")); - return Success; -} - -/*****************************************************************************/ -static int -rdpXvPrintFormat(int id) -{ - switch (id) - { - case FOURCC_YV12: - /* big buck bunny 480p h264 */ - /* vob files too */ - LLOGLN(0, ("FOURCC_YV12")); - break; - case FOURCC_I420: - LLOGLN(0, ("FOURCC_I420")); - break; - case FOURCC_RV15: - LLOGLN(0, ("FOURCC_RV15")); - break; - case FOURCC_RV16: - LLOGLN(0, ("FOURCC_RV16")); - break; - case FOURCC_YUY2: - LLOGLN(0, ("FOURCC_YUY2")); - break; - case FOURCC_UYVY: - LLOGLN(0, ("FOURCC_UYVY")); - break; - case FOURCC_RV24: - LLOGLN(0, ("FOURCC_RV24")); - break; - default: - LLOGLN(0, ("other")); - break; - } - return 0; -} - -/*****************************************************************************/ -static int -rdpXvQueryImageAttributes(ClientPtr client, XvPortPtr pPort, XvImagePtr format, - CARD16* width, CARD16* height, int* pitches, - int* offsets) -{ - int size; - int tmp; - - LLOGLN(0, ("rdpXvQueryImageAttributes:")); - - - size = 0; - /* this is same code as all drivers currently have */ - if (*width > 2046) - { - *width = 2046; - } - if (*height > 2046) - { - *height = 2046; - } - /* make w multiple of 4 so that resizing works properly */ - *width = (*width + 3) & ~3; - if (offsets) - { - offsets[0] = 0; - } - LLOGLN(0, ("format %x", format->id)); - rdpXvPrintFormat(format->id); - switch (format->id) - { - case FOURCC_YV12: - case FOURCC_I420: - /* make h be even */ - *height = (*height + 1) & ~1; - /* make w be multiple of 4 (ie. pad it) */ - size = (*width + 3) & ~3; - /* width of a Y row => width of image */ - if (pitches != 0) - { - pitches[0] = size; - } - /* offset of U plane => w*h */ - size *= *height; - if (offsets != 0) - { - offsets[1] = size; - } - /* width of U, V row => width/2 */ - tmp = ((*width >> 1) +3) & ~3; - if (pitches != 0) - { - pitches[1] = pitches[2] = tmp; - } - /* offset of V => Y plane + U plane (w*h + w/2*h/2) */ - tmp *= (*height >> 1); - size += tmp; - size += tmp; - if (offsets != 0) - { - offsets[2] = size; - } - size += tmp; - break; - case FOURCC_RV15: - case FOURCC_RV16: - case FOURCC_YUY2: - case FOURCC_UYVY: - size = (*width) * 2; - if (pitches) - { - pitches[0] = size; - } - size *= *height; - break; - case FOURCC_RV24: - size = (*width) * 3; - if (pitches) - { - pitches[0] = size; - } - size *= *height; - break; - default: - LLOGLN(0, ("rdpXvQueryImageAttributes: error")); - break; - } - return size; -} - -/*****************************************************************************/ -static Bool -rdpXvCloseScreen(int i, ScreenPtr pScreen) -{ - XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); - - LLOGLN(0, ("rdpXvCloseScreen:")); - free(pxvs->pAdaptors); - return 0; -} - -/*****************************************************************************/ -static int -rdpXvQueryAdaptors(ScreenPtr pScreen, XvAdaptorPtr* p_pAdaptors, - int* p_nAdaptors) -{ - XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); - - LLOGLN(0, ("rdpXvQueryAdaptors:")); - *p_nAdaptors = pxvs->nAdaptors; - *p_pAdaptors = pxvs->pAdaptors; - return Success; -} - -#ifdef MITSHM -#endif - -/*****************************************************************************/ -static int -rdpXvInitAdaptors(ScreenPtr pScreen) -{ - XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); - XvAdaptorPtr pAdaptor; - - pAdaptor = malloc(sizeof(XvAdaptorRec)); - memset(pAdaptor, 0, sizeof(XvAdaptorRec)); - pAdaptor->type = XvInputMask | XvOutputMask | XvImageMask | - XvVideoMask | XvStillMask; - pAdaptor->pScreen = pScreen; - - pAdaptor->name = g_xv_adaptor_name; - - pAdaptor->nEncodings = T_NUM_ENCODINGS; - pAdaptor->pEncodings = g_encodings; - - pAdaptor->nFormats = T_NUM_FORMATS; - pAdaptor->pFormats = g_formats; - - pAdaptor->nImages = T_NUM_IMAGES; - pAdaptor->pImages = g_images; - - pAdaptor->nPorts = T_NUM_PORTS; - pAdaptor->pPorts = g_ports; - - pAdaptor->ddAllocatePort = rdpXvAllocatePort; - pAdaptor->ddFreePort = rdpXvFreePort; - pAdaptor->ddPutVideo = rdpXvPutVideo; - pAdaptor->ddPutStill = rdpXvPutStill; - pAdaptor->ddGetVideo = rdpXvGetVideo; - pAdaptor->ddGetStill = rdpXvGetStill; - pAdaptor->ddStopVideo = rdpXvStopVideo; - pAdaptor->ddSetPortAttribute = rdpXvSetPortAttribute; - pAdaptor->ddGetPortAttribute = rdpXvGetPortAttribute; - pAdaptor->ddQueryBestSize = rdpXvQueryBestSize; - pAdaptor->ddPutImage = rdpXvPutImage; - pAdaptor->ddQueryImageAttributes = rdpXvQueryImageAttributes; - - pxvs->pAdaptors = pAdaptor; - - memset(g_encodings, 0, sizeof(g_encodings)); - g_encodings[0].id = FakeClientID(0); - g_encodings[0].pScreen = pScreen; - g_encodings[0].name = g_xv_encoding_name; - g_encodings[0].width = 2046; - g_encodings[0].height = 2046; - g_encodings[0].rate.numerator = 1; - g_encodings[0].rate.denominator = 1; - - memset(g_formats, 0, sizeof(g_formats)); - g_formats[0].depth = g_rdpScreen.depth; - g_formats[0].visual = pScreen->rootVisual; - - memset(g_ports, 0, sizeof(g_ports)); - g_ports[0].id = FakeClientID(0); - g_ports[0].pAdaptor = pAdaptor; - g_ports[0].pNotify = 0; - g_ports[0].pDraw = 0; - g_ports[0].grab.id = 0; - g_ports[0].grab.client = 0; - g_ports[0].time = currentTime; - g_ports[0].devPriv.ptr = 0; - - pAdaptor->base_id = g_ports[0].id; - - AddResource(g_ports[0].id, XvRTPort, g_ports); - - pxvs->nAdaptors = 1; - pxvs->pAdaptors = pAdaptor; - - return 0; -} - -/*****************************************************************************/ -/* returns error */ -int -rdpXvInit(ScreenPtr pScreen) -{ - XvScreenPtr pxvs; - - LLOGLN(0, ("rdpXvInit:")); - XvScreenInit(pScreen); - g_XvScreenKey = XvGetScreenKey(); - pxvs = GET_XV_SCREEN(pScreen); - pxvs->nAdaptors = 0; - pxvs->ddCloseScreen = rdpXvCloseScreen; - pxvs->ddQueryAdaptors = rdpXvQueryAdaptors; - rdpXvInitAdaptors(pScreen); - return 0; -} diff --git a/xorg/X11R7.6/x11_file_list.txt b/xorg/X11R7.6/x11_file_list.txt deleted file mode 100644 index c1c7de80..00000000 --- a/xorg/X11R7.6/x11_file_list.txt +++ /dev/null @@ -1,101 +0,0 @@ -util-macros-1.11.0.tar.bz2 : util-macros-1.11.0 : -xf86driproto-2.1.0.tar.bz2 : xf86driproto-2.1.0 : -dri2proto-2.3.tar.bz2 : dri2proto-2.3 : -glproto-1.4.12.tar.bz2 : glproto-1.4.12 : -libpciaccess-0.12.0.tar.bz2 : libpciaccess-0.12.0 : -libpthread-stubs-0.3.tar.bz2 : libpthread-stubs-0.3 : -libdrm-2.4.26.tar.bz2 : libdrm-2.4.26 : -damageproto-1.2.1.tar.bz2 : damageproto-1.2.1 : -xproto-7.0.20.tar.bz2 : xproto-7.0.20 : -makedepend-1.0.3.tar.bz2 : makedepend-1.0.3 : -libxml2-sources-2.7.8.tar.gz : libxml2-2.7.8 : -libpng-1.2.46.tar.gz : libpng-1.2.46 : -pixman-0.30.0.tar.bz2 : pixman-0.30.0 : --disable-gtk -freetype-2.4.6.tar.bz2 : freetype-2.4.6 : -fontconfig-2.8.0.tar.gz : fontconfig-2.8.0 : --disable-docs -cairo-1.8.8.tar.gz : cairo-1.8.8 : -expat-2.0.1.tar.gz : expat-2.0.1 : -xextproto-7.1.2.tar.bz2 : xextproto-7.1.2 : -xcb-proto-1.6.tar.bz2 : xcb-proto-1.6 : -libXau-1.0.6.tar.bz2 : libXau-1.0.6 : -libXdmcp-1.1.0.tar.bz2 : libXdmcp-1.1.0 : -libxcb-1.7.tar.bz2 : libxcb-1.7 : -xtrans-1.2.6.tar.bz2 : xtrans-1.2.6 : -kbproto-1.0.5.tar.bz2 : kbproto-1.0.5 : -inputproto-2.0.1.tar.bz2 : inputproto-2.0.1 : -libX11-1.4.0.tar.bz2 : libX11-1.4.0 : -libXext-1.2.0.tar.bz2 : libXext-1.2.0 : -libICE-1.0.7.tar.bz2 : libICE-1.0.7 : -libSM-1.2.0.tar.bz2 : libSM-1.2.0 : -libXt-1.0.9.tar.bz2 : libXt-1.0.9 : -fixesproto-4.1.2.tar.bz2 : fixesproto-4.1.2 : -libXfixes-4.0.5.tar.bz2 : libXfixes-4.0.5 : -libXdamage-1.1.3.tar.bz2 : libXdamage-1.1.3 : -MesaLib-7.10.3.tar.bz2 : Mesa-7.10.3 : --with-expat=$PREFIX_DIR --disable-gallium -randrproto-1.3.2.tar.bz2 : randrproto-1.3.2 : -renderproto-0.11.1.tar.bz2 : renderproto-0.11.1 : -xcmiscproto-1.2.1.tar.bz2 : xcmiscproto-1.2.1 : -xf86vidmodeproto-2.3.tar.bz2 : xf86vidmodeproto-2.3 : -xf86bigfontproto-1.2.0.tar.bz2 : xf86bigfontproto-1.2.0 : -scrnsaverproto-1.2.1.tar.bz2 : scrnsaverproto-1.2.1 : -bigreqsproto-1.1.1.tar.bz2 : bigreqsproto-1.1.1 : -resourceproto-1.1.1.tar.bz2 : resourceproto-1.1.1 : -fontsproto-2.1.1.tar.bz2 : fontsproto-2.1.1 : -xf86dgaproto-2.1.tar.bz2 : xf86dgaproto-2.1 : -videoproto-2.3.1.tar.bz2 : videoproto-2.3.1 : -compositeproto-0.4.2.tar.bz2 : compositeproto-0.4.2 : -recordproto-1.14.1.tar.bz2 : recordproto-1.14.1 : -xineramaproto-1.2.tar.bz2 : xineramaproto-1.2 : -libxslt-1.1.26.tar.gz : libxslt-1.1.26 : -libxkbfile-1.0.7.tar.bz2 : libxkbfile-1.0.7 : -libfontenc-1.1.0.tar.bz2 : libfontenc-1.1.0 : -libXfont-1.4.3.tar.bz2 : libXfont-1.4.3 : -libXmu-1.1.0.tar.bz2 : libXmu-1.1.0 : -libXxf86vm-1.1.1.tar.bz2 : libXxf86vm-1.1.1 : -libXpm-3.5.9.tar.bz2 : libXpm-3.5.9 : -libXaw-1.0.8.tar.bz2 : libXaw-1.0.8 : -mkfontdir-1.0.6.tar.bz2 : mkfontdir-1.0.6 : -mkfontscale-1.0.8.tar.bz2 : mkfontscale-1.0.8 : -xkbcomp-1.2.0.tar.bz2 : xkbcomp-1.2.0 : -xdriinfo-1.0.4.tar.bz2 : xdriinfo-1.0.4 : -applewmproto-1.4.1.tar.bz2 : applewmproto-1.4.1 : -xorg-server-1.9.3.tar.bz2 : xorg-server-1.9.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 --with-sha1=libcrypto --disable-dmx --without-dtrace -bdftopcf-1.0.3.tar.bz2 : bdftopcf-1.0.3 : -intltool-0.41.1.tar.gz : intltool-0.41.1 : -xkeyboard-config-2.0.tar.bz2 : xkeyboard-config-2.0 : -font-util-1.2.0.tar.bz2 : font-util-1.2.0 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-adobe-75dpi-1.0.3.tar.bz2 : font-adobe-75dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-adobe-100dpi-1.0.3.tar.bz2 : font-adobe-100dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-adobe-utopia-75dpi-1.0.4.tar.bz2 : font-adobe-utopia-75dpi-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-adobe-utopia-100dpi-1.0.4.tar.bz2 : font-adobe-utopia-100dpi-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-adobe-utopia-type1-1.0.4.tar.bz2 : font-adobe-utopia-type1-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-alias-1.0.3.tar.bz2 : font-alias-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-arabic-misc-1.0.3.tar.bz2 : font-arabic-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-75dpi-1.0.3.tar.bz2 : font-bh-75dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-100dpi-1.0.3.tar.bz2 : font-bh-100dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2 : font-bh-lucidatypewriter-75dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2 : font-bh-lucidatypewriter-100dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-ttf-1.0.3.tar.bz2 : font-bh-ttf-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bh-type1-1.0.3.tar.bz2 : font-bh-type1-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bitstream-75dpi-1.0.3.tar.bz2 : font-bitstream-75dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bitstream-100dpi-1.0.3.tar.bz2 : font-bitstream-100dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-bitstream-type1-1.0.3.tar.bz2 : font-bitstream-type1-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-cronyx-cyrillic-1.0.3.tar.bz2 : font-cronyx-cyrillic-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-cursor-misc-1.0.3.tar.bz2 : font-cursor-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-daewoo-misc-1.0.3.tar.bz2 : font-daewoo-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-dec-misc-1.0.3.tar.bz2 : font-dec-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-ibm-type1-1.0.3.tar.bz2 : font-ibm-type1-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-isas-misc-1.0.3.tar.bz2 : font-isas-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-jis-misc-1.0.3.tar.bz2 : font-jis-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-micro-misc-1.0.3.tar.bz2 : font-micro-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-misc-cyrillic-1.0.3.tar.bz2 : font-misc-cyrillic-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-misc-ethiopic-1.0.3.tar.bz2 : font-misc-ethiopic-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-misc-meltho-1.0.3.tar.bz2 : font-misc-meltho-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-misc-misc-1.1.2.tar.bz2 : font-misc-misc-1.1.2 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-mutt-misc-1.0.3.tar.bz2 : font-mutt-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-schumacher-misc-1.1.2.tar.bz2 : font-schumacher-misc-1.1.2 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-screen-cyrillic-1.0.4.tar.bz2 : font-screen-cyrillic-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-sony-misc-1.0.3.tar.bz2 : font-sony-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-sun-misc-1.0.3.tar.bz2 : font-sun-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-winitzki-cyrillic-1.0.3.tar.bz2 : font-winitzki-cyrillic-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 -font-xfree86-type1-1.0.4.tar.bz2 : font-xfree86-type1-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11 diff --git a/xorg/X11R7.6/xkeyboard-config-2.0.patch b/xorg/X11R7.6/xkeyboard-config-2.0.patch deleted file mode 100644 index a77f117a..00000000 --- a/xorg/X11R7.6/xkeyboard-config-2.0.patch +++ /dev/null @@ -1,88 +0,0 @@ -diff -rupP xkeyboard-config-2.0.orig/rules/HDR xkeyboard-config-2.0/rules/HDR ---- xkeyboard-config-2.0.orig/rules/HDR 2016-06-28 19:31:02.814647638 +0900 -+++ xkeyboard-config-2.0/rules/HDR 2016-06-28 19:33:58.251517616 +0900 -@@ -15,6 +15,7 @@ - ! model layout[3] variant[3] = symbols - ! model layout[4] variant[4] = symbols - ! model = symbols -+! model layout = symbols - ! layout variant = compat - ! layout[1] variant[1] = compat - ! layout[2] variant[2] = compat -diff -rupP xkeyboard-config-2.0.orig/rules/Makefile.am xkeyboard-config-2.0/rules/Makefile.am ---- xkeyboard-config-2.0.orig/rules/Makefile.am 2016-06-28 19:31:02.814647638 +0900 -+++ xkeyboard-config-2.0/rules/Makefile.am 2016-06-28 20:58:22.276629031 +0900 -@@ -41,6 +41,7 @@ HDR compat/base.ml2v2_s.part extras/bas - HDR compat/base.ml3v3_s.part extras/base.ml3v3_s.part \ - HDR compat/base.ml4v4_s.part extras/base.ml4v4_s.part \ - HDR base.m_s.part \ -+HDR base.ml_s1.part \ - HDR compat/base.lv_c.part \ - HDR compat/base.l1v1_c.part \ - HDR compat/base.l2v2_c.part \ -@@ -114,6 +115,7 @@ HDR extras/base.ml2v2_s.part \ - HDR extras/base.ml3v3_s.part \ - HDR extras/base.ml4v4_s.part \ - HDR base.m_s.part \ -+HDR base.ml_s1.part \ - HDR \ - HDR \ - HDR \ -@@ -183,6 +185,7 @@ base.ml2_s.part \ - base.ml3_s.part \ - base.ml4_s.part \ - base.m_s.part \ -+base.ml_s1.part \ - base.ml_c.part \ - base.ml1_c.part \ - base.m_t.part \ -diff -rupP xkeyboard-config-2.0.orig/rules/Makefile.in xkeyboard-config-2.0/rules/Makefile.in ---- xkeyboard-config-2.0.orig/rules/Makefile.in 2016-06-28 19:31:02.850647811 +0900 -+++ xkeyboard-config-2.0/rules/Makefile.in 2016-06-28 21:00:57.569398853 +0900 -@@ -239,6 +239,7 @@ SUBDIRS = bin compat extras - @USE_COMPAT_RULES_FALSE@HDR extras/base.ml3v3_s.part \ - @USE_COMPAT_RULES_FALSE@HDR extras/base.ml4v4_s.part \ - @USE_COMPAT_RULES_FALSE@HDR base.m_s.part \ -+@USE_COMPAT_RULES_FALSE@HDR base.ml_s1.part \ - @USE_COMPAT_RULES_FALSE@HDR \ - @USE_COMPAT_RULES_FALSE@HDR \ - @USE_COMPAT_RULES_FALSE@HDR \ -@@ -275,6 +276,7 @@ SUBDIRS = bin compat extras - @USE_COMPAT_RULES_TRUE@HDR compat/base.ml3v3_s.part extras/base.ml3v3_s.part \ - @USE_COMPAT_RULES_TRUE@HDR compat/base.ml4v4_s.part extras/base.ml4v4_s.part \ - @USE_COMPAT_RULES_TRUE@HDR base.m_s.part \ -+@USE_COMPAT_RULES_TRUE@HDR base.ml_s1.part \ - @USE_COMPAT_RULES_TRUE@HDR compat/base.lv_c.part \ - @USE_COMPAT_RULES_TRUE@HDR compat/base.l1v1_c.part \ - @USE_COMPAT_RULES_TRUE@HDR compat/base.l2v2_c.part \ -@@ -378,6 +380,7 @@ base.ml2_s.part \ - base.ml3_s.part \ - base.ml4_s.part \ - base.m_s.part \ -+base.ml_s1.part \ - base.ml_c.part \ - base.ml1_c.part \ - base.m_t.part \ -diff -rupP xkeyboard-config-2.0.orig/rules/base.ml_s1.part xkeyboard-config-2.0/rules/base.ml_s1.part ---- xkeyboard-config-2.0.orig/rules/base.ml_s1.part 1970-01-01 09:00:00.000000000 +0900 -+++ xkeyboard-config-2.0/rules/base.ml_s1.part 2016-06-28 19:59:05.238990192 +0900 -@@ -0,0 +1 @@ -+ $inetkbds jp = +jp(henkan) -diff -rupP xkeyboard-config-2.0.orig/symbols/jp xkeyboard-config-2.0/symbols/jp ---- xkeyboard-config-2.0.orig/symbols/jp 2016-06-28 19:31:03.046648788 +0900 -+++ xkeyboard-config-2.0/symbols/jp 2016-06-28 19:32:57.367215702 +0900 -@@ -105,6 +105,14 @@ xkb_symbols "common" { - }; - }; - -+partial alphanumeric_keys -+xkb_symbols "henkan" { -+ key { -+ type[Group1]= "PC_ALT_LEVEL2", -+ symbols[Group1]= [ Henkan, Mode_switch ] -+ }; -+}; -+ - // OADG109A map - partial alphanumeric_keys - xkb_symbols "OADG109A" { diff --git a/xorg/X11R7.6/xorg-server-1.9.3.patch b/xorg/X11R7.6/xorg-server-1.9.3.patch deleted file mode 100644 index db6591b9..00000000 --- a/xorg/X11R7.6/xorg-server-1.9.3.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/configure -+++ b/configure -@@ -21551,6 +21551,7 @@ - if test "x$with_sha1" = xlibcrypto; then - if test "x$HAVE_LIBCRYPTO" = xyes; then - SHA1_LIBS=-lcrypto -+ SHA1_CFLAGS="$OPENSSL_CFLAGS" - else - SHA1_LIBS="$OPENSSL_LIBS" - SHA1_CFLAGS="$OPENSSL_CFLAGS" diff --git a/xorg/debuild/debX11rdp.sh b/xorg/debuild/debX11rdp.sh deleted file mode 100755 index 23b1428e..00000000 --- a/xorg/debuild/debX11rdp.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# receives version, release number and source directory as arguments - -VERSION=$1 -RELEASE=$2 -SRCDIR=$3 -PKGDEST=$4 - -PACKDIR=x11rdp-files -DESTDIR=$PACKDIR/opt -NAME=x11rdp -ARCH=$( dpkg --print-architecture ) - - -sed -i -e "s/DUMMYVERINFO/$VERSION-$RELEASE/" $PACKDIR/DEBIAN/control -sed -i -e "s/DUMMYARCHINFO/$ARCH/" $PACKDIR/DEBIAN/control -# need a different delimiter, since it has a path -sed -i -e "s,DUMMYDIRINFO,$SRCDIR," $PACKDIR/DEBIAN/postinst - -mkdir -p $DESTDIR -cp -Rf $SRCDIR $DESTDIR -dpkg-deb --build $PACKDIR $PKGDEST/${NAME}_$VERSION-${RELEASE}_${ARCH}.deb - -# revert to initial state -rm -rf $DESTDIR -sed -i -e "s/$VERSION-$RELEASE/DUMMYVERINFO/" $PACKDIR/DEBIAN/control -sed -i -e "s/$ARCH/DUMMYARCHINFO/" $PACKDIR/DEBIAN/control -# need a different delimiter, since it has a path -sed -i -e "s,$SRCDIR,DUMMYDIRINFO," $PACKDIR/DEBIAN/postinst diff --git a/xorg/debuild/x11rdp-files/DEBIAN/control b/xorg/debuild/x11rdp-files/DEBIAN/control deleted file mode 100644 index 149e9a83..00000000 --- a/xorg/debuild/x11rdp-files/DEBIAN/control +++ /dev/null @@ -1,7 +0,0 @@ -Package: x11rdp -Version: DUMMYVERINFO -Section: unknown -Priority: optional -Architecture: DUMMYARCHINFO -Maintainer: Angulo Solido -Description: X11rdp backend for the xrdp remote access server diff --git a/xorg/debuild/x11rdp-files/DEBIAN/postinst b/xorg/debuild/x11rdp-files/DEBIAN/postinst deleted file mode 100755 index 241103af..00000000 --- a/xorg/debuild/x11rdp-files/DEBIAN/postinst +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -X11DIR=DUMMYDIRINFO - -# make the /usr/bin/X11rdp symbolic link if it doesn't exist... -if [ ! -e /usr/bin/X11rdp ] -then - if [ -e $X11DIR/bin/X11rdp ] - then - ln -s $X11DIR/bin/X11rdp /usr/bin/X11rdp - else - clear - echo "There was a problem... the $X11DIR/bin/X11rdp binary could not be found. Did the compilation complete?" - echo "Stopped. Please investigate what went wrong." - exit - fi -fi - diff --git a/xorg/readme.txt b/xorg/readme.txt deleted file mode 100644 index 55f2b4f1..00000000 --- a/xorg/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ - -xorg server readme diff --git a/xorg/tests/nx/client.sh b/xorg/tests/nx/client.sh deleted file mode 100755 index 5cb7de17..00000000 --- a/xorg/tests/nx/client.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -xhost + - -# delete chache directory for testing -rm -r .nx - -if ! [ -d .nx ] -then - mkdir .nx -fi - -export LD_LIBRARY_PATH=$PWD - -./nxproxy -S nx/nx,session=session,id=jay,root=.nx,connect=127.0.0.1:10,delta=1,stream=1,data=1 - diff --git a/xorg/tests/nx/server.sh b/xorg/tests/nx/server.sh deleted file mode 100755 index 56d8b120..00000000 --- a/xorg/tests/nx/server.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -export LD_LIBRARY_PATH=$PWD - -#./nxagent -R -bs -dpi 96 -geometry 1024x768 -noshpix -display nx/nx,link=adsl,delta=1,stream=1,data=1,a8taint=0,cache=4M:9 :9 - -# with cache -#./nxagent -D -bs -ac -dpi 96 -geometry 1024x768 -noshpix -display nx/nx,link=adsl,delta=1,stream=1,data=1,cache=4M:9 :9 - -# without cache -#./nxagent -D -bs -ac -dpi 96 -geometry 1024x768 -noshpix -display nx/nx,link=adsl,delta=1,stream=1,data=1,cache=0M:9 :9 - -# cache not set, defaulting, client script clears directory -./nxagent -D -bs -ac -dpi 96 -geometry 1024x768 -noshpix -display nx/nx,link=adsl,delta=1,stream=1,data=1:9 :9 diff --git a/xorg/tests/randr/Makefile b/xorg/tests/randr/Makefile deleted file mode 100644 index 3ab4280c..00000000 --- a/xorg/tests/randr/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - -CFLAGS = -O2 -Wall - -all: test-randr - -test-randr: trandr.c - gcc $(CFLAGS) trandr.c -o test-randr -lX11 -lXrandr - -.PHONY clean: - rm -f *.o test-randr - diff --git a/xorg/tests/randr/trandr.c b/xorg/tests/randr/trandr.c deleted file mode 100644 index 6c51a000..00000000 --- a/xorg/tests/randr/trandr.c +++ /dev/null @@ -1,146 +0,0 @@ -/** - * xrdp: A Remote Desktop Protocol server. - * - * Copyright (C) Jay Sorg 2013 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int -process_randr(Display *disp, Screen *screen, int screenNumber, Window win, - int event_base, XEvent *ev) -{ - XRRScreenChangeNotifyEvent *rr_screen_change_notify; - - switch (ev->type - event_base) - { - case RRScreenChangeNotify: - XRRUpdateConfiguration(ev); - rr_screen_change_notify = (XRRScreenChangeNotifyEvent *) ev; - printf("RRScreenChangeNotify: width %d height %d\n", - rr_screen_change_notify->width, - rr_screen_change_notify->height); - printf("DisplayWidth %d DisplayHeight %d\n", - DisplayWidth(disp, screenNumber), - DisplayHeight(disp, screenNumber)); - break; - } - return 0; -} - -int -main(int argc, char **argv) -{ - XEvent ev; - Display *disp; - Window win; - Window root_window; - Screen *screen; - int screenNumber; - int eventMask; - int white; - int black; - int rr_event_base; - int rr_error_base; - int ver_maj; - int ver_min; - int cont; - - disp = XOpenDisplay(0); - if (disp == 0) - { - printf("error opening display\n"); - return 1; - } - screenNumber = DefaultScreen(disp); - white = WhitePixel(disp, screenNumber); - black = BlackPixel(disp, screenNumber); - - screen = ScreenOfDisplay(disp, screenNumber); - root_window = RootWindowOfScreen(screen); - - eventMask = StructureNotifyMask; - XSelectInput(disp, root_window, eventMask); - - win = XCreateSimpleWindow(disp, root_window, 50, 50, 250, 250, - 0, black, white); - - XMapWindow(disp, win); - eventMask = StructureNotifyMask | VisibilityChangeMask; - XSelectInput(disp, win, eventMask); - - eventMask = KeyPressMask | KeyReleaseMask | ButtonPressMask | - ButtonReleaseMask | VisibilityChangeMask | - FocusChangeMask | StructureNotifyMask | - PointerMotionMask | ExposureMask | PropertyChangeMask; - XSelectInput(disp, win, eventMask); - - if (!XRRQueryExtension(disp, &rr_event_base, &rr_error_base)) - { - printf("error randr\n"); - return 1; - } - XRRQueryVersion(disp, &ver_maj, &ver_min); - printf("randr version %d %d\n", ver_maj, ver_min); - - XRRSelectInput(disp, win, RRScreenChangeNotifyMask); - - cont = 1; - while (cont) - { - XNextEvent(disp, &ev); - switch (ev.type) - { - case ButtonPress: - cont = 0; - break; - case ClientMessage: - printf("ClientMessage\n"); - break; - case ConfigureNotify: - if (ev.xconfigure.window == root_window) - { - XRRUpdateConfiguration(&ev); - printf("ConfigureNotify for root window " - "width %d height %d\n", - ev.xconfigure.width, ev.xconfigure.height); - } - break; - default: - if ((ev.type >= rr_event_base) && - (ev.type < rr_event_base + RRNumberEvents)) - { - printf("randr\n"); - process_randr(disp, screen, screenNumber, win, - rr_event_base, &ev); - } - break; - } - } - - return 0; -} diff --git a/xorg/tests/xdemo/Makefile b/xorg/tests/xdemo/Makefile deleted file mode 100644 index 6c98d1ce..00000000 --- a/xorg/tests/xdemo/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - -CFLAGS = -Werror -Wall - -all: xdemo - -xdemo: xdemo.c bmp_parser.c - gcc $(CFLAGS) xdemo.c bmp_parser.c -o xdemo -lX11 - -.PHONY clean: - rm -f *.o xdemo - diff --git a/xorg/tests/xdemo/README.txt b/xorg/tests/xdemo/README.txt deleted file mode 100644 index 2bb59358..00000000 --- a/xorg/tests/xdemo/README.txt +++ /dev/null @@ -1,3 +0,0 @@ - -this is a program to test xwindows - diff --git a/xorg/tests/xdemo/bmp_parser.c b/xorg/tests/xdemo/bmp_parser.c deleted file mode 100644 index 60d86864..00000000 --- a/xorg/tests/xdemo/bmp_parser.c +++ /dev/null @@ -1,238 +0,0 @@ -/** - * xrdp: A Remote Desktop Protocol server. - * - * Copyright (C) Laxmikant Rashinkar 2004-2012 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include "common.h" - -// multi byte values are stored in little endian - -struct bmp_magic -{ - char magic[2]; -}; - -struct bmp_hdr -{ - uint32_t size; // file size in bytes - uint16_t reserved1; - uint16_t reserved2; - uint32_t offset; // offset to image data, in bytes -}; - -struct dib_hdr -{ - uint32_t hdr_size; - int32_t width; - int32_t height; - uint16_t nplanes; - uint16_t bpp; - uint32_t compress_type; - uint32_t image_size; - int32_t hres; - int32_t vres; - uint32_t ncolors; - uint32_t nimpcolors; -}; - -// forward declarations -int parse_bmp(char *filename, struct pic_info *pic_info); -int parse_bmp_24(struct bmp_hdr *bmp_hdr, struct dib_hdr *dib_hdr, int fd, struct pic_info *pic_info); - -int parse_bmp(char *filename, struct pic_info *pic_info) -{ - int got_magic; - int fd; - int rval; - - struct bmp_magic magic; - struct bmp_hdr bmp_hdr; - struct dib_hdr dib_hdr; - - if ((fd = open(filename, O_RDONLY)) < 0) - { - printf("error opening %s\n", filename); - return -1; - } - - // read BMP magic... - if ((rval = read(fd, magic.magic, 2)) != 2) - { - fprintf(stderr, "error reading BMP signature from file %s\n", filename); - return -1; - } - - got_magic = 0; - - // ...and confirm that this is indeed a BMP file - if ((magic.magic[0] == 'B') && (magic.magic[1] == 'M')) - { - // BM – Windows 3.1x, 95, NT, ... etc - got_magic = 1; - } - else if ((magic.magic[0] == 'B') && (magic.magic[1] == 'A')) - { - // BA – OS/2 struct Bitmap Array - got_magic = 1; - } - else if ((magic.magic[0] == 'C') && (magic.magic[1] == 'I')) - { - // CI – OS/2 struct Color Icon - got_magic = 1; - } - else if ((magic.magic[0] == 'C') && (magic.magic[1] == 'P')) - { - // CP – OS/2 const Color Pointer - got_magic = 1; - } - else if ((magic.magic[0] == 'I') && (magic.magic[1] == 'C')) - { - // IC – OS/2 struct Icon - got_magic = 1; - } - else if ((magic.magic[0] == 'P') && (magic.magic[1] == 'T')) - { - // PT – OS/2 Pointer - got_magic = 1; - } - - if (!got_magic) - { - fprintf(stderr, "%s is not a valid BMP file\n", filename); - return -1; - } - - // read BMP header - if ((rval = read(fd, &bmp_hdr, sizeof(bmp_hdr))) < sizeof(bmp_hdr)) - { - fprintf(stderr, "error BMP header from file %s\n", filename); - return -1; - } - - // read DIB header - if ((rval = read(fd, &dib_hdr, sizeof(dib_hdr))) < sizeof(dib_hdr)) - { - fprintf(stderr, "error reading DIB header from file %s\n", filename); - return -1; - } - -#if 0 - printf("header size: %d\n", dib_hdr.hdr_size); - printf("width: %d\n", dib_hdr.width); - printf("height: %d\n", dib_hdr.height); - printf("num planes: %d\n", dib_hdr.nplanes); - printf("bpp: %d\n", dib_hdr.bpp); - printf("comp type: %d\n", dib_hdr.compress_type); - printf("image size: %d\n", dib_hdr.image_size); - printf("hres: %d\n", dib_hdr.hres); - printf("vres: %d\n", dib_hdr.vres); - printf("ncolors: %d\n", dib_hdr.ncolors); - printf("nimpcolors: %d\n", dib_hdr.nimpcolors); -#endif - - if (dib_hdr.compress_type) - { - printf("TODO: compressed images not yet supported\n"); - return -1; - } - - pic_info->width = dib_hdr.width; - pic_info->height = dib_hdr.height; - - if (dib_hdr.bpp == 24) - { - rval = parse_bmp_24(&bmp_hdr, &dib_hdr, fd, pic_info); - } - - close(fd); - return rval; -} - -/** - * extract 24bit BMP data from image file - * - * @return 0 on success - * @return -1 on failure - */ - -int parse_bmp_24( - struct bmp_hdr *bmp_hdr, - struct dib_hdr *dib_hdr, - int fd, - struct pic_info *pic_info -) -{ - char *file_data; - char *ptr_file_data; - char *mem_data; - char *ptr_mem_data; - char *cptr; - - int w = dib_hdr->width; // picture width - int h = dib_hdr->height; // picture height - int bpl; // bytes per line - int bytes; - int i; - int j; - - // bytes per image line = width x bytes_per_pixel + padding - i = (w * 3) % 4; - j = (i == 0) ? 0 : 4 - i; - bpl = w * 3 + j; - - // 24 bit depth, no alpha channel - file_data = (char *) malloc(h * bpl); - - // point to first line in image data, which is stored in reverse order - ptr_file_data = (file_data + dib_hdr->image_size) - bpl; - - // 24 bit depth, with alpha channel - mem_data = (char *) malloc(w * h * 4); - ptr_mem_data = mem_data; - - pic_info->pixel_data = ptr_mem_data; - - // seek to beginning of pixel data - lseek(fd, bmp_hdr->offset, SEEK_SET); - - // read all pixel data - bytes = read(fd, file_data, dib_hdr->image_size); - - // convert 24bit to 24 bit with alpha and store in reverse - for (i = 0; i < h; i ++) - { - cptr = ptr_file_data; - - for (j = 0; j < w; j++) - { - *ptr_mem_data++ = *cptr++; // blue value - *ptr_mem_data++ = *cptr++; // green value - *ptr_mem_data++ = *cptr++; // red value - *ptr_mem_data++ = 0; // alpha channel - } - - ptr_file_data -= bpl; - } - - free(file_data); - return 0; -} diff --git a/xorg/tests/xdemo/common.h b/xorg/tests/xdemo/common.h deleted file mode 100644 index 8ed4ee65..00000000 --- a/xorg/tests/xdemo/common.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * xrdp: A Remote Desktop Protocol server. - * - * Copyright (C) Laxmikant Rashinkar 2012 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __XDEMO_H -#define __XDEMO_H - -#define DEBUG - -#ifdef DEBUG -#define dprint(x...) printf(x) -#else -#define dprint(x...) -#endif - -struct pic_info -{ - int width; - int height; - char *pixel_data; -}; - -#endif diff --git a/xorg/tests/xdemo/xdemo.c b/xorg/tests/xdemo/xdemo.c deleted file mode 100644 index 5e936747..00000000 --- a/xorg/tests/xdemo/xdemo.c +++ /dev/null @@ -1,897 +0,0 @@ -/** - * xrdp: A Remote Desktop Protocol server. - * - * Copyright (C) Laxmikant Rashinkar 2012 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "common.h" - -// LK_TODO -// http://tronche.com/gui/x/xlib/GC/convenience-functions/fill-tile-and-stipple.html -// fill stipple - -// drawfonts: XDrawString, XDrawImageString XDrawText XLoadFont XTextExtents -// http://www.ac3.edu.au/SGI_Developer/books/XLib_PG/sgi_html/apa.html -// http://www.ac3.edu.au/SGI_Developer/books/XLib_PG/sgi_html/index.html - -// use jpg lib to convert bmp to jpg and vice versa - -#define MAX_COLORS 5 -#define SCROLL_JUMP 1 // scroll in increments of g_winHeight -#define SCROLL_SMOOTH1 2 // scroll using XPutImage + XCopyArea -#define SCROLL_SMOOTH2 3 // scroll using XPutImage only -#define SCROLL_SMOOTH3 4 // scroll using XPutImage only -#define SCROLL_SMOOTH4 5 // scroll using XPutImage only - -int parse_bmp(char *filename, struct pic_info *); -int drawBMP(char *filename, int scroll_type); -int signal_tcp_proxy(char *proxy_app); - -// globals -Display *g_disp; -Window g_win; -XColor g_colors[MAX_COLORS]; -GC g_gc; -int g_winWidth; -int g_winHeight; -int g_delay_dur; - -void start_timer(struct timeval *tv) -{ - gettimeofday(tv, NULL); -} - - -uint32_t time_elapsed_ms(struct timeval tv) -{ - struct timeval tv_now; - uint32_t dur; - - gettimeofday(&tv_now, NULL); - dur = ((tv_now.tv_sec - tv.tv_sec) * 1000) + ((tv_now.tv_usec - tv.tv_usec) / 1000); - return dur; -} - - -uint32_t time_elapsed_us(struct timeval tv) -{ - struct timeval tv_now; - uint32_t dur; - - gettimeofday(&tv_now, NULL); - dur = ((tv_now.tv_sec - tv.tv_sec) * 1000000) + (tv_now.tv_usec - tv.tv_usec); - return dur; -} - -int drawLines(int count) -{ - int x1; - int y1; - int x2; - int y2; - int i; - int index; - - if (count <= 0) - { - return 0; // nothing to do - } - - srandom(time(NULL)); - XClearArea(g_disp, g_win, 0, 0, g_winWidth, g_winHeight, 0); - - for (i = 0, index = 0; i < count; i++) - { - x1 = random() % g_winWidth; - y1 = random() % g_winHeight; - x2 = random() % g_winWidth; - y2 = random() % g_winHeight; - XSetForeground(g_disp, g_gc, g_colors[index++].pixel); - - if (index == MAX_COLORS) - { - index = 0; - } - - // from-to - XDrawLine(g_disp, g_win, g_gc, x1, y1, x2, y2); - XFlush(g_disp); - usleep(g_delay_dur); - } - - return 0; -} - -// LK_TODO support user defined w and h - -int drawRectangles(int count) -{ - int x1; - int y1; - int w; - int h; - int i; - int index; - - if (count <= 0) - { - return 0; // nothing to do - } - - srandom(time(NULL)); - XClearArea(g_disp, g_win, 0, 0, g_winWidth, g_winHeight, 0); - - for (i = 0, index = 0; i < count; i++) - { - x1 = random() % g_winWidth; - y1 = random() % g_winHeight; - w = 160; - h = 140; - XSetForeground(g_disp, g_gc, g_colors[index++].pixel); - - if (index == MAX_COLORS) - { - index = 0; - } - - //XDrawRectangle(g_disp, g_win, g_gc, x1, y1, w, h); - XFillRectangle(g_disp, g_win, g_gc, x1, y1, w, h); - XFlush(g_disp); - usleep(g_delay_dur); - } - - return 0; -} - -int drawFont(int count, char *msg) -{ - int x1; - int y1; - int i; - int index; - -#ifdef CHANGE_FONT_SIZE - int w; - int h; - int actual_count; - char **font_list; -#endif - - if (count <= 0) - { - return 0; // nothing to do - } - - srandom(time(NULL)); - XClearArea(g_disp, g_win, 0, 0, g_winWidth, g_winHeight, 0); - -#ifdef CHANGE_FONT_SIZE - font_list = XListFonts(g_disp, "−*−courier−*−*−*−*−0−0−*−*−*−0−*−*", 2000, &actual_count); - - if (!font_list) - { - printf("actual_count=%d\n", actual_count); - - for (i = 0; i < actual_count; i++) - { - printf("%s\n", font_list[i]); - } - - XFreeFontNames(font_list); - } - else - { - printf("XListFonts() returned NULL\n"); - } - -#endif - - srandom(time(NULL)); - - for (i = 0, index = 0; i < count; i++) - { - x1 = random() % g_winWidth; - y1 = random() % g_winHeight; - XSetForeground(g_disp, g_gc, g_colors[index++].pixel); - - if (index == MAX_COLORS) - { - index = 0; - } - - XDrawString(g_disp, g_win, g_gc, x1, y1, msg, strlen(msg)); - XFlush(g_disp); - usleep(g_delay_dur); - } - - return 0; // nothing to do -} - -static void -drawoffscreen(void) -{ - int depth; - Pixmap pixmap1; - Pixmap pixmap2; - - printf("draw off screen, should see green rect\n"); - depth = DefaultDepth(g_disp, DefaultScreen(g_disp)); - - /* blue */ - pixmap1 = XCreatePixmap(g_disp, g_win, 64, 64, depth); - XSetForeground(g_disp, g_gc, 0x000000ff); - XFillRectangle(g_disp, pixmap1, g_gc, 0, 0, 64, 64); - - /* green */ - pixmap2 = XCreatePixmap(g_disp, g_win, 64, 64, depth); - XSetForeground(g_disp, g_gc, 0x0000ff00); - XFillRectangle(g_disp, pixmap2, g_gc, 0, 0, 64, 64); - - /* copy green to blue */ - XCopyArea(g_disp, pixmap2, pixmap1, g_gc, 0, 0, 64, 64, 0, 0); - - /* put on screen */ - XCopyArea(g_disp, pixmap1, g_win, g_gc, 0, 0, 64, 64, 128, 128); - - XFreePixmap(g_disp, pixmap1); - XFreePixmap(g_disp, pixmap2); -} - -/** - * display a usage message - */ -static void -usage(void) -{ - printf("usage: xdemo [-l] [-r] [-s] [-f ] [-i ] [-g ] [-c ] [-o ] [-d ] -z\n"); - printf(" -l draw lines\n"); - printf(" -r draw fill rectangles\n"); - printf(" -s draw stipple rectangles\n"); - printf(" -f draw string using fonts\n"); - printf(" -i draw image\n"); - printf(" -g geometry, default is 640x480\n"); - printf(" -c iteration count, default is 5000\n"); - printf(" -d loop delay in micro seconds, default 1000\n"); - printf(" -o \n"); - printf(" -z zero proxy counters for specified application\n"); - printf(" -j offscreen to offscreen test\n\n"); -} - -int -main(int argc, char **argv) -{ - XEvent evt; - Colormap colormap; - struct timeval tv; - int screenNumber; - long eventMask; - unsigned long white; - unsigned long black; - Status rc; - int iters; - int opt; - int draw_lines; - int draw_rects; - int draw_stipples; - int draw_fonts; - int draw_image; - int draw_offscreen; - int zero_counters; - int scroll_type; - char image_file[256]; - char proxy_app[256]; - char msg[4096]; - - // set some defaults - g_winWidth = 640; - g_winHeight = 480; - iters = 5000; - draw_lines = 1; - draw_rects = 1; - draw_stipples = 1; - draw_fonts = 1; - draw_image = 1; - draw_offscreen = 1; - g_delay_dur = 1000; - scroll_type = SCROLL_SMOOTH1; - zero_counters = 0; - strcpy(image_file, "yosemite.bmp"); - strcpy(msg, "To be or not to be!"); - - // process cmd line args - opterr = 0; - - while ((opt = getopt(argc, argv, "lrsjg:c:f:i:d:o:z:")) != -1) - { - switch (opt) - { - - case 'j': - draw_lines = 0; - draw_rects = 0; - draw_stipples = 0; - draw_fonts = 0; - draw_image = 0; - draw_offscreen = 1; - break; - - case 'g': - - if (sscanf(optarg, "%dx%d", &g_winWidth, &g_winHeight) != 2) - { - fprintf(stderr, "\nerror: invalid geometry specified\n\n"); - usage(); - return -1; - } - - break; - - case 'c': - - if (sscanf(optarg, "%d", &iters) != 1) - { - fprintf(stderr, "\nerror: invalid count specified\n\n"); - usage(); - return -1; - } - - break; - - case 'l': - draw_lines = 1; - draw_rects = 0; - draw_stipples = 0; - draw_fonts = 0; - draw_image = 0; - draw_offscreen = 0; - break; - - case 'r': - draw_rects = 1; - draw_lines = 0; - draw_stipples = 0; - draw_fonts = 0; - draw_image = 0; - draw_offscreen = 0; - break; - - case 's': - draw_stipples = 1; - draw_lines = 0; - draw_rects = 0; - draw_fonts = 0; - draw_image = 0; - draw_offscreen = 0; - break; - - case 'f': - - if (strlen(optarg) <= 0) - { - fprintf(stderr, "\nerror: -f option requires an argument\n\n"); - usage(); - return -1; - } - - draw_fonts = 1; - strncpy(msg, optarg, 4096); - draw_lines = 0; - draw_rects = 0; - draw_stipples = 0; - draw_image = 0; - draw_offscreen = 0; - break; - - case 'i': - - if (strlen(optarg) <= 0) - { - fprintf(stderr, "\nerror: -i option requires an argument\n\n"); - usage(); - return -1; - } - - draw_image = 1; - strncpy(image_file, optarg, 255); - draw_lines = 0; - draw_rects = 0; - draw_stipples = 0; - draw_fonts = 0; - draw_offscreen = 0; - break; - - case 'h': - usage(); - return 0; - break; - - case 'v': - printf("xdemo Ver 1.0\n"); - return 0; - break; - - case 'd': - - if (sscanf(optarg, "%d", &g_delay_dur) != 1) - { - fprintf(stderr, "\nerror: -d option requires an argument\n\n"); - usage(); - return -1; - } - - break; - - case 'z': - - if (strlen(optarg) <= 0) - { - fprintf(stderr, "\nerror: invalid proxy application specified\n\n"); - usage(); - return -1; - } - - strcpy(proxy_app, optarg); - printf("##### LK_TODO: proxy_app=%s\n", proxy_app); - zero_counters = 1; - break; - - case 'o': - - if (strcmp(optarg, "jump") == 0) - { - scroll_type = SCROLL_JUMP; - } - else if (strcmp(optarg, "smooth1") == 0) - { - scroll_type = SCROLL_SMOOTH1; - } - else if (strcmp(optarg, "smooth2") == 0) - { - scroll_type = SCROLL_SMOOTH2; - } - else if (strcmp(optarg, "smooth3") == 0) - { - scroll_type = SCROLL_SMOOTH3; - } - else if (strcmp(optarg, "smooth4") == 0) - { - scroll_type = SCROLL_SMOOTH4; - } - else - { - fprintf(stderr, "\ninvalid scroll type specified\n\n"); - usage(); - return -1; - } - - break; - - default: - usage(); - return -1; - } - } - - // must have at least one operation - if ((!draw_lines) && (!draw_rects) && (!draw_stipples) && - (!draw_fonts) && (!draw_image) && (!draw_offscreen)) - { - usage(); - return -1; - } - - g_disp = XOpenDisplay(NULL); - - if (!g_disp) - { - dprint("error opening X display\n"); - exit(-1); - } - - screenNumber = DefaultScreen(g_disp); - white = WhitePixel(g_disp, screenNumber); - black = BlackPixel(g_disp, screenNumber); - - g_win = XCreateSimpleWindow(g_disp, - DefaultRootWindow(g_disp), - 50, 50, // origin - g_winWidth, g_winHeight, // size - 0, black, // border - white ); // backgd - - XMapWindow(g_disp, g_win); - //eventMask = StructureNotifyMask | MapNotify | VisibilityChangeMask; - eventMask = StructureNotifyMask | VisibilityChangeMask; - XSelectInput(g_disp, g_win, eventMask); - - g_gc = XCreateGC(g_disp, g_win, - 0, // mask of values - NULL ); // array of values -#if 0 - - do - { - dprint("about to call XNextEvent(...)\n"); - XNextEvent(g_disp, &evt);// calls XFlush - dprint("returned from XNextEvent(...)\n"); - } - - //while(evt.type != MapNotify); - while (evt.type != VisibilityNotify) - { - ; - } - -#endif - - // get access to the screen's color map - colormap = DefaultColormap(g_disp, screenNumber); - - // alloc red color - rc = XAllocNamedColor(g_disp, colormap, "red", &g_colors[0], &g_colors[0]); - - if (rc == 0) - { - printf("XAllocNamedColor - failed to allocated 'red' color.\n"); - exit(1); - } - - rc = XAllocNamedColor(g_disp, colormap, "green", &g_colors[1], &g_colors[1]); - - if (rc == 0) - { - printf("XAllocNamedColor - failed to allocated 'green' color.\n"); - exit(1); - } - - rc = XAllocNamedColor(g_disp, colormap, "blue", &g_colors[2], &g_colors[2]); - - if (rc == 0) - { - printf("XAllocNamedColor - failed to allocated 'blue' color.\n"); - exit(1); - } - - rc = XAllocNamedColor(g_disp, colormap, "yellow", &g_colors[3], &g_colors[3]); - - if (rc == 0) - { - printf("XAllocNamedColor - failed to allocated 'yellow' color.\n"); - exit(1); - } - - rc = XAllocNamedColor(g_disp, colormap, "orange", &g_colors[4], &g_colors[4]); - - if (rc == 0) - { - printf("XAllocNamedColor - failed to allocated 'orange' color.\n"); - exit(1); - } - - if (zero_counters) - { - signal_tcp_proxy(proxy_app); - } - - if (draw_lines) - { - start_timer(&tv); - drawLines(iters); - printf("drew %d lines in %d ms\n", iters, time_elapsed_ms(tv)); - } - - if (draw_rects) - { - start_timer(&tv); - drawRectangles(iters); - printf("drew %d rects in %d ms\n", iters, time_elapsed_ms(tv)); - } - - if (draw_stipples) - { - start_timer(&tv); - // LK_TODO - } - - if (draw_fonts) - { - start_timer(&tv); - drawFont(iters, msg); - printf("drew %d strings in %d ms\n", iters, time_elapsed_ms(tv)); - } - - if (draw_image) - { - start_timer(&tv); - drawBMP(image_file, scroll_type); - printf("drew BMP in %d ms\n", time_elapsed_ms(tv)); - } - - if (draw_offscreen) - { - } - - if (zero_counters) - { - signal_tcp_proxy(proxy_app); - } - - eventMask = ButtonPressMask | ButtonReleaseMask | KeyPressMask; - - XSelectInput(g_disp, g_win, eventMask); - - do - { - XNextEvent(g_disp, &evt); // calls XFlush() - - if (evt.type == KeyPress) - { - if (draw_offscreen) - { - drawoffscreen(); - } - } - - } - while (evt.type != ButtonRelease); - - XDestroyWindow(g_disp, g_win); - XCloseDisplay(g_disp); - - return 0; -} - -int drawBMP(char *filename, int scroll_type) -{ - struct pic_info pic_info; - XImage *image; - Visual *visual; - Pixmap pixmap; - int depth; - int i; - int j; - - if (parse_bmp(filename, &pic_info) < 0) - { - exit(-1); - } - - XClearArea(g_disp, g_win, 0, 0, g_winWidth, g_winHeight, 0); - - depth = DefaultDepth(g_disp, DefaultScreen(g_disp)); - visual = DefaultVisual(g_disp, DefaultScreen(g_disp)); - - // create empty pixmap - pixmap = XCreatePixmap(g_disp, g_win, pic_info.width, pic_info.height, depth); - - // create an image from pixel data - image = XCreateImage(g_disp, visual, depth, ZPixmap, 0, pic_info.pixel_data, - pic_info.width, pic_info.height, 32, 0); - - if (pic_info.height <= g_winHeight) - { - // image is too small to scroll - XFlush(g_disp); - XPutImage(g_disp, g_win, g_gc, image, 0, 0, 0, 0, pic_info.width, pic_info.height); - XFlush(g_disp); - return 0; - } - - // copy image to pixelmap - XPutImage(g_disp, pixmap, g_gc, image, 0, 0, 0, 0, pic_info.width, pic_info.height); - - if (scroll_type == SCROLL_JUMP) - { - - if (pic_info.height <= g_winHeight) - { - // image too small - no scrolling required - XFlush(g_disp); - XCopyArea(g_disp, // connection to X server - pixmap, // source drawable - g_win, // dest drawable - g_gc, // graphics context - 0, 0, // source x,y - pic_info.width, // width - pic_info.height, // height - 0, 0); // dest x,y - XFlush(g_disp); - return 0; - } - - j = pic_info.height / g_winHeight; - - if (pic_info.height % g_winHeight != 0) - { - // need to include the last part of the image - j++; - } - - XFlush(g_disp); - - for (i = 0; i < j; i++) - { - XCopyArea(g_disp, // connection to X server - pixmap, // source drawable - g_win, // dest drawable - g_gc, // graphics context - 0, i * g_winHeight, // source x,y - pic_info.width, // width - pic_info.height, // height - 0, 0); // dest x,y - XFlush(g_disp); - sleep(3); - } - } - - /* - ** smooth scroll the image - */ - - // number of lines to be scrolled - j = pic_info.height - g_winHeight; - - if (scroll_type == SCROLL_SMOOTH1) - { - printf("running SCROLL_SMOOTH1\n"); - XFlush(g_disp); - XPutImage(g_disp, g_win, g_gc, image, 0, 0, 0, 0, pic_info.width, pic_info.height); - XFlush(g_disp); - usleep(10000); - - for (i = 0; i < j; i++) - { - XCopyArea(g_disp, g_win, g_win, g_gc, 0, 1, g_winWidth, g_winHeight - 1, 0, 0); - XPutImage(g_disp, g_win, g_gc, image, 0, g_winHeight + i, 0, g_winHeight - 1 , pic_info.width, 1); - XFlush(g_disp); - usleep(10000); - } - - return 0; - } - - if (scroll_type == SCROLL_SMOOTH2) - { - printf("running SCROLL_SMOOTH2\n"); - XFlush(g_disp); - - for (i = 0; i < j; i++) - { - XPutImage(g_disp, g_win, g_gc, image, 0, i, 0, 0, pic_info.width, pic_info.height - i); - XFlush(g_disp); - usleep(10000); - } - } - - if (scroll_type == SCROLL_SMOOTH3) - { - printf("running SCROLL_SMOOTH3\n"); - XFlush(g_disp); - XCopyArea(g_disp, pixmap, g_win, g_gc, 0, 0, pic_info.width, pic_info.height, 0, 0); - XFlush(g_disp); - usleep(10000); - - for (i = 0; i < j; i++) - { - XCopyArea(g_disp, g_win, g_win, g_gc, 0, 1, g_winWidth, g_winHeight - 1, 0, 0); - XCopyArea(g_disp, pixmap, g_win, g_gc, 0, g_winHeight + i, pic_info.width, 1, 0, g_winHeight - 1); - XFlush(g_disp); - usleep(10000); - } - - return 0; - } - - if (scroll_type == SCROLL_SMOOTH4) - { - printf("running SCROLL_SMOOTH4\n"); - XFlush(g_disp); - - for (i = 0; i < j; i++) - { - XCopyArea(g_disp, pixmap, g_win, g_gc, 0, i, pic_info.width, pic_info.height - i, 0, 0); - XFlush(g_disp); - usleep(10000); - } - } - - return 0; -} - -int process_bmp_event(void) -{ - XEvent ev; - long event_mask; - - event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask | StructureNotifyMask; - XSelectInput(g_disp, g_win, event_mask); - XNextEvent(g_disp, &ev); - - switch (ev.type) - { - case Expose: - printf("got expose event\n"); - break; - - default: - printf("did not get expose event\n"); - break; - } - - return 0; -} - -/** - * send a SIGUSR1 to process tcp_proxy, causing it to clear counters - * - * @return 0 on success, -1 on failure - */ - -int signal_tcp_proxy(char *proc_name) -{ - FILE *fp; - char *cptr; - char buf[2048]; - int pids[10]; - int status = 0; - int num_procs; - int i; - - sprintf(buf, "pidof %s", proc_name); - - if ((fp = popen(buf, "r")) == NULL ) - { - printf("xdemo: popen() failed\n"); - return -1; - } - - cptr = fgets(buf, 2047, fp); - - if (cptr == NULL) - { - pclose(fp); - return -1; - } - - num_procs = sscanf(buf, "%d %d %d %d %d %d %d %d %d %d", - &pids[0], &pids[1], &pids[2], &pids[3], &pids[4], - &pids[5], &pids[6], &pids[7], &pids[8], &pids[9]); - - if (num_procs > 0) - { - for (i = 0; i < num_procs; i++) - { - kill(pids[i], SIGUSR1); - printf("sent SIGUSR1 to process %d\n", pids[i]); - } - } - - pclose(fp); - return status; -} - diff --git a/xorg/tests/xdemo/yosemite.bmp b/xorg/tests/xdemo/yosemite.bmp deleted file mode 100644 index da2e8eed594c8a231c15002235f850c748f90f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843254 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
  • vS*#Pn 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

    c~dq99Au*suzHJu`_vcCu8-}|Q4$1G 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 !1FWm>USGO0)IL|R&F1sh5aE)tgEEWHdJ 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

    &#tlk!I`TULNR2A%9u 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

    egrjYdbWA$Vqh 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¬maviw}X2gkszUh7{;KSLNjWo-!C!C3f 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≻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%0D5Tz_Powx}Gkb+eX9 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

    m2@9nBfk_om#(C@0TOla47EW^(%p}eYUutE}x67 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 From eb6ba233256a4227f3569225d54d85c2ef655036 Mon Sep 17 00:00:00 2001 From: Koichiro IWAO Date: Tue, 17 Apr 2018 13:34:38 +0900 Subject: [PATCH 2/2] Remove x11rdp from README and EXTRA_DIST --- Makefile.am | 3 +-- README.md | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 9640d1d5..65267516 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,8 +21,7 @@ EXTRA_DIST = \ postinstall-pak \ tcutils \ tests \ - vrplayer \ - xorg + vrplayer if XRDP_NEUTRINORDP NEUTRINORDPDIR = neutrinordp diff --git a/README.md b/README.md index ff61e069..2acf98dd 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,6 @@ xrdp ├── tests ······· tests for the code ├── vnc ········· VNC client module for xrdp ├── vrplayer ···· QT player redirecting video/audio to clients over xrdpvr channel -├── xorg ········ X11rdp, an Xorg backend for xrdp ├── xrdp ········ main server code ├── xrdpapi ····· virtual channel API ├── xrdpvr ······ API for playing media over RDP

  • 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[JegrJ-JVR;kVFcjxCeSUi{2dY~kKGL!S83H>Ok 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