Home | History | Annotate | Download | only in native
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef ANDROID_WEBVIEW_NATIVE_JAVA_BROWSER_VIEW_RENDERER_HELPER_H_
      6 #define ANDROID_WEBVIEW_NATIVE_JAVA_BROWSER_VIEW_RENDERER_HELPER_H_
      7 
      8 #include "android_webview/browser/browser_view_renderer.h"
      9 #include "base/android/scoped_java_ref.h"
     10 #include "base/compiler_specific.h"
     11 
     12 namespace android_webview {
     13 
     14 // Native side of java-class of same name.
     15 // Provides utility methods for rendering involving with Java objects.
     16 // TODO(boliu): Rename this class to JavaRasterHelper.
     17 class JavaBrowserViewRendererHelper : public BrowserViewRendererJavaHelper {
     18  public:
     19   JavaBrowserViewRendererHelper();
     20   virtual ~JavaBrowserViewRendererHelper();
     21 
     22   static void SetAwDrawSWFunctionTable(AwDrawSWFunctionTable* table);
     23   static JavaBrowserViewRendererHelper* GetInstance();
     24 
     25   // BrowserViewRendererJavaHelper implementation.
     26   virtual bool RenderViaAuxilaryBitmapIfNeeded(
     27       jobject java_canvas,
     28       const gfx::Vector2d& scroll_correction,
     29       const gfx::Size& auxiliary_bitmap_size,
     30       RenderMethod render_source) OVERRIDE;
     31 
     32  private:
     33   bool RenderViaAuxilaryBitmap(JNIEnv* env,
     34                                jobject java_canvas,
     35                                const gfx::Vector2d& scroll_correction,
     36                                const gfx::Size& auxiliary_bitmap_size,
     37                                const RenderMethod& render_source);
     38   bool RasterizeIntoBitmap(
     39       JNIEnv* env,
     40       const base::android::JavaRef<jobject>& jbitmap,
     41       const JavaBrowserViewRendererHelper::RenderMethod& renderer);
     42 };
     43 
     44 bool RegisterJavaBrowserViewRendererHelper(JNIEnv* env);
     45 
     46 }  // namespace android_webview
     47 
     48 #endif  // ANDROID_WEBVIEW_NATIVE_JAVA_BROWSER_VIEW_RENDERER_HELPER_H_
     49