use of org.chromium.chrome.browser.compositor.layouts.Layout in project AndroidChromium by JackyAndroid.
the class ChromeTabbedActivity method toggleOverview.
private void toggleOverview() {
Tab currentTab = getActivityTab();
ContentViewCore contentViewCore = currentTab != null ? currentTab.getContentViewCore() : null;
if (!mLayoutManager.overviewVisible()) {
getCompositorViewHolder().hideKeyboard(new Runnable() {
@Override
public void run() {
mLayoutManager.showOverview(true);
}
});
if (contentViewCore != null) {
contentViewCore.setAccessibilityState(false);
}
} else {
Layout activeLayout = mLayoutManager.getActiveLayout();
if (activeLayout instanceof StackLayout) {
((StackLayout) activeLayout).commitOutstandingModelState(LayoutManager.time());
}
if (getCurrentTabModel().getCount() != 0) {
// Don't hide overview if current tab stack is empty()
mLayoutManager.hideOverview(true);
// hideOverview could change the current tab. Update the local variables.
currentTab = getActivityTab();
contentViewCore = currentTab != null ? currentTab.getContentViewCore() : null;
if (contentViewCore != null) {
contentViewCore.setAccessibilityState(true);
}
}
}
}
use of org.chromium.chrome.browser.compositor.layouts.Layout in project AndroidChromium by JackyAndroid.
the class CompositorView method finalizeLayers.
/**
* Converts the layout into compositor layers. This is to be called on every frame the layout
* is changing.
* @param provider Provides the layout to be rendered.
* @param forRotation Whether or not this is a special draw during a rotation.
*/
public void finalizeLayers(final LayoutProvider provider, boolean forRotation, final DrawingInfo progressBarDrawingInfo) {
TraceEvent.begin("CompositorView:finalizeLayers");
Layout layout = provider.getActiveLayout();
if (layout == null || mNativeCompositorView == 0) {
TraceEvent.end("CompositorView:finalizeLayers");
return;
}
if (!mPreloadedResources) {
// Attempt to prefetch any necessary resources
mResourceManager.preloadResources(AndroidResourceType.STATIC, StaticResourcePreloads.getSynchronousResources(getContext()), StaticResourcePreloads.getAsynchronousResources(getContext()));
mPreloadedResources = true;
}
// IMPORTANT: Do not do anything that impacts the compositor layer tree before this line.
// If you do, you could inadvertently trigger follow up renders. For further information
// see dtrainor@, tedchoc@, or klobag@.
// TODO(jscholler): change 1.0f to dpToPx once the native part is fully supporting dp.
mRenderHost.getVisibleViewport(mCacheVisibleViewport);
mCacheVisibleViewport.right = mCacheVisibleViewport.left + mSurfaceWidth;
mCacheVisibleViewport.bottom = mCacheVisibleViewport.top + mSurfaceHeight;
provider.getViewportPixel(mCacheViewport);
nativeSetLayoutViewport(mNativeCompositorView, mCacheViewport.left, mCacheViewport.top, mCacheViewport.width(), mCacheViewport.height(), mCacheVisibleViewport.left, mCacheVisibleViewport.top, 1.0f);
SceneLayer sceneLayer = provider.getUpdatedActiveSceneLayer(mCacheViewport, mCacheVisibleViewport, mLayerTitleCache, mTabContentManager, mResourceManager, provider.getFullscreenManager());
nativeSetSceneLayer(mNativeCompositorView, sceneLayer);
final LayoutTab[] tabs = layout.getLayoutTabsToRender();
final int tabsCount = tabs != null ? tabs.length : 0;
mLastLayerCount = tabsCount;
TabModelImpl.flushActualTabSwitchLatencyMetric();
nativeFinalizeLayers(mNativeCompositorView);
TraceEvent.end("CompositorView:finalizeLayers");
}
Aggregations