+============+ | TO BE DONE | +============+ A tasks and bugs are now being tracked by sourceforge. Please goto: http://sourceforge.net/projects/plib/ * Have a look into known_bugs and fix them. * Lines in ASCII files are terminated... With '\n' under UNIX/Linux With '\r' under MacOS With BOTH under Windoze. Hence, UNIX/Linux does no conversions of either '\r' or '\n'. and MAC swaps '\r' and '\n' on input. and Windoze dumps '\r' if it follows a '\n'. This is a mess - so I'm changing all the ASCII I/O code to allow either or both '\n' or '\r' and I'm reading the ASCII files in BINARY mode. * Array deletion requires '[]' after 'delete' on Mac. * Some of the MSVC-project files for plib_examples seem to be broken, for example some miss a "winmm.lib". * Check whether the new ssgStripify works with TuxKart See Steves post from 11.12.2000 15:12 for a problem description The abbreviation NIV14 means not in Version 1.4. Bugs: ===== - When creating fgfsTux, sometimes .ac, .dxf, .ase and .obj saved zero objects, although there were objects. For example, PLIB created this .ac file: ----------- snip ------------ AC3Db OBJECT world kids 0 OBJECT group kids 0 ----------- snip ------------ This seems to happen after ssgFlatten. - WK: Create a sphere in ppe. Save it as .ASE. See that values like diffuse colour are cr*p. Try to load it. It crashes. This could be one or - probably - two bugs. I don't think this is a ppe problem. The loader complains that number of faces is -2. The problem seems to be the writer. *new remark*: About the diffuse values: I think it has to do with colour material, a loader (.ASE?) loading colours into a colour list and writing colours from the ssgSimpleState where they are undefined. I think the same bug is in .AC - WK: I have a crash in ssgFlatten if I load .ac files with unused materials (not reproducable?) - Loading and saving lines in .OBJ doesn't work. Maybe NIV14. - Sam wrote: Has anyone here debugged with plib under Windoze 2000 and MSVC++? I get a whole bunch of "Free Heap block modifed after it was free" warnings with the ssgFlatten and ssgStripify. I'll try and hunt this one down. ... I think it may be because I'm using MFC which (if I remember correctly) enables a bunch more memory checks. Also I'm doing #ifdef _WIN32 #ifdef _DEBUG #define new DEBUG_NEW #endif #endif - Not all loaders use ssgLoaderOptions::begin. Don't all have to? - Search for todo, fix, fixme, kludge. Misc: ===== - Look whether scaling works. [see current discussion] If not and if we can't/don't want to make it work, for example because of performance issues we need a warning in the docs and IMHO PLIB should "write out" a warning if an unallowed matrix is sent to it. Update: Scaling does not work (intentionally). Uniform scaling may be enabled by uncommenting "radius *= sgLengthVec3(m[0])" in sgSphere::orthoXform. It is currently disabled because that extra calculation would degrade performance on non-scaled matrices. - Reduce lint warnings. Lint is an error checking tool that gives warnings where things *could be* wrong as opposed to the compiler that tells you where they are wrong. - It would be great if we had one or even two working native .ssg file formats. Currently (16.12.2001) the format work most of the time, but not all entities are implemented. - We should write the GetWrapU/GetWrapV function, since loading /writing .ssg files can't work 100% without it. - When saving, there is often a warning that "ref count doesn't tally with parent count" - Go through the mailing list for unfinished business. - Someone, preferably a native english speaker with ssg-knowledge, should go through the new ssg-doc and fix any mistakes. It should be fairly complete by now. - Add Per's new Formats to the doc? - For the other parts of plib, people should bring the doc up to date. - There is a bug in the 3Dfx driver for Linux (tdfx_dri-4.0.1-1) that causes the "complex" example program to crash in "fxSetupBlend". This is fixed in more recent DRI snapshots (requires kernel 2.4.x). Probably after 1.4.0: ===================== - In fgfsTux, not a large object, you get a DList overflow with the standard values for its size. Can we make its size dynamic? - Look at handling of normals. For example, loaders, stripify etc should only recalculate missing normals. Have *one* function that recalculates normals. It would be nice if people would volunteer for tasks.