/**************************************************************************/ /* */ /* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ /* Copyright (c) 2008-2017 Oleksandr Shneyder */ /* Copyright (c) 2014-2022 Ulrich Sibiller */ /* Copyright (c) 2014-2019 Mihai Moldovan */ /* Copyright (c) 2011-2022 Mike Gabriel */ /* 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 #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 instead of 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 */