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

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

?? hwblt.cpp

?? 6410BSP3
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
                    SWAP(prclDst->left, prclDst->right, LONG);

                    /// Disallocate Scratch Surface
                    delete ScratchSurf;

                    RETAILMSG(DISP_ZONE_TEMP, (TEXT("BitBlt X-axis flip: R:%d\r\n"),pBltParms->pDst->Rotate()));

                    return TRUE;
                }
                RotateRectl(pBltParms->prclDst);
            }
            else    //< DMDO_180
            {
                RotateRectlBack(prclDst);
                /// if screen rotation is not DMDO_0. we need to bitblt once more. and use scratch memory
                if(prclDst->right < prclDst->left)
                {
                    RotateRectl(prclDst);
                    RETAILMSG(DISP_ZONE_TEMP, (TEXT("BitBlt Y-axis flip: R:%d\r\n"),pBltParms->pDst->Rotate()));

                    /// Allocation Scratch Framebuffer for Flip Operation.
                    DDGPESurf *ScratchSurf;

                    AllocSurface(&ScratchSurf, dwSrcWidth, dwSrcHeight, pBltParms->pDst->Format(), EGPEFormatToEDDGPEPixelFormat[pBltParms->pDst->Format()], GPE_REQUIRE_VIDEO_MEMORY);
                    if(ScratchSurf == NULL)
                    {
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("Scratch Surface Allocation is failed. %d\n"), __LINE__));
#if 0//USE_PACSURF, To increase video memory is better than to use system memory as Video Surface
                        RETAILMSG(TRUE,(TEXT("try to allocate surface usign PA Surface\r\n")));
                        PACSurf *ScratchSurf;
#endif
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("Maybe There's no sufficient video memory. please increase video memory\r\n")));
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("try to redirect to SW Emulated Bitblt\r\n")));
                        return FALSE;
                    }

                    /// Set Scratch Surface Information
                    descScratch.dwBaseaddr = (m_VideoMemoryPhysicalBase + ScratchSurf->OffsetInVideoMemory());
                    descScratch.dwColorMode = GetHWColorFormat(pBltParms->pDst);
                    descScratch.dwHoriRes = dwSrcWidth;
                    descScratch.dwVertRes = dwSrcHeight;

                    /// Set Destination Surface to Scratch Surface
                    m_oG2D->SetDstSurface(&descScratch);
                    /// Set Destination Clipping window Rect
                    m_oG2D->SetClipWindow(&t_rect);

                    /// Y-axis mirror case. left-right inversion
                    RETAILMSG(DISP_ZONE_TEMP,(TEXT("(%d,%d)~(%d,%d) %d,%d\n"),pBltParms->prclDst->left,pBltParms->prclDst->top,pBltParms->prclDst->right,pBltParms->prclDst->bottom, iRotate, m_oG2D->GetRotType(iRotate)));
                    EnterCriticalSection(&m_cs2D);
                    m_oG2D->FlipBlt( prclSrc, &t_rect,  FLIP_Y );
                    LeaveCriticalSection(&m_cs2D);

                    /// Set Source Address to Scratch Memory
                    m_oG2D->SetSrcSurface(&descScratch);
                    /// Set Destination Surface to real Framebuffer Surface
                    m_oG2D->SetDstSurface(pdescDstSurface);

                    /// Swap left, right coordinate
                    SWAP(prclDst->right, prclDst->left, LONG);
                    /// Set Destination Clipping window Rect
                    if(pBltParms->prclClip)
                    {
                        m_oG2D->SetClipWindow(pBltParms->prclClip);
                    }
                    else
                    {
                        m_oG2D->SetClipWindow(prclDst);
                    }

                    /// Set Y-axis flip flag
                    EnterCriticalSection(&m_cs2D);
                    m_oG2D->BitBlt( &t_rect, prclDst,  m_oG2D->GetRotType(iRotate) );
                    LeaveCriticalSection(&m_cs2D);
                    /// recover left, right coordinate
                    SWAP(prclDst->right, prclDst->left, LONG);

                    /// Disallocate Scratch Surface
                    delete ScratchSurf;

                    return TRUE;

                }
                else if(prclDst->bottom < prclDst->top)
                {
                    RotateRectl(prclDst);
                    RETAILMSG(DISP_ZONE_TEMP, (TEXT("BitBlt X-axis flip: R:%d\r\n"),pBltParms->pDst->Rotate()));
                    /// Allocation Scratch Framebuffer for Flip Operation.
                    DDGPESurf *ScratchSurf;

                    AllocSurface(&ScratchSurf, dwSrcWidth, dwSrcHeight, pBltParms->pDst->Format(), EGPEFormatToEDDGPEPixelFormat[pBltParms->pDst->Format()], GPE_REQUIRE_VIDEO_MEMORY);
                    if(ScratchSurf == NULL)
                    {
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("Scratch Surface Allocation is failed. %d\n"), __LINE__));
#if 0//USE_PACSURF, To increase video memory is better than to use system memory as Video Surface
                        RETAILMSG(TRUE,(TEXT("try to allocate surface usign PA Surface\r\n")));
                        PACSurf *ScratchSurf;
