static void Main() { // フォームとメインサンプルクラスを作成 using (Form1 frm = new Form1()) { ResourceBuilder nyar_res; try { nyar_res = new ResourceBuilder(); } catch (Exception e) { MessageBox.Show(e.Message, "SimpleLiteD3d::デバイスの初期化に失敗しました。"); return; } using (Test_NyARRealityD3d_ARMarker sample = new Test_NyARRealityD3d_ARMarker(frm, nyar_res)) { // メインフォームを表示 frm.Show(); //キャプチャ開始 sample.start(); Stopwatch sw = new Stopwatch(); // フォームにフォーカスがある間はループし続ける while (frm.Focused) { sw.Start(); // メインループ処理を行う sample.MainLoop(); //スレッドスイッチ Thread.Sleep(0); // イベントがある場合はその処理する Application.DoEvents(); sw.Stop(); //sample.fps_x_100 = (int)(1000 * 100 / (sw.ElapsedMilliseconds+1)); sw.Reset(); } //キャプチャの停止 sample.stop(); } } return; }
public Test_NyARRealityD3d_ARMarker(Form1 topLevelForm, ResourceBuilder i_resource) { this._capture = i_resource.createWmCapture(); this._capture.setOnSample(this); this._d3dmgr = i_resource.createD3dManager(topLevelForm); this._back_ground = i_resource.createBackGround(this._d3dmgr); this._d3dcube = new ColorCube(this._d3dmgr.d3d_device, 40); //ARラスタを作る(DirectShowキャプチャ仕様)。 this.m_raster = i_resource.createARRaster(); //AR用のパターンコードを読み出 //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarker(i_resource.createNyARCode(), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(i_resource.ar_param, 10, 10000, 1, 5); this._reality_source = new NyARRealitySource_WMCapture(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); }
public Test_NyARRealityD3d_ARMarker(Form1 topLevelForm, ResourceBuilder i_resource) { this._capture = i_resource.createWmCapture(); this._capture.setOnSample(this); this._d3dmgr = i_resource.createD3dManager(topLevelForm); this._back_ground = i_resource.createBackGround(this._d3dmgr); this._d3dcube = new ColorCube(this._d3dmgr.d3d_device,40); //ARラスタを作る(DirectShowキャプチャ仕様)。 this.m_raster = i_resource.createARRaster(); //AR用のパターンコードを読み出 //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarker(i_resource.createNyARCode(), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(i_resource.ar_param, 10, 10000, 1, 5); this._reality_source = new NyARRealitySource_WMCapture(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); }