Пример #1
0
//===============================================================================================================================
HRESULT TextureManager::LoadWICTextureFromFile(LPCWSTR tex_filename, ID3D11ShaderResourceView** srv)
{
    HRESULT hr;

    TexMetadata imageMetadata;
    ScratchImage* image = new ScratchImage();

    hr = LoadFromWICFile(tex_filename, WIC_FLAGS_NONE, &imageMetadata, *image);

    hr = CreateShaderResourceView(mD3DSystem->GetDevice11(), image->GetImages(), image->GetImageCount(), imageMetadata, srv);

    return hr;
}
Пример #2
0
	DirectX::ScratchImage *ImageUtils::loadFromFile(std::string const &path)
	{
		HRESULT loadResult;
		DirectX::TexMetadata info;
		DirectX::ScratchImage *retImage = new DirectX::ScratchImage;
		std::string extension = path.substr(path.size() - 4, 4);
		std::wstring widePath = std::wstring(path.begin(), path.end());

		std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
		if (extension == ".dds")
		{
			loadResult = LoadFromDDSFile(widePath.c_str(), DirectX::DDS_FLAGS_NONE, &info, *retImage);
			if (FAILED(loadResult))
			{
				std::cerr << "Material convertor error : DDS texture loading failed (\"" << path << "\")" << std::endl;
				return (NULL);
			}
		}
		else if (extension == ".tga")
		{
			loadResult = LoadFromTGAFile(widePath.c_str(), &info, *retImage);
			if (FAILED(loadResult))
			{
				std::cerr << "Material convertor error : TGA texture loading failed (\"" << path << "\")" << std::endl;
				return (NULL);
			}
		}
		else
		{
			loadResult = LoadFromWICFile(widePath.c_str(), DirectX::TEX_FILTER_DEFAULT, &info, *retImage);
			if (FAILED(loadResult))
			{
				std::cerr << "Material convertor error : WIC texture loading failed (\"" << path << "\")" << std::endl;
				return (NULL);
			}
		}
		return (retImage);
	}