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

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

?? ude506.c

?? S1D13506windml下的驅動程序,支持vxworks5.4 支持tornado2.0 windml2.0
?? C
?? 第 1 頁 / 共 3 頁
字號:
    UGL_EPSON_DDB      * pDdb;

    /* First time through, pMode will be NULL */
    if ( pDriver->pMode == UGL_NULL )
       allocate = UGL_TRUE;
    else
       allocate = UGL_FALSE;


    /* check if there is a rotation */ 
    if ( 
         (pEpsonModeTable->Flags) & mfR90 || 
         (pEpsonModeTable->Flags) & mfR270 
       )
       pDevModes->width       = pEpsonModeTable->StridePixels;/* Virtual window width */
    else
       pDevModes->width       = pEpsonModeTable->Width;

    pDevModes->height      = pEpsonModeTable->Height;
    pDevModes->colorDepth  = pEpsonModeTable->Bpp;
    pDevModes->refreshRate = pEpsonModeTable->Frequency;

    if ( ( pEpsonModeTable->Flags ) & mfLCD )
       pDevModes->monitorType = UGL_MODE_FLAT_PANEL;
    else
       pDevModes->monitorType = UGL_MODE_CRT; /* for all other modes */
    
    pDevModes->flags = UGL_MODE_DIRECT_COLOR;

    index = uglGenericModeFind( modes, pMode, NELEMENTS(modes) );

    if ( index > -1 )
       pDriver->pMode = &modes[0];

    else
	return( UGL_STATUS_ERROR );


    /* map frame buffer address */
     pGenDriver->fbAddress = (UGL_UINT8 *) ( pciBaseAddress + FRAME_BUFFER_OFFSET );

    /* initialize registers */
    uglEpsonSetRegs();


    /* Create pageZero (mandatory) */
    if ( allocate == UGL_TRUE )
    {
	pDriver->pPageZero       = (UGL_PAGE *)      UGL_CALLOC(1, sizeof(UGL_PAGE));
	pDdb                     = (UGL_EPSON_DDB *) UGL_CALLOC(1, sizeof(UGL_EPSON_DDB));
	pDriver->pPageZero->pDdb = (UGL_DDB *)       pDdb;
    }

    pDriver->pPageZero->pDdb->height                        = pDevModes->height;
    pDriver->pPageZero->pDdb->width                         = pDevModes->width;
    pDriver->pPageZero->pDdb->type                          = UGL_DDB_TYPE;
    pGenDriver->pVisiblePage                                = pDriver->pPageZero;
    pGenDriver->pDrawPage                                   = pDriver->pPageZero;
    ((UGL_GEN_DDB   *)pDriver->pPageZero->pDdb)->stride     = pDevModes->width;
    ((UGL_GEN_DDB   *)pDriver->pPageZero->pDdb)->colorDepth = pDevModes->colorDepth;
    ((UGL_EPSON_DDB *)pDriver->pPageZero->pDdb)->vram       = UGL_TRUE;
    ((UGL_GEN_DDB   *)pDriver->pPageZero->pDdb)->image      = pGenDriver->fbAddress;

    /* Make sure the graphics processor is ready to go*/
    uglEpsonGpWait(pGenDriver);

    return(UGL_STATUS_OK);
}
    



/* 
 *  uglEpson16BitModeAvailGet - Get the available graphics modes from driver.
 */
UGL_STATUS uglEpson16BitModeAvailGet 
(
    UGL_UGI_DRIVER  *  pDriver, 
    UGL_UINT32      *  pNumModes, 
    const UGL_MODE  ** pModeArray
)
{
    *pModeArray = pDevModes;
    *pNumModes  = NELEMENTS( modes );

    return( UGL_STATUS_OK );
}



