问题标签 [dirtyrectangle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphics - 脏矩形
在哪里可以找到关于实现一种计算“脏矩形”以最小化帧缓冲区更新的算法的参考资料?允许任意编辑并计算更新显示所需的最小“位 blit”操作集的显示模型。
optimization - 最优脏矩形集
我在这里寻找一种算法,独立于特定的编程语言。
问题:
我们有一个二维显示区域(想想简单的像素缓冲区)。周期性地改变一些像素。我们需要找到一组矩形来封装所有变化的像素。
计算一个包含所有更改像素的单个可能很大的矩形将是微不足道的,但也是不可取的。我们宁愿有多个、更小、更紧密的矩形,直到指定的最小尺寸(这是一个可以改变的变量)。
例如,假设在整个显示区域内,左上角的几个像素发生了变化,右下角的几个像素发生了变化。我们不想计算整个区域的单个脏矩形 - 我们需要两个脏矩形:左上角的一个小矩形和右下角的一个小矩形。
性能是至关重要的,因此这个问题。
这个问题一直都在出现,我想肯定是在视频编解码器和远程桌面压缩领域。在我的例子中,在涉及多个用户同时在共享区域中绘图的图形图像处理过程中,这是一个反复出现的问题。
有谁知道为此发布的算法或知道您过去使用过的解决方案?
谢谢!
java - 有没有办法只将特定的 JPanel 区域标记为不透明?
基本上我画了很多透明的JPanels;分析表明大部分时间都花在了 Component.paint() 中。可以彻底优化这一点,因为在大多数情况下,每个 JPanel 的真正非透明区域非常小,例如在边缘周围。
就目前而言,repainting() 一个组件将触发对其所有父级的重绘,因为 RepaintManager 无法知道脏父级区域实际上是不透明的,并且会在组件层次结构中上升。我正在考虑markCompletelyClean()
在面板失效时调用所有父母并自己管理脏区addDirtyRegion()
。
但是,是否有更简洁的方法仅将 JPanel 的特定矩形标记为不透明(或透明,没关系)?
javascript - 优化 Html5 画布中的内容渲染
我正在开发一个使用 Html5 画布的图形上下文来呈现视图层次结构的开源库。但是我想做一些性能优化,允许更快地渲染完全不透明的内容。
我怎么能实现这样的逻辑?
您是否知道有关如何实施此类系统的良好信息资源或教程?
目前我正在使用类似于 ui-kit 的基本绘图模型,每个视图都代表一个屏幕上的矩形区域。渲染引擎与视图对象分开实现,并根据包含需要重绘的脏视图的列表来渲染内容。
编辑:
库和当前渲染系统
库是一个所谓的平台或抽象层,基于画布元素动态渲染图形的能力。我目前已经实现了管理显示列表等的基础知识,但还没有优化。
当前的渲染引擎正在使用缓冲区并缓存视图的绘图命令,以便以后可以重绘视图。然而,当只有一个视图无效时,需要重新绘制层次结构的绘制过程中存在过度的外壳。
我如何实现一个系统来管理屏幕内容的脏矩形?
raspberry-pi - Raspberry PI 上 XBMC 上的脏区
我有一个树莓派,并从 raspbmc.com 加载了最新的独立版本。使用 XBMC 时,我看到 CPU 使用率始终在 90% 以上。在查看了 XBMC wiki 和常见问题解答后,脏区似乎是一种减少 CPU 使用率的流行方法。
我advancedsettings.xml
在/home/pi/.xbmc/userdata/
. 该文件的内容是:
我尝试了 XBMC wiki 中解释的脏区域模式 1 和 2 ,在这两种情况下,我都看到只有脏区域被显示,而其余区域是黑色的。OpenElec wiki说这是自 12 年 8 月以来构建中的一个已知问题。
现在,我能做些什么来解决/解决相同的问题?我以 1080p 播放高清电影,它们运行良好。但我有点担心 RPi 在关键事件发生之前可以占用如此多的 CPU 使用时间。
java - 如何在java中捕获屏幕的脏部分?
我正在开发 RDP 应用程序。服务器必须发送屏幕的脏部分,客户端必须更新图像的那部分。我可以使用 Robot 类发送桌面的总屏幕为
如果我想将屏幕的脏部分发送给客户端,那么如何识别桌面屏幕的脏区域并捕获该屏幕。
请告诉我在java中识别屏幕脏区的过程。
java - 如何逐像素比较两个图像并从图像的脏部分帧新图像
我正在使用robot.screenCapture()
和 frame捕获屏幕bufferedImage1
。我再次捕获桌面屏幕和框架bufferedImage2
。
请告诉我如何逐个像素地比较这两个图像(bufferedImage1
和)。bufferedImage2
如果有任何差异,那么如何框出不同的部分?
android - 位图不完全适合android中的矩形
我正在使用 android-V11 开发 RDP 客户端应用程序。
服务器:屏幕分为 4 个部分,分别发送 byte[]、left、top、right、bottom、Screen resolution(width --> 1024/1280, height --? 768/ 1024) 值为每一帧的图像数据给客户。
客户端:我正在使用表面视图来显示从服务器接收的图像。我需要显示 4 帧(服务器的一个屏幕)以完全适合平板电脑屏幕。
示例代码:
我们无法将位图完全适合矩形。框架显示在平板电脑中,它们之间有间隙。
调试代码后,似乎检索到的位图(bmp)宽度为 514,矩形(矩形)宽度为 640。因此,位图不适合矩形。
请告诉我如何缩放位图以完全适合矩形。
注意:我还需要捏缩放图像。
谢谢和问候亚米尼。
wpf - WPF 性能。错误的脏矩形计算
我目前从事与 WPF 富客户端 LOB 应用程序中的性能问题相关的客户分配工作。
问题是应用程序运行非常缓慢/缓慢。尤其是数据表处理(滚动、排序、选择)非常慢并且使应用程序无法使用。
当包含几个文本框、组合框和标签的单个选项卡打开并处于空闲状态(等待用户输入)时,我分析了系统状态。
这些是我的发现:
- 所有的渲染都是在 GPU 上计算的
- 没有动画、位图效果、透明度等性能重的功能。
- 当标签闲置时(只有光标在聚焦文本框中闪烁,选项卡的其余部分是静态的,甚至不包含任何数据)GPU运行高达90%
- GPU drops to 0 whenever the tab loses focus
- GPU百分比与窗口大小直接相关。一个小窗口将其降低到百分之几,全屏使其几乎达到 100%
- WPF Perforator 告诉我 WPF 计算整个选项卡的脏区域,而不是只计算闪烁的光标
- WPF Perforator 在空闲选项卡上报告大于 20/秒的脏矩形更新率,它们与 GPU 使用率直接相关
我的结论:在开发过程中,为了使 WPF 适合整个系统的后端驱动架构,引入了许多自定义代码(布局、事件处理等)。我的猜测是,由于某些自定义代码,WPF 的脏矩形机制已被破坏。这会导致过多的绘图活动,从而导致非常高的 GPU 使用率。这些不必要的活动导致上述问题。
现在我正在寻找我应该从哪里开始调查的任何建议。或者换句话说:为了破坏 WPF 脏矩形更新算法,开发人员可以犯哪些典型错误。任何输入都受到高度赞赏。
致以真诚的感谢和诚挚的问候!
曼努埃尔
macos - 使用目标 C 查找dirtyrect 或cliprect
是否可以使用 Objective C 在 Mac OS 中单独捕获脏矩形?
当显示屏幕发生变化时,是否有任何 api 会给出被修改区域的脏矩形或剪辑矩形?
我需要捕获屏幕并将屏幕更改反复发送到服务器。
最好的方法是什么?
请帮忙。
谢谢,普里亚