Summary Period: 2001-04-22 to 2003-06-22
[root]/CS/plugins/video/loader/gif

Total Lines Of Code: 
630 (2003-07-11 20:29)
| Author | Changes | Lines of code | Lines per change | 
|---|---|---|---|
| Totals | 48 (100.0%) | 790 (100.0%) | 16.4 | 
| norman | 4 (8.3%) | 587 (74.3%) | 146.7 | 
| jorrit | 14 (29.2%) | 56 (7.1%) | 4.0 | 
| sunshine | 14 (29.2%) | 54 (6.8%) | 3.8 | 
| res2002 | 4 (8.3%) | 36 (4.6%) | 9.0 | 
| matzebraun | 3 (6.3%) | 31 (3.9%) | 10.3 | 
| philwyett | 8 (16.7%) | 23 (2.9%) | 2.8 | 
| ab031ns | 1 (2.1%) | 3 (0.4%) | 3.0 | 
Eric Sunshine removed the unused, obsolete, and deprecated top-level <name>
node from the .csplugin files.
    
0 lines of code changed in:
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:
Replaced NULL with 0.
14 lines of code changed in:
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:
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:
added the Jamfiles
10 lines of code changed in:
Eric Sunshine re-implemented the "imgplexall" makefile target the proper
way: modularly, rather than monolithically.
    
1 lines of code changed in:
Renamed/corrected header defines to CS coding-style.
3 lines of code changed in:
Replaced csPtr<iBla> (NULL) with NULL everywhere since that is
cleaner and works just as well.
    
3 lines of code changed in:
iImageIO->Save() to csPtr.
6 lines of code changed in:
- Changed all config related Enumerate() calls to return csPtr.
- Changed iImageIO->Load() to return csPtr.
    
4 lines of code changed in:
- changed some more clean targets to be same name as the build
  targets
    
5 lines of code changed in:
Eric Sunshine (hopefully) worked around a problem caused by buggy stat()
on Win9x and WinME where a bogus result is returned if the path has a
trailing slash.  This causes problems with the makefile dependency rules
which depend upon $(OUTBASE), $(OUTOS), $(OUTPROC), or $(OUT), all of
which end with a slash, since make thinks that those directories don't
exist even when they are present.  Consequently, make tries invoking
$(MKDIR) on already-present directories.  The work-around was to redefine
these variable so without the trailing slash.  Also updated all makefiles
throughout the project to take into account that these variables are no
longer defined with a trailing slash.
    
6 lines of code changed in:
- changed the make targets of all applications
  to the name of the resulting binary the way
  Eric Sunshine suggested. e.g. 'walk' became
  'walktest'.
- did the same for all plugins.
- in some cases, the MSVC project differed from
  the name for all other platforms, changed those.
- flipped the order of the include directories for
  MSVC resource compiler so the right 'volatile.h'
  is used.
- added include dirs for resource compiler to msvc7
  projects.
    
23 lines of code changed in:
Silenced compiler warnings.
10 lines of code changed in:
- added support for image output options.
  currently supported by png ang jpg plugins.
  options are a comma-separated list and can be either
  'option' or 'option=value'.
  supported options:
    compress=# - image compression, 0..100 higher values give smaller files,
      but take longer to encode or give uglier results.
    progressive - progressive(jpg)/interlaced(png) output.
    examples:
       compress=50
       progressive,compress=30
- updated gfxtest to support this feature.
    
8 lines of code changed in:
ARGH - Major revert. What was I thinking?
I am blaming jetlag. Thats my story and I'm sticking too it. :)
    
1 lines of code changed in:
Fixed all the warnings caused by changes to:
CS_IMPLEMENT_APPLICATION and CS_IMPLEMENT_PLUGIN
Nothing thrilling, but some of the changes are blind into other ports so
be warned if you get the odd compiler warning or error.
Also changed lib name which msvc will use for new divx for plugin to
eliminate conflicts.
    
1 lines of code changed in:
Slight code cleanup: removed all trailing spaces and tabs from
all lines in all source and make files throughout the entire project.
Note that this will most likely not result in a significant
FPS increase :-)
    
18 lines of code changed in:
        - fixed SCF_DEBUG to work correctly with embeded interfaces
        - fixed some compiler warnings
        - fixed definition of int32 and uint32 should be long not int
        - removed the type UByte,SByte, UShort,SShort, ULong,SLong, UInt,
          SInt, uchar, ushort and ulong and substituted code with the
          corresponding intxx types.
    
21 lines of code changed in:
(13 more)

Generated by StatCvs v0.2-dev