Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java

Issue 2893833005: Re-hook up surfaceRedrawNeededAsync callback. (Closed)
Patch Set: Add another interface to fix unit test compile Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.compositor; 5 package org.chromium.chrome.browser.compositor;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.Context; 8 import android.content.Context;
9 import android.graphics.Color; 9 import android.graphics.Color;
10 import android.graphics.PixelFormat; 10 import android.graphics.PixelFormat;
11 import android.graphics.Rect; 11 import android.graphics.Rect;
12 import android.graphics.drawable.Drawable; 12 import android.graphics.drawable.Drawable;
13 import android.os.Build; 13 import android.os.Build;
14 import android.view.Display; 14 import android.view.Display;
15 import android.view.MotionEvent; 15 import android.view.MotionEvent;
16 import android.view.Surface; 16 import android.view.Surface;
17 import android.view.SurfaceHolder; 17 import android.view.SurfaceHolder;
18 import android.view.SurfaceView; 18 import android.view.SurfaceView;
19 import android.view.View; 19 import android.view.View;
20 import android.view.WindowManager; 20 import android.view.WindowManager;
21 import android.widget.FrameLayout; 21 import android.widget.FrameLayout;
22 22
23 import org.chromium.base.TraceEvent; 23 import org.chromium.base.TraceEvent;
24 import org.chromium.base.annotations.CalledByNative; 24 import org.chromium.base.annotations.CalledByNative;
25 import org.chromium.base.annotations.JNINamespace; 25 import org.chromium.base.annotations.JNINamespace;
26 import org.chromium.base.annotations.UsedByReflection;
27 import org.chromium.chrome.browser.compositor.layouts.Layout; 26 import org.chromium.chrome.browser.compositor.layouts.Layout;
28 import org.chromium.chrome.browser.compositor.layouts.LayoutProvider; 27 import org.chromium.chrome.browser.compositor.layouts.LayoutProvider;
29 import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost; 28 import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost;
30 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; 29 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
31 import org.chromium.chrome.browser.compositor.resources.StaticResourcePreloads; 30 import org.chromium.chrome.browser.compositor.resources.StaticResourcePreloads;
32 import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; 31 import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
33 import org.chromium.chrome.browser.externalnav.IntentWithGesturesHandler; 32 import org.chromium.chrome.browser.externalnav.IntentWithGesturesHandler;
34 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; 33 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
35 import org.chromium.chrome.browser.tabmodel.TabModelImpl; 34 import org.chromium.chrome.browser.tabmodel.TabModelImpl;
36 import org.chromium.chrome.browser.widget.ClipDrawableProgressBar.DrawingInfo; 35 import org.chromium.chrome.browser.widget.ClipDrawableProgressBar.DrawingInfo;
37 import org.chromium.content_public.browser.WebContents; 36 import org.chromium.content_public.browser.WebContents;
38 import org.chromium.ui.base.WindowAndroid; 37 import org.chromium.ui.base.WindowAndroid;
39 import org.chromium.ui.resources.AndroidResourceType; 38 import org.chromium.ui.resources.AndroidResourceType;
40 import org.chromium.ui.resources.ResourceManager; 39 import org.chromium.ui.resources.ResourceManager;
41 40
42 import java.util.ArrayList; 41 import java.util.ArrayList;
43 import java.util.List; 42 import java.util.List;
44 43
45 /** 44 /**
46 * The is the {@link View} displaying the ui compositor results; including webpa ges and tabswitcher. 45 * The is the {@link View} displaying the ui compositor results; including webpa ges and tabswitcher.
47 */ 46 */
48 @JNINamespace("android") 47 @JNINamespace("android")
49 public class CompositorView extends FrameLayout implements SurfaceHolder.Callbac k2 { 48 public class CompositorView
49 extends FrameLayout implements CompositorSurfaceManager.SurfaceHolderCal lbackTarget {
50 private static final String TAG = "CompositorView"; 50 private static final String TAG = "CompositorView";
51 private static final long NANOSECONDS_PER_MILLISECOND = 1000000; 51 private static final long NANOSECONDS_PER_MILLISECOND = 1000000;
52 52
53 // Cache objects that should not be created every frame 53 // Cache objects that should not be created every frame
54 private final Rect mCacheAppRect = new Rect(); 54 private final Rect mCacheAppRect = new Rect();
55 private final int[] mCacheViewPosition = new int[2]; 55 private final int[] mCacheViewPosition = new int[2];
56 56
57 private final CompositorSurfaceManager mCompositorSurfaceManager; 57 private final CompositorSurfaceManager mCompositorSurfaceManager;
58 private boolean mOverlayVideoEnabled; 58 private boolean mOverlayVideoEnabled;
59 private boolean mAlwaysTranslucent; 59 private boolean mAlwaysTranslucent;
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 // Note that we don't know if we'll get a surfaceCreated / surfaceDestoy ed for this surface. 244 // Note that we don't know if we'll get a surfaceCreated / surfaceDestoy ed for this surface.
245 // We do know that if we do get one, then it will be for the surface tha t we just requested. 245 // We do know that if we do get one, then it will be for the surface tha t we just requested.
246 } 246 }
247 247
248 private int getSurfacePixelFormat() { 248 private int getSurfacePixelFormat() {
249 return (mOverlayVideoEnabled || mAlwaysTranslucent) ? PixelFormat.TRANSL UCENT 249 return (mOverlayVideoEnabled || mAlwaysTranslucent) ? PixelFormat.TRANSL UCENT
250 : PixelFormat.OPAQUE ; 250 : PixelFormat.OPAQUE ;
251 } 251 }
252 252
253 @Override 253 @Override
254 public void surfaceRedrawNeeded(SurfaceHolder holder) {
255 // Intentionally not implemented.
256 }
257
258 // TODO(boliu): Mark this override instead.
259 @UsedByReflection("Android")
260 public void surfaceRedrawNeededAsync(SurfaceHolder holder, Runnable drawingF inished) { 254 public void surfaceRedrawNeededAsync(SurfaceHolder holder, Runnable drawingF inished) {
261 if (mDrawingFinishedCallbacks == null) mDrawingFinishedCallbacks = new A rrayList<>(); 255 if (mDrawingFinishedCallbacks == null) mDrawingFinishedCallbacks = new A rrayList<>();
262 mDrawingFinishedCallbacks.add(drawingFinished); 256 mDrawingFinishedCallbacks.add(drawingFinished);
263 if (mNativeCompositorView != 0) nativeSetNeedsComposite(mNativeComposito rView); 257 if (mNativeCompositorView != 0) nativeSetNeedsComposite(mNativeComposito rView);
264 } 258 }
265 259
266 @Override 260 @Override
267 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 261 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
268 if (mNativeCompositorView == 0) return; 262 if (mNativeCompositorView == 0) return;
269 263
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 private native void nativeSurfaceChanged( 432 private native void nativeSurfaceChanged(
439 long nativeCompositorView, int format, int width, int height, Surfac e surface); 433 long nativeCompositorView, int format, int width, int height, Surfac e surface);
440 private native void nativeOnPhysicalBackingSizeChanged( 434 private native void nativeOnPhysicalBackingSizeChanged(
441 long nativeCompositorView, WebContents webContents, int width, int h eight); 435 long nativeCompositorView, WebContents webContents, int width, int h eight);
442 private native void nativeFinalizeLayers(long nativeCompositorView); 436 private native void nativeFinalizeLayers(long nativeCompositorView);
443 private native void nativeSetNeedsComposite(long nativeCompositorView); 437 private native void nativeSetNeedsComposite(long nativeCompositorView);
444 private native void nativeSetLayoutBounds(long nativeCompositorView); 438 private native void nativeSetLayoutBounds(long nativeCompositorView);
445 private native void nativeSetOverlayVideoMode(long nativeCompositorView, boo lean enabled); 439 private native void nativeSetOverlayVideoMode(long nativeCompositorView, boo lean enabled);
446 private native void nativeSetSceneLayer(long nativeCompositorView, SceneLaye r sceneLayer); 440 private native void nativeSetSceneLayer(long nativeCompositorView, SceneLaye r sceneLayer);
447 } 441 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698