Не удалось создать вид ресурса шейдера из файла

Я пытаюсь написать код для чтения списка имен файлов из файла конфигурации с именем «TextureList.txt», а затем использую эти файлы для создания представления ресурсов шейдера для каждой текстуры. Список ниже показывает, что у меня есть:

LPCSTR textures[MAX_TEXTURES];

std::ifstream texturesToLoad;

texturesToLoad.open("TextureList.txt");

int numberOfTextures = 0;

while(!texturesToLoad.eof())
{
std::string textureName;
std::getline(texturesToLoad, textureName);

textures[numberOfTextures] = textureName.c_str();

numberOfTextures++;

char debugMsg[100];
sprintf(debugMsg, "numberOfTextures = %d\n", numberOfTextures);
OutputDebugString(debugMsg);
OutputDebugString(textureName.c_str());
OutputDebugString("\n");
}

for(int i = 0; i < numberOfTextures; i++)
{
d3dResult = D3DX11CreateShaderResourceViewFromFile( d3dDevice_,
textures[i], 0, 0, &colorMap_[i], 0 );

if( FAILED( d3dResult ) )
{
DXTRACE_MSG( "Failed to load the texture image!" );
return false;
}
}

Отладки в нижней части цикла while показывают, что файл читается правильно, он получает все имена файлов и вычисляет правильное количество текстур; однако это терпит неудачу, когда это пытается создать первое представление ресурса.

Может кто-нибудь сказать мне, где я иду не так?

Я не знаю, помогает ли это, но это работает, если я заменяю все выше цикла for жестко закодированными именами файлов, используя следующую строку:

const LPCSTR textures [3] = {«tex1.dds», «tex2.dds», «tex3.dds»};

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]