2012-01-07 4 views
10

Ogni volta che aggiungo un nuovo file shader .fsh o .vsh OpenGL ES 2.0 alle risorse del mio progetto, il file viene aggiunto alla fase di compilazione di Compile Sources a cui non appartiene. Devo quindi rimuoverlo manualmente da quella fase e aggiungerlo manualmente alla fase di creazione delle risorse del pacchetto di copia.Come aggiungere i file shader .fsh/.vsh a Xcode in modo che vengano aggiunti automaticamente alla fase Copia risorse pacchetto?

C'è un modo in cui posso dire a Xcode di aggiungere automaticamente file con estensione .fsh e .vsh alla fase di creazione delle risorse del pacchetto di copia?

Oppure è possibile creare una regola di compilazione che ha lo stesso effetto dell'aggiunta degli shader alla fase di creazione delle risorse del pacchetto di copia?

Preferirei una soluzione che funzioni per tutti gli utenti del progetto/spazio di lavoro Xcode, piuttosto che un'impostazione o un cambio di sistema che ciascun utente Xcode dovrebbe riprodurre individualmente.

+0

Io non conosco la risposta fuori dalla parte superiore della mia testa, ma il mio senso di ragno mi sta dicendo che la risposta probabilmente si trova nella sezione "Regole di compilazione" del tuo progetto. –

+0

L'ho pensato anch'io ma senza fortuna lì. O ottengo avvertimenti "comandi di compilazione multipli" o "nessuna regola per elaborare file". La soluzione più logica con una regola "I file di origine GLSL che utilizzano PBXCp" non ha funzionato, anche se ho impostato il tipo di file File fsh/vsh in origine OpenGL Shading Language. – LearnCocos2D

+0

Ho una libreria grafica autoprodotta che condivido tra i progetti. Mi piacerebbe avere il codice e gli shader in una cartella, e ho Xcode capire quali sono i file sorgente e quali sono le risorse ogni volta che importare la libreria in un nuovo progetto. –

risposta

8

La mia soluzione è che vado a File> Nuovo file> Altro> vuoti file e li nomino come shader.vertsh e shader.fragsh.

Immagino che Xcode aggiunga automaticamente i file con le estensioni del punto 3/4 per compilare la fase.

E nel caso in cui vi state perdendo l'evidenziazione della sintassi, modificare il tipo di file 'OpenGL Shading Language Fonte': Xcode change file type

+0

questo non ha funzionato per me, e non vorrei, ad es. rinominare i file sorgente esistenti solo per questo caso. Ho usato il metodo di put-them-in-a-folder e add-to-project-via-folder-reference, citato da LearnCocos2D. –

+0

@jd. Sì, anche a me non interesserebbe rinominare tutto il codice esistente, questa soluzione è buona solo se stai iniziando un nuovo progetto, inoltre spero che Apple risolva questo problema poiché nel loro codice di esempio hanno usato le estensioni .vsh e .fsh e tutti vorrebbero seguirlo, incluso me :) – chunkyguy

+1

Non pensare che questa correzione sia più necessaria, su XCode 5.1.1 '.vsh' e i file' .fsh' vengono automaticamente aggiunti a 'Copia risorse pacchetto' – aledalgrande

9

Di seguito è una soluzione che ho trovato. Se qualcuno ha altre soluzioni, apprezzerei ancora la risposta.

Cosa si fa per ottenere gli shader nello Copia le risorse del pacchetto fase di compilazione automaticamente è sufficiente mettere tutti gli shader in una cartella comune (o albero di cartelle). Ho chiamato la cartella "Shaders". Quindi, quando aggiungi la cartella Shaders, seleziona Crea riferimenti alla cartella per qualsiasi cartella aggiunta.

Come riferimenti alle cartelle, i file vengono automaticamente considerati come risorse bundle da Xcode. Devi solo fare attenzione a non inserire file indesiderati in quella cartella e pulire la cartella prima di creare una versione di rilascio. Anche il caricamento degli shader richiede l'uso del percorso per i file shader, ad esempio "Shaders/Examples/Blur.fsh".

Problemi correlati