#endif
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("Maybe There's no sufficient video memory. please increase video memory\r\n")));
                        RETAILMSG(DISP_ZONE_WARNING,(TEXT("try to redirect to SW Emulated Bitblt\r\n")));
                        return FALSE;
                    }

                    /// Set Scratch Surface Information
                    descScratch.dwBaseaddr = (m_VideoMemoryPhysicalBase + ScratchSurf->OffsetInVideoMemory());
                    descScratch.dwColorMode = GetHWColorFormat(pBltParms->pDst);
                    descScratch.dwHoriRes = dwSrcWidth;
                    descScratch.dwVertRes = dwSrcHeight;

                    /// Set Destination Surface to Scratch Surface
                    m_oG2D->SetDstSurface(&descScratch);
                    /// Set Destination Clipping window Rect
                    m_oG2D->SetClipWindow(&t_rect);

                    /// X-axis mirror case. top-down inversion
                    RETAILMSG(DISP_ZONE_TEMP,(TEXT("(%d,%d)~(%d,%d) %d,%d\n"),pBltParms->prclDst->left,pBltParms->prclDst->top,pBltParms->prclDst->right,pBltParms->prclDst->bottom, iRotate, m_oG2D->GetRotType(iRotate)));
                    EnterCriticalSection(&m_cs2D);
                    m_oG2D->FlipBlt( prclSrc, &t_rect,  FLIP_X );
                    LeaveCriticalSection(&m_cs2D);

                    /// Set Source Address to Scratch Memory
                    m_oG2D->SetSrcSurface(&descScratch);
                    /// Set Destination Surface to real Framebuffer Surface
                    m_oG2D->SetDstSurface(pdescDstSurface);

                    /// Swap left, right coordinate
                    SWAP(prclDst->top, prclDst->bottom, LONG);
                    /// Set Destination Clipping window Rect
                    if(pBltParms->prclClip)
                    {
                        m_oG2D->SetClipWindow(pBltParms->prclClip);
                    }
                    else
                    {
                        m_oG2D->SetClipWindow(prclDst);
                    }
                    /// Set Y-axis flip flag
                    EnterCriticalSection(&m_cs2D);
                    m_oG2D->BitBlt( &t_rect, prclDst,  m_oG2D->GetRotType(iRotate) );
                    LeaveCriticalSection(&m_cs2D);
                    /// recover left, right coordinate
                    SWAP(prclDst->top, prclDst->bottom, LONG);

                    /// Disallocate Scratch Surface
                    delete ScratchSurf;

                    return TRUE;
                }
                RotateRectl(prclDst);
            }
        }
        RETAILMSG(DISP_ZONE_TEMP,(TEXT("SimpleBitBlt\n")));
        RotateRectl(prclDst);
        /// Set Destination Surface to real Framebuffer Surface
        m_oG2D->SetDstSurface(pdescDstSurface);
        /// Set Destination Clipping window Rect
        if(pBltParms->prclClip)
        {
            m_oG2D->SetClipWindow(pBltParms->prclClip);
        }
        else
        {
            m_oG2D->SetClipWindow(prclDst);
        }

        if(pBltParms->bltFlags & BLT_ALPHABLEND)
            DumpBltParms(pBltParms);

        EnterCriticalSection(&m_cs2D);
        m_oG2D->BitBlt( prclSrc, prclDst,  m_oG2D->GetRotType(iRotate) );
        LeaveCriticalSection(&m_cs2D);

    }
    return TRUE;
}

