Chromium Code Reviews| Index: ppapi/proxy/compositor_resource.h |
| diff --git a/ppapi/proxy/compositor_resource.h b/ppapi/proxy/compositor_resource.h |
| index 1ad74b9dbdecf71a227da44efa9102f18ece8c08..e5f4af0666282db6588ca81d78d1595f7ad5f180 100644 |
| --- a/ppapi/proxy/compositor_resource.h |
| +++ b/ppapi/proxy/compositor_resource.h |
| @@ -5,6 +5,9 @@ |
| #ifndef PPAPI_PROXY_COMPOSITOR_RESOURCE_H_ |
| #define PPAPI_PROXY_COMPOSITOR_RESOURCE_H_ |
| +#include <map> |
| + |
| +#include "ppapi/proxy/compositor_layer_resource.h" |
| #include "ppapi/proxy/plugin_resource.h" |
| #include "ppapi/proxy/ppapi_proxy_export.h" |
| #include "ppapi/thunk/ppb_compositor_api.h" |
| @@ -19,18 +22,56 @@ class PPAPI_PROXY_EXPORT CompositorResource |
| CompositorResource(Connection connection, |
| PP_Instance instance); |
| + bool IsInProgress() const { |
| + return TrackedCallback::IsPending(commit_callback_); |
| + } |
| + |
| + int32_t GenerateResourceId() const { |
| + return ++last_resource_id_; |
| + } |
| + |
| private: |
| virtual ~CompositorResource(); |
| // Resource overrides: |
| virtual thunk::PPB_Compositor_API* AsPPB_Compositor_API() OVERRIDE; |
| + // PluginResource overrides: |
| + virtual void OnReplyReceived(const ResourceMessageReplyParams& params, |
| + const IPC::Message& msg) OVERRIDE; |
| + |
| // thunk::PPB_Compositor_API overrides: |
| virtual PP_Resource AddLayer() OVERRIDE; |
| virtual int32_t CommitLayers( |
| - const scoped_refptr<ppapi::TrackedCallback>& callback) OVERRIDE; |
| + const scoped_refptr<TrackedCallback>& callback) OVERRIDE; |
| virtual int32_t ResetLayers() OVERRIDE; |
| + // IPC msg handlers: |
| + void OnPluginMsgCommitLayersReply(const ResourceMessageReplyParams& params); |
| + void OnPluginMsgReleaseResource( |
| + const ResourceMessageReplyParams& params, |
| + int32_t id, |
| + uint32_t sync_point, |
| + bool is_lost); |
| + |
| + // Callback for CommitLayers(). |
| + scoped_refptr<TrackedCallback> commit_callback_; |
| + |
| + // True if layers_ has been reset by ResetLayers(). |
| + bool layer_reset_; |
| + |
| + // Layer stack. |
| + typedef std::vector<scoped_refptr<CompositorLayerResource> > LayerList; |
| + LayerList layers_; |
| + |
| + // Release callback map for texture and image. |
| + typedef CompositorLayerResource::ReleaseCallback ReleaseCallback; |
| + typedef std::map<int32_t, ReleaseCallback> ReleaseCallbackMap; |
| + ReleaseCallbackMap release_callback_map_; |
| + |
| + // The last resource id for texture or image. |
| + mutable int32_t last_resource_id_; |
|
raymes
2014/06/04 01:11:39
Why is this mutable?
Peng
2014/06/05 00:50:38
In CompositorLayerResource(CLR), we use a const Co
|
| + |
| DISALLOW_COPY_AND_ASSIGN(CompositorResource); |
| }; |