1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef ANDROID_WEBVIEW_PUBLIC_BROWSER_DRAW_SW_H_
- #define ANDROID_WEBVIEW_PUBLIC_BROWSER_DRAW_SW_H_
- #include <jni.h>
- #include <stddef.h>
- #ifndef __cplusplus
- #error "Can't mix C and C++ when using jni.h"
- #endif
- class SkCanvasState;
- class SkPicture;
- static const int kAwPixelInfoVersion = 3;
- // Holds the information required to implement the SW draw to system canvas.
- struct AwPixelInfo {
- int version; // The kAwPixelInfoVersion this struct was built with.
- SkCanvasState* state; // The externalize state in skia format.
- // NOTE: If you add more members, bump kAwPixelInfoVersion.
- };
- // Function that can be called to fish out the underlying native pixel data
- // from a Java canvas object, for optimized rendering path.
- // Returns the pixel info on success, which must be freed via a call to
- // AwReleasePixelsFunction, or NULL.
- typedef AwPixelInfo* (AwAccessPixelsFunction)(JNIEnv* env, jobject canvas);
- // Must be called to balance every *successful* call to AwAccessPixelsFunction
- // (i.e. that returned true).
- typedef void (AwReleasePixelsFunction)(AwPixelInfo* pixels);
- // Called to create an Android Picture object encapsulating a native SkPicture.
- typedef jobject (AwCreatePictureFunction)(JNIEnv* env, SkPicture* picture);
- // Method that returns the current Skia function.
- typedef void (SkiaVersionFunction)(int* major, int* minor, int* patch);
- // Called to verify if the Skia versions are compatible.
- typedef bool (AwIsSkiaVersionCompatibleFunction)(SkiaVersionFunction function);
- static const int kAwDrawSWFunctionTableVersion = 1;
- // "vtable" for the functions declared in this file. An instance must be set via
- // AwContents.setAwDrawSWFunctionTable
- struct AwDrawSWFunctionTable {
- int version;
- AwAccessPixelsFunction* access_pixels;
- AwReleasePixelsFunction* release_pixels;
- };
- #endif // ANDROID_WEBVIEW_PUBLIC_BROWSER_DRAW_SW_H_
|