1ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com// Use of this source code is governed by a BSD-style license that can be
3ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com// found in the LICENSE file.
4ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
5ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com#ifndef PPAPI_PROXY_PPP_GRAPHICS_3D_PROXY_H_
6ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com#define PPAPI_PROXY_PPP_GRAPHICS_3D_PROXY_H_
7ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
8f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "ppapi/c/pp_instance.h"
9ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com#include "ppapi/c/ppp_graphics_3d.h"
10f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina#include "ppapi/proxy/interface_proxy.h"
11ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com#include "ppapi/shared_impl/host_resource.h"
12ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
13ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.comnamespace ppapi {
14ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.comnamespace proxy {
15f168b86d7fafc5c20c87bebc6fd393cb17e120catfarina
16ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.comclass PPP_Graphics3D_Proxy : public InterfaceProxy {
17ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com public:
18ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com  PPP_Graphics3D_Proxy(Dispatcher* dispatcher);
19410e6e80f00a6c660675c80904807a041c7b7d2amtklein@google.com  virtual ~PPP_Graphics3D_Proxy();
20ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
213a67a668dbdc3a6bba68700a6dfdef8164ae0c69senorblanco@chromium.org  static const PPP_Graphics3D* GetProxyInterface();
22644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org
23644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org  // InterfaceProxy implementation.
24644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org  virtual bool OnMessageReceived(const IPC::Message& msg);
25644629c1c7913a43ced172b98d56e0f471bc348bcommit-bot@chromium.org
26ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com private:
27fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com  // Message handlers.
28ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com  void OnMsgContextLost(PP_Instance instance);
29ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
30ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com  // When this proxy is in the plugin side, this value caches the interface
31ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com  // pointer so we don't have to retrieve it from the dispatcher each time.
32fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com  // In the host, this value is always NULL.
333361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org  const PPP_Graphics3D* ppp_graphics_3d_impl_;
34ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
35ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com  DISALLOW_COPY_AND_ASSIGN(PPP_Graphics3D_Proxy);
36ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com};
37ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com
38ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com}  // namespace proxy
39ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com}  // namespace ppapi
403361471a3504ecd0351ff70f4c42d8d6fee963d4commit-bot@chromium.org
41ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com#endif  // PPAPI_PROXY_PPP_GRAPHICS_3D_PROXY_H_
42ebd24962dfdb7a62cf97c0e3938851d56cabd10freed@google.com