aboutsummaryrefslogtreecommitdiff
path: root/nxcompshad/include/Shadow.h
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2017-07-14 01:25:20 +0200
committerMihai Moldovan <ionic@ionic.de>2017-07-14 01:25:20 +0200
commit5796ac64427755b255db91c9b902e387e0ea68fc (patch)
treeadf3a76db11fc7d20c6c800e47ecd6d10acfef4b /nxcompshad/include/Shadow.h
parent622360ea2ec9cde354aece445e4b9fb4b7664eea (diff)
parent59e829f3647005a6c93662adfbcea36e27a993d8 (diff)
downloadnx-libs-5796ac64427755b255db91c9b902e387e0ea68fc.tar.gz
nx-libs-5796ac64427755b255db91c9b902e387e0ea68fc.tar.bz2
nx-libs-5796ac64427755b255db91c9b902e387e0ea68fc.zip
Merge branch 'sunweaver-pr/nxcompshad-autoreconf' into 3.6.x
Attributes GH PR #474: https://github.com/ArcticaProject/nx-libs/pull/474
Diffstat (limited to 'nxcompshad/include/Shadow.h')
-rw-r--r--nxcompshad/include/Shadow.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/nxcompshad/include/Shadow.h b/nxcompshad/include/Shadow.h
new file mode 100644
index 000000000..c59d91eeb
--- /dev/null
+++ b/nxcompshad/include/Shadow.h
@@ -0,0 +1,111 @@
+/**************************************************************************/
+/* */
+/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
+/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
+/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */
+/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */
+/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
+/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
+/* */
+/* NXCOMPSHAD, NX protocol compression and NX extensions to this software */
+/* are copyright of the aforementioned persons and companies. */
+/* */
+/* Redistribution and use of the present software is allowed according */
+/* to terms specified in the file LICENSE which comes in the source */
+/* distribution. */
+/* */
+/* All rights reserved. */
+/* */
+/* NOTE: This software has received contributions from various other */
+/* contributors, only the core maintainers and supporters are listed as */
+/* copyright holders. Please contact us, if you feel you should be listed */
+/* as copyright holder, as well. */
+/* */
+/**************************************************************************/
+
+#ifndef Shadow_H
+#define Shadow_H
+
+#include <nx-X11/Xlib.h>
+
+#define NXShadowCorrectColor(length, buffer) \
+\
+{ \
+ unsigned short a; \
+ unsigned short b; \
+ unsigned short *shorts; \
+ int i; \
+\
+ length >>= 1; \
+ shorts = (unsigned short *)buffer; \
+ for (i = 0; i < length ; i++) \
+ { \
+ a = shorts[i]; \
+\
+ b = a & 63; \
+ a <<= 1; \
+ a = (a & ~127) | b; \
+\
+ shorts[i] = a; \
+ } \
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef char* UpdaterHandle;
+
+typedef struct _ShadowOptions
+{
+ char optionShmExtension;
+ char optionDamageExtension;
+ int optionShadowDisplayUid;
+} ShadowOptions;
+
+extern ShadowOptions NXShadowOptions;
+
+extern void NXShadowResetOptions();
+
+extern int NXShadowCreate(void *, char *, char *, void **);
+extern void NXShadowDestroy(void);
+
+/*
+ * Use an already opened Display connection.
+ * We use <void *> instead of <Display *> to avoid
+ * useless dependences from Xlib headers.
+ */
+
+extern int NXShadowAddUpdaterDisplay(void *display, int *width, int *height,
+ unsigned char *depth);
+extern UpdaterHandle NXShadowAddUpdater(char *displayName);
+extern int NXShadowRemoveUpdater(UpdaterHandle handle);
+extern int NXShadowRemoveAllUpdaters(void);
+
+extern void NXShadowHandleInput(void);
+extern int NXShadowHasChanged(int (*)(void *), void *, int *);
+extern void NXShadowExportChanges(long *, char **);
+extern int NXShadowHasUpdaters(void);
+extern int NXShadowCaptureCursor(unsigned int wnd, void *vis);
+extern void NXShadowColorCorrect(int, int, unsigned int, unsigned int, char *);
+extern void NXShadowUpdateBuffer(void **);
+
+extern void NXShadowEvent(Display *, XEvent);
+extern void NXShadowWebKeyEvent(KeySym keysym, Bool isKeyPress);
+
+extern void NXShadowSetDisplayUid(int uid);
+
+extern void NXShadowDisableShm(void);
+extern void NXShadowDisableDamage(void);
+
+extern void NXShadowGetScreenSize(int *width, int *height);
+extern void NXShadowSetScreenSize(int *width, int *height);
+
+extern void NXShadowInitKeymap(void *keysyms);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* Shadow_H */
+