Crystal Space detailed change log. http://www.crystalspace3d.org/ The overall history is in reverse (descending) chronological order, so that each new day's entries appears before the previous day's entries. The individual changes for each given day, however, are in normal (ascending) chronological order. 18-Apr-2008 - Mike Gist committed a better fix for dynamic lights not shining on certain objects from Jorrit. csLight::CalculateLighting() now marks RelevantLights as dirty correctly, instead of only when the mesh has a shadow receiver. 17-Apr-2008 - Eric Sunshine removed some useless (probably obsolete) CheckOptions invocations from flags.jam. - Eric Sunshine eliminated usage of the long-obsolete 'nostatic' option for invocations of CFLags and LFLags Jam rules. - Eric Sunshine augmented InferFlagsTuple in flags.jam so that it also considers the shell backtick (`) operator as an option introducer. This operator is used by the RelayLibs rule, for instance, to determine link flags dynamically at build time (as opposed to configure time). This change also works around a Jam bug where its var_expand() function in jam/expand.c allocates a buffer of only 1024 characters for the variable expand-and-join operation $(var:J=x) which is employed by InferFlagsTuple. The very lengthy backtick commands employed by RelayLibs were easily overflowing this internal Jam limit, thus causing it to corrupt its own stack. 16-Apr-2008 - Eric Sunshine clarified and enhanced documentation of RemoveDups rule in helper.jam. - Eric Sunshine generalized MergeLFlags from flags.jam and moved it to helper.jam as the new rule MergeRemovingDups. (The old MergeLFlags name is still recognized for backward compatibility but heavily deprecated.) - Eric Sunshine added a RemoveDupFlags rule to flags.jam which removes duplicates from a list of build switches. Unlike the generic RemoveDups (helper.jam), RemoveDupFlags removes all but the _last_ duplicated item. This makes it suitable for folding out duplicates from a list of linker switches which typically are order-sensitive, and in which the final instance of a duplicated switch has highest precedence. (This new rule also helps to document clients which previously performed the same somewhat convoluted functionality manually and without explanation.) - Eric Sunshine added new rule InferFlagTuples to flags.jam which, given a list of build switches, infers which switches consist of multiple arguments, and returns a list in the same order but with multiple-argument switches converted to atomic array elements. For instance, given the list [-framework, AppKit, -foo, -z, defs, -bar], it will correctly infer that "-framework" and "AppKit", and "-z" and "defs" should be combined, respectively, and return the corresponding list [-framework AppKit, -foo, -z defs, -bar]. Such multiple-argument switches can arise when linking against external libraries. For instance, 'wx-config --libs' on Mac OS X returns a list containing several "-framework Foo" switches. Also augmented CFlags and LFlags rules in flags.jam to normalize the incoming flags by passing them through InferFlagTuples. This resolves issue #270. - Eric Sunshine fixed scripts/cs-config/Jamfile so that the generic 'apps' target depends upon 'cs-config'. This makes it consistent with the generated version-specific 'cs-config-X.Y' which also (already) is a dependent of 'apps'. 14-Apr-2008 - Eric Sunshine fixed CS_CHECK_BINUTILS_2_17() in checkbinutils.m4 to be compatible with Mac OS X linkers which are not GNU-compatible. Further, it now correctly suppresses unwanted output from the Leopard linker which was messing up the displayed 'configure' output since Leopard 'ld' emits its version information to stderr rather than stdout. 4-Apr-2008 - Eric Sunshine applied the following fixes and improvements to the g++ bug check added to the CS_COMPILER_IGNORE_LONG_DOUBLE() macro (warnings.m4) from r29198 and r29200: - Now properly sets CACHE-VAR, as documented, even when g++ is found to be buggy. - Now emits the result of the "suppress long double warnings" check even when g++ is found to be buggy. - No longer incorrectly accesses the variable 'cs_host_macosx', which is private to the _CS_CHECK_HOST_DARWIN() macro (cs_check_host.m4). - For improved robustness, no longer considers Mac OS X a special case, and respects the g++ bug discovery uniformly on all platforms. - No longer unnecessarily caches the result of the buggy g++ check since the expensive part of this check, the CS_CHECK_PROG_VERSION() invocation, is already cache-friendly. - Eric Sunshine augmented CS_CHECK_BUILD_FLAGS() in checkbuild.m4 so that an empty FLAGS argument is now explicitly considered a failure and is documented as such. Previously, behavior for this case was undefined. - Eric Sunshine, after further research, changed CS_COMPILER_IGNORE_LONG_DOUBLE() in warnings.m4 so that it only tests for -Wno-long-double support on Apple platforms since it is an Apple-specific g++ option. Checking this option conditionally side-steps the g++ 4.2.3 bug on non-Apple platforms where -Wno-long-double is spuriously and incorrectly accepted by the compiler. 3-Apr-2008 - res added a workaround to configure to avoid -Wno-long-double warnings occuring with g++ 4.2.3. - Sueastside committed a patch by Mononoke to fix a crash in the Alsa renderer on exit. 26-Mar-2008 - Marten fixed tinyxml writer not to crash on empty attributes. 25-Mar-2008 - Andrew Dai fixed the problem of the enter key being mapped to the incorrect raw keycode on MAC OS X. 19-Mar-2008 - Mike Gist fixed a crash in tinyxml when parsing a binary xml file. - Mike Gist added some missing error sets in tinyxml, so it now returns an error when it fails to parse a binary xml file. 12-Mar-2008 - Marten made the UTF8 BOM checks a bit more robust after a few comments from Mononoke. 11-Mar-2008 - Marten added checks to XML parser plugins to skip any UTF8 BOM in the beginning of the XML stream. 09-Mar-2008 - Marten fixed bug #461, terrain2 setting wrong parameter. 05-Mar-2008 - Vincent applied Guillaume Libersat's patch for #457, csInputDefinition::ParseKey() wasn't returning false for non keyboard input definitions. 03-Mar-2008 - res removed an int cast from csperl5. Should fix trac #394. 25-Feb-2008 - Happy Birthday Sueastside! Oh and I fixed a crash in basemapgen. - Eric Sunshine fixed bug in mk/autoconf/checkpython.m4 introduced by r25656 which resulted in the literal string "$cs_cv_pybase_lflags_base" being used, rather than the interpolation of that shell variable, in build attempts when detecting the Python link library. This should resolve issue #455. 24-Feb-2008 - Vincent updated a bunch of URLs and FAQ entries in the manual. 22-Feb-2008 - Vincent changed sndsys files license headers to LGPL following Andrew Mann agreement. 19-Feb-2008 - Eric Sunshine augmented CS_VISIBILITY_FLAG_INLINES_HIDDEN() check in mk/autoconf/visibility.m4 with an additional test in order to address anomaly when cross compiling from Linux to Windows using the i586-mingw32msvc-g++ compiler. In this case, during actual compilation of certain templates, the compiler annoyingly complains that the "visibility attribute is not supported in this configuration", despite the fact that the -fvisibility-inlines-hidden option is otherwise silently accepted by the compiler. Thanks to Andres Freund for supplying a code snippet which triggers the problem. 18-Feb-2008 - caedes fixed lights not updating attenuation vector after changing the cutoff distance. - res committed the patch from trac #185 ("Enable atexit tweak for all platforms") to work around crashes on exit with static profile builds. 17-Feb-2008 - Andres made startme work even if there are spaces in the path to the called applications. 14-Feb-2008 - varslot added code to the CoreAudio driver for dealing with sound hardware that cannot handle the desired buffer size. Successively redusing the buffer size we arrive at a sound buffer that can be used. This fixes sound problem on e.g. MacBook, and should address bugtracker ticket #205. Note: sound.cfg is not loaded by the CoreAudio driver, and should maybe also be fixed. 13-Feb-2008 - varslot added a rule to work around known issue with texture compression and Intel graphics card under OSX. - res fixed a copy and paste bug in xmlshader which could result in some conditions being wrongly determined to be "always true" or "always false". 5-Feb-2008 - Marten redid some of the handling of thread priorities to be more robust. - Sueastside redid his ThreadedJobQueue, should work now after Marten's changes. 2-Feb-2008 - res fixed "short" (h) and "short short" (hh) handling to only cast to a signed char/short when formatting to a decimal integer; cast to unsigned otherwise. 23-Jan-2008 - caedes fixed vertexlight.cgvp not getting installed. 19-Jan-2008 - res fixed some wrong casts and a leak in sprcal3d. 18-Jan-2008 - res tweaked cswinGetErrorMessage() to return messages with "inserts ignored": some Windows messages have "inserts" (similar to printf formatting specifiers) that insert values into the message; however, if a value isn't given, FormatMessage() actually returns an error. Ignoring inserts returns the message inclusive inserts - which is still better than an obscure error code. 17-Jan-2008 - Marten reverted r28423 as it introduce a arbitrary and hardcoded constant at a place where there should be no such thing. 14-Jan-2008 - Mike Gist committed a patch from Trymm to fix a crash in sprcal3d. 10-Jan-2008 - Eric Sunshine fixed a couple bugs in macro CS_EMIT_BUILD_PROPERTY() in emit.m4 which manifested when the client passed a non-empty EMPTY-OKAY argument. (1) It incorrectly unconditionally employed the CS_JAMCONFIG_PROPERTY() emitter rather than respecting the EMITTER argument and only employing CS_JAMCONFIG_PROPERTY() as a fallback. (2) It neglected to pass the optional UNCONDITIONAL argument along to the emitter. - Eric Sunshine added "default" as an alias for the existing tokens "emit" and "yes" for the EMITTER argument of macro CS_EMITTER_OPTIONAL() in emit.m4. - Eric Sunshine made minor clarifications to macro documentation in emit.m4. - Eric Sunshine added new Autoconf macros CS_TR_SH_Lang(), CS_TR_SH_lang(), and CS_TR_SH_LANG() to language.m4. These macros are similar to AS_TR_SH(), but convert "+" in its argument to "x" rather than "p" since "x" is more suitable in a context dealing with programming languages. For instance, CS_TR_SH_Lang([C++]) becomes "Cxx", rather than the less idiomatic "Cpp" as would be the case with AS_TR_SH(). These macros are useful for composing shell variable names pertaining to a particular language. For instance, if the language upon which a macro operates is in $1, then the macro may compose a shell variable name using CS_TR_SH_lang([cs_cv_prog_$1_feature]). CS_TR_SH_Lang() performs no case-folding of its input. CS_TR_SH_lang() folds the input to lowercase. CS_TR_SH_LANG() folds the input to uppercase. - Eric Sunshine added new Autoconf macro CS_LANG_RESOLVE() to language.m4. This macro is a convenience tool for other macros which optionally accept a language specifier. It returns the input language specifier if non-empty, otherwise the specified fallback language. If the fallback is not provided, then the language is assumed to be "C". - Eric Sunshine updated macro CS_BUILD_IFELSE() in checkbuild.m4 to take advantage of the new CS_TR_SH_LANG() and CS_LANG_RESOLVE() macros. Also retired the somewhat ugly public CS_LANG_CFLAGS macro (although a somewhat similar private helper macro, _CS_LANG_CFLAGS(), is still employed by CS_BUILD_IFELSE()). - Eric Sunshine updated the various CS_COMPILER_WARNING_FOO() macros in warnings.m4 to take advantage of the new CS_TR_SH_lang() and CS_LANG_RESOLVE() macros. - Eric Sunshine improved the various CS_COMPILER_WARNING_FOO() macros in warnings.m4 by having them compose proper cache variables incorporating the language name (such as "cs_cv_prog_cxx_foo") rather than employing the too-general static name "cs_cv_prog_compiler_foo" in the case that the client fails to provide an explicit cache variable name. - Eric Sunshine re-factored the various CS_COMPILER_WARNING_FOO() macros in warnings.m4 by introducing new helpers _CS_WARNING_SUPPRESS_MSG() and _CS_WARNING_CACHE_VAR() which avoid similar code in each of the CS_COMPILER_WARNING_FOO() macros. - Eric Sunshine promoted the C++ STL check from an inline configure.ac test to a stand-alone re-usable macro CS_CHECK_STL() in checkstl.m4 so that it can be employed by external projects and other Autoconf macros. - Eric Sunshine promoted the complicated -fvisibility-inline-hiddens check from an inline configure.ac test to a stand-alone re-usable macro CS_VISIBILITY_INLINES_HIDDEN() in visibility.m4 so that it can be employed by external projects. - Eric Sunshine upgraded CS_VISIBILITY_INLINES_HIDDEN() in visibility.m4 so that it explicitly promotes compilation warnings to errors in case the compiler neglects to return an error code when the switch under consideration is not recognized. - Eric Sunshine promoted the checks for compiler switch and in-code delcaration of symbol visibility from inline configure.ac tests to stand-alone re-usable macros in visibility.m4. The new macros are CS_VISIBILITY_FLAG_HIDDEN(), CS_VISIBILITY_FLAG_DEFAULT(), CS_VISIBILITY_DECLARE_HIDDEN(), and CS_VISIBILITY_DECLARE_DEFAULT(). Performed a good deal of re-factoring and simplification of these checks in order to lower maintenance costs. For consistency, also renamed CS_VISIBILITY_INLINES_HIDDEN() to CS_VISIBILITY_FLAG_INLINES_HIDDEN(). - Eric Sunshine upgraded the symbol visibility compiler flag checks in visibility.m4 so that they promote compiler warnings to errors. This should resolve problem experienced by Andres Freund during cross-compiling on Linux for Windows where configure was under the impression that -fvisibility=hidden was usable since the compiler issued only a warning and otherwise ignored the flag. 9-Jan-2008 - Mike Gist committed a patch from Trymm for sprcal3d to keep compatibility with cal3d files which aren't updated for the recent changes. Those now use the old bugged behavior instead of not working at all. - Eric Sunshine upgraded mk/autoconf/compiler.m4 so that the macros CS_PROG_CC() and CS_PROG_CXX() also publish the shell variable names cs_compiler_name_c and cs_compiler_name_cxx, respectively. Furthermore, these macros now emit build properties COMPILER.C.TYPE and COMPILER.CXX.TYPE (and, as an historic anomaly, COMPILER.TYPE) to Jamconfig. These changes ensure that the compiler's type/name is published for all CS Jam-based projects (rather than only for CS itself). This fixes problem where mk/jam/win32.jam's ConstructSharedLibraryTarget rule, which depends upon the compiler type/name information, failed in external CS-based projects. 8-Jan-2008 - Mike Gist committed a patch from Trymm for sprcal3d which fixes the problems with characters not walking properly for the first couple of seconds after movement has been initiated. 6-Jan-2008 - Marten fixed a bug in lighter2 related to light through portals. 5-Jan-2008 - Mike Gist committed a patch from Trymm which corrects a few problems with idle animations in sprcal3d. Characters will no longer play the idle animation in situations like when in the middle of a fight, and all idle animations will be played at random. 28-Dec-2007 - caedes fixed castle-tex.zip being incorrectly added to vfs.cfg template, and thus impossible to find on install. 19-Dec-2007 - caedes added castle-tex.zip to install targets. 18-Dec-2007 - Jorrit relaxed the rule on disabling VBO in gldrivers.xml. For the very first time version 2.1.7059 of the ATI drivers on Linux manages to get VBO right (and a lot of other things)! 16-Dec-2007 - Eric Sunshine restored the std::string based test which had been used originally to determine if gcc's -finline-visibility-hidden flag is buggy (as it is in numerous versions on several platforms). This test was removed in r21931 after it was discovered that there were one or two obscure platform/compiler combinations for which the test was not accurate. It seems better, however, to use a mostly accurate test (std::string) than the current check based upon hard-coded platform and compiler version tests, which is too often inaccurate. Hopefully, this change resolves issue #355 (and perhaps #333) for most cases. - Eric Sunshine fixed problem in configure.ac where AS_IF() conditional would access undefined shell variable $cs_cv_prog_cxx_visibility_inlines_hidden_buggy if compiler did not respond to -fvisibility-inlines-hidden. - Eric Sunshine refined the heuristic used by the 'dumptarget' rule in dump.jam to extract likely top-level target names from NotFile invocations. It now expects a target to begin with an alphanumeric, thus ignoring some NotFile items, such as -g3, -lfoo, etc. This resolves issue #430 as much as possible without introducing CS-specific knowledge into this otherwise generic mechanism. Note, that since there is no way to obtain a perfect set of top-level targets from Jam, the heuristic employed by 'dumptargets' returns only an approximation. It errs on the side of dumping too many potential targets by observing invocations of NotFile (which happens to be invoked for most of the top-level target names), rather than erring in the other direction and missing real top-level targets. NotFile is also used for other purposes, such as optionally telling the ResponseFile rule that the items to be written to the file do not represent actual files, thus the heuristic can be fooled if such items look like they might be viable top-level target names. Also modified the GeneratePluginLibraryGlueLib rule in static.jam slightly to avoid having CS_DECLARE_DEFAULT_STATIC_VARIABLE_REGISTRATION appear as a top-level target, but this is a case of treating the symptom and is not a robust resolution. - Eric Sunshine removed the long-deprecated 'nrall' Jam target which had been maintained for backward compatibility after the "new renderer" architecture was made the default and the old renderer retired. 14-Dec-2007 - caedes fixed pythmod jam rule to look for dbg files in the right place on install. 8-Dec-2007 - Mike Gist committed a patch from Trymm to fix the direction animations are played. If you had been reversing some animations, then the idle animations would also be played backwards unless you played an animation forwards first. - Mike Gist committed a patch from Kenny Graunke to correct the return value of csGetPlatformConfigDir on macosx (it's now consistent across all platforms). 29-Nov-2007 - Eric Sunshine changed 'MasterHeader' rule in helper.jam so that it invokes the 'ResponseFile' rule with a delimiter of "%" rather than allowing 'ResponseFile' to use the default delimiter of "@", since "@" may legally appear in email addresses and Doxygen directives (@file, for example), both of which are likely to appear in master header boilerplate. - Eric Sunshine changed CS/include/Jamfile so that it uses Doxygen directive "@file" in master header boilerplate rather than "\file" since "\file" ends up as "<formfeed>ile" when 'jam masterheaders' is invoked under the Dash shell. (This appears to be a bug in Dash single-quote treatment and has been reported.) - Eric Sunshine fixed bug in configure.ac where CS_PLATFORM_UNIX was not emitted to csconfig.h on Mac OS X (for which both CS_PLATFORM_MACOSX and CS_PLATFORM_UNIX are supposed to be defined). This bug was introduced in r23813-r23814 on 2006/03/14 when inline host checking code was removed from configure.ac in favor of the external CS_CHECK_HOST() macro from cs_check_host.m4. Also fixed configure.ac so that it no longer access the shell variable cs_host_macosx, which is private to (not published by) _CS_CHECK_HOST_DARWIN in cs_check_host.m4. - Eric Sunshine added 'non-virtual destructor' warning suppression to apps/test/wxtest/Jamfile to silence warnings about header problems over which we have no control (for wxWidgets shipped with Mac OS X). 19-Nov-2007 - res fixed shared library building breakage after r28177. (A reference to a parameter of the Win32 SystemLinkSharedLibrary rule wasn't updated when the parameter placement changed.) - Eric Sunshine generalized "checking..." message for __attribute__((malloc)) in configure.ac so that it is not quite so GNU-specific. Also normalized the message to match format of other similar __attribute__(()) checks. - Eric Sunshine added configure.ac check to determine how to suppress warnings about non-virtual destructors in classes with virtual methods. CS code itself does not require such suppression, but some 3rd-party libraries employed by CS publish headers which contain this fault. (Some versions of wxWidgets and cppunit are notable examples.) - res fixed csCommonImageFile to compile when THREADED_LOADING is disabled. - Eric Sunshine generalized the non-virtual destructor warning suppression check and moved it from configure.ac to CS/mk/autoconf/warnings.m4 for use by external projects. - Eric Sunshine added 'non-virtual destructor' warning suppression to plugins/video/canvas/wxgl/Jamfile to silence warnings about header problems over which we have no control (for wxWidgets shipped with Mac OS X). 18-Nov-2007 - Eric Sunshine fixed gristing problem in LibraryShared rule in library.jam which caused it to leave symbolic links laying around in top-level build directory at 'clean' time. Also added missing Clean rule invocation to Library implementation. Fixes issue #413. - Eric Sunshine fixed bugs in construction of '$(libname)clean' targets in SystemLinkSharedLibrary implementations in unix.jam and win32.jam which resulted in auxilliary files created by those rules (such as .dbg and .def) to be around when those clean targets were invoked. - Eric Sunshine fixed bug in SystemLinkSharedLibrary in unix.jam which caused 'clean' targets to miss generated .resp file. - Eric Sunshine simplified and normalized implementation of DoSymLink actions in helper.jam. 15-Nov-2007 - Jorrit fixed a small bug in Dynavis with regards to debugging output. - Jorrit fixed a bug in dynavis where during update of an object the check for outline culling was using the old version of the goodoccluder flag. - Jorrit changed Dynavis so that the warning if a model is not closed is not used if the model has less then 16 triangles. In that case Dynavis will not use outline culling anyway so the warning is useless. - Eric Sunshine fixed bugs in several Jamfiles which referenced the target 'vfs' unconditionally. This caused Jam to abort if zlib was not found at configure time, and also caused makefile emulation layer creation to fail. - Eric Sunshine removed the unused MikMod check from configure.ac. - Eric Sunshine removed unportable shell constructs from CS/bin/autogen.sh. 13-Nov-2007 - Eric Sunshine fixed sed expression in CS/mk/autoconf/crystal.m4 to work with POSIX-compliant sed commands (such as the BSD version on Mac OS X) which recognize only the '*' regex repetition token. (Portable scripts should not use '+', '?', or '{n,m}' repetition notation.) Resolves #411. 9-Nov-2007 - res changed CS_CHECK_LIB_WITH to also augment the pkg-config search path and executable search path with directories derived from the user-specified location. Also changed some wording to make clear that the provided location is only search in addition to any standard directories, not instead. Addresses #276. 7-Nov-2007 - res removed the unused compile group "meshimpexp". - res changed bin/autogen.sh to not remove aclocal.m4 when autoconf failed. Can be helpful for troubleshooting. 4-Nov-2007 - res added an empty IconsMakeWin32ICO rule override to msvcgen.jam to prevent icon file regeneration when just regenerating VC projects. 3-Nov-2007 - res removed the setting of CS_HAVE_LIBBFD when meta info embedding was enabled and libbfd is present. This fixes build errors on MinGW in optimize mode where this preprocessor macro was set but libbfd not actually linked. The other BFD use in CS, the bfd-based plugin metadata reader, is unaffected since it doesn't make use of that macro to detect BFD presence (that's handled in the Jam file). 31-Oct-2007 - Jorrit made the dynamic step callback array in odedynam use a normal csRefArray instead of a csWeakRefArray. Using a weak ref array in this case is wrong since it requires implementors of this callback to keep their own reference somewhere. - caedes fixed memory leaks in emit iEmitFactoryState implementation. - caedes fixed csShaderVariable leaks in lightiter. 30-Oct-2007 - res fixed some implementation mistakes in csRedBlackTree, leading to violations of the RB reles in the tree, especially when deleting: - The original source for the variant implemented here uses 'nil' elements as indicators for absence of a child or parent of a tree node. The CS implementation uses 0 as 'nil', and dutifully checked some pointers for 0 before manipulating their contents. However, in the original source, 'nil' is an actual element and at a point a change is made to it's 'parent' which us expected to be reflected at another place where the parent of a possibly 'nil' element is read. Fixed the code to track that special 'nil parent' there. - In another part, the parent of a specific node was used repeatedly and thus cached. However, some operations done on the tree potentially change the parent of that specific node, but the cached value was not updated. Fixed as well. - In one instance a statement was just transcribed plain wrong. 28-Oct-2007 - Eric Sunshine added CS/doc/support/prepare_online_publish.sh, a script for massaging generated HTML documentation (CS manual and API reference) into a form suitable for online publication. This script is invoked as a documentation generation post-process from jobber. It presently performs the following tasks: - Renames generated .html files to .php. - Fixes up internal links to point at .php rather than .html. - Adds a "Search" field. - Eric Sunshine fixed 'using independent target "nohelp"' warning emitted by Jam when building cs-config. - Eric Sunshine fixed cs-config/Jamfile so that cs-config gets removed upon 'jam clean' and 'jam distclean'. - Eric Sunshine re-added 'cs-configclean' Jam target which got lost when versioned cs-config-x.y functionality was added to cs-config/Jamfile. - Eric Sunshine fixed some problems with the SplitDebugInfo rule in strip.jam which caused it to be somewhat dysfunctional. An obvious manifestation of these problems was that the generated .dbg files where not removed by any of the Jam 'clean' targets. 26-Oct-2007 - caedes fixed one memory leak in genmesh. - caedes fixed RenderBufferAccessor leakwards for genmesh, spr2d, particles and instmesh (they were missing some CS_LEAKWARD_IMPLEMENT uses). 24-Oct-2007 - res fixed some 'friend' methods of csSphere and csMatrix2 lacking CS_CRYSTALSPACE_EXPORT. 14-Oct-2007 - Eric Sunshine renamed build variable LIB3DS.ONE_THREE_OH to LIB3DS.GENERIC_DATA_IO_CALLBACKS to better reflect its intended meaning (a specific API change). Likewise, changed the configure "checking" message from "if lib3ds version >= 1.3.0" to "for generic data I/O callbacks" in order to clarify and reduce confusion (since the old ">= 1.3.0" message appeared immediately after a "if lib3ds is sufficiently recent" message). Also, renamed related C++ #define from NEW_DATA_CALLBACKS to LIB3DS_GENERIC_DATA_IO_CALLBACKS. - Eric Sunshine eliminated several compilation warnings. 13-Oct-2007 - res fixed a bug in DDS cubemap saving (checked for wrong subimage count). - res made the DDS saver support DXT w/ cubemaps. - Mike Gist added matRef to Mesh (cal3d) to increase the refCount on materials used by that mesh. This fixes a problem where the ref count on some materials was incorrect. 12-Oct-2007 - Jorrit did an optimization to CollideRaySegment (in opcode plugin) for old terrain. At worst this will make CollideRaySegment about eight times faster. At best it can be a lot more. - Jorrit did a *huge* optimization in CollideRaySegment again. The result is that TraceBeam is now more then 10000(!) times faster compared to before my previous optimization. As an added benefit future performance for collision detection will no longer be degraded as the cache size for OPCODE will remain small. - caedes changed castle license to by-sa. Xotic agreed some time ago to have a license similar to cs so as to not complicate distribution, but seems we forgot to update the licenses appropriately. He still agrees that we can use the license more appropriate for cs (last time we agreed on by-sa, so thats what it is now). - res fixed a bug in xmlshader where conditional constructs like 'elsif ... else ... endif' would result in document data to be internally assigned to the wrong block (and hence cause invalid output). - iceeey made CS_CHECK_PYTHON emit PYTHON.VERSION. - iceeey made configure emit CMD.SWIG.VERSION. - iceeey made python binding generation require at least SWIG 1.3.28 for since this allows the use of modern SWIG features. - iceeey made python binding generation for Python 2.5 require at least SWIG 1.3.31 since Python 2.5 was first supported in this version (actually in 1.3.30, but this version was buggy and was superceded by 1.3.30 7 days later). 04-Oct-2007 - andres added a VarFileInfo Block to the resources for win32 dlls/executables as they are invalid without and especially considered invalid by windows installer. - andres made the search for the CS installation in the registry not to look at the version agnostic version before the version aware bit in registry - res moved the castle textures to their own .zip file: notably, their license (CC-by-nc) differs from the other textures' one (not separately specified, presumably LGPL). Separating the textures reduces the risk that the castle textures are mistaken as being under the LGPL and makes it easier for clients to not distribute them should they find the license inacceptable. 03-Oct-2007 - res changed genmesh's "lazy" color allocation to use the vertex array capacity, not size. (This works better when the vertex buffer is "presized" and shrunk again, needed when AddVertex() is to be used.) - res tweaked the gl3d texture manager to not remove a texture from the texture array immediately when the texture is freed: the array is a weak ref one anyway, 0 items are now weeded out lazily. This makes texture removal slightly more efficient due the saving of an array search. 01-Oct-2007 - Mike Gist reversed the loops in csSector::UnlinkObjects() to avoid meshes being skipped if sl->Remove() removes a mesh object from the sector's mesh list. - res made the following changes to TinyXML: - When writing to an iFile, instead of storing the XML to a string buffer and writing out everything at once, a smaller buffer is used and the data is written out incrementally. - Scraped a few bytes off the Tiny node's memory footprint. 29-Sep-2007 - Mike Gist changed the call to LoadTexture() in FindTexture() to not create a material if the texture isn't found. This fixes a material duplication bug in FindNamedMaterial(). - Vincent fixed a <comparever> entry in gldriver.xml. - Mike Gist fixed a crash in csMeshFactoryList::Remove(). - caedes made some shader changes: - fixed vertexlight.cgvp for undeclared matrix and incorrect attenuation. - fixed ambient.avp binding texture coordinates incorrectly. - made std_character2.xml use only software skinning (added soft-skinning.inc snippet). - added a fallback for character_bump2.xml for cards with no pixel processor. 25-Sep-2007 - res fixed lighter2 to conserve used "single color" lightmaps when cleaning "old" lightmaps. - res made lighter2 generate different lightmap texture names for different levels. - res made lighter2 generate level-specific lightmap texture names also for PD light maps and solid color lightmaps (the latter is done to avoid undesired cleanups). 21-Sep-2007 - iceeey fixed a bug in parsing of GL driver DB where a comparever which checks for an unknown version string type would cause a compound fulfill="one" (OR) condition to short-circuit. This makes the rule "ATI: 'Forceful' fixed function enable" properly applied to ATI cards on Linux making "walktest terrainf" no longer exhibit garbled text and CS logo. 20-Sep-2007 - Vincent applied res' fix for configure which detected lib3ds-1.3.0 when lib3ds-1.2.0 was installed. 18-Sep-2007 - res updated the lib3ds check to also check for the I/O callback prototype changes introduced in lib3ds 1.3.0 and changed gmesh3ds to select the appropriate variant. Fixes trac #361. - res made csparser not assert/crash when the default missing texture can't be loaded - it merely displays an error message now. - res changed lighter2 to only propagate lights once through any portal. This works around apparently occuring infinite recursions. - res added the line number + column reporting to the TinyXML and xmlread error strings. Addresses trac #123. 17-Sep-2007 - res added a driver DB tweak to disable EXT_framebuffer_object for (now rather old) ATI drivers (see trac #261). - res tweaked the driver DB to enabled "hidden Radeon NPOTS" for newer ATI drivers (which have a slightly different renderer string). - res made the XML parsers errors slightly more helpful by having the error message contain the hierarchy of elements in which the error occured. 15-Sep-2007 - res fixed a crash in the GL driver DB when <comparever> was used with an unrecognized version type. - res tweaked some GL driver DB entries to take advantage of the new "glvendor" type. 14-Sep-2007 - Eric Sunshine added "authorship" attribution for Frank and Marten to the CS manual, and removed copyright notices for a couple people whose work is no longer present in the manual. Also fixed a couple Texinfo mark-up errors in perl.txi. 13-Sep-2007 - res added a "glvendor" version that can be used by the GL driver DB. - res tweaked the GL driver DB to work around apparent font corruption with Mesa 6.5.2 (all drivers). 8-Sep-2007 - res fixed a crash in bezier plugin caused by a rendermanager-only change accidentally slipping in. 7-Sep-2007 - res fixed the debug info splitting to put the debug info file into the same file as the binary (fixes separate debug info for shared libs). - Jorrit reverted r27161 (quotes for javac detection). This fixes both #377 and #378. - res fixed the bezier mesh sometimes returning incompletely setup render meshes. 6-Sep-2007 - Mike Gist fixed bug #351 (wxgl compilation problem). - res fixed a null pointer access in null3d when null2d is not present. 29-Aug-2007 - Piotr changed remaining Win32 call to *A version. - res reverted r27508, but also made sure all Win32 calls are explicitly using the *A versions of functions. - res updated the winlibs version link for 1.2_002. 28-Aug-2007 - Vincent changed joywin plugin so that it doesn't assert when there's no window. Fixes crash when used with null renderer (trac #369). 20-Aug-2007 - Jorrit fixed decals so they work fine on 64-bit. 17-Aug-2007 - Jorrit fixed a bug in genmesh. Decals didn't work on submeshes. This prevented decals from working on levels treated with lighter2. - res fixed TinyXML to build on gcc 4.1.2 again (issue found by Darek). 11-Aug-2007 - res changed csFixedSizeAllocator<> to allow construction from a given memory allocator. - res changed TinyXML documents to use their own heap. Can reduce memory fragmentation when dealing with large documents. - res added CS::Utility::SmartFileOpen() - a function for the somewhat common task to open a world file from a path that could denote any of: a plain filename, directory or .zip archive. - res added an option to levtool to fix <polymesh> tags (by replacing them with <trimesh> tags). - res made levtool use CS::Utility::SmartFileOpen(). 10-Aug-2007 - res changed the delayed TinyXML node freeing to use less memory allocations. Can speed up cleanup for large documents. 8-Aug-2007 - res added a missing initialization to csConsoleOutput. Should address trac #368. 7-Aug-2007 - res changed the cs-win32libs link to point to the 1.2 version. 1-Aug-2007 - Jorrit fixed an initialization error in gmeshskelanim2 that could cause crashes at exit. This fixes #367. 23-Jul-2007 - res fixed crystal.m4 to use the right test order when a development resp. stable version is requested (previously, the orders actually tested where swapped in comparison to the described desired behaviour). - Eric Sunshine eliminated several compilation warnings in the shaders reported by the (admittedly somewhat buggy) Mac OS X gcc 4.0.1 compiler. - Eric Sunshine eliminated a batch of compilation warnings in OpenGL renderer. - Eric Sunshine eliminated a slew of compilation warnings, including deprecation warnings, from 'thing' plugin. - Eric Sunshine suppressed deprecation warnings in 'stencil' render step where it is forced to utilize deprecated csTriangleMeshPolyMesh() for the sake of backward-compatibility. - Eric Sunshine eliminated gobs of compilation warnings and some outright coding errors in various mesh plugins. - Eric Sunshine eliminated compilation warnings in 'bugplug' and CS::TriangleIndicesStream. - Eric Sunshine eliminated compilation warnings from various plugin modules. 22-Jul-2007 - Vincent committed res' patch for incremental shared linking support on Unix, which fixes 'LinkSharedLibrary actions too long' build error when ld doesn't support response file. Solves trac #278. - Eric Sunshine suppressed deprecation warnings in cstool/collider.cpp where it is forced to invoke its own deprecated constructors for the sake of backward-compatibility. - Eric Sunshine rewrote the plugin loader for Mac OS X to fully employ the "two-level" namespace dynamic-library model introduced in OSX 10.1. The deprecated "flat" namespace model is no longer supported. - Marten removed the only usage we had of dynamic_cast and fixed trac #192. - Marten fixed event constraint in viewmesh between viewmesh itself and CEGUI. Solves trac #332. 20-Jul-2007 - Marten added a CS::Threading::Thread::GetThreadID function and backend implementations. 19-Jul-2007 - Eric Sunshine eliminated several compilation and deprecation warnings on Mac OS X. - Eric Sunshine removed some outdated entries from vfs.cfg and vfs.cfg.template which referred to items moved to CSEXTRA. 18-Jul-2007 - res changed the default CS_PLUGINDIR and CS_CONFIGDIR values used by libs/unix/instpath.cpp to contain version numbers. - res fixed the cs-csconfig-X.Y scripts to use the right CRYSTAL_x_y variable (due a bug in the Jam code it currently used CRYSTAL_x_x). - Andres really made the python wrapper work (escape regex meta chars) and fixes the longstanding, though propably harmless, typo in checkpython.m4. Also corrects CS_CHECK_TOOL into CS_CHECK_TOOLS (thanks to Eric). - res changed the cs-config wrapper to emit a better error message when no cs-config-* scripts are found. Also, the directory from which the wrapper was started is now searched as well. - res replaced the unportable use of 'dirname' in the cs-config wrapper with a custom (but portable) function, as suggested by Eric. Also made the "no cs-config-* ..." error message output to stderr instead of stdout. 16-Jul-2007 - Jorrit fixed two problems in csSpline as reported by valgrind. - Andres changed the python detection code to look for a ${hosttype}-python as well in order to make cross-compiling with python support more automatic/possible. He also added CS/bin to the search path in configure, and added a python wrapper (prefixed with hosttype i586-mingw32msvc) which calls the windows python via wine and changes all paths to unix paths. - Andres updated svn:ignore of the CS directory to reflect new binaries. 12-Jul-2007 - Jorrit fixed a rather big bug in csKeyEventHelper::GetModifiersBits(). It was declared using CS_CONST_METHOD but that is wrong in this case since that function takes a reference to a modifier (which it modifies). This bug caused celconsole in CEL to misbehave in release mode due to the second call to this method being optimized away wrongly by the compiler. 11-Jul-2007 - Mike Gist added a #define to enable GNU C extensions in dlmalloc. 10-Jul-2007 - Marten made another OSX fix, still untested. - Eric Sunshine fixed csQsqrt() check in configure.ac which was broken due to use of CS_FORCEINLINE in csqsqrt.h, causing the test to fail unconditionally. - res relaxed the "no copy" restriction for csFixedSizeAllocator<> a bit: it's now allowed to copy an empty allocator (which basically only copies the block sizes). Useful for some initialization cases. 8-Jul-2007 - Genjix removed qualifier for LightmapMask destructor due to failing to compile on linux. 7-Jul-2007 - Marten fixed the OSX assistant to properly expose its intefaces. - res fixed lighter2 problems introduced by r27190. 6-Jul-2007 - res fixed CS::SubRectangles::Split() neglecting to set the parent of newly created rectangles which would corrupt the internal structure (and cause subsequent operations to return wrong results). Also made Dump() available in non-debug builds. - res made the following changes to lighter2: - Fixed an issue where the "factory" and "object" layouting would produce slightly different bounding sizes for primitive groups - enough to break layouting in tight situations. - Made the lightmap masks used for postprocessing swappables. - Some layouting tweaks. - res changed the engine to not reload the standard shaders when closing. 5-Jul-2007 - res made a fix to yesterday's lighter2 assertion fix. 4-Jul-2007 - res fixed lighter2 not cleaning out all old lightmaps. - res fixed an assertion in lightmap layouting by matching the "factory" layouting (to determine whether to split) to the "object" layouting. Previously, the differences between those could have the result that the "factory" layouting would return a set of primitives that the "object" layouting actually failed to layout onto one lightmap. 30-Jun-2007 - Marten fixed compilation on MSVC after Oktals additions. 29-Jun-2007 - Oktal augmented the isfinite() test in configure with tests for isnan() and isnormal(). - Oktal added portable csNaN() and csNormal() functions alongside the preexisting csFinite() in csgeom/math.h 26-Jun-2007 - Jorrit fixed a bug in the skeleton graveyard by adding iSkeletonGraveyard->RemoveSkeleton(). Genmesh anim now calls this method when the animation is destroyed. That fixes memory leaks and crashes when genmesh anim objects are removed from memory. Note that sprcal3d still has a circular reference bug with the graveyard. 25-Jun-2007 - Jorrit converted a few remaining interfaces to using SCF_INTERFACE instead of SCF_VERSION. 24-Jun-2007 - Eric Sunshine corrected "camera movement" documentation bug. Fixes #348. - res made "jam install" install not just "history.txt" but "history*.txt" - this way the branch-specific histories (e.g. for release branches) are installed as well. 23-Jun-2007 - res made the CS_PACKAGEINFO autoconf macro truncate the version number after non-numerical and non-dot characters. This has the effect that versions such as "1.2rc1" are split into "1" and "2", and not "1" and "2rc1". Fixes #347. 21-Jun-2007 - Jorrit implemented CollideRaySegment() for old terraformer as well. 20-Jun-2007 - Jorrit extended csIntersect3::BoxSegment() so that it also (optionally) supports rays. - Jorrit added csIntersect3::ClipSegmentBox() to clip a segment or ray to a box. - Jorrit changed csTerrainSystem::CollideSegment() to use this new clipper and by doing that made it support rays in addition to normal segments. - Marten fixed the ClipSegmentBox to support perfectly aligned rays on bounding box border. - Marten made csTerrainSystem::CollideSegment() handle perfectly vertical segments/rays. 19-Jun-2007 - Jorrit extended iTerrainSystem with a new CollideSegment() variant that returns at most one hit and the triangle. - Jorrit added a 'use_ray' parameter to iTerrainCollider->CollideSegment(). Not implemented yet. - Jorrit implemented CollideRay() for new terrain in opcode plugin. Works mostly with two problems: - Rays are not supported yet. - There seems to be a bug at cell boundaries. The terrain is missed there. - res committed a patch from Joerg Fischer (with minor stylistic changes) to properly support joysticks on Windows whose axes do not correspond to the order found in the DIJOYSTATE2 structure (which is probably about every joystick). See trac #343. 18-Jun-2007 - Jorrit extended iTerrainCollider with a new version of CollideSegment() that returns at most one hit and also the triangle. Added an implementation for this to csopcode plugin. 15-Jun-2007 - Jorrit did some preparation work in csopcode plugin to allow CollideRaySegment to also work with new and old terrain. Not finished yet. 14-Jun-2007 - Jorrit fixed walktest recording facility so it no longer crashes on very big commands. 9-Jun-2007 - Marten made some fixes for compilation on OSX 6-Jun-2007 - res fixed thee configure javac detection to quote the Java directory (so directories with spaces work). 4-Jun-2007 - Oktal fixed a mistake made during Marten's SCF clean-up, that broke some X11 canvas plugins. 1-Jun-2007 - res changed the cs-config wrapper script to use '=' instead of '==' for more POSIX compliancy. - res changed the cs-config wrapper script to use shell built-ins instead of external utilities to construct the initial list of cs-config-* scripts. 30-May-2007 - Marten made some cleanups to scfImplementation(Ext)N to reduce the source size and hopefully speed up compilation a tiny bit. - Marten added some basic reflection support to SCF. - Marten updated version of iBase which was previously forgotten. - Marten removed the last usage of SCF_DECLARE_IBASE and SCF_IMPLEMENT_IBASE and companions. - res made the manual and API docs include the version number in their respective titles. One idea is to make the different versions more distinguishable in e.g. search results. 29-May-2007 - Eric Sunshine fixed 'MyRunner' example in threading documentation in user manual so that it inherits from 'iRunnable' publicly rather than privately. - res fixed a lighter2 issue where objects with the same factory shared the same lightmap space. - res fixed an issue in csStringBase::Append(): if "" was attempted to be appended to a 0 string, the string would be left as 0, and not "" as it should (since "" and 0 are two different things). Since Append() is used by csString copy constructors this meant that copy-constructing from an empty string actually resulted in a 0 string. E.g. in one particular case this was problematic with a csString set ("" was added, but became the 0 string - hence subsequent tests whether the set contains the string failed). - res removed some AWS/AWS2-specific files left over from the move to CSEXTRA. 28-May-2007 - res wrote the lighter2 "Developer's Manual". 25-May-2007 - Jorrit cleaned up several old unused (and/or broken) walktest commands. Also removed them from the key bindings. 24-May-2007 - Jorrit fixed a bug in the socket docs. - Jorrit created the 1.2 branch and marked that version as 1.2rc1. 22-May-2007 - Genjix correct SCF Test example. 21-May-2007 - res committed a patch by 'whirm' to replace the use of pushd/popd when building CS with cd/cd -: pushd/popd is a bashism while cd/cd - works on a wider range of shells. 20-May-2007 - res changed the Cygwin build docs to generally recommend using the cs-win32libs package and to more prominently use jam (instead of make). - res changed lighter2 to only have one "lmdensity" option and not two (for u and v direction, respectively): in practice, the two options usually had the same value anyway; and since the meaning of "u" and "v" depends on other factors such as the orientation of a primitive, much of the additional "control" from having two values would actually be difficult to utilize. 19-May-2007 - Genjix fixed a bug in genmeshanim where it wouldn't animate the animation when first played, when the loop forever flag is set after it has been started. - res added a note to the appendix on the csString::Upcase() and Downcase() behavior change. 17-May-2007 - res updated the docs for the new cs-win32libs release. - res added support for alpha maps to basemapgen. - res generated a basemap for terraina. - res disabled -fvisibility-inlines-hidden for AMD64 again: as reported in trac #333 the -fvisibility-inlines-hidden + -fPIC + -shared problem is still present with gcc 4.1.1. - Andrew Robberts fixed the normal movement camera mode to work like the old one. Also fixed some minor bugs in viewmesh camera. 16-May-2007 - Vincent fixed typos throughout the project, and updated or removed some of the obsolete parts in the manual. 14-May-2007 - Oktal made the following changes to the Swig scripting bindings: - Fixed the Java bindings to work with the new OBJECT_FUNCTIONS semantics in cspace.i. - Cleaned up redundant code in Perl module's AUTOLOAD subroutine. - Fixed and uncommented Perl module's extra operator overloads. - Minor fix in the perlsimp.pl example script. - Updated Perl scripting section of the manual. - res added csLerp() to math.h. - res made the following changes to basemapgen: - Made it not require an already existing basemap. - Default basemap size to nearest PO2 of material map size. - Made it sample from the material layer images bilinearly instead of nearest neighbor. - Made it mipmap the material layer images to the highest required mip needed when taking the scaling into account. - Removed supersampling realized by upscaling at the beginning and downscaling at the end: the bilinear filtering now used should give sufficiently smooth results. - res used basemapgen to compute basemaps for terrain and terrainf. 13-May-2007 - res renamed the lighter2 "Xtexelperunit" options to the more descriptive "lmdensityX". - Marten added documentation on terrain2 terrain plugin. Also did a small reorganizing of the order in the mesh object documentation. 11-May-2007 - Jorrit moved the more technical information about mixmodes to the renderer section in the manual. - Jorrit fixed the new step in diffuse, shadowed, and shadowed2 renderloops so that it no longer does portaltraversal. 10-May-2007 - Jorrit fixed a compile error in typetraits.h. - Jorrit added a 'standard' shaderstep to std_rloop_diffuse. That helps with objects that want to use normal std_lighting (for mixmode/transparency reasons for example). - Jorrit also added that step to the shadowed renderloops. - Marten fixed a potential precision problem in the terrain2 feeders when loading from an color encoded image heightmap. - Marten eliminated an unnecessary include. - Marten fixed csopcodes terrain collision code to properly take the transform of the terrain itself into consideration. 9-May-2007 - Jorrit removed the fat renderloop. It is not very useful anymore and will be replaced by the new render manager in the (hopefully not too distant) future. - Jorrit removed all functions in iRenderView that were added specifically for the fat renderloop. - Jorrit deprecated the clipping/culling methods in iRenderView and added a new CS::RenderViewClipper class that provides the same functionality. - Jorrit changed all current mesh objects to use the new methods in CS::RenderViewClipper instead of the deprecated ones in iRenderView. - Marten added a const qualifier to one parameter in CS::RenderViewClipper::ClipBBox. - Marten updated terrain2 with a number of changes: - Made the rendering seamless between cells given they line up perfectly, have same xz size etc. - Unified the coordinate systems to be consistient. - Updated rendering to be consistent when splitting/merging subblocks (needed for inter-cell connections). - Added support for raw heightmap as well as color encoded images to give higher precision. - Made it possible to specify a set of default values for cells so that common parameters don't need to be repeated. - Removed the "simple" renderer as it was horribly broken. - Updated terraini demo level to use four cells. - Marten removed a now obsolete check in configure for spidermonkey javascript library used by AWS2 (which have been moved to CSextra). - Marten fixed comment for CS_FX_ALPHA to reflect the value of the constant. - Marten added a manually preprocessed version of scf_implgen.h. scf_implgen.h is used to (compile-time) generate the scfImplementationN and scfImplementationExtN templates via macro magic which adds substantial time to compiling. See top of csutil/scf_implgen_p.h for instructions how to regenerate it. - Marten added an "offset" parameter to the feeders in terrain2 that offsets the height data by a fixed amount. - Marten did a cleanup of namespaces in CS by moving around some classes: - CS::BitOps -> CS::Utility::BitOps - CS::ImportKit -> CS::Utility::ImportKit - CS::ScopedDelete -> CS::Utility::ScopedDelete - CS::WeakReferenced -> CS::Utility::WeakReferenced - CS::CompileAssert* -> CS::Utility::Implementation::CompileAssert* - CS::DocumentHelper::* -> CS::DocSystem::* - CS::TypeTraits::* -> CS::Meta::* Typedefs, inline functions and deprecation warnings have been added where needed for compatibility. - Marten added a header with documentation for the namespaces. 8-May-2007 - Marten fixed a bug in lighter2 where it would write vertexcolors to a buffer named "colors" when "color" was expected. 7-May-2007 - Jorrit added a section about the syntax loader plugin to the documentation. - Jorrit updated the mesh object documentation. This fixes #63 sufficiently for 1.2. 4-May-2007 - Jorrit protected csTriangleMeshTools::CheckActiveEdges() against empty meshes (num_edges == ~0). - Jorrit fixed a bug in csTriangleMeshTools::CalculatePlanes(). This function was calculating the planes in reverse orientation compared to csPolygonMeshTools::CalculatePlanes() (and also not normalized). As a consequence of this, single-sided polygons (like portals) would cull from the wrong side with Dynavis. This fixes #330. 2-May-2007 - Genjix corrected copyright blurb, added some doxygen comments and made the parameters use const references. - caedes fixed a bug in genmesh AddVertex where it would allocate colors incorrectly by expanding color array size to vertex array size after having added the vertex, then add another color to the array, thus usually adding two colors to the array per vertex. - res fixed CS::SubRectangles apparently producing wrong allocations, resulting in fonts and Thing lightmaps being broken. - res added csColor::Luminance(). - res added ability to write grayscale PD maps to lighter2 (enabled by default since the current PD maps are only grayscale anyway). - res made ptpdlight support grayscale PD maps "natively" (that is, they're not converted to RGB internally). - res silenced some deprecation warnings on VC. - res changed the cs-config wrapper to also look into $CRYSTAL/bin for wrapped cs-config-X.Y scripts. 1-May-2007 - Genjix added csTuple2 type ala std::pair and extended csHash with a NextTuple () (returns value, key) as well as an operator["key"]. - res fixed an issue in CS::SubRectangles where empty subrects would later be "collapsed" errorneously when the sibling or a child was reclaimed. - res fixed csImageMemory which completely ignored the provided buffer if it was created with a buffer that was not to be destroyed. - res made csFixedSizeAllocator salt newly allocated/free'd memory in debug mode by default. 30-Apr-2007 - Jorrit changed an example using fountain mesh object to the particles mesh object. - Piotr changed odedynam to be backwards compatible with older ode versions, by changing 'Capsule' name to older 'CCylinder'. 29-Apr-2007 - res changed configure's "-fvisibility-inline-hidden buggy" test to not consider gcc >= 4.1 on amd64 as buggy. See #80. 28-Apr-2007 - Jorrit added missing documentation for the 'preadvance' option in particle systems. - Jorrit added a documentation section on decals (written by Andrew Robberts). - Jorrit removed the outdated general particle system document (the new documentation on particles covers everything that was in there). - Jorrit deprecated thing and emit in the documentation. - res made the resource compiler options in the generated MSVC projects contain the component's source directory in the list of include directories. This allows to reference files in that directory in addititionally used .rc files. - res changed the Win32 icon generation to store the 256 color versions in an intermediate directory below out (since these files are intermediate in nature). 27-Apr-2007 - res somewhat simplified the ImageMagick invocation(s) used to convert an icon's image to 256 colors (for Windows ICO). Also fixes the green background on the 256 color images on Windows. Last but not least made the 32-bit images being preferred by Windows over the 256 color ones. - res fixed a recently introduced stupid typo that prevented CS' "custom" -Wl flags from being used. - Andrew Robberts added a "Reload" button to viewmesh that will reload the current mesh and all textures, etc. it uses. - Andrew Robberts added mouse camera controls to viewmesh and moved around the viewmesh camera stuff a bit. - res applied a patch from caedes to make the rendertarget render step actually work. See trac #326. - res added some gldrivers.xml tweaks contributed by Andrew J. Kroll. - res deprecated the terrain texture image generation functions (csGenerateImage and companions). 26-Apr-2007 - Piotr implemented skeleton 'SetTransform'. - Piotr changed skeleton pose update to ignore animations, when they wasn't used (before first animation update). Which is useful for setting skeleton initial pose. - res added a facility to generate Win32 ICO files from multiple PNG files (such as those we can already generate from SVGs). 25-Apr-2007 - Jorrit fixed a bug in the stencil and stencil2 plugins caused by the iPolygonMesh changes. This fixes #322. - Piotr made small bugfix in animation logic while playing it back in time. - res changed the way TinyXML destroys + frees node objects to avoid accesses to freed memory that have been introduced by yesterday's ref counting change. - res fixed a missing 'this->' which caused csTinyXmlNode::DecRef() absolutely not do what it was intended to do. - res fixed csObjectModel to be properly exported from shared libs. - res fixed Jam "using independent target <sometarget>.dbg" messages. - res fixes needless relinks of binaries and plugins on Win32 with shared libs enabled. - res made the application symlink installation respect DESTDIR. - Piotr implemented skeleton key frame 'GetTransform'. 24-Apr-2007 - Piotr made csSkeleton animation system to respect updates made backwards in time (with negative 'elapsed time' value). - Piotr made parameters like animation speed and duration to be effective. - res changed the internals of TinyXML to reference count tiny nodes. This should fix #14. - res fixed some compile errors on PPC Macs in cssynldr's renderbuffer.cpp. Based on a patch from dfryer. - res made lighter2 work in the case different sectors contain different numbers of PD lights. 23-Apr-2007 - Piotr changed ode body group to store weak references of rigid bodies insted of references(there is no sense in storing body reference there, when it was deleted in dynamics system). - res added some consideration of the CS version number to createproject.sh: it also checks $CRYSTAL_x_y for support files and writes the version number as the default required CS version to the generated configure.ac. 22-Apr-2007 - Piotr added bones update method to iSkeleton interface. - Piotr did small tweak of csSkeltonBone: "next_transform" will be set with current transform when no animation is active on it. - Reed changed test for wxGLCanvas to include a third argument (wxPoint), making it work with 2.8 as well as 2.6. Ought to fix bug #309. 21-Apr-2007 - res removed generation of python.cex - asking cs-config for the crystalspace_python lib should return the same information. - res changed the installation of applications to install apps with a suffix of the version number and to create a symlink for the undecorated name. - res made the cs-config wrapper script be installed by the install_bin jam target as well. - res changed crystal.m4 to also use CRYSTAL_x_y environment variables for the path. - res changed the runtime CS path detection routine(s) to prefer versioned environment variables (CRYSTAL_x_y, CRYSTAL_x_y_PLUGIN). - res changed the VC project generation to not enable PCHs for release builds: apparently they're broken when whole program optimization is enabled. That is the case for CS projects. The problem can be worked around by disabling one of these settings, in this case PCHs. 20-Apr-2007 - Piotr changed ode joints to ignore max/min distance parameter when resulting joint will be rotational (same for max/min angle in oposite direction). Before joints behavior was misleading: setting max/min distance for rotational joint was resulting in angle constraints. - Piotr changed ode joints "GetTransform" method to return transform with origin in joint anchor (when joint is rotational). - res adjusted configure the cs-config generation to not put "private" linker options such as the various -Wl params used into the linker flags returned by cs-config. Addresses #150. - res tweaked the cs-config wrapper script to work better on MSYS. 19-Apr-2007 - Piotr changed ode colliders to not loose transform data after recreation of geometry. - res changed CS::Utility::PriorityQueue to only use one template argument and not a "priority" and "auxiliary" argument. Ordering has to be provided by csComparator<>. 18-Apr-2007 - Piotr fixed odedynam capsule representation to be oriented as ode collider is. - Piotr fixed transform returned by dynamics system collider in odedynam. - res did some cleanups to ptpdlight and added some profiler zones. - res made the lighter2 black threshold configurable. - res added an implementation of a priority queue. - res added a "scheduler" to ptpdlight: the time needed to animate a PD texture is measured and recorded. If the total time spent for animating PD textures in a frame exceeds a given "budget" updates are delayed to a future frame. Can be controlled through config vars "Texture.PTPDLight.UseScheduling" (enable/disable, default on) and "Texture.PTPDLight.TimePerFrame" (time budget, default 25). - res changed ptpdlight to only update a PD texture when at least one light changed it's color value by an amount that causes a visible difference. - res rigged csWeakRef<> to store 'this' in an member on construction in debug mode and assert on that member being 'this' on destruction in order to catch csWeakRef<>s being memcpy()ed (e.g. when stuffed into a csArray<>). - res fixed an invalid storage of a csWeakRef<> in a csArray<> in gmeshanimpdl. - res changed the lighter2 layouter to allow for some tolerance when comparing normals. By default normals with an angle up to 1 degree between them are considered equal for layouting purposes. - res committed a patch from Dariusz Dawidowski to the trans_std plugin that fixes the returning of a pointer to a local variable. 17-Apr-2007 - Marten fixed two bugs in walktest with regards to the mouse mesh selection; crash on selection of no mesh with right button and no hit ever on middle button. - Jorrit added iTriangleMeshIterator and a new method iObjectModel->GetTriangleDataIterator() to get an iterator over all triangle meshes set on a model. - Jorrit fixed the loader so that the 'convex' and 'closed' flags on mesh objects and factories are now also propagated to the triangle meshes (and not only on the polygon meshes). - Jorrit fixed csSaver to use iTriangleMesh and also it will now completely write out the trimeshes for factories and meshes. - Jorrit changed genmeshify so that it writes out trimeshes instead of polymeshes. However the code itself still works with polygon meshes. - Jorrit did some more documentation updates related to the deprecation of iPolygonMesh in favor of iTriangleMesh. - Jorrit updated mazing to the new iTriangleMesh. - Jorrit updated cspace.i for the new iTriangleMesh. - Jorrit updated light culling handling in the engine to use iTriangleMesh instead of iPolygonMesh. - Jorrit updated the portal container mesh to use the new iTriangleMesh. - Jorrit fixed a big bug in the thing mesh. It would accidently use the lighting polygon flag to construct the visibility culling mesh instead of the viscull flag. This bug was introduced in revision 24181 where res2k decided that polygons that are not lit should not contribute to visibility culling ;-) - Jorrit fixed iTriangleMesh support in thing so that it also respects the colldet and viscull flags for individual polygons. In this case the thing mesh will itself set the collision and visibility culling meshes. - Jorrit converted csSolidSpace to iTriangleMesh. As far as I know this concludes the iPolygonMesh->iTriangleMesh task. - Piotr added capsule generation to csPrimitives and genmeshfactory. - Piotr deprecated "CCylinder" name (caped cylinder) and replaced it with "Capsule" (which is more widely used). - Oktal added perlsimp.pl, the Perl equivalent of the Python script pysimp.py (i.e. the simple1 app re-written in Perl), for testing and demonstration of the Swig-generated Perl bindings. - Oktal made the following changes to the Swig-generated bindings: - Fixed a runtime error in the Perl module's event handler. - Fixed a runtime error in Perl's csInitializer::RequestPlugins. - Fixed a runtime error in the Perl typemap for csWrapPtr. - Restored scfGetVersion, mistakenly removed in previous revision. - Added pure Perl replacements for the CS_POLYRANGE and CSKEY_SHIFT/CTRL/ALT families of macros. - Commented out extra Perl operator overloads until they can be thoroughly checked for correctness. - Used 'Carp' to provide more meaningful Perl error messages. - Added %ignore directive for deprecated csArray::Length(), thereby eliminating a few compiler warnings. Use GetSize() instead. - Eliminated a few 'unused variable' warnings in the Perl module. - Added Perl 'import' method to allow users to import CS symbols into their namespace. - Additional fix to the csperl5 Jamfile so cspace.pm is really put in the correct location. - Updated and improved the manual entry about Perl scripting. - Oktal reverted the Jamfile change from his previous commit and modified it so cspace.pm and cspace.so can be copied to the scripts directory with the perl5freeze and perl5freezeobj targets. - Andrew Robberts added some sort of decal support to bruteblock terrain 16-Apr-2007 - Andrew Robberts added a CS_ENTITY_NODECAL flag. - Jorrit fixed a bug in csObjectModel. It would use Put() instead of PutUnique() for the hash of triangle data meshes. The consequence of that was that it was not possible to replace a triangle mesh once it was set. A further consequence of that was that it genmeshes with submeshes didn't have working collision detection. - Jorrit added a new csTriangleMeshPolyMesh class. This class is immediatelly deprecated as it shouldn't be used outside CS. Its purpose is to make the transition from iPolygonMesh to iTriangleMesh easier. - Jorrit changed the stencil and stencil2 plugins to support new iTriangleMesh. - Jorrit changed the odedynam plugin to use the new iTriangleMesh. - Jorrit changed bugplug to also show the new iTriangleMesh. - Jorrit fixed a few documentation references that were using iPolygonMesh. - Jorrit changed simpcd to avoid iPolygonMesh. This temporarily breaks simpcd though! There appears to be a bug in CSopcode where it fails to work if you calculate the collision between two identical colliders (but different transform). CSopcode currently just returns false if it detects the colliders are the same (which is not correct). Removing that test however doesn't seem to solve the issue as then the colliders seem to collide all the time. - res changed ptpdlight to compute and upload the lightmap data in a tiled fashion to get a finer granularity over the areas that are touched (or not) and to save on unnecessary computations. - Jorrit fixed a bug in the opcode plugin when collision detection between the same collider (but different transform) was done. The problem was that the opcode plugin kept the transform in the collider class. And if that class is reused but with different transforms then that obviously doesn't work. Fixing this bug also causes every collider to be 4x4 floats shorter. - res made ptpdlight internally crop the PD light masks to the used area in order to conserve some memory. - res made the ptpdlight combining faster. - res fixed some gcc warnings in ptpdlight. - res changed the cs-config wrapper to not use -executable (which is apparently not supported by older 'find's) but -perm /500 instead. 15-Apr-2007 - res made lighter2 display some progress after the last changes. - res added a gldrivers.xml tweak from Rolenun to work around garbled text output with the Radeon DRI driver. - Marten reverted removal of deprecated code in genmesh and added a runtime warning to usage of the deprecated syntax in the loader. - Marten fixed a small bug in csFrameDataHolder. - Marten made a fix to csGLFontcache::CopyGlyphData which should fix trac #314 (read past end of array). Also updated to use CS::SubRectangles instead of deprecated csSubRect. - Marten made stencil, stencil2 and shadowmap renderloop steps respect the CS_ENTITY_NOSHADOWS mesh flag. - res added CS::SubRectanglesCompact::AllocNoGrow(). - res tweaked the lighter2 layouter to not create as few lightmaps as possible, but rather a few more which are then smaller in the sum. - res implemented iTextureManager::CreateTexture() for null3d. - res added a csColor::IsBlack() variant that takes a threshold for which values below are considered as "black". - res changed ptpdlight to also accept a solid base color instead of a base image. - res augmented lighter2 to detect solid colored (base) lightmaps and optimize the output in that case (single pixel LM or base color if PD lights are used). - res fixed ptpdlight textures to register themselves upon load. - res changed the version numbers in filenames and text of the API mods docs to better reflect our current numbering scheme. Notably, version 1.2 was labeled "version 1.20", which is not quite the same. 14-Apr-2007 - res added a cs-config wrapper script that scans for cs-config-X.Y scripts in CRYSTAL and PATH and picks the latest version. - res changed cs-config to also check a CRYSTAL_x_y env var for a CS installation. - res changed the cs-config jam target to copy the cs-config wrapper script to the build dir. - res added a variant of csArray<>::GetExtend() that takes a parameter specifying with what value newly created items should be constructed (analogue to SetSize()). - res added csBitArrayTweakable<>::NumBitsSet(). - res added CS::SubRectangles::SetGrowPO2() (and GetGrowPO2()). - res slightly tweaked the behaviour of CS::SubRectangles::PlaceInto() to cause less very small rectangles to allocate from. - res tweaked the lighter2 lightmap layouter to layout primitives which are affected by similar sets of PD lights closer together. - res bumped the versions for the interfaces which were recently cleaned off deprecated methods. 13-Apr-2007 - Jorrit added virtual to the destructor of SubRectangles class. - Jorrit changed the following meshes to also support iTriangleMesh: genmesh, bezier, instmesh, spr3d, brute, and thing. - Jorrit added iCollideSystem->GetBaseDataID(). - Jorrit fixed csColliderHelper::InitializeCollisionWrapper() so that it actually correctly uses the triangle mesh instead of the polygon mesh if the object model supports triangle meshes. - Piotr fixed small parameters setting bugs in ode joint. - Jorrit fixed a bug in the iTriangleMesh implementation of the thing mesh. It would forget to call Setup() in the GetTriangleCount() and GetTriangles() methods. - Jorrit implemented iTriangleMesh support in dynavis. 12-Apr-2007 - Oktal made the following changes to the iScript interface: - Removed the Initialize() and Store() methods, which had been deprecated since before CS version 0.98. - Added a new interface called iScriptValue to hold a value from a scripting interpreter (constant expressions like 3.14 or "hello"), and added methods to iScript and iScriptObject that accept iScriptValue pointers. These new methods are intended to replace the existing Store/Set(), Retrieve/Get() and Call(). Importantly, the old Call() methods used an ugly printf-style format string and var_args list to pass parameters to scripting subroutines while the new method uses a csRefArray<iScriptValue> which is much cleaner. The old methods are now deprecated. - Added LoadModuleNative(), companion to LoadModule(), that accepts a native filesystem path as opposed to a VFS path. - Renamed methods in iScriptObject: IsType() becomes IsA() and NewObject() becomes New() (better naming conventions IMHO). The old names remain as deprecated methods. - Added GetClass(), which returns a string containing the name of an object's class within the scripting language. - Marked SetPointer() as deprecated and not guaranteed to work. - Updated and improved doxygen comments and the relevant sections of the manual. Update of the release notes can wait until the iScript changes have been implemented in csPython. - Incremented the interfaces' version numbers. - Oktal updated the csPerl5 plugin to conform to the new iScript. - Oktal updated the perl5test application to test out the new stuff. - For each new method added to iScript, Oktal added a corresponding stub implementation to csPython, so that compilation is not broken. Pablo Martin (caedes) has offered to fill in these methods. The old Store(), Retrieve() and Call() were never implemented for csPython, so this update has not resulted in the loss of any functionality. - To maintain backwards compatibility with the deprecated methods in iScript and iScriptObject, without having to implement them for all subclasses, Oktal added intermediate classes csScriptCommon and csScriptObjectCommon in csplugincommon, which implement the old methods by forwarding requests to the new methods. csPerl5 and csPython now inherit from these classes. These classes can be removed when the deprecated methods are removed. - Oktal made the following changes to the Swig bindings: - Fixed the Swig rule in the csperl5 Jamfile so the Swig-generated files get put in the correct directory. - The csPerl5 plugin no longer depends on the Swig-generated perl module; it is possible to use the plugin without the module. - Removed references to AWS, since it has been moved to CSExtra. - Swig now ignores the somewhat-recently added virtual destructor of iBase, and defines its own to correctly handle refcounts. - Moved the directive "%ignore iPen::Rotate" from pythpre.i to cspace.i since the problem it addresses appears to be present for all language targets. - The ..._OBJECT_FUNCTIONS macros now conform to the conventions of the other language-specific macros. - Removed the half-finished code related to operator overloading in perl, as recent versions of Swig handle it automatically. - Since Swig now has a %perlcode directive similar to %pythoncode, several functions that had previously been written with ugly XS (perl C API) were re-written in pure perl, less prone to errors. - Added some extra overloaded operators using %perlcode. - Replaced some calls to SWIG_TypeQuery("cspace::foo") with $descriptor(foo*) where possible. This is much faster. - Fixed several memory leaks and hanging pointers, with better understanding of which perl API calls modify reference counts and which do not. - Fixed two bugs in the python implementation of the TYPEMAP_OUTARG_ARRAY_... macros that would cause them to fail silently. This meant changing their parameter semantics. - Fixed numerous other bugs in the Swig interface files for perl. - Jorrit fixed a problem in the collider wrapper changes (reported by caedes). - Jorrit updated the apimod documentation about the iPolygonMesh deprecation and related. - Jorrit changed the verbose 'crystalspace.trianglemesh.bla' name to just 'bla' (in the context of the ids used by iObjectModel-> GetTriangleData(id)). - Marten removed a big number of functions that were properly marked as deprecated in 1.0 and should be removed before 1.2. - Oktal replaced csStrKey with csString as a hash key, fixing an error in the xwin plugin introduced by Marten's deprecated stuff removal. - Oktal fixed a segfault in the python module related to improper reference counting, introduced with his recent scripting changes. csWrapPtr is now much more strict and cohesive about refcounting. Also discovered and fixed a pre-existing mistake in the module. 11-Apr-2007 - res tweaked the texi2html config to not include the current date in redirect files. - Jorrit changed the loader to recognize a new <trimesh> keyword. <polymesh> is now deprecated. However, both <trimesh> and <polymesh> will currently attach both a iPolygonMesh and an iTriangleMesh to the object model for compatibility reasons. - Jorrit changed <colldet>, <viscull>, and <shadows> options inside a <trimesh> to the more general <id>. For example, use <id>crystalspace.trianglemesh.colldet</id> instead of <colldet/>. - Jorrit updated the documentation on the new <trimesh> syntax in world files. - Oktal eliminated a compiler warning in csutil/util.cpp. - Oktal made a minor change to a comment in configure.ac. - Oktal added the methods DeleteAt() and StartsWith() to iString and scfString, bringing them in to line with csString, where identical methods already exist. - res tweaked texi2html + config to produce nicer quotes and dashes, utilizing HTML entities instead of ASCII chars. 10-Apr-2007 - res tweaked the texi2html config to work around that both an index.html and Index.html was created - the difference in case only made trouble on Windows. - res slightly extended the iTextureWrapper docs to clarify when a texture handle is available. - Marten added some error propagation in the texture matrix computation in csTextureTrans and thingmesh. Fixes #221. 9-Apr-2007 - res renamed csSubRectangles to CS::SubRectangles. - res added CS::SubRectanglesCompact, a variant of CS::SubRectangles which has a slightly different allocation behaviour - allocated rects are arranged in a more compact rectangular fashion. - res switched the texi2html configuration to generate a file per node instead per section and name the files after the node name. This makes references to manual content much nicer and less prone to break compared to the previously used section numbers. - res customized texi2html to get rid of the "SEC123" anchor names for manual elements. This makes documentation changes cause less modified files in SVN (together with the previous change). - res made the csRect destructor non-virtual: this seems rather unneeded as there are no virtual methods in it right now. 7-Apr-2007 - Piotr made cal3d meshes animations to be updated by skeleton graveyard shared with genmeshanim meshes. - Piotr added manual updates option to graveyard. - Piotr added iAnimationInstance interface, for currently played animations. 6-Apr-2007 - Jorrit did several changes for iTriangleMesh: - Added csTriangleMeshPointer class. This is an implementation of iTriangleMesh that takes pointers to the vertex and triangle data. - Added some conveniance methods to csObjectModel to fetch the standard string set and also fetch the base trianglemesh id. - Converted the protomesh as a first test case for using the new iTriangleMesh. - Extended iCollideSystem to support the new iTriangleMesh (and deprecated the iPolygonMesh version). Extended the Opcode plugin to handle iTriangleMesh. - Changed csColliderWrapper to also work with the new iTriangleMesh and deprecated the iPolygonMesh versions. - Added iCollideSystem->GetTriangleDataID() so that it is easier to fetch the 'crystalspace.trianglemesh.colldet' id that is used to fetch the triangle data from iObjectModel. This also solves the problem that some collider classes (like csColliderHelper) don't have access to the object registry and are thus incapable of fetching that id on their own. - Changed csColliderHelper so it first checks if the object supports iTriangleMesh and in that case it will use that. 5-Apr-2007 - res added csSphere::TestIntersect(). - res added a test to lighter2 to only compute lighting of PD lights that can really affect an object. - res fixed some more VC warnings. - res converted odedynam to new SCF. - Jorrit added IsTriangleDataSet() and ResetTriangleData() to iObjectModel. That way you can now distinguish between explicit set of null triangle data as opposed to triangle data not being set at all. In the last case a subsystem (like collision detection) may chose to use the base mesh as a fallback. - res made the renderview the engine uses for drawing properly ref-counted and not stack-allocated, so it can be used after drawing is finished. (Relevant for bugplug.) - res added normals drawing to bugplug. 4-Apr-2007 - Marten fixed the inertia calculation in odedynam (bug #279). This is a potentially behaviour changing fix so the old (broken) way can still be enabled via iODEDynamicsState::EnableOldInertia if you have things that depends on the _broken_ behaviour. - Marten fixed cssynldr to handle loading a csOBB from both an OBB syntax (<box><box>..</box><matrix>..</matrix></box>) and from AABB syntax (<box>..</box>). In the later case the matrix will be identity. 3-Apr-2007 - Marten fixed loading of box emitters in particles (#286). - res fixed a few warnings that occured on VC. - res implemented iTextureManager::CreateTexture() for gl3d. - res added CS::StructuredTextureFormat::GetComponentMask() to allow quick identification of the components in a format. - res implemented iTextureManager::CreateTexture() for soft3d. - res changed csProcTexture to use iTextureManager::CreateTexture() and not a dummy image, if no image to create the texture from was given. 2-Apr-2007 - Marten augmented ptpdlight to handle all black lightmaps. - Marten disabled a few deprecation warnings from the recent iPolygonMesh and friends removal. 31-Mar-2007 - Sueastside fixed a bug in basemapgen when factor=1 and a resolution bigger then the original basemap was specified. 30-Mar-2007 - Jorrit continued work on iTriangleMesh: - Extended iObjectModel with methods to get and set triangle meshes (GetTriangleData()/SetTriangleData()). - Deprecated iPolygonMesh. - Deprecated iObjectModel methods having to do with iPolygonMesh. - Deprecated csPolygonMeshTools. - Added csTriangleMeshTools as a mirror of csPolygonMeshTools. - Deprecated csPolygonMeshBox. - Added new csTriangleMeshBox. - Added \deprecation tags. - Sueastside fixed some "stupid maths" that caused the basemap to be scaled wrongly when specifying a factor. - Sueastside added a progressbar to basemapgen aswell as upscaling of terrainmaterials to remove pixelation. 29-Mar-2007 - res fixed a division by zero caused by some changes in his gl3d cleanup. 28-Mar-2007 - res made csArray<> inherit from CS::Memory::CustomAllocated so new'ed csArray<> instances use CS' own allocator. - res added CS::Memory::AllocatorNew<T> which allocates/frees using new T[]/delete[]. The intended use is to ensure compatability for existing code that takes/returns pointers allocated with a new T[]. - res augmented CS::StructuredTextureFormat with methods to query the contained information. - res fixed some occasions where the a texture format string of "bgra8" was reported for csRGBpixel data when it really is "abgr8". - res sanitized the memory handling of csImageMemory. Image data is now entirely managed by the 'databuf' member; the earlier practice of freeing the image data in the image class was problematic as the image data buffer was returned when asking for "raw data": the associated memory block was freed when the image was destructed, but the image data buffer could live on past that point. - res also fixed csCommonImageFile for a similar problem (image data destructed when image is although a returned data buffer may exist longer). - res changed the GL texture manager to support more texture format strings. - res fixed the GL renderer to create the fog image from a correctly allocated memory block. - res did some cleanup in gl3d. (Removed unnecessary inclusions, split gl_txtmgr.cpp into multiple, more manageable chunks.) 27-Mar-2007 - Piotr did small bugfixing in cal3d iSkeleton implementation. - Piotr added methods for getting animations by indices from skeleton factory. 26-Mar-2007 - res removed pseudo-instancing. See trac #280. - res made gl3d use a plugin namespace. - Piotr blindly fixed trac #305. 23-Mar-2007 - res augmented the iDocumentNodeIterator interfaces to provide "position" information. This is mostly intended for allowing to determine a progress for operations on documents. - res improved the error reporting of lighter2's swapping code a bit. Also made it correctly handle a zlib "error" that's not really a fatal error. - res made lighter2 progress output somewhat more detailed. - res augmented cswinIsWinNT to return also have enumerants for Windowses past XP. - res added an alternative way to detect the OpenGL driver used, written by "heroalex" - see trac #263. The new way actually works on Windows Vista, but it also incurs less guessing the driver from registry entries than the "old" way, so I've made it default on NT platforms. 21-Mar-2007 - Jorrit started work on the deprecation of iPolygonMesh and the new iTriangleMesh. Added iTriangleMesh. Changed the already existing csTriangleMesh class to implement iTriangleMesh. 20-Mar-2007 - Jorrit moved AWS and AWS2 from CS to CSExtra. - Jorrit moved AWS data and docs. - Jorrit moved awstest and awstut. - Jorrit moved partedit, partedit2, and picview. - caedes closed #287 by adding a typedef declaration for int32_t at cspace.i. This way swig does not use int32_t at the output cpp file. 18-Mar-2007 - res changed lighter2's progress system to allow for arbitrarily nested progress objects. 17-Mar-2007 - Genjix closed #172 by adding 2 new lighting options to viewmesh. - res generalized lighter2's lightmap cache into a swapping mechanism for all kinds of data. - Marten extended the jam system with a MsvcUsePCH target : file ; rule which will emit usage of pch (precompiled header) into generated Visual Studio project file. - res made lighter2 use the new MSVC PCH support. 16-Mar-2007 - Jorrit and res2k fixed frustum code that was borked in revisions 26237 and 26242. This fixes ugly thing lightmaps (trac #262). - res fixed the shader data to be installed entirely. - res changed the installation directory and cs-config naming to include the version number in order to allow parallel installations of multiple CS versions. - res fixed an assert in csSubRectangles occuring after the latest changes there. Fixes trac #282. 15-Mar-2007 - Jorrit moved igeom/decal.h to ivaria/decal.h - Marten integrated terrain2 from the soc/terrain branch into trunk. - Piotr added support for keyframes without transform data for all skeleton bones in genmeshanim. - Piotr added handling for animations without keyframes. - Marten fixed a compilation bug on gcc with terrain2. - caedes added a new accessor wrapper template to python bindings for write only attributes with several input arguments (or methods). 14-Mar-2007 - Marten did first step in renaming terrainimproved to terrain2. - Marten finished renaming terrainimproved to terrain2. - Marten did some clean-up of old terrainimproved/2 stuff. - Marten removed an extra include of windows.h that would pull in way more than required, and as it is in a public header mess with external projects. - res changed csDirtyAccessArray<> to take a memory allocator and capacity handler (like csArray<> does). - res changed tinyxml's GrowString to be a wrapper around csString (which already provides what GrowString does). Also switched some strings to exponential growth for better performance with large strings. - res optimized the csPrintfFormatter %s handling for a few cases (including the rather common plain "%s"). - res added CS::Memory::Heap::Footprint(). (Potentially useful for tracking memory usage.) - res tweaked csSubRectangles so that adding rectangles with Reclaim() calls in between gives the same results as adding without Reclaim() would give. (Previously, the packing between these could differ; this tripped up the lightmap layouting in lighter2 which made this assumption.) - Marten cleared up some more overuse of windows.h. Should help compilation speed a bit as windows.h and its includes are huge. - Marten changed the "missing texture" meta-texture from the xor- checker to a red-green-blue-black checker which is more visible. 13-Mar-2007 - Marten did some more fixes to terrain: - Properly distinguish between factory and terrain object. - Move feeder to be per terrain instead of per cell. Added per cell feeder properties. - Fixed some things in the API to be more like rest of CS (sending SCF objects by pointer, transforms by reference). - Unified terrain to use a single interface header file inside include/imesh. - Fixed the loader to use more standardized names for tags. 9-Mar-2007 - Jorrit started work on moving imposter handling to imposter factories so that it is possible to share imposter textures. Not really working yet however, so the imposter factory currently behaves as if it is not sharing at all. - Piotr implemented finding bones by names in cal3d plugin. 8-Mar-2007 - Jorrit did the following imposter updates: - Changed imptest to show multiple meshes from the same factory. - Fixed a bug in the rendering in case of multiple imposters. The camera was not correctly restored (I thought this was not needed) with the result that all imposters except the first one rendered wrong. - Changed the imposter textures to use binary alpha so that they don't have to be sorted back to front. - Sueastside worked on basemapgen: added the ability to specify VFS mounts in a config file (VFS.Mount.[...] = [...]) and fixed a possible crash when a texture file couldn't be found. (Thank you vknecht!) - res shaved a few bytes off the internal per-element data of TinyXML. - res changed the implementation of ptpdlight's "lumel buffer" to avoid the use of offsetof(). - res changed lighter2's saving to save factories and objects separately. Factories are saved before the objects are initialized - after that initialization, the factory can possibly be released, reducing memory usage. - res reorganized primitive and vertex data so the data stored by factories resp. objects is closer to what's really only needed. - Marten fixed an error related to accessing already removed objects when collapsing several lod-levels at once in bruteblock renderer of new terrain. - Marten added support for large blocks (32-bit indices) in bruteblock renderer of new terrain. - Marten added support for per cell base material. Changed the terraini level to mimic terrainf level. - Marten did a small fix for coordinate systems in improved terrain. 7-Mar-2007 - Jorrit fixed a crash bug in lighter2. In the simple TUI lastTask started as an empty null string and comparing that with GetTaskName() (which was recently changed to return a const char* instead of a csString) crashes inside strcmp. - Piotr adds 'RemoveAllFrames' to 'iSkeletonScript'. - Piotr adds iDynamics step callback. 6-Mar-2007 - res changed csStringBase::Upcase() and Downcase() to not use toupper()/tolower() but csUnicodeTransform::MapToLower() and MapToUpper(). An issue with the to*() functions is that they respect locale; this led to problems on systems that have a Turkish locale set - there, the lower case of I (U+0049) 'i dotless' (U+0131) which caused problems with XML parsing. Also, these strings now accept UTF-8 (like most of CS) instead of the system's codepage. On the downside, locale-aware casing is lost - however, support for this can (and should) be added to the csUnicodeTransform Map*() functions once a need arises. - Piotr did cleaning in his last changes in csCal3dSkeletonBone. - Jorrit made csImposterProcTex a bit more efficient by not storing pointers to engine, g3d, g2d, shader manager (they are easily obtained from the given iRenderView) and also made the cached string id's static so that they are *really* cached now. - res fixed some more r26546 fallout. - res changed how "copy data vs. set pointer" is handled for render buffers: instead of being controlled by a flag set at creation time, a new method "SetData()" was added that just sets the render buffer's pointer. (The old way is still supported, but deprecated.) - res deprecated the (only intended for internal use anyway) CS_BUF_LOCK_NOLOCK render buffer lock mode. - Jorrit did a small optimization to csIntersect3::SegmentPlane() as suggested by Erroroman. 5-Mar-2007 - iceeey fixed some errors and warnings in basemapgen on GCC. - sueastside fixed a crash in basemapgen caused by a copy/paste error. 4-Mar-2007 - Jorrit worked on imposters: - Removed the ability to set imposter settings on meshes. Imposter settings are done on the factory now. - iMeshWrapper no longer implements iImposter. - Piotr implemented skeleton update callbacks handling from iSkeleton interface. - Piotr implemented [Set/Get]Transform in csCal3dSkeletonBone. - sueastside changed the application Report functions to use csReportV() macro. - res changed gmeshldr to save the "manualcolors" flag for objects if it differs from the factory's setting. Also, previously it was only written when manualcolors was disabled - which was wrong since the default is exactly that. - res changed genmesh mesh colors to default to 0,0,0,1 and not 0,0,0,0. - res changed the behaviour of factory genmesh colors somewhat: now colors are no allocated until needed (ie requested by code). This means some memory is saved if the factory colors are never changed anyway. Note: that means genmesh animation plugins may get a 0 pointer passed in as factory colors! - res changed lighter2 to disable the "lighting" flag on the genmesh objects and to only write a PDL animation control if a mesh is really affected by some PDLs. - res did a quick fix to csVertexCompressor to make input of colors optional. 3-Mar-2007 - res added the X Window System and OpenGL to the list of "External Libraries" in the manual. - res changed some #defines used for texture format strings and structured texture formats to an enum. - res added the texture format string description from the dev wiki to the API docs. - res fixed the return value of iDecalTemplate::GetBottomClippingScale(). Also removed the #defines for the decal template default values (the initializers in the constructor make it quite clear already which value gets initialized to what). - res made a couple of tweaks to the API docs. - Piotr did more work on implementing iSkeleton interface in cal3d plugin. - res changed CS_VERSION_NUMBER to properly contain a version number in the "x.y.z" scheme (and not "x.yz"). - sueastside added a new application 'basemapgen', this generates a basemap, to be used with terrain, from the used materials. - res changed lighter2 to properly save per-vertex lighting information again. - res added methods to csIEEEFloat to deal with doubles. - res added the ability to load and save render buffers to external files to cssynldr. 2-Mar-2007 - res made the following changes to lighter2: - Changed the order of how things are saved: the new world file is now written after the meshes are initialized (lightmaps layouted, necessary submesh splitting done) instead at the very end of the lighting. This should make it possible to discard the CS meshes and factories much earlier (since they're not needed for saving any more) and thus memory to be conserved. (Caveat: currently breaks per-vertex lighting.) - Made it delete the cache/genmesh_lm directory. - Made it strip the (after lighting irrelevant) "localshadows" flag from GMs. - Fixed a lightmap layouting having marked all vertices as "used" initially, thus essentially doubling all vertices of a mesh. - res made tinyxml use cs_malloc() instead of new char[] for some allocations. - res made VFS' DeleteFile() support directories. - res changed the way lighter2 handles progress display. Instead of setting the progress directly, a number of "sub-progress" objects are created (each representing a task). Code that "does something" then sets the progress on one of such progress objects, which takes care of updating the display and updating the overall progress. - Marten made a number of fixes to improved terrain: - Changed the cell lru to be a bit more efficient. - Removed all usage of csArray::Length/SetLength - Fixed a block culling bug. 1-Mar-2007 - res fixed embedgl to properly include gl.h. (<GL/gl.h> doesn't work on all platforms, the CS_OPENGL_PATH construct takes care of the proper path.) - Jorrit split plugins/engine/3d/meshobj.* into meshobj.* and meshfact.* (i.e. keep mesh objects and mesh factories as separate files). - Marten fixed a serious bug in bruteblock terrain where it would never cull any terrain blocks. - Marten fixed csLog2 to give correct result when a power of 2 was given. - Marten made a number of fixes to improved terrain plugin: - Rewrote the LOD level selection algorithm to use projected area instead of just maximum component. - Moved the index buffer generation to be done per terrain renderer instance, not per terrain cell instance. - Did some general stylistic fixes. 28-Feb-2007 - Marten fixed the particle loader/saver to properly expose the saver interface. - res added CS::StrDup*(), versions of csStrNew*() (or strdup(), depending how you look at it) that use cs_malloc() for memory allocation. - res fixed mixing of new char[] and cs_malloc() in xmlread. - res fixed a deprecation warning on VC in the skeleton plugin. - Jorrit did some work on imposters: - Fixed checking on imposter tolerance (thanks to Marten). - Added a separate camera_tolerance factor. - Made tolerance default to 0.4 and camera_tolerance default to 0.2. - Extended the loader to handle the new camera_tolerance attribute. - res un-botched CDATA parsing in xmlread. (It should never condense whitespace. Was errorneously changed to respect the "condense whitespace" flag earlier.) 26-Feb-2007 - res slightly optimized xmlread by replacing uses of isspace(), isalpha() and isalnum() with custom implementations. - res made some tweaks to CS::Memory::AllocatorHeap. - res added an optional "Allocator" template argument to scfImplementationPooled. - caedes fixed iSkeleton::GetScriptsCount. It was broken after latest changes to iSkeleton interface. 24-Feb-2007 - Andrew Robberts fixed top and bottom clipping in decals - Jorrit did some imposter work: - Removed CreateImposter() from iImposter. That function doesn't really make sense there and isn't needed either. - Mesh factories now also implement iImposter. This is currently only used as a default imposter setting for meshes created from the factory. In the future it might be used for sharing imposter actual imposters. - Changed the loader so that you can now also set imposter settings on the mesh factory. 23-Feb-2007 - res added some groundwork for weaver int+bool support. - res fixed a crash in shaderweaver when too many coercions were added to the internal tree. - res fixed a problem with merged input were the generating snippet would be emitted after the requiring input. - res augmented the shaderweaver to also match an output to an input if the input is more "general" than the output. - res fixed a crash in the Cg weaver combiner when generating a more complex coercion chain. - res augmented the Cg weaver combiner to also check <variablemap> nodes for "input tags" (a part of weaver's input merging). - res made the Cg dump output used and reference flags for parameters. - res moved the "reflectsphere" material from teapot.lib to the flarge level. (The teapot.lib file should only provide a basic mesh and material, "special effects" are more appropriately assigned by the "client" of the library mesh.) - res added normal+height map for the teapot xygyw texture. - res added a bunch of weaver snippets and weaver Cg coercions. - res re-created the "reflectsphere" shader as a weaved shader. Made flarge use this new shader, and added a normal map to the teapot's material to show off a bit. - Piotr is following res suggestion and makes the genmesh object reset its user render buffer only in 'SetupObject' (instead of reseting right after any change). - res added shaderweaver to the walktest plugin list. - Jorrit fixed imposter rendering so that it works a lot better now. - Jorrit changed imptest so that it pans by default around the sprite now. Easier to debug that way. Shift-move still works to strafe. With 'space' you can reset the view so that it looks at sprite again. - Jorrit increased imposter distance in imptest from 1 to 3. - Piotr changed "Script" to "Animation" in iSkeleton related interfaces. 22-Feb-2007 - res fixed shaderweaver to not crash when a snippet lacks a <combiner> node. - res made nested snippets work right in shaderweaver. - res added a few additional weaver types and coercions, and made shader use them. - Andrew Robberts added a colour falloff to decals. - Jorrit moved the engine code from the imposter branch to main trunk. Reworked the code so that it now uses a preprocess event handler to update all the imposter textures instead of trying to do it in the main engine view. This required rewriting the update queue in the engine so that there is now a separate update queue for every camera. - Jorrit moved the simple2 imposter test code to a new imptest app in CS. This clearly shows that imposters are not yet working. - caedes did the following changes to cspace.i: - added igeom/decal.h to swig includes. - added iShader, iDecalManager and iDecalTemplate to interface_apply's. - added SWIGLUA test for language pre/post files. - Piotr made genmesh to reset its user render buffers when they change. 21-Feb-2007 - res added a missing export marker for csExpandPlatformFilename(). - res changed the way plugins are statically linked when shared libraries are enabled: instead of statically linking into an application. a shared library is created which contains the desired static plugins, which is then referenced by the application binary. In practice that should be as good as "true" static linking; however, it's more LGPL compliant, as the static plugins can be replaced with different versions rather easily, compared to true static linking into a binary. - res added dsplex to the walktest plugin list (since it's the iDocumentSystem set in walktest.cfg). - res augmented shaderweaver to optionally prevent merging of input (can be useful when targetting more restricted hardware and such). - res moved the "glow" shader snippet to the (perhaps more fitting) directory lighting/. - res made the "glow" shader snippet better support PS 1.x hardware. - res augmented shaderweaver with the ability to read <input>s from files. This is useful for often reused inputs (e.g. texture coordinates). - res changed csRenderBuffer::GetBufferNameFromDescr() to also accept a 0 buffer name. - Andrew Robberts added an #include <limits.h> to weavercombiner.h to fix an undeclared UINT_MAX error. - Anders Stenberg changed LoadShader to return a csRef<iShader> instead of a bool, and take an option on whether to register to the shader manager or not (defaulting to true). This should hopefully not break any compilation, unless someone is doing something I didn't think of. 20-Feb-2007 - res made a number of reftracker-related tweaks: - Made CS compile again with reftracker enabled. - Made it allocate reference information in bigger chunks. - Made it compact some memory when "retiring" reference information. - Made output slightly better grepable. - Default description of SCF instances to the class ID. - Made scfImplementationX register a reftracker alias for iBase. - Adjusted DecRef() for pooled classes to be reftracker-friendly. - res made the callstack-related classes custom allocated. - res removed "speed hacks" for reftracking used in some document implementations: these hacks unfortunately trip out the reftracker, causing false leak reports. - res made the TinyXML wrapper reftracker-friendlier. - res fixed leaks in frustvis. - res fixed excessive IncRef()s in csRenderView. - res fixed a leak in the software sound renderer. - res made the GL renderer lightmap textures more reftracker-friendly. - res made the following changes to shaderweaver: - Ability to detect same inputs (to some extent) and avoid duplication of these. - Ability to give inputs "conditions" (have the same effect like manually added <?if?>s; however, they allow merging of inputs). - Leak fix. - res added "glow" ability to the std_lighting_2 weaver test shader. - res changed csMemoryPool to use cs_malloc(). - res fixed an uninitialized variable access in shaderweaver. - res added "mixmode alpha" support to std_lighting_2. - res added the missing "parallax" weaver snippet. - res fixed a lack of decrement operators in xmlshader. - res added sector fog support to std_lighting_2. - res added a missing export marker for the Win32 & pthread threading implementation classes. - res fixed old syntax being used in one of the manual tutorials. (Spotted by IRC user runix.) 13-Mar-2007 - Marten did some more fixes to terrain: - Properly distinguish between factory and terrain object. - Move feeder to be per terrain instead of per cell. Added per cell feeder properties. - Fixed some things in the API to be more like rest of CS (sending SCF objects by pointer, transforms by reference). - Unified terrain to use a single interface header file inside include/imesh. - Fixed the loader to use more standardized names for tags. 8-Mar-2007 - Marten fixed an error related to accessing already removed objects when collapsing several lod-levels at once in bruteblock renderer of new terrain. - Marten added support for large blocks (32-bit indices) in bruteblock renderer of new terrain. - Marten added support for per cell base material. Changed the terraini level to mimic terrainf level. - Marten did a small fix for coordinate systems in improved terrain. 2-Mar-2007 - Marten made a number of fixes to improved terrain: - Changed the cell lru to be a bit more efficient. - Removed all usage of csArray::Length/SetLength - Fixed a block culling bug. 19-Feb-2007 - Marten made a few changes in lighter2: - Disabled the use of the exposure function and use a simple scale and clamp instead. Gives more consistant result with both old-style lightmaps and "simple" hardware lighting. - Implemented a small optimization to the primitivie setup step. - Removed some dead code. 16-Feb-2007 - res fixed an issue in xmlshader where conditions were incorrectly folded away. - res added an additonal debugging feature to xmlshader to inspect the possible value sets computed. - Marten fixed an issue in lighter2 related to multiple submeshes sharing vertices and those vertices getting separate lightmap coordinates. - Marten fixed so the profiling plugin isn't unloaded until program ends or it is explicitly unloaded. - Daniel Fryer cleaned up the coreaudio sound renderer and fixed a byte-swapping problem in libs/csplugincommon/sndsys/convert.cpp 15-Feb-2007 - res fixed the reflect and reflectsphere shaders to actually map the diffuse texture coordinates. (Reported in CS-forum:1557.) - Andrew Robberts fixed a potential array out of bounds crash in decals - Andrew Robberts fixed a sizing issue with decals if the given up vector wasn't normalized. 14-Feb-2007 - res made various fixes to the shader weaver and Cg combiner plugins. - res added parallax mapping to the example std_lighting_2. - Jorrit fixed a compile error in weavertypes.h. - Marten fixed a destruction/iteration order problem in csGLVBOBufferManager destructor. - Jorrit disabled the profiler in ivaria/profile.h because it seems to cause problems for static builds. - Marten fixed interleaved render buffers when using VBO. - res reverted r26367 (use exceptions in csjpgimg) since it causes an abort on Linux when an exception is thrown (see #256) and I'm at loss at how to fix that. - res made more shader weaver tweaks (fixed wrong emission order of graph nodes; corrected comments in source and config files). 13-Feb-2007 - Marten hopefully fixed bitoperations on VC7 and VC7.1. - res added CS::DocumentHelper::CloneAttributes() to clone only the attributes of a node. - res added CS::DocumentHelper::FlattenNode(), a function that flattens a document node hierarchy into a string (can be used for e.g. hashing). - res made a small constness tweak to CS::ScopedDelete<>. - res added a missing shared lib export marker for generic csExpandPlatformFilename(). - res removed the Bsymbolic linker flag - it causes problem with shared libs on Linux. Also, searching a bit around has revealed that this flag is generally problematic with C++. Lastly, the custom allocation issues having caused the initial use of this flag probably went away when the global new/delete override was removed. - res added an initial version of a "shader combiner", generating xmlshader documents from snippets of shader code. In the shader itself only the shader building blocks and dependencies between these have to be specified (ie an Abstract Shade Tree). 12-Feb-2007 - Andrew Robberts updated decals so reduce z-fighting and seams. - Marten rewrote the VBO buffer handling to be more robust, contain less cruft and be a bit faster. - Andrew Robberts updated decals to better specify a top and bottom clipping plane for decals. - res slightly expanded the manual section on smart pointers with information on translation to and from normal pointers as well as information on csWeakRef<> and how to deal with references in function parameters. - res replaced the csPtr<> API docs with an excerpt from the user manual description. Also added pointer to section in manual. - res made csRenderBuffer use cs_malloc() for buffer data allocation. - res marked the new temp file/dir functions for DLL exporting. - res fixed an inclusion of a non-existant header in the bullet plugin. (Probably went undetected due a blunder in cs-win32libs which actually ships this header [which was removed between bullet versions]...) - res made more Windows SDK 6.0 compatibility fixes. - Marten added CSV logging to the profiling plugin. Also added a command to start and stop logging as well as activating automatic reset (and writing) of data once per frame. - Marten removed some left-over debugging code in lighter2. Fixes trac #237. 10-Feb-2007 - Marten hopefully fixed lighter2 compiled with MSVC on win64. - res changed csjpgimg to not use setjmp() but exceptions for error handling (setjmp doesn't work right on Win64 MSVC). Also added some wrappers around the JPEG structs so the client code more feels like C++ and less like C. 9-Feb-2007 - Piotr started implementation of iSkeleton related interfaces in Cal3d plugin. - res added a csPackRGB::PackRGBpixelToRGB() variant that packs to a given buffer. - res fixed a couple of compile errors with VC7.0. 8-Feb-2007 - Marten added (untested) code for atomic operations on SPARC. - Piotr improved choosing pixelformat in wxgl plugin (on win32 only). - Piotr made wxgl plugin compilable and working with wxwidgets 2.8 - Marten made two tweaks to particles: - Exposed initial angular velocity setting on emitters to xml. - Made sure rotation-mode resets the texcoord vectors. Fixes problem when switching from texcoord rotation to none. - res split csutil/threading/atomicops.h up into multiple files (one per implementation). - Piotr made more backward compatibility safe and improved code quality (removed not valid comments and unecesery method) in his latest commit. - Andrew Robberts made decals a bit more efficient sharing memory and adding the ability to reuse/change existing decals 7-Feb-2007 - Genjix changed csWeakRefArray to not use deprecated Length (). - res changed configure to normalize sparc* cpu names to sparc (so e.g. sparc64 is treated as sparc). 6-Feb-2007 - res added CS::ScopedDelete<>, a helper class to delete a pointer when leaving a scope. 4-Feb-2007 - res worked around an apparent incompatibility between one of VC8's headers and a header from the latest Windows SDK 6.0. - res fixed a couple of compile warnings. - res changed the CS_REQUEST_FONTSERVER macro to pull in the font multiplexer plugin instead of the "default" font plugin. (The idea is that nowadays most people would probably like to use TrueType fonts instead of the built-in bitmap fonts; using the font plexer by default this will work out of the box.) - Luca fixed the source code of the examples in the Threading Library section of the manual. - res fixed the static plugin dependencies file to contain the correct library names. 3-Feb-2007 - Jorrit added 'decal_test' to the online help for walktest. - Marten fixed a compilation error in sector.cpp that only showed in release mode. 2-Feb-2007 - res worked around Cg not being properly detected on Linux when -Wl,--as-needed was passed in LDFLAGS. - res correctly placed a comment in compiler.m4 and fixed the response file support test. (Previously it didn't work - the used @ sign is internally used by the CS build test macros as a separator. Worked around by not using the CS build macros but the relevant AC_ macros directly.) - res fixed a couple of warnings and errors after the temp file name stuff change. Also removed an (actually inappropriate) use of GetTempFilename in importkit_glue.cpp. - res slightly changed CS_TEMP_DIR and CS_TEMP_FILE to emit a warning when employed. - Marten removed deprecated methods from: - csArray and derived types - csPath - csImageBase - Marten put back csArray::Length and csArray::SetLength but properly marked them deprecated. - Andrew Robberts added the ability to attach arbitrary rendermeshes with priority and zbufmodes to any iMeshWrapper. - Andrew Robberts added an InSphere function to poly3d to test if the poly is within a sphere. - Andrew Robberts added decal support and a decalmanager plugin to CS. Decals are currently supported by thing and static genmeshes. - Andrew Robberts fixed copyright, interface versions, and comments - Andrew Robberts added missing include/igeom/decal.h - Andrew Robberts fixed pointer and csRef references in decals. 1-Feb-2007 - Marten fixed compilation of CS::DataBuffer on gcc. - Marten made sure genmesh doesn't return any rendermeshes when there is no triangles. Fix bug #224. - Marten implemented functions to get temporary directory and file in CS::Platform / syspath.h. These functions make CS_TEMP_DIR and CS_TEMP_FILE deprecated. 31-Jan-2007 - Jorrit changed csImageMemory to use a csDataBuffer to keep track of its image memory. That way it can also implement GetRawData(). - Jorrit changed the png loader to use rawData instead of dataSource. - Jorrit reverted the png loader change as it was assigning the raw file data to rawData but rawData is supposed to contain the decoded image data. - Jorrit changed the png loader again so that it now correctly sets up the rawData from the decoded image data. - res added a memory allocator mixin using new char[]. - res turned csDataBuffer into template<Allocator> CS::DataBuffer. This allows to use different allocators for data buffers. (The default DataBuffer now uses cs_malloc(); csDataBuffer still uses new char[].) - res fixed the JNG plugin for the change in the way csImageMemory stores image data. - res fixed some deprecation warnings caused by r26260. 30-Jan-2007 - res rigged (the deprecated) csutil/debug.h to emit a warning when included. 29-Jan-2007 - Andrew Robberts fixed a warning from checking if an unsigned is >= 0. - Jorrit reverted a change from Genjix yesterday. /bin/bash doesn't exist on mingw. - res rigged (the deprecated) csutil/profile.h to emit a warning when included. - Genjix added fix to cs-config where a switch case is autogenerated for variable indirection for systems like ubuntu. 28-Jan-2007 - Eric Sunshine made some minor clarifications to the Dev-CPP tutorial suggested by Johannes Schoen <schoen.johannes@arcor.de>. - res fixed dllwrap invocation in case the CMD.LINK variable has multiple entries. - Genjix fixed problem in cs-config script for systems where /bin/sh doesn't neccessarily symlink bash (like ubuntu where its dash). 27-Jan-2007 - res re-added an iengine/collectn.h that contains a message about the removal of iCollection and instructs to remove all inclusions of that file. (Complete removal of that header wasn't a good idea on the account that it still appears in sources outside CS.) - res fixed a number of deprecation warnings caused by r26260. - res changed the library generation to include a version number in the library file name. Adjusted cs-config to cope with that; also, cs-config now correctly deals with the libraries being built shared. - res made changed the declaration of CS::Debug::AssertMessage() to not be debug mode only any more. (This enables linking of debug binaries against optimize-built libs.) - res fixed separate debug info to be properly installed. - res tweaked the crystalspace_python lib to work more nicely when being built shared. 26-Jan-2007 - Jorrit changed the 'lmscale' parameter in lighter2 to use the slightly more standard 'u,v' notation instead of 'u;v'. 25-Jan-2007 - Jorrit fixed a compile error in frustum.cpp. - res added CS::Memory::CustomAllocated. This class solely implements custom versions of operator new/operator delete/etc. which use cs_malloc()/cs_free() and is intended as a base class to have classes allocated with ptmalloc(if enabled) rather than the default allocator. Addresses #146. - res changed scfImplementation to inherit from CS::Memory::CustomAllocated (ie SCF classes are allocated with ptmalloc). (This shouldn't become an issue for third parties; with proper SCF class instance usage a mix-up of allocators shouldn't occur.) - res removed the global operator new and malloc overrides from cssysdef.h. 24-Jan-2007 - res moved the movierecorder plugin to the utilities subdirectory. - res removed the deprecated engine collection stuff from the source. - res fixed warning+oversights caused by the csFrustum size_t-ification. - res changed the engine's standard shader loading to not hardcode the xmlshader compiler. - res removed a number of deprecated header files. - res removed the deprecated csArray<>::DeleteFast(). - res excluded the now-deprecated csutil/profile.h and csutil/debug.h from the master headers. - res silenced some MSVC warnings in csutil/profile.h. - res added docs reflecting the deprecation to csutil/profile.h and csutil/debug.h. - res fixed configure to also emit the directory variable 'datarootdir', as required by autoconf 2.60+. Should address #239. - res committed a patch from Ryan Thorik to resolve ambiguities in the ELF reader. Addresses #231. - res changed the "CPU optimization" detection in configure to also test for -mtune=generic (supported by future GCCs). - res fixed a compiler error in xmlshader with gcc 3.2. 23-Jan-2007 - res made compileassert.h use the correct namespace (CS instead of CrystalSpace). - res fixed some documentation in hash.h. - res added a note on iTextureHandle::Blit() behaviour to the docs. - res fixed genmeshify to print command line help twice when run with --help. - res changed csFrustum to use size_ts for vertex indices. Also made use of csRefCount for refcouting and use cs_malloc() for internal vertex array allocation. - res changed tokenlist.h to mention its csstring.h dependency. - res added a GetSize() method to csFIFO and deprecated Length() so it handles more like csArray<>. 22-Jan-2007 - Jorrit fixed profile.h so that it compiles again on mingw. Also removed several warnings. 21-Jan-2007 - Marten cleaned up some more places where the (now removed) csutil/debug.h was used. - Marten added a new profiling system instead of the old one. Advantages include support for profiling without the object registry, no crash if a plugin with profiling points is unloaded and support for counters (simple counters without time information). - Marten moved the source for bugplug plugin to utilities subdirectory. - res partially undid the csDebuggingGraph removal: the class and macros are still there, but now are no-ops and emit deprecation warnings. - res fixed plugins/Jamfile for the bugplug move. Also fixed bugplug for the debugging graph & profiler removals. - res moved xmlshader's conditionals & processing instructions code into its own subdirectory. - res added some no-op versions of the old profiler so code using it will continue to compile. 19-Jan-2007 - Marten removed csDebuggingGraph and related classes. They weren't used anyhow. 18-Jan-2007 - caedes added csRadixSorter and csConfigFile to the swig interface files. - res fixed the genmesh 3DS loader to allocate a correctly sized index buffer. Addresses #236. - res made the following changes to lighter2: - Changed main() slightly to ensure proper cleanup. - Silenced "Error parsing mesh" for portal containers. - Changed Scene::GetLightmap() to return the correct PD light map when proxy lights are used. - Fixed regression where the "noshadow" attribute of meshes was ignored. - res made lighter2's CollectShadow...() methods more act like the "real" lighting functions do. Also, for border elements, only the hits for "inside" points should be collected, not all hits. 17-Jan-2007 - caedes did the following changes to cspace.i: - removed ignore for csStringFast. - added some ignores for csHash members and methods that cant be wrapped. - caedes did the following changes to python swig files: - added in and out typemaps for csStringFast to python string conversion. - added dict like interface for csHash (no iterator yet though). - Marten finished support for portals (including space-warping ones) in lighter2. - caedes did the following changes to cspace.i: - fixed vector division, was misimplemented as multiplication. - added declaration for some key event macros which are not found automatically by swig. - Genjix added fix for iGeneralFactory::AddTriangle() crash in Invalidate() 13-Jan-2007 - Jorrit fixed a problem in the segmentcell header of opcode which handles collision detection for new terrain. It was using 'abs' which is for integers so all floating point things were wrongly truncated. Replaced all 'abs' with 'fabs'. 12-Jan-2007 - caedes added scfImplementationExt1 template to scf.i swig file so this template can be wrapped. - caedes added %template declarations in swig files for csPolygonMesh, csPolygonMeshBox, csObject and csColliderWrapper implementations so class inheritance info is preserved in scripting languages, - caedes added csColliderWrapper::UpdateCollider functions to allow updating collider info for a collider wrapper. - caedes removed the incref and decref in python event handler ctor and dtor inside swig files as it would cause a memory leak (due to decref in dtor never being called). 11-Jan-2007 - res committed a number of patches from Ryan Thorik to allow building on Solaris and IRIX: * finite() is declared in ieeefp.h on Solaris 10. * Add MIPS, SPARC, and Alpha to the IEEE float arch list. * Allow dlmalloc to get IRIX's pagesize (otherwise it would be complaining about _PAGESZ being undefined). * Fix "va_list' has not been declared" issue on Solaris. - caedes made the following changes to swig interface files: - added cstool/enginetools, cstool/pen and csgeom/pmtools. - added a macro called ARRAY_OBJECT_FUNCTIONS to add language specific array functions to interfaces. - added a helper function to csMeshedPolygon so vertex indexes can be retrieved (GetVertexByIndex). - removed warnings from CS_QUERY_REGISTRY_TAG by removing all mentions to these macro and also ignoring CS_QUERY_REGISTRY_TAG_is_deprecated; - caedes made the following changes to python swig interface files: - added wrappers for iPolygonMesh GetTriangles, GetVertices and GetPolygons so these can be used from python. - implemented ARRAY_OBJECT_FUNCTIONS for python by using some older macros. - changed PYLIST_* macros a bit so they can be used for non pointer types (like int). - added a workaround for iPen::Rotate giving problems with swig .28. - added iterator to the genmesh and polymesh array helpers. - added list protocol to csMeshedPolygon so it can be handled like a vert index python list. - updated python event handler for new scf. - caedes added csPolygonMeshTools::CalculateVertexConnections to get vertex connection information from a polymesh. - caedes added csArray<csArray<int> > template declaration to swig interface files so it can be handled. - caedes added added %newobject declaration in swig interface files for csPolygonMeshTools::CalculateVertexConnections so it will be cleaned up by python. 9-Jan-2007 - Marten added a timeout parameter to CS::Threading::Condition::Wait. - res fixed the clipping rectangle for walktest's "cubemapshots" command. - res made CS::Threading::Condition::Wait() return whether the wait timed out or ended due a change of the condition. - res fixed compilation of the pthreads CS::Threading::Condition::Wait(). - res added a simple translator plugin from Darek Dawidowski. - Anders Stenberg added a halfassed water test level (water.zip). It's not very good right now, but could be a test bed for further testing. 8-Jan-2007 - Marten did various optimizations and cleanups in lighter2. - Marten made sure the core parts of lighter2 are thread safe to later make it mutli-threaded. - res fixed some gcc compiler errors and warnings in lighter2. 7-Jan-2007 - David Bronke fixed the windows joystick plugin and corrected his previous history.txt entry. 6-Jan-2007 - David Bronke added functions to iCEGUI to enable and disable capturing of mouse and keyboard input events. 4-Jan-2007 - res made lighter2 add an ambient term to the lightmaps. - res moved lighter2's cleanup code from an explicitly called method to the app class destructor. - res fixed lighter2 to properly add the ambient term for vertex-lit meshes affected by PD lights. - res changed the way lighter2 stores element areas to take less memory. Now, a bit array stores whether an element is empty or full, and only the area of neither empty not full elements is stored. 3-Jan-2007 - res tweaked ptpdlight to not store light IDs as hex strings internally but as raw data. - res augmented the genmesh loader to also take anim controls in objects: it loads the anim control factory, creates a single control, and sets that on the mesh object. - res added a genmesh animation plugin for per-vertex PD lighting. - res added support for per-vertex PD lighting to lighter2. - res tweaked the MSVC build guide to reflect that multiple directories for projects for different VC versions exist. 2-Jan-2007 - res renamed 'imagetool' to 'csimagetool', as suggested by Eric (Since the pretty generic name 'imagetool' can easily collide with other packages when installed in locations like /usr/bin). 1-Jan-2007 - res changed genmeshify to better handle smoothed Things. Please see "history.old" for less recent historical entries.