summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/gui/CpuConsumer.h19
-rw-r--r--include/private/gui/LayerState.h5
-rw-r--r--include/private/ui/RegionHelper.h2
-rw-r--r--include/ui/Rect.h5
-rw-r--r--libs/gui/BufferItem.cpp2
-rw-r--r--libs/gui/BufferQueueProducer.cpp4
-rw-r--r--libs/gui/GLConsumer.cpp5
-rw-r--r--libs/gui/ISurfaceComposer.cpp2
-rw-r--r--libs/gui/LayerState.cpp10
-rw-r--r--libs/gui/Surface.cpp6
-rw-r--r--libs/ui/Rect.cpp3
-rw-r--r--libs/ui/Region.cpp2
12 files changed, 49 insertions, 16 deletions
diff --git a/include/gui/CpuConsumer.h b/include/gui/CpuConsumer.h
index 3b07a31750..f9d0e7db78 100644
--- a/include/gui/CpuConsumer.h
+++ b/include/gui/CpuConsumer.h
@@ -67,6 +67,25 @@ class CpuConsumer : public ConsumerBase
uint8_t *dataCr;
uint32_t chromaStride;
uint32_t chromaStep;
+
+ LockedBuffer() :
+ data(NULL),
+ width(0),
+ height(0),
+ format(PIXEL_FORMAT_NONE),
+ stride(0),
+ crop(0, 0, 0, 0),
+ transform(0),
+ scalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
+ timestamp(0),
+ dataSpace(HAL_DATASPACE_UNKNOWN),
+ frameNumber(0),
+ flexFormat(PIXEL_FORMAT_NONE),
+ dataCb(NULL),
+ dataCr(NULL),
+ chromaStride(0),
+ chromaStep(0)
+ {}
};
// Create a new CPU consumer. The maxLockedBuffers parameter specifies
diff --git a/include/private/gui/LayerState.h b/include/private/gui/LayerState.h
index cbe87330ed..b2574d0818 100644
--- a/include/private/gui/LayerState.h
+++ b/include/private/gui/LayerState.h
@@ -58,11 +58,10 @@ struct layer_state_t {
: what(0),
x(0), y(0), z(0), w(0), h(0), layerStack(0),
alpha(0), flags(0), mask(0),
- reserved(0)
+ reserved(0), crop(Rect::INVALID_RECT)
{
matrix.dsdx = matrix.dtdy = 1.0f;
matrix.dsdy = matrix.dtdx = 0.0f;
- crop.makeInvalid();
}
status_t write(Parcel& output) const;
@@ -117,6 +116,8 @@ struct DisplayState {
eDisplaySizeChanged = 0x08
};
+ DisplayState();
+
uint32_t what;
sp<IBinder> token;
sp<IGraphicBufferProducer> surface;
diff --git a/include/private/ui/RegionHelper.h b/include/private/ui/RegionHelper.h
index 8c190dd40b..84eb10079b 100644
--- a/include/private/ui/RegionHelper.h
+++ b/include/private/ui/RegionHelper.h
@@ -72,7 +72,7 @@ public:
}
void operator()(region_rasterizer& rasterizer) {
- RECT current;
+ RECT current(Rect::EMPTY_RECT);
do {
SpannerInner spannerInner(spanner.lhs, spanner.rhs);
int inside = spanner.next(current.top, current.bottom);
diff --git a/include/ui/Rect.h b/include/ui/Rect.h
index 3886f93142..6310502b34 100644
--- a/include/ui/Rect.h
+++ b/include/ui/Rect.h
@@ -32,13 +32,12 @@ public:
typedef ARect::value_type value_type;
static const Rect INVALID_RECT;
+ static const Rect EMPTY_RECT;
// we don't provide copy-ctor and operator= on purpose
// because we want the compiler generated versions
- inline Rect() {
- left = right = top = bottom = 0;
- }
+ inline Rect() : Rect(INVALID_RECT) {}
inline Rect(int32_t w, int32_t h) {
left = top = 0;
diff --git a/libs/gui/BufferItem.cpp b/libs/gui/BufferItem.cpp
index 8f64ae0e04..6a883cf807 100644
--- a/libs/gui/BufferItem.cpp
+++ b/libs/gui/BufferItem.cpp
@@ -24,6 +24,7 @@
namespace android {
BufferItem::BufferItem() :
+ mCrop(Rect::INVALID_RECT),
mTransform(0),
mScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
mTimestamp(0),
@@ -34,7 +35,6 @@ BufferItem::BufferItem() :
mIsDroppable(false),
mAcquireCalled(false),
mTransformToDisplayInverse(false) {
- mCrop.makeInvalid();
}
BufferItem::~BufferItem() {}
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index 87e5b4d279..a440f6e1de 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -547,7 +547,7 @@ status_t BufferQueueProducer::queueBuffer(int slot,
int64_t timestamp;
bool isAutoTimestamp;
android_dataspace dataSpace;
- Rect crop;
+ Rect crop(Rect::EMPTY_RECT);
int scalingMode;
uint32_t transform;
uint32_t stickyTransform;
@@ -619,7 +619,7 @@ status_t BufferQueueProducer::queueBuffer(int slot,
const sp<GraphicBuffer>& graphicBuffer(mSlots[slot].mGraphicBuffer);
Rect bufferRect(graphicBuffer->getWidth(), graphicBuffer->getHeight());
- Rect croppedRect;
+ Rect croppedRect(Rect::EMPTY_RECT);
crop.intersect(bufferRect, &croppedRect);
if (croppedRect != crop) {
BQ_LOGE("queueBuffer: crop rect is not contained within the "
diff --git a/libs/gui/GLConsumer.cpp b/libs/gui/GLConsumer.cpp
index 757e08a907..be5075c83c 100644
--- a/libs/gui/GLConsumer.cpp
+++ b/libs/gui/GLConsumer.cpp
@@ -130,6 +130,7 @@ static bool isEglImageCroppable(const Rect& crop) {
GLConsumer::GLConsumer(const sp<IGraphicBufferConsumer>& bq, uint32_t tex,
uint32_t texTarget, bool useFenceSync, bool isControlledByApp) :
ConsumerBase(bq, isControlledByApp),
+ mCurrentCrop(Rect::EMPTY_RECT),
mCurrentTransform(0),
mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
mCurrentFence(Fence::NO_FENCE),
@@ -157,6 +158,7 @@ GLConsumer::GLConsumer(const sp<IGraphicBufferConsumer>& bq, uint32_t tex,
GLConsumer::GLConsumer(const sp<IGraphicBufferConsumer>& bq, uint32_t texTarget,
bool useFenceSync, bool isControlledByApp) :
ConsumerBase(bq, isControlledByApp),
+ mCurrentCrop(Rect::EMPTY_RECT),
mCurrentTransform(0),
mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
mCurrentFence(Fence::NO_FENCE),
@@ -1083,7 +1085,8 @@ static void mtxMul(float out[16], const float a[16], const float b[16]) {
GLConsumer::EglImage::EglImage(sp<GraphicBuffer> graphicBuffer) :
mGraphicBuffer(graphicBuffer),
mEglImage(EGL_NO_IMAGE_KHR),
- mEglDisplay(EGL_NO_DISPLAY) {
+ mEglDisplay(EGL_NO_DISPLAY),
+ mCropRect(Rect::EMPTY_RECT) {
}
GLConsumer::EglImage::~EglImage() {
diff --git a/libs/gui/ISurfaceComposer.cpp b/libs/gui/ISurfaceComposer.cpp
index 78886d5bb6..b4cbf84286 100644
--- a/libs/gui/ISurfaceComposer.cpp
+++ b/libs/gui/ISurfaceComposer.cpp
@@ -353,7 +353,7 @@ status_t BnSurfaceComposer::onTransact(
sp<IBinder> display = data.readStrongBinder();
sp<IGraphicBufferProducer> producer =
interface_cast<IGraphicBufferProducer>(data.readStrongBinder());
- Rect sourceCrop;
+ Rect sourceCrop(Rect::EMPTY_RECT);
data.read(sourceCrop);
uint32_t reqWidth = data.readUint32();
uint32_t reqHeight = data.readUint32();
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
index 00323dc4f2..eafda86917 100644
--- a/libs/gui/LayerState.cpp
+++ b/libs/gui/LayerState.cpp
@@ -77,6 +77,16 @@ status_t ComposerState::read(const Parcel& input) {
}
+DisplayState::DisplayState() :
+ what(0),
+ layerStack(0),
+ orientation(eOrientationDefault),
+ viewport(Rect::EMPTY_RECT),
+ frame(Rect::EMPTY_RECT),
+ width(0),
+ height(0) {
+}
+
status_t DisplayState::write(Parcel& output) const {
output.writeStrongBinder(token);
output.writeStrongBinder(IInterface::asBinder(surface));
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 4b76f9834c..0a36c56144 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -43,6 +43,7 @@ Surface::Surface(
const sp<IGraphicBufferProducer>& bufferProducer,
bool controlledByApp)
: mGraphicBufferProducer(bufferProducer),
+ mCrop(Rect::EMPTY_RECT),
mGenerationNumber(0)
{
// Initialize the ANativeWindow function pointers.
@@ -67,7 +68,6 @@ Surface::Surface(
mReqUsage = 0;
mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO;
mDataSpace = HAL_DATASPACE_UNKNOWN;
- mCrop.clear();
mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
mTransform = 0;
mStickyTransform = 0;
@@ -332,7 +332,7 @@ int Surface::queueBuffer(android_native_buffer_t* buffer, int fenceFd) {
// Make sure the crop rectangle is entirely inside the buffer.
- Rect crop;
+ Rect crop(Rect::EMPTY_RECT);
mCrop.intersect(Rect(buffer->width, buffer->height), &crop);
sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE);
@@ -779,7 +779,7 @@ int Surface::setCrop(Rect const* rect)
{
ATRACE_CALL();
- Rect realRect;
+ Rect realRect(Rect::EMPTY_RECT);
if (rect == NULL || rect->isEmpty()) {
realRect.clear();
} else {
diff --git a/libs/ui/Rect.cpp b/libs/ui/Rect.cpp
index dcce21f15a..99cbedc2ff 100644
--- a/libs/ui/Rect.cpp
+++ b/libs/ui/Rect.cpp
@@ -20,6 +20,7 @@
namespace android {
const Rect Rect::INVALID_RECT{0, 0, -1, -1};
+const Rect Rect::EMPTY_RECT{0, 0, 0, 0};
static inline int32_t min(int32_t a, int32_t b) {
return (a < b) ? a : b;
@@ -110,7 +111,7 @@ Rect Rect::transform(uint32_t xform, int32_t width, int32_t height) const {
}
Rect Rect::reduce(const Rect& exclude) const {
- Rect result;
+ Rect result(Rect::EMPTY_RECT);
uint32_t mask = 0;
mask |= (exclude.left > left) ? 1 : 0;
diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp
index 3810da4049..7792975993 100644
--- a/libs/ui/Region.cpp
+++ b/libs/ui/Region.cpp
@@ -798,7 +798,7 @@ status_t Region::unflatten(void const* buffer, size_t size) {
Region result;
result.mStorage.clear();
for (size_t r = 0; r < numRects; ++r) {
- Rect rect;
+ Rect rect(Rect::EMPTY_RECT);
status_t status = rect.unflatten(buffer, size);
if (status != NO_ERROR) {
return status;