July 2008

Uwaga! Informacje na tej stronie mają ponad 3 lata. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

18:50
Sat
26
Jul 2008

Asercja - int 3

Ciekawostka: Instrukcja asemblerowa wywołująca przerwanie int 3 może posłużyć jako asercja. Działa tak: Jeśli program jest uruchomiony z poziomu debuggera, przerywa jego wykonywanie tak, jakby w tym miejscu w kodzie postawiony był Breakpoint ("Program.exe has triggered a breakpoint"). Można podglądać stos wywołań programu czy wartości zmiennych. Potem można go kontynuować. Jeśli natomiast uruchomiony jest bez debuggera, wysypuje się z błędem krytcznym. Można sobie napisać na przykład takie makro:

#ifdef _DEBUG
#define MY_ASSERT(x) { if ((x) == 0) { _asm { int 3 } } }
#else
#define MY_ASSERT(x) { }
#endif

Comments (0) | Tags: c++ visual studio | Author: Adam Sawicki | Share

23:03
Fri
25
Jul 2008

Fajny błąd Visual C++

Visual C++ to świetne środowisko programistyczne, moim zdaniem najlepsze. Ale nawet w nim zdarzają się błędy. Czasami bardzo śmieszne.

Error C2471 Cannot update program database

Clean Solution i rekompilacja nie pomogła. Na szczęście restart programu pomógł :)

Comments (0) | Tags: visual studio | Author: Adam Sawicki | Share

20:28
Thu
24
Jul 2008

Konfiguracja Visual C++ dla AssistX

Visual AssistX jest fajny, o czym już pisałem. Po jego zainstalowaniu warto zrobić małą konfigurację swojego Visual C++ (mówię o wersji 2005, nie wiem jak jest z 2008).

Po pierwsze, wyłączamy Navigation bar, bo nad polem z kodem wystarczy nowy pasek AssistX, niepotrzebne są dwa. W tym celu trzeba wejść do Tools > Options... > Text Editor > C/C++ > General i oznaczyć pole Navigation bar.

Po drugie, warto wyłączyć Visualowy IntelliSense. Ten szwankujący mechanizm podpowiadania jest całkowicie zastąpiony przez lepszy od niego AssistX, a to on podobno zamula środowisko bardziej, niż ten dodatek. Niestety nie ma sposobu, żeby wyłączyć go w opcjach. Trzeba się uciec do sztuczki - skasować lub zmienić nazwę pliku VC\vcpackages\feacp.dll leżącego w katalogu z zainstalowanym Visualem. (Dowiedziałem się o tym dzisiaj - pozdro KriS :)

Comments (0) | Tags: c++ visual studio tools | Author: Adam Sawicki | Share

22:28
Sun
20
Jul 2008

Aqua Fish 2 - moja gra dla firmy Play

Ukazała się oficjalna zapowiedź gry Aqua Fish 2, którą pisałem przez ostatnie miesiące. Konkretnie to ja byłem programistą, grafikę stworzył gemGreg, muzykę i dźwięki Mimper, a wydawcą jest firma Play. Gra wkrótce będzie dostępna w sklepach, zapewne w przystępnej cenie :D Ma niskie wymagania sprzętowe (nie używa shaderów). Jest adresowana dla dzieci. Właściwie należy do gatunku Pacmana :) Gracz steruje rybką, która pływa między przeszkodami, zbiera punkty i dodatkowe przedmioty, a unika wrogich stworów (albo je niszczy). Grafika jest trójwymiarowa i kolorowa. Gra toczy się w 6 różnych titlesetach.

Na YouTube jest do obejrzenia filmik z gry:


Link

Comments (0) | Tags: games productions video | Author: Adam Sawicki | Share

20:01
Thu
17
Jul 2008

std::vector wszędzie zamiast tablic

Początkujący w C++ uczą się najpierw o wskaźnikach i dynamicznej alokacji pamięci, w tym tablic operatorem new[]. Dopiero potem poznają bibliotekę STL. Tymczasem klasy std::vector warto używać zawsze zamiast dynamicznych tablic. Ma wiele zalet: [+] sama zwalnia pamięć, nie grozi wyciekiem pamięci, [+] pamięta swój rozmiar, [+] potrafi się sama rozszerzać, [+] ma wygodne metody m.in. do wstawiania (insert) i usuwania (erase) ze środka. Wcale nie jest przy tym wolniejsza niż zwykłe tablice, o ile używa się jej prawidłowo. Na przykład tak:

