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

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

?? pngvcrd.c

?? HEG是一個易用的強大的硬件加速2D游戲引擎 他完全具備了具有開發商業質量的2D游戲的中層引擎
?? C
?? 第 1 頁 / 共 5 頁
字號:
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
            if (transformations & PNG_PACKSWAP)
            {
               sshift = (png_size_t)(((row_info->width + 3) & 3) << 1);
               dshift = (png_size_t)(((final_width + 3) & 3) << 1);
               s_start = 6;
               s_end = 0;
               s_inc = -2;
            }
            else
#endif
            {
               sshift = (png_size_t)((3 - ((row_info->width + 3) & 3)) << 1);
               dshift = (png_size_t)((3 - ((final_width + 3) & 3)) << 1);
               s_start = 0;
               s_end = 6;
               s_inc = 2;
            }

            for (i = row_info->width; i; i--)
            {
               png_byte v;
               int j;

               v = (png_byte)((*sp >> sshift) & 0x3);
               for (j = 0; j < png_pass_inc[pass]; j++)
               {
                  *dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff);
                  *dp |= (png_byte)(v << dshift);
                  if (dshift == s_end)
                  {
                     dshift = s_start;
                     dp--;
                  }
                  else
                     dshift += s_inc;
               }
               if (sshift == s_end)
               {
                  sshift = s_start;
                  sp--;
               }
               else
                  sshift += s_inc;
            }
            break;
         }

         case 4:
         {
            png_bytep sp, dp;
            int sshift, dshift;
            int s_start, s_end, s_inc;
            png_uint_32 i;

            sp = row + (png_size_t)((row_info->width - 1) >> 1);
            dp = row + (png_size_t)((final_width - 1) >> 1);
#if defined(PNG_READ_PACKSWAP_SUPPORTED)
            if (transformations & PNG_PACKSWAP)
            {
               sshift = (png_size_t)(((row_info->width + 1) & 1) << 2);
               dshift = (png_size_t)(((final_width + 1) & 1) << 2);
               s_start = 4;
               s_end = 0;
               s_inc = -4;
            }
            else
#endif
            {
               sshift = (png_size_t)((1 - ((row_info->width + 1) & 1)) << 2);
               dshift = (png_size_t)((1 - ((final_width + 1) & 1)) << 2);
               s_start = 0;
               s_end = 4;
               s_inc = 4;
            }

            for (i = row_info->width; i; i--)
            {
               png_byte v;
               int j;

               v = (png_byte)((*sp >> sshift) & 0xf);
               for (j = 0; j < png_pass_inc[pass]; j++)
               {
                  *dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff);
                  *dp |= (png_byte)(v << dshift);
                  if (dshift == s_end)
                  {
                     dshift = s_start;
                     dp--;
                  }
                  else
                     dshift += s_inc;
               }
               if (sshift == s_end)
               {
                  sshift = s_start;
                  sp--;
               }
               else
                  sshift += s_inc;
            }
            break;
         }

         default:         // This is the place where the routine is modified
         {
            __int64 const4 = 0x0000000000FFFFFF;
            // __int64 const5 = 0x000000FFFFFF0000;  // unused...
            __int64 const6 = 0x00000000000000FF;
            png_bytep sptr, dp;
            png_uint_32 i;
            png_size_t pixel_bytes;
            int width = row_info->width;

            pixel_bytes = (row_info->pixel_depth >> 3);

            sptr = row + (width - 1) * pixel_bytes;
            dp = row + (final_width - 1) * pixel_bytes;
            // New code by Nirav Chhatrapati - Intel Corporation
            // sign fix by GRR
            // NOTE:  there is NO MMX code for 48-bit and 64-bit images

            // use MMX routine if machine supports it
#if !defined(PNG_1_0_X)
            if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_INTERLACE)
                /* && mmx_supported */ )
#else
            if (mmx_supported)
