⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xvnc.cc

📁 Informix Table extraction queries have been optimized
💻 CC
📖 第 1 页 / 共 3 页
字号:
  {  case 1:    ret = mfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,                        dpi, dpi, pvfb->paddedWidth);    break;  case 8:    ret = cfbScreenInit(pScreen, pbits, pvfb->width, pvfb->height,                        dpi, dpi, pvfb->paddedWidth);    break;  case 16:    ret = cfb16ScreenInit(pScreen, pbits, pvfb->width, pvfb->height,                          dpi, dpi, pvfb->paddedWidth);    break;  case 32:    ret = cfb32ScreenInit(pScreen, pbits, pvfb->width, pvfb->height,                          dpi, dpi, pvfb->paddedWidth);    break;  default:    return FALSE;  }  if (!ret) return FALSE;  pScreen->CreateGC = vfbMultiDepthCreateGC;  pScreen->GetImage = vfbMultiDepthGetImage;  pScreen->GetSpans = vfbMultiDepthGetSpans;  pScreen->InstallColormap = vfbInstallColormap;  pScreen->UninstallColormap = vfbUninstallColormap;  pScreen->ListInstalledColormaps = vfbListInstalledColormaps;  pScreen->SaveScreen = vfbSaveScreen;  pScreen->StoreColors = vfbStoreColors;  miPointerInitialize(pScreen, &vfbPointerSpriteFuncs, &vfbPointerScreenFuncs,                      FALSE);  vfbWriteXWDFileHeader(pScreen);  pScreen->blackPixel = pvfb->blackPixel;  pScreen->whitePixel = pvfb->whitePixel;  if (!pvfb->pixelFormatDefined && pvfb->depth == 16) {    pvfb->pixelFormatDefined = TRUE;    pvfb->rgbNotBgr = TRUE;    pvfb->blueBits = pvfb->redBits = 5;    pvfb->greenBits = 6;  }  if (pvfb->pixelFormatDefined) {    VisualPtr vis;    for (vis = pScreen->visuals; vis->vid != pScreen->rootVisual; vis++)      ;    if (pvfb->rgbNotBgr) {      vis->offsetBlue = 0;      vis->blueMask = (1 << pvfb->blueBits) - 1;      vis->offsetGreen = pvfb->blueBits;      vis->greenMask = ((1 << pvfb->greenBits) - 1) << vis->offsetGreen;      vis->offsetRed = vis->offsetGreen + pvfb->greenBits;      vis->redMask = ((1 << pvfb->redBits) - 1) << vis->offsetRed;    } else {      vis->offsetRed = 0;      vis->redMask = (1 << pvfb->redBits) - 1;      vis->offsetGreen = pvfb->redBits;      vis->greenMask = ((1 << pvfb->greenBits) - 1) << vis->offsetGreen;      vis->offsetBlue = vis->offsetGreen + pvfb->greenBits;      vis->blueMask = ((1 << pvfb->blueBits) - 1) << vis->offsetBlue;    }  }  if (pvfb->bitsPerPixel == 1)  {    ret = mfbCreateDefColormap(pScreen);  }  else  {    ret = cfbCreateDefColormap(pScreen);  }  miSetZeroLineBias(pScreen, pvfb->lineBias);#ifndef NO_INIT_BACKING_STORE  miInitializeBackingStore(pScreen);  pScreen->backingStoreSupport = Always;#endif  return ret;} /* end vfbScreenInit */static void vfbClientStateChange(CallbackListPtr*, pointer, pointer) {  dispatchException &= ~DE_RESET;}void InitOutput(ScreenInfo *screenInfo, int argc, char **argv){  ErrorF("\nXvnc %s - built %s\n%s", XVNCVERSION, buildtime, XVNCCOPYRIGHT);  ErrorF("Underlying X server release %d, %s\n\n", VENDOR_RELEASE,         VENDOR_STRING);  wellKnownSocketsCreated = true;  int i;  int NumFormats = 0;  /* initialize pixmap formats */  /* must have a pixmap depth to match every screen depth */  for (i = 0; i < vfbNumScreens; i++)  {    vfbPixmapDepths[vfbScreens[i].depth] = TRUE;  }  for (i = 1; i <= 32; i++)  {    if (vfbPixmapDepths[i])    {      if (NumFormats >= MAXFORMATS)        FatalError ("MAXFORMATS is too small for this server\n");      screenInfo->formats[NumFormats].depth = i;      screenInfo->formats[NumFormats].bitsPerPixel = vfbBitsPerPixel(i);      screenInfo->formats[NumFormats].scanlinePad = BITMAP_SCANLINE_PAD;      NumFormats++;    }  }  screenInfo->imageByteOrder = IMAGE_BYTE_ORDER;  screenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT;  screenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD;  screenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;  screenInfo->numPixmapFormats = NumFormats;  /* initialize screens */  for (i = 0; i < vfbNumScreens; i++)  {    if (-1 == AddScreen(vfbScreenInit, argc, argv))    {      FatalError("Couldn't add screen %d", i);    }  }  if (!AddCallback(&ClientStateCallback, vfbClientStateChange, 0)) {    FatalError("AddCallback failed\n");  }} /* end InitOutput */#ifdef DPMSExtensionextern "C" {#if NeedFunctionPrototypes  void DPMSSet(CARD16 level)#else    void DPMSSet(level)    CARD16 level;#endif  {    return;  }  Bool DPMSSupported()  {    return FALSE;  }}#endif/* this is just to get the server to link on AIX */#ifdef AIXV3int SelectWaitTime = 10000; /* usec */#endifBool LegalModifier(unsigned int key, DevicePtr pDev){  return TRUE;}void ProcessInputEvents(){  mieqProcessInputEvents();  miPointerUpdate();}/* Fairly standard US PC Keyboard */#define VFB_MIN_KEY 8#define VFB_MAX_KEY 255#define VFB_MAP_LEN (VFB_MAX_KEY - VFB_MIN_KEY + 1)#define KEYSYMS_PER_KEY 2KeySym keyboardMap[VFB_MAP_LEN * KEYSYMS_PER_KEY] = {  NoSymbol, NoSymbol,  XK_Escape, NoSymbol,  XK_1, XK_exclam,  XK_2, XK_at,  XK_3, XK_numbersign,  XK_4, XK_dollar,  XK_5, XK_percent,  XK_6, XK_asciicircum,  XK_7, XK_ampersand,  XK_8, XK_asterisk,  XK_9, XK_parenleft,  XK_0, XK_parenright,  XK_minus, XK_underscore,  XK_equal, XK_plus,  XK_BackSpace, NoSymbol,  XK_Tab, NoSymbol,  XK_q, XK_Q,  XK_w, XK_W,  XK_e, XK_E,  XK_r, XK_R,  XK_t, XK_T,  XK_y, XK_Y,  XK_u, XK_U,  XK_i, XK_I,  XK_o, XK_O,  XK_p, XK_P,  XK_bracketleft, XK_braceleft,  XK_bracketright, XK_braceright,  XK_Return, NoSymbol,  XK_Control_L, NoSymbol,  XK_a, XK_A,  XK_s, XK_S,  XK_d, XK_D,  XK_f, XK_F,  XK_g, XK_G,  XK_h, XK_H,  XK_j, XK_J,  XK_k, XK_K,  XK_l, XK_L,  XK_semicolon, XK_colon,  XK_apostrophe, XK_quotedbl,  XK_grave, XK_asciitilde,  XK_Shift_L, NoSymbol,  XK_backslash, XK_bar,  XK_z, XK_Z,  XK_x, XK_X,  XK_c, XK_C,  XK_v, XK_V,  XK_b, XK_B,  XK_n, XK_N,  XK_m, XK_M,  XK_comma, XK_less,  XK_period, XK_greater,  XK_slash, XK_question,  XK_Shift_R, NoSymbol,  XK_KP_Multiply, NoSymbol,  XK_Alt_L, XK_Meta_L,  XK_space, NoSymbol,  /*XK_Caps_Lock*/ NoSymbol, NoSymbol,  XK_F1, NoSymbol,  XK_F2, NoSymbol,  XK_F3, NoSymbol,  XK_F4, NoSymbol,  XK_F5, NoSymbol,  XK_F6, NoSymbol,  XK_F7, NoSymbol,  XK_F8, NoSymbol,  XK_F9, NoSymbol,  XK_F10, NoSymbol,  XK_Num_Lock, XK_Pointer_EnableKeys,  XK_Scroll_Lock, NoSymbol,  XK_KP_Home, XK_KP_7,  XK_KP_Up, XK_KP_8,  XK_KP_Prior, XK_KP_9,  XK_KP_Subtract, NoSymbol,  XK_KP_Left, XK_KP_4,  XK_KP_Begin, XK_KP_5,  XK_KP_Right, XK_KP_6,  XK_KP_Add, NoSymbol,  XK_KP_End, XK_KP_1,  XK_KP_Down, XK_KP_2,  XK_KP_Next, XK_KP_3,  XK_KP_Insert, XK_KP_0,  XK_KP_Delete, XK_KP_Decimal,  NoSymbol, NoSymbol,  NoSymbol, NoSymbol,  NoSymbol, NoSymbol,  XK_F11, NoSymbol,  XK_F12, NoSymbol,  XK_Home, NoSymbol,  XK_Up, NoSymbol,  XK_Prior, NoSymbol,  XK_Left, NoSymbol,  NoSymbol, NoSymbol,  XK_Right, NoSymbol,  XK_End, NoSymbol,  XK_Down, NoSymbol,  XK_Next, NoSymbol,  XK_Insert, NoSymbol,  XK_Delete, NoSymbol,  XK_KP_Enter, NoSymbol,  XK_Control_R, NoSymbol,  XK_Pause, XK_Break,  XK_Print, XK_Execute,  XK_KP_Divide, NoSymbol,  XK_Alt_R, XK_Meta_R,};static Bool GetMappings(KeySymsPtr pKeySyms, CARD8 *pModMap){  int i;  for (i = 0; i < MAP_LENGTH; i++)    pModMap[i] = NoSymbol;  for (i = 0; i < VFB_MAP_LEN; i++) {    if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Caps_Lock)      pModMap[i + VFB_MIN_KEY] = LockMask;    else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_L ||             keyboardMap[i * KEYSYMS_PER_KEY] == XK_Shift_R)      pModMap[i + VFB_MIN_KEY] = ShiftMask;    else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_L ||             keyboardMap[i * KEYSYMS_PER_KEY] == XK_Control_R) {      pModMap[i + VFB_MIN_KEY] = ControlMask;    }    else if (keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_L ||             keyboardMap[i * KEYSYMS_PER_KEY] == XK_Alt_R)      pModMap[i + VFB_MIN_KEY] = Mod1Mask;  }  pKeySyms->minKeyCode = VFB_MIN_KEY;  pKeySyms->maxKeyCode = VFB_MAX_KEY;  pKeySyms->mapWidth = KEYSYMS_PER_KEY;  pKeySyms->map = keyboardMap;  return TRUE;}static void vfbBell(int percent, DeviceIntPtr device, pointer ctrl, int class_){  if (percent > 0)    vncBell();}static int vfbKeybdProc(DeviceIntPtr pDevice, int onoff){  KeySymsRec		keySyms;  CARD8 		modMap[MAP_LENGTH];  DevicePtr pDev = (DevicePtr)pDevice;  switch (onoff)  {  case DEVICE_INIT:     GetMappings(&keySyms, modMap);    InitKeyboardDeviceStruct(pDev, &keySyms, modMap,                             (BellProcPtr)vfbBell, (KbdCtrlProcPtr)NoopDDA);    break;  case DEVICE_ON:     pDev->on = TRUE;    break;  case DEVICE_OFF:     pDev->on = FALSE;    break;  case DEVICE_CLOSE:    break;  }  return Success;}static int vfbMouseProc(DeviceIntPtr pDevice, int onoff){  BYTE map[6];  DevicePtr pDev = (DevicePtr)pDevice;  switch (onoff)  {  case DEVICE_INIT:    map[1] = 1;    map[2] = 2;    map[3] = 3;    map[4] = 4;    map[5] = 5;    InitPointerDeviceStruct(pDev, map, 5, miPointerGetMotionEvents,                            (PtrCtrlProcPtr)NoopDDA, miPointerGetMotionBufferSize());    break;  case DEVICE_ON:    pDev->on = TRUE;    break;  case DEVICE_OFF:    pDev->on = FALSE;    break;  case DEVICE_CLOSE:    break;  }  return Success;}// InitInput is called after InitExtensions, so we're guaranteed that// vncExtensionInit() has already been called.void InitInput(int argc, char *argv[]){  DeviceIntPtr p, k;  p = AddInputDevice(vfbMouseProc, TRUE);  k = AddInputDevice(vfbKeybdProc, TRUE);  RegisterPointerDevice(p);  RegisterKeyboardDevice(k);  miRegisterPointerDevice(screenInfo.screens[0], p);  (void)mieqInit ((DevicePtr)k, (DevicePtr)p);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -