• Mathias Agopian's avatar
    Fix a bug where setgeometry couldn't be undone · c04f1533
    Mathias Agopian authored
    This change the binder protocol between SurfaceTextureClient
    and SurfaceTexture. dequeueBuffer() now takes the requested
    parameters for the buffer. SurfaceTexture decides if the
    buffer needs to be reallocated and does the allocation
    if needed. In that case it returns BUFFER_NEEDS_REALLOCATION
    to tell SurfaceTextureClient that it needs to call
    requestBuffer (which all parameters have been removed) to
    acquire a pointer to the buffer.
    
    dequeueBuffer and requestBuffer could be folded into a single
    IPC call, but we chose to optimize the case where buffers are
    not created and avoid some complexity in the marshalling code.
    
    Change-Id: I097a7f6f40a3491e10f3f3742eab33999286c304
    c04f1533
SurfaceTexture.cpp 16.5 KB