Warsztat.GD

Społeczność => Projekty zaawansowane => Wątek zaczęty przez: Złośliwiec w Listopad 30, 2008, 23:03:21

Tytuł: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Listopad 30, 2008, 23:03:21
FUGE to moja biblioteka ułatwiająca tworzenie GUI w grach. Zawiera większość popularnych rodzajów kontrolek. Świetnie nadaje się do robienia wszelkiego rodzaju okienek w grze, np. do konfiguracji, wyświetlania komunikatów, tworzenia narzędzi wbudowanych w grę itp. Na razie działa tylko pod Windows, ale planuję też wersję na Linuksa.

Wybrane cechy:


Screenik:

(http://img255.imageshack.us/img255/9774/image1eb0.th.jpg) (http://img255.imageshack.us/my.php?image=image1eb0.jpg)

Więcej screenów oraz link do downloadu w portalu:

http://www.warsztat.gd/projects.php?x=view&id=578

Miłego użytkowania :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Oti w Listopad 30, 2008, 23:22:53
Mhm, gratulacje, bardzo fajnie wygląda, dużo kontrolek, widać, że się napracowałeś. :) Akurat wczoraj także zacząłem klepać jakieś GUI do edytorka, więc nie zassam(muszę sam to skodzić, w celach edukacyjnych lub chociażby własnej satysfakcji), ale k++. :)

PS. Proponuję w pierwszym poście wypisać wszystkie kontrolki ;)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Charibo w Listopad 30, 2008, 23:28:44
Nie widzę, żeby było gdzieś na wierzchu napisane - na jakiej licencji ją rozprowadzasz? :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: yfan w Grudzień 01, 2008, 00:14:01
dobra byłaby jako demo twojego silniczka mała gra, w której różnorakie suwaki rozrzucone na ekranie połączone są dziwnymi zależnościami (przesuwasz jeden, ruszają się też inne), a zadaniem byłoby ustawić jeden podświetlony na określonej pozycji bez ruszania go, w określonym - krótkim - czasie. na pewno zaciągnęłoby ludzi do zapoznania się z biblioteką :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 01, 2008, 11:08:16
Akurat wczoraj także zacząłem klepać jakieś GUI do edytorka, więc nie zassam(muszę sam to skodzić, w celach edukacyjnych lub chociażby własnej satysfakcji), ale k++. :)

Edukacja to dobra rzecz, ale mimo wszystko zachęcam do ściągnięcia i wypróbowania :). Zresztą myślę, że jeśli już się uczyć, to lepiej uczyć się rozszerzania istniejącego kodu, a nie wynajdywać koło od nowa :).

Nie widzę, żeby było gdzieś na wierzchu napisane - na jakiej licencji ją rozprowadzasz? :)

Cały ostatni weekend pracowałem tylko nad FUGE, więc nie chciało mi się już wieczorem zastanawiać, jaka licencja byłaby odpowiednia. Może LGPL, tyle że z tego co się orientuje, nakłada ona wymaganie, że produkt musi być open-source, co średnio mi się podoba.

dobra byłaby jako demo twojego silniczka mała gra, w której różnorakie suwaki rozrzucone na ekranie połączone są dziwnymi zależnościami (przesuwasz jeden, ruszają się też inne), a zadaniem byłoby ustawić jeden podświetlony na określonej pozycji bez ruszania go, w określonym - krótkim - czasie. na pewno zaciągnęłoby ludzi do zapoznania się z biblioteką :).

Niezły pomysł :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: albireo w Grudzień 01, 2008, 11:15:16
Cały ostatni weekend pracowałem tylko nad FUGE, więc nie chciało mi się już wieczorem zastanawiać, jaka licencja byłaby odpowiednia. Może LGPL, tyle że z tego co się orientuje, nakłada ona wymaganie, że produkt musi być open-source, co średnio mi się podoba.
To GPL tego wymaga, LGPL wymaga tylko aby wszelkie upublicznione zmiany w samej bibliotece były open source.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 01, 2008, 11:21:38
To GPL tego wymaga, LGPL wymaga tylko aby wszelkie upublicznione zmiany w samej bibliotece były open source.

To w sumie na jedno wychodzi - czy będę musiał opublikować kod obecnej wersji, czy następnej wersji, dla mnie to bez różnicy, bo nie chcę go publikować :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: albireo w Grudzień 01, 2008, 11:30:00
To opublikuj jako freeware (z ewentualnym ograniczeniem, że tylko do użytku niekomercyjnego).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 01, 2008, 11:37:49
To opublikuj jako freeware (z ewentualnym ograniczeniem, że tylko do użytku niekomercyjnego).

W zasadzie już to zrobiłem :D.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: micran w Grudzień 01, 2008, 19:54:51
Nie wiem czy dobrze rozumie zasadę freeware. Ale załóżmy, że pobrałem tą bibliotekę i na prawie identycznej zasadzie opracowałem swoją, i teraz czy to już uznaje się za moje czy nadal jest to freeware w tym wypadku Złośliwca ???

GUI świetnie się prezentuje.   
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Lobsang Rampa w Grudzień 01, 2008, 20:20:22
Brakuje mi tutaj wsparcia dla różnych "skórek", z tego co widzę, wszystkie elementy GUI są rysowane i nie można zastosować np. własnych bitmapek jako przycisków. Piszesz też w featursach o obsłudze schematów kolorów, gdzie ten schemat jest zapisany ? szukałem w projekcie plików XML czy cuś takiego, ale nic nie znalazłem.

A tak poza tym bardzo fajna biblioteczka, gratuluje jej ukończenia :) choć zważywszy na fakt, że to była praca magisterska, innego wyboru raczej nie miałeś ;D
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 01, 2008, 22:35:36
Nie wiem czy dobrze rozumie zasadę freeware. Ale załóżmy, że pobrałem tą bibliotekę i na prawie identycznej zasadzie opracowałem swoją, i teraz czy to już uznaje się za moje czy nadal jest to freeware w tym wypadku Złośliwca ???

W sumie to freeware nie ma jednej konkretnej definicji. Ogólnie przyjmuje się, że jest to soft za darmo lub za opcjonalną opłatą, że nie ma wglądu do źródełek i tym samym możliwości modyfikacji. Natomiast jeśli tylko chcesz kopiować moje pomysły, to proszę bardzo - ogólnie jestem zwolennikiem dzielenia się niektórymi rzeczami ;).

