Con un poco de esfuerzo se puede configurar manualmente MSVC2010 IDE de manera que destacará archivos HLSL y hará parcial auto-completado/intelisense:
Parte 1)
- de menú en 'Herramientas' haga clic en 'Opciones'
- en el cuadro de diálogo 'Opciones' ampliar al nodo 'editor de texto' y seleccione 'extensión de archivo'
- Ahora en el lado derecho puede agregar extensiones y configurar el editor para ellos
- Añadir extensiones: HLSL y FX con juego de campo 'Editor' a 'Microsoft Visual C++'
- Check 'Los archivos de mapas extensiones a' y ponerlo a 'Microsoft Visual C++'
Parte 2)
Cree el archivo de texto 'usertype.dat' junto a VCExpress.exe o devenv.exe (normalmente ubicado en "c: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \"). Poblar 'usertype.dat' archivo con palabras clave HLSL que quiera resaltar es decir:
float2
float3
float4
float4x4
matrix
cbuffer
tbuffer
Parte 3) Reiniciar MSVC
Parte 4) En 'Herramientas' VC Open \ cuadro de diálogo 'Opciones' de nuevo y navegar a 'Entorno' \ 'Fuentes y colores' y configúrelo a su gusto. El color de las palabras clave del usuario agregado a través de 'usertype.dat' se controla a través del elemento de visualización 'Palabras clave del usuario de C/C++' (Personalmente lo emparejé con la configuración de 'Palabra clave').
Parte 4a) En VC 'Herramientas' \ 'Opciones' \ 'Editor de texto' \ 'C/C++' \ 'Avanzado' en el lado derecho, puede considerar establecer el campo 'Desactivar Garabatos' en verdadero (ya HLSL no es válida código C++ VC normalmente subrayar C++ errores de compilación en el código de shader)
El problema con esto es que HLSL cambia entre las versiones D3D. Si desarrollaste un plugin HLSL Intellisense, no sabrías si un constructo es válido o no. – Puppy
¿No es eso una preocupación con cualquier idioma? VS hace bastante bien al decir la diferencia entre las diferentes versiones de C#, por ejemplo. Si este no es el camino a seguir, ¿hay un editor de hlsl dedicado que pueda proporcionar esta funcionalidad? –
No utiliza múltiples versiones de C# en el mismo proyecto, cambiadas por un #ifdef, que puede hacerlo con HLSL. Tampoco puede cambiar los archivos compilados C# en tiempo de ejecución, lo que también puede hacer con HLSL. – Puppy