Convertendo .dds em .png: o XNA é realmente tão complicado?
Eu tenho um arquivo .dds e quero um arquivo .png. Embora eu jádescobrir sobre aBiblioteca DevIL.NET, o design da API de uma classe estática não é paralelo, por isso espero encontrar outro método. Isso me levou ao XNA.
Mas, aqui está o quão longe cheguei com essa ideia ...
OK, parece que eu quero issoTexture2D
classe; então eu posso ligarmyTexture2D.SaveAsPng
.Mas como obtenho um desses arquivos .dds? Bem, a documentação parece indicar que eu quero usarmyContentManager.Load<Texture2D>
.Oh merda, não foi isso, isso é algum tipo de sistema de gerenciamento de conteúdo de jogos. Bem, minha pesquisa parece ter encontrado muitos usos demyTexture2D.LoadFile
; Eu vou fazer isso.Estou faltando uma referência de montagem ou algo assim? Oh não, entendi, eles removeram esse método entre 3.1 e 4.0, incrível. OK, bem, é um pouco mais irritante, masmyTexture2D.LoadStream
não é realmente um problema.Espere o que é isso agora? Quer umGraphicsDevice
? Hmm, parece que um geralmente recebe um desses através de umGraphicsDeviceManager
... oh espere, eu não vou por esse caminho novamente, não maisManager
é para mim.Acho que devo instanciar essa coisa manualmente. OK, bem, isso não é muito difícil ...var myGraphicsDevice = new GraphicsDevice(GraphicsAdapter.DefaultAdapter, GraphicsProfile.HiDef,
(oh, o que é issoPresentationParameters
coisa bem OK, eu vou tentarnew PresentationParameters());
.Bem, isso lançou uma exceção. Eles querem ... umDeviceWindowHandle
no meuPresentationParameters
? Mas eu estou executando um aplicativo de console !!Então, eu realmente espero que haja uma maneira menos complicada de fazer isso; talvez algum tipo de padrãoGraphicsDevice
Eu poderia usar. Parece uma tolice criar uma janela inteira apenas para converter .dds em .png.
Sugestões alternativas para o meu problema de conversão são bem-vindas, eu acho, embora provavelmente valha a pena entender como usar o XNA a partir de código não-XNA em geral.