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

Commit e2831a18 authored by Chris Craik's avatar Chris Craik
Browse files

resolved conflicts for merge of 5369b769 to master

Change-Id: Iccb2ce948321534e05d67e64dc40a38332adb1a7
parents 88daefb9 5369b769
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -326,6 +326,7 @@ void AmbientShadow::createAmbientShadow(bool isCasterOpaque,
    // At the end, update the real index and vertex buffer size.
    shadowVertexBuffer.updateVertexCount(vertexBufferIndex);
    shadowVertexBuffer.updateIndexCount(indexBufferIndex);
    shadowVertexBuffer.computeBounds<AlphaVertex>();

    ShadowTessellator::checkOverflow(vertexBufferIndex, totalVertexCount, "Ambient Vertex Buffer");
    ShadowTessellator::checkOverflow(indexBufferIndex, totalIndexCount, "Ambient Index Buffer");
+4 −8
Original line number Diff line number Diff line
@@ -78,18 +78,14 @@ public:
    OpenGLRenderer& mRenderer;
    const int mReplayFlags;

    // Allocator with the lifetime of a single frame.
    // replay uses an Allocator owned by the struct, while defer shares the DeferredDisplayList's Allocator
    // Allocator with the lifetime of a single frame. replay uses an Allocator owned by the struct,
    // while defer shares the DeferredDisplayList's Allocator
    // TODO: move this allocator to be owned by object with clear frame lifecycle
    LinearAllocator * const mAllocator;

    SkPath* allocPathForFrame() {
        mTempPaths.push_back(SkPath());
        return &mTempPaths.back();
        return mRenderer.allocPathForFrame();
    }

private:
    // Paths kept alive for the duration of the frame
    std::vector<SkPath> mTempPaths;
};

struct DeferStateStruct : public PlaybackStateStruct {
+5 −0
Original line number Diff line number Diff line
@@ -314,6 +314,11 @@ bool OpenGLRenderer::finish() {
    renderOverdraw();
    endTiling();

    for (size_t i = 0; i < mTempPaths.size(); i++) {
        delete mTempPaths[i];
    }
    mTempPaths.clear();

    // When finish() is invoked on FBO 0 we've reached the end
    // of the current frame
    if (onGetTargetFbo() == 0) {
+9 −0
Original line number Diff line number Diff line
@@ -384,6 +384,12 @@ public:
    virtual void onSnapshotRestored(const Snapshot& removed, const Snapshot& restored);
    virtual GLuint onGetTargetFbo() const { return 0; }

    SkPath* allocPathForFrame() {
        SkPath* path = new SkPath();
        mTempPaths.push_back(path);
        return path;
    }

protected:
    /**
     * Perform the setup specific to a frame. This method does not
@@ -1056,6 +1062,9 @@ private:
    uint8_t mAmbientShadowAlpha;
    uint8_t mSpotShadowAlpha;

    // Paths kept alive for the duration of the frame
    std::vector<SkPath*> mTempPaths;

    friend class Layer;
    friend class TextSetupFunctor;
    friend class DrawBitmapOp;