#endif
            {
               if (pixel_bytes == 3)
               {
                  if (((pass == 0) || (pass == 1)) && width)
                  {
                     _asm
                     {
                        mov esi, sptr
                        mov edi, dp
                        mov ecx, width
                        sub edi, 21   // (png_pass_inc[pass] - 1)*pixel_bytes
loop_pass0:
                        movd mm0, [esi]     ; X X X X X v2 v1 v0
                        pand mm0, const4    ; 0 0 0 0 0 v2 v1 v0
                        movq mm1, mm0       ; 0 0 0 0 0 v2 v1 v0
                        psllq mm0, 16       ; 0 0 0 v2 v1 v0 0 0
                        movq mm2, mm0       ; 0 0 0 v2 v1 v0 0 0
                        psllq mm0, 24       ; v2 v1 v0 0 0 0 0 0
                        psrlq mm1, 8        ; 0 0 0 0 0 0 v2 v1
                        por mm0, mm2        ; v2 v1 v0 v2 v1 v0 0 0
                        por mm0, mm1        ; v2 v1 v0 v2 v1 v0 v2 v1
                        movq mm3, mm0       ; v2 v1 v0 v2 v1 v0 v2 v1
                        psllq mm0, 16       ; v0 v2 v1 v0 v2 v1 0 0
                        movq mm4, mm3       ; v2 v1 v0 v2 v1 v0 v2 v1
                        punpckhdq mm3, mm0  ; v0 v2 v1 v0 v2 v1 v0 v2
                        movq [edi+16] , mm4
                        psrlq mm0, 32       ; 0 0 0 0 v0 v2 v1 v0
                        movq [edi+8] , mm3
                        punpckldq mm0, mm4  ; v1 v0 v2 v1 v0 v2 v1 v0
                        sub esi, 3
                        movq [edi], mm0
                        sub edi, 24
                        //sub esi, 3
                        dec ecx
                        jnz loop_pass0
                        EMMS
                     }
                  }
                  else if (((pass == 2) || (pass == 3)) && width)
                  {
                     _asm
                     {
                        mov esi, sptr
                        mov edi, dp
                        mov ecx, width
                        sub edi, 9   // (png_pass_inc[pass] - 1)*pixel_bytes
loop_pass2:
                        movd mm0, [esi]     ; X X X X X v2 v1 v0
                        pand mm0, const4    ; 0 0 0 0 0 v2 v1 v0
                        movq mm1, mm0       ; 0 0 0 0 0 v2 v1 v0
                        psllq mm0, 16       ; 0 0 0 v2 v1 v0 0 0
                        movq mm2, mm0       ; 0 0 0 v2 v1 v0 0 0
                        psllq mm0, 24       ; v2 v1 v0 0 0 0 0 0
                        psrlq mm1, 8        ; 0 0 0 0 0 0 v2 v1
                        por mm0, mm2        ; v2 v1 v0 v2 v1 v0 0 0
                        por mm0, mm1        ; v2 v1 v0 v2 v1 v0 v2 v1
                        movq [edi+4], mm0   ; move to memory
                        psrlq mm0, 16       ; 0 0 v2 v1 v0 v2 v1 v0
                        movd [edi], mm0     ; move to memory
                        sub esi, 3
                        sub edi, 12
                        dec ecx
                        jnz loop_pass2
                        EMMS
                     }
                  }
                  else if (width) /* && ((pass == 4) || (pass == 5)) */
                  {
                     int width_mmx = ((width >> 1) << 1) - 8;
                     if (width_mmx < 0)
                         width_mmx = 0;
                     width -= width_mmx;        // 8 or 9 pix, 24 or 27 bytes
                     if (width_mmx)
                     {
                        _asm
                        {
                           mov esi, sptr
                           mov edi, dp
                           mov ecx, width_mmx
                           sub esi, 3
                           sub edi, 9
loop_pass4:
                           movq mm0, [esi]     ; X X v2 v1 v0 v5 v4 v3
                           movq mm7, mm0       ; X X v2 v1 v0 v5 v4 v3
                           movq mm6, mm0       ; X X v2 v1 v0 v5 v4 v3
                           psllq mm0, 24       ; v1 v0 v5 v4 v3 0 0 0
                           pand mm7, const4    ; 0 0 0 0 0 v5 v4 v3
                           psrlq mm6, 24       ; 0 0 0 X X v2 v1 v0
                           por mm0, mm7        ; v1 v0 v5 v4 v3 v5 v4 v3
                           movq mm5, mm6       ; 0 0 0 X X v2 v1 v0
                           psllq mm6, 8        ; 0 0 X X v2 v1 v0 0
                           movq [edi], mm0     ; move quad to memory
                           psrlq mm5, 16       ; 0 0 0 0 0 X X v2
                           pand mm5, const6    ; 0 0 0 0 0 0 0 v2
                           por mm6, mm5        ; 0 0 X X v2 v1 v0 v2
                           movd [edi+8], mm6   ; move double to memory
                           sub esi, 6
                           sub edi, 12
                           sub ecx, 2
                           jnz loop_pass4
                           EMMS
                        }
                     }

                     sptr -= width_mmx*3;
                     dp -= width_mmx*6;
                     for (i = width; i; i--)
                     {
                        png_byte v[8];
                        int j;

                        png_memcpy(v, sptr, 3);
                        for (j = 0; j < png_pass_inc[pass]; j++)
                        {
                           png_memcpy(dp, v, 3);
                           dp -= 3;
                        }
                        sptr -= 3;
                     }
                  }
               } /* end of pixel_bytes == 3 */

               else if (pixel_bytes == 1)
               {
                  if (((pass == 0) || (pass == 1)) && width)
                  {
                     int width_mmx = ((width >> 2) << 2);
                     width -= width_mmx;
                     if (width_mmx)
                     {
                        _asm
                        {
                           mov esi, sptr
                           mov edi, dp
                           mov ecx, width_mmx
                           sub edi, 31
                           sub esi, 3
loop1_pass0:
                           movd mm0, [esi]     ; X X X X v0 v1 v2 v3
                           movq mm1, mm0       ; X X X X v0 v1 v2 v3
                           punpcklbw mm0, mm0  ; v0 v0 v1 v1 v2 v2 v3 v3
                           movq mm2, mm0       ; v0 v0 v1 v1 v2 v2 v3 v3
                           punpcklwd mm0, mm0  ; v2 v2 v2 v2 v3 v3 v3 v3
                           movq mm3, mm0       ; v2 v2 v2 v2 v3 v3 v3 v3
                           punpckldq mm0, mm0  ; v3 v3 v3 v3 v3 v3 v3 v3
                           punpckhdq mm3, mm3  ; v2 v2 v2 v2 v2 v2 v2 v2
                           movq [edi], mm0     ; move to memory v3
                           punpckhwd mm2, mm2  ; v0 v0 v0 v0 v1 v1 v1 v1
                           movq [edi+8], mm3   ; move to memory v2
                           movq mm4, mm2       ; v0 v0 v0 v0 v1 v1 v1 v1
                           punpckldq mm2, mm2  ; v1 v1 v1 v1 v1 v1 v1 v1
                           punpckhdq mm4, mm4  ; v0 v0 v0 v0 v0 v0 v0 v0
                           movq [edi+16], mm2  ; move to memory v1
                           movq [edi+24], mm4  ; move to memory v0
                           sub esi, 4
                           sub edi, 32
                           sub ecx, 4
                           jnz loop1_pass0
                           EMMS
                        }
                     }

                     sptr -= width_mmx;
                     dp -= width_mmx*8;
                     for (i = width; i; i--)
                     {
                        int j;

                       /* I simplified this part in version 1.0.4e
                        * here and in several other instances where
                        * pixel_bytes == 1  -- GR-P
                        *
                        * Original code:
                        *
                        * png_byte v[8];
                        * png_memcpy(v, sptr, pixel_bytes);
                        * for (j = 0; j < png_pass_inc[pass]; j++)
                        * {
                        *    png_memcpy(dp, v, pixel_bytes);
                        *    dp -= pixel_bytes;
                        * }
                        * sptr -= pixel_bytes;
                        *
                        * Replacement code is in the next three lines:
                        */

                        for (j = 0; j < png_pass_inc[pass]; j++)
                           *dp-- = *sptr;
                        sptr--;
                     }
                  }
                  else if (((pass == 2) || (pass == 3)) && width)
                  {
                     int width_mmx = ((width >> 2) << 2);
                     width -= width_mmx;
                     if (width_mmx)
                     {
                        _asm
                        {
                           mov esi, sptr
                           mov edi, dp
                           mov ecx, width_mmx
                           sub edi, 15
                           sub esi, 3
loop1_pass2:
                           movd mm0, [esi]     ; X X X X v0 v1 v2 v3
                           punpcklbw mm0, mm0  ; v0 v0 v1 v1 v2 v2 v3 v3
                           movq mm1, mm0       ; v0 v0 v1 v1 v2 v2 v3 v3
                           punpcklwd mm0, mm0  ; v2 v2 v2 v2 v3 v3 v3 v3
                           punpckhwd mm1, mm1  ; v0 v0 v0 v0 v1 v1 v1 v1
                           movq [edi], mm0     ; move to memory v2 and v3
                           sub esi, 4
                           movq [edi+8], mm1   ; move to memory v1     and v0
                           sub edi, 16
                           sub ecx, 4
                           jnz loop1_pass2
                           EMMS
                        }
                     }

                     sptr -= width_mmx;
                     dp -= width_mmx*4;
                     for (i = width; i; i--)
                     {
                        int j;

                        for (j = 0; j < png_pass_inc[pass]; j++)
                        {
                           *dp-- = *sptr;
                        }
                        sptr --;
                     }
                  }
                  else if (width) /* && ((pass == 4) || (pass == 5))) */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精选在线观看| 欧美日韩在线直播| 久久精品噜噜噜成人88aⅴ| 亚洲最快最全在线视频| 亚洲男人电影天堂| 亚洲精品菠萝久久久久久久| 亚洲欧美日韩国产综合| 亚洲一区二区在线免费看| 亚洲九九爱视频| 午夜国产精品一区| 久久国产精品99久久久久久老狼| 视频一区二区三区在线| 蜜臀精品久久久久久蜜臀| 久久精品国产色蜜蜜麻豆| 国产一区二区在线电影| 国产99久久久国产精品潘金| 99久久伊人久久99| 色88888久久久久久影院野外| 91久久国产最好的精华液| 欧美视频中文字幕| 精品国产人成亚洲区| 国产精品久久久久久久久免费相片| 亚洲柠檬福利资源导航| 丝袜美腿亚洲一区二区图片| 精品在线亚洲视频| 成人av综合在线| 欧美三区在线观看| 精品av久久707| 亚洲欧美乱综合| 日韩中文字幕91| 国产99一区视频免费| 色婷婷av一区二区三区gif| 欧美一区二区成人6969| 日本一区二区高清| 日韩专区中文字幕一区二区| 大白屁股一区二区视频| 在线一区二区视频| 久久一夜天堂av一区二区三区| 亚洲伦理在线免费看| 韩国av一区二区三区| 色素色在线综合| 久久综合九色综合欧美就去吻 | 亚洲国产精品久久久久婷婷884| 另类的小说在线视频另类成人小视频在线| 国产在线播放一区| 91精品办公室少妇高潮对白| 欧美精品一区二区三区蜜桃| 亚洲一区二区av电影| 豆国产96在线|亚洲| 91精品欧美久久久久久动漫| 亚洲欧洲精品成人久久奇米网| 日韩精品午夜视频| 91精品福利视频| 17c精品麻豆一区二区免费| 国内精品伊人久久久久av一坑| 色噜噜狠狠色综合中国| 中文字幕av在线一区二区三区| 蜜臀久久99精品久久久久宅男 | 日本不卡123| 欧美色图在线观看| 亚洲精品第1页| av电影在线观看不卡| 国产清纯白嫩初高生在线观看91| 婷婷中文字幕一区三区| 欧美日韩国产123区| 亚洲国产精品久久久久婷婷884| 91麻豆成人久久精品二区三区| 中文字幕va一区二区三区| 国产乱对白刺激视频不卡| 欧美成人一区二区三区片免费| 三级欧美韩日大片在线看| 欧美日韩视频专区在线播放| 樱花草国产18久久久久| a亚洲天堂av| 国产精品久久福利| 久久国产欧美日韩精品| 久久天天做天天爱综合色| 日韩成人免费在线| 欧美日韩国产另类一区| 亚洲一区二区精品3399| 一本到不卡免费一区二区| 中文一区二区在线观看| 日韩精品高清不卡| 欧美精品粉嫩高潮一区二区| 一区二区在线免费观看| 91首页免费视频| 国产精品二三区| 不卡视频在线看| 中文一区一区三区高中清不卡| 亚洲电影一区二区三区| 日韩视频在线永久播放| 日韩国产在线观看一区| 欧美日韩成人综合天天影院 | 成人精品亚洲人成在线| 精品国产一区二区三区av性色| 国产一区二区h| 久久色在线观看| 国模娜娜一区二区三区| 国产日韩欧美精品在线| 成人国产精品视频| 国产精品一区二区x88av| 精品久久国产97色综合| 中国色在线观看另类| 国产欧美一区二区精品忘忧草 | 久久综合九色综合欧美98| 久久99精品国产.久久久久| 日韩精品一区国产麻豆| 成人午夜激情影院| 亚洲丝袜美腿综合| 色综合久久中文综合久久牛| 五月婷婷久久综合| 日韩一级黄色片| 国产福利不卡视频| 中文字幕一区二区三区蜜月 | 亚洲国产精品一区二区www在线| 欧美日韩成人综合天天影院 | 久久免费国产精品| 成人免费高清在线| 亚洲线精品一区二区三区八戒| 欧美久久久久中文字幕| 国产美女精品人人做人人爽| 国产精品国产三级国产普通话蜜臀 | 国产视频一区在线观看| 成人短视频下载| 午夜天堂影视香蕉久久| 久久精品网站免费观看| 欧美三级欧美一级| 国产91丝袜在线18| 午夜不卡av在线| 久久九九久久九九| 欧美日韩你懂的| 成人午夜av电影| 蜜桃视频免费观看一区| 亚洲欧洲av另类| 精品免费视频一区二区| 国产精品996| 蜜臀av一区二区| 亚洲男帅同性gay1069| 欧美电影免费观看高清完整版在 | 一本在线高清不卡dvd| 激情五月婷婷综合| 一区二区三区鲁丝不卡| 久久精品综合网| 久久女同互慰一区二区三区| 欧美日韩一二区| 不卡视频免费播放| 国产精品一区二区在线播放| 亚洲线精品一区二区三区| 国产欧美久久久精品影院| 欧美一区二视频| 91成人免费在线| 99国产精品一区| 丁香亚洲综合激情啪啪综合| 久久精品99久久久| 极品美女销魂一区二区三区免费| 亚洲午夜激情av| 亚洲特黄一级片| 欧美国产日韩亚洲一区| 欧美sm美女调教| 欧美一区二区三区在线观看 | 成人av电影在线观看| 国产成人综合网站| 国产一区二区精品在线观看| 免费欧美在线视频| 日本欧美大码aⅴ在线播放| 亚洲一二三区在线观看| 综合婷婷亚洲小说| 《视频一区视频二区| 中文av一区特黄| 中文一区一区三区高中清不卡| 国产欧美精品一区二区色综合朱莉| 欧美大片日本大片免费观看| 日韩久久精品一区| www久久精品| 国产日韩精品久久久| 精品福利在线导航| 中文字幕在线观看不卡视频| 国产精品久久精品日日| 亚洲欧美在线视频观看| 最新国产成人在线观看| 一个色妞综合视频在线观看| 亚洲一区二区三区在线播放| 亚洲一区二区三区在线播放| 久久激情五月激情| 国产在线视频精品一区| 成人不卡免费av| 欧美日韩一区二区三区不卡| 91麻豆精品91久久久久同性| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕永久在线不卡| 亚洲一区在线观看网站| 天天影视涩香欲综合网| 精品系列免费在线观看| 国产91对白在线观看九色| 91国在线观看| xfplay精品久久| 亚洲最大的成人av| 九九久久精品视频| 一本色道亚洲精品aⅴ| 欧美一二三四在线|