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

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

?? rprombw.c

?? 此代碼為WCE5.0下顯示器的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
  FIXEDPOINT   sTemp;

  vMBW_GetBurstEff(&sEff, ulBurstSize, ulMemIPC);

  // QW_WID = WID * BPP / 64
  lpHActiveTime->Integral = ulWidth * ulBPP >> 6;
  lpHActiveTime->Fractional = 0;

  // (1 / EFF) * QW_WID
  vMultiplyFixed(lpHActiveTime, &sEff);

  sTemp.Integral = ulMemClock;
  sTemp.Fractional = 0;

  // Divided by MEM_CLK
  vDivideFixed(lpHActiveTime, &sTemp);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetHFBHActiveTime()
*
* Calculate Half Frame Buffer Horizontal Active Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetHFBHActiveTime(LPFIXEDPOINT lpHActiveTime, ULONG ulHFBFIFO, 
                            ULONG ulHFBWid, ULONG ulBPP, ULONG ulMemClock, 
                            ULONG ulMemIPC)
{
  FIXEDPOINT   sFactor;

  vMBW_GetHActiveTime(lpHActiveTime, ulHFBFIFO, ulHFBWid, ulBPP, ulMemClock, 
                      ulMemIPC);

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

  vMultiplyFixed(lpHActiveTime, &sFactor);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetSubHActiveTime()
*
* Calculate DVD Subpicture Horizontal Active Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetSubHActiveTime(LPFIXEDPOINT lpHActiveTime, ULONG ulSubBurst, 
                            ULONG ulSubWid, ULONG ulBPP, ULONG ulMemClock,
                            ULONG ulMemIPC)
{
  vMBW_GetHActiveTime(lpHActiveTime, ulSubBurst, ulSubWid, ulBPP, ulMemClock, 
                      ulMemIPC);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetSclHActive()
*
* Calculate Scaler / Overlay Horizontal Active Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetSclHActive(LPFIXEDPOINT lpHActiveTime, ULONG ulSclBurst, ULONG ulSclMode, 
                        ULONG ulSclWidth, ULONG ulSclBPP, ULONG ulMemClock,
                        ULONG ulMemIPC)
{
  FIXEDPOINT   sTemp;

  if (ulSclMode == MBW_SCL_PLANAR_MODE)
  {
    // planar mode
    vMBW_GetSclEff(&sTemp, ulSclBurst, ulMemIPC);    
  }
  else if (ulSclMode == MBW_SCL_PACKED_MODE)
  {
    // packed mode - assume page size of 256 * 64 bits
    vMBW_GetSclEff(&sTemp, 256, ulMemIPC);    
  }

  // SCL_QW_WID
  lpHActiveTime->Integral = ulSclWidth * ulSclBPP / 64;
  lpHActiveTime->Fractional = 0;

  // (1 / SCL_EFF) * SCL_QW_WID
  vMultiplyFixed(lpHActiveTime, &sTemp);

  sTemp.Integral = ulMemClock;
  sTemp.Fractional = 0;

  // (1 / SCL_EFF) * SCL_QW_WID / MEM_CLK
  vDivideFixed(lpHActiveTime, &sTemp);
}



/****************************Public*Routine*******************************\
*
* ULONG MBW_ReqHActiveTime()
*
* Calculate Required Horizontal Active Time in Micro Second
* 
* Note: lpHActiveTime with output fixed-point value
*       function return ULONG value
*       
\**************************************************************************/

ULONG MBW_ReqHActiveTime(HGCO hGCO, LPFIXEDPOINT lpHActiveTime, ULONG ulMemClock)
{
  FIXEDPOINT   sTemp;
  FIXEDPOINT   sHTotalTime;
  DEVMODE_INFO sModeInfo = {0, 1600, 1200, 32, 60};
  ULONG        ulHWCI_Size;
  ULONG        ulMemIPC = 1;        // hard code
  ULONG        ulDisp1FIFO = 32;    // hard code
  ULONG        ulDisp1Width = 1600; // hard code
  ULONG        ulDisp1BPP = 32;     // hard code
  ULONG        ulDisp2FIFO = 32;    // hard code
  ULONG        ulDisp2Width = 1600; // hard code
  ULONG        ulDisp2BPP = 32;     // hard code
  ULONG        ulVidFlush = 32;     // hard code
  ULONG        ulVidClock = 100;    // hard code
  ULONG        ulVidWidth = 720;    // hard code
  ULONG        ulHFBFIFO = 8;       // hard code
  ULONG        ulHFBWidth = 32;     // hard code
  ULONG        ulSubBurst = 32;     // hard code
  ULONG        ulSubWidth = 32;     // hard code
  ULONG        ulSclBurst = 32;     // hard code
  ULONG        ulSclWidth = 720;    // hard code
  ULONG        ulSclMode = MBW_SCL_PLANAR_MODE; // hard code

#define HWCUR1_SIZE  2 
#define HWICON1_SIZE 4 

#define HWCUR2_SIZE  2 
#define HWICON2_SIZE 4 

  ulHWCI_Size = HWCUR1_SIZE + HWICON1_SIZE;
  vMBW_GetDispHActiveTime(lpHActiveTime, ulDisp1FIFO, ulHWCI_Size, ulDisp1Width, 
                          ulDisp1BPP, ulMemClock, ulMemIPC);

  ulHWCI_Size = HWCUR2_SIZE + HWICON2_SIZE;
  vMBW_GetDispHActiveTime(&sTemp, ulDisp2FIFO, ulHWCI_Size, ulDisp2Width, 
                          ulDisp2BPP, ulMemClock, ulMemIPC);

  vAddFixed(lpHActiveTime, &sTemp);

//  vMBW_AvailHActiveTime(hGCO, &sHTotalTime, &sModeInfo);

  vMBW_GetVidHActiveTime(&sTemp, ulVidFlush, ulVidWidth, 
                         &sHTotalTime, ulMemClock, ulMemIPC);

  vAddFixed(lpHActiveTime, &sTemp);

  vMBW_GetHFBHActiveTime(&sTemp, ulHFBFIFO, ulHFBWidth, ulDisp2BPP, ulMemClock, 
                         ulMemIPC);

  vAddFixed(lpHActiveTime, &sTemp);

  vMBW_GetSubHActiveTime(&sTemp, ulSubBurst, ulSubWidth, ulDisp2BPP, ulMemClock,
                         ulMemIPC);

  vAddFixed(lpHActiveTime, &sTemp);

  vMBW_GetSclHActive(&sTemp, ulSclBurst, ulSclMode, ulSclWidth, ulDisp2BPP, 
                     ulMemClock, ulMemIPC);

  vAddFixed(lpHActiveTime, &sTemp);

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



/****************************Public*Routine*******************************\
*
* ULONG MBW_VGATextReqHActiveTime()
*
* Calculate VGA Text Required Horizontal Active Time in Micro Second
* 
* Note: lpHActiveTime with output fixed-point value
*       function return ULONG value
*       
\**************************************************************************/

ULONG MBW_VGATextReqHActiveTime(HGCO hGCO, LPFIXEDPOINT lpHActiveTime, LPDEVMODE_INFO lpModeInfo, 
                                ULONG ulMemClock, ULONG ulMemIPC, LPFIXEDPOINT lpPixelClock)
{
  LPHW_RAGEPROCRTC_EXTENSION lpHwCrtc = (LPHW_RAGEPROCRTC_EXTENSION)hGCO;
  FIXEDPOINT   sEff;
  FIXEDPOINT   sPixClk;
  FIXEDPOINT   sOverhead;
  FIXEDPOINT   sTemp;
  ULONG        ulDispFIFO  = 32;   // hard code

#define HWICON_SIZE 4

  sPixClk = *lpPixelClock;

  sOverhead.Integral = 12;
  sOverhead.Fractional = 0;

  sTemp.Integral = ulMemClock;
  sTemp.Fractional = 0;

  // (2 / MEM_CLK) + (10 / MEM_CLK)
  vDivideFixed(&sOverhead, &sTemp);

  sTemp.Integral = 5;
  sTemp.Fractional = 0;
  // (5 / PIX_CLK)
  vDivideFixed(&sTemp, &sPixClk);

  // 5 PCLK delay for CDE_XCLK + 2 XCLK delay until daddrgen
  // state machine starts + 10 XCLK states
  // (5 / PIX_CLK) + (2 / MEM_CLK) + (10 / MEM_CLK)
  vAddFixed(&sOverhead, &sTemp);

  // assume 640*480 worst case mode - that is 80 characters per line
  // (1 / CHARACTER_EFF) * 80
  vMBW_GetBurstEff(&sEff, ulDispFIFO, ulMemIPC);
  lpHActiveTime->Integral = 80;
  lpHActiveTime->Fractional = 0;
  vMultiplyFixed(lpHActiveTime, &sEff);

  // (1 / FONT_EFF) * 80
  vMBW_GetBurstEff(&sEff, 1, ulMemIPC);
  sTemp.Integral = 80;
  sTemp.Fractional = 0;
  vMultiplyFixed(&sTemp, &sEff);

  vAddFixed(lpHActiveTime, &sTemp);

  // (1 / HWICON_EFF) * HWICON_SIZE
  vMBW_GetBurstEff(&sEff, HWICON_SIZE, ulMemIPC);
  sTemp.Integral = HWICON_SIZE;
  sTemp.Fractional = 0;
  vMultiplyFixed(&sTemp, &sEff);

  vAddFixed(lpHActiveTime, &sTemp);

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

  // Add OVERHEAD
  vAddFixed(lpHActiveTime, &sOverhead);

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



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

VOID vMBW_AvailHBlankTime(HGCO hGCO, LPFIXEDPOINT lpHBlankTime, LPDEVMODE_INFO lpModeInfo, 
                          LPFIXEDPOINT lpPixelClock, ULONG ulHBlankFactor)
{
   FIXEDPOINT                 sTemp;

  lpHBlankTime->Integral = 0;
  lpHBlankTime->Fractional = ulHBlankFactor;

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

  vMultiplyFixed(lpHBlankTime, &sTemp);

  vDivideFixed(lpHBlankTime, lpPixelClock);
}



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

VOID vMBW_GetDispHBlankTime(LPFIXEDPOINT lpHBlankTime, ULONG ulDispFIFO, 
                            ULONG ulHWCI_Size, ULONG ulMemClock, 
                            ULONG ulMemIPC)
{
  FIXEDPOINT   sDispEff;
  FIXEDPOINT   sHWCIEff;
  FIXEDPOINT   sTemp;

  vMBW_GetHBlankBurstEff(&sDispEff, ulDispFIFO, ulMemIPC);

  vMBW_GetHBlankBurstEff(&sHWCIEff, ulHWCI_Size, ulMemIPC);

  // (1/DISP_EFF) * DISP_FIFO
  *lpHBlankTime = sDispEff;
  sTemp.Integral = MBW_DISP_FIFO;
  sTemp.Fractional = 0;
  vMultiplyFixed(lpHBlankTime, &sTemp);

  // (1/HWCI_EFF) * HWCI_SIZE
  sTemp.Integral = ulHWCI_Size;
  sTemp.Fractional = 0;
  vMultiplyFixed(&sHWCIEff, &sTemp);

  // (1/DISP_EFF) * DISP_FIFO + (1/HWCI_EFF) * HWCI_SIZE
  vAddFixed(lpHBlankTime, &sHWCIEff);

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



/****************************Private*Routine*******************************\
*
* vMBW_GetVideoHBlankTime()
*
* Calculate Horizontal Video Blank Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetVideoHBlankTime(LPFIXEDPOINT lpHBlankTime, ULONG ulVidFlush, 
                             LPFIXEDPOINT lpAvailHBlankTime, ULONG ulMemClock, 
                             ULONG ulVidWid, ULONG ulMemIPC)
{
  FIXEDPOINT   sMemBw;
  FIXEDPOINT   sTemp;

  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);

  *lpHBlankTime = *lpAvailHBlankTime;

  // VID_PORTION * HBLANK_TIME
  vMultiplyFixed(lpHBlankTime, &sTemp);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetHBlankTime()
*
* Calculate Blank Time in Micro Second for Half Frame Buffer
* and Subpicture 
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetHBlankTime(LPFIXEDPOINT lpHBlankTime, ULONG ulBurstSize, 
                        ULONG ulMemClock, ULONG ulMemIPC)
{
  FIXEDPOINT   sEff;
  FIXEDPOINT   sTemp;

  vMBW_GetBurstEff(&sEff, ulBurstSize, ulMemIPC);

  *lpHBlankTime = sEff;

  sTemp.Integral = ulBurstSize;
  sTemp.Fractional = 0;
  vMultiplyFixed(lpHBlankTime, &sTemp);

  sTemp.Integral = ulMemClock;
  sTemp.Fractional = 0;
  vDivideFixed(lpHBlankTime, &sTemp);
}

/****************************Private*Routine*******************************\
*
* vMBW_GetHFBHBlankTime()
*
* Calculate Horizontal Half Frame Buffer Blank Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetHFBHBlankTime(LPFIXEDPOINT lpHBlankTime, ULONG ulHFBFIFO, ULONG ulMemClock,
                           ULONG ulMemIPC)
{
  vMBW_GetHBlankTime(lpHBlankTime, ulHFBFIFO, ulMemClock, ulMemIPC);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetSubHBlankTime()
*
* Calculate Horizontal Subpicture Blank Time in Micro Second
* 
* Note: 
*       
*
\**************************************************************************/

VOID vMBW_GetSubHBlankTime(LPFIXEDPOINT lpHBlankTime, ULONG ulSubBurst, ULONG ulMemClock, 
                           ULONG ulMemIPC)
{
  vMBW_GetHBlankTime(lpHBlankTime, ulSubBurst, ulMemClock, ulMemIPC);
}



/****************************Private*Routine*******************************\
*
* vMBW_GetSclHBlankTime()
*
* Calculate Horizontal Subpicture Blank Time in Micro Second
* 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品午夜一区二区| 日韩精品一区二区三区swag| 日韩欧美综合一区| 国产精品美女久久久久久| 午夜免费久久看| 成人精品国产一区二区4080| 日韩一区二区三区电影在线观看| 中文字幕日韩一区| 国产综合成人久久大片91| 欧美喷潮久久久xxxxx| 一区在线观看视频| 大陆成人av片| 精品国产乱子伦一区| 天堂av在线一区| 欧美偷拍一区二区| 亚洲精品视频在线观看网站| 岛国一区二区三区| 国产亚洲欧美一级| 国产成人综合网站| 26uuuu精品一区二区| 欧美aaaaaa午夜精品| 678五月天丁香亚洲综合网| 亚洲一卡二卡三卡四卡无卡久久| 99麻豆久久久国产精品免费| 国产精品免费人成网站| 国产一区二区伦理| 欧美激情自拍偷拍| 粉嫩蜜臀av国产精品网站| 久久一区二区视频| 国产一区二区三区av电影| 久久麻豆一区二区| 国产精品一二二区| 国产日韩影视精品| caoporen国产精品视频| 中文字幕在线一区二区三区| 97成人超碰视| 亚洲伊人伊色伊影伊综合网| 欧美亚洲图片小说| 日韩精品一区第一页| 日韩一区二区视频| 精品一区二区三区av| 2021中文字幕一区亚洲| 国产精品一二三四区| 国产精品国产a级| 色妞www精品视频| 五月天视频一区| 日韩亚洲欧美在线| 国产91色综合久久免费分享| 中文字幕一区二区三区在线播放| 色综合久久天天| 视频一区二区欧美| 久久精品亚洲精品国产欧美kt∨| 豆国产96在线|亚洲| 国产精品卡一卡二卡三| 欧美视频在线不卡| 久久爱www久久做| 中文字幕一区二区三区精华液| 91福利视频网站| 日韩av中文字幕一区二区三区 | 日韩精品一区二区三区在线| 久久精品国产第一区二区三区| 久久久久久久久蜜桃| 99国产精品久久久久久久久久 | 国产高清精品网站| 亚洲综合视频在线| 日韩欧美国产午夜精品| 成人av在线看| 麻豆成人久久精品二区三区红| 国产精品理伦片| 欧美一区二区视频免费观看| 99在线热播精品免费| 日本不卡一区二区| 日韩久久一区二区| 精品国精品国产尤物美女| 色综合久久久久久久| 激情综合网天天干| 五月综合激情网| 亚洲欧美怡红院| 久久综合资源网| 欧美伦理视频网站| 色综合久久中文综合久久牛| 精品综合免费视频观看| 亚洲精品五月天| 国产精品毛片大码女人| 日韩一区二区在线播放| 日本精品裸体写真集在线观看| 九色|91porny| 午夜精品久久一牛影视| 自拍偷拍亚洲综合| 国产亚洲精品久| 日韩欧美电影在线| 在线观看三级视频欧美| 99久久婷婷国产精品综合| 激情六月婷婷久久| 美女视频黄 久久| 三级久久三级久久久| 一区二区三区不卡在线观看 | 日本不卡视频一二三区| 亚洲黄色小说网站| 国产精品久久久久久久久果冻传媒 | 午夜精品久久久久久久久久久 | 欧美色图片你懂的| 色狠狠一区二区三区香蕉| www.成人网.com| 国产91丝袜在线观看| 国产成人av影院| 国产成人a级片| 国产成人午夜电影网| 国产成人在线视频播放| 国产精品99精品久久免费| 韩国av一区二区三区四区| 裸体在线国模精品偷拍| 麻豆成人av在线| 国内久久婷婷综合| 国产成人免费视频网站高清观看视频| 久久99国产精品久久99果冻传媒| 男人的天堂久久精品| 麻豆中文一区二区| 国产精品一区二区三区网站| 国产精品69久久久久水密桃| 成人一区二区三区| 国产不卡一区视频| 91网站黄www| 欧美亚洲一区二区在线| 6080亚洲精品一区二区| 欧美大片一区二区| 国产女人水真多18毛片18精品视频 | 精品国产精品一区二区夜夜嗨| 欧美成人伊人久久综合网| 欧美v日韩v国产v| 欧美国产欧美综合| 亚洲天堂福利av| 香蕉成人伊视频在线观看| 美女视频网站黄色亚洲| 国产成人日日夜夜| 97久久精品人人做人人爽50路| 欧美中文字幕亚洲一区二区va在线 | 成人不卡免费av| 在线观看国产日韩| 欧美一区二区三区播放老司机| 337p粉嫩大胆色噜噜噜噜亚洲 | av福利精品导航| 精品视频全国免费看| 久久先锋影音av鲁色资源| 亚洲丝袜自拍清纯另类| 视频一区欧美精品| 不卡一卡二卡三乱码免费网站| 欧美视频一区在线| 国产清纯白嫩初高生在线观看91| 亚洲免费大片在线观看| 蜜臀久久99精品久久久画质超高清| 国产成人日日夜夜| 欧美乱熟臀69xxxxxx| 国产精品美女久久久久高潮| 日韩国产精品久久久久久亚洲| 国产99一区视频免费| 4438x亚洲最大成人网| 国产精品毛片大码女人| 日av在线不卡| 在线观看成人免费视频| 国产欧美日韩不卡免费| 午夜视频在线观看一区二区| 成人深夜在线观看| 日韩一区二区电影| 亚洲一区二区偷拍精品| 不卡一区二区在线| 精品88久久久久88久久久| 亚洲高清视频中文字幕| 成人av电影在线观看| 日韩欧美美女一区二区三区| 尤物在线观看一区| av一本久道久久综合久久鬼色| 精品少妇一区二区三区免费观看| 亚洲综合色网站| 91在线无精精品入口| 欧美国产日韩精品免费观看| 韩国午夜理伦三级不卡影院| 欧美日韩国产小视频| 亚洲视频 欧洲视频| 成人综合在线网站| 久久视频一区二区| 老司机精品视频在线| 日韩欧美亚洲国产另类| 丝袜美腿高跟呻吟高潮一区| 欧美在线制服丝袜| 亚洲欧美另类久久久精品| 99视频精品全部免费在线| 中文字幕欧美三区| 成人动漫在线一区| 国产精品久久久久aaaa樱花| 粉嫩一区二区三区在线看| 久久精品一区二区三区不卡 | 国产色爱av资源综合区| 麻豆成人免费电影| 日韩欧美国产一区二区在线播放| 日韩成人伦理电影在线观看| 日韩一区二区中文字幕| 久久丁香综合五月国产三级网站| 日韩女同互慰一区二区| 精品亚洲porn|