UGL之透明位图
时间:2022-07-27
本文章向大家介绍UGL之透明位图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
为了更好的视觉效果,WindML还提供了一种透明位图(Transparent Bitmap)。
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()进行拉伸时,透明区域的处理方式是不一样的。先看看效果图
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 突击并发编程JUC系列-阻塞队列 BlockingQueue
- Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线
- Python安装TensorFlow 2、tf.keras和深度学习模型的定义
- TensorFlow2 keras深度学习:MLP,CNN,RNN
- Flutter ListView 局部刷新数据、ListView点赞收藏
- R语言公交地铁路线网络图实现数据挖掘实战
- R语言风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计
- R语言机器学习实战之多项式回归
- 5000字!带你零距离接触websocket!
- 使用 GitLab CI 和 Docker 自动部署 Spring Boot 应用
- 玩转StyleGAN2模型:教你生成动漫人物
- R语言时间序列数据指数平滑法分析交互式动态可视化
- 再见Excel!最强国产开源在线表格Luckysheet走红GitHub
- R语言广义线性模型索赔频率预测:过度分散、风险暴露数和树状图可视化
- R语言多分类logistic逻辑回归模型在混合分布模拟单个风险损失值评估的应用