每个控件都有皮肤,但是如何在舞台上渲染皮肤?是的,主要的CSS文件,Scene Graph和Prism Rendering Thread都在那里,但我想知道哪些类在渲染上做了哪些部分。谢谢!
答案 0 :(得分:1)
还有更多,但Node,Scene,CssStyleHelper,工具包界面(QuantumToolkit),QuantumRenderer,玻璃场景(ViewScene),ViewPainter,PaintCollector,PaintRenderJob,PGNode,Graphics,BaseContext和VertexBuffer都在渲染中发挥作用控件。
我只是想我会分享它以防其他人需要它,或者我需要纠正。
它以QuantumToolkit上的pulse()开头,它调用PaintCollector的renderAll(),然后在ViewScene上调用repaint()。 ViewScene将一个PaintRenderJob添加到QuantumToolkit,后者通过QuantumRenderer将作业提交给ExecutorService。
PaintRenderJob有它的ViewPainter,它是一个具有PGNode的Runnable。在ViewPainter的一个实现中,ViewPainter中包含的PGNode通过让PGNode调用其Graphic对象来绘制。
图形确定绘图方式,然后通过BaseContext刷新到VertexBuffer。刷新到VertexBuffer涉及一个名为drawQuads(int)的本机方法。
对于Node,Scene和CssStyleHelper的部分,它们可以告诉哪些需要重新绘制。讲述是通过听众完成的。
在FX2中,有一个PrismPen开始和结束绘图会话。