Autor Wątek: FUGE - GUI do twojej gry  (Przeczytany 21268 razy)

Offline Dab

  • Redaktor
    • blog

# Luty 12, 2009, 22:59:43
Nie wiem ile czasu potrzeba, żeby docenić blenderowe okienko do otwarcia/zapisu pliku. Myślę że jest ono drugą, zaraz po moim kocie, przyczyną zła na świecie.

Złośliwiec: niestety CEGUI wygrało. Przykro mi. ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 12, 2009, 23:12:29
Que? Jedyne, co w nim widzę niewygodnego, to nieobsłużony backspace. A pliki możesz otwierać dwukrotnym kliknięciem lub przeciągnięciem na okno główne Gimpa, jeśli cię to miałoby przekonać. :)

Nie przekona mnie żaden racjonalny argument - pracując w Gimpie odczuwam dyskomfort i tyle :P.

Złośliwiec: niestety CEGUI wygrało. Przykro mi. ;)

A mi nie. Twoja strata ;).

Offline Kos

  • Użytkownik
    • kos.gd

# Luty 13, 2009, 00:40:47
Nie przekona mnie żaden racjonalny argument - pracując w Gimpie odczuwam dyskomfort i tyle :P.

A ja nie. Twoja strata ;).

Offline PoD

  • Użytkownik

# Luty 13, 2009, 05:37:08
Renderer na OpenGL już działa czy nie?

Offline skoti

  • Użytkownik

# Luty 13, 2009, 06:53:19
Nie wiem ile czasu potrzeba, żeby docenić blenderowe okienko do otwarcia/zapisu pliku. Myślę że jest ono drugą, zaraz po moim kocie, przyczyną zła na świecie.
Blenderowe okienko do "otwarcia"/zapisu pliku już jest wymienione na bardzo sprawne i pojawi się w 2.5 ;]

Swoją drogą zauważyłem, że layout gui mojego edytorka zaczyna przypominać ten z Blendera, a ten też nie nazwałbym wzorem do naśladowania :)
Jest wzorem do naśladowania ;]. Bardzo elastyczne gui (jak chcesz to zakładkę przenosisz na wolne pole i tworzy się dodatkowe okienko z zawartością zakładki, jak za dużo okienek to wszystkie możesz scalić w jedno z zakładkami), super edytor node itd.

Offline Angru

  • Użytkownik

# Luty 13, 2009, 09:45:35
Swoją drogą zauważyłem, że layout gui mojego edytorka zaczyna przypominać ten z Blendera, a ten też nie nazwałbym wzorem do naśladowania :)
Jest wzorem do naśladowania ;]. Bardzo elastyczne gui (jak chcesz to zakładkę przenosisz na wolne pole i tworzy się dodatkowe okienko z zawartością zakładki, jak za dużo okienek to wszystkie możesz scalić w jedno z zakładkami), super edytor node itd.
No to tylko się cieszyć, ale schodzimy z tematu.

Cytat: PoD
Renderer na OpenGL już działa czy nie?
Tak jak Złośliwiec wcześniej zaznaczył i jest to opisane w 3-cim tutorialu, renderer możesz sobie napisać sam, na czymkolwiek byle wypełnić wymagany interface. Niezależnie od tego czy masz jakąś formę własnego silnika czy pracujesz niemal na gołym OpenGLu, napisanie własnego renderera nie stanowi problemu. Z kolei wewnętrzna implementacja FUGE mnie nie interesuje bo jest zamknięta w bibliotekach, nas interesuje tylko interface ( i swoją drogą tak być powinno ). Jeżeli będziesz miał jakieś kłopoty, pisz na priva, chętnie pomogę.

Offline maVes

  • Użytkownik

# Luty 17, 2009, 18:39:08
Postanowiłem użyć FUGE w swoim frameworku, jednak mam problem z jego podpięciem. Mianowicie, GUI inicjalizuję w taki sposób:

#include <Fuge.h>
#pragma comment( lib, "Fuge" )

// ...

fuge::CRendererDX* renderer = new fuge::CRendererDX( m_Settings.Width, m_Settings.Height, m_hWnd, 32, !m_Settings.Windowed, fuge::CColor::BLACK );
m_FugeDev = new fuge::CFugeDevice( m_hWnd, renderer );

m_GUI = m_FugeDev->GetUIManager(); 

