Hi everybody,
Thanks to Blue Baron's work, PNG support has been added to the staging repo. I hope to get it into master (and into a nighly build) in the next few days. This will allow tile authors to just use PNGs, and not have to mess with mask files for bitmaps.
This is still something of a work in progress, and while I expect that the nightly builds should be playable, my changes may cause problems for people who are building Angband from source for Windows. If you do this (or are interested) keep reading for a more in-depth explanation of what's going on.
Since most devs (and the autobuilder) build with Mingw, we need to have a solution which works with Mingw. Unfortunately, I wasn't able to find a version of the DirectX headers/libraries that Mingw could use. So I went with libpng (which depends on zlib) which are both GPL-2 compatible. But since building/crossbuilding them for Windows is hard, I took the easy way out and copied in headers, libraries and DLLs, which I found prebuilt on the gnuwin32 site.
I wasn't able to get Angband to statically link against the libraries, which is why I have to include (and ship) the DLLs. I realize this is a bit junky but it seems to work.
I would *love* to get libpng/zlib building (and crossbuilding) from source, or at least, linking against the libraries statically. But I lack the knowledge about Windows development to get that working at the moment, and I know that MSVC++ uses a completely different build infrastructure.
TL;DR -- It's junky, but I think it works. Feedback and patches happily accepted!
Thanks to Blue Baron's work, PNG support has been added to the staging repo. I hope to get it into master (and into a nighly build) in the next few days. This will allow tile authors to just use PNGs, and not have to mess with mask files for bitmaps.
This is still something of a work in progress, and while I expect that the nightly builds should be playable, my changes may cause problems for people who are building Angband from source for Windows. If you do this (or are interested) keep reading for a more in-depth explanation of what's going on.
Since most devs (and the autobuilder) build with Mingw, we need to have a solution which works with Mingw. Unfortunately, I wasn't able to find a version of the DirectX headers/libraries that Mingw could use. So I went with libpng (which depends on zlib) which are both GPL-2 compatible. But since building/crossbuilding them for Windows is hard, I took the easy way out and copied in headers, libraries and DLLs, which I found prebuilt on the gnuwin32 site.
I wasn't able to get Angband to statically link against the libraries, which is why I have to include (and ship) the DLLs. I realize this is a bit junky but it seems to work.
I would *love* to get libpng/zlib building (and crossbuilding) from source, or at least, linking against the libraries statically. But I lack the knowledge about Windows development to get that working at the moment, and I know that MSVC++ uses a completely different build infrastructure.
TL;DR -- It's junky, but I think it works. Feedback and patches happily accepted!
Comment