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

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

?? rprombw.c

?? 此代碼為WCE5.0下顯示器的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
                ULONG ulBPP, ULONG ulRefRate, ULONG ulMemIPC, LPFIXEDPOINT lpEff)
{
  ULONG   ulHalfKByteRate;

  // MEM_BYTEWIDTH = 64/8 = 8, 0.4k = 2^4
  ulHalfKByteRate = ((((ulDispWidth * ulDispHeight) >> 3) * ulBPP) >> 4) * ulRefRate;

  // Divided by MEM_IPC (= 1 or 2)
  ulHalfKByteRate >>= ulMemIPC - 1;

  // Divided by 2^8 before multiply with Efficiency
  lpBandWidth->Fractional = (ulHalfKByteRate & 0x000000FF);
  lpBandWidth->Integral = ulHalfKByteRate >> 8;
  
  vMultiplyFixed(lpBandWidth, lpEff);

  // round fractional
  if (lpBandWidth->Fractional >= 128)

      lpBandWidth->Integral++;  
  // Divided by 2^8 to get MBytes per second
  lpBandWidth->Fractional = (lpBandWidth->Integral & 0x000000FF);
  lpBandWidth->Integral >>= 8;
}



/****************************Private*Routine*******************************\
*
* vMBW_GetBWforCI()
*
* Calculate Scaler / Overlay Bandwidth in MBytes per Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetBWforCI(LPFIXEDPOINT lpBandWidth, ULONG ulDispWidth, ULONG ulDispHeight, 
                     ULONG ulBPP, ULONG ulRefRate, ULONG ulMemIPC, LPFIXEDPOINT lpEff)
{
  ULONG   ulHalfKByteRate;

  // MEM_BYTEWIDTH = 64/8 = 8, 0.4k = 2^4
  ulHalfKByteRate = ((ulDispWidth * ulDispHeight * ulBPP) >> 7) * ulRefRate;

  // Divided by MEM_IPC (= 1 or 2)
  ulHalfKByteRate >>= ulMemIPC - 1;

  // Divided by 2^8 before multiply with Efficiency
  lpBandWidth->Fractional = (ulHalfKByteRate & 0x000000FF);
  lpBandWidth->Integral = ulHalfKByteRate >> 8;
  
  vMultiplyFixed(lpBandWidth, lpEff);

  // round fractional
  if (lpBandWidth->Fractional >= 128)
    lpBandWidth->Integral++;

  // Divided by 2^8 to get MBytes per second
  lpBandWidth->Fractional = (lpBandWidth->Integral & 0x000000FF);
    lpBandWidth->Integral >>= 8;
}



/****************************Private*Routine*******************************\
*
* vMBW_GetSclBW()
*
* Calculate Scaler / Overlay Bandwidth in MBytes per Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetSclBW(LPFIXEDPOINT lpSclBandWidth, ULONG ulSclBurst, ULONG ulSclMode, 
                  LPDEVMODE_INFO lpModeInfo, ULONG ulMemIPC)
{
  FIXEDPOINT   sSclEff;

  if (ulSclMode == MBW_SCL_PLANAR_MODE)
    // YUV plannar mode
    vMBW_GetSclEff(&sSclEff, ulSclBurst, ulMemIPC);
  else if (ulSclMode == MBW_SCL_PACKED_MODE)
    // YUV packed mode - assume page size of 256*64 bits
    vMBW_GetSclEff(&sSclEff, 256, ulMemIPC);
  
  vMBW_GetBW(lpSclBandWidth, lpModeInfo->ulPelsWidth, lpModeInfo->ulPelsHeight, 
             lpModeInfo->ulBitsPerPixel, lpModeInfo->ulDisplayFrequency, 
             ulMemIPC, &sSclEff);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetVidBW()
*
* Calculate Video Capture Bandwidth in MBytes per Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetVidBW(LPFIXEDPOINT lpVidBW, ULONG ulVidFlush, ULONG ulVidWidth, ULONG ulMemIPC)
{
  FIXEDPOINT   sFactor;

  vMBW_GetVidEff(&sFactor, ulVidFlush, ulMemIPC);

  lpVidBW->Integral = MBW_VID_CLK;
  lpVidBW->Fractional = 0;

  // VID_BW = VID_CLK / VID_EFF
  vMultiplyFixed(lpVidBW, &sFactor);


  if(ulVidWidth >= 640)
  {
    // do nothing
  }
  else if (ulVidWidth >= 320)
  {
    // VID_BW / 2
    sFactor.Integral = 2;
    sFactor.Fractional = 0;
    vDivideFixed(lpVidBW, &sFactor);
  }
  else if (ulVidWidth >= 240)
  {
    // VID_BW * 3 / 8
    sFactor.Integral = 0;
    sFactor.Fractional = MBW_GetFractional(3, 8);
    vMultiplyFixed(lpVidBW, &sFactor);
  }
  else if (ulVidWidth > 0)
  {
    // VID_BW / 4
    sFactor.Integral = 4;
    sFactor.Fractional = 0;
    vDivideFixed(lpVidBW, &sFactor);    
  }
  else
  {
    // VID_BW = 0
    lpVidBW->Integral = 0;
    lpVidBW->Fractional = 0;
  }


}




/****************************Private*Routine*******************************\
*
* vMBW_GetSubBW()
*
* Calculate DVD Subpicture Bandwidth in MBytes per Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetSubBW(LPFIXEDPOINT lpSubBW, ULONG ulSubBurst, ULONG ulSubHGT, ULONG ulSubRate, 
                  ULONG ulMemIPC)
{
  FIXEDPOINT   sSubEff;

  vMBW_GetSubEff(&sSubEff, ulSubBurst, ulMemIPC);

  // tricking GetBW() - use the burst size instead of the width as and the bus
  // width instead of bpp
  // this has the same effect to calculate the overall bit width for the given
  // line as the subpicture only has one burst per line.
  vMBW_GetBW(lpSubBW, ulSubBurst, ulSubHGT, 64, ulSubRate, ulMemIPC, &sSubEff);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetHFBBW()
*
* Calculate DSTN Half Frame Buffer Bandwidth in MBytes per Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetHFBBW(LPFIXEDPOINT lpHalfBW, ULONG ulHalfFIFO, 
                   LPDEVMODE_INFO lpModeInfo, ULONG ulMemIPC)
{
  FIXEDPOINT   sHalfEff;
  FIXEDPOINT   sFactor;

  vMBW_GetBurstEff(&sHalfEff, ulHalfFIFO, ulMemIPC);

  vMBW_GetBW(lpHalfBW, lpModeInfo->ulPelsWidth, lpModeInfo->ulPelsHeight, 
             MBW_HFB_BPP, lpModeInfo->ulDisplayFrequency, 
             ulMemIPC, &sHalfEff);

  sFactor.Integral = 2;
  sFactor.Fractional = 0;

  vMultiplyFixed(lpHalfBW, &sFactor);
}



/****************************Private*Routine*******************************\
*
* ULONG MBW_GetDispBW()
*
* Calculate Frame Display Bandwidth in MBytes per Second
* 
* Note: lpDispBandwidth with returned fixed-point value
*       function return ULONG value
*
\**************************************************************************/

