User statistics for andyz

back to main page

Summary Period: 2000-01-10 to 2002-01-16

Total Changes

2169 (3.8%)

Lines Of Code

49524 (2.4%)

Modules

Directory Changes Lines of code Lines per change
Totals 2169 (100.0%) 49524 (100.0%) 22.8
CS/libs/csws/ 241 (11.1%) 8047 (16.2%) 33.3
CS/plugins/video/renderer/software/ 217 (10.0%) 7826 (15.8%) 36.0
CS/include/csws/ 156 (7.2%) 3188 (6.4%) 20.4
CS/include/ 138 (6.4%) 2377 (4.8%) 17.2
CS/plugins/filesys/vfs/ 9 (0.4%) 2109 (4.3%) 234.3
CS/plugins/video/renderer/null/ 29 (1.3%) 1911 (3.9%) 65.8
CS/plugins/font/server/csfont/ 23 (1.1%) 1810 (3.7%) 78.6
CS/include/csengine/ 97 (4.5%) 1515 (3.1%) 15.6
CS/plugins/video/renderer/opengl/ 84 (3.9%) 1328 (2.7%) 15.8
CS/plugins/video/canvas/openglcommon/ 28 (1.3%) 1266 (2.6%) 45.2
CS/include/cssys/ 34 (1.6%) 1069 (2.2%) 31.4
CS/libs/csgeom/ 30 (1.4%) 1045 (2.1%) 34.8
CS/libs/cssys/ 52 (2.4%) 1019 (2.1%) 19.5
CS/libs/cssys/win32/ 68 (3.1%) 990 (2.0%) 14.5
CS/libs/cssys/general/ 11 (0.5%) 977 (2.0%) 88.8
CS/include/csutil/ 50 (2.3%) 974 (2.0%) 19.4
CS/libs/csengine/ 74 (3.4%) 968 (2.0%) 13.0
CS/apps/tests/g2dtest/ 6 (0.3%) 955 (1.9%) 159.1
CS/libs/csws/skins/default/ 16 (0.7%) 847 (1.7%) 52.9
CS/plugins/video/renderer/common/ 35 (1.6%) 738 (1.5%) 21.0
CS/apps/cswstest/ 22 (1.0%) 680 (1.4%) 30.9
CS/apps/tests/gfxtst/ 9 (0.4%) 672 (1.4%) 74.6
CS/plugins/video/canvas/common/ 55 (2.5%) 668 (1.3%) 12.1
CS/plugins/video/canvas/ddraw/ 17 (0.8%) 569 (1.1%) 33.4
CS/libs/csutil/ 40 (1.8%) 527 (1.1%) 13.1
CS/libs/csengine/light/ 25 (1.2%) 516 (1.0%) 20.6
CS/include/csgeom/ 21 (1.0%) 450 (0.9%) 21.4
CS/ 78 (3.6%) 443 (0.9%) 5.6
CS/apps/walktest/ 55 (2.5%) 440 (0.9%) 8.0
CS/plugins/font/server/fontplex/ 5 (0.2%) 422 (0.9%) 84.4
CS/plugins/video/renderer/software/i386/ 44 (2.0%) 350 (0.7%) 7.9
CS/data/config/ 45 (2.1%) 331 (0.7%) 7.3
CS/plugins/video/canvas/openglx/ 28 (1.3%) 330 (0.7%) 11.7
CS/plugins/video/canvas/softx/ 26 (1.2%) 288 (0.6%) 11.0
CS/libs/csengine/objects/ 29 (1.3%) 250 (0.5%) 8.6
CS/docs/texinfo/libs/ 2 (0.1%) 188 (0.4%) 94.0
CS/libs/cssys/unix/ 61 (2.8%) 184 (0.4%) 3.0
CS/plugins/video/canvas/sdl/ 3 (0.1%) 177 (0.4%) 59.0
CS/docs/ 4 (0.2%) 148 (0.3%) 37.0
CS/bin/ 39 (1.8%) 130 (0.3%) 3.3
CS/mk/ 39 (1.8%) 127 (0.3%) 3.2
CS/plugins/cscript/cspython/ 3 (0.1%) 78 (0.2%) 26.0
CS/include/cssys/win32/ 6 (0.3%) 71 (0.1%) 11.8
CS/plugins/perfstat/ 7 (0.3%) 62 (0.1%) 8.8
CS/libs/csengine/basic/ 7 (0.3%) 62 (0.1%) 8.8
CS/plugins/video/canvas/svgalib/ 16 (0.7%) 52 (0.1%) 3.2
CS/plugins/sound/driver/waveoutsd/ 5 (0.2%) 52 (0.1%) 10.4
CS/plugins/video/canvas/asciiart/ 13 (0.6%) 44 (0.1%) 3.3
CS/plugins/engine/ 4 (0.2%) 42 (0.1%) 10.5
CS/libs/csws/skins/ 2 (0.1%) 40 (0.1%) 20.0
CS/plugins/video/canvas/xextf86vm/ 2 (0.1%) 35 (0.1%) 17.5
CS/apps/perftest/ 10 (0.5%) 23 (0.0%) 2.3
CS/plugins/video/canvas/openglwin/ 13 (0.6%) 22 (0.0%) 1.6
CS/include/cssys/unix/ 1 (0.0%) 18 (0.0%) 18.0
CS/scripts/ 1 (0.0%) 15 (0.0%) 15.0
CS/plugins/video/canvas/openglx/glide/ 4 (0.2%) 15 (0.0%) 3.7
CS/docs/texinfo/build/platform/ 2 (0.1%) 14 (0.0%) 7.0
CS/apps/pysimp/ 9 (0.4%) 11 (0.0%) 1.2
CS/plugins/sound/renderer/software/ 5 (0.2%) 6 (0.0%) 1.2
CS/plugins/video/loader/mplex/ 1 (0.0%) 5 (0.0%) 5.0
CS/docs/texinfo/apps/walktest/ 2 (0.1%) 4 (0.0%) 2.0
CS/plugins/video/canvas/ 1 (0.0%) 2 (0.0%) 2.0
CS/plugins/sound/driver/oss/ 1 (0.0%) 1 (0.0%) 1.0
CS/plugins/net/driver/socket/ 1 (0.0%) 1 (0.0%) 1.0
CS/plugins/sound/renderer/eax/ 1 (0.0%) 0 (0.0%) 0.0
CS/plugins/sound/renderer/ds3d/ 1 (0.0%) 0 (0.0%) 0.0
CS/data/ 6 (0.3%) 0 (0.0%) 0.0

