Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / content / renderer / media / android / stream_texture_factory_impl.h
blob0374879a39aa0404f2f92fc57ab938112365094d
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
3 // found in the LICENSE file.
5 #ifndef CONTENT_RENDERER_MEDIA_ANDROID_STREAM_TEXTURE_FACTORY_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_ANDROID_STREAM_TEXTURE_FACTORY_IMPL_H_
8 #include "content/renderer/media/android/stream_texture_factory.h"
10 namespace cc {
11 class ContextProvider;
14 namespace gpu {
15 namespace gles2 {
16 class GLES2Interface;
17 } // namespace gles2
18 } // namespace gpu
20 namespace content {
22 class GpuChannelHost;
24 class StreamTextureFactoryImpl : public StreamTextureFactory {
25 public:
26 static scoped_refptr<StreamTextureFactoryImpl> Create(
27 const scoped_refptr<cc::ContextProvider>& context_provider,
28 GpuChannelHost* channel,
29 int frame_id);
31 // StreamTextureFactory implementation.
32 StreamTextureProxy* CreateProxy() override;
33 void EstablishPeer(int32 stream_id, int player_id) override;
34 unsigned CreateStreamTexture(unsigned texture_target,
35 unsigned* texture_id,
36 gpu::Mailbox* texture_mailbox) override;
37 void SetStreamTextureSize(int32 texture_id, const gfx::Size& size) override;
38 gpu::gles2::GLES2Interface* ContextGL() override;
39 void AddObserver(StreamTextureFactoryContextObserver* obs) override;
40 void RemoveObserver(StreamTextureFactoryContextObserver* obs) override;
42 private:
43 friend class base::RefCounted<StreamTextureFactoryImpl>;
44 StreamTextureFactoryImpl(
45 const scoped_refptr<cc::ContextProvider>& context_provider,
46 GpuChannelHost* channel,
47 int frame_id);
48 ~StreamTextureFactoryImpl() override;
50 scoped_refptr<cc::ContextProvider> context_provider_;
51 scoped_refptr<GpuChannelHost> channel_;
52 int frame_id_;
54 DISALLOW_IMPLICIT_CONSTRUCTORS(StreamTextureFactoryImpl);
57 } // namespace content
59 #endif // CONTENT_RENDERER_MEDIA_ANDROID_STREAM_TEXTURE_FACTORY_IMPL_H_