Brakuje mi tutaj wsparcia dla różnych "skórek", z tego co widzę, wszystkie elementy GUI są rysowane i nie można zastosować np. własnych bitmapek jako przycisków. Piszesz też w featursach o obsłudze schematów kolorów, gdzie ten schemat jest zapisany ? szukałem w projekcie plików XML czy cuś takiego, ale nic nie znalazłem.

Skórki będą w przyszłej wersji, jak już gdzieś napisałem. Natomiast tworzenie schematu koloru polega po prostu na czymś takim:

Kod: (cpp) [Zaznacz]
    FUGE_BLACK.clr [COLOR_WINDOW_BACKGROUND]     = CColor::WHITE;
    FUGE_BLACK.clr [COLOR_WINDOW_TITLE_NORMAL]   = CColor::BLACK;
    FUGE_BLACK.clr [COLOR_WINDOW_TITLE_LIGHT]    = CColor::DARKGRAY;
    FUGE_BLACK.clr [COLOR_WINDOW_TITLE_DARK]     = CColor::BLACK;
    FUGE_BLACK.clr [COLOR_WINDOW_TITLE_TEXT]     = CColor::WHITE;
    FUGE_BLACK.clr [COLOR_3D_LIGHT]              = CColor::GRAY;
    FUGE_BLACK.clr [COLOR_3D_DARK]               = CColor::BLACK;
    FUGE_BLACK.clr [COLOR_3D_NORMAL1]            = CColor::DARKGRAY;
    FUGE_BLACK.clr [COLOR_3D_NORMAL2]            = CColor::BLACK;
    FUGE_BLACK.clr [COLOR_3D_MEDIUM]             = CColor (64, 64, 64, 255);
    FUGE_BLACK.clr [COLOR_TEXT]                  = CColor::LIGHTGRAY;

A potem:

Kod: (cpp) [Zaznacz]
ui->SetColorScheme (FUGE_BLACK);

Wiem, prymitywne, ale śpieszyło mi się trochę z tą magisterką :D. Do przyszłej wersji wymyślę, mam nadzieję, coś lepszego.

Cytuj
A tak poza tym bardzo fajna biblioteczka, gratuluje jej ukończenia :) choć zważywszy na fakt, że to była praca magisterska, innego wyboru raczej nie miałeś ;D

Dziękuję :). A z tym wyborem to było w sumie tak, że sam sobie wymyśliłem temat ;).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: micran w Grudzień 01, 2008, 22:40:25
Bo wiesz Złośliwiec ja nie rozumię dokładnie jak by to miało się tworzyć te okna. A takie nie zrozumienie dla rysowania okien w grach mam od zawsze, więc czas to zmienić. WinAPI także nie wiele rozumię, może dlatego że z twojego kursu się uczyłem ;)  :P
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kosai_ w Grudzień 01, 2008, 23:00:04
jak ta biblioteka stoi z ustawianiem zmiennych? w GLUI było tak, że do suwaka 'doczepiałem' zmienną jakąś, i jak user przesuwał suwak, to wartość zmiennej się zmieniała automatycznie. jak jest tutaj?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 01, 2008, 23:55:03
jak ta biblioteka stoi z ustawianiem zmiennych? w GLUI było tak, że do suwaka 'doczepiałem' zmienną jakąś, i jak user przesuwał suwak, to wartość zmiennej się zmieniała automatycznie. jak jest tutaj?

Nie przepadam za takimi cudami na kijku. Biblioteki powinny być stosunkowo proste. Gdyby suwak miał bezpośredni dostęp do pamięci, trzeba by było jakoś ograniczyć zakres, żeby nie było żadnych AV. Wprowadzamy więc klasę do walidacji. Potem ktoś mógłby się przyczepić, że brakuje obsługi float-ów. Wprowadzamy więc walidatory do int-ów i float-ów. Następnie ktoś życzy sobie jeszcze typ double i int64. Wprowadzamy. Ktoś inny stwierdza, że przydałoby się jeszcze ustawianie zmiennych typu string zawierających liczbę. Wprowadzamy. Potem pojawia się pomysł, że suwaki można by podpiąć też pod struktury, na przykład reprezentujące kolor albo wierzchołek 3D. Wprowadzamy. Ktoś wymyśla, że przydałyby się wyspecjalizowane suwaki podpięte do regulacji głośności. Wprowadzamy. Następnie ktoś stwierdza, że potrzebuje koniecznie kontrolkę składającą się z trzech suwaków do ustawiania koloru, podpiętych do dowolnych dwóch kolorów systemowych, które można dynamicznie zmieniać konfigurowalną kombinacją klawiszy... etc., etc. W końcu z prostego i fajnego GUI robi się potwór w rodzaju wxWidgets: tańczy, śpiewa, recytuje, a w wolnych chwilach wyświetla jakieś kontrolki. Rozumiesz? :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kosai_ w Grudzień 02, 2008, 00:00:47
rozumiem, ale powiedzmy, że użytkownik przesuwa suwak 'natężenie światła'. skąd mój program ma znać obecną wartość tego suwaka? bo nie chodzi tylko o wyświetlanie suwaka, ale jeszcze pobieranie jakichś danych, prawda?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Esidar w Grudzień 02, 2008, 00:05:02
Cytuj
Nie przepadam za takimi cudami na kijku.

Proste i logiczne. A potem każdy musi sam sobie pisać doczepianie zmiennych do suwaków, a jak czegoś nie może bo mu biblioteka na to nie pozwala to zaczyna robić wszystko na około i koniec końców, wszystko to zajmuje mu więcej niż napisanie takiej biblioteki jak Fuge od zera ]:->
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 02, 2008, 00:09:40
rozumiem, ale powiedzmy, że użytkownik przesuwa suwak 'natężenie światła'. skąd mój program ma znać obecną wartość tego suwaka? bo nie chodzi tylko o wyświetlanie suwaka, ale jeszcze pobieranie jakichś danych, prawda?

Kod: (cpp) [Zaznacz]
int value = suwak->GetValue();

Proste, nie? :)

