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

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

?? gdkdrawable-win32.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 4 頁
字號:
  generic_draw (drawable, gc,		GDK_GC_FOREGROUND | (filled ? 0 : LINE_ATTRIBUTES),		draw_arc, region, filled, x, y, width, height, angle1, angle2);  gdk_region_destroy (region);}static voiddraw_polygon (GdkGCWin32 *gcwin32,	      HDC         hdc,	      gint        x_offset,	      gint        y_offset,	      va_list     args){  gboolean filled;  POINT *pts;  HPEN old_pen;  gint npoints;  gint i;  filled = va_arg (args, gboolean);  pts = va_arg (args, POINT *);  npoints = va_arg (args, gint);  if (x_offset != 0 || y_offset != 0)    for (i = 0; i < npoints; i++)      {	pts[i].x -= x_offset;	pts[i].y -= y_offset;      }  if (filled)    {      old_pen = SelectObject (hdc, GetStockObject (NULL_PEN));      if (old_pen == NULL)	WIN32_GDI_FAILED ("SelectObject");      GDI_CALL (Polygon, (hdc, pts, npoints));      if (old_pen != NULL)	GDI_CALL (SelectObject, (hdc, old_pen));    }  else    GDI_CALL (Polyline, (hdc, pts, npoints));}static voidgdk_win32_draw_polygon (GdkDrawable *drawable,			GdkGC       *gc,			gboolean     filled,			GdkPoint    *points,			gint         npoints){  GdkRectangle bounds;  GdkRegion *region;  POINT *pts;  int i;  GDK_NOTE (MISC, g_print ("gdk_win32_draw_polygon: %s %d points\n",			   _gdk_win32_drawable_description (drawable),			   npoints));  if (npoints < 2)    return;  bounds.x = G_MAXINT;  bounds.y = G_MAXINT;  bounds.width = 0;  bounds.height = 0;  pts = g_new (POINT, npoints+1);  for (i = 0; i < npoints; i++)    {      bounds.x = MIN (bounds.x, points[i].x);      bounds.y = MIN (bounds.y, points[i].y);      pts[i].x = points[i].x;      pts[i].y = points[i].y;    }  for (i = 0; i < npoints; i++)    {      bounds.width = MAX (bounds.width, points[i].x - bounds.x);      bounds.height = MAX (bounds.height, points[i].y - bounds.y);    }  if (points[0].x != points[npoints-1].x ||      points[0].y != points[npoints-1].y)     {      pts[npoints].x = points[0].x;      pts[npoints].y = points[0].y;      npoints++;    }        region = widen_bounds (&bounds, GDK_GC_WIN32 (gc)->pen_width);  generic_draw (drawable, gc,		GDK_GC_FOREGROUND | (filled ? 0 : LINE_ATTRIBUTES),		draw_polygon, region, filled, pts, npoints);  gdk_region_destroy (region);  g_free (pts);}typedef struct{  gint x, y;  HDC hdc;} gdk_draw_text_arg;static voidgdk_draw_text_handler (GdkWin32SingleFont *singlefont,		       const wchar_t      *wcstr,		       int                 wclen,		       void               *arg){  HGDIOBJ oldfont;  SIZE size;  gdk_draw_text_arg *argp = (gdk_draw_text_arg *) arg;  if (!singlefont)    return;  if ((oldfont = SelectObject (argp->hdc, singlefont->hfont)) == NULL)    {      WIN32_GDI_FAILED ("SelectObject");      return;    }    if (!TextOutW (argp->hdc, argp->x, argp->y, wcstr, wclen))    WIN32_GDI_FAILED ("TextOutW");  GetTextExtentPoint32W (argp->hdc, wcstr, wclen, &size);  argp->x += size.cx;  SelectObject (argp->hdc, oldfont);}static voidgdk_win32_draw_text (GdkDrawable *drawable,		     GdkFont     *font,		     GdkGC       *gc,		     gint         x,		     gint         y,		     const gchar *text,		     gint         text_length){  const GdkGCValuesMask mask = GDK_GC_FOREGROUND|GDK_GC_FONT;  wchar_t *wcstr, wc;  glong wlen;  gdk_draw_text_arg arg;  if (text_length == 0)    return;  g_assert (font->type == GDK_FONT_FONT || font->type == GDK_FONT_FONTSET);  arg.x = x;  arg.y = y;  arg.hdc = gdk_win32_hdc_get (drawable, gc, mask);  GDK_NOTE (MISC, g_print ("gdk_win32_draw_text: %s (%d,%d) \"%.*s\" (len %d)\n",			   _gdk_win32_drawable_description (drawable),			   x, y,			   (text_length > 10 ? 10 : text_length),			   text, text_length));    if (text_length == 1)    {      /* For single characters, don't try to interpret as UTF-8. */      wc = (guchar) text[0];      _gdk_wchar_text_handle (font, &wc, 1, gdk_draw_text_handler, &arg);    }  else    {      wcstr = g_utf8_to_utf16 (text, text_length, NULL, &wlen, NULL);      _gdk_wchar_text_handle (font, wcstr, wlen, gdk_draw_text_handler, &arg);      g_free (wcstr);    }  gdk_win32_hdc_release (drawable, gc, mask);}static voidgdk_win32_draw_text_wc (GdkDrawable	 *drawable,			GdkFont          *font,			GdkGC		 *gc,			gint		  x,			gint		  y,			const GdkWChar *text,			gint		  text_length){  const GdkGCValuesMask mask = GDK_GC_FOREGROUND|GDK_GC_FONT;  gint i;  wchar_t *wcstr;  gdk_draw_text_arg arg;  if (text_length == 0)    return;  g_assert (font->type == GDK_FONT_FONT || font->type == GDK_FONT_FONTSET);  arg.x = x;  arg.y = y;  arg.hdc = gdk_win32_hdc_get (drawable, gc, mask);  GDK_NOTE (MISC, g_print ("gdk_win32_draw_text_wc: %s (%d,%d) len: %d\n",			   _gdk_win32_drawable_description (drawable),			   x, y, text_length));        if (sizeof (wchar_t) != sizeof (GdkWChar))    {      wcstr = g_new (wchar_t, text_length);      for (i = 0; i < text_length; i++)	wcstr[i] = text[i];    }  else    wcstr = (wchar_t *) text;  _gdk_wchar_text_handle (font, wcstr, text_length,			 gdk_draw_text_handler, &arg);  if (sizeof (wchar_t) != sizeof (GdkWChar))    g_free (wcstr);  gdk_win32_hdc_release (drawable, gc, mask);}static voidgdk_win32_draw_drawable (GdkDrawable *drawable,			 GdkGC       *gc,			 GdkPixmap   *src,			 gint         xsrc,			 gint         ysrc,			 gint         xdest,			 gint         ydest,			 gint         width,			 gint         height){  g_assert (GDK_IS_DRAWABLE_IMPL_WIN32 (drawable));  _gdk_win32_blit (FALSE, (GdkDrawableImplWin32 *) drawable,		   gc, src, xsrc, ysrc,		   xdest, ydest, width, height);}static voidgdk_win32_draw_points (GdkDrawable *drawable,		       GdkGC       *gc,		       GdkPoint    *points,		       gint         npoints){  HDC hdc;  HGDIOBJ old_pen;  int i;  hdc = gdk_win32_hdc_get (drawable, gc, GDK_GC_FOREGROUND);    GDK_NOTE (MISC, g_print ("gdk_win32_draw_points: %s %d points\n",			   _gdk_win32_drawable_description (drawable),			   npoints));  /* The X11 version uses XDrawPoint(), which doesn't use the fill   * mode, so don't use generic_draw. But we should use the current   * function, so we can't use SetPixel(). Draw single-pixel   * rectangles (sigh).   */  old_pen = SelectObject (hdc, GetStockObject (NULL_PEN));  for (i = 0; i < npoints; i++)    Rectangle (hdc, points[i].x, points[i].y,	       points[i].x + 2, points[i].y + 2);  SelectObject (hdc, old_pen);  gdk_win32_hdc_release (drawable, gc, GDK_GC_FOREGROUND);}static voiddraw_segments (GdkGCWin32 *gcwin32,	       HDC         hdc,	       gint        x_offset,	       gint        y_offset,	       va_list     args){  GdkSegment *segs;  gint nsegs;  gint i;  segs = va_arg (args, GdkSegment *);  nsegs = va_arg (args, gint);  if (x_offset != 0 || y_offset != 0)    {      /* must not modify in place, but could splice in the offset all below */      segs = g_memdup (segs, nsegs * sizeof (GdkSegment));      for (i = 0; i < nsegs; i++)        {          segs[i].x1 -= x_offset;          segs[i].y1 -= y_offset;          segs[i].x2 -= x_offset;          segs[i].y2 -= y_offset;        }    }  if (MUST_RENDER_DASHES_MANUALLY (gcwin32))    {      for (i = 0; i < nsegs; i++)	{	  if (segs[i].x1 == segs[i].x2)	    {	      int y1, y2;	      	      if (segs[i].y1 <= segs[i].y2)		y1 = segs[i].y1, y2 = segs[i].y2;	      else		y1 = segs[i].y2, y2 = segs[i].y1;	      	      render_line_vertical (gcwin32, segs[i].x1, y1, y2);	    }	  else if (segs[i].y1 == segs[i].y2)	    {	      int x1, x2;	      	      if (segs[i].x1 <= segs[i].x2)		x1 = segs[i].x1, x2 = segs[i].x2;	      else		x1 = segs[i].x2, x2 = segs[i].x1;	      	      render_line_horizontal (gcwin32, x1, x2, segs[i].y1);	    }	  else	    GDI_CALL (MoveToEx, (hdc, segs[i].x1, segs[i].y1, NULL)) &&	      GDI_CALL (LineTo, (hdc, segs[i].x2, segs[i].y2));	}    }  else    {      for (i = 0; i < nsegs; i++)	{	  const GdkSegment *ps = &segs[i];	  const int x1 = ps->x1, y1 = ps->y1;	  int x2 = ps->x2, y2 = ps->y2;	  GDK_NOTE (MISC, g_print (" +%d+%d..+%d+%d", x1, y1, x2, y2));	  GDI_CALL (MoveToEx, (hdc, x1, y1, NULL)) &&	    GDI_CALL (LineTo, (hdc, x2, y2));	}      GDK_NOTE (MISC, g_print ("\n"));    }  if (x_offset != 0 || y_offset != 0)    g_free (segs);}static voidgdk_win32_draw_segments (GdkDrawable *drawable,			 GdkGC       *gc,			 GdkSegment  *segs,			 gint         nsegs){  GdkRectangle bounds;  GdkRegion *region;  gint i;  GDK_NOTE (MISC, g_print ("gdk_win32_draw_segments: %s %d segs\n",			   _gdk_win32_drawable_description (drawable),			   nsegs));  bounds.x = G_MAXINT;  bounds.y = G_MAXINT;  bounds.width = 0;  bounds.height = 0;  for (i = 0; i < nsegs; i++)    {      bounds.x = MIN (bounds.x, segs[i].x1);      bounds.x = MIN (bounds.x, segs[i].x2);      bounds.y = MIN (bounds.y, segs[i].y1);      bounds.y = MIN (bounds.y, segs[i].y2);    }  for (i = 0; i < nsegs; i++)    {      bounds.width = MAX (bounds.width, segs[i].x1 - bounds.x);      bounds.width = MAX (bounds.width, segs[i].x2 - bounds.x);      bounds.height = MAX (bounds.height, segs[i].y1 - bounds.y);      bounds.height = MAX (bounds.height, segs[i].y2 - bounds.y);    }  region = widen_bounds (&bounds, GDK_GC_WIN32 (gc)->pen_width);  generic_draw (drawable, gc, GDK_GC_FOREGROUND | LINE_ATTRIBUTES,		draw_segments, region, segs, nsegs);  gdk_region_destroy (region);}static voiddraw_lines (GdkGCWin32 *gcwin32,	    HDC         hdc,	    gint        x_offset,	    gint        y_offset,	    va_list     args){  POINT *pts;  gint npoints;  gint i;  pts = va_arg (args, POINT *);  npoints = va_arg (args, gint);  if (x_offset != 0 || y_offset != 0)    for (i = 0; i < npoints; i++)      {	pts[i].x -= x_offset;	pts[i].y -= y_offset;      }    if (MUST_RENDER_DASHES_MANUALLY (gcwin32))    {      for (i = 0; i < npoints - 1; i++)        {	  if (pts[i].x == pts[i+1].x)	    {	      int y1, y2;	      if (pts[i].y > pts[i+1].y)	        y1 = pts[i+1].y, y2 = pts[i].y;	      else	        y1 = pts[i].y, y2 = pts[i+1].y;	      	      render_line_vertical (gcwin32, pts[i].x, y1, y2);	    }	  else if (pts[i].y == pts[i+1].y)	    {	      int x1, x2;	      if (pts[i].x > pts[i+1].x)	        x1 = pts[i+1].x, x2 = pts[i].x;	      else	        x1 = pts[i].x, x2 = pts[i+1].x;	      render_line_horizontal (gcwin32, x1, x2, pts[i].y);	    }	  else	    GDI_CALL (MoveToEx, (hdc, pts[i].x, pts[i].y, NULL)) &&	      GDI_CALL (LineTo, (hdc, pts[i+1].x, pts[i+1].y));	}    }  else    GDI_CALL (Polyline, (hdc, pts, npoints));}static voidgdk_win32_draw_lines (GdkDrawable *drawable,		      GdkGC       *gc,		      GdkPoint    *points,		      gint         npoints){  GdkRectangle bounds;  GdkRegion *region;  POINT *pts;  int i;  GDK_NOTE (MISC, g_print ("gdk_win32_draw_lines: %s %d points\n",			   _gdk_win32_drawable_description (drawable),			   npoints));  if (npoints < 2)    return;  bounds.x = G_MAXINT;  bounds.y = G_MAXINT;  bounds.width = 0;  bounds.height = 0;  pts = g_new (POINT, npoints);  for (i = 0; i < npoints; i++)    {      bounds.x = MIN (bounds.x, points[i].x);      bounds.y = MIN (bounds.y, points[i].y);      pts[i].x = points[i].x;      pts[i].y = points[i].y;    }  for (i = 0; i < npoints; i++)    {      bounds.width = MAX (bounds.width, points[i].x - bounds.x);      bounds.height = MAX (bounds.height, points[i].y - bounds.y);    }  region = widen_bounds (&bounds, GDK_GC_WIN32 (gc)->pen_width);  generic_draw (drawable, gc, GDK_GC_FOREGROUND | GDK_GC_BACKGROUND |			      LINE_ATTRIBUTES,		draw_lines, region, pts, npoints);  gdk_region_destroy (region);  g_free (pts);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲网友自拍偷拍| 欧美影视一区二区三区| 99久久99久久精品国产片果冻| 精品视频在线看| 中文字幕二三区不卡| 免费观看91视频大全| 91久久精品一区二区二区| 国产亚洲综合av| 美女网站色91| 欧美人妇做爰xxxⅹ性高电影| 欧美激情中文字幕| 久久97超碰色| 欧美一区国产二区| 亚洲成a人v欧美综合天堂下载 | 免费观看久久久4p| 91国产视频在线观看| 国产精品久久久久久亚洲毛片| 久久精品国内一区二区三区| 欧美日韩激情在线| 亚洲免费观看高清完整版在线| 成人免费毛片片v| 国产偷v国产偷v亚洲高清| 国产综合色在线| 欧美一区二区三区免费大片 | 久久精品国产亚洲高清剧情介绍 | 久久成人精品无人区| 欧美一区二区三区不卡| 亚洲五码中文字幕| 欧美日韩你懂的| 亚洲国产一区视频| 欧美高清视频www夜色资源网| 一区二区三区电影在线播| 色婷婷久久久久swag精品| 亚洲色图另类专区| 91丨porny丨蝌蚪视频| 亚洲天堂a在线| 色诱视频网站一区| 亚洲综合自拍偷拍| 欧美亚洲一区三区| 日韩在线一区二区三区| 日韩三级电影网址| 国产最新精品免费| 国产精品成人在线观看| 日本韩国欧美在线| 图片区日韩欧美亚洲| 欧美一区二区成人6969| 久久成人18免费观看| 久久精品视频一区二区三区| 成人毛片在线观看| 亚洲大尺度视频在线观看| 欧美肥妇bbw| 精品一区二区三区久久| 欧美国产一区视频在线观看| 色屁屁一区二区| 日韩国产在线观看一区| 久久精品综合网| 色综合色综合色综合| 午夜av一区二区三区| 精品国产区一区| 91麻豆高清视频| 丝袜诱惑制服诱惑色一区在线观看| 日韩午夜精品电影| 97久久超碰国产精品电影| 亚洲自拍与偷拍| 精品日韩一区二区| 97国产一区二区| 日韩高清在线不卡| 国产精品毛片无遮挡高清| 欧美久久久久免费| 国产成人av电影在线| 亚洲第一精品在线| 日本一区二区免费在线| 欧美日本在线一区| 99久久精品国产精品久久| 日韩不卡免费视频| 综合久久一区二区三区| 日韩欧美一区中文| 色狠狠一区二区| 国产高清不卡二三区| 午夜不卡av免费| 1区2区3区欧美| 精品国产亚洲一区二区三区在线观看 | 欧美成人免费网站| 91福利区一区二区三区| 国产精品一区一区三区| 日韩一区欧美二区| 一区二区欧美精品| 国产欧美日韩在线观看| 91精品国产乱码| 欧美系列日韩一区| 99久久亚洲一区二区三区青草| 蜜臀av性久久久久蜜臀aⅴ | 欧美人妖巨大在线| 色综合天天综合| 成人激情动漫在线观看| 国产一区二区不卡| 久久精品免费看| 亚洲国产成人91porn| 亚洲日本乱码在线观看| 中文字幕电影一区| 国产无人区一区二区三区| 日韩一卡二卡三卡国产欧美| 欧美日韩亚洲综合在线| 欧美亚洲一区二区在线| 91久久精品一区二区二区| 99re在线精品| 色综合色综合色综合| 色婷婷一区二区| 91麻豆蜜桃一区二区三区| 91网站最新地址| av成人免费在线观看| 99国内精品久久| voyeur盗摄精品| 成人激情校园春色| 成人h动漫精品一区二区| 国v精品久久久网| 大胆欧美人体老妇| 成人爽a毛片一区二区免费| 国产ts人妖一区二区| 成人在线视频一区| 福利电影一区二区| 成人av小说网| 欧美在线一区二区三区| 欧美日韩午夜在线视频| 91精品国产综合久久久久久| 5月丁香婷婷综合| 日韩精品一区二区三区swag| 久久嫩草精品久久久久| 中文字幕欧美日本乱码一线二线| 国产精品国产三级国产aⅴ无密码| 国产精品免费av| 樱桃视频在线观看一区| 午夜精品久久久久久久99樱桃| 午夜影院久久久| 国内精品在线播放| 成人免费电影视频| 色视频成人在线观看免| 制服丝袜亚洲网站| 久久婷婷国产综合精品青草| 成人免费一区二区三区视频| 亚洲国产精品天堂| 狠狠色伊人亚洲综合成人| 高清不卡在线观看| 在线观看一区二区视频| 日韩欧美国产午夜精品| 国产精品欧美久久久久一区二区| 一区二区三区日韩精品| 韩国在线一区二区| 一本色道久久综合亚洲精品按摩| 欧美精品久久99久久在免费线| 欧美精品一区二区三区一线天视频 | 亚洲免费观看视频| 久久国产精品第一页| 91视频观看视频| 日韩一本二本av| 亚洲男人的天堂网| 国产综合色产在线精品| 欧洲一区在线观看| 国产日韩一级二级三级| 亚洲一区二区中文在线| 国产乱一区二区| 欧美丝袜丝交足nylons图片| 久久久精品中文字幕麻豆发布| 亚洲韩国精品一区| 国产精品996| 3d成人h动漫网站入口| 亚洲日本在线天堂| 国产精品影视网| 日韩欧美视频一区| 亚洲老司机在线| 成人午夜视频在线| 精品不卡在线视频| 天堂一区二区在线免费观看| 99国内精品久久| 欧美—级在线免费片| 国产中文字幕一区| 欧美疯狂做受xxxx富婆| 亚洲精品乱码久久久久久黑人| 国产精品1024久久| 精品99999| 日韩av一二三| 欧美日韩国产免费| 亚洲精品日产精品乱码不卡| 粉嫩高潮美女一区二区三区| 精品国产一区二区三区av性色 | 日韩一区二区视频在线观看| 亚洲乱码国产乱码精品精98午夜| 福利一区福利二区| 国产日本一区二区| 国产a视频精品免费观看| 精品国产精品网麻豆系列| 日本在线不卡视频一二三区| 欧美午夜宅男影院| 亚洲第一av色| 欧美日本国产视频| 丝袜美腿一区二区三区| 欧美日韩免费一区二区三区视频| 亚洲精品久久嫩草网站秘色| 色狠狠综合天天综合综合| 亚洲免费观看高清完整版在线观看 |