Activity By Clock Time

Most Recent Commits

andyz 2002-01-16 12:34

An attempt to fix qsqrt() for gcc 3.0.3 and later.
If it causes qsqrt() to not work with gcc 2.95.2 and earlier, it should be
reverted back (although I don't believe the changes will break it with earlier
compilers).

2 lines of code changed in:

andyz 2002-01-10 14:10

Fixed the OS/2 port of CS. Also renamed the _control80x87 debugging function
to csControl80x87 to avoid conflicts with same name routine from emx libc.

3 lines of code changed in:

andyz 2001-09-10 12:38

Added *.exe, *.zip, *.txt and some other patterns to ignore list

9 lines of code changed in:

andyz 2001-08-29 14:49

Added "imgplexall" target which makes imgplex and all available graphics
format loaders.

5 lines of code changed in:

andyz 2001-08-29 14:30

Fixed csConfigAccess so that it won't crash when object_reg is NULL
in destructor (this can happen for example if you compiled imgplex
but didn't compile the individual GIF, BMP etc... loaders).

7 lines of code changed in:

andyz 2001-08-29 14:04

OS/2 port strikes back :-)
- fixed csdive plugin
- renamed xextf86vm plugin to xext86vm because OS/2 doesn't allow shared
libraries with basename length >8 :-(

43 lines of code changed in:

andyz 2001-01-31 11:27

My last commit.

-*- Now the toolbox toolbar tracks the active editor window (model or world)
and changes accordingly. I have drawn a few more icons for MazeD in GIMP,
and switched the toolbar texture format to truecolor PNG with alpha
channel. Now toolbar icons can have (and some already have)
semi-transparent parts :-)