Proste i logiczne. A potem każdy musi sam sobie pisać doczepianie zmiennych do suwaków, a jak czegoś nie może bo mu biblioteka na to nie pozwala to zaczyna robić wszystko na około i koniec końców, wszystko to zajmuje mu więcej niż napisanie takiej biblioteki jak Fuge od zera ]:->

Pisz, żyjemy w wolnym kraju ;). Zresztą ja jako autor biblioteki nie mogę wziąć pod uwagę KAŻDEJ indywidualnej potrzeby. Choćbym stanął na nosie, to nie uda mi się wymyślić, do czego np. ty zechciałbyś użyć tego suwaka. Tak więc chyba łatwiej jest tobie podziedziczyć sobie po klasie CScrollBar i dodać metodę do ustawiania takiej zmiennej, jaka ci będzie pasować, niż mnie zrobić metodę przeciążoną dla wszystkich możliwych typów danych, jakie użytkownik potencjalnie zażyczy sobie podpiąć :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kosai_ w Grudzień 02, 2008, 00:12:11
Kod: (cpp) [Zaznacz]
int value = suwak->GetValue();
Proste, nie? :)
właśnie o to mi chodziło. chyba najlepszy pomysł.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Wosiu w Grudzień 03, 2008, 15:57:20
Gratualcje. Kolejna osoba która coś udostępnia i dzieli się swoją pracą. (Moja biblioteka zewnetrzna w fazie tworzenia.)
Jeszcze raz gratulacje  ;D
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 03, 2008, 16:09:30
Gratualcje. Kolejna osoba która coś udostępnia i dzieli się swoją pracą. (Moja biblioteka zewnetrzna w fazie tworzenia.)
Jeszcze raz gratulacje  ;D

Dziękuję :). Chociaż wolałbym usłyszeć, że ktoś zamierza tego użyć w swojej grze :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: micran w Grudzień 03, 2008, 16:29:43
Dziękuję :). Chociaż wolałbym usłyszeć, że ktoś zamierza tego użyć w swojej grze :).

Ja planuje to użyć, ale jeszcze nie w dotychczasowych projektach, ta biblioteka spadła mi prawię z nieba ;)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: _MtZ_ w Grudzień 03, 2008, 16:59:41
Spoko ja też użyję, ale mój projekt jest jeszcze w trakcie projektowania :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Quavitor w Grudzień 03, 2008, 17:12:20
Dziękuję :). Chociaż wolałbym usłyszeć, że ktoś zamierza tego użyć w swojej grze :).

Ja mam zamiar wykorzystać (ale dopiero jestem w fazie nauki OGRA).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 03, 2008, 17:41:01
Ja mam zamiar wykorzystać (ale dopiero jestem w fazie nauki OGRA).

Mam nadzieję, że nie potraktujesz zbyt serio tego "ale", ponieważ, jak mówią, uczymy się przez całe życie ;).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kos w Grudzień 04, 2008, 01:12:55
Ładne! Będzie na tym nowy Untitled? :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Grudzień 04, 2008, 10:20:35
Ładne! Będzie na tym nowy Untitled? :)

Nie, po co? Untitled ma własne GUI, może nie takie ładne, ale chyba bardziej pasujące :). Nad przerobieniem GUI Irrlichta na moje potrzeby i dodaniu do niego kilkunastu dodatkowych kontrolek, których potrzebowałem do gry, raczej nie chciałoby mi się powtarzać tego samego z FUGE. Do diabła, chcę kiedyś skończyć tę grę :D.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Ktos w Grudzień 29, 2008, 19:34:48
Gratulacje za udany projekt :D
Ale wersja pod OpenGL'a bylaby bardzo mile widziana.

Pzdr
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 05, 2009, 00:07:02
Podpisuję się zarówno pod gratulacjami jak i nadziejami na wersję w OpenGL. Wkrótce zabieram się za pisanie edytora do mojej gierki i rozglądam się za jakimś API do GUI, takim co nie przefasonuje mojego zgrabnego frameworka  :P Jeżeli padnie na FUGE, na pewno pochwalę się rezultatami.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 05, 2009, 00:45:23
Chciałbym zapytać, co wy właściwie uważacie za "wersję OpenGL". Jeśli chodzi o kompatybilność, to nie widzę problemów - można używać mojej biblioteki i z DirectX, i z OpenGL, Fuge się z nimi w żaden sposób nie gryzie. Jeśli chodzi o renderer OpenGL (odpowiednik istniejącego już w bibliotece prostego rendererka DirectX), to byłby on i tak mało użyteczny, bo można by go używać w zasadzie tylko do zabawy - aby użyć Fuge np. w swojej grze, trzeba i tak napisać prosty wrapper.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Dab w Luty 05, 2009, 01:03:49
A ja mam pytanie, bo zabieram się powoli za GUI do silnika.
Jak FUGE wypada w porównaniu do CEGUI?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 05, 2009, 11:15:04
No tak, przyznam, że dopiero teraz przyjrzałem się dokumentacji. Dobra, zobaczymy co się uda zrobić.

Cytuj
A ja mam pytanie, bo zabieram się powoli za GUI do silnika.
Jak FUGE wypada w porównaniu do CEGUI?

Jak wiem co konkretnie chcę osiągnąć, to sam zwykle wolę zacząć od jak najmniejszych bibliotek. CEGUI na pewno ma większe możliwości, obszerniejszą dokumentację, gotowe toolkity i jakąś społeczność, która może Ci pomóc w razie problemów. Bajka. Z drugiej strony tendencją takich bibliotek jest stroma "learning curve" i pewien narzut projektowy, ewentualnie problemy z konfiguracją IDE czy projektu. Po prostu nie zawsze się to opłaca.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 05, 2009, 12:30:53
A ja mam pytanie, bo zabieram się powoli za GUI do silnika.
Jak FUGE wypada w porównaniu do CEGUI?

