亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美国产一区二区| 另类欧美日韩国产在线| 国产精品高潮久久久久无| 欧美r级电影在线观看| 欧美一区二区三区视频在线观看 | 在线亚洲欧美专区二区| 一本色道久久综合狠狠躁的推荐| www.日本不卡| 成人av集中营| 91蝌蚪porny九色| 91视频xxxx| 欧美亚洲日本一区| 欧美日本一区二区三区| 777久久久精品| 日韩视频免费直播| 久久亚洲综合色一区二区三区 | 亚洲综合丝袜美腿| 一区二区三区蜜桃| 日韩精品一级二级| 美女被吸乳得到大胸91| 久久99久久精品| 国产美女视频91| eeuss鲁一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 色诱视频网站一区| 欧美日韩成人一区二区| 日韩三级中文字幕| 久久精品男人的天堂| 国产精品视频你懂的| 亚洲人成网站在线| 午夜精品久久久久久| 精品中文av资源站在线观看| 国产99久久久久久免费看农村| 成人免费va视频| 日本高清免费不卡视频| 3atv在线一区二区三区| 久久一日本道色综合| 亚洲色图制服诱惑| 免费视频一区二区| 国产成人精品免费在线| 欧美亚洲国产一区二区三区| 日韩欧美久久一区| 国产精品不卡一区二区三区| 亚洲国产成人av| 国产在线精品一区二区不卡了| www.成人在线| 制服丝袜亚洲色图| 国产精品日韩成人| 日本中文字幕一区二区有限公司| 国产一区 二区| 欧美色爱综合网| 国产欧美一区二区在线| 亚洲成人自拍网| 国产成人日日夜夜| 777xxx欧美| 亚洲欧美日韩在线播放| 久草这里只有精品视频| 一本大道av一区二区在线播放| 日韩一区二区在线观看视频 | 琪琪久久久久日韩精品| 成人精品一区二区三区四区| 欧美日韩激情一区二区三区| 国产欧美一区二区在线| 日本中文一区二区三区| eeuss鲁片一区二区三区| 日韩一区二区在线观看视频| 一区二区在线免费| 国产精品1区2区3区在线观看| 欧美性大战久久久久久久蜜臀| 国产亚洲成年网址在线观看| 亚洲bt欧美bt精品| 99精品视频在线免费观看| 欧美精品一区二区三区在线 | 成人一区二区视频| 欧美电影精品一区二区| 五月婷婷另类国产| 色综合欧美在线| 国产欧美日韩在线观看| 男女视频一区二区| 欧美性高清videossexo| 亚洲色图视频免费播放| 粉嫩绯色av一区二区在线观看 | 亚洲成人高清在线| 一本色道久久加勒比精品 | 美女尤物国产一区| 欧美日韩三级一区二区| 一区二区三区在线观看国产| 成人成人成人在线视频| 国产日韩欧美a| 国产精品一区二区三区网站| 日韩欧美一二区| 日韩av电影免费观看高清完整版 | 精品国精品自拍自在线| 香蕉成人伊视频在线观看| 91久久奴性调教| 亚洲激情中文1区| 91视频免费播放| 亚洲特级片在线| 一本到一区二区三区| 亚洲天堂av一区| 国产精品一区二区x88av| 欧美喷水一区二区| 亚洲成人一区在线| 欧美日韩大陆在线| 日韩电影免费在线看| 777久久久精品| 日韩av电影免费观看高清完整版 | 欧美视频中文一区二区三区在线观看| 国产精品久久二区二区| 91视频精品在这里| 亚洲制服丝袜av| 欧美精品自拍偷拍动漫精品| 亚洲午夜在线电影| 91精品蜜臀在线一区尤物| 日韩影视精彩在线| 日韩精品一区二区三区在线播放| 日本aⅴ精品一区二区三区| 日韩欧美国产三级电影视频| 久久99国产精品久久99| 久久久不卡网国产精品二区| 成人午夜视频福利| 亚洲欧美日韩在线不卡| 欧美日韩一区二区三区四区 | 青青草原综合久久大伊人精品优势| 91精品国产高清一区二区三区蜜臀| 蜜臀av国产精品久久久久 | 亚洲在线观看免费视频| 777xxx欧美| 国产精品123区| 亚洲视频在线一区二区| 欧美三区在线观看| 精品一区二区三区日韩| 国产精品水嫩水嫩| 欧美日韩综合色| 国模无码大尺度一区二区三区| 国产农村妇女精品| 欧洲亚洲精品在线| 精品一区二区精品| 亚洲天堂福利av| 欧美一区二区黄| 成人精品国产福利| 婷婷综合五月天| 国产天堂亚洲国产碰碰| 一本色道久久综合亚洲91| 免费成人在线视频观看| 国产精品视频在线看| 欧美卡1卡2卡| 成人av免费网站| 日韩不卡一区二区| 中文字幕一区二区三区av| 欧美电影在线免费观看| 岛国精品一区二区| 三级久久三级久久| 国产精品久线在线观看| 日韩午夜在线影院| 色呦呦日韩精品| 国产成人自拍网| 日韩中文字幕av电影| 亚洲国产精品99久久久久久久久| 欧美日韩在线播| 成人免费视频视频在线观看免费 | 国产精品影视在线| 亚洲综合精品久久| 久久久久久97三级| 99在线视频精品| 日韩高清在线一区| 国产区在线观看成人精品 | 精品人伦一区二区色婷婷| 国产成人免费高清| 日本不卡视频在线| 中国色在线观看另类| 欧美老人xxxx18| 日本黄色一区二区| 极品销魂美女一区二区三区| 亚洲欧美激情在线| 精品久久国产97色综合| 欧美在线看片a免费观看| 国产精品91xxx| 亚洲国产欧美另类丝袜| 精品国产露脸精彩对白| 4438x成人网最大色成网站| 99视频有精品| 久久国产福利国产秒拍| 日日摸夜夜添夜夜添亚洲女人| 欧美高清在线视频| 91精品国产综合久久精品app | 狠狠色丁香久久婷婷综合_中| 亚洲一区二区三区四区在线观看| 精品成人一区二区三区| 91成人在线观看喷潮| 国产成人高清视频| 国产一区二区精品久久91| 婷婷夜色潮精品综合在线| 中文字幕永久在线不卡| 日韩视频一区二区三区| 欧美亚洲综合在线| av在线综合网| 国产成人一区在线| 国产999精品久久| 九九精品一区二区|