-*- CSWS buttons with pictures are grayed (pictures are displayed
semi-transparent) when the buttons are disabled. Also they do not emmit
the cscmdRightButtonClick message when they are disabled (in MazeD this
was manifesting as second-level toolbars popping up even from disabled
buttons).

-*- Floating hints will disappear properly even if some window has captured
the focus (such as a dialog window). To do so they grab the mouse.

-*- Rewrote much of the csTreeCtrl (treeview) control. The basical interface
is very similar (except that I've renamed csTreeCtrl into csTreeBox);
most of the changes are related to the internal implementation.
Other features: a completely new look-and-feel; a extended, more flexible
and less cumbersome API (and a simpler implementation).
Also I have changed cswstest so that you can switch miscelaneous tree
control styles at runtime and see them in effect instantly (like for
notebook control).

-*- Made the csLayout class to set the CSS_TRANSPARENT flag (again?) since
otherwise the dialog background "under" the layout isn't drawn, and since
the layout itself does not paint anything, you get an hall-of-mirrors like
effect (when you move the window).

-*- Dialogs with no children will SuggestSize 8x8 rather than 2x2 like it
did before. This allows for better identification of windows with wrongly
set CSWS_TOOLBAR style bit set :-) (toolbar is a dialog too, so if you
wrongly set this bit when creating the window, you'll get just a couple
of thin black lines which are confusing, at least they were for me :-)

-*- Changed a little the behaviour of csComponent::NextChild() and PrevChild():
now it returns the next/previous *visible* and selectable child rather
than just selectable. This has the effect of not showing anymore the hidden
windows when closing a visible window (per Jorrit's request). However, if
there is nothing left than hidden window, a hidden window will be focused
anyway (but not shown).

-*- Changed a little listbox behaviour and look. No lightblue frame on the
focused item anymore; when listbox is active, the focused item is denoted
by a solid background, otherwise it is denoted with a thin frame of the
same color.

-*- Added a method csComponent::OtherToThis (csComponent, x&, y&) which will
convert coordinates from coordinate system of other component to this
component's coordinate system. This is faster than the using the
LocalToGlobal -> GlobalToLocal pair if the `from' component is a
child (or grandchild, or grandgrandchild etc) of `this' component.

-*- Made the toolbars resizeable in MazeD. By default toolbars are now four
buttons wide (rather than two like it was before), to reserve a little
space for coming "world tree" and "material selector" toolbars.

-*- Added a new kind of events: csevMouseClick. This is generated by mouse
event manager (AKA mouse driver) when it detects that the mouse button
has been pressed and then released within "DoubleClickTime" and the
mouse haven't been moved further than "DoubleClickDist". That is, when
you quickly press and release the mouse button twice in sequence, you
will generate the next events:

csevMouseDown
csevMouseUp
csevMouseClick (at the same time with MouseUp)
* This event is emmited only if the mouse haven't moved too far
* between MouseDown and MouseUp and the time between them haven't
* exceeded some threshold value.
csevMouseDown
csevMouseDoubleClick (at the same with MouseDown)
* This event is also generated if the same conditions are true.
csevMouseUp
csevMouseClick (at the same time with MouseUp)
* Yet another mouse click event, if the conditions are met.

You can notice a slight conceptual difference in Click and DoubleClick
because Click is generated after mouse is released, and DoubleClick is
generated when mouse is pressed. Well, this is so for historical reasons -
most GUIs uses mouse this way.

Also note that the behaviour of double clicks event has slightly changed:
now DoubleClick is emmited *in addition* to MouseDown rather than *instead*
like it was before. That is, you will *always* get all the MouseDown and
MouseUp events disregarding whenever click and doubleclick events have
occured; these events are additional and are introduced just to help the
programmer to track these conditions; in general he could do it himself
by using timer, remembering position etc.

This has a slight impact on some seldom-encountered code sequences: if
before to catch absolutely all mousedown events you had to catch both
MouseDown and MouseDoubleClick events, now you have to catch just
MouseDown and don't bother about MouseClick and MouseDoubleClick -
the event you are looking for will be always emmited. In fact, if you
will leave the code as before, you will intercept now two events instead
of one; while in most cases it doesn't matter, in some cases it can.

-*- Added a small context menu to every toolbar in MazeD.

-*- Started implementing world tree toolbar. Now it is one of the standard
toolbars. It displays in a tree fashion the structure of the 3D world.
At the "top" level there can be only sectors (AKA rooms), inside them
you can nest things and sprites (but not rooms).

2023 lines of code changed in:

andyz 2001-01-31 11:26

Fixed after somebody broke it:
- remove ?= from assignment to CSSYS.OBJ since GNU Make 3.77 doesn't expand
the text after such an assignment. That is, "CSSYS.OBJ ?= $(...)" is treated
literally, e.g. the text inside the brackets is not expanded. If someone
really needs ?=, use ifndef instead -- although I don't see any assignments
to CSSYS.OBJ, so I can't understand why somebody have put ?= there.
- Removed "dep: ..." after last line of "clean:" target - it seems like traces
of a CVS conflict introduced by someone in CVS.

2 lines of code changed in:

andyz 2001-01-10 10:20

Finally managed to write qsqrt() and qisqrt() correctly, so that both
binutils 2.9.1 and 2.9.5 can grok it.

4 lines of code changed in:

andyz 2001-01-09 13:20

-*- Started implementing "hints" at startup. Actually just wrote a number
of them in MazeD.zip::hints.cfg

-*- I decided to change a little the ideology of MazeD. The ex-"Draft View"
will be split now into two different kinds of windows: Model Editors and
World Editors. In Model Editor you will edit models (rooms, things, sprites)
and in the World Editor you will place them (without being able to change
the models itselves). mzDraftView component is the common ancestor now for
both mzModelEditor and mzWorldEditor components, and can draw the coordinate
axis and grid, nothing mode. The split between DraftView and ModelEditor
is finished.

-*- Created the mzWorldEditor window. It doesn't do much yet, but already has
basic functionality. As the world is loaded, the rooms are "centered" around
origin, and a respective mzModelInstance with the respective translation
transform is set up. This allow to edit every room as if it is located
in the origin, which is easier.

-*- Fixed a bug recently introduced by somebody. For software renderer
iTextureHandle::Prepare() did no remap_texture() which results in NULL
palette->global palette conversion table. This means you cannot use texture
after you do Prepare, but can if you do PrepareAllTextures(). Or
alternatively you can call Prepare() then SetGamma() :-) In short, a mess.

-*- Fixed a lot of bugs in fullscreen switching logic for all three X11 canvas
plug-ins (x2d, linex2d, glx2d):

- Moved all the code relevant to fullscreen switching to two files,
x2dfs.h and x2dfs.inc for easier maintainance. All three X11 plugins
include them from the relevant .h and .cpp files.

- Fixed a bug: when a fullscreen mode not matching current canvas size
is not available, the canvas may be cleared, which is not desirable.

- Bug: when current XFree86 videomode is the "best match" videomode for
the current canvas size, the canvas driver would hang (loop forever
in XWaitEvent).

- Bug: If videomode does not match canvas size, and canvas resizing is
allowed, the canvas size will be adjusted to match videomode. It
was supposed to work before but it didn't. If canvas resizing is not
allowed, the canvas is not resized, but centered instead.

- Bug: If an unexpected ConfigureNotify would arrive to our window,
canvas may be suddenly resized to an erroneous size. I've added a
check for ConfigureNotify to be related to our window.

-*- Re-implemented "model instances" in MazeD to allow arbitrary hierarchical
structures. For now the top level of the hierarchy can contain only rooms,
although this is not a MazeD limit, it is a engine limit. Each instance
has its move vector and space warp matrix, which are relative to parent
object. Moving/rotating parent object will move/rotate child objects as
well. Model instance position and warp are stored either as a MOVE(),
or a HARDMOVE() statement (for rooms and for instances that have the
"LockedPos" flag set). Alas, for now engine doesn't allow rooms at any
level other than top level, maybe it makes sense to remove this limitation.
For example, a castle (which would be a room) would contain a hall
(child room of castle) which contains something even smaller
(child of hall). Also for now we don't have sector templates, which
is bad again (if you duplicate a room multiple times, you'll get it
multiple times in output, although it could be avoided).

