diff options
-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; |