|
大家好,我是做游戏开发的。
先看看君正:
驱动列表
1 存储设备
· NAND Flash驱动, SLC & MLC
· NOR Flash驱动
· SD/MMC卡驱动
2 人机界面
· 音频驱动:包括AC97和I2S
· DirectDraw显示驱动
· 摄相头驱动
· 触摸屏驱动
· 键盘驱动
重官方网站上看,君正的BSP是支持Direct的,但事实上。
我们看到Venus\Common\Csp\Jz4755\Driver\Display\Jz4755lcd\halsurf.cpp中
DWORD WINAPI HalBlt( LPDDHAL_BLTDATA pd )
{
DEBUGENTER( HalBlt );
/*
typedef struct _DDHAL_BLTDATA
{
LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;// dest surface
RECTL rDest; // dest rect
LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; // src surface
RECTL rSrc; // src rect
DWORD dwFlags; // blt flags
DWORD dwROPFlags; // ROP flags (valid for ROPS only)
DDBLTFX bltFX; // blt FX
HRESULT ddRVal; // return value
LPDDHALSURFCB_BLT Blt; // PRIVATE: ptr to callback
} DDHAL_BLTDATA;
*/
//
// if we are still busy, do not blt and return
//
return DDGPEBlt(pd);
}
这个函数是DirectDraw实现硬件Blt的具体实现,在看到DDGPEBlt的实现,在文件Public\common\oak\drivers\display\ddgpe\ddhsurf.cpp中最后一段
pd->ddRVal = g_pGPE->BltExpanded(
pDst,
pSrc,
pPattern,
NULL, // pMask
NULL, // pco
NULL, // pxlo
prclDst,
prclSrc,
solidColor,
bltFlags,
rop4
);
很明显这个g_pGPE->BltExpanded就应该是支持DirectDraw应该实现的函数,其中g_pGPE的实例就是
Venus\Common\Csp\Jz4755\Driver\Display\Jz4755lcd\lcdgpe.h 中的君正实现驱动接口的JZ47LCD类,我们发现在该类中实质并没对BltExpanded
进行硬件加速相关的实现,如过这样,上面实际调用的就是WINCE自带的一个函数实现,这样的说话,跟本没有可能实现DirectDraw的硬件加速。
更甚的是,我们看到JZ47LCD类
#ifdef DDRAW_ENABLE
class JZ47LCD : public DDGPE
#else
class JZ47LCD : public GPE
#endif // DDRAW_ENABLE
{
//---------------------------------------------------------------------------------------------------------
public:
JZ47LCD ();
virtual ~JZ47LCD ();
virtual SCODE SetMode ( int modeNo, HPALETTE *pPalette );
#ifdef DDRAW_ENABLE
virtual SCODE SetMode ( int modeNo, HPALETTE *pPalette, BOOL bChangeGDISurfaceMode );
void GetTicksPerFrame(void);
#endif
#ifdef SHOW_FRAMERATE
void DisplayFrameRate(void);
#endif
virtual SCODE GetModeInfo ( GPEMode *pMode, int modeNo );
。。。。。。。。。。。。。。。。。。。。。。。。
留意其中的#ifdef DDRAW_ENABLE,这是一个打开BSP支持Direct硬件加速的设置,好明显,我们无法在BSP中找到一个对DDRAW_ENABLE的定义。
不知道是不是我在网上找到的BSP是否是最终的BSP,希望大家一起讨论一下怎样完善这个BSP,是能够在WINCE环境下是用JZ4755的图形加速功能。 |
|