Descriptionpepper: Use the RenderThread's shared context as the parent context.
Remove the PepperParentContextProvider interface entirely. Have the
pepper PlatformContext3DImpl go directly to RenderThreadImpl and get
the offscreen shared context, and create its texture with that context
and make it the parent of the PlatformContext3DImpl context3d.
Remove the SetParentContext() method from the PlatformContext3DImpl and
the plugin delegate, and the fullscreen widget. Instead, when the plugin
delegate or fullscreen widget become active, in ReparentContext() they
have the PlatformContext3DImpl require access to the offscreen shared
context and create the parent texture id with it, if needed.
The fullscreen widget context management needs to be adjusted. Previously
PlatformContext3DImpl would call back into the fullscreen widget which
would create the fullscreen widget's context. But we have removed that
circular trip. Now in RenderWidgetFullscreenPepper::CheckCompositing() if
compositing mode is being used, we create the fullscreen context3d.
We also recreate it if the old context was lost. When leaving compositing
mode, the fullscreen widget's context is destroyed.
The fullscreen widget's context is now made to share resources so that it
can access the texture created by the RenderThread's context.
This fixes the known issue where fullscreen remains black after a context
loss.
R=piman
BUG=181052
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=187109
Patch Set 1 : #
Total comments: 9
Patch Set 2 : #
Total comments: 4
Patch Set 3 : #Patch Set 4 : #
Total comments: 3
Patch Set 5 : null context3d in swiftshader #Messages
Total messages: 18 (0 generated)
|