niedziela, 30 stycznia 2011

Dźwięki systemowe Windows

O istnieniu dźwięków systemowych i możliwości ich zmiany poprzez Panel Sterowania zna każdy trochę bardziej świadomy użytkownik systemów Microsoftu. Trochę mniej zdaje sobie sprawę, że ten mechanizm może zostać wykorzystany przez inne programy poza systemem operacyjnym.

Obsługa domyślnie istniejących dźwięków systemowych jest banalna i wymaga użycia funkcji PlaySound z WinApi (wymaga dołączenia biblioteki Winmm.lib). Przykładowo aby odegrać systemowy dźwięk błędu (asynchronicznie):
PlaySound(TEXT("SystemExclamation"), NULL, SND_ALIAS | SND_ASYNC);

niedziela, 23 stycznia 2011

Programowanie karty graficznej - shadery

Początkowo w tytuł miał brzmieć tylko "Programowanie karty graficznej" jednak od jakiegoś czasu (kilku lat właściwie) taki tytuł jest niejednoznaczny. Pod terminem programowanie karty graficznej kryje się zarówno pisanie shaderów w ramach programowalnego potoku renderingu jak i użycie technologii takich jak CUDA, OpenCL i DirectCompute (czyli wykorzystanie mocy obliczeniowej karty graficznej do dowolnego zadania). Tym razem zajmę się pierwszym zagadnieniem czyli tym do czego karty graficzne powstały.

niedziela, 16 stycznia 2011

Debugowanie zdalne w Visual Studio 2010

Debugowanie zdalne jest to kolejny przydatny bajer w Visual Studio (niestety wymaga wersji co najmniej pro ale od czego jest DreamSpark i MSDNAA :) ). Czasami pisząc program może się okazać, że wysypuje się na innej wersji systemu, nasz komputer służący do programowania nie obsługuje jakiejś technologii albo debugowanie programu na innym komputerze to jedyna wygodna opcja (jest tylko jeden monitor a nie możliwe jest wygodne rozłożenie oka programu i IDE) wtedy właśnie przydaje się zdalne debugowanie (Remote Debugging). W wypadku Visual Studio całość jest banalnie łatwa do skonfigurowania.

niedziela, 9 stycznia 2011

openFrameworks - kreatywne programowanie

Creative coding - czyli w wolnym tłumaczeniu "kreatywne programowanie". To pojęcie jest niezwykle obszerne, jednak wiąże się zazwyczaj z ciekawym użyciem grafiki, dźwięku itp. Dlatego niezwykle istotnym dla procesu takiego pisania jest skupienie się na tym co ma robić i jak ma wyglądać a nie na "ujarzmieniu" API. Z tego powodu powstają specjalnie w tym celu napisane biblioteki aby można było kreatywnie programować nie przejmując niskopoziomowymi detalami.