| Index: ppapi/proxy/compositor_resource.h
|
| diff --git a/ppapi/proxy/compositor_resource.h b/ppapi/proxy/compositor_resource.h
|
| index 1ad74b9dbdecf71a227da44efa9102f18ece8c08..f3d13d4ffc71ab522051f80a97538c4599738011 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,58 @@ 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);
|
| +
|
| + void ResetLayersInternal();
|
| +
|
| + // 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_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CompositorResource);
|
| };
|
|
|
|
|