ULONG MBW_GetDispBW(LPFIXEDPOINT lpDispBandwidth, ULONG ulDispFIFO, ULONG ulHWCur_Size, 
                    ULONG ulHWIcon_Size, ULONG ulMemIPC, LPDEVMODE_INFO lpModeInfo)
{
  FIXEDPOINT   sEff;
  FIXEDPOINT   sHWCI_BW;
  ULONG        ulHWCI_Size;

  // calculate DISP bandwidth
  vMBW_GetBurstEff(&sEff, ulDispFIFO, ulMemIPC);
  vMBW_GetBW(lpDispBandwidth, lpModeInfo->ulPelsWidth, lpModeInfo->ulPelsHeight, 
             lpModeInfo->ulBitsPerPixel, lpModeInfo->ulDisplayFrequency,
             ulMemIPC, &sEff);

  // calculate Cursor and Icon efficiency
  ulHWCI_Size = ulHWCur_Size + ulHWIcon_Size;
  vMBW_GetBurstEff(&sEff, ulHWCI_Size, ulMemIPC);

  // calculate Cursor bandwidth
  vMBW_GetBWforCI(&sHWCI_BW, ulHWCur_Size, MBW_HW_CUR_HIGHT, 64, lpModeInfo->ulDisplayFrequency,
                  ulMemIPC, &sEff);

  // DISP_BW + CURSOR_BW
  vAddFixed(lpDispBandwidth, &sHWCI_BW);

  // calculate Icon bandwidth
  vMBW_GetBWforCI(&sHWCI_BW, ulHWIcon_Size, MBW_HW_ICON_HIGHT, 64, lpModeInfo->ulDisplayFrequency,
                  ulMemIPC, &sEff);

  // DISP_BW + CURSOR_BW + ICON_BW
  vAddFixed(lpDispBandwidth, &sHWCI_BW);

  if (lpDispBandwidth->Fractional >= 128)
    return lpDispBandwidth->Integral + 1;
  else
    return lpDispBandwidth->Integral;
}



