Budujemy edytor: wymiana informacji

02.01.2009 01:04 in silnik, grafika 3D, programowanie, edytor

Jak można wygodnie wymieniać informacje między silnikiem a edytorem? Ja uznałem, że najwygodniej będzie wymieniać się strukturami danych odpowiedni interpretowanymi przez silnik. W komunikacji socketowej wygląda to tak:

GFX MATERIALLIST
OK road car sky ...
GFX MATERIAL road
OK 0 0 1 0 1 0 0 0 0 2 ...

Doszedłem do wniosku, że zamiast implementować jakiś wyszukany (zwłaszcza po stronie C++, czyli silnika) system refleksji, najprościej będzie stworzyć generator kodu na podstawie struktury. Tak więc, na podstawie struktury materiału (po lewej) generowany jest:

  • formularz do edycji struktury (czemu nie użyłem PropertyGrid? sam nie wiem, ale mam wrażenie, że moje rozwiązanie jest bardziej ,,przyjazne'' dla docelowego użytkownika [grafik, map designer])
  • kod importujący/eksportujący strukturę zarówno po stronie silnika jak i edytora

mat1.png mat2.png

Słowem - prawie jak automatyzacja. I prawie jak LINQ. ;)

Comments:

  1. Tomasz Dąbrowski

    Tomasz Dąbrowski:

    Oczywiście w myśl zasady "pisz a potem myśl" kontrolkę dawno wymieniłem na PropertyGrida. ;)

    08.06.2009 03:23:26

Leave comment: