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

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 LoseContextOnMainThread();
70 void RestoreContextOnMainThread();
69 71
70 SynchronousInputEventFilter synchronous_input_event_filter_; 72 SynchronousInputEventFilter synchronous_input_event_filter_;
71 73
72 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_; 74 scoped_refptr<gpu::InProcessCommandBuffer::Service> service_;
73 scoped_ptr<gpu::GLInProcessContext> share_context_; 75 scoped_ptr<gpu::GLInProcessContext> share_context_;
74 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider> 76
75 video_context_provider_; 77 class VideoContextProvider;
78 scoped_refptr<VideoContextProvider> video_context_provider_;
76 79
77 bool record_full_layer_; 80 bool record_full_layer_;
78 81
79 // |num_hardware_compositor_lock_| is updated on UI thread only but can be 82 // |num_hardware_compositor_lock_| is updated on UI thread only but can be
80 // read on renderer main thread. 83 // read on renderer main thread.
81 base::Lock num_hardware_compositor_lock_; 84 base::Lock num_hardware_compositor_lock_;
82 unsigned int num_hardware_compositors_; 85 unsigned int num_hardware_compositors_;
86 scoped_refptr<base::MessageLoopProxy> main_thread_proxy_;
83 }; 87 };
84 88
85 } // namespace content 89 } // namespace content
86 90
87 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_ 91 #endif // CONTENT_BROWSER_ANDROID_IN_PROCESS_SYNCHRONOUS_COMPOSITOR_FACTORY_IMP L_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698