2009-03-22 22 views
32

Come nel titolo, ho bisogno di una libreria grafica 2D che sia multipiattaforma e che fornisca funzioni semplici, come in Basic; in sostanza, ho solo bisogno di dipingere un pixel di un certo colore, non ho bisogno di accelerazione hardware o alcun tipo di supporto 3d. Ne ho trovati un paio, ma non sono multipiattaforma.Una semplice libreria grafica cross-platform 2d per c o C++?

Qualcuno conosce una soluzione per me?

+0

"attrarre lo spam". Vedo ... – xoxox

+0

In che modo questa domanda è diversa da http://stackoverflow.com/questions/1200727/cross-platform-drawing-library?rq=1? – xoxox

risposta

30

Che dire SDL?

Forse è un po 'troppo complesso per le tue esigenze, ma è certamente multipiattaforma.

+0

SDL è effettivamente più di quanto Agasa abbia bisogno, ma dovrebbe essere abbastanza semplice da usare. –

+0

Ha funzionato con il minimo sforzo. Il fatto che sdl-config esista e che debian abbia tutte le cose preinstallate ha aiutato molto. Sono d'accordo è eccessivo, ma è abbastanza semplice per quello che mi serve. Grazie mille per tutto! –

12

[In nessun ordine particolare.] Tuttavia, se avete altri requisiti, fatecelo sapere . BTW: Non sto solo postando i risultati di una query di Google qui, ho usato tutti questi (e SDL - ho scritto i miei primi giochi in SDL :) e direi senza una serie di requisiti, è molto difficile scegliere tra quelli elencati

+0

perché qt 4.2? anche l'ultima versione di qt è buona :) –

+0

Ho avuto a portata di mano i doc link per la versione 4.2, quindi ne ho parlato nel post. – dirkgently

+0

Concordato, Qt (4.5) è anche una scelta eccellente. –

3

Suggerirei DISLIN. È multipiattaforma, ha il supporto per molte lingue e ha un nome molto intuitivo delle routine.

Inoltre, appena notato che nessuno ha menzionato PLPLOT, anche multipiattaforma, multi lingue ...

+2

Mentre DISLIN sembra piuttosto interessante, vale la pena notare che costa $ 180 pr developer per uso non commerciale. – dagw

+1

@dagw - intendi per uso commerciale. È gratuito per uso non commerciale. – Rook

6

Heavy-weight:

  • GTK
  • QT
  • WxWidgets

leggere:

  • FLTK
  • Fox
  • Tk
  • Lua IUP
  • ultimo ++
  • dlib

quadri disegno senza widget GUI:

  • SDL
  • Il Cairo
12

Mi sto perdendo qualcosa a chiedermi perché nessuno suggerisce OpenGL? Usarlo per 2d sarebbe molto semplice. L'OP vuole solo colorare un pixel. Non è più semplice di glBegin/glColor/glVertex/glEnd.

+9

OpenGL non garantisce l'output pixel identico attraverso le implementazioni. –

+0

@ user82238 è corretto, ma esiste una API con accelerazione hardware? http://stackoverflow.com/questions/7922526/opengl-deterministic-rendering-between-gpu-vendor | http://stackoverflow.com/questions/3919307/is-there-a-2d-graphics-api-with-both-pixel-perfect-drawing-and-2d-hardware-accel (ad es. per consentire la rotazione/ridimensionamento dello sprite accelerato/miscelazione/ordine z). –

+0

E se sta semplicemente facendo pixel RGB, senza illuminazione di fantasia/ecc., Non riesco a vedere un'implementazione che darebbe un output radicalmente diverso, se non del tutto. Ma diamine, ora pensandoci 7.5 anni dopo, poteva semplicemente "blittare" su una "schermata" in-memory, e usare OpenGL/etc. semplicemente per gettare il risultato sullo schermo. –

3

Un motore pulito che ho trovato è Angel-Engine. Informazioni dal sito del progetto:

  • funzionalità cross-platform (Windows e Mac)
  • Attori (oggetti di gioco con il colore, la forma, le risposte, gli attributi, ecc )
  • texturing con trasparenza
  • "Animazioni" (texture scambio a intervalli definiti)
  • rigido-corpo Fisica
    • Un programmatore intelligente può fare la fisica soft-corpo con esso
  • suono
  • Rendering di testo con più font
  • Particle Systems
  • Alcuni base AI (macchina a stati e pathfinding)
  • Config Processing File
  • Logging
  • ingresso da un mouse, una tastiera, o Xbox 360 Controller
    • ingressi vincolante da un file di configurazione
  • Python Scripting
    • Console di gioco

Alcuni utenti (me compreso) hanno con successo (senza grandi problemi) compilato sotto Linux.

-1

Un cross-platform libreria grafica 2D per Net è The Little Vector Library si potrebbe usare in combinazione con Unity 3D (consigliato) o Xamarin, per esempio, per creare grafica 2D su una varietà di piattaforme.

+2

Questo sembra essere solo per .NET? L'OP ha richiesto C/C++ e multipiattaforma. –

+2

Grazie, questa risposta è stata molto utile per me! – Thomas