/**
*   @fn     int S3C6410Disp::GetRelativeDegree(int SourceDegree, int DestinationDegree)
*   @brief  Get Reletive Rotation Degree From Source Degree and Destination Degreee
*   @param  pBltParms Blit Parameter Information Structure
*   @note   DMDO_0 = 0, DMDO_90 = 1, DMDO_180 = 2, DMDO_270 = 4
*/
int S3C6410Disp::GetRelativeDegree(int SrcDegree, int DstDegree)
{
    switch(SrcDegree)    
    {
    default:
    case DMDO_0:
        switch(DstDegree)
        {
        default:
        case DMDO_0:    return DMDO_0;
        case DMDO_90:   return DMDO_90;
        case DMDO_180:  return DMDO_180;
        case DMDO_270:  return DMDO_270;
        }
    case DMDO_90:
        switch(DstDegree)
        {
        default:
        case DMDO_0:    return DMDO_270;
        case DMDO_90:   return DMDO_0;
        case DMDO_180:  return DMDO_90;
        case DMDO_270:  return DMDO_180;
        }
    case DMDO_180:
        switch(DstDegree)
        {
        default:
        case DMDO_0:    return DMDO_180;
        case DMDO_90:   return DMDO_270;
        case DMDO_180:  return DMDO_0;
        case DMDO_270:  return DMDO_90;
        }
    case DMDO_270:
        switch(DstDegree)
        {
        default:
        case DMDO_0:    return DMDO_90;
        case DMDO_90:   return DMDO_180;
        case DMDO_180:  return DMDO_270;
        case DMDO_270:  return DMDO_0;
        }
    }
}

