Module CS/plugins/mesh/genmesh/persist/tree/

back to main page

Summary Period: 2002-01-24 to 2003-06-22

Modules

[root]/CS/plugins/mesh/genmesh/persist/tree

Lines Of Code


Total Lines Of Code: 1438 (2003-07-11 20:29)

Authors

Author Changes Lines of code Lines per change
Totals 52 (100.0%) 2172 (100.0%) 41.7
jorrit 31 (59.6%) 2032 (93.6%) 65.5
philwyett 4 (7.7%) 72 (3.3%) 18.0
sunshine 9 (17.3%) 39 (1.8%) 4.3
res2002 2 (3.8%) 9 (0.4%) 4.5
matzebraun 1 (1.9%) 9 (0.4%) 9.0
norman 3 (5.8%) 7 (0.3%) 2.3
ab031ns 1 (1.9%) 3 (0.1%) 3.0
thebolt00 1 (1.9%) 1 (0.0%) 1.0

Most Recent Commits

sunshine 2003-06-22 22:38

Eric Sunshine removed the unused, obsolete, and deprecated top-level <name>
node from the .csplugin files.

0 lines of code changed in:

sunshine 2003-06-05 15:45

Eric Sunshine performed Phase Three of the elimination of the monolithic
scf.cfg:

-*- Eliminated the SCF information which was hardcoded in the .cpp files
of plugin modules, and which duplicated information in the external
.csplugin files.

-*- Plugin modules no longer maintain and export a monolithic class list.
Now, each factory implemented by the code is exported automatically.

-*- Added a new <implementation> child node to the <class> node in
.csplugin files. The value of this node is the name of the C++ class
which implements the SCF class. For instance, C++ class csVFS
implements crystalspace.kernel.vfs.

-*- Eliminated the following SCF macros which were related to exporting
SCF information from .cpp code and/or registering classes manually:

SCF_EXPORT_CLASS_TABLE
SCF_EXPORT_CLASS
SCF_EXPORT_CLASS_DEP
SCF_EXPORT_CLASS_TABLE_END
SCF_REGISTER_STATIC_CLASS_DEP

-*- Eliminated the following methods from iSCF:

RegisterStaticClass
RegisterClassList

-*- Plugin modules are now initialized/shutdown lazily as classes are
requested from them. The first time a class is requested, the plugin
is initialized. The plugin is shutdown after the last class instance
has been destroyed.

-*- Fixed bug in scf.h where SCF_PRINT_CALL_ADDRESS was not being enabled
for gcc 3.x.

-*- Fixed bug in win32.jam where GenerateExportDefs rule failed to ensure
that directory containing output file existed before creating file.
Also fixed bug where it failed to set up a dependency between the
input and output files.

-*- Still To-Do:

- Remove references to scf.cfg and scfreg from documentation. Also
document new .csplugin resources.

- Add platform-specific function to scan and locate plugins
automatically rather than using the ad-hoc approach inherited from
scanning for .scf files.

- Add platform-specific function to query a plugin's meta-information.
This should be used by SCF to do the raw extraction. Provide and
finalize API for higher-level clients to access meta-information.

- Augment static linking to work with the new facility. (Removal of
the hardcoded SCF information, has now broken static linking. It
worked until this time, even with all of the preceding changes.)

1 lines of code changed in:

jorrit 2003-05-29 08:06

Replaced NULL with 0.

25 lines of code changed in:

sunshine 2003-05-26 09:49

Eric Sunshine performed Phase One of the elimination of the monolithic
scf.cfg:

-*- Plugin modules are now self-describing. This information can be
queried at run-time without having to actually load the module.

-*- The plugin maintainer now manages the plugin's meta-information in an
external .csplugin file, rather than hard-coding the information into
the plugin's source code. The mechanism by which the meta-information
is bound to the plugin is platform-dependent. Presently, all
platforms simply lay down the meta-information in a plain text file
alongside the plugin itself; with the same basename and extension
.csplugin. This may change in the future. For example, on MacOS/X,
the meta-information will probably be encapsulated within the plugin's
bundle wrapper.

