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

Side by Side Diff: content/browser/android/in_process/synchronous_compositor_factory_impl.h

Issue 532993002: work-in-progress patch to fix context lost black video (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: block on compositor Created 6 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMPL_H _ 5 #ifndef CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMPL_H _
6 #define CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMPL_H _ 6 #define CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMPL_H _
7 7
8 #include "base/synchronization/lock.h" 8 #include "base/synchronization/lock.h"
9 #include "content/browser/android/in_process/synchronous_input_event_filter.h" 9 #include "content/browser/android/in_process/synchronous_input_event_filter.h"
10 #include "content/renderer/android/synchronous_compositor_factory.h" 10 #include "content/renderer/android/synchronous_compositor_factory.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 void CompositorInitializedHardwareDraw(); 58 void CompositorInitializedHardwareDraw();
59 void CompositorReleasedHardwareDraw(); 59 void CompositorReleasedHardwareDraw();
60 60
61 scoped_refptr<cc::ContextProvider> 61 scoped_refptr<cc::ContextProvider>
62 CreateOnscreenContextProviderForCompositorThread(); 62 CreateOnscreenContextProviderForCompositorThread();
63 63
64 private: 64 private:
65 bool CanCreateMainThreadContext(); 65 bool CanCreateMainThreadContext();
66 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> 66 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
67 TryCreateStreamTextureFactory(); 67 TryCreateStreamTextureFactory();
68 void RestoreContextOnMainThread();
68 69
69 SynchronousInputEventFilter synchronous_input_event_filter_; 70 SynchronousInputEventFilter synchronous_input_event_filter_;
70 71
71 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_; 72 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_;
72 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> 73
73 video_context_provider_; 74 class VideoContextProvider;
75 scoped_refptr<VideoContextProvider> video_context_provider_;
74 76
75 bool record_full_layer_; 77 bool record_full_layer_;
76 78
77 // |num_hardware_compositor_lock_| is updated on UI thread only but can be 79 // |num_hardware_compositor_lock_| is updated on UI thread only but can be
78 // read on renderer main thread. 80 // read on renderer main thread.
79 base::Lock num_hardware_compositor_lock_; 81 base::Lock num_hardware_compositor_lock_;
80 unsigned int num_hardware_compositors_; 82 unsigned int num_hardware_compositors_;
83 scoped_refptr<base::MessageLoopProxy> main_thread_proxy_;
81 }; 84 };
82 85
83 } // namespace content 86 } // namespace content
84 87
85 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_ 88 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698