Jeśli chodzi o możliwości, to pewnie blado, ale jego mocną stroną jest prostota. Zresztą przedmówca już napisał, jak to zwykle wygląda. Jeśli chcesz po prostu pisać grę, a nie skupiać się na GUI, to potrzebujesz czegoś prostego. Takich bibliotek, moim zdaniem, bardzo brakuje, bo wszystkie popularniejsze szybko się rozrastają.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 09, 2009, 20:51:44
Rzeczywiście się za to zabrałem i najwyraźniej Fuge się przyda. Póki co podoba mi się łatwość integracji - nic nie ingeruje ani w mój system zasobów, szkielet aplikacji czy rendering, tylko to po prostu wykorzystuje. Naskrobałem prostą implementację renderera na OpenGL z obsługą fontów na FreeType i tyle, mam gui. Potem zobaczymy jak z możliwościami. Fajnie byłoby móc coś dodać w razie potrzeby. Rozumiem, że nie chcesz udostępniać kodu, ale czy jest lub będzie możliwe tworzenie czegoś w stylu SWING'owych Custom Components?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 09, 2009, 23:17:59
Rozumiem, że nie chcesz udostępniać kodu, ale czy jest lub będzie możliwe tworzenie czegoś w stylu SWING'owych Custom Components?

Jeśli chodzi ci o tworzenie własnych komponentów, to tak. Oczywiście brak wglądu do kodu źródłowego trochę to może utrudnić, ale mogę naskrobać jakiegoś małego tutoriala na ten temat, jeśli będzie potrzebny.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 09, 2009, 23:36:47
Mały tutorial na pewno się przyda, przy okazji zaplecze dokumentacji urośnie. Dodam, że chodzą mi po głowie nie tyle skomplikowane komponenty w stylu data grid, czy treetable (w grach się raczej nie przydają), co egzotyczne komponenty w stylu okrągłego menu kontekstowego. Prawdopodobnie w takim wypadku wyjściowe klasy bazowe, musiałyby być ... bardzo bazowe :) Zawsze lepsze to niż dziergać od zera, więc jakikolwiek punkt startowy będzie mile widziany.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 10, 2009, 00:28:08
Prawdopodobnie w takim wypadku wyjściowe klasy bazowe, musiałyby być ... bardzo bazowe :) Zawsze lepsze to niż dziergać od zera, więc jakikolwiek punkt startowy będzie mile widziany.

Jak na razie można spokojnie dziedziczyć sobie po CElement. Po innych klasach bym nie ryzykował bez znajomości kodu źródłowego, ale można wykorzystywać istniejące kontrolki jako elementy składowe własnych komponentów.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: BartMax w Luty 10, 2009, 12:00:30
Powiedzmy ze pisze gre/aplikacje ktora bedzie za darmo opublikowana. Tylko ze osoba ja publikujaca zaplaci mi za wykonanie tej gry. Czy w tej sytuacji moge za darmo i bez zadnych konsekwencji korzystac z FUGE?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 10, 2009, 13:36:54
Powiedzmy ze pisze gre/aplikacje ktora bedzie za darmo opublikowana. Tylko ze osoba ja publikujaca zaplaci mi za wykonanie tej gry. Czy w tej sytuacji moge za darmo i bez zadnych konsekwencji korzystac z FUGE?

Po sądach cię ciągał nie będę :). Powiem więcej, bardzo bym się ucieszył gdyby biblioteka została wykorzystana w grze, która ma być opublikowana.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 12, 2009, 12:28:32
Mam pewien problem i nie wiem czy jest to bug czy mój błąd.

Problem:
Kontrolki umieszczone w zakładkach TabCtrl nie generują zdarzeń.

Okoliczności:
TabCtrl ma wyznaczonego rodzica i zmiana zakładki generuje eventa.
W zakładkach guziki wizualnie udają że się naciskają.
Sprawdzam czy generuje się jakikolwiek event, nie jest to zatem problem z id komponentu.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 12, 2009, 13:10:50
To była "drobna" niedoróbka. Zdarzenia szły do panelu, który wchodzi w skład TabCtrl, zamiast do niej samej. Jakoś to załatałem, ale trzeba przetestować, czy przy okazji nie popsułem czegoś innego. Gdybyś podał mi swojego mejla, przesłałbym ci uaktualnioną wersję.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 12, 2009, 13:48:51
Przy okazji zapytam jeszcze o dialogi do plików.

Wprawdzie obecnie wywołuję sobie WinApi'owe dialogi z OPENFILENAME i takie rozwiązanie mi na razie wystarczy do edytora. Podejrzewam jednak, że potem będę chciał mieć obsługę systemu plików z look&feel'em zgodnym z resztą aplikacji. Napisać nie problem, ale zawsze trochę pracy. Wolę wcześniej spytać czy przypadkiem sam nie planowałeś dodawać takich gotowych kompozytów do biblioteki, albo już nad tym nie pracujesz. W takim przypadku po prostu leniwie poczekam :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 12, 2009, 14:42:12
Przy okazji zapytam jeszcze o dialogi do plików.

Wprawdzie obecnie wywołuję sobie WinApi'owe dialogi z OPENFILENAME i takie rozwiązanie mi na razie wystarczy do edytora. Podejrzewam jednak, że potem będę chciał mieć obsługę systemu plików z look&feel'em zgodnym z resztą aplikacji. Napisać nie problem, ale zawsze trochę pracy. Wolę wcześniej spytać czy przypadkiem sam nie planowałeś dodawać takich gotowych kompozytów do biblioteki, albo już nad tym nie pracujesz. W takim przypadku po prostu leniwie poczekam :)

Zastanawiałem się nad tym. W Untitled na przykład wykorzystałem taki dialog z Irrlichta (choć nieco go dostosowałem do moich potrzeb) i sprawuje się on całkiem nieźle. Z drugiej strony w Gimpie również wykorzystano nie-natywny dialog wyboru plików i jest on beznadziejny (głównie z tego powodu nie używam tego programu!). Jako użytkownik zdecydowanie preferuję dialog z WinAPI. Jeśli jednak bardzo zależy ci na tym, by w bibliotece było coś do tego, mogę dopisać.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 12, 2009, 15:19:25
Hehe, może lepiej się nie fatyguj. Jak będę potrzebował to sam napiszę. Ewentualnie wtedy, jeżeli będziesz zainteresowany to podrzucę ci jakieś klocki w stylu klasy z listboxem i event receiverem umożliwiającym przeszukiwanie systemu plików. Jak już żeruję na twoim kodzie to mogę coś pomóc :P

Cytuj
Z drugiej strony w Gimpie również wykorzystano nie-natywny dialog wyboru plików i jest on beznadziejny
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 :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kos w Luty 12, 2009, 22:55:42
Cytuj
Z drugiej strony w Gimpie również wykorzystano nie-natywny dialog wyboru plików i jest on beznadziejny (głównie z tego powodu nie używam tego programu!).

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ć. :)


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 :)

