Loading libs/gui/GLConsumerUtils.cpp +8 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,13 @@ namespace android { void GLConsumer::computeTransformMatrix(float outTransform[16], const sp<GraphicBuffer>& buf, const Rect& cropRect, uint32_t transform, bool filtering) { computeTransformMatrix(outTransform, buf->getWidth(), buf->getHeight(), buf->getPixelFormat(), cropRect, transform, filtering); } void GLConsumer::computeTransformMatrix(float outTransform[16], float bufferWidth, float bufferHeight, PixelFormat pixelFormat, const Rect& cropRect, uint32_t transform, bool filtering) { // Transform matrices static const mat4 mtxFlipH( -1, 0, 0, 0, Loading Loading @@ -60,8 +67,6 @@ void GLConsumer::computeTransformMatrix(float outTransform[16], if (!cropRect.isEmpty()) { float tx = 0.0f, ty = 0.0f, sx = 1.0f, sy = 1.0f; float bufferWidth = buf->getWidth(); float bufferHeight = buf->getHeight(); float shrinkAmount = 0.0f; if (filtering) { // In order to prevent bilinear sampling beyond the edge of the Loading @@ -70,7 +75,7 @@ void GLConsumer::computeTransformMatrix(float outTransform[16], // off each end, but because the chroma channels of YUV420 images // are subsampled we may need to shrink the crop region by a whole // texel on each side. switch (buf->getPixelFormat()) { switch (pixelFormat) { case PIXEL_FORMAT_RGBA_8888: case PIXEL_FORMAT_RGBX_8888: case PIXEL_FORMAT_RGBA_FP16: Loading libs/gui/include/gui/GLConsumer.h +4 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,10 @@ public: const sp<GraphicBuffer>& buf, const Rect& cropRect, uint32_t transform, bool filtering); static void computeTransformMatrix(float outTransform[16], float bufferWidth, float bufferHeight, PixelFormat pixelFormat, const Rect& cropRect, uint32_t transform, bool filtering); // Scale the crop down horizontally or vertically such that it has the // same aspect ratio as the buffer does. static Rect scaleDownCrop(const Rect& crop, uint32_t bufferWidth, Loading services/surfaceflinger/BufferLayer.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -738,10 +738,14 @@ sp<GraphicBuffer> BufferLayer::getBuffer() const { } void BufferLayer::getDrawingTransformMatrix(bool filteringEnabled, float outMatrix[16]) { GLConsumer::computeTransformMatrix(outMatrix, mBufferInfo.mBuffer ? mBufferInfo.mBuffer->getBuffer() : nullptr, mBufferInfo.mCrop, mBufferInfo.mTransform, filteringEnabled); sp<GraphicBuffer> buffer = getBuffer(); if (!buffer) { ALOGE("Buffer should not be null!"); return; } GLConsumer::computeTransformMatrix(outMatrix, buffer->getWidth(), buffer->getHeight(), buffer->getPixelFormat(), mBufferInfo.mCrop, mBufferInfo.mTransform, filteringEnabled); } void BufferLayer::setInitialValuesForClone(const sp<Layer>& clonedFrom) { Loading services/surfaceflinger/BufferQueueLayer.h +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ class SurfaceFrame; */ class BufferQueueLayer : public BufferLayer { public: // Only call while mStateLock is held explicit BufferQueueLayer(const LayerCreationArgs&); ~BufferQueueLayer() override; // Implements Layer. Loading Loading @@ -92,6 +90,8 @@ protected: }; private: // Goodbye explicit BufferQueueLayer(const LayerCreationArgs&); bool latchSidebandStream(bool& recomputeVisibleRegions) override; void setTransformHint(ui::Transform::RotationFlags displayTransformHint) override; Loading services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -109,8 +109,8 @@ sp<ContainerLayer> DefaultFactory::createContainerLayer(const LayerCreationArgs& return new ContainerLayer(args); } sp<BufferQueueLayer> DefaultFactory::createBufferQueueLayer(const LayerCreationArgs& args) { return new BufferQueueLayer(args); sp<BufferQueueLayer> DefaultFactory::createBufferQueueLayer(const LayerCreationArgs&) { return nullptr; } sp<BufferStateLayer> DefaultFactory::createBufferStateLayer(const LayerCreationArgs& args) { Loading Loading
libs/gui/GLConsumerUtils.cpp +8 −3 Original line number Diff line number Diff line Loading @@ -27,6 +27,13 @@ namespace android { void GLConsumer::computeTransformMatrix(float outTransform[16], const sp<GraphicBuffer>& buf, const Rect& cropRect, uint32_t transform, bool filtering) { computeTransformMatrix(outTransform, buf->getWidth(), buf->getHeight(), buf->getPixelFormat(), cropRect, transform, filtering); } void GLConsumer::computeTransformMatrix(float outTransform[16], float bufferWidth, float bufferHeight, PixelFormat pixelFormat, const Rect& cropRect, uint32_t transform, bool filtering) { // Transform matrices static const mat4 mtxFlipH( -1, 0, 0, 0, Loading Loading @@ -60,8 +67,6 @@ void GLConsumer::computeTransformMatrix(float outTransform[16], if (!cropRect.isEmpty()) { float tx = 0.0f, ty = 0.0f, sx = 1.0f, sy = 1.0f; float bufferWidth = buf->getWidth(); float bufferHeight = buf->getHeight(); float shrinkAmount = 0.0f; if (filtering) { // In order to prevent bilinear sampling beyond the edge of the Loading @@ -70,7 +75,7 @@ void GLConsumer::computeTransformMatrix(float outTransform[16], // off each end, but because the chroma channels of YUV420 images // are subsampled we may need to shrink the crop region by a whole // texel on each side. switch (buf->getPixelFormat()) { switch (pixelFormat) { case PIXEL_FORMAT_RGBA_8888: case PIXEL_FORMAT_RGBX_8888: case PIXEL_FORMAT_RGBA_FP16: Loading
libs/gui/include/gui/GLConsumer.h +4 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,10 @@ public: const sp<GraphicBuffer>& buf, const Rect& cropRect, uint32_t transform, bool filtering); static void computeTransformMatrix(float outTransform[16], float bufferWidth, float bufferHeight, PixelFormat pixelFormat, const Rect& cropRect, uint32_t transform, bool filtering); // Scale the crop down horizontally or vertically such that it has the // same aspect ratio as the buffer does. static Rect scaleDownCrop(const Rect& crop, uint32_t bufferWidth, Loading
services/surfaceflinger/BufferLayer.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -738,10 +738,14 @@ sp<GraphicBuffer> BufferLayer::getBuffer() const { } void BufferLayer::getDrawingTransformMatrix(bool filteringEnabled, float outMatrix[16]) { GLConsumer::computeTransformMatrix(outMatrix, mBufferInfo.mBuffer ? mBufferInfo.mBuffer->getBuffer() : nullptr, mBufferInfo.mCrop, mBufferInfo.mTransform, filteringEnabled); sp<GraphicBuffer> buffer = getBuffer(); if (!buffer) { ALOGE("Buffer should not be null!"); return; } GLConsumer::computeTransformMatrix(outMatrix, buffer->getWidth(), buffer->getHeight(), buffer->getPixelFormat(), mBufferInfo.mCrop, mBufferInfo.mTransform, filteringEnabled); } void BufferLayer::setInitialValuesForClone(const sp<Layer>& clonedFrom) { Loading
services/surfaceflinger/BufferQueueLayer.h +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ class SurfaceFrame; */ class BufferQueueLayer : public BufferLayer { public: // Only call while mStateLock is held explicit BufferQueueLayer(const LayerCreationArgs&); ~BufferQueueLayer() override; // Implements Layer. Loading Loading @@ -92,6 +90,8 @@ protected: }; private: // Goodbye explicit BufferQueueLayer(const LayerCreationArgs&); bool latchSidebandStream(bool& recomputeVisibleRegions) override; void setTransformHint(ui::Transform::RotationFlags displayTransformHint) override; Loading
services/surfaceflinger/SurfaceFlingerDefaultFactory.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -109,8 +109,8 @@ sp<ContainerLayer> DefaultFactory::createContainerLayer(const LayerCreationArgs& return new ContainerLayer(args); } sp<BufferQueueLayer> DefaultFactory::createBufferQueueLayer(const LayerCreationArgs& args) { return new BufferQueueLayer(args); sp<BufferQueueLayer> DefaultFactory::createBufferQueueLayer(const LayerCreationArgs&) { return nullptr; } sp<BufferStateLayer> DefaultFactory::createBufferStateLayer(const LayerCreationArgs& args) { Loading