| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifdef __native_client__ | |
| 6 #include <irt.h> | |
| 7 #include <irt_ppapi.h> | |
| 8 #endif | |
| 9 | |
| 10 #include <stdio.h> | |
| 11 | |
| 12 #include "nacl_io/nacl_io.h" | |
| 13 #include "ppapi/c/pp_instance.h" | |
| 14 #include "ppapi/c/pp_module.h" | |
| 15 #include "ppapi_simple/ps_instance.h" | |
| 16 #include "ppapi_simple/ps_main.h" | |
| 17 | |
| 18 extern "C" int PpapiPluginMain(); | |
| 19 | |
| 20 void* PSMainCreate(PP_Instance inst, PSMainFunc_t entry_point) { | |
| 21 PSInstance* pInst = new PSInstance(inst); | |
| 22 pInst->SetMain(entry_point); | |
| 23 return pInst; | |
| 24 } | |
| 25 | |
| 26 /** | |
| 27 * main entry point for ppapi_simple applications. This differs from the | |
| 28 * regular ppapi main entry point in that it will fall back to running | |
| 29 * the user's main code in the case that the PPAPI hooks are not found. | |
| 30 * This allows ppapi_simple binary to run within chrome (with PPAPI present) | |
| 31 * and also under sel_ldr (no PPAPI). | |
| 32 */ | |
| 33 #ifdef __native_client__ | |
| 34 extern "C" int __nacl_main(int argc, char* argv[]) { | |
| 35 struct nacl_irt_ppapihook hooks; | |
| 36 if (nacl_interface_query(NACL_IRT_PPAPIHOOK_v0_1, &hooks, sizeof(hooks)) == | |
| 37 sizeof(hooks)) { | |
| 38 return PpapiPluginMain(); | |
| 39 } | |
| 40 #else | |
| 41 int main(int argc, char* argv[]) { | |
| 42 #endif | |
| 43 // By default, or if not running in the browser we simply run the main | |
| 44 // entry point directly, on the main thread. | |
| 45 int rtn = nacl_io_init(); | |
| 46 if (rtn != 0) | |
| 47 return rtn; | |
| 48 rtn = PSUserMainGet()(argc, argv); | |
| 49 nacl_io_uninit(); | |
| 50 return rtn; | |
| 51 } | |
| OLD | NEW |