}
namespace mojo {
-template <typename S>
-class SyncDispatcher;
-
namespace gles2 {
class CommandBufferClientImpl;
public:
virtual ~CommandBufferDelegate();
virtual void ContextLost();
- virtual void DrawAnimationFrame();
};
class CommandBufferClientImpl : public CommandBufferClient,
- public CommandBufferSyncClient,
public ErrorHandler,
public gpu::CommandBuffer,
public gpu::GpuControl {
int32* id) OVERRIDE;
virtual void DestroyGpuMemoryBuffer(int32 id) OVERRIDE;
virtual uint32 InsertSyncPoint() OVERRIDE;
+ virtual uint32 InsertFutureSyncPoint() OVERRIDE;
+ virtual void RetireSyncPoint(uint32 sync_point) OVERRIDE;
virtual void SignalSyncPoint(uint32 sync_point,
const base::Closure& callback) OVERRIDE;
virtual void SignalQuery(uint32 query,
virtual void Echo(const base::Closure& callback) OVERRIDE;
virtual uint32 CreateStreamTexture(uint32 texture_id) OVERRIDE;
- void RequestAnimationFrames();
- void CancelAnimationFrames();
-
private:
+ class SyncClientImpl;
+
// CommandBufferClient implementation:
- virtual void DidInitialize(bool success) OVERRIDE;
- virtual void DidMakeProgress(CommandBufferStatePtr state) OVERRIDE;
virtual void DidDestroy() OVERRIDE;
virtual void LostContext(int32_t lost_reason) OVERRIDE;
// ErrorHandler implementation:
virtual void OnConnectionError() OVERRIDE;
- virtual void DrawAnimationFrame() OVERRIDE;
-
void TryUpdateState();
void MakeProgressAndUpdateState();
CommandBufferDelegate* delegate_;
CommandBufferPtr command_buffer_;
- scoped_ptr<SyncDispatcher<CommandBufferSyncClient> > sync_dispatcher_;
+ scoped_ptr<SyncClientImpl> sync_client_impl_;
State last_state_;
mojo::ScopedSharedBufferHandle shared_state_handle_;
int32 last_put_offset_;
int32 next_transfer_buffer_id_;
- bool initialize_result_;
const MojoAsyncWaiter* async_waiter_;
};