fix [2931513] Add support for setting the orientation of an ANativeWindow
Also implement support for cropping. Change-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280
This commit is contained in:
@@ -75,6 +75,14 @@ status_t SharedBufferStack::setCrop(int buffer, const Rect& crop)
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
status_t SharedBufferStack::setTransform(int buffer, uint8_t transform)
|
||||
{
|
||||
if (uint32_t(buffer) >= NUM_BUFFER_MAX)
|
||||
return BAD_INDEX;
|
||||
buffers[buffer].transform = transform;
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
status_t SharedBufferStack::setDirtyRegion(int buffer, const Region& dirty)
|
||||
{
|
||||
if (uint32_t(buffer) >= NUM_BUFFER_MAX)
|
||||
@@ -137,6 +145,26 @@ Region SharedBufferStack::getDirtyRegion(int buffer) const
|
||||
return res;
|
||||
}
|
||||
|
||||
Rect SharedBufferStack::getCrop(int buffer) const
|
||||
{
|
||||
Rect res(-1, -1);
|
||||
if (uint32_t(buffer) >= NUM_BUFFER_MAX)
|
||||
return res;
|
||||
res.left = buffers[buffer].crop.l;
|
||||
res.top = buffers[buffer].crop.t;
|
||||
res.right = buffers[buffer].crop.r;
|
||||
res.bottom = buffers[buffer].crop.b;
|
||||
return res;
|
||||
}
|
||||
|
||||
uint32_t SharedBufferStack::getTransform(int buffer) const
|
||||
{
|
||||
if (uint32_t(buffer) >= NUM_BUFFER_MAX)
|
||||
return 0;
|
||||
return buffers[buffer].transform;
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
SharedBufferBase::SharedBufferBase(SharedClient* sharedClient,
|
||||
@@ -433,6 +461,12 @@ status_t SharedBufferClient::setCrop(int buf, const Rect& crop)
|
||||
return stack.setCrop(buf, crop);
|
||||
}
|
||||
|
||||
status_t SharedBufferClient::setTransform(int buf, uint32_t transform)
|
||||
{
|
||||
SharedBufferStack& stack( *mSharedStack );
|
||||
return stack.setTransform(buf, uint8_t(transform));
|
||||
}
|
||||
|
||||
status_t SharedBufferClient::setDirtyRegion(int buf, const Region& reg)
|
||||
{
|
||||
SharedBufferStack& stack( *mSharedStack );
|
||||
@@ -549,6 +583,18 @@ Region SharedBufferServer::getDirtyRegion(int buf) const
|
||||
return stack.getDirtyRegion(buf);
|
||||
}
|
||||
|
||||
Rect SharedBufferServer::getCrop(int buf) const
|
||||
{
|
||||
SharedBufferStack& stack( *mSharedStack );
|
||||
return stack.getCrop(buf);
|
||||
}
|
||||
|
||||
uint32_t SharedBufferServer::getTransform(int buf) const
|
||||
{
|
||||
SharedBufferStack& stack( *mSharedStack );
|
||||
return stack.getTransform(buf);
|
||||
}
|
||||
|
||||
/*
|
||||
* NOTE: this is not thread-safe on the server-side, meaning
|
||||
* 'head' cannot move during this operation. The client-side
|
||||
|
||||
Reference in New Issue
Block a user