Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    ho provato a includere la libreria con #include"common/LoadTGA.c" ma mi crea un nuovo errore nella libreria stessa.....

    se ti mando il file saresti così gentile da darci un'occhiata?

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Metti il progetto su un sito in modo da poterlo scaricare.

  3. #13
    L'indirizzo è:

    link

    pesa 77 kb.

    Grazie mille per la disponibilità!

  4. #14
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ho visto il progetto ... La parte positiva e' che l'ho messo a posto per quanto riguarda la compilazione, quella negativa che, una volta eseguito, non viene mostrata alcuna immagine nella finestra OpenGL.

    Ho fatto un po' di debug e ho visto che la gltLoadTGA non calcola la corretta dimensione del file a partire dall'header dell'immagine e quindi non la carica in memoria. Questo puo' essere causato dal fatto che il formato dell'immagine di prova *non* e' supportato da questa funzione. Nei commenti c'e' scritto

    // This only works on pretty vanilla targas... 8, 24, or 32 bit color
    // only, no palettes, no RLE encoding

    e mi sa che l'immagine di prova e' compressa con RLE ...
    Per sicurezza, ho scaricato dal sito della Matrox qualche sample TGA e questi vengono visualizzati regolarmente.

    Tornando ai problemi di compilazione (anzi, di linking), questi sono dovuti al fatto che il tuo progetto e' C++ mentre il sorgente LoadTGA.c e' scritto in C. Per questo motivo il nome "decorato" della funzione gltLoadTGA non viene trovato per il link. Per rimediare basta dichiarare esplicitamente il tipo di funzione.

    Quello che devi fare e'

    1) elimina le due linee

    #include"common/GLTools.h"
    #include"common/LoadTGA.c"

    dal sorgente

    2) al loro posto aggiungi

    extern "C" GLbyte *gltLoadTGA(const char *szFileName, GLint *iWidth, GLint *iHeight, GLint *iComponents, GLenum *eFormat);

    3) nella finestra del progetto (dove c'e' l'elenco dei file), tra i sorgenti (dove c'e' carica.cpp), carica anche il file LoadTGA.c (tasto destro del mouse, Add Files to Project ...)

    4) ricompila

  5. #15
    ti chiedo scusa se ieri non ho risposto ma sono stato via.

    Grazie mille per l'aiuto, sei stato veramente gentile.

    Sono riuscito a lanciare il programma, però ho fatto diversamente da come mi avevi suggerito;
    ho lasciato la prima libreria e sostituito solo la seconda...in pratica ho:

    #include"common/OpenGLSB.h"
    //#include"common/GLTools.h"
    extern "C" GLbyte *gltLoadTGA(const char *szFileName, GLint *iWidth, GLint *iHeight, GLint *iComponents, GLenum *eFormat);


    e ho inserito l'altro file nel progetto.
    Alcune immagini tga riesco ad aprirle, altre no; dipende dal tipo di compressione, quindi.

    Ancora grazie e a buon rendere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.