亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vnchooks.cc

?? Informix Table extraction queries have been optimized
?? CC
?? 第 1 頁 / 共 4 頁
字號:
/* Copyright (C) 2002-2005 RealVNC Ltd.  All Rights Reserved. *  * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *  * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this software; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, * USA. */#include <stdio.h>#include "XserverDesktop.h"#include "vncHooks.h"extern "C" {#define class c_class#define private c_private#include "scrnintstr.h"#include "windowstr.h"#include "gcstruct.h"#include "regionstr.h"#include "dixfontstr.h"#include "colormapst.h"#ifdef GC_HAS_COMPOSITE_CLIP#define COMPOSITE_CLIP(gc) ((gc)->pCompositeClip)#else#include "mfb.h"#define COMPOSITE_CLIP(gc) \  (((mfbPrivGCPtr)((gc)->devPrivates[mfbGCPrivateIndex].ptr))->pCompositeClip)#endif#undef class#undef private}#include "RegionHelper.h"#define DBGPRINT(x) //(fprintf x)// MAX_RECTS_PER_OP is the maximum number of rectangles we generate from// operations like Polylines and PolySegment.  If the operation is more complex// than this, we simply use the bounding box.  Ideally it would be a// command-line option, but that would involve an extra malloc each time, so we// fix it here.#define MAX_RECTS_PER_OP 5static unsigned long vncHooksGeneration = 0;// vncHooksScreenRec and vncHooksGCRec contain pointers to the original// functions which we "wrap" in order to hook the screen changes.  The screen// functions are each wrapped individually, while the GC "funcs" and "ops" are// wrapped as a unit.typedef struct {  XserverDesktop* desktop;  CloseScreenProcPtr           CloseScreen;  CreateGCProcPtr              CreateGC;  PaintWindowBackgroundProcPtr PaintWindowBackground;  PaintWindowBorderProcPtr     PaintWindowBorder;  CopyWindowProcPtr            CopyWindow;  ClearToBackgroundProcPtr     ClearToBackground;  RestoreAreasProcPtr          RestoreAreas;  InstallColormapProcPtr       InstallColormap;  StoreColorsProcPtr           StoreColors;  DisplayCursorProcPtr         DisplayCursor;  ScreenBlockHandlerProcPtr    BlockHandler;} vncHooksScreenRec, *vncHooksScreenPtr;typedef struct {    GCFuncs *wrappedFuncs;    GCOps *wrappedOps;} vncHooksGCRec, *vncHooksGCPtr;static int vncHooksScreenIndex;static int vncHooksGCIndex;// screen functionsstatic Bool vncHooksCloseScreen(int i, ScreenPtr pScreen);static Bool vncHooksCreateGC(GCPtr pGC);static void vncHooksPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion,                                          int what);static void vncHooksPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion,                                      int what);static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,                               RegionPtr pOldRegion);static void vncHooksClearToBackground(WindowPtr pWin, int x, int y, int w,                                      int h, Bool generateExposures);static RegionPtr vncHooksRestoreAreas(WindowPtr pWin, RegionPtr prgnExposed);static void vncHooksInstallColormap(ColormapPtr pColormap);static void vncHooksStoreColors(ColormapPtr pColormap, int ndef,                                xColorItem* pdef);static Bool vncHooksDisplayCursor(ScreenPtr pScreen, CursorPtr cursor);static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,                                 pointer pReadmask);// GC "funcs"static void vncHooksValidateGC(GCPtr pGC, unsigned long changes,                               DrawablePtr pDrawable);static void vncHooksChangeGC(GCPtr pGC, unsigned long mask);static void vncHooksCopyGC(GCPtr src, unsigned long mask, GCPtr dst);static void vncHooksDestroyGC(GCPtr pGC);static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue,int nrects);static void vncHooksDestroyClip(GCPtr pGC);static void vncHooksCopyClip(GCPtr dst, GCPtr src);static GCFuncs vncHooksGCFuncs = {  vncHooksValidateGC, vncHooksChangeGC, vncHooksCopyGC, vncHooksDestroyGC,  vncHooksChangeClip, vncHooksDestroyClip, vncHooksCopyClip,};// GC "ops"static void vncHooksFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit,                              DDXPointPtr pptInit, int *pwidthInit,                              int fSorted);static void vncHooksSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc,                             DDXPointPtr ppt, int *pwidth, int nspans,                             int fSorted);static void vncHooksPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth,                             int x, int y, int w, int h, int leftPad,                             int format, char *pBits);static RegionPtr vncHooksCopyArea(DrawablePtr pSrc, DrawablePtr pDst,                                  GCPtr pGC, int srcx, int srcy, int w, int h,                                  int dstx, int dsty);static RegionPtr vncHooksCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,                                   GCPtr pGC, int srcx, int srcy, int w, int h,                                   int dstx, int dsty, unsigned long plane);static void vncHooksPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,                              int npt, xPoint *pts);static void vncHooksPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,                              int npt, DDXPointPtr ppts);static void vncHooksPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg,                                xSegment *segs);static void vncHooksPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,                                  xRectangle *rects);static void vncHooksPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs,                            xArc *arcs);static void vncHooksFillPolygon(DrawablePtr pDrawable, GCPtr pGC, int shape,                                int mode, int count, DDXPointPtr pts);static void vncHooksPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrects,                                 xRectangle *rects);static void vncHooksPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs,                                xArc *arcs);static int vncHooksPolyText8(DrawablePtr pDrawable, GCPtr pGC, int x, int y,                             int count, char *chars);static int vncHooksPolyText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y,                              int count, unsigned short *chars);static void vncHooksImageText8(DrawablePtr pDrawable, GCPtr pGC, int x, int y,                               int count, char *chars);static void vncHooksImageText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y,                                int count, unsigned short *chars);static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,                                  int y, unsigned int nglyph,                                  CharInfoPtr *ppci, pointer pglyphBase);static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x,                                 int y, unsigned int nglyph,                                 CharInfoPtr *ppci, pointer pglyphBase);static void vncHooksPushPixels(GCPtr pGC, PixmapPtr pBitMap,                               DrawablePtr pDrawable, int w, int h, int x,                               int y);static GCOps vncHooksGCOps = {  vncHooksFillSpans, vncHooksSetSpans, vncHooksPutImage, vncHooksCopyArea,  vncHooksCopyPlane, vncHooksPolyPoint, vncHooksPolylines, vncHooksPolySegment,  vncHooksPolyRectangle, vncHooksPolyArc, vncHooksFillPolygon,  vncHooksPolyFillRect, vncHooksPolyFillArc, vncHooksPolyText8,  vncHooksPolyText16, vncHooksImageText8, vncHooksImageText16,  vncHooksImageGlyphBlt, vncHooksPolyGlyphBlt, vncHooksPushPixels};/////////////////////////////////////////////////////////////////////////////// vncHooksInit() is called at initialisation time and every time the server// resets.  It is called once for each screen, but the indexes are only// allocated once for each server generation.Bool vncHooksInit(ScreenPtr pScreen, XserverDesktop* desktop){  vncHooksScreenPtr vncHooksScreen;  if (vncHooksGeneration != serverGeneration) {    vncHooksGeneration = serverGeneration;    vncHooksScreenIndex = AllocateScreenPrivateIndex();    if (vncHooksScreenIndex < 0) {      ErrorF("vncHooksInit: AllocateScreenPrivateIndex failed\n");      return FALSE;    }    vncHooksGCIndex = AllocateGCPrivateIndex();    if (vncHooksGCIndex < 0) {      ErrorF("vncHooksInit: AllocateGCPrivateIndex failed\n");      return FALSE;    }  }  if (!AllocateGCPrivate(pScreen, vncHooksGCIndex, sizeof(vncHooksGCRec))) {    ErrorF("vncHooksInit: AllocateGCPrivate failed\n");    return FALSE;  }  vncHooksScreen = (vncHooksScreenPtr)xnfalloc(sizeof(vncHooksScreenRec));  pScreen->devPrivates[vncHooksScreenIndex].ptr = (pointer)vncHooksScreen;  vncHooksScreen->desktop = desktop;  vncHooksScreen->CloseScreen = pScreen->CloseScreen;  vncHooksScreen->CreateGC = pScreen->CreateGC;  vncHooksScreen->PaintWindowBackground = pScreen->PaintWindowBackground;  vncHooksScreen->PaintWindowBorder = pScreen->PaintWindowBorder;  vncHooksScreen->CopyWindow = pScreen->CopyWindow;  vncHooksScreen->ClearToBackground = pScreen->ClearToBackground;  vncHooksScreen->RestoreAreas = pScreen->RestoreAreas;  vncHooksScreen->InstallColormap = pScreen->InstallColormap;  vncHooksScreen->StoreColors = pScreen->StoreColors;  vncHooksScreen->DisplayCursor = pScreen->DisplayCursor;  vncHooksScreen->BlockHandler = pScreen->BlockHandler;  pScreen->CloseScreen = vncHooksCloseScreen;  pScreen->CreateGC = vncHooksCreateGC;  pScreen->PaintWindowBackground = vncHooksPaintWindowBackground;  pScreen->PaintWindowBorder = vncHooksPaintWindowBorder;  pScreen->CopyWindow = vncHooksCopyWindow;  pScreen->ClearToBackground = vncHooksClearToBackground;  pScreen->RestoreAreas = vncHooksRestoreAreas;  pScreen->InstallColormap = vncHooksInstallColormap;  pScreen->StoreColors = vncHooksStoreColors;  pScreen->DisplayCursor = vncHooksDisplayCursor;  pScreen->BlockHandler = vncHooksBlockHandler;  return TRUE;}///////////////////////////////////////////////////////////////////////////////// screen functions//// SCREEN_UNWRAP and SCREEN_REWRAP unwrap and rewrap the given screen function.// It would be nice to do this with a C++ class, but each function is of a// distinct type, so it would have to use templates, and it's not worth that// much pain.#define SCREEN_UNWRAP(scrn,field)                                         \  ScreenPtr pScreen = scrn;                                               \  vncHooksScreenPtr vncHooksScreen                                        \    = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); \  pScreen->field = vncHooksScreen->field;                                 \  DBGPRINT((stderr,"vncHooks" #field " called\n"));#define SCREEN_REWRAP(field) pScreen->field = vncHooks##field;// CloseScreen - unwrap the screen functions and call the original CloseScreen// functionstatic Bool vncHooksCloseScreen(int i, ScreenPtr pScreen_){  SCREEN_UNWRAP(pScreen_, CloseScreen);  pScreen->CreateGC = vncHooksScreen->CreateGC;  pScreen->PaintWindowBackground = vncHooksScreen->PaintWindowBackground;  pScreen->PaintWindowBorder = vncHooksScreen->PaintWindowBorder;  pScreen->CopyWindow = vncHooksScreen->CopyWindow;  pScreen->ClearToBackground = vncHooksScreen->ClearToBackground;  pScreen->RestoreAreas = vncHooksScreen->RestoreAreas;  pScreen->InstallColormap = vncHooksScreen->InstallColormap;  pScreen->StoreColors = vncHooksScreen->StoreColors;  pScreen->DisplayCursor = vncHooksScreen->DisplayCursor;  pScreen->BlockHandler = vncHooksScreen->BlockHandler;  xfree((pointer)vncHooksScreen);  DBGPRINT((stderr,"vncHooksCloseScreen: unwrapped screen functions\n"));  return (*pScreen->CloseScreen)(i, pScreen);}// CreateGC - wrap the "GC funcs"static Bool vncHooksCreateGC(GCPtr pGC){  SCREEN_UNWRAP(pGC->pScreen, CreateGC);      vncHooksGCPtr vncHooksGC    = (vncHooksGCPtr)pGC->devPrivates[vncHooksGCIndex].ptr;  Bool ret = (*pScreen->CreateGC) (pGC);  vncHooksGC->wrappedOps = 0;  vncHooksGC->wrappedFuncs = pGC->funcs;  pGC->funcs = &vncHooksGCFuncs;  SCREEN_REWRAP(CreateGC);  return ret;}// PaintWindowBackground - changed region is the given regionstatic void vncHooksPaintWindowBackground(WindowPtr pWin, RegionPtr pRegion,                                          int what){  SCREEN_UNWRAP(pWin->drawable.pScreen, PaintWindowBackground);  RegionHelper changed(pScreen, pRegion);  (*pScreen->PaintWindowBackground) (pWin, pRegion, what);  vncHooksScreen->desktop->add_changed(changed.reg);  SCREEN_REWRAP(PaintWindowBackground);}// PaintWindowBorder - changed region is the given regionstatic void vncHooksPaintWindowBorder(WindowPtr pWin, RegionPtr pRegion,                                      int what){  SCREEN_UNWRAP(pWin->drawable.pScreen, PaintWindowBorder);  RegionHelper changed(pScreen, pRegion);  (*pScreen->PaintWindowBorder) (pWin, pRegion, what);  vncHooksScreen->desktop->add_changed(changed.reg);  SCREEN_REWRAP(PaintWindowBorder);}// CopyWindow - destination of the copy is the old region, clipped by// borderClip, translated by the delta.  This call only does the copy - it// doesn't affect any other bits.static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,                               RegionPtr pOldRegion){  SCREEN_UNWRAP(pWin->drawable.pScreen, CopyWindow);  RegionHelper copied(pScreen, pOldRegion);  int dx = pWin->drawable.x - ptOldOrg.x;  int dy = pWin->drawable.y - ptOldOrg.y;  REGION_TRANSLATE(pScreen, copied.reg, dx, dy);  REGION_INTERSECT(pWin->drawable.pScreen, copied.reg, copied.reg,                   &pWin->borderClip);  (*pScreen->CopyWindow) (pWin, ptOldOrg, pOldRegion);  vncHooksScreen->desktop->add_copied(copied.reg, dx, dy);  SCREEN_REWRAP(CopyWindow);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲无线码一区二区三区| 久久精品99国产精品日本| 3d动漫精品啪啪一区二区竹菊| 精品一区二区精品| 一区二区免费在线播放| 国产午夜精品一区二区三区四区| 色狠狠av一区二区三区| 国产盗摄一区二区三区| 日韩国产高清影视| 亚洲欧美激情插| 久久精品视频网| 日韩免费成人网| 欧美日韩精品专区| av资源站一区| 国产成人精品一区二| 日本va欧美va瓶| 亚洲一区二区视频| 国产精品久久久久影视| 久久久久久免费| 欧美一级日韩一级| 欧美日韩国产高清一区| 99精品桃花视频在线观看| 国产福利一区在线| 精品一区二区三区在线视频| 日韩在线一区二区| 亚洲电影视频在线| 亚洲一区在线电影| 亚洲精品乱码久久久久久| 国产精品美女久久久久久| 欧美—级在线免费片| 久久综合网色—综合色88| 欧美一区中文字幕| 欧美日韩国产一区| 欧美日韩精品电影| 欧美日韩一区二区在线观看| 欧美在线你懂得| 欧美三区在线观看| 欧美日韩一本到| 欧美人xxxx| 欧美一级久久久久久久大片| 制服丝袜亚洲精品中文字幕| 欧美少妇性性性| 欧美三级蜜桃2在线观看| 欧美日韩一区二区三区视频| 欧美伊人久久大香线蕉综合69 | 欧美三级在线看| 欧美日韩情趣电影| 欧美猛男超大videosgay| 欧美精品一卡两卡| 日韩精品一区在线| 久久久久久电影| 亚洲国产成人午夜在线一区| 日韩毛片精品高清免费| 亚洲综合激情网| 三级精品在线观看| 看片网站欧美日韩| 国产精选一区二区三区| 成人久久18免费网站麻豆| 91免费国产在线| 欧美日韩中文精品| 欧美一区二区三区四区视频| 2023国产精品| 中文字幕av一区二区三区高| 亚洲激情网站免费观看| 日本不卡视频一二三区| 国产精品一区免费视频| 色偷偷88欧美精品久久久| 91精品国产综合久久久蜜臀粉嫩| 精品国产91洋老外米糕| 国产精品国产精品国产专区不片| 一区二区高清在线| 日本在线播放一区二区三区| 国产91露脸合集magnet| 日本乱码高清不卡字幕| 日韩欧美国产一二三区| 国产精品乱人伦中文| 亚洲一区二区在线免费看| 青青草国产成人99久久| 成人免费高清视频在线观看| 欧美无砖专区一中文字| 久久综合狠狠综合| 亚洲综合在线免费观看| 韩国三级在线一区| 在线观看日韩精品| 精品欧美久久久| 亚洲精品videosex极品| 激情综合五月婷婷| 在线免费观看成人短视频| 精品国产3级a| 亚洲国产精品一区二区久久恐怖片 | 亚洲成av人综合在线观看| 狠狠色伊人亚洲综合成人| 色婷婷av一区| 欧美极品少妇xxxxⅹ高跟鞋 | 久久久久久久久蜜桃| 国产精品网友自拍| 图片区日韩欧美亚洲| 亚洲chinese男男1069| 成人中文字幕合集| 欧美二区三区的天堂| 久久综合九色综合97_久久久| 亚洲欧美日韩系列| 激情丁香综合五月| 在线欧美日韩精品| 自拍偷在线精品自拍偷无码专区| 婷婷开心久久网| 成人一区二区视频| 欧美精品久久一区二区三区| 欧美高清一级片在线观看| 日韩综合小视频| 欧洲国内综合视频| 欧美国产一区二区| 免费观看91视频大全| 91小视频在线观看| 久久青草国产手机看片福利盒子 | 视频一区在线播放| 91在线视频观看| 精品国产伦一区二区三区免费 | 老司机精品视频一区二区三区| 97国产一区二区| 911精品国产一区二区在线| 一区二区三区四区在线免费观看| 国产最新精品免费| 91精品国产91热久久久做人人| 亚洲免费看黄网站| 丁香啪啪综合成人亚洲小说 | 91丨porny丨国产| 久久久夜色精品亚洲| 日本成人在线看| 91高清视频免费看| 久久久久久久免费视频了| 九一九一国产精品| 日韩一级免费观看| 亚洲高清免费视频| 色999日韩国产欧美一区二区| 国产亚洲欧美一区在线观看| 久久精品72免费观看| 欧美日韩亚洲丝袜制服| 亚洲一区二区五区| 91福利在线观看| 亚洲欧美偷拍另类a∨色屁股| 99热精品一区二区| 国产精品短视频| 不卡电影免费在线播放一区| 久久先锋资源网| 精品一区二区三区在线视频| 欧美日韩国产系列| 蜜芽一区二区三区| 91精品国产综合久久婷婷香蕉| 国产乱码精品一区二区三| 日韩一区二区在线看| 日本一道高清亚洲日美韩| 精品精品国产高清a毛片牛牛| 久久狠狠亚洲综合| 精品国产乱码久久久久久蜜臀| 麻豆免费看一区二区三区| 精品欧美久久久| 蜜桃av噜噜一区二区三区小说| 日韩欧美黄色影院| 精品一区二区三区在线播放视频| 日韩视频免费观看高清完整版在线观看| 首页国产丝袜综合| 日韩三级免费观看| 奇米888四色在线精品| 日韩免费视频一区二区| 国内精品久久久久影院色| 欧美激情在线一区二区| 99re视频精品| 丝袜美腿亚洲色图| 欧洲人成人精品| 精品在线观看免费| 久久蜜桃av一区二区天堂| 国产成人在线视频网站| 最新中文字幕一区二区三区| 欧美日韩午夜在线视频| 免费成人你懂的| 国产女人18毛片水真多成人如厕| 99久久精品免费看国产免费软件| 日本一区二区三级电影在线观看| 欧美主播一区二区三区美女| 日韩电影免费在线看| 久久久高清一区二区三区| 9色porny自拍视频一区二区| 中文字幕视频一区二区三区久| 欧美精选一区二区| 国产成人啪午夜精品网站男同| 国产精品不卡在线| 91麻豆精品国产| 精品一区二区在线播放| 亚洲色图欧美激情| 日韩欧美一区二区三区在线| www.欧美色图| 日本不卡1234视频| 亚洲精品成人悠悠色影视| 精品蜜桃在线看| 91免费国产在线| 久久99九九99精品| 一区二区三区中文字幕精品精品| 欧美一区二区三区公司| 不卡电影免费在线播放一区|