Ho provato di tutto, dall'SDL al DevIL, e hanno tutti fallito per vari motivi.
SDL segfaults per vari motivi, e DevIL sta avendo qualche strano problema dove anche dopo aver incluso IL/ilut.h e aver collegato tutto, e incluso le altre intestazioni, non si definiscono le funzioni di cui ho bisogno per caricare le immagini texture opengl (qualcosa su USE_OPEN_GL non in fase di definizione). Sto chiedendo qualsiasi altra lib in circolazione per caricare bitmap o png in un formato che posso facilmente convertire in opengl o una soluzione al problema del diavolo.
grazieCaricatore di immagini cross platform C++ per OpenGL
risposta
non avete bisogno ilut a fare quello che vuoi. puoi semplicemente usare ilGetData() e glTexImage2d()
Il caricamento di immagini bitmap (.bmp) e netpbm (.pbm, pgm, .pnm) è piuttosto banale, poiché memorizzano le immagini non compresse. Per caricare i PNG, utilizzare libpng. Per caricare file JPEG, utilizzare libjpeg. Per altri tipi di immagine, utilizzare una libreria appropriata. C'è un buon cambiamento che schiacciando 'lib' all'inizio del nome dell'immagine ti darà una tale libreria, ad es. libtiff, libtga, ecc
Una volta caricato e non compressi i dati di immagine grezzi, caricandola in una texture OpenGL è solo una questione di chiamare glTexImage2D()
con i giusti parametri, e un paio di altri cambiamenti di stato GL (ad esempio, come fare mipmapping).
Immagine Magick con le associazioni C o C++?
LodePNG è altamente compatto PNG Loader senza dipendenze.
Commenta la tua esperienza con DevIL: funziona in modo impeccabile per me e molti altri. Perché non provare ancora a risolvere i problemi di build? - non dovrebbe essere troppo difficile)
SOIL è un leggero leggero che ho usato prima. In realtà è specializzato anche nel caricamento di trame OpenGL.
Si può anche provare FreeImage library. Supporta il caricamento di diversi tipi di immagini ed è funzionalmente simile a DevIL, può funzionare senza problemi per te.
E riguardo al problema con DevIL, non è necessario creare librerie ilu o ilut per rendere funzionale DevIL. Ti consiglio di gestire tu stesso gli oggetti texture OpenGL, incluso il caricamento dei dati delle immagini sul lato OpenGL.
Sia libpng che libjpeg possono essere piuttosto scoraggianti per creare l'uso di & - non c'è da stupirsi che ci siano tutti i tipi di librerie di wrapper per entrambi.
Un caricatore semplice e minimale per jpg/png (e anche altre cose) senza dipendenze in un singolo file C è l'immagine stb di Sean Barrett.c, se si desidera solo per caricare alcuni file di immagini che aggiunge in testa assolutamente minimo per il vostro programma ed è semplice da usare:
giovane ma ancora grande abbastanza SFML potrebbe essere quello che state cercando. L'ho usato per numerosi progetti e tutti hanno funzionato bene su tutte le mie piattaforme (Win7 e Ubuntu).
- 1. OpenGL cross platform window
- 2. Light cross platform C GUI (OpenGL)
- 3. Librerie di elaborazione immagini cross-platform C/C++ rapide
- 4. Cross Platform C?
- 5. Architettura codice cross platform C++
- 6. Libreria IMAP Cross Platform C++
- 7. Sviluppo cross-platform Objective-C/C++
- 8. golang: cross platform path.Dir
- 9. Crittografia stringa cross platform
- 10. API cross platform audio
- 11. (Cross-Platform) Programmazione 3D con C# (mono)
- 12. Esiste una libreria USB cross platform C++?
- 13. Cross Platform ServiceStack Authentication
- 14. API di rete cross platform
- 15. Caricatore di file .OBJ per Android OpenGL
- 16. Building Cross Platform app - raccomandazione
- 17. API cross platform per i giochi?
- 18. Libreria MIDI cross-platform semplice per Python
- 19. SWT Cross-Platform Enter Detection
- 20. Dropzone cross-platform generazione delle miniature
- 21. Qual è il buon IDE C++ cross-platform?
- 22. Implementazione cross-platform A * più veloce?
- 23. getopt cross-platform per uno script di shell
- 24. espressioni regolari per abbinare cross platform caratteri di nuova riga
- 25. Cross Platform/dev/null in Python
- 26. Build Eclipse cross-platform con Maven Tycho
- 27. Sottoprogramma cross-platform con finestra nascosta
- 28. Autenticazione cross platform tramite l'API Web ASP.NET
- 29. Creazione del contesto off-platform OpenGL multipiattaforma
- 30. Cross-Platform equivalente a eventi Windows
Penso che questa dovrebbe essere la risposta giusta. È una libreria leggera con un'API C incredibilmente semplice ed è basata principalmente su stb_image.c (che è il codice di caricamento delle immagini leggero spartano assoluto) ma è più pulito. – bigD