July 2008

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

# Asercja - int 3

Sat
26
Jul 2008

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 | #c++ #visual studio Share

# Fajny błąd Visual C++

Fri
25
Jul 2008

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 | #visual studio Share

# Konfiguracja Visual C++ dla AssistX

Thu
24
Jul 2008

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 | #c++ #visual studio #tools Share

# Aqua Fish 2 - moja gra dla firmy Play

Sun
20
Jul 2008

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 | #games #productions #video Share

# std::vector wszędzie zamiast tablic

Thu
17
Jul 2008

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 | #c++ #stl Share

# Samurize - mój config

Tue
15
Jul 2008

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 | #software Share

# Moje zdjęcia z Warszawy

Sun
13
Jul 2008

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

Comments | #gallery Share

# Pracuję w Metropolis Software

Sat
12
Jul 2008

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 | #life Share

# Wygrałem konkurs na blog IT miesiąca

Fri
11
Jul 2008

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 | #web #homepage Share

# Moja praca mgr online

Tue
01
Jul 2008

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 | #productions #rendering #engine #studies Share

[Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2024