Я в настоящее время работаю над небольшой графической демонстрацией (использование DirectX), который, прежде всего, базируется вокруг программы построения теней HLSL, я продолжаю работать. Используя D3DX10CreateEffectFromFile я загружаю (и компилирую программу построения теней) во времени выполнения, поскольку я нахожу это легче для тонкой настройки.
Однако, после того как я сделан, я хотел бы сделать некоторую комбинацию следующего:
Прежде всего, я хочу сделать это, потому что я хочу, чтобы демонстрация просто была одним файлом, который может быть очень легко скопирован вокруг.
Одна вещь, которую я мог легко сделать, просто исправлена исходный текст в cpp, но это было бы очень утомительно, я должен был обновить его позже.
Действительно ли возможно сделать что-то вроде этого (использующий Visual Studio, DirectX, HLSL)?
Как указано в этой ссылке, вы можете просто добавить его как двоичный ресурс в exe.
Хотя лично я бы выбрал что-то вроде большого двоичного файла. В начале файла есть оглавление. В основном это ID шейдера и смещение. Смещение соответствует началу двоичных скомпилированных данных. В верхней части каждого скомпилированного шейдера можно поместить 4 байта, в которых указывается его длина. Однако вставка нового шейдера может быть хлопотной, поскольку для этого нужно переместить довольно много данных, но поскольку это автономный процесс, это не является проблемой.