Tag: libraries

Entries for tag "libraries", ordered from most recent. Entry count: 27.

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

Pages: > 1 2 3 4 >

20:06
Tue
20
Apr 2010

My Impressions about SQLite

SQLite is a very strange library. It's a database engine that can store lots of data in a relational database and exposes API based on SQL language. On the other hand though, it's not a huge application that has to be installed in the system, work in the background and you have to connect to it via network interface, like MySQL or PostreSQL do. It's actually a lightweight library written in C that can be linked with your program and uses specified file as the database. It's fascinating that such a small library (there is even a preprocessed source version as a single 3.75 megabyte C file!) supports much of the SQL language.

The API of the SQLite library is similar to any other SQL-based database access API for any programming language. I've played with it a bit and here is my small sample code:

#include <sqlite3.h>

int main()
{
  sqlite3 *db;
  sqlite3_open_v2("D:\\tmp\\test.db", &db,
    SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);

  sqlite3_exec(db, "begin", NULL, NULL, NULL);
  
  sqlite3_stmt *stmt;
  sqlite3_prepare_v2(db, "insert into table1 (id) values (?)",
    -1, &stmt, NULL);

  for (int i = 0; i < 10; i++)
  {
    sqlite3_reset(stmt);
    sqlite3_bind_int(stmt, 1, i);
    sqlite3_step(stmt);
  }

  sqlite3_exec(db, "commit", NULL, NULL, NULL);

  sqlite3_finalize(stmt);

  sqlite3_close(db);
}

It's hard for me to think of any application for such a strange library. It offers too much when you just want to design your file format and too few if you need a fully-featured database, like for a web server. So why did I decide to get to know this library? It's all because of an interesting gamedev tool called Echo Chamber. It's a free data mining program that can visualize data from SQLite database files as many different kinds of plots, even 3D ones. So when you integrate logging some numeric data from your engine into an SQLite database you can easily do performance analysis with it.

Comments (17) | Tags: tools libraries sql | Author: Adam Sawicki | Share

21:29
Wed
16
Dec 2009

Releasing CommonLib 9.0

After 13 months since previous release, today I want to share all who may be interested the new version of my CommonLib 9.0. As a reminder, it is a universal library for C++, created especially with game programmers in mind. I share it under GNU LGPL license hoping that at least some pieces of this code can be useful. Important links:

The new version contains massive amount of my recent code which proved to be useful to me and have been tested in my home projects. Among all these changes, bigger ones are:

For more information, see What's New in Version 9.0.

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

19:52
Fri
18
Sep 2009

Learning PhysX

Yesterday I've started learning NVIDIA PhysX. It's the first time I use a physics engine at home, but it seems quite easy for me. I like the PhysX library as it has pretty, object-oriented API.

Is using a physics engine really an advanced topic? Now I don't think so. Sure there are some scary looking terms like "inertia tensor" or "angular damping", but all you need for the start is to know a bit about vectors, matrices, quaternions and some school-level physics like the concept of mass, velocity and force.

PhysX is very powerful. It can simulate soft bodies, cloth, force fields, fluids and much more. But the foundation is just rigid body physics plus character controller. In fact it is so simple and powerful at the same time that I now think every beginner game programmer should learn this. Physics in games is not only to simulate boxes and ragdolls of killed enemies. Using such physics engine is many times easier than implementing algorithms for normal collision detection, sliding along walls, walking on the height field, checking if an object entered a trigger or casting rays. PhysX offers it all!

So how to start learning PhysX if you are interested in this subject? All you need to do is to go to the NVIDIA PhysX website, download and install the PhysX SDK. It includes all necessary files like headers, libraries, DLL-s, documentation and tutorials. I learn from the included tutorials in DOC format which can be found in the TrainingPrograms\Docs\ subdirectory.

Here is a small screenshots from my today experiments:

Comments (2) | Tags: libraries physics | Author: Adam Sawicki | Share

16:43
Sat
06
Jun 2009

MFC i Smart PropertyGrid