199 lines of code changed in:

andyz 2001-01-05 18:17

Added the asm() parameter that tells GCC that FPU registers and the EAX
CPU register are clobbered. This will force gcc to avoid keeping
intermediate or cached values in those registers across qsqrt
and qisqrt calls.

2 lines of code changed in:

andyz 2001-01-04 11:08

Fixed the disaster caused to VFS by one of Eric's changes.
CS_PLATFORM_NAME was not the strict name of platform like it should be,
but rather a free-form description of the platform, which is wrong.

9 lines of code changed in:

andyz 2001-01-03 14:24

A new fast sqrt() and 1/sqrt() implementation. Not used anywhere for now
(I'll leave this on Jorrit's behalf) but it has a big potential. Engine is
using 1/sqrt() in a lot of places, and computing 1/sqrt() in one go
is a big win. Plain sqrt() is about 31% faster (on PII and Celeron)
than FPU's FSQRT instruction, and 1/sqrt() is 38% faster than FSQRT
(dunno how fast than actually computing 1/sqrt(x) - division is quite
a slow operation, almost as slow as sqrt itself - 42 and 71 clocks
respectively).

187 lines of code changed in:

andyz 2001-01-03 12:35

fixed a warning

1 lines of code changed in:

andyz 2001-01-03 12:16

-*- A new QInt and QRound that will work on some big-endian CPUs as well.
-*- Fix to slow QRound so that it works correctly for negative numbers

25 lines of code changed in:

andyz 2001-01-03 11:50

-*- Enhanced a little software DrawPixmap for textures-with-alphamap, where
in 16 and 8 bpp modes alpha=0 still would lead to a changing background
a little.

-*- Added a nice logo to MazeD's About box.

-*- Fixed a few things here and there in MazeD.

66 lines of code changed in:

andyz 2000-12-19 10:13

-*- Fixed a error in inifile.cpp. The array allocated with new[] was
realloc()'ated. Now it is new/memcpy/delete'd.

-*- Fixed a minor memory leak in system driver. Event cords weren't deleted
at shutdown.

-*- Fixed a bad error in inifile.cpp triggered by [Macintosh] section in
vfs.cfg: the loader switches to base64 mode due to empty assignments like:

HOME =

(such lines are used to denote base64 keys) and then doesn't switch back
when it detects invalid base64 symbols. I changed the ini loader so that
it switches to base64 mode by '==' statement, e.g.:

HOME ==
ODAwMDAwMDAgd2hpbGUKICAgIHNoYXJlZCBs
aWJyYXJpZXMgdXN1YWxseSBoYXZlIGFkZHJl
c3NlcyBsaWtlIDB4NHh4eHh4eHgpLgo=
===
;/HOME

If you want to assign the '=' value to a key, insert a space, e.g:

HOME = =

is interpreted as a normal key, not the head of a base64 stream.
csIniFile::Save() inserts spaces automatically, thus a saved ini file
should read perfectly. Also if something other than newline follows the
second equal sign, it is also interpreted as a normal key.

-*- Fixed a few memory leaks in MazeD.

-*- Finished material manager dialog. Now it is functional, use Ctrl+m to
invoke it, model manager has moved to Ctrl+M. Fixed several bugs that
leads to MazeD crashes related to materials.

-*- Fixed a bad bug in common texture manager object (txtmgr.cpp): the
constructor did no CONSTRUCT_IBASE.

-*- I have enhanced the memory debugger so that on Linux and OS/2 it is able
to debug malloc/realloc/free's as well as new's and delete's. There is a
drawback on Linux though: it will intercept all malloc/free's from all
dynamic libraries (even from libX11.so) thus you will see a lot of memory
leaks belonging to other libraries (notably libc and libX11). You can
filter them by address (in Linux program address is > 0x80000000 while
shared libraries usually have addresses like 0x4xxxxxxx). If you want
to debug memory leaks in plug-ins, build executable in static link mode.

-*- Fixed a memory leak in csfont plug-in.

