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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? skl_cmap.cpp

?? mpeg4編解碼器
?? CPP
字號(hào):
/******************************************************** * Some code. Copyright (C) 2003 by Pascal Massimino.   * * All Rights Reserved.      (http://skal.planet-d.net) * * For Educational/Academic use ONLY. See 'LICENSE.TXT'.* ********************************************************//* * skl_cmap.cpp * *  color maps ********************************************************/#include "skl.h"#include "skl_syst/skl_bits.h"#include "skl_2d/skl_cmap.h"//////////////////////////////////////////////////////////// SKL_CMAP_X//////////////////////////////////////////////////////////SKL_CMAP_X::SKL_CMAP_X(const SKL_CMAP &In) :  _Nb(In.Get_Nb_Colors()){  const SKL_UINT32 *In_Cols = In.Get_Colors();  SKL_FORMAT_SHIFT shft( In.Get_Format() );  for( int i=0; i<_Nb; ++i )    _Map[i] = shft.Unpack(In_Cols[i]);}SKL_CMAP_X::SKL_CMAP_X(const SKL_CMAP_X &In) :  _Nb(In.Get_Nb_Colors()){  for(int i=0; i<_Nb; ++i) _Map[i] = In[i];}//////////////////////////////////////////////////////////void SKL_CMAP_X::Ramp(SKL_COLOR c1, SKL_COLOR c2,                       int Start, int End){  SKL_ASSERT(Start>=0);   SKL_ASSERT(Start<End);  SKL_ASSERT(End<=256);  if (_Nb<End) _Nb=End;  int N = End-Start;  if (N<=1) {    _Map[Start] = c1.Mix(c2, 0.5f);  // !!    return;  }  float Scale = 1.0f/(N-1);  for( int i=0; i<N; ++i )    _Map[Start+i] = c1.Mix(c2, Scale*i);}void SKL_CMAP_X::RGB_Cube( SKL_FORMAT Fmt ){  int r_max = (1<<Fmt.Bits(2))-1;  int g_max = (1<<Fmt.Bits(1))-1;  int b_max = (1<<Fmt.Bits(0))-1;  SKL_ASSERT( (r_max+1)*(g_max+1)*(b_max+1)<=256 );  int i = 0;  for( int r=0; r<=r_max; ++r )    for( int g=0; g<=g_max; ++g )      for( int b=0; b<=b_max; ++b )        _Map[i++] = SKL_COLOR( r*255/r_max, g*255/g_max, b*255/b_max );}   //////////////////////////////////////////////////////////// SKL_CMAP//////////////////////////////////////////////////////////SKL_CMAP::SKL_CMAP(const SKL_CMAP_X &In, SKL_FORMAT fmt ) : _Nb(In.Get_Nb_Colors()) , _Format(fmt) {  SKL_FORMAT_SHIFT shft( fmt );  const SKL_COLOR *In_Cols = In.Get_Colors();  for( int i=0; i<_Nb; ++i )    _Map[i] = shft.Pack(In_Cols[i]);}SKL_CMAP::SKL_CMAP(const SKL_CMAP &In, SKL_FORMAT fmt){  _Nb = In.Get_Nb_Colors();  Set_Format( In.Get_Format() );  if (fmt==0 || fmt==In.Get_Format() ) {    SKL_MEMCPY( _Map, In.Get_Colors(), _Nb*sizeof(_Map[0]) );  }  else {    SKL_FORMAT_SHIFT in( In.Get_Format() );    SKL_FORMAT_SHIFT out( fmt );    for(int i=0; i<_Nb; ++i) {      SKL_COLOR C = in.Unpack( In[i] );      _Map[i] = out.Pack(C);    }  }}SKL_CMAP::SKL_CMAP(const SKL_FORMAT fmt, int Nb)  : _Nb(Nb), _Format(fmt){  SKL_ASSERT(Nb>=0); SKL_ASSERT(Nb<=256);  SKL_BZERO(_Map, _Nb*sizeof(_Map[0]) );}     //////////////////////////////////////////////////////////void SKL_CMAP::Ramp(SKL_COLOR c1, SKL_COLOR c2,                    int Start, int End){  SKL_CMAP_X tmp;   tmp.Ramp(c1,c2,Start,End);  *this = SKL_CMAP(tmp,_Format);}//////////////////////////////////////////////////////////// Formatting shifts and masks//////////////////////////////////////////////////////////SKL_FORMAT::SKL_FORMAT(SKL_ARGB R_msk, SKL_ARGB G_msk,                        SKL_ARGB B_msk, SKL_ARGB A_msk,                       int Depth){   int Pos[4] = { 0 };   int Size[4] = { 0 };   int Msk[4] = { B_msk, G_msk, R_msk, A_msk };   for( int i=0; i<4; ++i ) {     SKL_UINT32 Tmp = Msk[i];     if (Tmp) for( ; !(Tmp&1); Tmp>>=1 ) Pos[i]++;     for( ;(Tmp&1); Tmp>>=1 ) Size[i]++;   }  _Bits = (Size[3]<<12) | (Size[2]<<8) | (Size[1]<<4) | (Size[0]<<0);  if (G_msk>R_msk) _Bits |= BGR_ORDER;  if (Depth<=0) Depth = Compute_Depth();  _Bits |= Depth<<16;//  printf( "Mask RGBA: 0x%.8x 0x%.8x 0x%.8x 0x%.8x  => 0x%.8x\n", Msk[0], Msk[1], Msk[2], Msk[3], _Bits );}          int SKL_FORMAT::Compute_Depth() const {    // we assume packed pixels  int d = Bits(0) + Bits(1) + Bits(2) + Bits(3);  return ( (d+7) & ~7 ) / 8;    // size in byte}int SKL_FORMAT::Depth() const {  int d = Raw_Depth();  if ( !d ) return Compute_Depth();  else return d;}//////////////////////////////////////////////////////////// SKL_FORMAT_SHIFT//////////////////////////////////////////////////////////void SKL_FORMAT_SHIFT::Store_Mask_And_Shift(const SKL_FORMAT f){         // we assume packed pixels  int i, t;  for(i=0, t=0; i<4; ++i) {    _Mask[i] = SKL_BMASKS::And[f.Bits(i)]<<t;    t += f.Bits(i);    _Shift[i] = 32-t;  }  if (f.Is_BGR()) {    SKL_INT32 S = _Shift[0]; _Shift[0] = _Shift[2]; _Shift[2] = S;    SKL_UINT32 M = _Mask[0]; _Mask[0] = _Mask[2]; _Mask[2] = M;  }//  Print_Infos();}//////////////////////////////////////////////////////////// -- debug//////////////////////////////////////////////////////////void SKL_FORMAT::Print_Infos() const {  printf("Format:0x%.5x  (depth:%d/%d)\n",    _Bits, Compute_Depth(), Depth() );}void SKL_FORMAT_SHIFT::Print_Infos() const {  printf("Shifts: R:%d   G:%d   B:%d (A:%d) \n",    _Shift[2], _Shift[1], _Shift[0], _Shift[3]);  printf("Masks:  R:0x%.8x   G:0x%.8x   B:0x%.8x   (A:0x%.8x)\n",    _Mask[2], _Mask[1], _Mask[0], _Mask[3]);}void SKL_FORMAT_SHIFT::Print_Col(SKL_UINT32 c) const {  SKL_COLOR C = UnpackA(c);  printf("C=0x%.8x -> r=0x%x  g=0x%x  b=0x%x  (a=0x%x)\n",    c, C.R(), C.G(), C.B(), C.A() );}//////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情偷乱视频一区二区三区| 色8久久精品久久久久久蜜| 欧美性做爰猛烈叫床潮| 亚洲欧美在线观看| 91麻豆精品秘密| 亚洲一区自拍偷拍| 欧美日韩免费电影| 人人狠狠综合久久亚洲| 日韩视频国产视频| 国产一区二区三区四 | 欧美日韩一区小说| 性做久久久久久久免费看| 777午夜精品免费视频| 日韩精品福利网| 精品国产凹凸成av人网站| 国产精品1区2区| 亚洲免费在线视频一区 二区| 91福利在线导航| 蜜乳av一区二区三区| 久久久久久久性| 日本韩国视频一区二区| 日韩高清中文字幕一区| 久久影院电视剧免费观看| youjizz久久| 亚洲成人综合网站| 久久免费电影网| 91黄色免费版| 久久精品国产澳门| 亚洲女性喷水在线观看一区| 欧美日韩一区在线观看| 捆绑调教一区二区三区| 97se亚洲国产综合自在线不卡| 国产日本一区二区| 一个色在线综合| 99re66热这里只有精品3直播| 亚洲综合无码一区二区| 亚洲一区二区黄色| 国产一区二区调教| 亚洲人成7777| 精品日韩欧美在线| 91久久免费观看| 精品一区二区日韩| 一区二区三区波多野结衣在线观看| 日韩欧美二区三区| 日本黄色一区二区| 风间由美性色一区二区三区| 亚洲国产精品视频| 国产精品久久久久久久浪潮网站| 欧美日韩亚洲综合一区二区三区| 国产久卡久卡久卡久卡视频精品| 亚洲国产美女搞黄色| 国产亲近乱来精品视频| 日韩欧美在线网站| 在线亚洲高清视频| 成人国产精品免费观看动漫| 美美哒免费高清在线观看视频一区二区| 中文字幕一区日韩精品欧美| 精品国产网站在线观看| 在线播放亚洲一区| 99精品国产99久久久久久白柏| 美女视频免费一区| 五月激情综合色| 亚洲女同女同女同女同女同69| 欧美精品一区二区三区蜜桃视频| 911精品国产一区二区在线| 91丨九色porny丨蝌蚪| 国产成人福利片| 精品在线观看免费| 免费成人小视频| 激情综合亚洲精品| 日本aⅴ免费视频一区二区三区| 亚洲精品高清在线| 中文字幕色av一区二区三区| 久久日一线二线三线suv| 91精品麻豆日日躁夜夜躁| 日本精品免费观看高清观看| 91热门视频在线观看| 成人动漫视频在线| 成人午夜免费av| 成人手机电影网| 国产精品资源在线| 国产一区欧美一区| 国产麻豆成人传媒免费观看| 国产一区二区不卡老阿姨| 美女脱光内衣内裤视频久久影院| 日产国产高清一区二区三区 | 国产精品久久久久久久久免费相片 | 欧美精品久久久久久久多人混战 | 欧美精品一二三四| 欧美高清性hdvideosex| 555www色欧美视频| 欧美精品日日鲁夜夜添| 欧美一级欧美一级在线播放| 日韩视频在线你懂得| 日韩一区二区三区免费看| 日韩一区二区电影网| 欧美电影免费观看高清完整版| 日韩一二在线观看| 久久综合久久综合九色| 国产欧美一区二区精品性色| 国产精品久久综合| 一区二区三区四区激情| 午夜精品久久久久| 久久99国产精品麻豆| 国产激情一区二区三区四区 | 日韩久久精品一区| 久久久久久久网| 成人免费在线播放视频| 一区二区三区在线视频免费观看| 午夜精品免费在线观看| 极品美女销魂一区二区三区| 成人av在线一区二区三区| 在线观看精品一区| 日韩欧美电影在线| 成人欧美一区二区三区视频网页| 亚洲成av人片| 国产一区二区三区视频在线播放| 波多野结衣在线一区| 欧美日本一区二区三区| 26uuu色噜噜精品一区二区| 国产精品久久免费看| 日韩激情av在线| voyeur盗摄精品| 欧美一区二区高清| 中文字幕制服丝袜一区二区三区| 亚洲成av人影院在线观看网| 国产伦精品一区二区三区视频青涩 | 久久精品一区四区| 亚洲午夜久久久久久久久电影院| 国产麻豆视频精品| 欧美老女人在线| 国产精品久久毛片a| 美女高潮久久久| 91成人国产精品| 国产亚洲欧美一级| 五月激情丁香一区二区三区| 菠萝蜜视频在线观看一区| 日韩精品一区二区三区中文精品 | 国产亚洲一区字幕| 午夜精品在线视频一区| 99精品国产视频| 久久色成人在线| 免费成人小视频| 欧美天堂一区二区三区| 国产欧美日韩精品在线| 日韩电影在线观看一区| 94-欧美-setu| 欧美高清在线精品一区| 黄色资源网久久资源365| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美韩国日本不卡| 精品系列免费在线观看| 91精品欧美久久久久久动漫| 亚洲色图欧美偷拍| 国产精华液一区二区三区| 日韩一区二区免费在线电影| 亚洲福利一区二区三区| 91在线丨porny丨国产| 中文一区在线播放| 国产福利91精品一区| 精品国产一区二区亚洲人成毛片| 日韩黄色在线观看| 欧美日本免费一区二区三区| 亚洲一区欧美一区| 91久久奴性调教| 亚洲激情中文1区| 91在线你懂得| 中文字幕一区二区在线观看| 国产美女娇喘av呻吟久久| 精品国产网站在线观看| 国产尤物一区二区在线| 精品国产第一区二区三区观看体验| 蜜乳av一区二区| 精品久久久久久综合日本欧美| 日韩国产在线一| 欧美一区二区播放| 麻豆精品一区二区综合av| 日韩亚洲欧美高清| 久久精品国产亚洲高清剧情介绍| 欧美一级黄色大片| 国产在线精品视频| 国产色产综合产在线视频| 国产精品亚洲一区二区三区妖精 | av电影天堂一区二区在线观看| 国产精品免费视频一区| 91麻豆精品国产91久久久久久久久 | 成人avav影音| √…a在线天堂一区| 成人高清免费在线播放| 18涩涩午夜精品.www| 91视视频在线观看入口直接观看www | 丰满少妇在线播放bd日韩电影| 精品国产sm最大网站免费看 | 亚洲一级二级在线| 欧美浪妇xxxx高跟鞋交| 三级不卡在线观看| 日韩欧美国产wwwww| 国模少妇一区二区三区| 国产日韩欧美制服另类| va亚洲va日韩不卡在线观看|