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