void register_all_cocos2dx_extension_manual(JSContext* cx, JS::HandleObject global) { JS::RootedObject am(cx, jsb_cocos2d_extension_AssetsManagerEx_prototype); JS_DefineFunction(cx, am, "retain", js_cocos2dx_ext_retain, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, am, "release", js_cocos2dx_ext_release, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject manifest(cx, jsb_cocos2d_extension_Manifest_prototype); JS_DefineFunction(cx, manifest, "retain", js_cocos2dx_ext_retain, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, manifest, "release", js_cocos2dx_ext_release, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); //JS_DefineFunction(cx, jsb_cocos2d_extension_AssetsManager_prototype, "updateAssets", js_cocos2dx_ext_AssetsManager_updateAssets, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); //JS_DefineFunction(cx, jsb_cocos2d_extension_AssetsManager_prototype, "getFailedAssets", js_cocos2dx_ext_AssetsManager_getFailedAssets, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, JS::RootedObject(cx, jsb_cocos2d_extension_ScrollView_prototype), "setDelegate", js_cocos2dx_CCScrollView_setDelegate, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject tableview(cx, jsb_cocos2d_extension_TableView_prototype); JS_DefineFunction(cx, tableview, "setDelegate", js_cocos2dx_CCTableView_setDelegate, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tableview, "setDataSource", js_cocos2dx_CCTableView_setDataSource, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tableview, "_init", js_cocos2dx_CCTableView_init, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject control(cx, jsb_cocos2d_extension_Control_prototype); JS_DefineFunction(cx, control, "addTargetWithActionForControlEvents", js_cocos2dx_CCControl_addTargetWithActionForControlEvents, 3, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, control, "removeTargetWithActionForControlEvents", js_cocos2dx_CCControl_removeTargetWithActionForControlEvents, 3, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject tmpObj(cx, anonEvaluate(cx, global, "(function () { return cc.TableView; })()").toObjectOrNull()); JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_CCTableView_create, 3, JSPROP_READONLY | JSPROP_PERMANENT); JS::RootedObject jsbObj(cx); create_js_root_obj(cx, global, "jsb", &jsbObj); JS_DefineFunction(cx, jsbObj, "loadRemoteImg", js_load_remote_image, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
bool js_coolexp_ErayLayer_setDelegate(JSContext *cx, uint32_t argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp(argc, vp); bool ok = true; JS::RootedObject obj(cx, args.thisv().toObjectOrNull()); js_proxy_t *proxy = jsb_get_js_proxy(obj); ErayLayer* cobj = (ErayLayer *)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( cobj, cx, false, "js_coolexp_ErayLayer_setDelegate : Invalid Native Object"); if (argc == 1) { ErayDelegate* arg0 = nullptr; do { if (args.get(0).isNull()) { arg0 = nullptr; break; } if (!args.get(0).isObject()) { ok = false; break; } js_proxy_t *jsProxy; JS::RootedObject tmpObj(cx, args.get(0).toObjectOrNull()); jsProxy = jsb_get_js_proxy(tmpObj); arg0 = (ErayDelegate*)(jsProxy ? jsProxy->ptr : NULL); JSB_PRECONDITION2( arg0, cx, false, "Invalid Native Object"); } while (0); JSB_PRECONDITION2(ok, cx, false, "js_coolexp_ErayLayer_setDelegate : Error processing arguments"); cobj->setDelegate(arg0); args.rval().setUndefined(); return true; } JS_ReportError(cx, "js_coolexp_ErayLayer_setDelegate : wrong number of arguments: %d, was expecting %d", argc, 1); return false; }
bool js_coolexp_ErayUIHelper_log(JSContext *cx, uint32_t argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp(argc, vp); bool ok = true; if (argc == 2) { std::string arg0; cocos2d::Node* arg1 = nullptr; ok &= jsval_to_std_string(cx, args.get(0), &arg0); do { if (args.get(1).isNull()) { arg1 = nullptr; break; } if (!args.get(1).isObject()) { ok = false; break; } js_proxy_t *jsProxy; JS::RootedObject tmpObj(cx, args.get(1).toObjectOrNull()); jsProxy = jsb_get_js_proxy(tmpObj); arg1 = (cocos2d::Node*)(jsProxy ? jsProxy->ptr : NULL); JSB_PRECONDITION2( arg1, cx, false, "Invalid Native Object"); } while (0); JSB_PRECONDITION2(ok, cx, false, "js_coolexp_ErayUIHelper_log : Error processing arguments"); ErayUIHelper::log(arg0, arg1); args.rval().setUndefined(); return true; } JS_ReportError(cx, "js_coolexp_ErayUIHelper_log : wrong number of arguments"); return false; }
static bool js_cocos2dx_CCTableView_init(JSContext *cx, uint32_t argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp(argc, vp); JS::RootedObject obj(cx, args.thisv().toObjectOrNull()); js_proxy_t *proxy = jsb_get_js_proxy(obj); cocos2d::extension::TableView* cobj = (cocos2d::extension::TableView *)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( cobj, cx, false, "js_cocos2dx_extension_TableView_dequeueCell : Invalid Native Object"); bool ok = true; if (argc == 3 || argc == 2) { JSB_TableViewDataSource* pNativeSource = new (std::nothrow) JSB_TableViewDataSource(); JS::RootedObject jsdata(cx, args.get(0).toObjectOrNull()); pNativeSource->setTableViewDataSource(jsdata); cobj->setDataSource(pNativeSource); JS_SetProperty(cx, obj, "_dataSource", args.get(0)); cocos2d::Size arg1; ok &= jsval_to_ccsize(cx, args.get(1), &arg1); if (argc == 2) { cobj->initWithViewSize(arg1); } else { cocos2d::Node* arg2; do { JS::RootedObject tmpObj(cx, args.get(2).toObjectOrNull()); proxy = jsb_get_js_proxy(tmpObj); arg2 = (cocos2d::Node*)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( arg2, cx, false, "Invalid Native Object"); } while (0); JSB_PRECONDITION2(ok, cx, false, "Error processing arguments"); cobj->initWithViewSize(arg1, arg2); } cobj->reloadData(); __Dictionary* userDict = new (std::nothrow) __Dictionary(); userDict->setObject(pNativeSource, KEY_TABLEVIEW_DATA_SOURCE); cobj->setUserObject(userDict); userDict->release(); pNativeSource->release(); args.rval().setUndefined(); return true; } JS_ReportError(cx, "wrong number of arguments"); return false; }
boost::intrusive_ptr<tObj> pEngine::CreateVirtObj(float rad,D3DXVECTOR3 pos, D3DXVECTOR3 tx, D3DXVECTOR3 ty, D3DXVECTOR3 tz){ boost::intrusive_ptr<tObj> tmpObj(new tObj); tmpObj->pos=pos; tmpObj->tx=tx; tmpObj->ty=ty; tmpObj->tz=tz; tmpObj->radius=rad; tmpObj->gRes=0; virtObjList.push_back(tmpObj); return tmpObj; }
boost::intrusive_ptr<tObj> pEngine::CreateObj(int gres,float rad,D3DXVECTOR3 pos,int indexEngine,float fShield,int idGr,bool camera){ boost::intrusive_ptr<tObj> tmpObj(new tObj); objChange=true; if (indexEngine>10) indexEngine=0; tmpObj->inertX=engList[indexEngine].inertX; tmpObj->inertZ=engList[indexEngine].inertZ; tmpObj->inertY=engList[indexEngine].inertY; tmpObj->inertSpeed=engList[indexEngine].inertSpeed; tmpObj->tx=D3DXVECTOR3(1,0,0); tmpObj->ty=D3DXVECTOR3(0,1,0); tmpObj->tz=D3DXVECTOR3(0,0,1);// -1 ? ++uinCount; tmpObj->uin=uinCount; tmpObj->gRes=gres; tmpObj->radius=rad; tmpObj->pos=pos; tmpObj->baseShield=fShield; tmpObj->idGroup=idGr; D3DXMATRIX matView; D3DXMatrixIdentity(&matView); D3DXVECTOR3 eye=tmpObj->tz; D3DXMatrixLookAtLH (&matView, &D3DXVECTOR3(0,0,0),&eye,&tmpObj->ty); // D3DXMatrixTranspose(&matView,&matView); tmpObj->m=matView; if (tmpObj->radius==3){ int my=0; } WaitForSingleObject(hObjList,INFINITE); if (camera) objList.push_front(tmpObj); else objList.push_back(tmpObj); ReleaseMutex(hObjList); return tmpObj; }
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx) override { JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); JS::RootedValue ret(cx); bool ok = callJSDelegate(table, idx, "tableCellAtIndex", &ret); if (ok) { cocos2d::extension::TableViewCell* arg0; do { js_proxy_t *proxy; JS::RootedObject tmpObj(cx, ret.toObjectOrNull()); proxy = jsb_get_js_proxy(tmpObj); arg0 = (cocos2d::extension::TableViewCell*)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( arg0, cx, NULL, "Invalid Native Object"); } while (0); return arg0; } return NULL; }
boost::intrusive_ptr<tObj> pEngine::CreatePointObj(float rad,boost::intrusive_ptr<tObj> home,D3DXVECTOR3 delta, int idGroup){ boost::intrusive_ptr<tFormations> tmpObj(new tFormations); tmpObj->home=home; // пустой объект boost::intrusive_ptr<tObj> nullObj(new tObj); nullObj->pos=home->pos+delta; nullObj->tx=D3DXVECTOR3(1,0,0); nullObj->ty=D3DXVECTOR3(0,1,0); nullObj->tz=D3DXVECTOR3(0,0,1); nullObj->radius=rad; nullObj->gRes=0; //********************* tmpObj->obj=nullObj; tmpObj->delta=delta; tmpObj->idGroup=idGroup; formationsObjList.push_back(tmpObj); return nullObj; }
void register_all_cocos2dx_extension_manual(JSContext* cx, JS::HandleObject global) { JS::RootedObject ccObj(cx); JS::RootedObject jsbObj(cx); JS::RootedValue tmpVal(cx); JS::RootedObject tmpObj(cx); get_or_create_js_obj(cx, global, "cc", &ccObj); get_or_create_js_obj(cx, global, "jsb", &jsbObj); tmpObj.set(jsb_cocos2d_extension_AssetsManagerEx_prototype); JS_DefineFunction(cx, tmpObj, "retain", js_cocos2dx_retain, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tmpObj, "release", js_cocos2dx_release, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); tmpObj.set(jsb_cocos2d_extension_Manifest_prototype); JS_DefineFunction(cx, tmpObj, "retain", js_cocos2dx_retain, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tmpObj, "release", js_cocos2dx_release, 0, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_GetProperty(cx, ccObj, "EventListenerAssetsManager", &tmpVal); tmpObj.set(tmpVal.toObjectOrNull()); JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_extension_EventListenerAssetsManagerEx_create, 2, JSPROP_READONLY | JSPROP_PERMANENT); tmpObj.set(jsb_cocos2d_extension_EventListenerAssetsManagerEx_prototype); JS_DefineFunction(cx, tmpObj, "init", js_cocos2dx_extension_EventListenerAssetsManagerEx_init, 2, JSPROP_ENUMERATE | JSPROP_PERMANENT); tmpObj.set(jsb_cocos2d_extension_ScrollView_prototype); JS_DefineFunction(cx, tmpObj, "setDelegate", js_cocos2dx_CCScrollView_setDelegate, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject tableview(cx, jsb_cocos2d_extension_TableView_prototype); JS_DefineFunction(cx, tableview, "setDelegate", js_cocos2dx_CCTableView_setDelegate, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tableview, "setDataSource", js_cocos2dx_CCTableView_setDataSource, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, tableview, "_init", js_cocos2dx_CCTableView_init, 1, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS::RootedObject control(cx, jsb_cocos2d_extension_Control_prototype); JS_DefineFunction(cx, control, "addTargetWithActionForControlEvents", js_cocos2dx_CCControl_addTargetWithActionForControlEvents, 3, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_DefineFunction(cx, control, "removeTargetWithActionForControlEvents", js_cocos2dx_CCControl_removeTargetWithActionForControlEvents, 3, JSPROP_ENUMERATE | JSPROP_PERMANENT); JS_GetProperty(cx, ccObj, "TableView", &tmpVal); tmpObj.set(tmpVal.toObjectOrNull()); JS_DefineFunction(cx, tmpObj, "create", js_cocos2dx_CCTableView_create, 3, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsbObj, "loadRemoteImg", js_load_remote_image, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
bool js_cocos2dx_extension_EventListenerAssetsManagerEx_create(JSContext *cx, uint32_t argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp(argc, vp); bool ok = true; if (argc == 2) { cocos2d::extension::AssetsManagerEx* arg0 = nullptr; std::function<void (cocos2d::extension::EventAssetsManagerEx *)> arg1; do { if (args.get(0).isNull()) { arg0 = nullptr; break; } if (!args.get(0).isObject()) { ok = false; break; } js_proxy_t *jsProxy; JS::RootedObject tmpObj(cx, args.get(0).toObjectOrNull()); jsProxy = jsb_get_js_proxy(tmpObj); arg0 = (cocos2d::extension::AssetsManagerEx*)(jsProxy ? jsProxy->ptr : NULL); JSB_PRECONDITION2( arg0, cx, false, "Invalid Native Object"); } while (0); do { if(JS_TypeOfValue(cx, args.get(1)) == JSTYPE_FUNCTION) { JS::RootedObject jstarget(cx, args.thisv().toObjectOrNull()); std::shared_ptr<JSFunctionWrapper> func(new JSFunctionWrapper(cx, jstarget, args.get(1))); auto lambda = [=](cocos2d::extension::EventAssetsManagerEx* larg0) -> void { JSB_AUTOCOMPARTMENT_WITH_GLOBAL_OBJCET jsval largv[1]; do { if (larg0) { js_type_class_t* typeClass = js_get_type_from_native<cocos2d::extension::EventAssetsManagerEx>(larg0); largv[0] = OBJECT_TO_JSVAL(jsb_get_or_create_weak_jsobject(cx, larg0, typeClass, "cocos2d::extension::EventAssetsManagerEx")); } else { largv[0] = JSVAL_NULL; } } while (0); JS::RootedValue rval(cx); bool succeed = func->invoke(1, &largv[0], &rval); if (!succeed && JS_IsExceptionPending(cx)) { JS_ReportPendingException(cx); } removeJSObject(cx, larg0); }; arg1 = lambda; } else { arg1 = nullptr; } } while(0) ; JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_extension_EventListenerAssetsManagerEx_create : Error processing arguments"); cocos2d::extension::EventListenerAssetsManagerEx* ret = cocos2d::extension::EventListenerAssetsManagerEx::create(arg0, arg1); jsval jsret = JSVAL_NULL; if (ret) { JS::RootedObject jsobj(cx, js_get_or_create_jsobject<cocos2d::extension::EventListenerAssetsManagerEx>(cx, ret)); jsret = OBJECT_TO_JSVAL(jsobj); } else { jsret = JSVAL_NULL; } args.rval().set(jsret); return true; } JS_ReportError(cx, "js_cocos2dx_extension_EventListenerAssetsManagerEx_create : wrong number of arguments"); return false; }