Linker zwraca mi taki błąd:
1>Application.obj : error LNK2019: unresolved external symbol "public: __thiscall fuge::CRendererDX::CRendererDX(unsigned int,unsigned int,struct HWND__ *,unsigned int,bool,class fuge::CColor const &)" (??0CRendererDX@fuge@@QAE@IIPAUHWND__@@I_NABVCColor@1@@Z) referenced in function "public: bool __thiscall Application::run(void)" (?run@Application@@QAE_NXZ)

Przez chwilę pomyślałem sobie, że być może biblioteka dostarcza sam interfejs renderera D3D, bez jego implementacji. Wydawało mi się głupie, ale postanowiłem dopisać kawałek implementacji, wskutek czego linker wyrzucił:
1>Application.obj : error LNK2005: "public: __thiscall fuge::CRendererDX::CRendererDX(unsigned int,unsigned int,struct HWND__ *,unsigned int,bool,class fuge::CColor const &)" (??0CRendererDX@fuge@@QAE@IIPAUHWND__@@I_NABVCColor@1@@Z) already defined in Test.obj

Próbowałem przebudować cały projekt, ale nie pomogło. W czym może tkwić problem?

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 17, 2009, 19:20:06
Rzeczywiście, renderer DX jest dostępny, ale bezpośrednio klasy CRendererDX użyć nie możesz, ponieważ nie jest wyeksportowana. Zresztą nie miałoby to większego sensu, jeśli chcesz wpiąć Fuge do własnego frameworka. Poczytaj trzeci tutorial z dokumentacji. A także ostatni post Angru w tym wątku :).

Offline maVes

  • Użytkownik

# Luty 17, 2009, 19:28:44
Ok, dzięki za wyjaśnienie. W takim razie biorę się za pisanie własnego renderera :)

Offline Angru

  • Użytkownik

# Luty 20, 2009, 12:42:36
Muszę zgłosić jeszcze jeden problem. Najwyraźniej nie działają checkboxy. Nie generują zdarzeń, nie zaznaczają się graficznie. Niezależnie od tego czy są umieszczone w gołym oknie czy w zakładce. Czy to ogólny bug czy tylko coś u mnie?

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 20, 2009, 13:00:18
Muszę zgłosić jeszcze jeden problem. Najwyraźniej nie działają checkboxy. Nie generują zdarzeń, nie zaznaczają się graficznie. Niezależnie od tego czy są umieszczone w gołym oknie czy w zakładce. Czy to ogólny bug czy tylko coś u mnie?

U ciebie. Tę ostatnią poprawkę testowałem na checkboxach właśnie i wszystko działało jak należy.

Offline Angru

  • Użytkownik

# Luty 20, 2009, 13:27:43
Rzeczywiście u mnie. Eventy już chodzą, ale mam chyba jeszcze jakiegoś małego buga w rendererze bo mi nie rysuje x-ów, ptaszków, czy co tam ma być. One są rysowane przez DrawImage?

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 20, 2009, 14:31:56
Rzeczywiście u mnie. Eventy już chodzą, ale mam chyba jeszcze jakiegoś małego buga w rendererze bo mi nie rysuje x-ów, ptaszków, czy co tam ma być. One są rysowane przez DrawImage?

Tak.

Offline maVes

  • Użytkownik

# Luty 20, 2009, 15:13:52
Eventy już chodzą, ale mam chyba jeszcze jakiegoś małego buga w rendererze bo mi nie rysuje x-ów, ptaszków, czy co tam ma być.
Widzę, że nie tylko ja mam z tym problem :)

Mam jeszcze jedno pytanie: po co jest funkcja BeginScene w rendererze? Miałem tam kod ustawiający odpowiednie stany urządzenia (bufor-z, alpha, FVF, oświetlenie, przekształcenia). Początkowo GUI w ogóle się nie rysowało, dopiero po zamienieniu formatu wierzchołka z D3DFVF_XYZ na D3DFVF_XYZRHW ujrzałem coś na ekranie. Nie działał jednak alpha blending. Przed chwilą odkryłem, że jak przeniosę kod z BeginScene np. do DrawRectangle to wszystko jest tak jak być powinno. Okazało się, że BeginScene w ogóle nie jest wywoływana :)

Offline Angru

  • Użytkownik

# Luty 20, 2009, 15:34:05
Mi z kolei FUGE nie wywołuje DrawImage mojego renderera :(. Jak by coś to LoadImage mojej klasy bitmapy działa poprawnie i zwraca true.