2012-01-07 20 views
10

Cada vez que agrego un nuevo archivo de sombreado .fsh o .vsh OpenGL ES 2.0 a los recursos de mi proyecto, el archivo se agrega a la fase de compilación Build Sources donde no pertenece. Luego tengo que eliminarlo manualmente de esa fase y agregarlo manualmente a la fase de compilación Copiar recursos del paquete.¿Cómo agregar los archivos shader .fsh/.vsh a Xcode para que se agreguen a la fase Copy Bundle Resources automáticamente?

¿Hay alguna manera en que pueda decirle a Xcode que agregue archivos con la extensión .fsh y .vsh automáticamente a la fase de compilación Copy Bundle Resources?

¿O es posible crear una regla de compilación que tenga el mismo efecto que agregar los sombreadores a la fase de compilación Copy Bundle Resources?

Preferiría una solución que funcione para todos los usuarios del proyecto/espacio de trabajo de Xcode, en lugar de una configuración o cambio de sistema que cada usuario de Xcode tendría que jugar individualmente.

+0

No sé la respuesta de la parte superior de mi cabeza, pero mi sentido arácnido me está diciendo que la respuesta posiblemente se encuentre en la sección "Construir Reglas" de su proyecto. –

+0

Pensé que también, pero no tuve suerte allí. O recibo advertencias de "comandos de compilación múltiple" o "sin reglas para procesar archivos". La solución más lógica con una regla "archivos fuente GLSL usando PBXCp" no funcionó, incluso si configuré el tipo de archivo de los archivos fsh/vsh a la fuente del lenguaje de sombreado OpenGL. – LearnCocos2D

+0

Tengo una biblioteca de gráficos hecha por mí mismo que comparto entre proyectos. Me gustaría tener el código y los sombreadores en una carpeta, y hacer que Xcode descubra cuáles son los archivos fuente y cuáles son los recursos cada vez que importo la biblioteca a un nuevo proyecto. –

Respuesta

8

Mi solución es que voy a Archivo> Nuevo Archivo> Otros> vacíos archivos y el nombre de ellos como shader.vertsh y shader.fragsh.

Supongo que Xcode agrega automáticamente archivos con extensiones de punto 3/4 para compilar la fase.

Y en caso de que se está perdiendo el resaltado de sintaxis, cambiar el tipo de archivo a 'glsl Fuente': Xcode change file type

+0

esto no funcionó para mí, y no me gustaría, por ejemplo, cambie el nombre de los archivos fuente existentes solo para este caso. Usé el método de put-them-in-a-folder y add-to-project-via-folder-reference, mencionado por LearnCocos2D. –

+0

@jd. Sí, tampoco me importaría cambiar el nombre de todos los códigos existentes, esta solución alternativa solo es buena si está comenzando un nuevo proyecto, también espero que Apple corrija este problema, ya que en su código de muestra han usado las extensiones .vsh y .fsh y a todos les gustaría seguir eso, incluyéndome a mí :) – chunkyguy

+1

No creo que esta corrección sea necesaria más, en XCode 5.1.1 los archivos '.vsh' y' .fsh' se agregan automáticamente a 'Copy Bundle Resources' – aledalgrande

9

Lo que sigue es una solución alternativa que encontré. Si alguien tiene otras soluciones, aún apreciaría la respuesta.

Lo que hace para obtener los sombreadores en el Copy Bundle Resources fase de compilación automáticamente es simplemente para poner todos los sombreadores en una carpeta común (o árbol de carpetas). Llamé a la carpeta "Shaders". Luego, al agregar la carpeta Shaders, seleccione Crear referencias de carpeta para cualquier carpeta agregada.

Como referencias de carpetas, Xcode asume automáticamente que los archivos son Bundle Resources. Solo debe tener cuidado de no colocar ningún archivo no deseado en esa carpeta, respectivamente, limpiar la carpeta antes de hacer una versión de lanzamiento. También cargar los sombreadores requiere utilizar la ruta a los archivos de sombreado, es decir, "Shaders/Examples/Blur.fsh".

Cuestiones relacionadas