/****************************Public*Routine*******************************\
*
* ULONG MBW_RequiredBW()
*
* Calculate Required Bandwidth in MBytes per Second
* 
* Note: lpReqBandwidth with returned fixed-point value
*       function return ULONG value
*
\**************************************************************************/

ULONG MBW_RequiredBW(LPFIXEDPOINT lpReqBandwidth, ULONG ulMemIPC)
{
  FIXEDPOINT   sTemp;
  ULONG        ulDisp1FIFO = 32;    // hard code
  ULONG        ulDisp2FIFO = 32;    // hard code
  DEVMODE_INFO sModeInfo1 = {0, 1024, 768, 32}; // hard code
  DEVMODE_INFO sModeInfo2 = {0, 1024, 768, 32}; // hard code
  ULONG        ulVidFlush = 12;     // hard code
  ULONG        ulVidWidth = 720;    // hard code
  ULONG        ulHalfFIFO = 64;     // hard code
  DEVMODE_INFO sHalfMode = {0, 1024, 768, 32}; // hard code
  ULONG        ulSubBurst = 16;     // hard code
  ULONG        ulSubHGT = 480;      // hard code
  ULONG        ulSubRate = 60;      // hard code
  ULONG        ulSclMode = MBW_SCL_PLANAR_MODE; // hard code
  ULONG        ulSclBurst = 16;     // hard code
  DEVMODE_INFO sSclMode = {0, 720, 480, 32}; // hard code

#define HWCUR1_SIZE  2 
#define HWICON1_SIZE 4 

#define HWCUR2_SIZE  2 
#define HWICON2_SIZE 4 
  
  // TOTAL_BW = DISP1_BW
  MBW_GetDispBW(lpReqBandwidth, ulDisp1FIFO, HWCUR1_SIZE, 
                HWICON1_SIZE, ulMemIPC, &sModeInfo1);

  MBW_GetDispBW(&sTemp, ulDisp2FIFO, HWCUR2_SIZE, 
                HWICON2_SIZE, ulMemIPC, &sModeInfo2);

  // TOTAL_BW += DISP2_BW
  vAddFixed(lpReqBandwidth, &sTemp);

  vMBW_GetVidBW(&sTemp, ulVidFlush, ulVidWidth, ulMemIPC);

  // TOTAL_BW += VID_BW
  vAddFixed(lpReqBandwidth, &sTemp);

  vMBW_GetHFBBW(&sTemp, ulHalfFIFO, &sHalfMode, ulMemIPC);

  // TOTAL_BW += HFB_BW
  vAddFixed(lpReqBandwidth, &sTemp);

  vMBW_GetSubBW(&sTemp, ulSubBurst, ulSubHGT, ulSubRate, ulMemIPC);

  // TOTAL_BW += SUB_BW
  vAddFixed(lpReqBandwidth, &sTemp);

  vMBW_GetSclBW(&sTemp, ulSclBurst, ulSclMode, &sSclMode, ulMemIPC);

  // TOTAL_BW += SCL_BW
  vAddFixed(lpReqBandwidth, &sTemp);

  // return TOTAL_BW
  if (lpReqBandwidth->Fractional >= 128)
    return lpReqBandwidth->Integral + 1;
  else
    return lpReqBandwidth->Integral;
}



