因此,如果我有一个包含几个子窗口小部件实例的布局,那么父窗口小部件如何以及何时确保它们都被绘制到屏幕上?假设我们的孩子正在以某种简单的方式被激活,所以他们需要不断地更新。你知道吗
如果ParentLayout类大致如此:
class ParentLayout(ScatterLayout):
def __init__(self):
#
with self.canvas.before:
#hook A
#switchout framebuffer here?
pass
with self.canvas:
#hook B
pass
with self.canvas.after:
#hook C
#recover framebuffer with just this Widget?
pass
Q1:子可提取项是否最终被吸引到parent.canvas
?
A1:不,他们不是。画布上充满了指令;它不是缓冲区。你知道吗
似乎孩子们会被画在hook B
的某个地方,但我没有办法证实或测试这一点。你知道吗
我基本上是在尝试截取屏幕截图某些小部件组,这些小部件刚刚被渲染到缓冲区之后。我要检索一个表示ParentLayout及其子级画布的纹理。。。不多不少。你知道吗
Widget已经有了一个执行此操作的方法
Widget.export_to_png
。你知道吗画布最终是一个有序的指令列表(映射到opengl指令)。绘制屏幕涉及遍历此列表,并且保证每帧发生一次,因此通常一个简单的解决方案是Clock.schedule\u一次(您的函数,0),它应该在渲染完所有内容后运行下一帧。你知道吗
相关问题 更多 >
编程相关推荐