mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 02:05:42 +00:00
84bbf4f7d0
This commit adds a CrossProcessPaint class which can be used to paint a cross process document tree. This API is async, as we cannot block on child processes, and initially geared towards servicing a JS API and not internal consumers. The API can only be used in the chrome process for security reasons. The class is implemented as a recursive resolver, requesting a root paint, gathering dependent frames to be painted, then requesting paints from those tabs. Once all paints have been completed, the dependency tree is rasterized in a bottom up fashion. Future improvements can be made here. Currently, the rasterization is performed on the main thread which could cause jank. We also transmit recordings directly over IPDl, and no effort is made to minimize the recordings from child layer trees. Differential Revision: https://phabricator.services.mozilla.com/D6790 --HG-- extra : rebase_source : b213de269b33486552ddc0be17207f9fb3f78c9c
89 lines
1.9 KiB
Python
89 lines
1.9 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
with Files('**'):
|
|
BUG_COMPONENT = ('Core', 'Graphics: Layers')
|
|
|
|
EXPORTS.mozilla += [
|
|
'D3DMessageUtils.h',
|
|
'GfxMessageUtils.h'
|
|
]
|
|
|
|
EXPORTS.mozilla.gfx += [
|
|
'CrossProcessPaint.h',
|
|
'GPUChild.h',
|
|
'GPUParent.h',
|
|
'GPUProcessHost.h',
|
|
'GPUProcessImpl.h',
|
|
'GPUProcessListener.h',
|
|
'GPUProcessManager.h',
|
|
'SharedDIB.h',
|
|
'VsyncBridgeChild.h',
|
|
'VsyncBridgeParent.h',
|
|
'VsyncIOThreadHolder.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.layers += [
|
|
'CompositorOptions.h',
|
|
'CompositorSession.h',
|
|
'InProcessCompositorSession.h',
|
|
'RemoteCompositorSession.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.widget += [
|
|
'CompositorWidgetVsyncObserver.h',
|
|
]
|
|
|
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
|
EXPORTS.mozilla.gfx += [
|
|
'SharedDIBSurface.h',
|
|
'SharedDIBWin.h',
|
|
]
|
|
UNIFIED_SOURCES += [
|
|
'SharedDIBSurface.cpp',
|
|
'SharedDIBWin.cpp',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'CompositorSession.cpp',
|
|
'CompositorWidgetVsyncObserver.cpp',
|
|
'CrossProcessPaint.cpp',
|
|
'D3DMessageUtils.cpp',
|
|
'GPUChild.cpp',
|
|
'GPUProcessHost.cpp',
|
|
'GPUProcessImpl.cpp',
|
|
'GPUProcessManager.cpp',
|
|
'InProcessCompositorSession.cpp',
|
|
'RemoteCompositorSession.cpp',
|
|
'SharedDIB.cpp',
|
|
'VsyncBridgeChild.cpp',
|
|
'VsyncBridgeParent.cpp',
|
|
'VsyncIOThreadHolder.cpp',
|
|
]
|
|
|
|
SOURCES += [
|
|
'GPUParent.cpp',
|
|
]
|
|
|
|
IPDL_SOURCES = [
|
|
'GraphicsMessages.ipdlh',
|
|
'PGPU.ipdl',
|
|
'PVsyncBridge.ipdl',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/dom/ipc',
|
|
'/toolkit/crashreporter',
|
|
'/xpcom/threads',
|
|
]
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|