class MojaKlasa {
private:
  std::vector m_Wektor;
public:
  MojaKlasa() :
  // Rozmiar od razu na 128
  m_Wektor(128)
  {
    // Wypełniam elementy, a nie dodaję
    for (int i = 0; i < 128; i++)
      m_Wektor[i] = i;
  }
};

Najlepsze jest to, że wektor zawsze jest trzymany w pamięci jako zwykła tablica i można uzyskać do niej wskaźnik pobierając adres pierwszego elementu:

int *Tablica = &m_Wektor[0];

Comments (0) | Tags: c++ stl | Author: Adam Sawicki | Share

22:05
Tue
15
Jul 2008

Samurize - mój config

Samurize to darmowy programik, który potrafi w panelu przyklejonym do pulpitu albo pokazywanym zawsze na wierzchu przedstawiać różne statystyki z pracy komputera. Jest bardzo elastyczny i prosty w obsłudze dzięki graficznemu edytorowi konfiguracji. Do zaprojektowanego przez siebie panelu można wstawiać różnego rodzaju mierniki, w szczególności dowolny systemowy Performance Counter. Konfig, z którym ja nie rozstaję się już od ponad 3 lat, wygląda tak:

Samurize - mój config

Siedzi sobie w prawym górnym rogu ekranu i mierzy kolejno:

Dzięki temu zawsze jeden rzut oka wystarcza, żeby wiedzieć, co się dzieje w komputerze. Na przykład na pokazanym obrazku przed chwilą pracował procesor, a obecnie coś ściąga się z Internetu. Jeśli też chcesz mieć taki miernik, możesz ściągnąć ten mój: Samurize - Config by Reg.ini.

Comments (0) | Tags: software | Author: Adam Sawicki | Share

18:32
Sun
13
Jul 2008

Moje zdjęcia z Warszawy

Wrzuciłem do Galerii zdjęcia, które zrobiłem dotychczas w Warszawie.

Comments (0) | Tags: gallery | Author: Adam Sawicki | Share

18:00
Sat
12
Jul 2008

Pracuję w Metropolis Software

Dawno nie pisałem tu nic konkretnego. Co u mnie nowego? Właściwie wszystko. Mieszkam teraz w Warszawie i pracuję jako programista w Metropolis Software. Nie jest tajemnicą, że projekt który obecnie tworzymy to strzelanka zatytułowana They.

Comments (0) | Tags: life | Author: Adam Sawicki | Share

19:53
Fri
11
Jul 2008

Wygrałem konkurs na blog IT miesiąca

Zająłem pierwsze miejsce w konkursie na blog IT miesiąca. Kompletnie się tego nie spodziewałem. To nie było głosowanie internetowe, blogi oceniało jury na podstawie określonych kryteriów. Liczyły się tylko wpisy z czerwca tego roku. Nie wiem wprawdzie jak duża była konkurencja, ale zapisałem się do niego ot tak, z ciekawości. Wcale nie blogowałem specjalnie pod konkurs. Byłem przekonany, że ze swoją egzotyczną tematyką programowania gier nie mam szans z blogami na tematy internetowo-bazodanowe związane z Java, C#, PHP itp., których pełno w sieci i które zwykle mamy na myśli mówiąc "IT". A jednak stało się i wygrałem książkę... "Aplikacje Windows Forms .Net w C#" :) Drugie miejsce w konkursie zajął Xion.

Comments (0) | Tags: web homepage | Author: Adam Sawicki | Share

20:25
Tue
01
Jul 2008

Moja praca mgr online

Za pozwoleniem promotora udostępniam do pobrania moją pracę magisterską w formacie PDF: Architektura i implementacja silnika grafiki trójwymiarowej. Praca opisuje mój silnik graficzny The Final Quest. Zawiera przegląd literatury, opis architektury silnika (z jakch warstw, modułów, klas i pól się składa) oraz szczegóły implementacyjne (organizacja procesu renderowania, omówienie kodu shaderów, obliczenia animacji szkieletowej, realizacja efektów cząsteczkowych, format plików modeli i inne).

Jednym słowem, zbiera dużą część mojej wiedzy na tematy silnikologiczne, jaką miałem w czasie jej pisania. Ma 165 stron. Zawiera też obszerny spis literatury - ciekawych artykułów na konkretne tematy. Powinna być zrozumiała dla tych wszystkich, którzy znają już podstawy programowania, biblioteki graficznej 3D oraz shaderów.

Comments (0) | Tags: productions rendering engine studies | Author: Adam Sawicki | Share

STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2017 Adam Sawicki
Copyright © 2004-2017 Adam Sawicki