-*- Plugin meta-information is now maintained in XML format. Here is an
example:

<?xml version="1.0"?>
<!-- gl3d.csplugin -->
<plugin>
<name>gl3d</name>
<scf>
<classes>
<class>
<name>crystalspace.graphics3d.opengl</name>
<description>OpenGL 3D graphics driver</description>
<requires>
<class>crystalspace.font.server.</class>
</requires>
</class>
</classes>
</scf>
</plugin>

-*- Since meta-information is now extensible, maintainers can choose to
publish supplementary information about plugins (in addition to the
SCF information already published). For example, image loading
plugins could publish "image indendification" information which would
allow the image loading multiplexor to selectively request image
loading plugins on-demand, rather than requesting all plugins
unconditionally, even if they are not needed. Here is an example of a
possible meta-information table for the PNG loader:

<?xml version="1.0"?>
<!-- cspngimg.csplugin -->
<plugin>
<name>cspngimg</name>
<scf>...</scf>
<imageloader>
<imagetype>
<class>crystalspace.graphic.image.io.png</class>
<identify>
<mimetype>image/png</mimetype>
<extension>png</extension>
<extension>PNG</extension>
<scan length="4" bytes="\0x89PNG"/>
</identify>
</imagetype>
</imageloader>
</plugin>

In this example, the PNG loader meta-information tells the multiplexor
several different ways to identify a PNG image: by checking file
extension, if available; by checking MIME type, if available; by
checking for the magic-string "\0x89PNG" in the raw image data. If
the multiplexor identifies the image as PNG, only then will it
actually request the PNG loader.

-*- Added the --meta-file directive to msvcgen.pl to allow specification
of the meta-information file for a module. The value of this option
is interpolated into template files via the new %metafile% variable.
msvcgen.mak now utilizes this flag with the value of the new
INC.PROJECT makefile variable. Augmented the MSVC6 and MSVC7 plugin
template files (plugin.tpl) to make use of %metafile%.

-*- Changed the file extension for plugins on MacOS/X from .csplugin to
.csbundle to avoid conflict with new meta-information resource which
uses the extension .csplugin.

-*- Still To-Do:

- Augment SCF to utilize the new meta-information resources, and to
understand the new XML format. Presently, these resources are
ignored at run-time.

- Add platform-specific function to scan and locate plugins
automatically, rather than relying upon a monolithic registry such
as scf.cfg.

- Add platform-specific function to query a plugin's meta-information.

- Eliminate the monolithic scf.cfg.

- Augment static linking to work with the new facility.

- Eliminate the hard-coded SCF registration information in each
plugin's source code.

15 lines of code changed in:

philwyett 2003-05-10 02:20

- Philip Wyett eliminated the 88 double to float conversion compiler
warnings in gtreeldr.cpp under MSVC 6.

68 lines of code changed in:

thebolt00 2003-05-05 17:13

* Fixed compilationerrors in MSVC 7.1

1 lines of code changed in:

sunshine 2003-04-27 11:33

Eric Sunshine made the following changes:

-*- Modified configure.ac so that it emits a SRCDIR property to
config.mak. This value represents the --srcdir argument given to the
configure script (or "." if --srcdir is omitted). This points at the
directory containing the CS source code (which may differ from the
build directory, which is typically the current working directory).

-*- Modified makefiles and build scripts throughout the project so that
they respect $(SRCDIR). This allows the project to be built in a
directory other than the source directory, thus it is possible to
place the source directory on a readonly filesystem (such as a
CD-ROM), or to share a single NFS-mounted source directory among
different builds, where each build inhabits its own directory. For
example, if CS resides at /home/CS and you wish to build the project
in /home/build:

% cd /home/build
% ../CS/configure
% make -k all
% make install

(Note that the Jam-base build system already supports this build
paradigm.)

