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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 1385883002: Leave CreateStreamTexture route id out of the GL interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h" 154 #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h"
155 #include "third_party/skia/include/core/SkGraphics.h" 155 #include "third_party/skia/include/core/SkGraphics.h"
156 #include "ui/base/layout.h" 156 #include "ui/base/layout.h"
157 #include "ui/base/ui_base_switches.h" 157 #include "ui/base/ui_base_switches.h"
158 #include "v8/include/v8.h" 158 #include "v8/include/v8.h"
159 159
160 #if defined(OS_ANDROID) 160 #if defined(OS_ANDROID)
161 #include <cpu-features.h> 161 #include <cpu-features.h>
162 #include "content/renderer/android/synchronous_compositor_factory.h" 162 #include "content/renderer/android/synchronous_compositor_factory.h"
163 #include "content/renderer/media/android/renderer_demuxer_android.h" 163 #include "content/renderer/media/android/renderer_demuxer_android.h"
164 #include "content/renderer/media/android/stream_texture_factory_impl.h"
164 #endif 165 #endif
165 166
166 #if defined(OS_MACOSX) 167 #if defined(OS_MACOSX)
167 #include "base/mac/mac_util.h" 168 #include "base/mac/mac_util.h"
168 #include "content/renderer/theme_helper_mac.h" 169 #include "content/renderer/theme_helper_mac.h"
169 #include "content/renderer/webscrollbarbehavior_impl_mac.h" 170 #include "content/renderer/webscrollbarbehavior_impl_mac.h"
170 #endif 171 #endif
171 172
172 #if defined(OS_POSIX) 173 #if defined(OS_POSIX)
173 #include "ipc/ipc_channel_posix.h" 174 #include "ipc/ipc_channel_posix.h"
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 // hold pointers to V8 objects (e.g., via pending requests). 886 // hold pointers to V8 objects (e.g., via pending requests).
886 main_thread_indexed_db_dispatcher_.reset(); 887 main_thread_indexed_db_dispatcher_.reset();
887 888
888 main_thread_compositor_task_runner_ = NULL; 889 main_thread_compositor_task_runner_ = NULL;
889 890
890 gpu_factories_.reset(); 891 gpu_factories_.reset();
891 892
892 // Context providers must be released prior to destroying the GPU channel. 893 // Context providers must be released prior to destroying the GPU channel.
893 shared_worker_context_provider_ = nullptr; 894 shared_worker_context_provider_ = nullptr;
894 shared_main_thread_contexts_ = nullptr; 895 shared_main_thread_contexts_ = nullptr;
895 896 #if defined(OS_ANDROID)
897 stream_texture_factory_ = nullptr;
898 #endif
896 if (gpu_channel_.get()) 899 if (gpu_channel_.get())
897 gpu_channel_->DestroyChannel(); 900 gpu_channel_->DestroyChannel();
898 901
899 // TODO(port) 902 // TODO(port)
900 #if defined(OS_WIN) 903 #if defined(OS_WIN)
901 // Clean up plugin channels before this thread goes away. 904 // Clean up plugin channels before this thread goes away.
902 NPChannelBase::CleanupChannels(); 905 NPChannelBase::CleanupChannels();
903 #endif 906 #endif
904 907
905 // Shut down the message loop and the renderer scheduler before shutting down 908 // Shut down the message loop and the renderer scheduler before shutting down
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits(), 1426 WebGraphicsContext3DCommandBufferImpl::SharedMemoryLimits(),
1424 NULL)); 1427 NULL));
1425 } 1428 }
1426 1429
1427 scoped_refptr<cc_blink::ContextProviderWebContext> 1430 scoped_refptr<cc_blink::ContextProviderWebContext>
1428 RenderThreadImpl::SharedMainThreadContextProvider() { 1431 RenderThreadImpl::SharedMainThreadContextProvider() {
1429 DCHECK(IsMainThread()); 1432 DCHECK(IsMainThread());
1430 if (!shared_main_thread_contexts_.get() || 1433 if (!shared_main_thread_contexts_.get() ||
1431 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() != 1434 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() !=
1432 GL_NO_ERROR) { 1435 GL_NO_ERROR) {
1433 shared_main_thread_contexts_ = ContextProviderCommandBuffer::Create( 1436 scoped_refptr<ContextProviderCommandBuffer> context_provider =
1434 CreateOffscreenContext3d(), RENDERER_MAINTHREAD_CONTEXT); 1437 ContextProviderCommandBuffer::Create(CreateOffscreenContext3d(),
1435 if (shared_main_thread_contexts_.get() && 1438 RENDERER_MAINTHREAD_CONTEXT);
1436 !shared_main_thread_contexts_->BindToCurrentThread()) 1439 if (!context_provider.get()) {
1440 LOG(ERROR) << "Failed to get context3d for media player";
1441 return NULL;
1442 }
1443 if (context_provider.get() && context_provider->BindToCurrentThread()) {
1444 #if defined(OS_ANDROID)
1445 // Create shared StreamTextureFactoryImpl per RenderThreadImpl when we
no sievers 2015/11/06 22:08:41 can you move this android block to GetStreamTextur
sivag 2015/11/09 14:06:32 Done.
1446 // create ContextProviderCommandBuffer.
1447 scoped_refptr<GpuChannelHost> gpu_channel_host(EstablishGpuChannelSync(
1448 CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE));
1449 if (!gpu_channel_host.get()) {
1450 LOG(ERROR) << "Failed to establish GPU channel for media player";
1451 stream_texture_factory_ = NULL;
1452 } else {
1453 stream_texture_factory_ = StreamTextureFactoryImpl::Create(
1454 context_provider, gpu_channel_host.get());
1455 }
1456 #endif
1457 shared_main_thread_contexts_ = context_provider;
1458 } else
1437 shared_main_thread_contexts_ = NULL; 1459 shared_main_thread_contexts_ = NULL;
1438 } 1460 }
1439 return shared_main_thread_contexts_; 1461 return shared_main_thread_contexts_;
1440 } 1462 }
1441 1463
1464 #if defined(OS_ANDROID)
1465 scoped_refptr<StreamTextureFactory> RenderThreadImpl::GetStreamTexureFactory() {
1466 DCHECK(IsMainThread());
1467 if (!stream_texture_factory_.get()) {
1468 // StreamTextureFactoryImpl is created while creating
1469 // ContextProviderCommandBuffer.
1470 SharedMainThreadContextProvider();
1471 }
1472 return stream_texture_factory_;
1473 }
1474 #endif
1475
1442 AudioRendererMixerManager* RenderThreadImpl::GetAudioRendererMixerManager() { 1476 AudioRendererMixerManager* RenderThreadImpl::GetAudioRendererMixerManager() {
1443 if (!audio_renderer_mixer_manager_) { 1477 if (!audio_renderer_mixer_manager_) {
1444 audio_renderer_mixer_manager_.reset(new AudioRendererMixerManager()); 1478 audio_renderer_mixer_manager_.reset(new AudioRendererMixerManager());
1445 } 1479 }
1446 1480
1447 return audio_renderer_mixer_manager_.get(); 1481 return audio_renderer_mixer_manager_.get();
1448 } 1482 }
1449 1483
1450 media::AudioHardwareConfig* RenderThreadImpl::GetAudioHardwareConfig() { 1484 media::AudioHardwareConfig* RenderThreadImpl::GetAudioHardwareConfig() {
1451 if (!audio_hardware_config_) { 1485 if (!audio_hardware_config_) {
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
2008 } 2042 }
2009 2043
2010 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { 2044 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() {
2011 size_t erased = 2045 size_t erased =
2012 RenderThreadImpl::current()->pending_render_frame_connects_.erase( 2046 RenderThreadImpl::current()->pending_render_frame_connects_.erase(
2013 routing_id_); 2047 routing_id_);
2014 DCHECK_EQ(1u, erased); 2048 DCHECK_EQ(1u, erased);
2015 } 2049 }
2016 2050
2017 } // namespace content 2051 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698