To z kolei niektórzy fajnie podsumowują: Jeśli spędzisz odpowiednią ilość czasu nad blenderem, to zaczniesz marzyć, by każdy app miał takie GUI. :) Coś w tym jest. Nieszablonowe, ale funkcjonalne.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Dab w 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. ;)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w 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 ;).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kos w 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 ;).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: PoD w Luty 13, 2009, 05:37:08
Renderer na OpenGL już działa czy nie?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: skoti w 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.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w 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ę.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: maVes w 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?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w 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 :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: maVes w Luty 17, 2009, 19:28:44
Ok, dzięki za wyjaśnienie. W takim razie biorę się za pisanie własnego renderera :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w 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?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w 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.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w 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?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w 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.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: maVes w 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 :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w 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.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 20, 2009, 16:10:08
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 :)

Bo tę funkcję użytkownik powinien wołać sam - jeśli potrzebuje. Jeśli nie, to można jej w ogóle nie implementować (tj. zostawić pustą definicję). Stany urządzenia musisz ustawiać w funkcjach rysujących (DrawImage, DrawRectangle itd.). Nie wiem, czy to ma sens, ale kiepsko znam Direct3D i nie chciało mi się w to wgłębiać :P. We wbudowanym rendererze DirectX jest tam resetowanie urządzenia, czyszczenie ekranu, no i woła się BeginScene na urządzeniu.

Mi z kolei FUGE nie wywołuje DrawImage mojego renderera :(. Jak by coś to LoadImage mojej klasy bitmapy działa poprawnie i zwraca true.

Jesteś pewien, że DrawImage się nie woła? Rysowanie "fajki" na checkboxie wygląda na przykład tak:

Kod: (cpp) [Zaznacz]
if (m_Checked)
    {
        CSize bmp_size = m_BitmapSymbols->GetSize();
        CRect src_rect (CPoint (0, 0), bmp_size); 
        const int sz = 16; 
       
        if (bmp_size.width > 0 && bmp_size.height > 0)
        {
            src_rect.x = (4 % (bmp_size.width / sz)) * sz;
            src_rect.y = (4 / (bmp_size.width / sz)) * sz;
            src_rect.width = sz;
            src_rect.height = sz;
           
            GetRenderer()->DrawImage (m_BitmapSymbols, m_AbsRect.GetTopLeft(), &src_rect);           
        }       
    }

Tak więc jeśli checkbox jest zaznaczony, a bitmapa prawidłowa, to DrawImage musi się wywołać. No, chyba że GetRenderer zwraca jakieś głupoty, ale w takim wypadku raczej nic by ci się nie rysowało.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 20, 2009, 16:47:22
@maVes:
Kod przygotowania i sprzątania po rysowaniu GUI proponuję umieścić gdzieś w swojej klasie (np. bazowej GUISystem dla FugeGUISystem), która będzie współpracować z twoim silnikiem dając interfejs beginDraw() i endDraw(). Wtedy GUISystem::drawGUI() byłaby wirtualna i definiowana ponownie w FugeGUISystem. W ten sposób struktura ci się nie posypie jak Złośliwiec nas oleje i przestanie wypuszczać fixy :P

@Złośliwiec:
Cytuj
CSize bmp_size = m_BitmapSymbols->GetSize();
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: maVes w Luty 20, 2009, 17:19:46
Kod przygotowania i sprzątania po rysowaniu GUI proponuję umieścić gdzieś w swojej klasie (np. bazowej GUISystem dla FugeGUISystem), która będzie współpracować z twoim silnikiem dając interfejs beginDraw() i endDraw(). Wtedy GUISystem::drawGUI() byłaby wirtualna i definiowana ponownie w FugeGUISystem. W ten sposób struktura ci się nie posypie jak Złośliwiec nas oleje i przestanie wypuszczać fixy :P
Zrobiłem tak jak mówił Złośliwec - stany urządzenia ustawiam w BeginScene, a następnie ręcznie wywołuję tę funkcję przed rysowaniem GUI.

Cytuj
CSize bmp_size = m_BitmapSymbols->GetSize();
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.
Też tak przez chwilę myślałem. Postawienie słówka virtual przy GetSize i nadpisanie funkcji by tu pomogło, ale znalazłem inne rozwiązanie. Wystarczy przy wczytywaniu obrazka odpowiednio ustawić pole m_Size dziedziczone po IBitmap :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 20, 2009, 17:32:01
Cytuj
CSize bmp_size = m_BitmapSymbols->GetSize();
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.
Też tak przez chwilę myślałem. Postawienie słówka virtual przy GetSize i nadpisanie funkcji by tu pomogło, ale znalazłem inne rozwiązanie. Wystarczy przy wczytywaniu obrazka odpowiednio ustawić pole m_Size dziedziczone po IBitmap :)

[/quote]

Dobry pomysł, tak też zrobię. Jak dotyram do 25-tego posta to dam ci punkt karmy :) Złośliwiec też dostanie za Fuge i kolejne wersje. I za słowko virtual jeżeli wstawi (będzie bardziej elegancko).

@Złośliwiec
A tak przy okazji, jak już FUGE wgramolił się w mój kod fajnie byłoby wiedzieć od czego to akronim (jeżeli w ogóle, może być imię psa, albo tak ci się wklepało)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 20, 2009, 18:52:54
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.

Zauważ, że ta metoda to trywialny akcesor. Nie ma sensu czynić jej wirtualną. Jedynym poprawnym sposobem zakomunikowania "otoczeniu" klasy rozmiaru bitmapy jest ustawienie pola m_Size na odpowiednią wartość. Najwidoczniej tego nie robisz podczas wczytywania bitmapy.

A tak przy okazji, jak już FUGE wgramolił się w mój kod fajnie byłoby wiedzieć od czego to akronim (jeżeli w ogóle, może być imię psa, albo tak ci się wklepało)

Tego nawet najstarsi górale nie pamiętają ;). Dwie ostatnie litery na pewno od GUI Environment, a reszta?... Zaraza wie. Jak chcesz, to możesz coś wymyślić. Najlepiej żeby wyszedł akronim rekurencyjny ;).

