2010-11-04 13 views
6

Sto cercando una libreria GUI multipiattaforma leggera per diverse applicazioni di elaborazione del segnale. Un programma ANSI-C deve essere collegato staticamente con esso e le dimensioni contano. Un'applicazione finale deve avere lo stesso aspetto su qualsiasi piattaforma come iPad, iPhone, Android, Ubuntu, Leopard, Windows, ecc.Light cross platform C GUI (OpenGL)

Qt non è appropriato, perché è C++, troppo grande e non funziona su iOS dispositivi. Mi rivolgo alla libreria GUI basata su OpenGL, perché OpenGL è supportato da ogni piattaforma di destinazione moderna e un'applicazione OpenGL avrà lo stesso aspetto su tutti i dispositivi.

Preferibilmente, tale GUI deve supportare le definizioni di moduli utilizzando la semantica dichiarativa, ad es. da stringhe C o da file testuali esterni.

+7

penso "stesso aspetto su qualsiasi piattaforma" è non è una buona idea. Penso che potrebbe essere meglio avere "l'aspetto standard di ogni piattaforma" – pmg

+0

C e Android ... Strano mix. Puoi usare il PDK allora? – jv42

+1

Qt Quick QML * funziona * su iOS e permettiamo di scrivere animazioni con OpenGL con JavaScript, che vengono poi compilate in C. – trusktr

risposta

10

È possibile provare l'ingombro. È stato scritto in C e il supporto supporta EGL e GLX. http://www.clutter-project.org/

+0

+1 sembra una soluzione perfetta per la domanda dell'OP. – jv42

+0

Thx, sembra esattamente quello di cui ho bisogno! – psihodelia

+1

Sembra bello, ma come funziona la licenza LGPL su iOS, dove è necessario il collegamento statico? –

1

Che ne dici di GTK? È stato trasferito al framebuffer linux ed esiste per Windows. Non sono sicuro di quanto impegno richiederebbe per portarlo su un framebuffer in un ambiente embedded.

+2

Nota che non hai accesso al vero framebuffer su un dispositivo Android non rootato - devi passare attraverso java o aprire GL per disegnare cose. –

+1

GTK è dolorosamente gonfio. Tutto ciò che è basato su GObject può anche essere fuori questione. – weberc2

1

Provate il framework UI you Labs uSwish per Android.

È un framework dell'interfaccia utente multipiattaforma che viene eseguito sulla maggior parte dei sistemi operativi. È C e C++ con rendering software e hardware estremamente veloce.

www.youilabs.com

2

Un bel progetto si dovrebbe sapere tutto è Kivy. È un linguaggio di programmazione multipiattaforma open source per creare app basate su OpenGL su Linux, Windows, MacOSX, Android e IOS. http://kivy.org

Viene fornito con il proprio kit di strumenti widget per la creazione di interfacce utente in modo da poter avere la stessa interfaccia su tutte le piattaforme e supporta il multitouch. È molto meglio che scrivere un'app in PhoneGap o Appcelerator (HTML5 e JavaScript hanno ancora un modo per andare prima che le prestazioni siano belle come le app native). Usando Kivy puoi creare app perfette tanto quanto le app native, per tutte le piattaforme.

3

Il linguaggio Haxe (http://haxe.org/) consente di scrivere e compilare app basate su OpenGL per molte piattaforme (Android, iOS, BlackBerry, WindowsPhone HTML5, Linux, Windows 8, Mac OSX, ...) utilizzando una base di codice. Vale la pena dare un'occhiata. Esistono già alcune librerie GUI (http://haxe.org/doc/libraries/gui) e potresti anche scrivere la tua libreria GUI. Per creare la propria libreria GUI, si tratta di imparare come disegnare e animare le cose usando HaxeNME (http://haxenme.org), che include già elementi di base come i campi di testo. Per i pulsanti di opzione, le caselle di controllo, ecc., Dovresti disegnarli o utilizzare/modificare una delle librerie della GUI esistente in base alle tue esigenze. Il vantaggio di usare Haxe è che la tua app può girare su molte piattaforme.

Dai uno sguardo alla vetrina delle app con alimentazione HaxeNME: http://www.haxenme.org/showcase/.

0
  1. libnui è il miglior approccio che a mio parere utilizza css Philosophy.but non è in contributo attivo.
  2. kivy è un buon strumento, ma devi incorporare python.h con la tua app per far crescere la tua app (predefinito Android 40M)
  3. qt è una buona utilità ma le prestazioni rispetto ad altri strumenti sono un po 'lente e il suo la licenza non è così economica per le applicazioni mobili commerciali. (GPL v3)
  4. Juce è un'altra soluzione ma la sua gui api non è matura, penso.

Il mio suggerimento: è meglio usare C++ per il modello di bussiness multipiattaforma come WebServer e utilizzare gui specifici della piattaforma. vedere questo video https://www.youtube.com/watch?v=ZcBtF-JWJhM e guarda questo pronti contro termine: https://github.com/libmx3/mx3 spero che abbia senso per te. :)

0

lo consiglio Cocos 2d-x (C++, OpenGL ES 2.0, open source, veloce e con grande libreria GUI che contiene molte classi - finestre, pulsanti, scorrere vista, liste, ecc) sua multipiattaforma C++ quadro per Android, iOS, Win32, OSX e Linux (per lo più utilizzati per i giochi, ma funziona bene per semplici applicazioni di interfaccia utente) btw ha editor visuale per configurare UI

cocos2d-x.org