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

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

?? gdkcolor-fb.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* GDK - The GIMP Drawing Kit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. *//* * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS * file for a list of people on the GTK+ Team.  See the ChangeLog * files for a list of changes.  These files are distributed with * GTK+ at ftp://ftp.gtk.org/pub/gtk/.  */#include <config.h>#include <time.h>#include <sys/ioctl.h>#include <string.h>#include <stdlib.h>#include "gdkcolor.h"#include "gdkprivate-fb.h"#define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateFB *) GDK_COLORMAP (cmap)->windowing_data)static gint  gdk_colormap_match_color (GdkColormap *cmap,				       GdkColor    *color,				       const gchar *available);static void  gdk_fb_color_round_to_hw (GdkColor *color);static gpointer parent_class;static voidgdk_colormap_finalize (GObject *object){  GdkColormap *colormap = GDK_COLORMAP (object);  GdkColormapPrivateFB *private = GDK_COLORMAP_PRIVATE_DATA (colormap);  if (private->hash)    g_hash_table_destroy (private->hash);    g_free (private->info);  g_free (colormap->colors);  g_free (private);  G_OBJECT_CLASS (parent_class)->finalize (object);}static voidgdk_colormap_init (GdkColormap *colormap){  GdkColormapPrivateFB *private;  private = g_new (GdkColormapPrivateFB, 1);  colormap->windowing_data = private;    colormap->size = 0;  colormap->colors = NULL;}static voidgdk_colormap_class_init (GdkColormapClass *klass){  GObjectClass *object_class = G_OBJECT_CLASS (klass);  parent_class = g_type_class_peek_parent (klass);  object_class->finalize = gdk_colormap_finalize;}GTypegdk_colormap_get_type (void){  static GType object_type = 0;  if (!object_type)    {      static const GTypeInfo object_info =      {        sizeof (GdkColormapClass),        (GBaseInitFunc) NULL,        (GBaseFinalizeFunc) NULL,        (GClassInitFunc) gdk_colormap_class_init,        NULL,           /* class_finalize */        NULL,           /* class_data */        sizeof (GdkColormap),        0,              /* n_preallocs */        (GInstanceInitFunc) gdk_colormap_init,      };            object_type = g_type_register_static (G_TYPE_OBJECT,                                            "GdkColormap",                                            &object_info,					    0);    }    return object_type;}GdkColormap *gdk_colormap_new (GdkVisual *visual,		  gint       private_cmap){  GdkColormap *colormap;  GdkColormap *system;  GdkColormapPrivateFB *private;  GdkFBDisplay *fbd;  int i;  g_return_val_if_fail (visual != NULL, NULL);  colormap = g_object_new (gdk_colormap_get_type (), NULL);  private = GDK_COLORMAP_PRIVATE_DATA (colormap);  colormap->visual = visual;  fbd = gdk_display;  private->hash = NULL;    colormap->size = visual->colormap_size;  colormap->colors = NULL;  switch (visual->type)    {    case GDK_VISUAL_STATIC_GRAY:    case GDK_VISUAL_STATIC_COLOR:    case GDK_VISUAL_GRAYSCALE:    case GDK_VISUAL_PSEUDO_COLOR:      private->info = g_new0 (GdkColorInfo, colormap->size);      colormap->colors = g_new (GdkColor, colormap->size);            private->hash = g_hash_table_new ((GHashFunc) gdk_color_hash,					(GEqualFunc) gdk_color_equal);      system = gdk_colormap_get_system ();      memcpy (colormap->colors, system->colors, colormap->size * sizeof (GdkColor));            if (private_cmap)	{	  guint16 red[256], green[256], blue[256];	  struct fb_cmap fbc = {0, 256};	  fbc.red = red;	  fbc.green = green;	  fbc.blue = blue;	  if (ioctl (fbd->fb_fd, FBIOGETCMAP, &fbc))	    g_error("ioctl(FBIOGETCMAP) failed");	  for (i = 0; i < colormap->size; i++)	    {	      colormap->colors[i].pixel = i;	      colormap->colors[i].red = red[i];	      colormap->colors[i].green = green[i];	      colormap->colors[i].blue = blue[i];	    }	  gdk_colormap_change (colormap, colormap->size);	}      break;    case GDK_VISUAL_DIRECT_COLOR:      g_warning ("gdk_colormap_new () on a direct color visual not implemented");#if 0      colormap->colors = g_new (GdkColor, colormap->size);      size = 1 << visual->red_prec;      for (i = 0; i < size; i++)	colormap->colors[i].red = i * 65535 / (size - 1);      size = 1 << visual->green_prec;      for (i = 0; i < size; i++)	colormap->colors[i].green = i * 65535 / (size - 1);      size = 1 << visual->blue_prec;      for (i = 0; i < size; i++)	colormap->colors[i].blue = i * 65535 / (size - 1);      gdk_colormap_change (colormap, colormap->size);#endif      break;    default:      g_assert_not_reached ();    case GDK_VISUAL_TRUE_COLOR:      break;    }  return colormap;}GdkColormap*gdk_screen_get_system_colormap (GdkScreen *screen){  static GdkColormap *colormap = NULL;  if (!colormap)    {      GdkColormapPrivateFB *private;      GdkVisual *visual = gdk_visual_get_system ();      int i, r, g, b;            colormap = g_object_new (gdk_colormap_get_type (), NULL);      private = GDK_COLORMAP_PRIVATE_DATA (colormap);      colormap->visual = visual;      private->hash = NULL;            colormap->size = visual->colormap_size;      colormap->colors = NULL;            switch (visual->type)	{	case GDK_VISUAL_STATIC_GRAY:	case GDK_VISUAL_STATIC_COLOR:	case GDK_VISUAL_GRAYSCALE:	case GDK_VISUAL_PSEUDO_COLOR:	  private->info = g_new0 (GdkColorInfo, colormap->size);	  colormap->colors = g_new (GdkColor, colormap->size);	  	  private->hash = g_hash_table_new ((GHashFunc) gdk_color_hash,					    (GEqualFunc) gdk_color_equal);	  switch(visual->type)	    {	    case GDK_VISUAL_GRAYSCALE:	      for(i = 0; i < 256; i++) {		colormap->colors[i].red = 		  colormap->colors[i].green =		  colormap->colors[i].blue = i << 8;		gdk_fb_color_round_to_hw (&colormap->colors[i]);	      }	      i--;	      colormap->colors[i].red = 		colormap->colors[i].green =		colormap->colors[i].blue = 65535; /* Make it a true white */	      gdk_fb_color_round_to_hw (&colormap->colors[i]);	      break;	    case GDK_VISUAL_PSEUDO_COLOR:	      /* Color cube stolen from gdkrgb upon advice from Owen */	      for(i = r = 0; r < 6; r++)		for(g = 0; g < 6; g++)		  for(b = 0; b < 6; b++)		    {		      colormap->colors[i].red = r * 65535 / 5;		      colormap->colors[i].green = g * 65535 / 5;		      colormap->colors[i].blue = b * 65535 / 5;		      gdk_fb_color_round_to_hw (&colormap->colors[i]);		      i++;		    }	      g_assert (i == 216);	      /* Fill in remaining space with grays */	      for(i = 216; i < 256; i++)		{		  colormap->colors[i].red = 		    colormap->colors[i].green =		    colormap->colors[i].blue = (i - 216) * 40;		  gdk_fb_color_round_to_hw (&colormap->colors[i]);		}	      /* Real white */	      colormap->colors[255].red = 		  colormap->colors[255].green =		  colormap->colors[255].blue = 65535;	      gdk_fb_color_round_to_hw (&colormap->colors[255]);	      break;	    default:	      break;	    }	  break;	case GDK_VISUAL_DIRECT_COLOR:	  g_warning ("gdk_colormap_get_system() on a direct color visual is not implemented");	  break;	default:	  g_assert_not_reached ();	case GDK_VISUAL_TRUE_COLOR:	  break;	}            /* Lock all colors for the system colormap       * on pseudocolor visuals. The AA text rendering       * takes to many colors otherwise.       */      if ((visual->type == GDK_VISUAL_GRAYSCALE) ||	  (visual->type == GDK_VISUAL_PSEUDO_COLOR))	{	  for(i = 0; i < 256; i++)	    {	      colormap->colors[i].pixel = i;	      private->info[i].ref_count = 1;	      g_hash_table_insert (private->hash,				   &colormap->colors[i],				   &colormap->colors[i]);	    }	}      gdk_colormap_change (colormap, colormap->size);    }  return colormap;}gintgdk_colormap_get_system_size (void){  return 1 << (gdk_display->modeinfo.bits_per_pixel);}voidgdk_colormap_change (GdkColormap *colormap,		     gint         ncolors){  guint16 red[256], green[256], blue[256];  struct fb_cmap fbc = {0,256};  GdkColormapPrivateFB *private;  int i;  g_return_if_fail (colormap != NULL);  fbc.red = red;  fbc.green = green;  fbc.blue = blue;  private = GDK_COLORMAP_PRIVATE_DATA (colormap);  switch (colormap->visual->type)    {    case GDK_VISUAL_GRAYSCALE:      for(i = 0; i < ncolors; i++)	{	  red[i] = green[i] = blue[i] =	    (colormap->colors[i].red +	     colormap->colors[i].green +	     colormap->colors[i].blue)/3;	}      ioctl (gdk_display->fb_fd, FBIOPUTCMAP, &fbc);      break;    case GDK_VISUAL_PSEUDO_COLOR:      for (i = 0; i < ncolors; i++)	{	  red[i] = colormap->colors[i].red;	  green[i] = colormap->colors[i].green;	  blue[i] = colormap->colors[i].blue;	}      ioctl (gdk_display->fb_fd, FBIOPUTCMAP, &fbc);      break;    default:      break;    }}voidgdk_colormap_free_colors (GdkColormap *colormap,			  GdkColor    *colors,			  gint         ncolors){  GdkColormapPrivateFB *private;  gint i;  g_return_if_fail (colormap != NULL);  g_return_if_fail (colors != NULL);  private = GDK_COLORMAP_PRIVATE_DATA (colormap);  if ((colormap->visual->type != GDK_VISUAL_PSEUDO_COLOR) &&      (colormap->visual->type != GDK_VISUAL_GRAYSCALE))    return;  for (i = 0; i < ncolors; i++)    {      gulong pixel = colors[i].pixel;            if (private->info[pixel].ref_count)	{	  private->info[pixel].ref_count--;	  if (private->info[pixel].ref_count == 0)	    {	      if (!(private->info[pixel].flags & GDK_COLOR_WRITEABLE))		g_hash_table_remove (private->hash, &colormap->colors[pixel]);	      private->info[pixel].flags = 0;	    }	}    }}/******************** * Color allocation * ********************/static voidgdk_fb_color_round_to_hw (GdkColor *color){  guint rmask, gmask, bmask, len;  len = gdk_display->modeinfo.red.length;  rmask = ((1 << len) - 1) << (16-len);  len = gdk_display->modeinfo.green.length;  gmask = ((1 << len) - 1) << (16-len);  len = gdk_display->modeinfo.blue.length;  bmask = ((1 << len) - 1) << (16-len);    color->red &=rmask;  color->green &=gmask;  color->blue &=bmask;}/* Try to allocate a single color using XAllocColor. If it succeeds, * cache the result in our colormap, and store in ret. */static gboolean gdk_colormap_alloc1 (GdkColormap *colormap,		     GdkColor    *color,		     GdkColor    *ret){  GdkColormapPrivateFB *private;  int i;  private = GDK_COLORMAP_PRIVATE_DATA (colormap);  if (colormap->visual->type != GDK_VISUAL_GRAYSCALE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清不卡一区二区三区| 欧美日韩国产一二三| 天天av天天翘天天综合网| 中文在线一区二区| 久久久久久久综合日本| 欧美α欧美αv大片| 日韩欧美国产系列| 精品久久一二三区| 久久久美女毛片| 国产精品免费丝袜| 成人欧美一区二区三区黑人麻豆 | 黑人巨大精品欧美一区| 夜色激情一区二区| 天堂蜜桃91精品| 国产麻豆9l精品三级站| 波多野结衣在线aⅴ中文字幕不卡| 成人性色生活片免费看爆迷你毛片| 国产成人超碰人人澡人人澡| 成人伦理片在线| 欧美在线播放高清精品| 制服.丝袜.亚洲.中文.综合| 久久综合久久综合久久| 国产精品美女久久久久aⅴ | 成人激情电影免费在线观看| 一本大道久久a久久精二百| 欧美日韩视频在线第一区| 日韩免费一区二区| 国产精品国产a级| 亚洲高清免费观看| 国产精品一区二区不卡| 99riav一区二区三区| 欧美日韩亚洲另类| 久久精品无码一区二区三区| 亚洲宅男天堂在线观看无病毒| 日韩成人dvd| aaa亚洲精品| 精品久久久影院| 亚洲色图欧美激情| 韩国精品免费视频| 欧洲在线/亚洲| 国产色爱av资源综合区| 日韩成人午夜精品| 99精品视频免费在线观看| 精品国产一区二区三区久久久蜜月| 国产精品理伦片| 久久99精品久久久久婷婷| 欧洲视频一区二区| 亚洲国产精品成人综合| 日韩激情一区二区| 色噜噜狠狠一区二区三区果冻| 26uuu亚洲婷婷狠狠天堂| 亚洲一区在线观看免费 | 国产精品区一区二区三| 免费欧美在线视频| 欧美日韩免费在线视频| 亚洲福中文字幕伊人影院| 不卡的av在线| 国产欧美日韩另类视频免费观看| 欧美96一区二区免费视频| 91久久久免费一区二区| 亚洲国产激情av| 国产精品888| 26uuu亚洲婷婷狠狠天堂| 美国毛片一区二区三区| 欧美伦理视频网站| 亚洲国产成人av好男人在线观看| 95精品视频在线| 国产精品乱人伦中文| 国产精品123区| 久久精品视频一区二区| 国产自产2019最新不卡| 欧美白人最猛性xxxxx69交| 日韩精彩视频在线观看| 91免费视频网| 亚洲欧洲精品天堂一级| 国产精品一区二区久久不卡| 久久天天做天天爱综合色| 极品美女销魂一区二区三区| 精品国产麻豆免费人成网站| 亚洲综合激情小说| 91精品国产综合久久久蜜臀粉嫩| 丝袜美腿一区二区三区| 欧美一区二区三区日韩视频| 日韩中文字幕av电影| 日韩一区二区三区免费看 | 欧美国产精品专区| 成人免费视频视频| 亚洲三级电影网站| 欧美亚洲国产一区在线观看网站 | 狠狠色丁香婷婷综合久久片| 精品久久久久香蕉网| 国产成人av在线影院| 日本一区二区三区四区| 91色九色蝌蚪| 偷拍与自拍一区| 久久免费的精品国产v∧| 成人一区二区在线观看| 亚洲综合丝袜美腿| 91精品免费观看| 国产白丝网站精品污在线入口| 中文字幕国产一区二区| 欧美日韩一区二区三区四区五区| 奇米精品一区二区三区在线观看一| 久久一夜天堂av一区二区三区| 成人激情综合网站| 视频精品一区二区| 久久久久99精品一区| 在线观看欧美精品| 国产一区二区调教| 一区二区三区成人在线视频| 91精品国产免费| 粗大黑人巨茎大战欧美成人| 亚洲黄色在线视频| 日韩欧美国产一区二区在线播放| 波多野结衣亚洲| 天天影视涩香欲综合网| 亚洲欧美中日韩| 精品久久人人做人人爰| 欧美视频精品在线| 成人性视频免费网站| 日韩黄色一级片| 自拍偷拍国产精品| 91精品国产高清一区二区三区 | 国产精品福利在线播放| 欧美日韩一级二级三级| 国产白丝精品91爽爽久久| 亚洲高清一区二区三区| 国产精品久久久久久久久久免费看| 欧美日韩国产欧美日美国产精品| 不卡视频在线观看| 国内精品国产成人国产三级粉色| 亚洲国产毛片aaaaa无费看| 国产精品素人视频| 久久综合国产精品| 91精品在线一区二区| 在线观看日韩电影| 色综合网站在线| 国产精品久久久久影院老司| 91精品免费在线| 欧美吞精做爰啪啪高潮| 99精品欧美一区二区蜜桃免费| 国内精品免费**视频| 免费观看成人av| 日日夜夜精品免费视频| 亚洲一区在线视频观看| 亚洲一区二区三区中文字幕| 最新国产成人在线观看| 国产精品美女www爽爽爽| 国产亚洲精品久| 国产欧美精品国产国产专区| 精品国产制服丝袜高跟| 日韩欧美不卡一区| 亚洲精品国产a久久久久久| 中文字幕乱码亚洲精品一区| 国产亚洲成av人在线观看导航| 久久免费的精品国产v∧| 久久综合精品国产一区二区三区| 精品成人在线观看| 久久精品视频一区二区| 国产精品美女一区二区在线观看| 国产精品毛片a∨一区二区三区| 欧美国产日韩精品免费观看| 日韩一区在线看| 一区二区在线电影| 偷窥少妇高潮呻吟av久久免费| 五月婷婷激情综合| 人人超碰91尤物精品国产| 精品一区二区三区影院在线午夜 | 国产成人综合亚洲网站| 国产精品亚洲一区二区三区妖精| 国产福利一区在线观看| 9l国产精品久久久久麻豆| 91福利视频久久久久| 欧美一区二区三区四区五区| 精品国产3级a| 国产精品久久久久久久久图文区| 亚洲你懂的在线视频| 日韩电影免费在线观看网站| 黄色精品一二区| 99精品久久只有精品| 欧美日韩极品在线观看一区| 精品国产伦理网| 一区二区三区在线观看国产| 免费高清在线视频一区·| 丰满亚洲少妇av| 欧美日韩成人高清| 国产视频一区在线播放| 亚洲一卡二卡三卡四卡| 国产综合一区二区| 欧美亚洲自拍偷拍| 久久久精品黄色| 亚洲电影第三页| 国产电影精品久久禁18| 欧美日韩高清不卡| 国产精品每日更新| 久久精品噜噜噜成人av农村| 一本大道av伊人久久综合| 精品人伦一区二区色婷婷| 夜夜亚洲天天久久| 成人av在线播放网址|