void S3C6410Disp::DumpBltParms(GPEBltParms *pBltParms)
{
    if(pBltParms->pSrc)
    {
    RETAILMSG(DISP_ZONE_BLT_LO,(TEXT("Src:0x%x SrcB 0x%x, Surf(W:%d,H:%d,BPP:%d,STRIDE:%d), Screen(W:%d,H:%d), rect: (%d,%d)~(%d,%d), R:%d\r\n"), 
        pBltParms->pSrc,
        pBltParms->pSrc->Buffer(),
        pBltParms->pSrc->Width(),
        pBltParms->pSrc->Height(),
        EGPEFormatToBpp[pBltParms->pSrc->Format()],
        pBltParms->pSrc->Stride(),
        pBltParms->pSrc->ScreenWidth(),
        pBltParms->pSrc->ScreenHeight(),
        pBltParms->prclSrc->left,
        pBltParms->prclSrc->top,
        pBltParms->prclSrc->right,
        pBltParms->prclSrc->bottom,
        pBltParms->pSrc->Rotate()
        ));
    }
    if(pBltParms->pDst)
    {
    RETAILMSG(DISP_ZONE_BLT_LO,(TEXT("Dst:0x%x DstB 0x%x,  Surf(W:%d,H:%d,BPP:%d,STRIDE:%d), Screen(W:%d,H:%d), rect: (%d,%d)~(%d,%d), R:%d\r\n"), 
        pBltParms->pDst,
        pBltParms->pDst->Buffer(),
        pBltParms->pDst->Width(),
        pBltParms->pDst->Height(),
        EGPEFormatToBpp[pBltParms->pDst->Format()],
        pBltParms->pDst->Stride(),
        pBltParms->pDst->ScreenWidth(),
        pBltParms->pDst->ScreenHeight(),
        pBltParms->prclDst->left,
        pBltParms->prclDst->top,
        pBltParms->prclDst->right,
        pBltParms->prclDst->bottom,
        pBltParms->pDst->Rotate()
        ));
    }
    if(pBltParms->prclClip)
    {
    RETAILMSG(DISP_ZONE_BLT_LO,(TEXT("ClipRegion (%d,%d)~(%d,%d)\r\n"), 
        pBltParms->prclClip->left,
        pBltParms->prclClip->top,
        pBltParms->prclClip->right,
        pBltParms->prclClip->bottom
        ));                                    
    }    
    RETAILMSG(DISP_ZONE_BLT_LO, (TEXT("ROP : 0x%0x, iMode:%d\r\n"), pBltParms->rop4, pBltParms->iMode));
    RETAILMSG(DISP_ZONE_BLT_LO, (TEXT("BlendFunction : Op(%d), Flag(%d),SourceConstantAlpha(%d),AlphaFormat(%d)\r\n"),
        pBltParms->blendFunction.BlendOp,
        pBltParms->blendFunction.BlendFlags, 
        pBltParms->blendFunction.SourceConstantAlpha, pBltParms->blendFunction.AlphaFormat));    
    RETAILMSG(DISP_ZONE_BLT_LO, (TEXT("xPositive : %d, yPositive : %d\r\n"),pBltParms->xPositive, pBltParms->yPositive));
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频第二页| 亚洲一区二区精品久久av| 国产在线精品免费| 欧美成人精品二区三区99精品| 蜜桃视频免费观看一区| 久久久精品黄色| 99视频一区二区| 一区二区三区精品在线观看| 欧美日韩国产综合一区二区| 免费高清视频精品| 欧美激情中文不卡| 在线免费观看成人短视频| 日韩中文欧美在线| 久久久久国产成人精品亚洲午夜| 成人激情小说乱人伦| 亚洲精品国产a久久久久久 | 欧美精品xxxxbbbb| 亚洲精品国产精品乱码不99| 69成人精品免费视频| 国产乱国产乱300精品| 一色桃子久久精品亚洲| 欧美人xxxx| 国产乱码字幕精品高清av| 亚洲视频一区二区在线| 91精品国产综合久久久久| 国产成人精品免费一区二区| 亚洲第一福利视频在线| 精品国产伦一区二区三区免费| 成人黄动漫网站免费app| 亚洲gay无套男同| 久久久久久久久久久久电影| 色哟哟一区二区| 国产精品影视在线观看| 一区二区三区四区在线| 欧美精品一区二区久久久| 一本色道久久综合亚洲精品按摩| 捆绑调教一区二区三区| 亚洲伦理在线精品| 国产欧美综合在线观看第十页| 欧美三级视频在线播放| 欧美中文一区二区三区| 国产一区二区毛片| 亚洲成人综合网站| 国产精品久久久久久久久免费丝袜| 91精品国产综合久久久久| 色综合色综合色综合色综合色综合| 国产永久精品大片wwwapp| 丝袜国产日韩另类美女| 亚洲情趣在线观看| 国产视频911| 欧美mv日韩mv国产网站app| 欧洲精品一区二区| kk眼镜猥琐国模调教系列一区二区| 久久机这里只有精品| 一区二区三区四区五区视频在线观看| 国产欧美精品一区| 精品欧美一区二区三区精品久久| 欧美专区在线观看一区| 91在线你懂得| 99久久综合99久久综合网站| 国产伦精一区二区三区| 久久电影网站中文字幕| 亚洲第一在线综合网站| 亚洲另类色综合网站| 欧美激情艳妇裸体舞| 久久久蜜桃精品| 精品美女在线播放| 欧美成va人片在线观看| 欧美日韩电影一区| 91.com在线观看| 欧美日本在线播放| 欧美日韩综合不卡| 欧美日韩不卡一区二区| 欧美日韩在线播放一区| 成人黄色电影在线| www.av精品| 一本大道av一区二区在线播放| 一本一本久久a久久精品综合麻豆| 成av人片一区二区| 色婷婷久久综合| 欧美在线综合视频| 欧美女孩性生活视频| 欧美日韩国产系列| 91精品国产免费| 日韩久久久精品| 日本一区免费视频| 亚洲素人一区二区| 一区二区三区欧美日| 亚洲成人免费在线| 麻豆freexxxx性91精品| 国产精品夜夜爽| 99久久免费国产| 在线观看一区不卡| 91精品国产麻豆| 2020国产精品| 日韩毛片在线免费观看| 亚洲韩国精品一区| 精品伊人久久久久7777人| 国产91精品露脸国语对白| 91尤物视频在线观看| 精品视频在线免费| 欧美va在线播放| 中文字幕乱码日本亚洲一区二区 | 亚洲欧美偷拍三级| 午夜影院久久久| 国产麻豆9l精品三级站| 97超碰欧美中文字幕| 欧美日韩aaa| 中国色在线观看另类| 亚洲综合色在线| 久久成人精品无人区| 91在线视频播放| 欧美不卡一区二区三区| 亚洲色图第一区| 蜜臀国产一区二区三区在线播放| 国产成人亚洲综合a∨猫咪| 色婷婷狠狠综合| 欧美成人女星排行榜| 伊人色综合久久天天| 久久99精品久久久久久| 欧美综合亚洲图片综合区| 久久综合九色综合欧美98| 一区二区成人在线| 国产精品亚洲视频| 欧美精品xxxxbbbb| 亚洲视频在线观看一区| 国内精品久久久久影院薰衣草 | gogogo免费视频观看亚洲一| 777午夜精品视频在线播放| 国产精品无码永久免费888| 青青草原综合久久大伊人精品优势| av高清久久久| 26uuu亚洲| 日韩av网站在线观看| 在线观看视频一区| 国产欧美精品一区| 精品一区二区三区在线观看国产| 色综合视频在线观看| 国产色综合久久| 国模冰冰炮一区二区| 欧美精选在线播放| 亚洲人成网站色在线观看| 韩国一区二区三区| 日韩一区二区三区免费看| 一区二区免费在线播放| 白白色 亚洲乱淫| 久久美女高清视频 | 国产精品亚洲午夜一区二区三区 | 丁香桃色午夜亚洲一区二区三区| 欧美一区二区免费观在线| 一区二区三区在线视频播放| 不卡视频免费播放| 中文字幕精品综合| 粉嫩高潮美女一区二区三区| 久久奇米777| 国内久久精品视频| 欧美精品一区二区高清在线观看| 视频一区欧美日韩| 欧美一区二区三区视频在线观看| 亚洲高清免费在线| 欧美性感一区二区三区| 一区二区在线观看不卡| 91在线播放网址| 亚洲免费看黄网站| 色婷婷国产精品综合在线观看| 亚洲免费av在线| 色婷婷久久久亚洲一区二区三区 | 一区二区高清视频在线观看| jlzzjlzz亚洲女人18| 亚洲欧美日韩在线不卡| 色呦呦网站一区| 亚洲va欧美va天堂v国产综合| 欧美福利视频导航| 99精品在线免费| 亚洲女性喷水在线观看一区| 一本久道久久综合中文字幕| 亚洲综合精品自拍| 欧美酷刑日本凌虐凌虐| 日本视频免费一区| wwwwww.欧美系列| 成人精品国产免费网站| 国产精品―色哟哟| 91网站视频在线观看| 亚洲自拍另类综合| 欧美一级久久久| 国产盗摄一区二区| 一区二区三区波多野结衣在线观看| 丁香天五香天堂综合| 日本一区二区三区视频视频| jizz一区二区| 午夜不卡av在线| www国产精品av| 99国产精品久久久久久久久久久| 亚洲综合色噜噜狠狠| 欧美成人精品1314www| 波多野结衣欧美| 日韩在线一二三区| 国产目拍亚洲精品99久久精品| 91麻豆福利精品推荐| 日本免费在线视频不卡一不卡二|