chromium/android_webview/java/src/org/chromium/android_webview/gfx/AwFunctor.java

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.android_webview.gfx;

import android.graphics.Canvas;

/**
 * Interface for functor implementation. This allows client to avoid differentiating between GL and
 * Vulkan implementations.
 */
public interface AwFunctor {
    /** Insert draw functor into recording canvas */
    boolean requestDraw(Canvas canvas);

    /** Return the raw native pointer to CompositorFrameConsumer */
    long getNativeCompositorFrameConsumer();

    /** Free memory */
    void trimMemory();

    /** Destroy on UI thread. Client should stop using CompositorFrameConsumer before this */
    void destroy();
}