首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅为窗口的一部分创建伏尔坎曲面

仅为窗口的一部分创建伏尔坎曲面
EN

Stack Overflow用户
提问于 2021-08-12 16:49:21
回答 1查看 120关注 0票数 0

我们有一个应用程序,它有一个窗口,在顶部有一个水平工具栏。我们传递给Vulkan以创建表面的窗口级别的句柄最终包括工具栏后面的区域,即Vulkan完全不知道工具栏,而表面包括它“后面”的空间。

我的问题是,一个表面只能代表这个窗口的一部分吗?我们显然不需要为工具栏后面的像素处理数据,因此希望避免创建过大的帧缓冲区、深度缓冲区等。

我完全理解,我可以使用视窗来实现这一点,例如,具有原点偏移和高度补偿的视窗,但是据我所知,帧缓冲区实际上仍然包含整个表面大小的像素信息(例如,800x600客户区域窗口),即使我只渲染到该窗口的一部分。然后,帧缓冲区被“映射”,并因此被挤压到视口区域。

所有这些都让我想知道视口的用途是什么。如果它只是简单地定义了从图像缓冲区到曲面中某个区域的映射,如果帧缓冲区包含的像素比要映射到的区域多得多,那么效率不是很低吗?首先使用不同的windows HWND来分割应用程序中的部分,然后再创建不同的表面,这不是很有意义吗?

如何避免渲染到不必要的区域?

EN

Stack Overflow用户

回答已采纳

发布于 2021-08-12 22:03:12

几乎每个应用程序的处理方式都是,窗口的客户区(即,不是工具栏之类的东西)是主框架窗口的子窗口。当调整框架的大小时,您可以调整客户端窗口的大小以匹配新的客户端区域(考虑到工具栏等的新大小)。

这个客户端窗口应该有一个为它创建的Vulkan表面。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68761401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档