UGL_STATUS uglEpsonCursorShow
(
    UGL_DEVICE_ID devId 		
)
{
    UGL_GENERIC_DRIVER * pDriver = (UGL_GENERIC_DRIVER *)devId;
    UGL_GEN_CURSOR_DATA * pCursorData = (UGL_GEN_CURSOR_DATA *)pDriver->pCursorData;
    UGL_GEN_CDDB * pCursorImage;
    UGL_DDB *pVisPage = pDriver->pVisiblePage->pDdb;

    UGL_RECT cursorRect, displayRect, sourceRect, destRect;

    if (pCursorData == UGL_NULL)
        return (UGL_STATUS_ERROR);

    if (!pCursorData->on || !pCursorData->hidden || devId->batchCount > 0)
        return (UGL_STATUS_OK);

    pCursorImage = pCursorData->imageBitmap;
    cursorRect.left = pCursorData->position.x - pCursorImage->hotSpot.x;
    cursorRect.top = pCursorData->position.y - pCursorImage->hotSpot.y;
    cursorRect.right = cursorRect.left + pCursorImage->tddb.header.width - 1;
    cursorRect.bottom = cursorRect.top + pCursorImage->tddb.header.height - 1;

    displayRect.left = displayRect.top = 0;
    displayRect.right = devId->pMode->width - 1;
    displayRect.bottom = devId->pMode->height - 1;

    UGL_RECT_INTERSECT(cursorRect, displayRect, destRect);

    if (UGL_RECT_WIDTH(destRect) <= 0 || UGL_RECT_HEIGHT(destRect) <= 0)
        return (UGL_STATUS_OK);

    UGL_RECT_MOVE_TO(sourceRect, destRect.left - cursorRect.left,
                     destRect.top - cursorRect.top);
    UGL_RECT_SIZE_TO(sourceRect, UGL_RECT_WIDTH(destRect), 
                     UGL_RECT_HEIGHT(destRect));

    UGL_GC_SET (devId, pCursorData->gc);

    uglGeneric16BitBitmapBlt (devId, pVisPage, &destRect, 
                         pCursorData->screenBitmap, (UGL_POINT *)&sourceRect);

    uglGeneric16BitTransBitmapBlt (devId, (UGL_TDDB *)pCursorData->imageBitmap, 
                          &sourceRect, pVisPage, (UGL_POINT *)&destRect);

    pCursorData->hidden = UGL_FALSE;

    return (UGL_STATUS_OK);
}



UGL_STATUS uglEpsonCursorHide
(
    UGL_DEVICE_ID devId, 	
    UGL_RECT * pHideRect
)
{
    UGL_GENERIC_DRIVER * pDriver = (UGL_GENERIC_DRIVER *)devId;
    UGL_GEN_CURSOR_DATA * pCursorData = (UGL_GEN_CURSOR_DATA *)pDriver->pCursorData;
    UGL_GEN_CDDB * pCursorImage;
    UGL_DDB *pVisPage = pDriver->pVisiblePage->pDdb;

    UGL_RECT cursorRect, displayRect, sourceRect, destRect;

    if (pCursorData == UGL_NULL)
        return (UGL_STATUS_ERROR);

    if (pCursorData->hidden || !pCursorData->on)
        return (UGL_STATUS_OK);

    pCursorImage = pCursorData->imageBitmap;
    cursorRect.left = pCursorData->position.x - pCursorImage->hotSpot.x;
    cursorRect.top = pCursorData->position.y - pCursorImage->hotSpot.y;
    cursorRect.right = cursorRect.left + pCursorImage->tddb.header.width - 1;
    cursorRect.bottom = cursorRect.top + pCursorImage->tddb.header.height - 1;

    if (pHideRect != UGL_NULL)
    {
        UGL_RECT_INTERSECT(cursorRect, *pHideRect, destRect);
        if (UGL_RECT_WIDTH (destRect) <= 0 || UGL_RECT_HEIGHT (destRect) <= 0)
            return (UGL_STATUS_OK);
    }

    displayRect.left = displayRect.top = 0;
    displayRect.right = devId->pMode->width - 1;
    displayRect.bottom = devId->pMode->height - 1;

    UGL_RECT_INTERSECT(cursorRect, displayRect, destRect);

    if (UGL_RECT_WIDTH(destRect) <= 0 || UGL_RECT_HEIGHT(destRect) <= 0)
        return (UGL_STATUS_OK);

    UGL_RECT_MOVE_TO(sourceRect, destRect.left - cursorRect.left,
                     destRect.top - cursorRect.top);
    UGL_RECT_SIZE_TO(sourceRect, UGL_RECT_WIDTH(destRect), 
                     UGL_RECT_HEIGHT(destRect));

    UGL_GC_SET (devId, pCursorData->gc);

    uglGeneric16BitBitmapBlt (devId, pCursorData->screenBitmap, &sourceRect, 
                         pVisPage, (UGL_POINT *)&destRect);

    pCursorData->hidden = UGL_TRUE;

    return (UGL_STATUS_OK);
}




