Windows Phone 7 Emulatorのフレームレートカウンター

※内容に微妙な部分があるので補足しておくと、「フレームレートカウンターが写っていると、Marketplaceでその画像を使った場合、リジェクトされる可能性あり」ということですので、念のため。

が~ん、またReject…今度は何?アプリケーション画面にフレームレートカウンターが写ってるから駄目?…ってことで、調べてみました。他のエバのブログにも特に説明がないようなので、ここで解説しておきます。

英語の説明は、こちら
https://msdn.microsoft.com/en-us/library/gg588380(v=VS.92).aspx

フレームレートカウンターは、図の通り

この意味するところは、上から、

  • Composition Render Thread FPS
    Composition Render スレッドの更新レート
  • User Interface Thread FPS
    UIスレッドの実行レート
  • Texture Memory Usage
    アプリケーションで使用されているテクスチャに関するビデオメモリとシステムメモリのコピー量
  • Surface Counter
    明確に表面に描画するためにGPU処理に渡される数
  • Intermediate Surface Counter
    キャッシュされた表面用に暗黙的に生成された数
  • Screen Fill Rate Counter
    スクリーンの一フレームあたりで描画されたピクセル数。480X800ピクセルを1として表現

という意味だそうです。要はアプリケーションのパフォーマンスがどうかってことですね。作ったアプリがもっさり動いとるなぁ…という場合には、この値が参考になるかもしれません。
で、プロジェクトを作成した直後はデフォルトで表示される設定になっています。…、このままスクリーンショットを撮ってMarketplaceに登録すると駄目なんだねぇこれが。

なので、Marketplaceに登録する画像をスクリーンショットする前に、App.xaml.csを開き、

        public App()
        {
            // キャッチできない例外のグローバル ハンドラーです。
            UnhandledException += Application_UnhandledException;

            // Silverlight の標準初期化
            InitializeComponent();

            // Phone 固有の初期化
            InitializePhoneApplication();

            // デバッグ中にグラフィックスのプロファイル情報を表示します。
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // 現在のフレーム レート カウンターを表示します。
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

 の、赤字で示したプロパティをfalseにするか、コメントアウトすることをお忘れなきよう。この行の下にも幾つかパフォーマンスの指標になる値の表示を制御するプロパティ設定があるので、色々試してみてくださいね。

これで少なくとも、MarketplaceでのRejectの確立が減・る・か・も・ね