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

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

?? imports.c

?? Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * Find the first bit set in a word. */int_mesa_ffs(int i){#if (defined(_WIN32) ) || defined(__IBMC__) || defined(__IBMCPP__)   register int bit = 0;   if (i != 0) {      if ((i & 0xffff) == 0) {         bit += 16;         i >>= 16;      }      if ((i & 0xff) == 0) {         bit += 8;         i >>= 8;      }      if ((i & 0xf) == 0) {         bit += 4;         i >>= 4;      }      while ((i & 1) == 0) {         bit++;         i >>= 1;      }      bit++;   }   return bit;#else   return ffs(i);#endif}/** * Find position of first bit set in given value. * XXX Warning: this function can only be used on 64-bit systems! * \return  position of least-significant bit set, starting at 1, return zero *          if no bits set. */int#ifdef __MINGW32___mesa_ffsll(long val)#else_mesa_ffsll(long long val)#endif{#ifdef ffsll   return ffsll(val);#else   int bit;   assert(sizeof(val) == 8);   bit = _mesa_ffs(val);   if (bit != 0)      return bit;   bit = _mesa_ffs(val >> 32);   if (bit != 0)      return 32 + bit;   return 0;#endif}/** * Return number of bits set in given GLuint. */unsigned int_mesa_bitcount(unsigned int n){   unsigned int bits;   for (bits = 0; n > 0; n = n >> 1) {      bits += (n & 1);   }   return bits;}/** * Convert a 4-byte float to a 2-byte half float. * Based on code from: * http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/008786.html */GLhalfARB_mesa_float_to_half(float val){   const int flt = *((int *) (void *) &val);   const int flt_m = flt & 0x7fffff;   const int flt_e = (flt >> 23) & 0xff;   const int flt_s = (flt >> 31) & 0x1;   int s, e, m = 0;   GLhalfARB result;      /* sign bit */   s = flt_s;   /* handle special cases */   if ((flt_e == 0) && (flt_m == 0)) {      /* zero */      /* m = 0; - already set */      e = 0;   }   else if ((flt_e == 0) && (flt_m != 0)) {      /* denorm -- denorm float maps to 0 half */      /* m = 0; - already set */      e = 0;   }   else if ((flt_e == 0xff) && (flt_m == 0)) {      /* infinity */      /* m = 0; - already set */      e = 31;   }   else if ((flt_e == 0xff) && (flt_m != 0)) {      /* NaN */      m = 1;      e = 31;   }   else {      /* regular number */      const int new_exp = flt_e - 127;      if (new_exp < -24) {         /* this maps to 0 */         /* m = 0; - already set */         e = 0;      }      else if (new_exp < -14) {         /* this maps to a denorm */         unsigned int exp_val = (unsigned int) (-14 - new_exp); /* 2^-exp_val*/         e = 0;         switch (exp_val) {            case 0:               _mesa_warning(NULL,                   "float_to_half: logical error in denorm creation!\n");               /* m = 0; - already set */               break;            case 1: m = 512 + (flt_m >> 14); break;            case 2: m = 256 + (flt_m >> 15); break;            case 3: m = 128 + (flt_m >> 16); break;            case 4: m = 64 + (flt_m >> 17); break;            case 5: m = 32 + (flt_m >> 18); break;            case 6: m = 16 + (flt_m >> 19); break;            case 7: m = 8 + (flt_m >> 20); break;            case 8: m = 4 + (flt_m >> 21); break;            case 9: m = 2 + (flt_m >> 22); break;            case 10: m = 1; break;         }      }      else if (new_exp > 15) {         /* map this value to infinity */         /* m = 0; - already set */         e = 31;      }      else {         /* regular */         e = new_exp + 15;         m = flt_m >> 13;      }   }   result = (s << 15) | (e << 10) | m;   return result;}/** * Convert a 2-byte half float to a 4-byte float. * Based on code from: * http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/008786.html */float_mesa_half_to_float(GLhalfARB val){   /* XXX could also use a 64K-entry lookup table */   const int m = val & 0x3ff;   const int e = (val >> 10) & 0x1f;   const int s = (val >> 15) & 0x1;   int flt_m, flt_e, flt_s, flt;   float result;   /* sign bit */   flt_s = s;   /* handle special cases */   if ((e == 0) && (m == 0)) {      /* zero */      flt_m = 0;      flt_e = 0;   }   else if ((e == 0) && (m != 0)) {      /* denorm -- denorm half will fit in non-denorm single */      const float half_denorm = 1.0f / 16384.0f; /* 2^-14 */      float mantissa = ((float) (m)) / 1024.0f;      float sign = s ? -1.0f : 1.0f;      return sign * mantissa * half_denorm;   }   else if ((e == 31) && (m == 0)) {      /* infinity */      flt_e = 0xff;      flt_m = 0;   }   else if ((e == 31) && (m != 0)) {      /* NaN */      flt_e = 0xff;      flt_m = 1;   }   else {      /* regular */      flt_e = e + 112;      flt_m = m << 13;   }   flt = (flt_s << 31) | (flt_e << 23) | flt_m;   result = *((float *) (void *) &flt);   return result;}/*@}*//**********************************************************************//** \name Sort & Search *//*@{*//** * Wrapper for bsearch(). */void *_mesa_bsearch( const void *key, const void *base, size_t nmemb, size_t size,                int (*compar)(const void *, const void *) ){   return bsearch(key, base, nmemb, size, compar);}/*@}*//**********************************************************************//** \name Environment vars *//*@{*//** * Wrapper for getenv(). */char *_mesa_getenv( const char *var ){#if defined(_XBOX)   return NULL;#else   return getenv(var);#endif}/*@}*//**********************************************************************//** \name String *//*@{*//** Wrapper around strstr() */char *_mesa_strstr( const char *haystack, const char *needle ){   return strstr(haystack, needle);}/** Wrapper around strncat() */char *_mesa_strncat( char *dest, const char *src, size_t n ){   return strncat(dest, src, n);}/** Wrapper around strcpy() */char *_mesa_strcpy( char *dest, const char *src ){   return strcpy(dest, src);}/** Wrapper around strncpy() */char *_mesa_strncpy( char *dest, const char *src, size_t n ){   return strncpy(dest, src, n);}/** Wrapper around strlen() */size_t_mesa_strlen( const char *s ){   return strlen(s);}/** Wrapper around strcmp() */int_mesa_strcmp( const char *s1, const char *s2 ){   return strcmp(s1, s2);}/** Wrapper around strncmp() */int_mesa_strncmp( const char *s1, const char *s2, size_t n ){   return strncmp(s1, s2, n);}/** * Implemented using _mesa_malloc() and _mesa_strcpy. * Note that NULL is handled accordingly. */char *_mesa_strdup( const char *s ){   if (s) {      size_t l = _mesa_strlen(s);      char *s2 = (char *) _mesa_malloc(l + 1);      if (s2)         _mesa_strcpy(s2, s);      return s2;   }   else {      return NULL;   }}/** Wrapper around atoi() */int_mesa_atoi(const char *s){   return atoi(s);}/** Wrapper around strtod() */double_mesa_strtod( const char *s, char **end ){   return strtod(s, end);}/*@}*//**********************************************************************//** \name I/O *//*@{*//** Wrapper around vsprintf() */int_mesa_sprintf( char *str, const char *fmt, ... ){   int r;   va_list args;   va_start( args, fmt );     r = vsprintf( str, fmt, args );   va_end( args );   return r;}/** Wrapper around printf(), using vsprintf() for the formatting. */void_mesa_printf( const char *fmtString, ... ){   char s[MAXSTRING];   va_list args;   va_start( args, fmtString );     vsnprintf(s, MAXSTRING, fmtString, args);   va_end( args );   fprintf(stderr,"%s", s);}/** Wrapper around vsprintf() */int_mesa_vsprintf( char *str, const char *fmt, va_list args ){   return vsprintf( str, fmt, args );}/*@}*//**********************************************************************//** \name Diagnostics *//*@{*//** * Report a warning (a recoverable error condition) to stderr if * either DEBUG is defined or the MESA_DEBUG env var is set. * * \param ctx GL context. * \param fmtString printf() alike format string. */void_mesa_warning( GLcontext *ctx, const char *fmtString, ... ){   GLboolean debug;   char str[MAXSTRING];   va_list args;   (void) ctx;   va_start( args, fmtString );     (void) vsnprintf( str, MAXSTRING, fmtString, args );   va_end( args );#ifdef DEBUG   debug = GL_TRUE; /* always print warning */#else   debug = _mesa_getenv("MESA_DEBUG") ? GL_TRUE : GL_FALSE;#endif   if (debug) {      fprintf(stderr, "Mesa warning: %s\n", str);   }}/** * Report an internla implementation problem. * Prints the message to stderr via fprintf(). * * \param ctx GL context. * \param s problem description string. */void_mesa_problem( const GLcontext *ctx, const char *fmtString, ... ){   va_list args;   char str[MAXSTRING];   (void) ctx;   va_start( args, fmtString );     vsnprintf( str, MAXSTRING, fmtString, args );   va_end( args );   fprintf(stderr, "Mesa %s implementation error: %s\n", MESA_VERSION_STRING, str);   fprintf(stderr, "Please report at bugzilla.freedesktop.org\n");}/** * Record an OpenGL state error.  These usually occur when the users * passes invalid parameters to a GL function. * * If debugging is enabled (either at compile-time via the DEBUG macro, or * run-time via the MESA_DEBUG environment variable), report the error with * _mesa_debug(). *  * \param ctx the GL context. * \param error the error value. * \param fmtString printf() style format string, followed by optional args */void_mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... ){   const char *debugEnv;   GLboolean debug;   debugEnv = _mesa_getenv("MESA_DEBUG");#ifdef DEBUG   if (debugEnv && _mesa_strstr(debugEnv, "silent"))      debug = GL_FALSE;   else      debug = GL_TRUE;#else   if (debugEnv)      debug = GL_TRUE;   else      debug = GL_FALSE;#endif   if (debug) {      va_list args;      char where[MAXSTRING];      const char *errstr;      va_start( args, fmtString );        vsnprintf( where, MAXSTRING, fmtString, args );      va_end( args );      switch (error) {	 case GL_NO_ERROR:	    errstr = "GL_NO_ERROR";	    break;	 case GL_INVALID_VALUE:	    errstr = "GL_INVALID_VALUE";	    break;	 case GL_INVALID_ENUM:	    errstr = "GL_INVALID_ENUM";	    break;	 case GL_INVALID_OPERATION:	    errstr = "GL_INVALID_OPERATION";	    break;	 case GL_STACK_OVERFLOW:	    errstr = "GL_STACK_OVERFLOW";	    break;	 case GL_STACK_UNDERFLOW:	    errstr = "GL_STACK_UNDERFLOW";	    break;	 case GL_OUT_OF_MEMORY:	    errstr = "GL_OUT_OF_MEMORY";	    break;         case GL_TABLE_TOO_LARGE:            errstr = "GL_TABLE_TOO_LARGE";            break;         case GL_INVALID_FRAMEBUFFER_OPERATION_EXT:            errstr = "GL_INVALID_FRAMEBUFFER_OPERATION";            break;	 default:	    errstr = "unknown";	    break;      }      _mesa_debug(ctx, "User error: %s in %s\n", errstr, where);   }   _mesa_record_error(ctx, error);}  /** * Report debug information.  Print error message to stderr via fprintf(). * No-op if DEBUG mode not enabled. *  * \param ctx GL context. * \param fmtString printf()-style format string, followed by optional args. */void_mesa_debug( const GLcontext *ctx, const char *fmtString, ... ){#ifdef DEBUG   char s[MAXSTRING];   va_list args;   va_start(args, fmtString);   vsnprintf(s, MAXSTRING, fmtString, args);   va_end(args);   fprintf(stderr, "Mesa: %s", s);#endif /* DEBUG */   (void) ctx;   (void) fmtString;}/*@}*//** * Wrapper for exit(). */void_mesa_exit( int status ){   exit(status);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片你懂的| 日韩一区二区三区电影在线观看 | 成人免费在线视频| 一区二区三区四区中文字幕| 日本中文字幕一区| 国产二区国产一区在线观看| 91丨九色porny丨蝌蚪| 欧美疯狂做受xxxx富婆| 久久无码av三级| 伊人性伊人情综合网| 蜜臂av日日欢夜夜爽一区| 国产成人av网站| 欧美亚洲图片小说| 久久网站热最新地址| 亚洲一区在线观看免费观看电影高清 | 日本aⅴ精品一区二区三区 | 久久久久免费观看| 亚洲午夜视频在线| 国产成人av一区二区三区在线| 欧美综合视频在线观看| 精品福利一区二区三区免费视频| 中文字幕中文在线不卡住| 日日欢夜夜爽一区| 成av人片一区二区| 欧美不卡一二三| 亚洲自拍另类综合| 国产精品亚洲午夜一区二区三区| 欧美裸体bbwbbwbbw| 中文字幕免费不卡| 免费在线观看不卡| 欧美亚洲国产一区在线观看网站| 国产欧美日韩在线| 免费不卡在线视频| 在线免费一区三区| 亚洲国产精品精华液2区45| 日韩福利电影在线| 91福利国产成人精品照片| 久久精品男人的天堂| 天堂va蜜桃一区二区三区漫画版| av一区二区不卡| 久久夜色精品一区| 日本亚洲三级在线| 欧亚洲嫩模精品一区三区| 国产精品天天看| 国产在线一区二区综合免费视频| 欧美视频在线一区| 亚洲欧洲三级电影| 国产高清在线观看免费不卡| 欧美一卡在线观看| 亚洲一区二区在线观看视频| www.亚洲人| 国产人久久人人人人爽| 老司机精品视频导航| 欧美绝品在线观看成人午夜影视| 亚洲精品国产品国语在线app| 成人免费va视频| 久久久久国色av免费看影院| 麻豆91免费观看| 欧美一区二区视频网站| 午夜精品一区在线观看| 在线日韩av片| 一区二区三区在线观看欧美| 91伊人久久大香线蕉| 国产精品久久久久天堂| 国产福利一区在线| 久久久国产一区二区三区四区小说 | 精一区二区三区| 欧美一级二级三级乱码| 午夜精品久久久久久久久久久| 色偷偷久久人人79超碰人人澡| 国产精品久久久久久户外露出| 国产成人精品综合在线观看| 久久网站热最新地址| 国产精品一区二区在线看| 久久综合999| 国产一区二区三区精品视频| 26uuu亚洲综合色| 韩国欧美国产1区| 久久久久久久综合| 国产成人精品免费| 中文字幕一区二区三区不卡 | 亚洲免费观看在线视频| 色综合久久久久久久久| 亚洲天堂a在线| 91九色最新地址| 亚洲国产精品久久艾草纯爱| 欧美猛男男办公室激情| 日产精品久久久久久久性色| 日韩精品一区二区三区在线观看 | 3atv一区二区三区| 久久99国内精品| 久久精品欧美一区二区三区不卡| 国产高清精品网站| ...av二区三区久久精品| 99精品视频免费在线观看| 亚洲天堂福利av| 欧美日韩在线电影| 老色鬼精品视频在线观看播放| 久久综合中文字幕| 成人黄色小视频| 亚洲自拍都市欧美小说| 日韩一级免费一区| 国产91在线观看丝袜| 亚洲免费观看在线视频| 91精品国产色综合久久不卡蜜臀 | 欧美大片一区二区三区| 国产传媒日韩欧美成人| 国产激情视频一区二区在线观看 | 国产自产高清不卡| 国产精品久久久久久久久晋中| 日本精品视频一区二区三区| 日韩av电影免费观看高清完整版| 精品国产乱码久久久久久久久| 成人黄色小视频| 性欧美疯狂xxxxbbbb| xnxx国产精品| 91在线视频免费观看| 日本网站在线观看一区二区三区| 久久夜色精品国产欧美乱极品| 一本色道综合亚洲| 另类小说视频一区二区| 亚洲欧洲在线观看av| 91精品在线观看入口| www.日韩在线| 日本不卡的三区四区五区| 国产日本欧洲亚洲| 777奇米成人网| 99久久国产综合精品麻豆 | 日韩欧美国产一区在线观看| 菠萝蜜视频在线观看一区| 日韩国产欧美一区二区三区| 国产精品美女久久久久aⅴ| 欧美精品久久99久久在免费线| 国产91精品露脸国语对白| 亚洲6080在线| 亚洲色图色小说| 精品理论电影在线观看| 欧美主播一区二区三区美女| 国产激情视频一区二区在线观看| 亚洲一区二区三区四区不卡| 国产情人综合久久777777| 在线成人小视频| 色综合久久综合网97色综合| 韩国av一区二区三区| 亚洲国产毛片aaaaa无费看| 国产欧美一区二区三区鸳鸯浴| 7777女厕盗摄久久久| 色综合久久88色综合天天免费| 国产乱码精品一区二区三区五月婷| 午夜精品久久久久久不卡8050| 成人欧美一区二区三区黑人麻豆| 精品少妇一区二区三区在线播放| 欧美日韩一本到| 色狠狠色噜噜噜综合网| 国产成人av一区二区三区在线观看| 青青国产91久久久久久| 亚洲国产精品久久久久婷婷884 | 91免费国产在线| 国产高清精品在线| 精品在线一区二区| 亚洲va中文字幕| 一区二区三区在线免费| 亚洲欧美一区二区在线观看| 日本一区二区三区dvd视频在线| 日韩片之四级片| 欧美日韩www| 欧美丝袜丝nylons| 日本二三区不卡| 色悠悠久久综合| 91视频免费看| 91小视频在线| 99久久99久久精品免费观看 | 综合欧美一区二区三区| 亚洲国产精品高清| 国产女人aaa级久久久级| 久久―日本道色综合久久| 精品理论电影在线| 日韩欧美在线网站| 欧美一区二区在线观看| 91精品久久久久久蜜臀| 欧美日韩国产综合一区二区三区 | √…a在线天堂一区| 国产免费久久精品| 欧美经典一区二区三区| 国产欧美日韩在线看| 亚洲国产精品成人综合 | 麻豆91精品91久久久的内涵| 蜜桃传媒麻豆第一区在线观看| 免费不卡在线视频| 极品销魂美女一区二区三区| 久草精品在线观看| 国产久卡久卡久卡久卡视频精品| 国产一区二区三区不卡在线观看| 国产在线播放一区二区三区| 国产米奇在线777精品观看| 国产成人午夜片在线观看高清观看| 国产福利一区二区| 成人永久看片免费视频天堂| av电影在线不卡| 欧美午夜精品免费|