UGL_STATUS uglEpsonCursorMove
(
    UGL_DEVICE_ID devId, 		
    UGL_POINT * pCursorPos		
)
{
    UGL_GENERIC_DRIVER * pDriver = (UGL_GENERIC_DRIVER *)devId;
    UGL_GEN_CURSOR_DATA * pCursorData = (UGL_GEN_CURSOR_DATA *)pDriver->pCursorData;
    UGL_DDB_ID tempBitmap;
    UGL_RECT sourceRect;
    UGL_POINT destPoint;
    UGL_DDB *pVisPage = pDriver->pVisiblePage->pDdb;

    if (pCursorData == UGL_NULL)
        return (UGL_STATUS_ERROR);

    if (pCursorData->on && !pCursorData->hidden)
    {
        UGL_GEN_CDDB * pCursorImage = pCursorData->imageBitmap;
	UGL_RECT oldRect, newRect, intersectRect;

	/* Compute the old cursor location */

        oldRect.left = pCursorData->position.x - pCursorImage->hotSpot.x;
        oldRect.top = pCursorData->position.y - pCursorImage->hotSpot.y;
        oldRect.right = oldRect.left + pCursorImage->tddb.header.width - 1;
        oldRect.bottom = oldRect.top + pCursorImage->tddb.header.height - 1;

	/* Compute the new cursor location */

        newRect = oldRect;
	UGL_RECT_MOVE_TO (newRect, pCursorPos->x - pCursorImage->hotSpot.x, 
			  pCursorPos->y - pCursorImage->hotSpot.y);

        UGL_GC_SET (devId, pCursorData->gc);

	/* Move the cursor */

	UGL_RECT_INTERSECT(oldRect, newRect, intersectRect);
	if (UGL_RECT_WIDTH(intersectRect) > 0 && 
	    UGL_RECT_HEIGHT(intersectRect) > 0)
	{
	    /* Copy the display contents at the new cursor location */

	    sourceRect = newRect;
	    destPoint.x = destPoint.y = 0;
	    //(*devId->bitmapBlt) (devId, pVisPage, 
				// &sourceRect, pCursorData->scratchBitmap,
				 //&destPoint);

	    uglGeneric16BitBitmapBlt (devId, pVisPage, 
				 &sourceRect, pCursorData->scratchBitmap,
				 &destPoint);

	    /* 
	     * Update dirty portion (the portion that contains a cursor image)
	     * of 'scratchBitmap' from 'screenBitmap' 
	     */

	    sourceRect.left = intersectRect.left - oldRect.left;
	    sourceRect.top = intersectRect.top - oldRect.top;
	    sourceRect.right = intersectRect.right - oldRect.left;
	    sourceRect.bottom = intersectRect.bottom - oldRect.top;
	    destPoint.x = intersectRect.left - newRect.left;
	    destPoint.y = intersectRect.top - newRect.top;

	    uglGeneric16BitBitmapBlt (devId, pCursorData->screenBitmap, 
                                 &sourceRect, pCursorData->scratchBitmap,
                                 &destPoint);
	    /* Blt cursor image to 'screenBitmap' */

	    sourceRect.left = sourceRect.top = 0;
	    sourceRect.right = UGL_RECT_WIDTH (oldRect) - 1;
	    sourceRect.bottom = UGL_RECT_HEIGHT(oldRect) - 1;
	    destPoint.x = newRect.left - oldRect.left;
	    destPoint.y = newRect.top - oldRect.top;
	    uglGeneric16BitTransBitmapBlt (devId, 
                                      (UGL_TDDB *)pCursorData->imageBitmap, 
                                      &sourceRect, 
                                      (UGL_DDB *)pCursorData->screenBitmap, 
                                      &destPoint);

	    /* Blt cursor to new position on the display */

	    sourceRect.left = sourceRect.top = 0;
	    sourceRect.right = UGL_RECT_WIDTH (newRect) - 1;
	    sourceRect.bottom = UGL_RECT_HEIGHT (newRect) - 1;
	    destPoint.x = newRect.left;
	    destPoint.y = newRect.top;
	    uglGeneric16BitTransBitmapBlt (devId, 
                                      (UGL_TDDB *)pCursorData->imageBitmap, 
                                      &sourceRect, pVisPage, &destPoint);

	    /* Erase cursor from old position on display */

	    sourceRect.left = sourceRect.top = 0;
	    sourceRect.right = UGL_RECT_WIDTH (oldRect) - 1;
	    sourceRect.bottom = UGL_RECT_HEIGHT(oldRect) - 1;
	    destPoint.x = oldRect.left;
	    destPoint.y = oldRect.top;
	    //(*devId->bitmapBlt) (devId, pCursorData->screenBitmap, 
				  //&sourceRect, pVisPage, 
				  //&destPoint);

	    uglGeneric16BitBitmapBlt (devId, pCursorData->screenBitmap, 
				  &sourceRect, pVisPage, 
				  &destPoint);

	    /* Swap 'screenBitmap' and 'scratchBitmap' */

	    tempBitmap = pCursorData->screenBitmap;
	    pCursorData->screenBitmap = pCursorData->scratchBitmap;
	    pCursorData->scratchBitmap = tempBitmap;
	}
	/* No cursor bitmap overlap between old and new locations */
	else
	{
	    /* Copy contents at new cursor location on the screen to
	       the scratch bitmap */
	    sourceRect = newRect;
	    destPoint.x = destPoint.y = 0;

	    uglGeneric16BitBitmapBlt (devId, pVisPage, 
				 &sourceRect, pCursorData->scratchBitmap,
				 &destPoint);

	    /* Blit cursor image to new location on screen */
	    sourceRect.left = sourceRect.top = 0;
	    sourceRect.right = pCursorData->imageBitmap->tddb.header.width - 1;
	    sourceRect.bottom = pCursorData->imageBitmap->tddb.header.height - 1;
	    destPoint.x = newRect.left;
	    destPoint.y = newRect.top;
	    uglGeneric16BitTransBitmapBlt (devId, 
                                      (UGL_TDDB *)pCursorData->imageBitmap, 
                                      &sourceRect, 
                                      pVisPage,
                                      &destPoint);

	    /* Copy contents of screen bitmap to old location on screen to 
	       restore old location on the screen */
	    sourceRect.left = sourceRect.top = 0;
	    sourceRect.right = pCursorData->imageBitmap->tddb.header.width - 1;
	    sourceRect.bottom = pCursorData->imageBitmap->tddb.header.height - 1;
	    destPoint.x = oldRect.left;
	    destPoint.y = oldRect.top;

	    uglGeneric16BitBitmapBlt (devId, pCursorData->screenBitmap, 
				 &sourceRect, pVisPage,
				 &destPoint);


	    /* Copy scratchbitmap to screenbitmap */
	    tempBitmap = pCursorData->screenBitmap;
	    pCursorData->screenBitmap = pCursorData->scratchBitmap;
	    pCursorData->scratchBitmap = tempBitmap;
       }
    }
        
    /* Update curor location */
    pCursorData->position = *pCursorPos;

    return (UGL_STATUS_OK);
}





















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.欧美日韩国产在线| 成人av一区二区三区| 欧美一区日本一区韩国一区| 亚洲成人免费av| 欧美一区二区三区白人| 精品亚洲欧美一区| 一色屋精品亚洲香蕉网站| 色综合色狠狠天天综合色| 石原莉奈在线亚洲二区| 精品国产凹凸成av人网站| 成人av小说网| 日本不卡的三区四区五区| 久久久久久亚洲综合| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲444eee在线观看| 精品久久国产老人久久综合| 成人国产亚洲欧美成人综合网| 亚洲精品免费看| 精品少妇一区二区三区在线播放| 国产91在线|亚洲| 亚洲国产毛片aaaaa无费看| 日韩欧美中文字幕一区| 99久久综合国产精品| 天堂成人免费av电影一区| 国产婷婷色一区二区三区| 在线视频欧美区| 国精产品一区一区三区mba桃花 | 欧美日韩精品系列| 国内精品写真在线观看| 亚洲色图视频免费播放| 欧美一二三区精品| 91麻豆国产在线观看| 美美哒免费高清在线观看视频一区二区| 日韩美一区二区三区| 91亚洲国产成人精品一区二区三 | 亚洲一区电影777| 欧美激情在线看| 欧美一区二区在线视频| 91在线观看成人| 国产一区啦啦啦在线观看| 亚洲成av人片在线| 亚洲欧美一区二区视频| 精品久久一区二区| 欧美色大人视频| av一区二区久久| 国产福利一区在线| 蜜臀av在线播放一区二区三区| 自拍偷拍亚洲综合| 国产清纯白嫩初高生在线观看91 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 色老汉一区二区三区| 国产一区美女在线| 日日摸夜夜添夜夜添精品视频| 综合av第一页| 国产精品久久久久影视| 久久久久九九视频| 91麻豆精品国产91久久久更新时间 | 国产精品久久久久毛片软件| 精品成人免费观看| 日韩一卡二卡三卡四卡| 欧美日韩国产一二三| 在线视频你懂得一区| 91玉足脚交白嫩脚丫在线播放| 成人av网址在线观看| 国产91清纯白嫩初高中在线观看| 国产中文一区二区三区| 精品一区二区三区在线观看| 日本不卡的三区四区五区| 日韩电影在线观看一区| 婷婷中文字幕综合| 亚洲1区2区3区视频| 五月激情综合网| 免费在线观看成人| 久久激情五月激情| 国产一区二区女| 国产精品一品二品| 国产精品88av| 不卡的av中国片| av成人老司机| 久久久国产综合精品女国产盗摄| 波波电影院一区二区三区| 高清国产一区二区三区| 懂色av一区二区夜夜嗨| 成人午夜在线播放| 99精品黄色片免费大全| 色婷婷亚洲精品| 在线观看免费成人| 91精品国产综合久久蜜臀 | 一本色道久久综合亚洲91| 色婷婷久久99综合精品jk白丝 | 成人精品国产福利| 色婷婷亚洲综合| 777久久久精品| 久久精品视频网| 亚洲视频 欧洲视频| 亚洲电影一级片| 国产资源在线一区| caoporen国产精品视频| 欧美午夜理伦三级在线观看| 日韩一区二区免费高清| 久久精品人人做人人爽人人| 亚洲素人一区二区| 婷婷国产在线综合| 国产福利精品一区| 在线一区二区视频| 日韩欧美一二三四区| 国产精品久久久久精k8| 丝袜亚洲另类欧美| 国产**成人网毛片九色| 欧美日韩成人高清| 久久久久一区二区三区四区| 亚洲欧美激情小说另类| 人人爽香蕉精品| 91在线观看污| 欧美大白屁股肥臀xxxxxx| 亚洲日本在线天堂| 精品一区二区免费在线观看| 91同城在线观看| 久久婷婷成人综合色| 一区二区三区四区不卡在线| 麻豆久久一区二区| 91国产成人在线| 国产清纯白嫩初高生在线观看91| 亚洲高清免费在线| www.欧美色图| 久久在线观看免费| 亚洲一区二区三区四区在线免费观看 | 国产精品乱码人人做人人爱 | 国产成人免费在线| 67194成人在线观看| 亚洲天堂福利av| 成人黄色在线看| 国产精品久久久久婷婷二区次| 日本中文字幕一区二区视频| av电影在线观看完整版一区二区| 欧美一区二区三区视频免费| 亚洲欧美综合另类在线卡通| 精品无码三级在线观看视频| 欧美日韩国产bt| 成人免费在线播放视频| 国产99久久久国产精品潘金| 日韩三级免费观看| 亚洲va欧美va人人爽午夜| 色综合久久久久久久久| 欧美国产日韩一二三区| 国产一区二区不卡在线| 欧美高清视频一二三区| 亚洲永久精品国产| 91国产丝袜在线播放| 国产精品久久久一区麻豆最新章节| 蜜桃精品视频在线观看| 在线综合+亚洲+欧美中文字幕| 一区二区三区中文字幕| 91丨porny丨首页| 国产精品高潮呻吟| 成人性生交大片免费看在线播放| 日韩精品一区二区三区在线| 日本欧洲一区二区| 欧美精品久久天天躁| 亚洲一区在线视频| 欧美在线你懂得| 亚洲一区免费在线观看| 欧美性猛交xxxx黑人交| 性做久久久久久免费观看| 欧美日韩综合色| 天天综合天天综合色| 欧美剧情片在线观看| 午夜不卡av在线| 欧美一区二区三区视频免费播放 | 韩国三级电影一区二区| 日韩一级精品视频在线观看| 免费观看久久久4p| wwwwxxxxx欧美| 福利91精品一区二区三区| 国产免费观看久久| 91网站在线观看视频| 亚洲高清久久久| 日韩欧美一区二区久久婷婷| 久久国产尿小便嘘嘘尿| 久久精品水蜜桃av综合天堂| 成人午夜视频在线观看| 国产精品乱人伦中文| 欧美性极品少妇| 精品一区二区三区在线播放视频| 久久精品一区四区| 99久久国产综合色|国产精品| 一区二区三区在线高清| 欧美一区二区精品久久911| 国产一区二区三区四区五区美女| 中文字幕一区二区三区在线播放 | 日韩高清一区二区| ww亚洲ww在线观看国产| 91在线精品一区二区| 亚洲国产成人91porn| 精品黑人一区二区三区久久| 北条麻妃一区二区三区| 日韩高清一区二区| 国产精品卡一卡二卡三| 欧美高清精品3d| www..com久久爱|