Liczniki wydajności w Windows Store Apps

Ostatnio pisałem na temat zdarzenia BindingFailed klasy DebuggerSettings. Jedną z niewielu właściwości tej klasy jest EnableFrameRateCounter.

public App()
{
    InitializeComponent();
    Suspending += OnSuspending;

    DebugSettings.EnableFrameRateCounter = true;
}

Zmiana tej flagi na true sprawia, ze w górnym lewym rogu uruchomionej aplikacji pojawią się liczniki wydajności, które doskonale znają programiści Windows Phone.

FramerateCountersWindowsStoreApps

 

Znaczenie poszczególnych wartości:

  • Cp fps: the frames-per-second frame rate for the composition thread
  • UI fps: the frames-per-second frame rate for the UI thread
  • Memory: memory utilization for textures
  • Batch: the count of surfaces that are sent to the graphics processing unit (GPU)
  • Cp cpu: time in milliseconds spent on the composition thread’s processor
  • UI cpu: time in milliseconds spent on the UI thread’s processor

Debugowanie BindingExpression w Windows Store Apps

Jedną z zalet XAML’a, DataBinding i MVVM jest to, że grafik i programista mogę swobodnie pracować nad tą samą aplikacją. Miejscem styku są wyrażenia BindingExpression w kodzie XAML. Niestety, czasami styku nie ma, albo wręcz robią się zwarcia i trzeba na to jakoś zareagować. Czytaj dalej

Zastosowanie SemanticZoom z domyślnym ZoomOut

Ostatnio portowałem moją aplikację Relax z Windows Phone do Windows Store. Oryginalna aplikacja została utworzona w XNA, bo chciałem mieć ładne animowane, opadające kształty (tekstury) oraz płynne przejścia tła (wiem, wiem…to samo też można zrobić w Silverlight, ale miałem problemy z wydajnością i obciążeniem procesora). Relaxed (tak się nazywa w Windows Store, bo ktoś mi wcześniej zajumał nazwę „Relax”) to MonoGame + XAML.

Relax - Menu Relax - Rain theme Relax - Forest theme Relax - Beach theme

W tej wersji aplikacji zdecydowałem się na menu w XAML’u, a część releksacyjna (muzyka + animacje) to XNA. Pomyślałem sobię, że fajnie by było użyć kontrolki SemanticZoom. W trybie ZoomIn (normalny) nic nie ma (nie ma zawartości XAML) więc widać to co rysuje XNA. W trybie ZoomOut (oddalony) pojawiają się kontrolki, gdzie użytkownik wybiera interesujący go temat.

Relaxed - Main menu Relaxed - Forest  theme Relaxed - Rain theme Czytaj dalej

Skórka Dark i Light w aplikacjach Windows Store

Zapewne każdy Win8Dev wie, że szablony projektów aplikacji Windows Store (Windows 8) są domyślnie w ciemnej tonacji. Nie ważne czy wybierzesz BlankApp, GridApp czy SplitApp, aplikacja po uruchomieniu będzie wyglądała mniej więcej jak poniżej:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Ale wystarczy, że w App.xaml, w nagłówku wpiszesz jedną linijkę:

RequestedTheme="Light"

Windows Store apps - RequestedTheme

Teraz ta sama aplikacja będzie ubrana w białą skórkę:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Jak zobaczyć status aplikacji Windows Store w Task Manager

Jedną ze zmian w Windows 8 jest nowy Task Manager (Manager zadań). Domyślnie jest on w wersji super minimalistycznej, która wyświetla tylko listę uruchomionych aplikacji (lista ta jest dodatkowo filtrowana, nie widać wszystkiego).

Windows 8 - Task Manager

Dla Power Userów jest też możliwość wyświetlania bardziej szczegółowych informacji. W tym celu należy kliknąć na More details u dołu okna. Czytaj dalej

Portowanie gier z XNA WP7 na Windows 8 MonoGame

MonoGameDo tej pory omówiłem już projekt MonoGame, jego szablony oraz przedstawiłem sposób na XNA Content Pipeline. Najwyższy czas na portowanie prawdziwej gry z Windows Phone 7 do Windows Store.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

XNA Content Pipeline w MonoGame

MonoGamePierwszy project MonoGame dla Windows 8 (i nie tylko) gotowy. Ale poprzednio wspomniałem, że obecna wersja MonoGame nie obsługuje XNA Content Pipeline. W tym poście podam rozwiązanie (mam nadzieję, że tylko tymczasowe) tego problemu, bo Content i assety są nam baaaardzo potrzebne.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

Pierwszy projekt MonoGame dla Windows 8

MonoGameWiemy już czym jest MonoGame i jak je zainstalować więc czas na utworzenie pierwszego projektu.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

XNA – skalowanie i centrowanie

XNAJeśli ktoś (tak jak ja) pierwsze kroki z XNA stawiał w Windows Phone, to możliwe, na w swoich projektach założył dość sztywne reguły, np: rozdzielczość urządzenia to 800×480 pikseli. Tak właśnie zrobiłem ja. Na jakiś czas (około 1 rok) było to ok, bo wszystkie telefony z Windows Phone pracowały właśnie w tej rozdzielczości. Ale czasy się zmieniły. Z jednej strony pojawił się Windows Phone 8 i nowe rozdzielczości, a z drugiej strony Windows 8, gdzie różnych rozdzielczości, formatów jest jeszcze więcej.

Ten wpis powstał w nawiązaniu do mojej mini-serii o portowaniu gier z Windows Phone 7 do Windows Store przy pomocy MonoGameCzytaj dalej

Instalacja MonoGame dla Windows 8

MonoGameWe wcześniejszym wpisie pisałem już o projekcie MonoGame. Dzisiaj przyszedł na wskazówki dotyczące instalacji tego dobrodziejstwa. Normalnie bym to pominął, ale sam miałem kilka problemów więc abyś nie tracił czasu na szukanie rozwiązania, zebrałem wszystko w jednym miejscu. Poniżej znajdziesz prawidłową kolejność odpowiednich SDK wraz z linkami.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

Czytaj dalej