Module CS/plugins/perfstat/

back to main page

Summary Period: 2000-08-07 to 2003-06-22

Modules

[root]/CS/plugins/perfstat

Lines Of Code


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

Authors

Author Changes Lines of code Lines per change
Totals 83 (100.0%) 1349 (100.0%) 16.2
samuel 5 (6.0%) 879 (65.2%) 175.8
sunshine 26 (31.3%) 189 (14.0%) 7.2
jorrit 23 (27.7%) 176 (13.0%) 7.6
andyz 7 (8.4%) 62 (4.6%) 8.8
philwyett 10 (12.0%) 22 (1.6%) 2.2
matzebraun 4 (4.8%) 12 (0.9%) 3.0
wouter 3 (3.6%) 3 (0.2%) 1.0
thieber 1 (1.2%) 3 (0.2%) 3.0
norman 2 (2.4%) 2 (0.1%) 1.0
mgeisse 2 (2.4%) 1 (0.1%) 0.5

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.

19 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:

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:22

added the Jamfiles

9 lines of code changed in:

matzebraun 2003-04-02 02:17

Removed the csSome, csConstSome and uint datatypes.

2 lines of code changed in:

jorrit 2002-09-11 16:32

Rest of commit.

6 lines of code changed in:

matzebraun 2002-09-02 14:49

removed CSSYSDEF_PROVIDE_PATH from cssysdef.h, the APPEND_SLASH macro has been removed and the MAXPATHLEN and PATH_SEPARATOR has been moved to the platform specific files and enabled by default

0 lines of code changed in:

sunshine 2002-08-07 13:25

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:

philwyett 2002-03-10 01:08

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:

philwyett 2002-03-10 00:41

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:

jorrit 2002-01-18 11:47

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 :-)

19 lines of code changed in:

matzebraun 2001-12-27 17:20

fix for perfstat

1 lines of code changed in:

jorrit 2001-12-27 15:50

- Fixed a bug in software renderer and engine plugins. They were
not unregistering their event handlers at destruction time.
Also the event handlers are no longer embedded interfaces since
that prevents proper cleanup (i.e. problem with circular refs).
- Did the same to various other plugins (aws, sequencer, iso engine,
canvases, renderers, ...).
- Removed the reference to the plugin manager from the OpenGL and
perfstats plugins. This is also a circular reference.

28 lines of code changed in:

jorrit 2001-10-17 14:51

- Did a fundamental change to CS_QUERY_REGISTRY and
CS_QUERY_REGISTRY_TAG. These macros are now guaranteed to
increase the reference count of the returned object. In the
past they didn't.
- Fixed a bad bug in csObjectRegistry::Unregister(). It would
only delete the 'registry' vector and not the 'tags' vector.
Why this bug only presented itself now I don't know.
- At this moment my changes cause big leaks in SCF at exit. I have
not yet been able to find out why.

8 lines of code changed in:

jorrit 2001-10-12 12:54

- Fixed a bug in AWS where it would try to load something
from VFS ONLY if VFS could NOT be loaded. I think it should
be the opposite rather :-)
- Avoided nearly all usage of CS_QUERY_PLUGIN and CS_QUERY_PLUGIN_ID
in CS. The reason CS_QUERY_PLUGIN is bad is that it queries the
plugin manager based on interface but there is no way to control
which plugin it will return if there happen to be more plugins
that implement the same interface. The reason CS_QUERY_PLUGIN_ID is
bad is that we want to remove the FUNCID's that are now used in
the plugin manager. The object registry is designed to replace
the need for FUNCID's.
Most CS_QUERY_PLUGIN and CS_QUERY_PLUGIN_ID calls have been replaced
with CS_QUERY_REGISTRY. Keep in mind that CS_QUERY_PLUGIN increases
the reference count of the returned plugin while CS_QUERY_REGISTRY
doesn't! So take care of those IncRef()/DecRef() calls.
Note that at this moment CS_QUERY_PLUGIN and CS_QUERY_PLUGIN_ID
cannot yet be removed because it is still needed in some specific
cases and also to initialize the object registry itself. However,
this is due to change soon when csPluginLoader will become
responsible for registring loaded plugins with the right tag to
the object registry.
- Modified csPluginLoader so it registers all loaded plugins with
the object registry. Note that all plugins will be registered
with the NULL tag which is not good but a temporary solution until
we have a more clever way to find out which tag to use from within
csPluginLoader. This means that all plugins loaded by
csInitializer::RequestPlugins() will be registered (as it uses
csPluginLoader).
Note! If you manually load plugins using CS_LOAD_PLUGIN after
csInitializer::RequestPlugins() then these will not automatically be
registered. If you want to do that (which can be important for
some of the standard plugins like iGraphics3D, iConsoleOutput, ...)
then you must register them manually.

2 lines of code changed in:

jorrit 2001-10-11 09:57

- Moved the plugin manager implementation out of the system driver
into csPluginManager (in csutil/plugmgr.h). Modified
csInitializer::CreatePluginManager() to create an instance
of csPluginManager.
- Created a new class csPluginLoader (in csutil/plugldr.h) which
will take the requested plugins, the config file, and the
commandline and try to load all plugins it can find there. This
functionality used to be in the system driver.
csInitializer::RequestPlugins() now uses this class.
- The two above changes mean that the csSystemDriver is now
completely empty. It cannot yet be removed because some subclasses
of csSystemDriver (system specific subclasses) contain some
code.
- Moved isys/vfs.h and isys/plugin.h to iutil.

3 lines of code changed in:

jorrit 2001-10-10 15:29

- Added cssys/sysfunc.h which contains the declarations of the
global system dependent functions like csSleep(), csGetTicks(),
csPrintf(), and csGetInstallPath().
- Removed the unneeded includes from cssys/system.h and cssys/sysdriv.h
from most of CS.
- Slightly updated the simple.txi tutorial. Work in progress though.

1 lines of code changed in:

jorrit 2001-10-09 11:29

- Removed iSystem::GetObjectRegistry().
- The object registry is now a parameter to the system driver and
is no longer created by the system driver itself. Instead
csInitializer::CreateObjectRegistry() will now create the object
registry.
- Moved the cleanup of the object registry to
csInitializer::DestroyApplication(). Also moved the cleanup of
SCF to there.
- Added Clear() to the iObjectRegistry interface.
- Several system drivers performed some special code right before
NextFrame() was being handled (Win32, BeOS, ...). This special
code has now moved to an event handler in the system driver instead.
The system driver will now listen to cscmdPreProcess and perform
the functionality that used to be in NextFrame().
- Removed NextFrame() from iSystem, csSystemDriver and all subclasses
of csSystemDriver (SysSystemDriver for all platforms). In case
you needed to explicitely call this function (in CS only CSWS did
this) then you can call iVirtualClock::Advance() followed by
iEventQueue::Process().
- csApp now calls Advance()/Process().
- The result of this is that the iSystem interface has become empty.
So it can finally be removed!!! In addition CS_GET_SYSTEM is now
also gone.
- Moved the virtual clock implementation in the system driver to
a seperate csVirtualClock in csutil. The system driver no longer
creates and manages the virtual clock. The already existing
csInitializer::CreateVirtualClock() will now create and register
the virtual clock.

0 lines of code changed in:

(39 more)


Generated by StatCvs v0.2-dev