Changes

Jump to: navigation, search

Platform/GFX/Gralloc

629 bytes added, 02:55, 20 May 2013
Drawing to Gralloc buffers
When (on the content side) we want to draw in software to a gralloc buffer, we call ShadowLayerForwarder::OpenDescriptor() in ShadowLayerUtilsGralloc.cpp. This calls android::GraphicBuffer::lock(). When we're done, we call ShadowLayerForwarder::CloseDescriptor() in the same file, which calls android::GraphicBuffer::unlock().
This is generally done by TextureClientShmem. Indeed, there is no need for a gralloc-specific TextureClient, as on B2G, TextureClientShmem will implicitly try to get gralloc memory, and will silently fall back to generic non-gralloc shared memory if gralloc fails. The knowledge of whether the TextureClientShmem is actually gralloc or not, is stored in the underlying SurfaceDescriptor. The compositor, upon receiving it, will examine the type of the SurfaceDescriptor, and if it is a SurfaceDescriptorGralloc, it will create a GrallocTextureHostOGL (see below). Thus, there is no Gralloc-specific TextureClient class --- but there is a Gralloc-specific TextureHost class.
=== Drawing from Gralloc buffers (binding to GL textures) ===
Confirm
753
edits

Navigation menu