WinRT: Debugowanie projektów C++ w C#

Od kilku dni użeram się z projektem WinRT C#/XAML, który korzysta z projektu WinRT C++. Ta sytuacja rodzi u mnie wiele problemów, z którymi sobię jakoś daję powoli radę. Jednym z WTF, na które natrafiłem to problem debugowania mieszanej solucji. A ponieważ ja ostatni raz w C++ pisałem dekadę temu to współczynnik WTF per minute mam wysoki. Czytaj dalej

Custom development in Lync 2013

Microsoft Lync 2013

Ostatnio udało nam się reaktywować firmowego bloga. Jest to też jeden z kanałów, którymi otwieramy się na dev-community.

I tak chciałbym zachęcić wszystkich swoich czytelników do mojej pierwszej publikacji na ów blogu, gdzie opisuję jak szybko i łatwo zacząć custom-development z Lync 2013.

Orbit One Blog: Custom development in Lync 2013

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

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

Wysyłanie wiadomości SMS (Windows Phone SDK)

W tym poście znajdziesz informacje jak komponować (wysyłać) wiadomości SMS w Windows Phone. Opisuję tu:

  • proste wysyłanie SMS’a do jednego odbiorcy
  • wybieranie odbiorcy z listy kontaktów w telefonie
  • wysyłanie SMS’a do wielu odbiorców

Zapraszam do czytania i komentowania. Czytaj dalej

Visual C# MVP 2012

1 październik to dzień ogłaszania nominacji i renominacji do tytułu MVP. Miło mi ogłosić, że Microsoft przyznał mi renominację na kolejny rok w kategorii Visual C#:

Dear Wojciech Poniatowski,

Congratulations! We are pleased to present you with the 2012 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual C# technical communities during the past year.

Czytaj dalej

WP XNA 13: Trial

Windows Phone jako jedyna platforma umożliwia tworzenie aplikacji z tzw. Trial’em. Wiem, ktoś może powiedzieć, że przecież w AppStore czy Android Market też są aplikacje płatne i darmowe. Czym więc różni się Windows Phone? Tym, że możemy stworzyć jedną aplikację, która będzie jednocześnie wersją Trial i pełną, a Windows Phone Marketplace automatycznie zadba o procedurę kupna i podniesienia wersji z darmowej na pełną.

W tym poście opiszę moje podejście do tego tematu. Na koniec opiszę jakiego rodzaju Triale można stosować oraz na co zwrócić uwagę.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej