読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

XAML

GridViewのItemClickイベント

GridViewのItemClickイベントはビューのアイテムをクリックすると発生するのだけれども、このイベントの引数senderはアイテムにバインドされたデータソースのアイテムへのポインタであった。キャストは必要だが、なんと簡単な。Win32APIだとこの辺面倒くささ…

Box2D + WinRTでゲームを作る (13) – Menuページを作る

ページ切り換えのアイデア 最初UIの切り換えをWindow::Current->ContentにFrameをセットしてページを遷移する方法、つまり普通のやり方でやろうかなと思ったけれど、ページの中にFrameを埋め込み、そこにページを埋め込むやり方もあることを知り試すことにし…

StandardStyles.xamlが反映されない

やっぱりおかしい 基本ページを問題なく追加できたように見えたが、何かおかしい。タイトルの文字サイズが異様に小さいのである。 よく見ると追加しているページでエラーが発生している。 エラー 1 リソース "LayoutRootStyle" を解決できません。 エラー 2 …

基本ページ追加後に発生するエラー

基本ページを追加するという技 VS2012では「基本ページを追加する」という技がある。小技かな。 新しいプロジェクト項目として[基本ページ]を追加する。このときにメッセージボックスが出てきて、「不足しているファイルを自動的に追加しますか?」と尋ねら…

Box2D + WinRTでゲームを作る (12) – システム構成を考える

ちょこちょことUIのコードをいじっているが、まだしっくりとは来ていない。どうも全体像がつかめないし、何がどう機能しているのかもよくわからない。キーボード入力ってどういう風に書けばいいの?というレベルである。Win32 APIだとウィンドウメッセージを…

Box2D + WinRTでゲームを作る (11) – UI構成を考える

マップエディタやBox2Dのエディタも作れるようにXAMLの勉強を今している。一応Windows8がβ版のころからいじってはいたものの、デスクトップに回帰したためにすっかり忘れてしまっている。LayoutAwarePageってなんぞやと検索すると自分のブログの記事が出てき…