Używam w pracy MFC i powiem wam, że wbrew temu co się mówi (i co wcześniej powtarzałem za innymi), to wcale nie jest taka zła biblioteka. Ta dostępna w płatnych wersjach Visual C++ biblioteka do GUI to tak naprawdę cienka, obiektowa nakładka na WinAPI. Tak więc ma swoje klasy odpowiadające m.in. różnym kontrolkom interfejsu, obiektom GDI itp., ale z zestawów flag bitowych czy też zasobów z zaprojektowanymi graficznie okienkami korzysta już z tych samych, co czyste WinAPI. Nie oferuje zbyt wiele ponad to, co API systemowe, ale trochę uprzyjemnia pracę. Jeśli ktoś zna dobrze WinAPI, to nie ma kłopotów z opanowaniem MFC ani powodów do narzekań, chyba że co najwyżej na to, że biblioteka jest tym czym jest i niczym więcej.

Szukałem wczoraj rozwiązania kwestii kontrolki Property Grid dla MFC i znalazłem bibliotekę Smart PropertyGrid.MFC firmy Visualhint. Jest świetna - ładna, potężna, rozszerzalna, a dzięki dobrze zaprojektowanemu interfejsowi opartemu na wielu klasach i koncepcji iteratorów, także wygodna w użyciu. Twórcy udostępnili ją całkowicie za darmo, bo teraz rozwijają i sprzedają wersję tej kontrolki dla .NET (choć przecież platforma .NET ma taką kontrolkę w standardzie).

Smart PropertyGrid.MFC

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

20:30
Sun
05
Apr 2009

Renderowanie kryształka i AntTweakBar

Klejnoty, kryształy i wszelkie błyskotki to bardzo ładne obiekty, więc ciekawie jest próbować je wyrenderować :) Dawno temu przeczytałem artykuł "A Simple Method for Rendering Gemstones" (Thorsten Scheuermann, książka Game Programming Gems, tom 5). Potem wróciłem do tego tematu i trafiłem na artykuł Graphics Gems Revisited (Stephane Guy, Cyril Soler). Artykuł jest trudny i oparty na modelu fizycznym. Przy okazji z Wikipedii dowiedziałem się, że brylant to nie po prostu oszlifowany diament, ale w jubilerstwie istnieje cała obszerna sztuka nadawaniu klejnotom takiego szlifu, aby otrzymać jak najlepszą brylancję.

Jakiś czas temu spróbowałem opracować swoją, prostą metodę renderowania kryształka. Metoda opiera się na teksturze sześciennej, do której na początku jeden raz renderuję głębokość geometrii kryształka z punktu widzenia jego środka. Potem dzięki niej, podczas właściwego renderowania, w pixel shaderze liczę (bardzo) przybliżone odbicia promienia światła wewnątrz modelu, a na podstawie kąta i odległości tego odbicia obliczam końcowy kolor.

Gemstone Rendering

Ale nie tylko o tym chcę dzisiaj napisać. Chciałbym polecić wszystkim bibliotekę AntTweakBar. O jej istnieniu dowiedziałem się z wykładu Koshmaara na tegorocznej konferencji IGK'6-2009. Jest darmowa, banalnie prosta w użyciu, współpracuje z DirectX i OpenGL, a jej funkcja to zapewnienie arkusza właściwości (property grid) wewnątrz gry. Umożliwia edycję różnego typu danych, od bool, int, float, string, aż po enum, wektor i kwaternion. Napisanie samemu czegoś takiego to by był ogrom pracy. Przygotowałem mały filmik:

Modele kryształów pochodzą ze strony 3D Lapidary. Przy okazji do listy formatów modeli, które zdarzyło mi się w życiu wczytywać, dołączył DXF :)

Comments (1) | Tags: literature rendering libraries gui | Author: Adam Sawicki | Share

00:03
Tue
17
Mar 2009

Instalacja Qt 4.5 dla Visual Studio 2008 Professional

Tak jak obiecałem, napiszę o moich przebojach z instalacją Qt. Ściągnąłem i zainstalowałem darmowe Qt 4.5. Chodzi o wersję dla Windows, a moim IDE jest Visual Studio 2008 Professional.

