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

Commit 031eaede authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Add TextureView support to new renderer/reorderer"

parents ca9c0d42 d2dfd8f1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk

HWUI_NEW_OPS := false
HWUI_NEW_OPS := true

hwui_src_files := \
    font/CacheTexture.cpp \
+14 −0
Original line number Diff line number Diff line
@@ -735,6 +735,20 @@ void BakedOpDispatcher::onTextOnPathOp(BakedOpRenderer& renderer, const TextOnPa
    }
}

void BakedOpDispatcher::onTextureLayerOp(BakedOpRenderer& renderer, const TextureLayerOp& op, const BakedOpState& state) {
    const bool tryToSnap = !op.layer->getForceFilter();
    float alpha = (op.layer->getAlpha() / 255.0f) * state.alpha;
    Glop glop;
    GlopBuilder(renderer.renderState(), renderer.caches(), &glop)
            .setRoundRectClipState(state.roundRectClipState)
            .setMeshTexturedUvQuad(nullptr, Rect(0, 1, 1, 0)) // TODO: simplify with VBO
            .setFillTextureLayer(*(op.layer), alpha)
            .setTransform(state.computedState.transform, TransformFlags::None)
            .setModelViewMapUnitToRectOptionalSnap(tryToSnap, Rect(op.layer->getWidth(), op.layer->getHeight()))
            .build();
    renderer.renderGlop(state, glop);
}

void BakedOpDispatcher::onLayerOp(BakedOpRenderer& renderer, const LayerOp& op, const BakedOpState& state) {
    OffscreenBuffer* buffer = *op.layerHandle;

+1 −3
Original line number Diff line number Diff line
@@ -53,8 +53,7 @@ void DeferredLayerUpdater::setPaint(const SkPaint* paint) {
    SkRefCnt_SafeAssign(mColorFilter, colorFilter);
}

bool DeferredLayerUpdater::apply() {
    bool success = true;
void DeferredLayerUpdater::apply() {
    // These properties are applied the same to both layer types
    mLayer->setColorFilter(mColorFilter);
    mLayer->setAlpha(mAlpha, mMode);
@@ -73,7 +72,6 @@ bool DeferredLayerUpdater::apply() {
            setTransform(nullptr);
        }
    }
    return success;
}

void DeferredLayerUpdater::doUpdateTexImage() {
+2 −2
Original line number Diff line number Diff line
@@ -77,13 +77,13 @@ public:

    ANDROID_API void setPaint(const SkPaint* paint);

    ANDROID_API bool apply();
    void apply();

    Layer* backingLayer() {
        return mLayer;
    }

    ANDROID_API void detachSurfaceTexture();
    void detachSurfaceTexture();

private:
    // Generic properties
+1 −1
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ Layer* LayerRenderer::createTextureLayer(RenderState& renderState) {
}

void LayerRenderer::updateTextureLayer(Layer* layer, uint32_t width, uint32_t height,
        bool isOpaque, bool forceFilter, GLenum renderTarget, float* textureTransform) {
        bool isOpaque, bool forceFilter, GLenum renderTarget, const float* textureTransform) {
    if (layer) {
        layer->setBlend(!isOpaque);
        layer->setForceFilter(forceFilter);
Loading