//EDIT:
Cytuj
Też tak przez chwilę myślałem. Postawienie słówka virtual przy GetSize i nadpisanie funkcji by tu pomogło, ale znalazłem inne rozwiązanie. Wystarczy przy wczytywaniu obrazka odpowiednio ustawić pole m_Size dziedziczone po IBitmap

O, właśnie o tym mówiłem :).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Angru w Luty 20, 2009, 21:34:55
Cytuj
Zauważ, że ta metoda to trywialny akcesor.
Słusznie, zasugerowałem się chyba myśląc, że IBitmap to czysty interfejs. Słabo się temu przyjrzałem, a m_Size jest udokumentowane jako protected. Cofam zatem to, że będzie bardziej elegancko z virtualnym getterem.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Luty 20, 2009, 22:23:07
Słusznie, zasugerowałem się chyba myśląc, że IBitmap to czysty interfejs.

W moich "dziełach" abstrakcyjne interfejsy nie istnieją :P. Uważam je bowiem za ślepy idealizm - więcej klas, więcej pisania, brak pożytku. Nie mnożyć bytów ponad potrzebę ;).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: PoD w Marzec 06, 2009, 00:08:47
Poddaję się, nie mam bladego pojęcia jak naprawić błąd linkera. Wygląda jakby w statycznej bibliotece nie były zdeklarowane niektóre funkcje, jak np. CUIManager::AddWindow. Możliwe, że to wina starej wersji Visuala z 2003 roku?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 06, 2009, 10:22:48
Nie wiem, a pokażesz jakiś kawałek kodu i te błędy?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: PoD w Marzec 06, 2009, 22:13:58
Myślałem, że to własnie przez mój "zły" kod, ale jednak nie, gdyż po nieudanej próbie użycia FUGE w projekcie, spróbowałem z pierwszym przykładowym kodem z dokumentacji. Efekt ten sam, czyli błędy linkowania.

Linking...
test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class fuge::CWindow * __thiscall fuge::CUIManager::AddWindow(class fuge::CRect const &,class fuge::CElement *,unsigned short const *,int,int)" (__imp_?AddWindow@CUIManager@fuge@@QAEPAVCWindow@2@ABVCRect@2@PAVCElement@2@PBGHH@Z) referenced in function _WinMain@16
Debug/fuge_test.exe : fatal error LNK1120: 1 unresolved externals

Odwołuje się oczywiście do linii:
// Create a small window
       CWindow* wnd = ui->AddWindow (CRect (5, 5, 300, 200), null, L"Fuge Example");
Po jej wykomentowaniu jest ok, ale oczywiście nic mi po pustym okienku.

Zaobserwowałem podobne zjawisko dla wszystkich funkcji z serii "Dodaj element" i to chyba najbardziej boli, bo uniemożliwia korzystanie z biblioteki. Funkcje takie jak ToMultiByte można sobie samemu napisać.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 06, 2009, 22:18:58
Czyżbyś nie miał włączonego typu wchar_t?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: PoD w Marzec 07, 2009, 00:52:42
Zwracam honor, mój błąd. Wydawało mi się, że mam włączony, ale w praktyce przestawiłem Character Set na Unicode, ale zapomniałem o traktowaniu wchar_t jako domyślny typ znaku dla stringów.

Pierwsze wrażenia: biblioteka wydaję się fajna, mała i spójna. Zobaczymy jak się będzie edytory z tym pisało.

Dzięki, pzdr.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Maj 04, 2010, 22:27:19
Ukończyłem wreszcie wersję 1.0 biblioteki. Tym razem jest dostępna jako open-source na licencji LGPL. Całkowicie nowej funkcjonalności nie ma dużo: pojawiły się okna modalne i z większych zmian to właściwie wszystko. Natomiast poprawionych zostało mnóstwo różnych drobiazgów, które utrudniały wykorzystanie biblioteki w praktyce, na przykład przełączanie Unicode/ANSI, obsługa błędów ładowania plików, automatyczne centrowanie message box-ów (i przycisków na nich) i dopasowywanie tekstu, możliwość ustawienia ikonki czy stylu obramowania okna tworzonego przez Fuge. Dodałem trochę rzeczy przydatnych dla osób, które chciałyby wykorzystać Fuge jako swój podstawowy framework do stworzenia gry 2D, w tym wirtualne timery i klasę CImageList. Do tego oczywiście dużo poprawionych błędów mniejszych i większych oraz uzupełniona dokumentacja.

Mam nadzieję, że biblioteka przyda się paru osobom do stworzenia czegoś fajnego oraz że pojawią się jakieś sugestie - co jeszcze można by ulepszyć albo dopisać nowego.

http://darkcult.nazwa.pl/download/fuge-1.0.rar
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 20, 2011, 00:22:36
Wersja 1.17 jest już dostępna:

http://darkcult.nazwa.pl/download/fuge-1.17.rar

Najważniejszą nowością jest tryb edycji, pozwalający na wstawianie nowych kontrolek w czasie wykonania, zmianę ich pozycji, rozmiaru i podstawowych atrybutów. Stan GUI może być zapisany do pliku XML i później wczytany. Tryb edycji można włączać i wyłączać w dowolnym momencie, więc można z niego skorzystać na różne sposoby. Można napisać sobie edytor GUI (całe 16 linii kodu razem z klamrami i dyrektywami preprocesora :-)) jako osobny plik EXE albo dodać możliwość edycji bezpośrednio w grze, włączaną np. skrótem klawiszowym.

Oprócz tego oczywiście mnóstwo poprawek i ulepszeń, m.in. naprawiony jest słynny już błąd kompilacji na Viście i Seven (niezadeklarowane 'CLEARTYPE_QUALITY'), obsługiwany jest Alt+Tab w trybie pełnoekranowym, uproszczone tworzenie schematów kolorów, zoptymalizowany wbudowany renderer DirectX. Uaktualniłem też dokumentację, tutoriale i FAQ.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 20, 2011, 17:57:30
fatal error C1083: Cannot open include file: '../Untitled/PBLib/PBLib.h': No such file or directory
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 20, 2011, 18:02:31
Cytuj
// IMPORTANT NOTE:
// please change the path below so that it is valid path to PBLib:
#include "../Untitled/PBLib/PBLib.h"