Sprawa okazała się niełatwa. Najpierw zainstalowałem gotową paczkę "Qt SDK for Windows". Wyglądała super - zawiera dokumentację wraz z przeglądarką Qt Assistant, przykłady, narzędzia (Qt Designer, Qt Linguist), nagłówki i... niestety biblioteki do linkowania w formacie A, a nie LIB :(

Przekompilowałem całą bibliotekę (configure, nmake) i... po tym programy pisane w Visual C++ udało się kompilować, linkować, uruchamiać, ale za to narzędzia Qt przestały działać. Narzekały na złą wersję pliku QtCore4.dll. Okazało się, że w katalogu z biblioteką są aż trzy różne wersje tego pliku i... żadna tym programom nie odpowiada :(

W końcu, na drugi dzień, postanowiłem dać Qt jeszcze jedną szansę. Ściągnąłem tym razem pakiet ze źródłami - "Qt libraries 4.5 for Windows". Następnie uruchomiłem kompilację. W tym celu trzeba dopisać do zmiennej środowiskowej PATH ścieżkę do qt-win-opensource-src-4.5.0\bin, uruchomić Start / Programy / Microsoft Visual Studio 2008 / Visual Studio Tools / Visual Studio 2008 Command Prompt, przejść do katalogu z Qt i wydać polecenie configure, a potem nmake.

Kompilacja się udała. Zajęła około 2 godziny. Po zakończeniu zajrzałem do katalogu, a tam czekała na mnie miła niespodzianka - gotowe nie tylko pliki H, LIB, ale też i wszystkie narzędzia oraz dokumentacja. Słowem - biblioteka zainstalowana i gotowa do użycia.

Zainstalowałem jeszcze wtyczkę "Visual Studio Add-in". Piszą, że jest w wersji Beta 2, ale działa bez zarzutu. Po instalacji trzeba tylko wskazać jej ścieżkę do biblioteki wybierając z menu Qt / Configure Qt Versions. Integruje się z Visual Studio w taki sposób, że dostępne są nowe kreatory projektów w File / New / Project, IDE automatycznie uruchamia moc, rcc, uic itp. dodatkowe "przetwarzarki" Qt, a kliknięcie w dodany do projektu plik ui czy qrc automatycznie otwiera Qt Designer i Qt Resource editor. Słowem - wszystko działa.

Zacząłem pisać w Qt mały, ale fajny program (premiera wkrótce...) i powiem tak: Każdy ma prawo nie wierzyć, że w C++ można pisać programy okienkowe równie szybko i wygodnie jak w C#... dopóki nie zobaczy Qt :)

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

23:02
Thu
12
Mar 2009

Qt - Możliwości i wady

Biblioteka Qt to jedna z bibliotek do tworzenia GUI. Choć kojarzy się z Linuksem, jest przenośna i działa także na Windows. Rozwijana wcześniej przez firmę Trolltech (swoją drogą, fajna nazwa ;) teraz została wykupiona przez Nokię. W tym roku jej wersja 4.5 stała się dostępna dla Windows na licencji GNU LGPL. Dzięki temu Qt można wykorzystać w dowolnych programach, także komercyjnych. W ten sposób dołącza do grona bibliotek, które pozwalają wygodnie robić okienka w C++. Używałem niejednej takiej biblioteki, a Qt uczyłem się na studiach i mogę chyba powiedzieć, że moim zdaniem Qt staje się teraz najlepszą z nich (deklasując wxWidgets, GTK, MFC i oczywiście czyste WinAPI). Chodzi mi tu nie tylko o możliwości, ale i o jej piękne, obiektowe API.

Przeczytałem Qt Technical Overview Whitepaper i jestem zachwycony możliwościami tej biblioteki. Pośród nich warto wymienić:

Read full entry > | Comments (1) | Tags: gui libraries | Author: Adam Sawicki | Share

21:38
Tue
24
Feb 2009

Nowy artykuł: Własny VFS - wtyczka do Total Commandera

Skończyłem właśnie pisać nowy artykuł. Zebrałem w nim swoje doświadczenia z pisania wtyczki do Total Commandera do obsługi własnego formatu VFS. Zainteresowanych zapraszam do lektury: Własny VFS - wtyczka do Total Commandera.

Comments (0) | Tags: libraries tools productions | Author: Adam Sawicki | Share

Pages: > 1 2 3 4 >

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