2011-02-01 11 views
11

Koduję grę dla iPhone'a w języku ooc (nowy język kompilujący się do c) za pomocą OpenGL. To naprawdę idzie dobrze, a ooc to język, który bardzo lubię. Teraz właśnie dowiedziałem się o Vali i nie rozumiem zbyt dobrze, co oznacza, że ​​polega ona na GLib i GObject. W innym pytaniu przeczytałem, że Vala zależy od GTK, ale nie sądzę, że tak.Czy mogę kodować na iPhone'a w Vala?

Pytanie brzmi: co robię z ooc, czy mogę zrobić to samo z Vala? Czy mogę zakodować w vala grę OpenGL na iPhone'a? I może być kod vala używany z c?

Dzięki.

+0

W jaki sposób kodujesz iPhone? Wszystkie wątki, które czytałem o próbach kodowania za pomocą innych języków lub w systemie Windows lub Linux, powracają do tego samego - jedyną kombinacją, która działa, jest Objective C, Apple API i XCode na Macu. – drekka

+0

Można również wpisać kod c lub C++. Będziesz musiał zawijać wszystkie wywołania do API Apple w c, ponieważ interfejs API jest dostępny z obiektywu c. Ponieważ moja gra działa na OpenGL, jedyne połączenia, które musiałem zawijać, dotyczyły tworzenia kontekstu i niewiele więcej. Reszta może być w c. Ooc i Vala kompilują do c. Jestem na macu. – Damian

+0

Jedną z rzeczy, na które należy zwrócić uwagę, jest użycie dowolnego modułu przeznaczonego dla desktop OpenGL, ponieważ wiele rzeczy, które tam robią, nie jest przesyłanych do OpenGL ES. Musisz napisać kod, który używa tego API, jeśli chcesz, aby działał na iPhone'ie. –

Odpowiedz

5

Orientacja obiektu Vala jest realizowana za pomocą biblioteki GObject, która jest częścią GLib. Można używać Vali bez obiektów, a zatem nie wymagając GLIB, ale nie ma to większego sensu.

W każdym przypadku, aby uzyskać dostęp do biblioteki C z Vala, ktoś musi napisać powiązanie VAPI (zobacz Google) dla tej biblioteki. Prawdopodobnie nie ma takiego dla Apple APIs, więc musisz napisać to sam - jeśli jest to dozwolone na mocy umowy licencyjnej Apple.

+2

Czy GLib może być skompilowany dla iPhone'a? – Damian

+0

@Damian, nie wiem. Wiem więcej o Vali niż iOS. W każdym razie nie jest to oficjalnie obsługiwane. – ptomato

+0

W przypadku Apple, AFAIK, jeśli nie jest oficjalnie wspierane przez Apple, prawdopodobnie Twoja aplikacja nie przejdzie procesu certyfikacji. – uSeRnAmEhAhAhAhAhA

1

Możesz znaleźć starszą wersję natywnego kompilatora i libgee na iOS w tym repo: cydia.radare.org (wersja valac to 0,15, jest bardzo stara).

Możliwe jest compile GLib for iOS, więc skompilowanie kodu vala nie powinno stanowić problemu. Prawdziwa trudność wiąże się z powiązaniami, o czym już wspomniano. Wątpię, czy ktoś ma już VAPI na iOS.