| ARRIS Enterprises, Inc. Confidential Information | ||||||||||||||||
Graphics StackIntroductionDifferent STB models have different amounts of memory, some of which is allocated for use as graphics memory. The KreaTV makes it possible to configure the size of the graphics memory partition. To better estimate the amount of required graphics memory, the documentation gives a brief overview of the graphics stack. The KreaTV uses DirectFB as a graphics subsystem. It allows the allocation and display of images (pixmaps), performs hardware-accelerated graphics operations (such as blitting and scaling), and setup of video layers. Graphics surfaceA surface is an area of graphics memory that corresponds to a rectangular image. These allow the application to directly access the graphics memory and perform various operations such as blits and compositing. Pixel formatSurfaces may have different pixel formats. Most commonly, KreaTV applications use the following formats:
BufferingMost applications in KreaTV, including the browser, are double buffered. This means that drawing operations are performed on a hidden back buffer. When an update (flip) is done the previously shown buffer is used as back buffer instead. This means that visual changes on the screen are instant, avoiding problems such as screen tearing. For instance, the portal applications usually animate some elements on a page. Thus, the rendering buffer of the portal applications is double buffered. On the other hand, the subtitle renderer application displays static images on the screen, so its rendering buffer does not have a back buffer. Examples:
Blit operationBlit is a graphics operation in which an area of a surface is filled by a selected color or copied to another surface. Copying can be done with or without scaling, depending on whether the source and the destination rectangles have the same size or not. Also, both the fill and copy operations can be performed with or without alpha channel blending. Blitting operations are usually performed by a special hardware component called a blitter. Browser canvas objects and objects participating in CSS animations/transformations are processed through the blitter. Surfaces that are processed through the blitter are stored in graphics memory. Here you can find preferred practices for the acceleration of CSS transformations in the portal applications. CompositingCompositing is the combining of visual elements from separate surfaces into a single surface. The system creates the special double buffered ARGB32 surface for that. It is called "compositing buffer" or "framebuffer" or "display buffer". The graphics surface of each application is composited onto this surface before being displayed on the screen. The size of the compositor surface can be configured using the compositor_buffer_size parameter. Displaying video is not related to the graphics stack. Graphics and video are mixed by underlying software stack and it is out of scope of this documentation. |