Ale fakt, że może nie jest to zbyt intuicyjne, zaraz zmienię :-).

//EDIT:
Szkoda tylko, że plików PBLib w ogóle nie ma w archiwum. Tym bardziej zaraz zmienię :-).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 20, 2011, 20:35:13
Problem z PB zniknal :P Zostaly jakies errory w naglowkach yvals string cstdio oraz blad rc braku symbols.bmp
Moze rano dostane olsnienia jak zbuildowac toto :P
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 20, 2011, 20:49:35
Problem z PB zniknal :P Zostaly jakies errory w naglowkach yvals string cstdio oraz blad rc braku symbols.bmp
Moze rano dostane olsnienia jak zbuildowac toto :P

Plik RC najlepiej wywalić, chyba dostał się tam przez przypadek. Co do tych tajemniczych errorów, niestety nie mam pojęcia o co może chodzić.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 20, 2011, 22:06:29
Wywaliłem rc i errory z string itp znikły Oo... No to zobaczymy co tam Złośliwiec nakodował bo mnie ciekawość zżera :)

Problem juz nie z buildowaniem a z sample kode:
LIBCMTD.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRTD.lib(MSVCR100D.dll)oraz
Fuge.lib(UpDown.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)

i to nie sa dwa tylko bledy lecz setka...
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Furry w Marzec 20, 2011, 22:24:19
Mieszasz kompilacje debug + release (ten 1 błąd)
Na drugim wygląda na to, że złośliwiec zjadł konstruktor:)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 20, 2011, 22:40:02
Mnie to raczej wygląda na pomieszane run-time'y (/MDd z /MTd albo /MD z /MT). Konstruktora nie zjadłem :-).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 21, 2011, 15:50:58
Cytuj
1>Fuge.lib(UpDown.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Bitmap.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(MessageBox.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Progress.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(ScrollBar.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(TabCtrl.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(EditorWindow.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(ImageList.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(ListBox.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Static.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(CheckBox.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(ComboBox.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(EditBox.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Window.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>main.obj : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(UIManager.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Element.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(Button.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CRect::CRect(int,int,int,int)" (??0CRect@pb@@QAE@HHHH@Z)
1>Fuge.lib(FugeDev.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CLogger::~CLogger(void)" (??1CLogger@pb@@QAE@XZ)
1>Fuge.lib(FugeDev.obj) : error LNK2001: unresolved external symbol "public: void __thiscall pb::CLogger::SetOutput(enum pb::CLogger::ELogOutput)" (?SetOutput@CLogger@pb@@QAEXW4ELogOutput@12@@Z)
1>Fuge.lib(Bitmap.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CSize::CSize(int,int)" (??0CSize@pb@@QAE@HH@Z)
1>Fuge.lib(WordWrap.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CSize::CSize(int,int)" (??0CSize@pb@@QAE@HH@Z)
1>Fuge.lib(TabCtrl.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CSize::CSize(int,int)" (??0CSize@pb@@QAE@HH@Z)
1>Fuge.lib(UpDown.obj) : error LNK2001: unresolved external symbol "public: __thiscall pb::CSize::CSize(int,int)" (??0CSize@pb@@QAE@HH@Z)

[...] 72 unresolved externals
Run-time'y (/MDd z /MTd albo /MD z /MT) są już poprawne.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 21, 2011, 15:56:17
Spróbuj jeszcze przebudować cały projekt, bo ten konstruktor na pewno tam jest (w pliku PBLib/Core.cpp).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 21, 2011, 17:49:55
A przypadkiem nie podales tylko h a w projekcie nie ma dołączonych cpp? :P
Edit: Mialem racje, dodalem wszyskie cpp do projektu zbuildowalem i programy dzialaja :) Radze to dodać także do paczki aby inni się nie kłopotali i jednym buildem (+ podanie sciezek do DX) mogli stworzyc biblioteczke :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 21, 2011, 17:54:26
A przypadkiem nie podales tylko h a w projekcie nie ma dołączonych cpp? :P

No faktycznie, miały wyjść dwie libki, a dałem tylko jeden *.vcproj :-).

//EDIT:
A dokładniej to drugi *.vcproj jest w podkatalogu. Co nie zmienia faktu, że ktoś może o nim łatwo zapomnieć. Nie mam na razie pomysłu jak to rozwiązać.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 21, 2011, 18:13:24
Zrobiłem tak:
Dodalem filtr do projektu FUGE o nazwie PBLIB
i dodalem do niego add exist item i wszystkie pliki cpp. Zadzialalo majac jedna lib.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Marzec 21, 2011, 19:01:13
Zrobiłem tak:
Dodalem filtr do projektu FUGE o nazwie PBLIB
i dodalem do niego add exist item i wszystkie pliki cpp. Zadzialalo majac jedna lib.

Nie ma powodu, żeby nie działało :-). Brakuje mi tylko pomysłu, jak to sprytnie rozwiązać, żeby użytkownicy mieli wszystko dodane za jednym zamachem. Nie mogę tworzyć jednego *.vcproj, bo PBLib wykorzystuję w Untitled, a Fuge nie.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Frondeus w Marzec 21, 2011, 19:04:54
Ym czyli niech FUGE korzysta z liba skompilowanego juz PBLIB ;P a do kazdego programu oprocz FUGE bedzie sie dolaczac takze pblib. Druga opcja taka że pblib jest bez zmian i untitled korzysta z jednego, a fuge ma dolaczane cpp.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Adam7 w Kwiecień 21, 2011, 16:56:13
A powiedz mi Złośliwiec, w jaki sposób zintegrować FUGE z już utworzonym oknem?

[EDIT]
Już nie ważne
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Kwiecień 22, 2011, 21:26:11
Mimo to napiszę, w razie gdyby komuś jednak wydało się ważne ;-). Wystarczy skorzystać z drugiego (bo są dwa) konstruktora CFugeDevice, tego, co przyjmuje HWND jako jeden z argumentów. I to właściwie wszystko.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Czerwiec 22, 2011, 11:01:40
Nowa wersja gotowa:

http://darkcult.nazwa.pl/download/fuge-1.34.rar

Najważniejsze zmiany:


Nowe screeny jak zwykle można sobie obejrzeć tutaj:

http://warsztat.gd/projects.php?x=view&id=578

W paczce z biblioteką jest również małe demko w postaci gotowego EXE (Wymaga DirectX 9), można sobie odpalić i zobaczyć jak wyglądają i jak funkcjonują nowe kontrolki w różnych schematach kolorów.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: MDW w Czerwiec 22, 2011, 11:54:51
Gratulacje. Wygląda bardzo fajnie. Złośliwiec dał się wielokrotnie poznać jako naprawdę konkretny gość, który zna się na rzeczy dlatego o jakość kodu jestem spokojny. Generalnie boję się używać cudzych bibliotek ale tej bym się nie bał, bo od lat czytam komentarze Złośliwca. Jak ktoś potrzebuje GUI to myślę, że wybór tego GUI będzie słuszną koncepcją. :)
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Xandev w Czerwiec 22, 2011, 17:08:00
Zauważyłem jeden błąd, a mianowicie aplikacja(demo) przestaje odpowiadać, gdy zamknie się okienko PropertyGrid jako pierwsze.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Czerwiec 23, 2011, 10:32:32
Zauważyłem jeden błąd, a mianowicie aplikacja(demo) przestaje odpowiadać, gdy zamknie się okienko PropertyGrid jako pierwsze.

Dziwne, u mnie nic takiego się nie dzieje. Mógłbyś podać więcej szczegółów?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Xandev w Czerwiec 23, 2011, 11:20:04
Proszę:
http://www.speedyshare.com/files/29108849/20110623_1016_52.rar

Nagrałem specjalnie filmik, żeby nie było, że oszukuję czy coś.
Może tylko u mnie wyskakuje coś takiego, ale czemu?
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Czerwiec 23, 2011, 11:39:54
Nagrałem specjalnie filmik, żeby nie było, że oszukuję czy coś.
Może tylko u mnie wyskakuje coś takiego, ale czemu?

Czasem gdy się robi złe rzeczy w kodzie, zachowanie programu jest nieprzewidywalne - na jednym kompie może działać jak gdyby nigdy nic, a na innym się wykrzaczać. Najwyraźniej z taką właśnie sytuacją mamy tutaj do czynienia. Dzięki za filmik, zaraz się temu przyjrzę pod debuggerem.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: supron w Czerwiec 24, 2011, 12:50:08
  • wbudowany renderer OpenGL
Za to wielki browar się należy. Szukałem jakiegoś ciekawego GUI do mojego edytora map i chyba znalazłem (do tej pory korzystałem z własnego, ale za dużo czasu poświęcałem na rozwój samego gui zamiast edytora). Czekałem tylko na render opengl'a.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Xandev w Czerwiec 24, 2011, 14:45:48
Złośliwiec, prosiłbym Cię, aby w następnej wersji umieścić dodatkowe 2 style do okienek:
- z przyciskiem minimalizacji i wyjścia
- z przyciskiem maksymalizacji i wyjścia
Czasami potrzebna jest sama minimalizacja bez maksymalizacji bądź też na odwrót.

Mógłbym zrobić to sam, ale przy wydaniu kolejnej wersji musiałbym na nowo robić i pewnie bym zapomniał o tym ;o
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Kos w Czerwiec 24, 2011, 15:29:17
Mógłbym zrobić to sam, ale przy wydaniu kolejnej wersji musiałbym na nowo robić i pewnie bym zapomniał o tym ;o

To zrób sam i wyślij Złośliwcowi patcha! Nie wiesz, jak open source działa? :D
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Czerwiec 24, 2011, 15:45:12
Kos dobrze gada. Ficzer jest bardzo prosty do zaimplementowania, ale zawsze to oszczędność czasu dla zapracowanego autora ;-).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Witek9002 w Lipiec 09, 2011, 01:37:26
Bardzo fajne GUI, chyba użyję w swoim projekcie ze względu na zaimplementowane PropertyGiridy i TreeView, jednak mam parę zastrzeżeń:
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Lipiec 09, 2011, 01:52:05
Błędy poprawię (byłbym wdzięczny za dokładny opis tego, co się dzieje z EditBox-em). Ctrl+V działa, pozostałe wymienione skróty rzeczywiście nie są jeszcze zaimplementowane, ale kiedyś pewnie będą. W tym roku wypuściłem już dwie wersje Fuge, a tu jeszcze Untitled w kolejce czeka, więc na razie nie będę pracował zbyt intensywnie nad moim GUI. Ale możesz sam próbować powprowadzać niektóre proste zmiany (te gradienty na przykład, albo przewijanie).
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Sierpień 07, 2011, 18:59:36
Mimo wszystko kolejna wersja została ukończona:

http://darkcult.nazwa.pl/download/fuge-1.37.rar

Tym razem zmiany koncentrują się głównie na współpracy FUGE z innymi bibliotekami/silnikami. Dzięki pomocy Liosana, który próbował (z niezłym skutkiem) zintegrować FUGE z SFML, sposób obsługi wejścia został znacznie ulepszony. Wyszło też kilka innych, drobniejszych niedoróbek, jak "niezniszczalny" logger, próbujący sobie utworzyć plik w aktualnym katalogu, wredna #pragma "wyłączająca" konsolę czy też 'using namespace' beztrosko umieszczone w plikach nagłówkowych ;-). Oprócz tego poprawiłem wspomniane wyżej usterki w EditBox-ach.
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Liosan w Sierpień 11, 2011, 13:03:03
A kwestia ładowania domyślnej czcionki przy starcie? ;-)

Dzięki pomocy Liosana, który próbował (z niezłym skutkiem) zintegrować FUGE z SFML
Prace będą kontynuowane we wrześniu :-) Trochę szczegółów jeszcze zostało, ale ogólnie da się używać. Dzięki wykorzystaniu kodu GUI z Warlock's Gauntlet idzie całkiem spoko, powinno powstać coś używalnego niedługo.

Liosan
Tytuł: Odp: FUGE - GUI do twojej gry
Wiadomość wysłana przez: Złośliwiec w Sierpień 11, 2011, 20:08:17
A kwestia ładowania domyślnej czcionki przy starcie? ;-)

A co ci się nie podoba w twoim if (name == "arial") name = "verdana" ? Proste i genialne ;-).
Tak mnie wykończyło naprawianie EditBox-a, że zapomniałem o tym foncie. Może w następnej wersji :-).