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

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

?? glyphstring.c

?? linux
?? C
?? 第 1 頁 / 共 2 頁
字號:
	      while (p < text + glyphs->log_clusters[glyph_index])		{		  next_cluster++;		  p = g_utf8_next_char (p);		}	    }	  else	    {	      while (p < text + length)		{		  next_cluster++;		  p = g_utf8_next_char (p);		}	    }	  for (j = last_cluster; j < next_cluster; j++)	    logical_widths[j] = (width - last_cluster_width) / (next_cluster - last_cluster);	  last_cluster = next_cluster;	  last_cluster_width = width;	}      if (i < glyphs->num_glyphs)	width += glyphs->glyphs[glyph_index].geometry.width;    }}/* The initial implementation here is script independent, * but it might actually need to be virtualized into the * rendering modules. Otherwise, we probably will end up * enforcing unnatural cursor behavior for some languages. * * The only distinction that Uniscript makes is whether * cursor positioning is allowed within clusters or not. *//** * pango_glyph_string_index_to_x: * @glyphs:    the glyphs return from pango_shape() * @text:      the text for the run * @length:    the number of bytes (not characters) in @text. * @analysis:  the analysis information return from pango_itemize() * @index_:    the byte index within @text * @trailing:  whether we should compute the result for the beginning (%FALSE) *             or end (%TRUE) of the character. * @x_pos:     location to store result * * Converts from character position to x position. (X position * is measured from the left edge of the run). Character positions * are computed by dividing up each cluster into equal portions. */voidpango_glyph_string_index_to_x (PangoGlyphString *glyphs,			       char             *text,			       int               length,			       PangoAnalysis    *analysis,			       int               index,			       gboolean          trailing,			       int              *x_pos){  int i;  int start_xpos = 0;  int end_xpos = 0;  int width = 0;  int start_index = -1;  int end_index = -1;  int cluster_chars = 0;  int cluster_offset = 0;  char *p;  g_return_if_fail (glyphs != NULL);  g_return_if_fail (length >= 0);  g_return_if_fail (length == 0 || text != NULL);  if (!x_pos) /* Allow the user to do the useless */    return;  if (glyphs->num_glyphs == 0)    {      *x_pos = 0;      return;    }  /* Calculate the starting and ending character positions   * and x positions for the cluster   */  if (analysis->level % 2) /* Right to left */    {      for (i = glyphs->num_glyphs - 1; i >= 0; i--)	width += glyphs->glyphs[i].geometry.width;      for (i = glyphs->num_glyphs - 1; i >= 0; i--)	{	  if (glyphs->log_clusters[i] > index)	    {	      end_index = glyphs->log_clusters[i];	      end_xpos = width;	      break;	    }	  if (glyphs->log_clusters[i] != start_index)	    {	      start_index = glyphs->log_clusters[i];	      start_xpos = width;	    }	  width -= glyphs->glyphs[i].geometry.width;	}    }  else /* Left to right */    {      for (i = 0; i < glyphs->num_glyphs; i++)	{	  if (glyphs->log_clusters[i] > index)	    {	      end_index = glyphs->log_clusters[i];	      end_xpos = width;	      break;	    }	  if (glyphs->log_clusters[i] != start_index)	    {	      start_index = glyphs->log_clusters[i];	      start_xpos = width;	    }	  width += glyphs->glyphs[i].geometry.width;	}    }  if (end_index == -1)    {      end_index = length;      end_xpos = (analysis->level % 2) ? 0 : width;    }  /* Calculate offset of character within cluster */  p = text + start_index;  while (p < text + end_index)    {      if (p < text + index)	cluster_offset++;      cluster_chars++;      p = g_utf8_next_char (p);    }  if (trailing)    cluster_offset += 1;  *x_pos = ((cluster_chars - cluster_offset) * start_xpos +	    cluster_offset * end_xpos) / cluster_chars;}/** * pango_glyph_string_x_to_index: * @glyphs:    the glyphs returned from pango_shape() * @text:      the text for the run * @length:    the number of bytes (not characters) in text. * @analysis:  the analysis information return from pango_itemize() * @x_pos:     the x offset (in #PangoGlyphUnit) * @index_:    location to store calculated byte index within @text * @trailing:  location to store a boolean indicating *             whether the user clicked on the leading or trailing *             edge of the character. * * Convert from x offset to character position. Character positions * are computed by dividing up each cluster into equal portions. * In scripts where positioning within a cluster is not allowed * (such as Thai), the returned value may not be a valid cursor * position; the caller must combine the result with the logical * attributes for the text to compute the valid cursor position. */voidpango_glyph_string_x_to_index (PangoGlyphString *glyphs,			       char             *text,			       int               length,			       PangoAnalysis    *analysis,			       int               x_pos,			       int              *index,			       gboolean         *trailing){  int i;  int start_xpos = 0;  int end_xpos = 0;  int width = 0;  int start_index = -1;  int end_index = -1;  int cluster_chars = 0;  char *p;  gboolean found = FALSE;  /* Find the cluster containing the position */  width = 0;  if (analysis->level % 2) /* Right to left */    {      for (i = glyphs->num_glyphs - 1; i >= 0; i--)	width += glyphs->glyphs[i].geometry.width;      for (i = glyphs->num_glyphs - 1; i >= 0; i--)	{	  if (glyphs->log_clusters[i] != start_index)	    {	      if (found)		{		  end_index = glyphs->log_clusters[i];		  end_xpos = width;		  break;		}	      else		{		  start_index = glyphs->log_clusters[i];		  start_xpos = width;		}	    }	  width -= glyphs->glyphs[i].geometry.width;	  if (width <= x_pos && x_pos < width + glyphs->glyphs[i].geometry.width)	    found = TRUE;	}    }  else /* Left to right */    {      for (i = 0; i < glyphs->num_glyphs; i++)	{	  if (glyphs->log_clusters[i] != start_index)	    {	      if (found)		{		  end_index = glyphs->log_clusters[i];		  end_xpos = width;		  break;		}	      else		{		  start_index = glyphs->log_clusters[i];		  start_xpos = width;		}	    }	  if (width <= x_pos && x_pos < width + glyphs->glyphs[i].geometry.width)	    found = TRUE;	  width += glyphs->glyphs[i].geometry.width;	}    }  if (end_index == -1)    {      end_index = length;      end_xpos = (analysis->level % 2) ? 0 : width;    }  /* Calculate number of chars within cluster */  p = text + start_index;  while (p < text + end_index)    {      p = g_utf8_next_char (p);      cluster_chars++;    }  if (start_xpos == end_xpos)    {      if (index)	*index = start_index;      if (trailing)	*trailing = FALSE;    }  else    {      double cp = ((double)(x_pos - start_xpos) * cluster_chars) / (end_xpos - start_xpos);      /* LTR and right-to-left have to be handled separately       * here because of the edge condition when we are exactly       * at a pixel boundary; end_xpos goes with the next       * character for LTR, with the previous character for RTL.       */      if (start_xpos < end_xpos) /* Left-to-right */	{	  if (index)	    {	      char *p = text + start_index;	      int i = 0;	      while (i + 1 <= cp)		{		  p = g_utf8_next_char (p);		  i++;		}	      *index = (p - text);	    }	  if (trailing)	    *trailing = (cp - (int)cp >= 0.5) ? TRUE : FALSE;	}      else /* Right-to-left */	{	  if (index)	    {	      char *p = text + start_index;	      int i = 0;	      while (i + 1 < cp)		{		  p = g_utf8_next_char (p);		  i++;		}	      *index = (p - text);	    }	  if (trailing)	    {	      double cp_flip = cluster_chars - cp;	      *trailing = (cp_flip - (int)cp_flip >= 0.5) ? FALSE : TRUE;	    }	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲一区二区在线播放| 色综合久久久久久久久| 日韩情涩欧美日韩视频| 久久99久久久久久久久久久| 久久这里只有精品首页| 福利一区二区在线观看| 亚洲欧洲国产日韩| 在线观看亚洲a| 男人操女人的视频在线观看欧美| 日韩精品在线看片z| 国产精品1区二区.| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美日韩精品二区第二页| 午夜日韩在线观看| 久久综合色天天久久综合图片| 国产成人aaaa| 亚洲愉拍自拍另类高清精品| 678五月天丁香亚洲综合网| 久久av资源网| 日韩毛片高清在线播放| 日韩一区二区三区在线| 成人精品电影在线观看| 亚洲成人在线观看视频| wwwwxxxxx欧美| 91极品视觉盛宴| 极品少妇一区二区| 亚洲色图在线看| 久久久电影一区二区三区| 91麻豆精东视频| 免费成人av在线| 日韩毛片在线免费观看| 欧美成人精品1314www| 99精品久久免费看蜜臀剧情介绍| 亚洲va中文字幕| 欧美韩国日本一区| 欧美丰满少妇xxxxx高潮对白| 国产成人夜色高潮福利影视| 亚洲国产成人av网| 国产精品国产三级国产有无不卡 | 激情都市一区二区| 一区二区三区不卡视频在线观看| 日韩精品一区二区三区视频播放| 在线亚洲免费视频| 国产另类ts人妖一区二区| 婷婷丁香久久五月婷婷| 专区另类欧美日韩| 久久久www成人免费毛片麻豆| 欧美视频一区二区三区在线观看| 国产精品正在播放| 青青草97国产精品免费观看无弹窗版| 亚洲欧洲av一区二区三区久久| 日韩一区二区三区电影 | 成人国产免费视频| 久久99精品视频| 午夜不卡在线视频| 亚洲三级免费电影| 国产视频在线观看一区二区三区 | 欧美三级一区二区| 99精品视频在线观看| 国产成a人无v码亚洲福利| 免费国产亚洲视频| 天天av天天翘天天综合网| 亚洲日本va午夜在线影院| 欧美激情中文字幕一区二区| 精品国产不卡一区二区三区| 欧美一区二区三区视频| 欧美精品在线一区二区三区| 欧美亚洲国产一区在线观看网站| 不卡av免费在线观看| 色偷偷一区二区三区| 不卡的av网站| www.欧美色图| 99精品视频中文字幕| 99麻豆久久久国产精品免费优播| 国产成人aaaa| 成人免费毛片aaaaa**| 国产传媒欧美日韩成人| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 色偷偷久久一区二区三区| 99视频精品全部免费在线| 白白色亚洲国产精品| 国产成人精品网址| 不卡的av在线| 色综合色狠狠天天综合色| 在线欧美日韩国产| 欧美日韩日本视频| 91精品国产综合久久精品性色| 91精品国产全国免费观看| 日韩欧美国产一区在线观看| 欧美成人精品3d动漫h| 久久久久久久久免费| 中文字幕va一区二区三区| 中文字幕亚洲在| 依依成人综合视频| 日韩精品三区四区| 狠狠色丁香婷综合久久| 国产一区二区调教| www.色综合.com| 欧美群妇大交群中文字幕| 日韩视频免费观看高清完整版 | 中文无字幕一区二区三区| 中文字幕在线观看一区| 一区二区三区日本| 日韩国产欧美三级| 国产精品自在欧美一区| 91丨porny丨蝌蚪视频| 欧美日韩一区三区四区| 欧美哺乳videos| 国产精品免费观看视频| 性久久久久久久久| 国内精品伊人久久久久av一坑| 成人免费高清视频| 欧美网站大全在线观看| 精品国产乱码91久久久久久网站| 欧美国产精品中文字幕| 天天综合天天做天天综合| 国产馆精品极品| 欧洲一区在线电影| 久久久天堂av| 午夜精品福利一区二区蜜股av| 九九视频精品免费| 在线精品视频一区二区| 久久久久亚洲蜜桃| 亚洲国产成人av好男人在线观看| 国产一区久久久| 欧美午夜精品久久久久久孕妇 | 日韩一区二区三区在线| 18涩涩午夜精品.www| 久久99精品国产91久久来源| 色综合久久久久综合体| 久久精品视频一区二区三区| 亚洲亚洲精品在线观看| 国产成人精品亚洲日本在线桃色| 欧美一区二区三区日韩| 一区二区三区四区在线播放 | 亚洲国产你懂的| 成人免费视频一区二区| 日韩午夜在线影院| 亚洲一区二区三区在线看| 国产91精品一区二区| 精品少妇一区二区三区日产乱码| 一区二区三区四区五区视频在线观看 | 成人性生交大片| 欧美一卡二卡三卡| 亚洲国产毛片aaaaa无费看| 成人app网站| 国产情人综合久久777777| 久久精品72免费观看| 欧美另类videos死尸| 亚洲午夜久久久久久久久电影院| a级精品国产片在线观看| 久久精品一区二区三区不卡 | 美腿丝袜在线亚洲一区| 在线观看视频一区| 亚洲人成人一区二区在线观看| 国产丶欧美丶日本不卡视频| wwwwxxxxx欧美| 久久99精品久久久久| 日韩欧美一区二区不卡| 日韩精品乱码免费| 欧美一区二区三区色| 日韩国产精品久久| 日韩欧美在线1卡| 秋霞午夜av一区二区三区| 欧美日韩激情在线| 天堂一区二区在线| 欧美一区二区三区小说| 亚洲福利视频三区| 欧美精三区欧美精三区| 日韩电影在线观看网站| 日韩欧美中文字幕精品| 久久精品国产秦先生| xfplay精品久久| 国产东北露脸精品视频| 日韩一区欧美小说| 91亚洲精品一区二区乱码| 亚洲一区在线免费观看| 欧美白人最猛性xxxxx69交| 免费在线观看不卡| 精品蜜桃在线看| 国产精品中文字幕日韩精品 | 国产一区二区中文字幕| 国产欧美综合在线| av高清不卡在线| 亚洲自拍偷拍九九九| 欧美挠脚心视频网站| 国模冰冰炮一区二区| 中文字幕欧美日韩一区| 91精品福利视频| 日本午夜精品视频在线观看| 欧美精品一区二区三区很污很色的| 国产成a人无v码亚洲福利| 亚洲免费电影在线| 欧美一区二区三区白人 | 99在线热播精品免费| 亚洲综合在线免费观看| 日韩精品一区在线| 91在线观看美女| 日韩国产精品91| 中文av字幕一区|