Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04da9df3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Delete GLES20RenderEngine::readPixels"

parents a3193677 492bc579
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -601,10 +601,6 @@ void GLES20RenderEngine::bindExternalTextureImage(uint32_t texName,
    }
}

void GLES20RenderEngine::readPixels(size_t l, size_t b, size_t w, size_t h, uint32_t* pixels) {
    glReadPixels(l, b, w, h, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
}

status_t GLES20RenderEngine::bindFrameBuffer(Framebuffer* framebuffer) {
    GLFramebuffer* glFramebuffer = static_cast<GLFramebuffer*>(framebuffer);
    EGLImageKHR eglImage = glFramebuffer->getEGLImage();
+0 −1
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ public:
    void genTextures(size_t count, uint32_t* names) override;
    void deleteTextures(size_t count, uint32_t const* names) override;
    void bindExternalTextureImage(uint32_t texName, const Image& image) override;
    void readPixels(size_t l, size_t b, size_t w, size_t h, uint32_t* pixels) override;
    status_t bindFrameBuffer(Framebuffer* framebuffer) override;
    void unbindFrameBuffer(Framebuffer* framebuffer) override;
    void checkErrors() const override;
+0 −1
Original line number Diff line number Diff line
@@ -101,7 +101,6 @@ public:
    virtual void genTextures(size_t count, uint32_t* names) = 0;
    virtual void deleteTextures(size_t count, uint32_t const* names) = 0;
    virtual void bindExternalTextureImage(uint32_t texName, const Image& image) = 0;
    virtual void readPixels(size_t l, size_t b, size_t w, size_t h, uint32_t* pixels) = 0;
    // When binding a native buffer, it must be done before setViewportAndProjection
    // Returns NO_ERROR when binds successfully, NO_MEMORY when there's no memory for allocation.
    virtual status_t bindFrameBuffer(Framebuffer* framebuffer) = 0;
+3 −45
Original line number Diff line number Diff line
@@ -103,12 +103,6 @@

#define DISPLAY_COUNT       1

/*
 * DEBUG_SCREENSHOTS: set to true to check that screenshots are not all
 * black pixels.
 */
#define DEBUG_SCREENSHOTS   false

namespace android {

using namespace android::hardware::configstore;
@@ -5504,51 +5498,15 @@ status_t SurfaceFlinger::captureScreenImplLocked(const RenderArea& renderArea,
    // dependent on the context's EGLConfig.
    renderScreenImplLocked(renderArea, traverseLayers, useIdentityTransform);

    if (DEBUG_SCREENSHOTS) {
        getRenderEngine().finish();
        *outSyncFd = -1;

        const auto reqWidth = renderArea.getReqWidth();
        const auto reqHeight = renderArea.getReqHeight();

        uint32_t* pixels = new uint32_t[reqWidth*reqHeight];
        getRenderEngine().readPixels(0, 0, reqWidth, reqHeight, pixels);
        checkScreenshot(reqWidth, reqHeight, reqWidth, pixels, traverseLayers);
        delete [] pixels;
    } else {
    base::unique_fd syncFd = getRenderEngine().flush();
    if (syncFd < 0) {
        getRenderEngine().finish();
    }
    *outSyncFd = syncFd.release();
    }

    return NO_ERROR;
}

void SurfaceFlinger::checkScreenshot(size_t w, size_t s, size_t h, void const* vaddr,
                                     TraverseLayersFunction traverseLayers) {
    if (DEBUG_SCREENSHOTS) {
        for (size_t y = 0; y < h; y++) {
            uint32_t const* p = (uint32_t const*)vaddr + y * s;
            for (size_t x = 0; x < w; x++) {
                if (p[x] != 0xFF000000) return;
            }
        }
        ALOGE("*** we just took a black screenshot ***");

        size_t i = 0;
        traverseLayers([&](Layer* layer) {
            const Layer::State& state(layer->getDrawingState());
            ALOGE("%c index=%zu, name=%s, layerStack=%d, z=%d, visible=%d, flags=%x, alpha=%.3f",
                  layer->isVisible() ? '+' : '-', i, layer->getName().string(),
                  layer->getLayerStack(), state.z, layer->isVisible(), state.flags,
                  static_cast<float>(state.color.a));
            i++;
        });
    }
}

// ---------------------------------------------------------------------------

void SurfaceFlinger::State::traverseInZOrder(const LayerVector::Visitor& visitor) const {
+0 −2
Original line number Diff line number Diff line
@@ -756,8 +756,6 @@ private:
    void dumpAllLocked(const Vector<String16>& args, size_t& index, String8& result) const;
    bool startDdmConnection();
    void appendSfConfigString(String8& result) const;
    void checkScreenshot(size_t w, size_t s, size_t h, void const* vaddr,
                         TraverseLayersFunction traverseLayers);

    void logFrameStats();

Loading