-*- Modified configure.ac so that it emits EXTENSIVE_MEMDEBUG to
config.mak since this variable is used by Makefile.in for the
`showconfig' target.

-*- Modified configure.ac so that it emits MONITOR_MAKEFILE_CACHE when the
value is either "yes" or "no", instead of emitting it only when the
value is "yes". This was necessary because CS/mk/cache.mak prints the
value of this variable as part of $(SYSMODIFIER).

3 lines of code changed in:

matzebraun 2003-04-08 20:19

added the Jamfiles

9 lines of code changed in:

ab031ns 2002-12-23 22:26

Renamed/corrected header defines to CS coding-style.

3 lines of code changed in:

sunshine 2002-10-01 11:16

Eliminated a slew of compilation warnings throughout the project.

1 lines of code changed in:

jorrit 2002-09-19 10:45

Completely removed support for the old format from CS. All is XML
now. The csParser class has also been removed from csutil
library and is now in cs2xml tool only.

0 lines of code changed in:

jorrit 2002-09-18 10:55

Fixed several memory leaks in CS introduced by the new
csPtr(csRef) constructor added yesterday.

0 lines of code changed in:

jorrit 2002-09-11 16:03

- Further csPtr/csRef cleanups by removing the cast operator.
- Fixed the void return test in csPtr a bit. Also made it
binary compatible.
- Fixed handling of dynamic lights (CreateDynLight()) in the engine.
The engine now also keeps a reference as it should.

13 lines of code changed in:

jorrit 2002-09-10 14:34

Replaced csPtr<iBla> (NULL) with NULL everywhere since that is
cleaner and works just as well.

4 lines of code changed in:

jorrit 2002-09-10 09:40

- iLoaderPlugin and iBinaryLoaderPlugin->Parse() now return a
csPtr.
- iThingEnvironment->CreateBezierTemplate() and CreatePolyTxtPlane()
now return a csPtr and IncRef() the returned pointer (which
they didn't do in the past).

10 lines of code changed in:

jorrit 2002-09-06 09:31

- Changed iMeshObjectFactory->NewInstance() to return a csPtr.
- Changed iMeshObjectType->NewFactory() to return a csPtr.
- Fixed a bug in walktest (SetConfigOption) with missing
curly braces.
- Eliminated a lot of DecRef()'s in walktest by using
csRef.

1 lines of code changed in:

jorrit 2002-08-29 13:01

- Added csPtr class. This is a simple encapsulator of normal
pointers. The only place where this should be used is when
you have a function that returns a pointer to an already
IncRef()'ed object. When csPtr's are assigned to normal pointers
you are then responsible for doing DecRef() yourselves later (which
corresponds to old API usage). When csPtr's are assigned to
csRef's, it behaves like Take(). In that case the csRef inherits
the reference and will clean it up later.
- Changed iVFS->FindFiles() to return csPtr instead of csRef.
This makes this function again API compatible.
- Changed SCF_QUERY_INTERFACE, SCF_QUERY_INTERFACE_FAST,
CS_QUERY_REGISTRY, CS_QUERY_REGISTRY_TAG,
CS_QUERY_REGISTRY_TAG_INTERFACE, CS_LOAD_PLUGIN,
CS_LOAD_PLUGIN_ALWAYS, CS_QUERY_PLUGIN_CLASS, CS_GET_CHILD_OBJECT,
CS_GET_NAMED_CHILD_OBJECT, and CS_GET_FIRST_NAMED_CHILD_OBJECT
to return csPtr. This means that you no longer have to use Take()
to put the returns of these values into a csRef.
- Removed csRef::Take(). There are still some cases where the
functionality of Take() is needed. In that case use csPtr to
first wrap your pointer and then assign that to the csRef.
For example. Old code:
csRef<iBla> bla;
bla.Take (new csBla());
New code:
csRef<iBla> bla (csPtr<iBla> (new csBla()));
- Changed iVFS->Open(), iVFS->ReadFile(), iVFS->ExpandPath(), and
iVFS->GetRealPath() to return csPtr. This means that VFS is now
fully csRef clean.

2 lines of code changed in:

jorrit 2002-08-20 15:07

- Added new ParseBox() in syntax services (for XML).
- Implemented XML version of the gtreeldr.
- Implemented XML version of the gmeshldr.
- Implemented XML version of the meta ball loader.
- Implemented XML version of the emit loader.
- Implemented XML version of the fountain loader.
- Implemented XML version of the snow loader.
- Implemented XML version of the fire loader.
- In most of those loaders the error handling is also better now (in
some it was simply non-existant before conversion).
- In addition I made the error handling a little bit cleaner by
using csRef smart pointers.
- Implemented proper conversion of PRIORITY in cs2xml.
- Implemented proper conversion of PLUGIN in cs2xml.
- Fixed a bug in XML parsing of render priorities in main loader.
- Cs2xml will remove underscores in tokens now. This fixes a lot
of loader issues.
- Cs2xml correctly converts NUM(x,y) for genmesh.
- Cs2xml correctly converts VERTICES for spr2d and genmesh.
- Cs2xml correctly converts UV for polygons and spr2d.
- Cs2xml correctly converts TRIANGLES in genmesh.
- Cs2xml correctly converts F inside ACTION for 3d sprites.
- Cs2xml correctly converts EMITBOX, EMITFIXED, AGING,
and RECTPARTICLES (emit particle system).
- Cs2Xml correctly converts DROPSIZE, BOX and ORIGINBOX.
- Fixed a bug in cs2xml with converting of old style lights.
- Cs2Xml will now translate POLYGON to 'p' and work correctly
in case 'P' is used.
- Fixed a bug in the bezier loader addon.
- Cs2Xml correctly converts KEY.
- Cs2Xml correctly converts RADIUS.
- Fixed a bug in cs2xml where it would not properly recognize strings
if they have no quotes.
- Cs2Xml correctly converts COLORS for spr2d.
- Cs2Xml correctly converts W for warp.
- Fixed a few bugs in the syntax services for parsing of polygons.
- Cs2Xml correctly converts FOG.
- Cs2Xml correctly converts HALO.
- Cs2Xml correctly converts CURVECONTROL and CURVECENTER.
- These changes are sufficient to fully convert /data/flarge/world
to XML. Consequently I also commited the XML version of 'world'.
Note that ONLY stuff that is used in flarge is guaranteed to
work. Nothing else has been tested and some mesh object plugins
are not even converted. This is true both for cs2xml and for
the XML loading itself. The XML loader seems a little bit slower
compared to the old lower although the difference isn't much.
There is still a lot of room for optimization though.

122 lines of code changed in:

jorrit 2002-08-13 15:25

Did the following renames:
iXmlSystem -> iDocumentSystem
iXmlNode -> iDocumentNode
iXmlAttribute -> iDocumentAttribute
iXmlDocument -> iDocument
iXmlAttributeIterator -> iDocumentAttributeIterator
iXmlNodeIterator -> iDocumentNodeIterator

1 lines of code changed in:

jorrit 2002-08-08 15:17

- Extended iLoaderPlugin with a new version of Parse() that accepts
an iXmlNode instead of a string. This new version is not yet used.
Put empty implementations of this Parse() in all mesh loaders. This
function will provide the upgrade path to the new XML format. Once
the upgrade is complete the old version will be removed.
- Internally extended the main loader plugin with new functions to
parse from iXmlNode instead of char*. All these new functions are
still empty and will be gradually implemented.
- Extended iSyntaxService with new functions that load from XML
data instead of char* data. Some of these functions are actually
implemented and should work. This is untested though.
- Added a few functions to iXmlNode and also changed the names
which refered to 'children' so that they now specify 'nodes'.
You can now access nodes by type and attributes by name more
easily.
- Also added conveniance functions to iXmlAttribute to set values
as int and float.

7 lines of code changed in:

(17 more)


Generated by StatCvs v0.2-dev