On 08/23/2011 01:05 AM, Dick Hollenbeck wrote: > On 08/23/2011 01:02 AM, Dick Hollenbeck wrote: >> http://docs.wxwidgets.org/stable/wx_wxbitmap.html >> >> says PNG format is not supported on Windows version of wxWidgets, but I would >> not walk away without consulting the sources. >> >> More below. >> >>> PNG can be in the flow of information as an intermediate (man in the middle) >>> technology. But I would like to treat it as almost a *.o file in a build >>> process. Our real source file should be the *.svg file. So I would like >>> to see >>> us find a cross platform tool, and I think you have found that already, >>> which >>> can be run from the command line to build the *.png files from the *.svg >>> files. >>> >>> I propose that we agree never to post edit the PNG files, and that they must >>> come from the *.SVG files. I suggest we have a separate CMakeLists.txt >>> file to >>> build the *.PNG files from the *.SVG files automatically, but perhaps not >>> make >>> it a mandatory part of the build process, on the theory that some builders >>> will >>> not want to have the tool which converts from *.SVG to *.PNG installed. >>> >>> *.SVG -> *.PNG >>> >>> >>> Therefore this means distributing both the *.PNG and the *.SVG files as >>> part of >>> the source tree. That is, unless you want to burden every builder with the >>> need >>> to have this tool installed. >>> >>> >>> Then we have to decide on how to load the PNG files into the programs, and >>> there >>> seem to be at least two ways to do this: >>> >>> >>> A) read the *.PNG files into memory from disk at program start time. >>> >>> B) convert the *.PNG files into a BYTE array which is compiled into the >>> respective program. But the byte array is definitely a PNG format, meaning >>> we >>> get the advantage of the alpha channel support, which we do not currently >>> have. >>> >>> >>> If B) is the chosen path. This entails yet another step that we need to >>> add to >>> the build path, meaning it needs to go into a CMakeLists.txt file and needs >>> to >>> be able to happen from a commandline tool. >>> >>> *.PNG -> *.cpp >> http://www.libpng.org/pub/png/book/chapter09.html >> >> Although we are going with larger ICONs, I believe there may be no real >> memory >> penalty since the PNG byte array is essentially be the PNG file in RAM, and >> it >> is in a compressed format already. >> >> So I think sticking with a BYTE array is the best path, because it will lead >> to >> faster loading and we can continue to maintain the bitmap collection as a >> library, and applications can continue to link against that. I'm just >> proposing >> that we put some of the build paths into a well documented CMakeLists.txt >> file, >> one that does not necessarily run all the time as part of the normal >> compilation >> process. > And if you are really paying attention, you recognize that the "byte array > containing" *.cpp files for the bitmaps would also need to be distributed as > part of the source tree also.
A reasonable tool to convert the *.PNG files into *.CPP is a cmake script itself. In doing so, it can also write code to generate a global wxBitmap from the filename of the PNG file. The cmake script can be chain loaded from a CMakeLists.txt file which builds the bitmap library. So I rescind my proposition that the *.cpp files must be distributed as part of the source tree. They can be generated by a *.cmake script. _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

