Hoops API参考: 3D Graphics System的Flush_Contents()函数

void Flush_Contents(const char* segment,const char* filter)

清空段中的部分或全部图形图元、属性或子分段。

参数

segment-要刷新的段。可以包含通配符。

filter-要删除的对象类型列表。

详情

删除指定段的指定内容。子段(如果有)不会被触摸(除非您将子段作为“要删除的内容”的一部分)。该段仍以相同的名称存在。Flush_Contents()通常用于图片信息的出现和消失,并且每次都不同。段树的结构应保持不变。与删除例程不同,如果找不到项目并且没有工作要做,刷新例程不会产生任何抱怨。Flush_Contents()是一种很好的方法,可以消除几何体和属性,并将线段快速恢复到已知状态。
筛选器的格式与Begin_Contents_Search()中的格式完全相同。换句话说,它是“type,type,…”形式的列表,其中每个type都可以是Begin_Contents_Search()可以接受的任何内容。

还可以刷新特定的属性子集。例如,调用Flush_Contents(mySegment,“visibility=lines”)将刷新线几何图形类型上的可见性属性,同时保持其他几何图形类型的可见性属性。这不仅适用于可见性,也适用于所有其他属性;例如,可以刷新“color=face”以仅刷新应用于面的颜色属性。

此外,您可以在上述任何类型前面指定“no”。例如:“everything,no geometry,no window,no colormap”,它刷新除窗口、颜色贴图和所有类型的几何体之外的所有类型。如果规范重叠(如 “geometry, no lines”),则最后一个规范获胜。

每种类型后面的复数“s”是可选的。类型可以是大写和小写的任意组合。前导空格和尾随空格不重要。空白字符串相当于“everything”。

Flush_Contents()的使用示例是屏幕上的消息行。每次您需要一条新消息时,您可以创建一个包含该消息以及文本间距、文本字体、窗口等的段,也可以保留一个保存这些属性的永久段。然后,您可以创建和删除包含实际文本的子段。或者跳过子段,将所有内容放在一个段中。完成后,清除文本几何图形。

这三种方法都有效;这是你个人品味的问题。

笔记

要刷新整个树,请使用“…”段通配符。例如,要删除树中以“foo”为根的所有几何体(在当前打开的段中),可以说Flush_geometry(“foo/…”)。

系统知道当一个片段不包含在屏幕上显示的信息时,它只在显示期间短暂地触摸该片段。因此,如果这有助于您的程序结构,请随意保留“已刷新”的段。

未提供“Flush_Contents_ByKey()”。如果要获得相同的效果,请使用Flush_By_Key()(仅用于几何体),或执行Open_Segment_By_Key()、“.”上的Flush_Contents()和闭合段。(Open_Segment_By_Key()和“.”非常有效。)

Shells和Meshes可以打开并刷新其“硬件资源”,但所有其他类型的几何体(例如直线、多段线、多圆柱体和图像)必须从其所属段或上面的某个段刷新“硬件件资源”。如果硬件资源被刷新,所有用于显示的列表、顶点阵列和纹理等资源都将从视频卡缓存中释放。绘制场景所需的任何资源都将在下次更新时重新生成。

file:///E:/3DF_2600_DOCS/3DF_2600_DOCS/build/api_ref/3dgs/group__Flush__Contents.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值