前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UGL之透明位图

UGL之透明位图

作者头像
Taishan3721
发布2020-10-19 09:39:32
6720
发布2020-10-19 09:39:32
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

为了更好的视觉效果,WindML还提供了一种透明位图(Transparent Bitmap)。

代码语言:javascript
复制

typedef struct ugl_bmap_header
    {
    UGL_UINT16 type;
    UGL_UINT16 width;
    UGL_UINT16 height;
    UGL_UINT16 maxWidth;
    UGL_UINT16 maxHeight;
    void      *extension; 
    } UGL_BMAP_HEADER;
typedef UGL_BMAP_HEADER UGL_TDDB;
typedef UGL_TDDB       *UGL_TDDB_ID;

UGL_TDDB_ID uglTransBitmapCreate
    (
    UGL_DEVICE_ID          devId, 
    UGL_DIB               *pDib,
    UGL_MDIB              *pMdib,
    UGL_DIB_CREATE_MODE    createMode,
    UGL_UINT32             initValue,
    UGL_DEVICE_MEM_POOL_ID poolId
    );
UGL_TDDB_ID uglTransBitmapCreateFromDDB
    (
    UGL_DEVICE_ID          devId, 
    UGL_DDB_ID             ddbId, 
    UGL_MDDB_ID            mDdbId,
    UGL_DEVICE_MEM_POOL_ID poolId
    );
UGL_STATUS uglTransBitmapDestroy
    (
    UGL_DEVICE_ID devId, 
    UGL_TDDB_ID   tDdbId
    );
UGL_STATUS uglTransBitmapRead
    (
    UGL_GC_ID   gc, 
    UGL_TDDB_ID tDdbId, 
    UGL_POS     srcLeft, 
    UGL_POS     srcTop,
    UGL_POS     srcRight, 
    UGL_POS     srcBottom,
    UGL_DIB    *pDib,  
    UGL_MDIB   *pMdib, 
    UGL_POS     dstX, 
    UGL_POS     dstY
    );
UGL_STATUS uglTransBitmapWrite
    (
    UGL_GC_ID   gc,
    UGL_DIB    *pDib,
    UGL_MDIB   *pMdib, 
    UGL_POS     srcLeft, 
    UGL_POS     srcTop,
    UGL_POS     srcRight, 
    UGL_POS     srcBottom,
    UGL_TDDB_ID tDdbId, 
    UGL_POS     dstX, 
    UGL_POS     dstY
    );
UGL_STATUS uglBitmapBlt
    (
    UGL_GC_ID     gc,
    UGL_BITMAP_ID srcBitmapId,
    UGL_POS       srcLeft,
    UGL_POS       srcTop,
    UGL_POS       srcRight,
    UGL_POS       srcBottom,
    UGL_DDB_ID    dstBitmapId,
    UGL_POS       dstX,
    UGL_POS       dstY
    );
UGL_STATUS uglBitmapStretchBlt 
    (
    UGL_GC_ID     gc,
    UGL_BITMAP_ID srcBitmapId,
    UGL_POS       srcLeft,
    UGL_POS       srcTop,
    UGL_POS       srcRight,
    UGL_POS       srcBottom,
    UGL_DDB_ID    dstBitmapId,
    UGL_POS       dstLeft,
    UGL_POS       dstTop,
    UGL_POS       dstRight,
    UGL_POS       dstBottom
    );

这种位图的主体图案由标准位图来定义;而需要透明显示的区域,由单色位图指定。使用uglBitmapBlt()进行绘制时,单色位图指示为1的区域表示绘制,指示为0的区域表示不绘制,也就是透明了。而使用uglBitmapStretchBlt()进行拉伸时,透明区域的处理方式是不一样的。先看看效果图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档