dpJudas wrote:edit: Tested on Windows, memory usage in UDB is indeed larger. Will research the idea with storing pixels inside texture later.
This happens because RenderDevice.SetPixels doesn't immediately upload the texture. This is an artifact from the early days of the porting and can be removed by issuing the glTexImage2D call directly at that point instead of when its first used.
Will this not cause issues with threaded loading? Since right now, setting texture pixels does not require a GL context...
About the build...
Postbuild: I just think we need to make a crossplatform version of the scripts (use bash and require cygwin to compile? I personally have cygwin and actually use it for Git, SSH...)
Though honestly I think the real issue here is Mono which does not provide .cmd support even though that's the only supported format (historically) and all commands are expected to be Windows-style in the project (e.g. copy instead of cp). Just like Windows version of Make provides bash and minimal commands, because clearly commands from the makefile will be using it.
Excluding certain code in certain platforms: is it possible to check platform during runtime and disable some parts of the code?
Changing files: all files changed by postbuild should be added to gitignore (because usually they are either generated during build or copied from elsewhere). I already did this for few files (vpo.dll, updater, DevIL).
For AssemblyInfo.cs (which contains revision information) we need to setup a proper build process in a read-only environment which simply does not commit AssemblyInfo.cs to the repository.
As a temporary solution (I'd like to move away from manual builds anyway) it's possible to create a temporary Git state with the modified AssemblyInfo, then restore to whatever it was.