Chromium Code Reviews| Index: content/common/gpu/stream_texture_android.h |
| diff --git a/content/common/gpu/stream_texture_android.h b/content/common/gpu/stream_texture_android.h |
| index a761206b2ac297fd24b43d1a70822422b8c3148a..7021ba90cbdaf77d53b17734ddfd50ca7d825ba6 100644 |
| --- a/content/common/gpu/stream_texture_android.h |
| +++ b/content/common/gpu/stream_texture_android.h |
| @@ -7,85 +7,35 @@ |
| #include "base/basictypes.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "base/threading/non_thread_safe.h" |
| #include "content/common/gpu/gpu_command_buffer_stub.h" |
| -#include "ipc/ipc_listener.h" |
| -#include "ui/gl/android/surface_texture.h" |
| -#include "ui/gl/gl_image.h" |
| - |
| -namespace gfx { |
| -class Size; |
| -} |
| namespace content { |
| -class StreamTexture : public gl::GLImage, |
| - public IPC::Listener, |
| - public GpuCommandBufferStub::DestructionObserver { |
| +class StreamTexture; |
| + |
| +class StreamTextureManager : public base::NonThreadSafe { |
| public: |
| - static bool Create(GpuCommandBufferStub* owner_stub, |
| - uint32 client_texture_id, |
| - int stream_id); |
| + StreamTextureManager(); |
| + ~StreamTextureManager(); |
| + |
| + bool CreateStreamTexture(GpuCommandBufferStub* owner_stub, |
| + uint32 client_texture_id, |
| + int32 stream_id); |
| + void SetStreamTextureSize(GpuCommandBufferStub* owner_stub, |
| + uint32 client_texture_id, |
| + int32 stream_id, |
| + size_t width, |
| + size_t height); |
| private: |
| - StreamTexture(GpuCommandBufferStub* owner_stub, |
| - int32 route_id, |
| - uint32 texture_id); |
| - ~StreamTexture() override; |
| - |
| - // gl::GLImage implementation: |
| - void Destroy(bool have_context) override; |
| - gfx::Size GetSize() override; |
| - unsigned GetInternalFormat() override; |
| - bool BindTexImage(unsigned target) override; |
| - void ReleaseTexImage(unsigned target) override; |
| - bool CopyTexImage(unsigned target) override; |
| - bool CopyTexSubImage(unsigned target, |
| - const gfx::Point& offset, |
| - const gfx::Rect& rect) override; |
| - bool ScheduleOverlayPlane(gfx::AcceleratedWidget widget, |
| - int z_order, |
| - gfx::OverlayTransform transform, |
| - const gfx::Rect& bounds_rect, |
| - const gfx::RectF& crop_rect) override; |
| - void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, |
| - uint64_t process_tracing_id, |
| - const std::string& dump_name) override; |
| - |
| - // GpuCommandBufferStub::DestructionObserver implementation. |
| - void OnWillDestroyStub() override; |
| - |
| - // Called when a new frame is available for the SurfaceTexture. |
| - void OnFrameAvailable(); |
| - |
| - // IPC::Listener implementation: |
| - bool OnMessageReceived(const IPC::Message& message) override; |
| - |
| - // IPC message handlers: |
| - void OnStartListening(); |
| - void OnEstablishPeer(int32 primary_id, int32 secondary_id); |
| - void OnSetSize(const gfx::Size& size) { size_ = size; } |
|
dshwang
2015/11/07 15:53:03
Current SetSize hack doesn't update the size of te
|
| - |
| - scoped_refptr<gfx::SurfaceTexture> surface_texture_; |
| - |
| - // Current transform matrix of the surface texture. |
| - float current_matrix_[16]; |
| - |
| - // Current size of the surface texture. |
| - gfx::Size size_; |
| - |
| - // Whether we ever bound a valid frame. |
| - bool has_valid_frame_; |
| - |
| - // Whether a new frame is available that we should update to. |
| - bool has_pending_frame_; |
| + void OnReleaseStreamTexture(int32 stream_id); |
| - GpuCommandBufferStub* owner_stub_; |
| - int32 route_id_; |
| - bool has_listener_; |
| - uint32 texture_id_; |
| + typedef std::map<int32, StreamTexture*> StreamTextureMap; |
| + StreamTextureMap stream_textures_; |
| - base::WeakPtrFactory<StreamTexture> weak_factory_; |
| - DISALLOW_COPY_AND_ASSIGN(StreamTexture); |
| + base::WeakPtrFactory<StreamTextureManager> weak_factory_; |
| + DISALLOW_COPY_AND_ASSIGN(StreamTextureManager); |
| }; |
| } // namespace content |