// -- Sprオブジェクトの構築を行う public override ObjectIf Build() { SEH_Exception.init(); PHSceneIf phScene; if (enableDebugWindow) { fwApp = new FWApp(); fwApp.InitInNewThread(); // FWAppの初期化が終わるまで待つ while (fwApp.GetSdk() == null || fwApp.GetSdk().GetPHSdk() == null) { System.Threading.Thread.Sleep(10); } phSdk = fwApp.GetSdk().GetPHSdk(); phScene = fwApp.GetSdk().GetScene(0).GetPHScene(); phScene.Clear(); phScene.SetDesc((PHSceneDesc)desc); FWSceneIf fwSceneIf = fwApp.GetSdk().GetScene(0); fwSceneIf.EnableRenderContact(true); fwSceneIf.EnableRenderForce(false, true); //fwSceneIf.SetForceScale(0.01f, 0.01f); } else { phSdk = PHSdkIf.CreateSdk(); phScene = phSdk.CreateScene((PHSceneDesc)desc); } return(phScene); }
// ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- // MonoBehaviourのメソッド void Awake() { if (!enabled) { return; } if (app == null) { app = new FWApp(); app.CreateSdk(); FWSceneIf fwScene = app.GetSdk().CreateScene(new PHSceneDesc(), new GRSceneDesc()); fwScene.SetRenderMode(true, true); fwScene.EnableRenderPHScene(true); fwScene.EnableRenderForce(true, true); GRDeviceIf device = app.GRInit(); FWWinIf nullwin = new FWWinIf(); nullwin._this = (System.IntPtr) 0; FWWinIf win = app.CreateWin(new FWWinDesc(), nullwin); mainloop = new Thread(new ThreadStart(MainLoop)); mainloop.Start(); } }
private void OnDestroy() { if (fwApp != null) { fwApp.EndThread(); fwApp = null; if (phSdk != null) { phSdk.Clear(); phSdk = null; } } }
static void test_func_args() { test_name("function arguments"); // 引数をちゃんと設定しないと例外が起きる!! if (brk != "y") { return; } // default argument FWApp app = new FWApp(); FWWinDesc desc = new FWWinDesc(); FWWinIf winif = new FWWinIf(); try { FWWinIf win1 = app.CreateWin(); } catch (System.Exception e) { put(SEH_Exception.what(e)); } try { FWWinIf win2 = app.CreateWin(desc); } catch (System.Exception e) { put(SEH_Exception.what(e)); } try { FWWinIf win3 = app.CreateWin(desc, winif); } catch (System.Exception e) { put(SEH_Exception.what(e)); } // NULL pointer as argument try { FWWinIf win4 = app.CreateWin(desc, null); } catch (System.Exception e) { put(SEH_Exception.what(e)); } // これ以降のコードは正常には動作はしない - 例外が起きて停止する。 // デバッガで止めて値を確認すること。 // if (brk != "y") { return; } // [int] CDShapePairIf shapePairIf = new CDShapePairIf(); shapePairIf.GetShape(123); }
// -- Sprオブジェクトの構築を行う public override ObjectIf Build() { SEH_Exception.init(); FWAppBehaviour appB = GetComponent <FWAppBehaviour>(); PHSceneIf phScene; if (appB != null) { FWApp app = FWAppBehaviour.app; phSdk = app.GetSdk().GetPHSdk(); phScene = app.GetSdk().GetScene(0).GetPHScene(); phScene.Clear(); phScene.SetDesc((PHSceneDesc)desc); } else { phSdk = PHSdkIf.CreateSdk(); phScene = phSdk.CreateScene((PHSceneDesc)desc); } return(phScene); }