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

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: 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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 void CompositorReleasedHardwareDraw(); 59 void CompositorReleasedHardwareDraw();
60 60
61 scoped_refptr<cc::ContextProvider> 61 scoped_refptr<cc::ContextProvider>
62 CreateOnscreenContextProviderForCompositorThread(); 62 CreateOnscreenContextProviderForCompositorThread();
63 gpu::GLInProcessContext* GetShareContext(); 63 gpu::GLInProcessContext* GetShareContext();
64 64
65 private: 65 private:
66 bool CanCreateMainThreadContext(); 66 bool CanCreateMainThreadContext();
67 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> 67 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
68 TryCreateStreamTextureFactory(); 68 TryCreateStreamTextureFactory();
69 void RestoreContextOnMainThread();
69 70
70 SynchronousInputEventFilter synchronous_input_event_filter_; 71 SynchronousInputEventFilter synchronous_input_event_filter_;
71 72
72 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_; 73 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_;
73 scoped_ptr<gpu::GLInProcessContext> share_context_; 74 scoped_ptr<gpu::GLInProcessContext> share_context_;
74 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> 75
75 video_context_provider_; 76 class VideoContextProvider;
77 scoped_refptr<VideoContextProvider> video_context_provider_;
76 78
77 bool record_full_layer_; 79 bool record_full_layer_;
78 80
79 // |num_hardware_compositor_lock_| is updated on UI thread only but can be 81 // |num_hardware_compositor_lock_| is updated on UI thread only but can be
80 // read on renderer main thread. 82 // read on renderer main thread.
81 base::Lock num_hardware_compositor_lock_; 83 base::Lock num_hardware_compositor_lock_;
82 unsigned int num_hardware_compositors_; 84 unsigned int num_hardware_compositors_;
85 scoped_refptr<base::MessageLoopProxy> main_thread_proxy_;
83 }; 86 };
84 87
85 } // namespace content 88 } // namespace content
86 89
87 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_ 90 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698