Data binding overview (Metro style apps using C#/VB/C++ and XAML)

Data binding overview (Metro style apps using C#/VB/C++ and XAML). Data Bindingについては今一度このドキュメントをチェックするとしよう。今までは軽く読み飛ばしていたけどね。

c++/cx metro の場合 mvvm がどのように実装されているか | Moonmile Solutions Blog

c++/cx metro の場合 mvvm がどのように実装されているか | Moonmile Solutions Blog. ちょうどいいタイミングでこのコンテンツを発見。

MVVMパターンの勉強

MVVMパターンのドキュメントを読んで重要なものをメモしとこう。下記がどの程度WinRT+XAMLで使えるのかわからないが。 MVVMはXAML系のために生まれたMVC系パターンである。 XAML系ライブラリでアプリを作ると自然とMVVMパターンとなるように制約が設けられて…

WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン

WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン. やっぱりWinRTのUIはXAMLなんだから、WPF/Silverlightなどの資料を読むのか理解への近道なんだろうということで漁っているのだけれど、どのドキュメントにも出てくるのがMVVMパターン。やっぱ…

メニューの背景画像

項目ページテンプレートを作って最初に表示されるメニューを作っている。項目の背景イメージをセットできるのでsvgで作ったイメージを表示させようとするのだけれどうまくいかなかった。ImageタグのSourceにセットできるのはビットマップだけのようだ。ここ…

XAMLを一つずつ勉強していくか

まずはVS2012のプロジェクト・テンプレートで作られるコードの中身を理解するために、XAMLコードの中にあるタグをひとつひとつ勉強していくことにしようかなと思う。前から言っているような気もするが。 テンプレートで作られるコードは結構複雑で、それをベ…

チュートリアル: C++ を使った初めての Metro スタイル アプリの作成

チュートリアル: C++ を使った初めての Metro スタイル アプリの作成. 基本的なことはここに書いてあった。のでちゃんと読むことにする。

UI構成を作り直している

いまのままのUI構成だと破綻しそうな気がするので改造している。1つのページの中でコンテンツを差し替える形から、複数ページを切り替える形に。

サウンド・エディタの作成

XAMLの勉強がてら、サウンド・エディタを作成している。ゲーム画面の上にいろいろなエディット画面を切り替えて表示するつもりである。 エディット画面はページで作成してメインページの特定領域に表示する。メインページの領域にページの内容を表示するやり…

XAMLで悪戦苦闘

ほんとになんだかよくわからないなぁ..。WPFで結構いじったはずなんだけどね。すっかり忘れてしまっている。 UIをいじりはじめてからPCがよく落ちるようになってしまった。なんでだろ。。

UIをいじりはじめる

UIを作り始めたけど、いやーさっぱりわかりませんな。

CompositionTarget::Renderingイベントの呼び出し周期を測ってみた

CompositionTarget::Renderingイベントの呼び出し周期を測ってみた。 最小値はやっぱりVSyncっぽい値だ。平均は50msとなっている。結構揺れが激しいようだ。CompositionTarget::Renderingイベントの発生が一定周期なのか、それとも描画時のみなのかはまだよ…

テクスチャをセル分割して表示できるようにした

テクスチャをセル分割して表示できるようにした。これでスクロールのマッピングやキャラクターアニメーションがやりやすくなる。下記の画面は爆発PNGファイルをアニメーションしてみているところ。 アンチエイリアスもOFFにしたので懐かしさを感じる拡大表示…

テクスチャをセル単位で表示できるようにする

テクスチャをセル単位で表示できるようにSimpleSpriteサンプルを変更している。たとえば下記のテクスチャだと赤い枠で囲った部分だけを表示できるようにする。 やり方はテクスチャのuv座標をいじって対象矩形をマッピングするだけだ。新たにシェーダーに矩形…

結局Z座標でソートした

結局描画前にZ座標でソートすることで優先順位制御をすることにした。下のスクリーンショットは飛行機を右斜めしたに順に優先順位が高くなるように描画してみたものだ。

スプライトの優先順位に取り組む

SimpleSpriteサンプルをベースにZバッファを使ってスプライトの優先順位を設定できるようにコードを変更し始めた。 HLSLまわりをいじってZバッファーに指定した値を書き込めるようにすればよいのかな? SimpleSpriteサンプルはテッセレーションの機能を使っ…

バックバッファの拡大表示

バックバッファの拡大表示はできた。まあ実画面サイズにスケーリングするだけなので簡単だが。 真ん中に32*32のスプライトを配置してみた。32*32でもでかいね..。アンチエイリアスが効いているのでぼけた感じがする。アンチエイリアスを無効化するか..。

バックバッファの表示

320×240のテクスチャーをバックバッファとして等倍で表示してみた。左上の黒い矩形がそれだ。昔のPCはこんなに小さな領域であったのか。。 これを実際のスクリーンに合わせて拡大表示すれば完成だ。次にZバッファを使ってスプライトの重ね合わせ制御をできる…

SimpleSpritesサンプルにZ座標を導入する

SimpleSpritesサンプルいじっているとZバッファを使ってないことがわかった。描画時の重ね合わせ優先制御はGPUに預けたいのでZ座標を導入してZバッファにその値を書き込むようにしようかなと思う。

ソースコードをいじり始めた

まずは320×240のテクスチャーをバックバッファに見立てて、それをスワップチェーンに拡大して表示するようにしてみる。

UIデザイナの問題

SwapChainBackgroundPanelを配置したXAMLコードをコンパイルするとUIデザイナで表示されなくなる問題だけど、Debugフォルダに出力される.winmdファイルが原因のようだ。.winmdファイルを消すと開ける。不思議ですな。一見関係のなさそうなファイルなのだが。

UIデザイナーの問題はまだまだ解決しない

UIデザイナーの問題の切り分けを行っているけど、まだ解決しない。ビルドすると発生するので、出力されるファイルを一個ずつ消してXAMLファイルを開き直し、回復するか確認をしている。障害が発生している状態だとXAMLファイルのオープン・クローズに異常に…

UIデザイナーの問題はまだ解決しない

SwapChainBackgroundPanelを配置したXAMLコードをコンパイルするとUIデザイナで表示されなくなる問題はまだ解決していない。もう少し切り分けしてみるかな。。

UIデザイナーの問題

SwapChainBackgroundPanel上にコントロールを配置しようとしているのだが、下記エラーが出て編集ができない。 クリーンアップすると編集できるのだが、一度でもビルドすると上記エラーが発生する。バグの報告はしておいたけど、このエラーの意味はなんなのか…

SImpleSprites SampleをSwapChainBackgroundPanelで動かせた

ようやくSimpleSprites SampleをSwapChainBackgroundPanelで動かすことができるようになった。Direct3D/2D描画の上にXAMLコントロールを重ねることができている。 DirectX 3D shooting game sample (XAML)を見ながらなので比較的簡単にできた。でもまだ理屈…

スワップチェーンとSwapChainBackgroundPanelとの結び付け

Simple3DGameXAMLサンプルコードをぼちぼちと読んでいる。興味のあるところはスワップチェーンとSwapChainBackgroundPanelとの結び付けの部分だ。こうなっていた。 // Create the swap chain and then associate it with the SwapChainBackgroundPanel DX::T…

SimpleSpritesをSwapChainBackgroundPanelで作りなおしてみる

XAML + Direct3Dの勉強のために、SimpleSpritesサンプルをSwapChainBackgroundPanelで作りなおしてみることにした。まあそんなに難しい作業ではないと思うのだが、どうか。

SwapChainBackgroundPanelはVS11のUIデザイナにちゃんと対応していた

サンプルコードの書き方をまねて、自分のプロジェクトでXAMLページ中にSwapChainBackgroundPanelを書いてみたところ、きちんとUIデザイナに表示された。よかった。。

SurfaceImageSource

SurfaceImageSourceって、UIコントロールかなと思っていたんだけど、イメージブラシのソースなんですな。よくわかってなかった。。 XAMLの中でDirectXを扱うのは楽になったんだけど、それでも面倒くさいねぇ。。

SwapChainBackgroundPanelはVS11のUIデザイナに対応していない→マチガイ

SwapChainBackgroundPanelはVS11のUIデザイナに対応していない..。UIデザイナが使えないのは痛いな。UIをエディットするのが楽だから、SwapChainBackgroundPanelにしようかなと思っていたのだが。 上記はサンプルコードのXAMLページがUIデザイナで表示されな…

Data binding with XAML

Data binding with XAML. 私がデータバインド機能に初めて出会ったのはASP.NETがリリースされたころである。これを使えばデータとUIの結び付けが簡単にできるので冗長で退屈なコードを書かなくてもよくなるのだが、それと引き換えにパフォーマンスが犠牲にな…

コードの変更

以前作ったCore Audio管理クラス群をWindows8に移植し始めた。今のところ、 __com_ptrはMicrosoft::WRL::ComPtrに変更 MMDeviceによるデバイス列挙はWindows::Devices::Enumerationに変更 IAudioClient2のActivateはActivateAudioInterfaceに変更 eDataFlow…

STAとMTA

STAとMTA. Metro StyleであってもSTA/MTAの考え方は健在なようだ。XAML UIはやっぱり伝統のSTAなのかな? このあたりかなりいい加減な知識なので整理して覚えておきたい。

task<T>().then()による列挙

デバイス列挙サンプル中のDeviceInformationの列挙はtask<T>で行っていたので真似してみた。これだとすっきり書ける。ついでにデータバインドもやってみた。ソースはほとんどコピペ状態。 FakeDAW::FakeDAW() { InitializeComponent(); task<DeviceInformationCollection^>( DeviceInformation</deviceinformationcollection^></t>…

ハリボテの作成

とりあえずUIエディタでハリボテを作ってみた。 Windows Phone SDKですでに分かっていたが、このUIエディタは使いやすい。

Combining XAML and DirectX - Windows 8 app developer blog - Site Home - MSDN Blogs

Combining XAML and DirectX - Windows 8 app developer blog - Site Home - MSDN Blogs. DirectX and XAML interopの内容をやさしく解説。まだ日本語訳されていない。

DirectX and XAML interop

DirectX and XAML interop. DirectXとXAMLの相互運用に関して。SurfaceImageSourceはXAMLの中にDirectXの描画領域を作る。VirtualSurfaceImageSourceは大きい領域をDirectXで描画するときに使う。 SwapChainBackgroundPanelは背景をDiretctXスワップチェーン…

//build/ 以降のアプリ開発者向けの変更点 (第 1 部) - Windows 8 アプリ開発者ブログ - Site Home - MSDN Blogs

「DirectX を使ってかなり高速にレンダリングできる必要があり、Metro スタイル UI も使いたいと思っています。つまり、DirectX で UI 全体を一から記述したくないのです」– Metro スタイル アプリ開発者 引用元: //build/ 以降のアプリ開発者向けの変更点 (…