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

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

?? visual.c

?? 編譯后直接運行的MP3播放器全部C語言源代碼 一個包含FAT文件系統、系統引導 Boot、FLASH Driver等內容的
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999 *  by Jamie Zawinski <jwz@jwz.org> * * 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.  No representations are made about the suitability of this * software for any purpose.  It is provided "as is" without express or  * implied warranty. *//* This file contains some code for intelligently picking the best visual   (where "best" is biased in the direction of either: high color counts;   or: having writable color cells...) */#include "utils.h"#include "resources.h"  /* for get_string_resource() */#include "visual.h"#include <X11/Xutil.h>extern char *progname;#ifndef isupper# define isupper(c)  ((c) >= 'A' && (c) <= 'Z')#endif#ifndef _tolower# define _tolower(c)  ((c) - 'A' + 'a')#endifstatic Visual *pick_best_visual (Screen *, Bool, Bool);static Visual *pick_mono_visual (Screen *);static Visual *pick_best_visual_of_class (Screen *, int);static Visual *pick_best_gl_visual (Screen *);static Visual *id_to_visual (Screen *, int);static Visual *id_to_visual (Screen *screen, int id);#define DEFAULT_VISUAL	-1#define BEST_VISUAL	-2#define MONO_VISUAL	-3#define GRAY_VISUAL	-4#define COLOR_VISUAL	-5#define GL_VISUAL	-6#define SPECIFIC_VISUAL	-7Visual *get_visual (Screen *screen, const char *string, Bool prefer_writable_cells,	    Bool verbose_p){  char *v = (string ? strdup(string) : 0);  char c, *tmp;  int vclass;  unsigned long id;  Visual *result = 0;  if (v)    for (tmp = v; *tmp; tmp++)      if (isupper (*tmp)) *tmp = _tolower (*tmp);  if (!v || !*v)				  vclass = BEST_VISUAL;  else if (!strcmp (v, "default"))		  vclass = DEFAULT_VISUAL;  else if (!strcmp (v, "best")) 		  vclass = BEST_VISUAL;  else if (!strcmp (v, "mono")) 		  vclass = MONO_VISUAL;  else if (!strcmp (v, "monochrome")) 		  vclass = MONO_VISUAL;  else if (!strcmp (v, "gray")) 		  vclass = GRAY_VISUAL;  else if (!strcmp (v, "grey")) 		  vclass = GRAY_VISUAL;  else if (!strcmp (v, "color")) 		  vclass = COLOR_VISUAL;  else if (!strcmp (v, "gl"))	 		  vclass = GL_VISUAL;  else if (!strcmp (v, "staticgray"))	 	  vclass = StaticGray;  else if (!strcmp (v, "staticcolor"))		  vclass = StaticColor;  else if (!strcmp (v, "truecolor"))		  vclass = TrueColor;  else if (!strcmp (v, "grayscale"))		  vclass = GrayScale;  else if (!strcmp (v, "greyscale"))		  vclass = GrayScale;  else if (!strcmp (v, "pseudocolor"))		  vclass = PseudoColor;  else if (!strcmp (v, "directcolor"))		  vclass = DirectColor;  else if (1 == sscanf (v, " %ld %c", &id, &c))	  vclass = SPECIFIC_VISUAL;  else if (1 == sscanf (v, " 0x%lx %c", &id, &c)) vclass = SPECIFIC_VISUAL;  else    {      fprintf (stderr, "%s: unrecognized visual \"%s\".\n", progname, v);      vclass = DEFAULT_VISUAL;    }  if (vclass == DEFAULT_VISUAL)    result = DefaultVisualOfScreen (screen);  else if (vclass == BEST_VISUAL)    result = pick_best_visual (screen, prefer_writable_cells, False);  else if (vclass == MONO_VISUAL)    {      result = pick_mono_visual (screen);      if (!result && verbose_p)	fprintf (stderr, "%s: no monochrome visuals.\n", progname);    }  else if (vclass == GRAY_VISUAL)    {      if (prefer_writable_cells)	result = pick_best_visual_of_class (screen, GrayScale);      if (!result)	result = pick_best_visual_of_class (screen, StaticGray);      if (!result)	result = pick_best_visual_of_class (screen, GrayScale);      if (!result && verbose_p)	fprintf (stderr, "%s: no GrayScale or StaticGray visuals.\n",		 progname);    }  else if (vclass == COLOR_VISUAL)    {      int class;      /* First see if the default visual will do. */      result = DefaultVisualOfScreen (screen);      class = visual_class(screen, result);      if (class != TrueColor &&	  class != PseudoColor &&	  class != DirectColor &&	  class != StaticColor)	result = 0;      if (result && visual_depth(screen, result) <= 1)	result = 0;      /* Else, find the best non-default color visual */      if (!result)	result = pick_best_visual (screen, prefer_writable_cells, True);      if (!result && verbose_p)	fprintf (stderr, "%s: no color visuals.\n", progname);    }  else if (vclass == GL_VISUAL)    {      Visual *visual = pick_best_gl_visual (screen);      if (visual)	result = visual;      else if (verbose_p)	fprintf (stderr, "%s: no visual suitable for GL.\n", progname);    }  else if (vclass == SPECIFIC_VISUAL)    {      result = id_to_visual (screen, id);      if (!result && verbose_p)	fprintf (stderr, "%s: no visual with id 0x%x.\n", progname,		 (unsigned int) id);    }  else    {      Visual *visual = pick_best_visual_of_class (screen, vclass);      if (visual)	result = visual;      else if (verbose_p)	fprintf (stderr, "%s: no visual of class %s.\n", progname, v);    }  if (v) free (v);  return result;}Visual *get_visual_resource (Screen *screen, char *name, char *class,		     Bool prefer_writable_cells){  char *string = get_string_resource (name, class);  Visual *v = get_visual (screen, string, prefer_writable_cells, True);  if (string)    free(string);  if (v)    return v;  else    return DefaultVisualOfScreen (screen);}static Visual *pick_best_visual (Screen *screen, Bool prefer_writable_cells, Bool color_only){  Visual *visual;  if (!prefer_writable_cells)    {      /* If we don't prefer writable cells, then the "best" visual is the one	 on which we can allocate the largest range and number of colors.	 Therefore, a TrueColor visual which is at least 16 bits deep is best.	 (The assumption here being that a TrueColor of less than 16 bits is	 really just a PseudoColor visual with a pre-allocated color cube.)	 The next best thing is a PseudoColor visual of any type.  After that	 come the non-colormappable visuals, and non-color visuals.       */      if ((visual = pick_best_visual_of_class (screen, TrueColor)) &&	  visual_depth (screen, visual) >= 16)	return visual;    }#define TRY_CLASS(CLASS) \  if ((visual = pick_best_visual_of_class (screen, CLASS)) && \      (!color_only || visual_depth(screen, visual) > 1)) \    return visual  TRY_CLASS(PseudoColor);  TRY_CLASS(TrueColor);  TRY_CLASS(DirectColor);  TRY_CLASS(StaticColor);  if (!color_only)    {      TRY_CLASS(GrayScale);      TRY_CLASS(StaticGray);    }#undef TRY_CLASS  visual = DefaultVisualOfScreen (screen);  if (!color_only || visual_depth(screen, visual) > 1)    return visual;  else    return 0;}static Visual *pick_mono_visual (Screen *screen){  Display *dpy = DisplayOfScreen (screen);  XVisualInfo vi_in, *vi_out;  int out_count;  vi_in.depth = 1;  vi_in.screen = screen_number (screen);  vi_out = XGetVisualInfo (dpy, (VisualDepthMask | VisualScreenMask),			   &vi_in, &out_count);  if (vi_out)    {      Visual *v = (out_count > 0 ? vi_out [0].visual : 0);      if (v && vi_out[0].depth != 1)	v = 0;      XFree ((char *) vi_out);      return v;    }  else    return 0;}static Visual *pick_best_visual_of_class (Screen *screen, int visual_class){  /* The best visual of a class is the one which on which we can allocate     the largest range and number of colors, which means the one with the     greatest depth and number of cells.     (But actually, for XDaliClock, all visuals of the same class are     probably equivalent - either we have writable cells or we don't.)   */  Display *dpy = DisplayOfScreen (screen);  XVisualInfo vi_in, *vi_out;  int out_count;  vi_in.class = visual_class;  vi_in.screen = screen_number (screen);  vi_out = XGetVisualInfo (dpy, (VisualClassMask | VisualScreenMask),			   &vi_in, &out_count);  if (vi_out)    {      /* choose the 'best' one, if multiple */      int i, best;      Visual *visual;/*      for (i = 0, best = 0; i < out_count; i++) */      for (i = out_count-1, best = i; i >= 0; i--) /* go backwards */	/* It's better if it's deeper, or if it's the same depth with	   more cells (does that ever happen?  Well, it could...) */	if ((vi_out [i].depth > vi_out [best].depth) ||	    ((vi_out [i].depth == vi_out [best].depth) &&	     (vi_out [i].colormap_size > vi_out [best].colormap_size)))	  best = i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看你懂的| 欧美精品丝袜中出| 麻豆91在线看| 免费在线观看日韩欧美| 日韩综合在线视频| 秋霞午夜av一区二区三区| 亚洲综合色噜噜狠狠| 亚洲自拍另类综合| 亚洲成人在线免费| 日韩国产精品久久| 精品一区二区免费在线观看| 狠狠色综合色综合网络| 国产精品一区免费视频| 国产一二精品视频| 成人丝袜高跟foot| 色婷婷综合久久久久中文一区二区| av不卡在线播放| 色乱码一区二区三区88| 欧美精选午夜久久久乱码6080| 7777精品伊人久久久大香线蕉超级流畅| 在线精品国精品国产尤物884a | 欧美日韩一区二区在线视频| 欧美自拍丝袜亚洲| 日韩三级精品电影久久久 | 99久久精品一区二区| 北条麻妃国产九九精品视频| 欧美伊人久久大香线蕉综合69| 欧美日韩国产精选| 久久影院午夜片一区| 国产精品女人毛片| 日日摸夜夜添夜夜添精品视频| 老汉av免费一区二区三区 | 日韩电影免费在线观看网站| 国产真实乱子伦精品视频| 95精品视频在线| 日韩免费高清电影| 亚洲激情男女视频| 九九精品视频在线看| 色哟哟日韩精品| 精品国产乱码久久久久久夜甘婷婷| 国产精品久久久久三级| 日本不卡一区二区| 99久久精品国产一区二区三区| 在线不卡欧美精品一区二区三区| xvideos.蜜桃一区二区| 亚洲综合在线视频| 国产高清成人在线| 9191精品国产综合久久久久久 | 欧美日韩精品免费观看视频 | 亚洲国产日韩a在线播放性色| 精品一区二区三区香蕉蜜桃| 91官网在线观看| 欧美激情自拍偷拍| 精品一区二区国语对白| 欧美日韩中文字幕一区| 亚洲色图制服丝袜| 国产成a人亚洲精| 欧美本精品男人aⅴ天堂| 亚洲一区二区三区爽爽爽爽爽| 国产成人精品1024| 2024国产精品| 美女在线视频一区| 911精品国产一区二区在线| 亚洲黄色尤物视频| 波多野结衣亚洲| 国产午夜亚洲精品午夜鲁丝片 | 亚洲欧洲日产国码二区| 国产a久久麻豆| 久久久久久免费网| 国产精品一区三区| 国产亚洲精品福利| 国产一区二区三区综合| 精品日韩欧美一区二区| 免费在线看成人av| 精品久久久久久最新网址| 日韩在线一区二区三区| 欧美视频在线一区二区三区| 亚洲成人你懂的| 欧美军同video69gay| 日日摸夜夜添夜夜添精品视频| 欧美色老头old∨ideo| 日韩高清欧美激情| 日韩三级视频在线观看| 九一久久久久久| 国产日本欧美一区二区| 成人av资源网站| 亚洲精品乱码久久久久久久久| 欧美主播一区二区三区| 日韩av电影天堂| 26uuu亚洲婷婷狠狠天堂| 国产精品一卡二卡在线观看| 国产精品网站在线播放| 色综合天天综合网天天狠天天| 亚洲综合一区二区三区| 91精品国产高清一区二区三区 | 日韩免费观看高清完整版| 亚洲成av人**亚洲成av**| 日韩手机在线导航| 韩国中文字幕2020精品| 久久久久国产一区二区三区四区| 狠狠色狠狠色合久久伊人| 26uuu国产在线精品一区二区| 免费日本视频一区| 国产精品久久久久永久免费观看| 91尤物视频在线观看| 亚洲精品ww久久久久久p站| 色婷婷综合五月| 天天色综合成人网| 欧美日韩国产一二三| 国产精品自在在线| 日韩美女视频19| 99久久伊人精品| 亚洲一区二区精品视频| 国产亲近乱来精品视频 | 亚洲免费观看视频| 欧美色电影在线| 国产一区二区中文字幕| 日韩一区二区免费视频| 91偷拍与自偷拍精品| 亚洲成人精品一区| 精品国产伦一区二区三区观看体验| 国产精品一卡二| 亚洲精品高清在线| 欧美一二三四区在线| 91伊人久久大香线蕉| 日韩国产欧美一区二区三区| 国产日韩一级二级三级| 日本高清不卡aⅴ免费网站| 久久99久久99精品免视看婷婷| 日韩欧美一区二区不卡| 欧美调教femdomvk| 国产99久久久国产精品潘金网站| 亚洲综合色婷婷| 久久精品日产第一区二区三区高清版 | 欧美在线一区二区| 丝袜亚洲另类欧美| 国产精品美女久久久久久2018| 欧美三级电影网站| 色综合激情五月| 国产伦精品一区二区三区在线观看| 亚洲欧美日韩成人高清在线一区| 日韩欧美色综合网站| 色国产精品一区在线观看| 国产一区二区三区久久久| 麻豆国产一区二区| 亚洲电影你懂得| 亚洲手机成人高清视频| 久久精品视频在线免费观看| 欧美精品乱人伦久久久久久| 麻豆国产精品官网| 免费人成黄页网站在线一区二区| 一区二区三区四区在线免费观看| 国产性色一区二区| 久久综合国产精品| 欧美一区二区在线免费观看| 3751色影院一区二区三区| 欧美日韩一区二区三区四区| 91在线一区二区| 99re这里只有精品首页| 成人高清免费观看| 国产+成+人+亚洲欧洲自线| 国内久久婷婷综合| 精品一区中文字幕| 免费成人在线影院| 国产毛片精品视频| 国精产品一区一区三区mba视频 | 日本午夜一本久久久综合| 亚洲色大成网站www久久九九| 中文字幕乱码亚洲精品一区| 久久精品视频免费| 久久免费的精品国产v∧| 精品国精品国产| 欧美在线制服丝袜| 精品免费一区二区三区| 日韩欧美国产一区二区三区 | 日本不卡一区二区三区| 国精产品一区一区三区mba桃花| 久久99九九99精品| 久草在线在线精品观看| 国产电影精品久久禁18| 成人小视频免费在线观看| 在线精品观看国产| 欧美年轻男男videosbes| 91精品婷婷国产综合久久竹菊| 91精品国产综合久久久蜜臀粉嫩 | 综合久久久久久久| 亚洲欧洲av色图| 国产精品美女久久久久aⅴ国产馆| 日韩欧美一区二区在线视频| 91精品国产综合久久香蕉麻豆| 日韩一区二区三区视频| 精品国产一区二区国模嫣然| 日韩美女一区二区三区| 中文子幕无线码一区tr| 国产精品国产a级| 亚洲成人高清在线| 国产资源精品在线观看| 欧美丝袜丝交足nylons| 欧美精品一区二区精品网| 国产精品蜜臀av|