/****************************Private*Routine*******************************\
*
* vMBW_AvailHActiveTime()
*
* Calculate Available Active Time in Micro Second
* 
* Note: lpActiveTime with output fixed-point value
*       function return ULONG value
*
\**************************************************************************/

VOID vMBW_AvailHActiveTime(HGCO hGCO, LPFIXEDPOINT lpActiveTime, LPDEVMODE_INFO lpModeInfo, 
                           LPFIXEDPOINT lpPixelClock, ULONG ulHBlankFactor)
{
  LPHW_RAGEPROCRTC_EXTENSION lpHwCrtc = (LPHW_RAGEPROCRTC_EXTENSION)hGCO;
  FIXEDPOINT                 sTemp;

  lpActiveTime->Integral = 1;
  lpActiveTime->Fractional = ulHBlankFactor;

  sTemp.Integral = lpModeInfo->ulPelsWidth;
  sTemp.Fractional = 0;

  vMultiplyFixed(lpActiveTime, &sTemp);

  vDivideFixed(lpActiveTime, lpPixelClock);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetDispHActiveTime()
*
* Calculate Display Horizontal Active Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

ULONG vMBW_GetDispHActiveTime(LPFIXEDPOINT lpHActiveTime, ULONG ulDispFIFO, 
                              ULONG ulHWCI_Size, ULONG ulDispWid, 
                              ULONG ulBPP, ULONG ulMemClock, ULONG ulMemIPC)
{
  FIXEDPOINT   sDispEff;
  FIXEDPOINT   sHWCIEff;
  FIXEDPOINT   sTemp;

  vMBW_GetBurstEff(&sDispEff, ulDispFIFO, ulMemIPC);
  vMBW_GetBurstEff(&sHWCIEff, ulHWCI_Size, ulMemIPC);

  // DISP_QW_WID = DISP_WID * DISP_BPP / 64
  lpHActiveTime->Integral = ulDispWid * ulBPP >> 6;
  lpHActiveTime->Fractional = 0;

  // (1 / DISP_EFF) * DISP_QW_WID
  vMultiplyFixed(lpHActiveTime, &sDispEff);

  sTemp.Integral = ulHWCI_Size;
  sTemp.Fractional = 0;

  // (1 / HWCI_EFF) * HWCI_SIZE
  vMultiplyFixed(&sTemp, &sHWCIEff);

  // (1/DISP_EFF)*DISP_QW_WID+(1/HWCI_EFF)*HWCI_SIZE
  vAddFixed(lpHActiveTime, &sTemp);

  sTemp.Integral = ulMemClock;
  sTemp.Fractional = 0;
  // Divided by MEM_CLK
  vDivideFixed(lpHActiveTime, &sTemp);

  if (lpHActiveTime->Fractional >= 128)
    return lpHActiveTime->Integral + 1;
  else
    return lpHActiveTime->Integral;
}



/****************************Private*Routine*******************************\
*
* vMBW_GetVidHActiveTime()
*
* Calculate Video Capture Horizontal Active Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetVidHActiveTime(LPFIXEDPOINT lpHActiveTime, ULONG ulVidFlush, 
                            ULONG ulVidWid, LPFIXEDPOINT lpHTotalTime, 
                            ULONG ulMemClock, ULONG ulMemIPC)
{
  FIXEDPOINT   sTemp;
  FIXEDPOINT   sMemBw;
 
  if (!ulMemIPC)
    return;

  // VID_BW
  vMBW_GetVidBW(&sTemp, ulVidFlush, ulVidWid, ulMemIPC);
  
  // MEM_BW = MEM_CLK * 8 / MEM_IPC
  sMemBw.Integral = (ulMemClock << 3) / ulMemIPC;
  sMemBw.Fractional = 0;

  // VID_PORTION = VID_BW / MEM_BW
  vDivideFixed(&sTemp, &sMemBw);

  *lpHActiveTime = *lpHTotalTime;

  // VID_PORTION * HTOT_TIME
  vMultiplyFixed(lpHActiveTime, &sTemp);
}



VOID vMBW_GetHActiveTime(LPFIXEDPOINT lpHActiveTime, ULONG ulBurstSize, 
                         ULONG ulWidth, ULONG ulBPP, ULONG ulMemClock, 
                         ULONG   ulMemIPC)
{
  FIXEDPOINT   sEff;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产偷国产偷亚洲高清人白洁| 亚洲一二三区视频在线观看| 久久久精品国产免费观看同学| 国产精品麻豆久久久| 色综合中文综合网| 视频一区二区欧美| 国产精品无遮挡| 久久久久国产一区二区三区四区| 精品美女在线播放| 在线观看91精品国产麻豆| 欧美三级电影在线观看| 欧美在线观看禁18| 日韩小视频在线观看专区| 99精品一区二区| 在线日韩一区二区| 欧美精品自拍偷拍动漫精品| 99这里只有久久精品视频| 成人av免费网站| 91成人免费在线| 正在播放亚洲一区| www国产亚洲精品久久麻豆| 久久午夜色播影院免费高清| 国产精品三级电影| 亚洲资源在线观看| 亚洲第一搞黄网站| 韩国欧美国产一区| 91浏览器在线视频| 久久久久久电影| 亚洲激情第一区| 日韩av中文字幕一区二区| 亚洲成人资源在线| 国产精品69毛片高清亚洲| 91福利视频网站| 亚洲精品在线一区二区| ...av二区三区久久精品| 日韩av不卡一区二区| 99久久综合色| 国产精品亲子乱子伦xxxx裸| 色丁香久综合在线久综合在线观看| 91麻豆免费看| 国产精品看片你懂得| 亚洲福利视频一区二区| 日本免费新一区视频| 色综合久久99| 亚洲精品高清在线| 国产成人精品免费| 欧美日韩国产123区| 亚洲精品久久久蜜桃| 国产成人精品免费在线| 精品对白一区国产伦| 亚洲综合色丁香婷婷六月图片| 91在线云播放| 亚洲久草在线视频| 日韩高清一区二区| 欧美色精品在线视频| 久久成人久久爱| 成人免费在线播放视频| 欧美一区二区三区在线看| 国产成人av影院| 亚洲高清在线精品| 国产农村妇女毛片精品久久麻豆 | 欧美无砖专区一中文字| 久久精品国产99久久6| 亚洲视频在线一区| 欧美一二三四在线| 色88888久久久久久影院野外| 蜜臀av性久久久久蜜臀aⅴ| 国产精品超碰97尤物18| 日韩视频免费观看高清完整版 | 国产一区二区三区在线观看免费| 国产精品青草久久| 久久久久国产精品麻豆| 国产不卡免费视频| 亚洲综合激情小说| 成人免费在线视频| 国产欧美一区二区三区网站| 日韩午夜中文字幕| 欧美日韩精品一区二区在线播放| 国产成人啪午夜精品网站男同| 蜜臀av亚洲一区中文字幕| 亚洲精品少妇30p| 亚洲视频狠狠干| 亚洲男女一区二区三区| 成人欧美一区二区三区| 中文字幕不卡在线播放| 国产精品久久精品日日| 国产精品人成在线观看免费| 国产性做久久久久久| 亚洲国产精品国自产拍av| 久久天天做天天爱综合色| 精品1区2区在线观看| 久久精品视频在线看| 日本一区二区三级电影在线观看| 国产农村妇女毛片精品久久麻豆 | 蜜臀精品久久久久久蜜臀| 日产国产欧美视频一区精品| 美女视频一区在线观看| 韩国视频一区二区| 9i看片成人免费高清| 欧美日韩另类国产亚洲欧美一级| 欧美日韩不卡在线| 精品国产电影一区二区| 国产精品理论在线观看| 亚洲v日本v欧美v久久精品| 久久av资源网| 99v久久综合狠狠综合久久| 欧美精品成人一区二区三区四区| 欧美精品一区二区三区视频| 亚洲精品成人天堂一二三| 日本不卡一区二区| 99在线精品一区二区三区| 日韩一卡二卡三卡四卡| 一区二区三区欧美日| 国内精品写真在线观看| 欧美午夜宅男影院| 欧美性色黄大片手机版| 日韩视频123| 亚洲成人高清在线| 色婷婷一区二区| 中文字幕高清不卡| 国产成人亚洲综合a∨婷婷图片| 欧美性猛片xxxx免费看久爱| 亚洲欧洲性图库| 成人影视亚洲图片在线| 久久先锋影音av鲁色资源| 日韩精品免费专区| 91精品国产综合久久香蕉的特点 | 一本色道a无线码一区v| 亚洲国产精品成人久久综合一区| 久久成人综合网| 欧美成人一区二区三区片免费 | 国产欧美精品在线观看| 国产一区二区不卡在线| 久久蜜臀中文字幕| 国产99久久精品| 国产精品二三区| 色视频成人在线观看免| 亚洲www啪成人一区二区麻豆| 在线电影一区二区三区| 天堂蜜桃91精品| 精品国产伦一区二区三区观看体验| 蜜臀av一级做a爰片久久| 欧美大片日本大片免费观看| 国模少妇一区二区三区| 国产精品毛片久久久久久| 在线观看亚洲成人| 日韩成人精品在线观看| 久久精品日产第一区二区三区高清版| 国产老肥熟一区二区三区| 18欧美乱大交hd1984| 欧美裸体一区二区三区| 国产大片一区二区| 夜夜嗨av一区二区三区| 亚洲精品在线电影| 一本色道久久加勒比精品| 亚洲免费观看高清完整| 色婷婷综合视频在线观看| 美女性感视频久久| 亚洲特黄一级片| 国产欧美一二三区| 日韩欧美综合一区| 欧美精选在线播放| 成人av电影免费在线播放| 久久99精品久久久久久久久久久久 | 欧美日韩视频在线第一区| 91在线观看视频| 成人精品视频一区二区三区| 国产综合成人久久大片91| 亚洲成人你懂的| 天堂一区二区在线| 亚洲精品日产精品乱码不卡| 中文字幕在线播放不卡一区| 中文字幕av不卡| 日韩毛片高清在线播放| 亚洲欧洲国产日本综合| 日韩理论在线观看| 一区二区在线观看免费 | 国产99久久久精品| 国产精品99久久久久久宅男| 国产成人精品三级| 99riav一区二区三区| 在线影院国内精品| 欧美疯狂做受xxxx富婆| 欧美成人aa大片| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲人xxxx| 日本亚洲最大的色成网站www| 男女男精品视频网| 九色综合狠狠综合久久| 成人午夜看片网址| 色欧美片视频在线观看在线视频| 欧美一区二区大片| 精品美女被调教视频大全网站| 久久久精品国产免费观看同学| 中文字幕一区二区在线播放| 午夜精品免费在线观看| 丁香五精品蜜臀久久久久99网站| 在线观看亚洲一区| 在线免费av一区| 91精品久久久久久久久99蜜臂|