-*- By the way, Crystal Space currently consists of about 350.000 lines
of code :-)

-*- Rearrangement of some aspects of the texture manager to simplify interface
API for textures and materials. Previously you had to call texture manager's
RegisterXXX (where XXX is Texture or Material) then you had to call
PrepareXXX to force texture manager recompute the internal representation
of the texture/material; when you are done you had to call UnregisterXXX.
Now it works a little different: by calling RegisterXXX you create a new
texture/material handle, and further you work only with that handle:
call handle->Prepare() to prepare texture or material for usage; call
handle->DecRef() enough times to destroy the handle (you don't have to
call UnregisterXXX anymore).

I have fixed all the 3D renderers for this, however I'm not sure about
Direct3D and Glide renderers (haven't compiled them). All others are
fully functional.

You can still call PrepareTextures() and PrepareMaterials() on texture
manager object to call Prepare on all objects at once.

-*- Renamed csTextureMMSoftware into csSoftwareTextureHandle and csTextureMM
into csTextureHandle for cleaner names.

-*- Before closing the system (System::Close) the engine will free all texture
and material handles since after closing the graphics driver the handles
become invalid no matter whenever we did IncRef or not.

-*- Implemented alpha textures support for DrawPolygon, DrawPFX and DrawPixmap
in OpenGL renderer.

-*- Re-worked OpenGL texture cache. Texture unloading happens now in a
centralized routine, which minimizes the effort required to fix any
bugs in it (one of which was causing SIGSEGV on exit).

715 lines of code changed in:

andyz 2000-12-01 08:04

Tried to fix OpenGL library problems. LIBS.OPENGL.SYSTEM is now the
correct variable to define the system libraries for OpenGL support.
For example (in system makefile or in config.mak):
LIBS.OPENGL.SYSTEM=-L/usr/local/include/MesaGL -lMesaGL

7 lines of code changed in:

andyz 2000-11-27 09:59

Fixed the tiny font after my last changes to csfont server

256 lines of code changed in:

andyz 2000-11-27 08:41

-*- Removed all inline assembly code (GAS and MSVC): both were broken
(GAS because of gcc 2.95.2 and MSVC because it was unmaintained).
The only working assembly code now is NASM code. We should think of
a way to make NASM assembly available to MSVC users.

-*- Removed outdated drline.h file (which wasn't used anyway). Line drawing
should be very accurate; I doubt this assembly routine is as accurate
as the C version is (and I'm not sure it is faster).

-*- Removed outdated m68k assembly code; I doubt it was in a working state.

-*- VERY nice hack borrowed from FreeType OS/2-specific source code: now all
OS/2 executables are compiled as console executable (rather than GUI
executables); the canvases that need GUI (such as csdive or OpenGL) will
call System->SystemExtension ("StartGUI") and the executable will be
re-qualified (at runtime!) as a GUI executable. This is simply VERY VERY
nice for debugging since it allows to use normal console for debugging now
(like in X11). Also it allows for autodetection of canvas - if the program
is launched in full screen, the MGL driver is used; if it is launched
from a GUI console, the GUI canvas is used. Also this means that ASCIIART
canvas (and any other non-GUI canvas) can be used without any bother.

-*- Fixed a bug in freetype font server that caused sometimes characters
to be displayed out of character cell (shifted vertically too much).
It was caused by the incorrect (I believe) usage of the OS/2 TTF header.

-*- Rewrote from scratch the ttf2fnt converter. Now it is called csfgen,
it doesn't use the engine and unneeded plugins (it uses only VFS and
freetype plugins), uses normal command line interface (and getopt()).

-*- I have changed the format of .csf files (which are binary bitmap fonts),
so that they are easier to parse. Also I have changed the format of binary
fonts so that they are a lot smaller, esp. for proportional fonts - every
character is stored separately rather than using a fixed NxM grid. This is
also used for C++ format fonts. Also added ability to use a subset of the
entire character set; for example you can create fonts which contains
only characters 32-127, if you need only basic Latin character set.

-*- Further progress of Material Manager dialog in MazeD.

231 lines of code changed in:

(197 more)


Generated by StatCvs v0.2-dev