diff options
author | 2015-08-07 14:47:20 -0700 | |
---|---|---|
committer | 2015-08-24 10:50:52 -0700 | |
commit | 60d6922a011fe18c111b8d30fb6ef1f655b6b15e (patch) | |
tree | 4618ad5fc60b4e25c76c9f5d1e80ad3223baff31 | |
parent | 72f314a50f34de593686661b0a99906125d18bfd (diff) |
libsgui: Change Rect default constructor
The current Rect default constructor initializes to all zeroes. Change
it to initialize to an invalid Rect.
Modify all of the existing invocations of the default constructor to
maintain the existing behavior.
Bug 18173359
Change-Id: Ibbad076f1550a94f56d7b1cf5350071f2022e09a
-rw-r--r-- | include/gui/CpuConsumer.h | 19 | ||||
-rw-r--r-- | include/private/gui/LayerState.h | 5 | ||||
-rw-r--r-- | include/private/ui/RegionHelper.h | 2 | ||||
-rw-r--r-- | include/ui/Rect.h | 5 | ||||
-rw-r--r-- | libs/gui/BufferItem.cpp | 2 | ||||
-rw-r--r-- | libs/gui/BufferQueueProducer.cpp | 4 | ||||
-rw-r--r-- | libs/gui/GLConsumer.cpp | 5 | ||||
-rw-r--r-- | libs/gui/ISurfaceComposer.cpp | 2 | ||||
-rw-r--r-- | libs/gui/LayerState.cpp | 10 | ||||
-rw-r--r-- | libs/gui/Surface.cpp | 6 | ||||
-rw-r--r-- | libs/ui/Rect.cpp | 3 | ||||
-rw-r--r-- | libs/ui/Region.cpp | 2 |
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; |