*/classMessageCreateLayer:publicMessageBase{SurfaceFlinger*flinger;Client*client;sp<IBinder>*handle;sp<IGraphicBufferProducer>*gbp;status_t result;constString8&name;uint32_tw,h;PixelFormat format;uint32_tflags;
surfaceFlinger有2个记录layer变化的全局变量 State mDrawingState; State mCurrentState; 一个记录上一次的状态,后者记录当前的状态,这样就可以判断layer的变化状态。layersSortedByZ 可见,layer是通过Z-order排列的。 这个变量记录了所有的layer。 我们来看下 uint32_t Layer::doTransaction(uint32_t flags) { ATRAC...
SurfaceFlinger中需要显示的图层(layer)将通过DisplayDevice对象传递到OpenGLES中进行合成,合成之后的图像再通过HWComposer对象传递到Framebuffer中显示。DisplayDevice对象中的成员变量mVisibleLayersSortedByZ保存了所有需要显示在本显示设备中显示的Layer对象,同时DisplayDevice对象也保存了和显示设备相关的显示方向、显示区域坐标...
*/classMessageCreateLayer:publicMessageBase{SurfaceFlinger*flinger;Client*client;sp<IBinder>*handle;sp<IGraphicBufferProducer>*gbp;status_t result;constString8&name;uint32_tw,h;PixelFormat format;uint32_tflags;public:MessageCreateLayer(SurfaceFlinger*flinger,constString8&name,Client*client,uint32_tw,uint...