From: Eric S. <sun...@cv...> - 2000-02-13 09:48:06
|
Date: Sunday February 13, 2000 @ 1:45 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory cvs1.i.sourceforge.net:/tmp/cvs-serv8148/apps/pysimp Modified Files: pysimp.cpp pysimp.h Log Message: Added missing 'const' qualifiers. |
From: Andrew Z. <an...@cv...> - 2000-02-23 15:08:08
|
Date: Wednesday February 23, 2000 @ 7:04 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory cvs1.i.sourceforge.net:/tmp/cvs-serv20577/apps/pysimp Modified Files: pysimp.cpp Log Message: Rewritten texture manager and texture cache. Vastly improved software renderer. Lots of changes, too many to list them here. Will post a detailed message on the mailing list. |
From: Eric S. <sun...@sl...> - 2000-04-17 11:02:27
|
Date: Monday April 17, 2000 @ 3:55 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv25534/apps/pysimp Modified Files: pysimp.mak Log Message: Removed references to the obsolete csInput library from documentation and from makefiles (which were trying to link with ${CSINPUT.LIB}). |
From: Andrew Z. <an...@sl...> - 2000-04-17 12:39:37
|
Date: Monday April 17, 2000 @ 5:32 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv7270/apps/pysimp Modified Files: pysimp.mak Log Message: Upon Jorrit's request made "make depend" to always rebuild all dependencies. For the old way (e.g. build dependencies only for those .cpp files that are newer than correspondind .dep file) use "make dep" target. |
From: Eric S. <sun...@sl...> - 2000-05-08 09:01:06
|
Date: Monday May 8, 2000 @ 2:00 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv7221/apps/pysimp Modified Files: pysimp.cpp Log Message: Fixed calls to RequestPlugin() which weren't assigning a "function ID". |
From: Eric S. <sun...@sl...> - 2000-05-09 12:19:50
|
Date: Tuesday May 9, 2000 @ 5:19 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv7334/apps/pysimp Modified Files: pysimp.mak Log Message: Fixed comment. |
From: Eric S. <sun...@sl...> - 2000-05-10 12:42:08
|
Date: Wednesday May 10, 2000 @ 5:41 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv8086/apps/pysimp Modified Files: pysimp.cpp Log Message: -*- Overhauled the approach used for dynamic (plug-in) linking on MacOS/X Server, OpenStep, and NextStep ports of Crystal Space. These ports now do a fairly good job of emulating dynamic linking as it is done on most other platforms in which symbols within a plug-in are private unless explicitly exported. Historically, with the NeXT ports, all symbols were automatically public. This naturally leads to severe symbolic conflicts since many plug-ins link with the same static libraries. As a consequence, in the past I had to devise elaborate mechanisms to work around these conflicts. -*- The NextStep port emulates private plug-in symbols by actually stripping all public (resolved) symbols, except for the SCF GetClassTable() hook, from the plug-in module at build time. This technique provides fairly decent insurance against symbolic conflicts at plug-in load time even when multiple plug-ins have linked against the same static libraries. The only big drawback to this approach is that it makes symbolic debugging impossible. I had tried the alternate approach of parsing the error stream from RLD and calling rld_forget_symbol() for symbolic conflicts, and then attempting a reload, but the RLD run-time is sufficiently buggy that it would actually crash within rld_forget_symbol(). -*- The MacOS/X Server and OpenStep ports emulate private plug-in symbols by taking advantage of DYLD's NSLinkEditErrorHandlers which allows the loader to ignore duplicate symbols at load time, thus there is no need to strip them away at build time. This approach has the advantage that symbolic debugging capability is retained. I had attempted to use the same approach as I used for the NextStep port (that of stripping aways symbols at build time), but discovered that the Objective-C run-time is more picky in OpenStep than NextStep. In particular, it couldn't deal with the fact that symbolic references to Objective-C classes defined locally in the plug-in had been stripped away. It would be possible to manually instruct the 'strip' utility to retain certain symbols, but doing so would have introduced a potential maintanence headache as future changes are made to the code. -*- Eliminated all the special-case hacks which had been placed in various applications to force symbolic references in the executable itself so that the symbols would be available for dynamically loaded plug-in modules. Since plug-in modules now link with all the libraries which they, themselves, require, the application no longer needs to do so. -*- Eliminated special-case makefile hacks which forced applications to link with extra libraries required by plug-in modules which they might end up loading. In particular, scfreg makefile was considerably simplified. |
From: Jorrit T. <jo...@sl...> - 2000-05-12 13:44:22
|
Date: Friday May 12, 2000 @ 6:43 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv24401/apps/pysimp Modified Files: pysimp.cpp Log Message: Removed CHK and CHKB. |
From: Eric S. <sun...@sl...> - 2000-05-15 14:25:14
|
Date: Monday May 15, 2000 @ 7:24 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv3430/apps/pysimp Modified Files: pysimp.cpp Log Message: Renamed the following files and fixed references to them throughout the project: def.h --> csdef.h sysdef.h --> cssysdef.h types.h --> cstypes.h frustrum.h --> frustum.h frustrum.cpp --> frustum.cpp |
From: Jorrit T. <jo...@sl...> - 2000-06-15 12:40:03
|
Date: Thursday June 15, 2000 @ 5:36 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv3761/apps/pysimp Modified Files: pysimp.cpp Log Message: Cleaned up debug_dump() and cleanup() junk from all apps. WalkTest now does this on its own with code inside #ifdef OS_UNIX. This isn't pretty but it is debugging stuff anyway and at least it doesn't contaminate other apps that don't need this. |
From: Eric S. <sun...@us...> - 2000-06-20 16:04:13
|
Date: Tuesday June 20, 2000 @ 9:00 Author: sunshine Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv29305/apps/pysimp Modified Files: pysimp.mak Log Message: Fixed 'clean' target. |
From: Jorrit T. <jo...@us...> - 2000-07-18 12:24:26
|
Date: Tuesday July 18, 2000 @ 5:24 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv8571/apps/pysimp Modified Files: pysimp.mak Log Message: - Renamed cmd_Door to entity_Door in WalkTest. - Added entity_Light and entity_Rotate entities. With entity_Light you can control the animation for a light at activation time. With entity_Rotate you can have an object that rotates all the time or one that rotates at activation time. entity_Rotate has the following syntax: KEY ("entity_Rotate", "x,y,z") (with x,y,z the x, y, and z angles in degrees). These angles represent the rotation in one second. entity_Light has the following syntax: KEY ("entity_Light", "sector,light,r1,g1,b1,r2,g2,b2,time") Sector and light are the name of the sector and light to find the light that is controlled by this entity. The two given colors are the start and end color (start is at activation time). 'time' is the time (in miliseconds) to go from start to end. - Fixed explosion bounding box (partsys) so that it isn't updated every frame. This makes it faster but slightly less accurate. It is possible (but not very likely) that the partsys will not be drawn even if it is visible. - Added a bounding box to csPolyTreeObject. This bounding box is used to fix a bug that when the camera is inside the bounding box of a dynamic object, the object cannot be seen. - Moved updating of the dynamic object to csPolyTreeBBox. Makes the code for csSprite, csThing, and csParticleSystem simpler. Note that visibility culling for particle systems still doesn't work correctly at the moment. I'm investigating. - Removed support for LIGHTX in worlds. The parser will still recognize the keyword and say that it is obsolete. - Removed support for SCRIPT, ACTIVATE, and TRIGGER in the world file (keywords still recognized). The scripting system is now obsolete and replaced with the new entity system in WalkTest. - Added support for named lights in the world file parser. - Completely removed support for the obsolete csscript from CS. This is a significant change with lots of small effects at various places. - 'activate' console command is now completely obsolete and doesn't work anymore. Use 'action' instead which fires the new entity system. - Fixed a bug in csengine which caused the new csQuadTree3D optimization not to work at all. Note that this optimization still doesn't work at the moment. - Removed an assert in map2cs to make converting some badly formed levels easier :-) |
From: Andrew Z. <an...@us...> - 2000-08-04 12:56:19
|
Date: Friday August 4, 2000 @ 5:56 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv23349/pysimp Modified Files: pysimp.cpp pysimp.h Log Message: -*- Implemented a new low-level event system architecture. Most programs won't notice any difference in top-level interface, only low-level interaction has been changed a little. Events are generated by iEventPlug objects. Any event plug plugs into an iEventOutlet which is the "front door" into the system driver event queue for the respective event source. When you register an iEventPlug object with the system driver, you get a pointer to the respective iEventOutlet. The QueueXXXEvent() methods are gone from iSystem. Instead, use the respective methods from iEventOutlet interface. Also there is an default system outlet (the 'back door' :-) which may be queried through GetSystemEventOutlet, use it if you don't consider that your plugin is worth to have a full-fledged connection with the system driver event queue. Note that the new event system allows to write a new generic "record/play" plugin which will, in record mode, record all events that pass through the system queue, and on other hand, emit all recorded events back into the system event queue. Writing one is left as homework for the reader :-) -*- New file: include/ievent.h. It defines the interface for any plugin which desires to generate events into the system event queue. Also it defines the interface for iEventOutlet objects, which are provided by system driver. -*- No more SetSystemDefaults routine in system-dependent drivers. Any settings must be queried from the respective plugins. For example if some canvas needs the "-shm/-noshm" option it should query it itself rather than relying on iUnixSystem driver to do it. Also most system-dependent interfaces (such as iDosSystem, iUnixSystem, iOS2System) are gone. I believe there is no need anymore in a private interface, and if you need just one-two additional system-dependent functions, you can always implement them through the new SystemExtension method of iSystem. -*- Cleaned up the iSystem interface. Lots of methods are gone, several new have been added. -*- The canvas-dependent command-line options have been moved to respective canvas drivers. The respective command-line help have been moved there as well. From now on: if you want to display any plugin-specific help, you should implement HandleEvent and handle the cscmdCommandLineHelp broadcast event. Upon reception of such an event you should display something like: Options for X-Windows 2D graphics driver: -sdepth=<depth> set simulated depth (8, 15, 16, or 32) (default=none) -shm/noshm SHM extension (default 'shm') -[no]sysmouse use/don't use system mouse cursor (default=use) -*- Note that because all QueueXXXEvent methods are gone from iSystem interface, some canvas drivers may not build. Here is the list of canvas drivers that I have fixed, use any of the drivers below for reference when fixing other canvas plugins. Fixed and tested: - CSDIVE canvas. - X-Windows 2D canvas - X-Windows Line2D canvas - OS/2 OpenGL canvas - MGL 2D canvas - AsciiArt canvas Fixed but not tested: - csalleg (cross-platform Allegro) canvas - unixglide canvas - svgalib canvas - gl/x canvas - ggi driver Not fixed at all: - BeOS drivers - Mac drivers Sorry, couldn't understand how they work :-) Some system drivers also can generate events. The following drivers were converted and tested to use new event architecture: - DOS/DJGPP Converted but not tested: - MacOS - Win32 - BeOS Not converted (Objective C :-(): - NeXT -*- Implemented National Keyboard Support. Every event plug has to provide two key codes - one is the "raw" keycode (Event.Key.Code) and one is the "cooked" code (Event.Code.Char). Old programs that use Event.Key.Code will still work but they will get just low-case characters (e.g. even Shift and/or Ctrl will be ignored). This also means that hotkeys like "shift+!" won't work anymore (instead use shift+1). I have fixed autoexec.cfg for this. National Keyboard Support should already work with most canvas drivers. I have tested it with X-Windows driver, OS/2 DIVE driver, MGL driver. If some driver cannot provide the "cooked" keycode (such as the DOS driver) it should provide "-1" as the character code, and the system driver will "cook" it itself. -*- Fixed X-Windows drivers so that they handle correctly the MappingNotify event. This enables support for languages that need more than one keymap (e.g. Cyrillic and others, maybe Japanese). -*- Removed elapsed_time and current_time arguments from NextFrame. Instead, I have added a new method called GetElapsedTime (time_t&, time_t&) into the iSystem interface. Call it if you really need the elapsed time. You can call it any times per frame you need. The time is updated only at the start of every frame. The NextFrame() method has no arguments now. -*- Redesigned the main application loop. The Loop method in system driver is still there, but it is basically just an: while (!Shutdown) NextFrame(); If your application does not need the loop, feel free to call NextFrame without arguments at appropiate times. Fixed all applications in CVS to use the new NextFrame prototype. However, for applications not in the repository you will have to fix this yourself. -*- Added the new -I or --info switch to gfxtest tool. Using this switch you can easily see the cause of translucent cubes in blocks: the respective png files (cubef3 and cubef4) have an alpha channel. -*- Added -a or --strip-alpha switch to same tool. Note that the blocks data file in repository has NOT been fixed; somebody still have to do it. -*- Fixed dependency generation with makedep - instead of $(OUT) prefix it used the expanded value of $(OUT) - thus when switching compilation mode, it was needed to rebuild dependencies. Not it is not the case anymore. -*- Added Z-none counterparts to ALL DrawPFX modes. In this mode the Z-buffer is ignored at all, thus it is the fastest mode. It can be used to display non-3D graphics with DrawPFX, for example user interface elements and so on (and even 3D graphics in depth sorted order). -*- Added Z-none, Z-fill and Z-use modes to per-pixel alpha routines. Now you can do: G3D->SetRenderState (G3DRENDERSTATE_ZBUFFERMODE, CS_ZBUF_ZUSE); G3D->DrawPolygonFX (...) The CS_ZBUF_NONE routine has the lesser overhead, of course. -*- Implemented Z-use and Z-fill modes for alpha-mapped walls (DrawPolygon). -*- Redesigned the iConsole interface. Basically I have tried to simplify it as much as possible; having very sophisticated interfaces does not make easy to write new plugins. Removed the dumb iCursor interface. The cursor should be provided by the console; if you don't like the cursor, write your own console. Redesigned the iConsoleInput interface. -*- Reimplemented cstools/simpcons as a new plugin. cstools library is now empty; don't know if it is really needed. -*- Fixed walktest to use the new console plugin. It is not tied anymore to csSimpleConsole private interface, thus can use any console plugins you will write in future :-) Also walktest will run now without a console at all. -*- Fixed a very seldom happening bug in software 3D driver that leads to crashes due to division overflow. -*- When the palette changes in 256-color modes, the texture manager will emmit an broadcast event so that all interested plugins (including consoles) can intercept it and query the appropiate drivers for new information. -*- Fixed the cscon plugin. The "xstdin" plugin has been removed (use the one in simpcon instead, it has absolutely same functionality), the "console.output.standard" and "console.output.funky" consoles works. You can even enable them in walktest application by uncommenting the respective lines from cryst.cfg. -*- Fixed an strange bug in software texture manager - in 8-bit modes the Scan.GlobalCMap was deleted at the end of PrepareTextures() although it is extensively used while the program is running ... -*- Fixed an very old bug in DrawPolygonFX() for software 8-bit modes. DST was incorrectly missed the screen palette table, thus all modes that involved DST (fixed-value alpha transparency and blending) did not worked. -*- Due to above event system redesign, Crystal Space Windowing System has been redesigned a little as well. The csApp class is now a plugin from system driver's point of view and receives events absolutely same way like any other plugin. Thus the look of the simplest CSWS application has been changed a little. See cswstest for details. -*- Crystal Space Windowing System does not implement its own system driver anymore. Instead, the csApp class is an "almost-normal" plugin now, except that it is created not via SCF (but rather with `new'). Also CSWS works with the system driver completely through the iSystem interface; this means CSWS and system driver don't have to be in the same module anymore. -*- Fixed MazeD so that it works with the new CSWS architecture. No other enhancements though :-( -*- The list of applications that were fixed after my changes: blocks cswstest demonets (at least compiles) dnapp (same) dtsimple makedep (:-) map2cs mazed mdl2spr (I hope) metademo ndrvdemo (compiles) nstp (not tested, but I believe) perftest (same) phyztest (same) pysimp (hell knows) scfreg simple squawk walktest (hah) Still broken: cctest shooter and libs/csgame wscs3d |
From: W.C.A. W. <wo...@us...> - 2000-08-06 12:38:17
|
Date: Sunday August 6, 2000 @ 5:38 Author: wouter Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv25946/apps/pysimp Modified Files: pysimp.mak Log Message: make install, and make uninstall for Linux/unices should work, i.e. copy files and delete files. The install is not used yet. Also an extremely portable app 'uninst' is added, that will uninstall. It will also delete empty directories that held files. install.mak will install files in several places. In each apps/libs/plugins .mak file you can add files for installation. I have already modified all makefiles correspondingly (for all apps, libs, plugins). Places you can add for installation: TO_INSTALL.ROOT : files will be added in the $(INSTALL_DIR)/ dir itself. TO_INSTALL.EXE : files will be put in bin/ TO_INSTALL.DATA : files will be put in data/ TO_INSTALL.CONFIG: files will be put in data/config/ TO_INSTALL.STATIC_LIBS: files will be put in lib/ TO_INSTALL.DYNAMIC_LIBS: files could be put in lib/, but could also end up in a platform specific location (e.g. System folder). TO_INSTALL.INCLUDE does not exist, the entire include/ hierarchy is copied to include/. (max 3 levels deep now) The INSTALL_DIR is autodetected at 'make <platform>' time, and saved in config.mak. (It can be overridden, e.g. by make linux INSTALL_DIR=/usr/crystal) also it can be overridden when make install is called (or make uninstall) |
From: Andrew Z. <an...@us...> - 2000-08-09 15:59:36
|
Date: Wednesday August 9, 2000 @ 8:59 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv18626/apps/pysimp Modified Files: pysimp.cpp Log Message: A lot of files have been changed but the change is trivial. As it turned, there are platforms where "time_t" is signed and there are platforms where "time_t" is unsigned. This was causing movement to not work sometimes in walktest, for example. Also this is a potential source of problems in future. Because of that, I have added a new type in csdefs.h: cs_time which is basically an unsigned long. Then I have replaced time_t everywhere with cs_time. Don't use time_t anymore; use cs_time instead. |
From: W.C.A. W. <wo...@us...> - 2000-08-18 18:19:44
|
Date: Friday August 18, 2000 @ 11:19 Author: wouter Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv11586/apps/pysimp Modified Files: pysimp.cpp Log Message: fixing various compiler errors and warnings |
From: Andrew Z. <an...@us...> - 2000-08-21 10:23:15
|
Date: Monday August 21, 2000 @ 3:23 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv20296/apps/pysimp Modified Files: pysimp.cpp pysimp.h Log Message: -*- Changed perfstat plugin to compute fps once per 1/2 second rather than once per 10 frames. This will compute more accurate values in high-fps environments and also makes fps numbers more steady. Also iPerfStat::SetResolution sets the interval in msecs rather than in frames. -*- Changed FPS display in walktest to display just two numbers after dot. I don't think you really care whenever you have 20.111 or 20.112 fps :) -*- Created the iEvent interface. It is really a very special interface since its the first time (as far as I know) an SCF interface with member variables is used. However, this is supposed to work on all platforms. Be warned though. -*- csEvent is now just a particular implementation of iEvent. You can create your own objects implementing iEvent interface. PLEASE always use QueryInterface (or rather QUERY_INTERFACE macro) to get access to extended fields; NEVER do direct typecasts. -*- Added a new halo generation routine - csutil/halogen2.cpp. It is not used anywhere yet though. The algorithm has been borrowed from GIMP (`SuperNova' plugin). -*- Started to work on MazeD material support. Not finished though (even not compilable). -*- Improved material support. The MATERIALS() statement in world file now looks like this: MATERIALS ( MATERIAL 'material name' ( TEXTURE ('texture name') COLOR (float, float, float) ; R,G,B = 0..1 DIFFUSE (float) ; 0..1 AMBIENT (float) ; 0..1 REFLECTION (float) ; 0..1 ) ... ) I have added the GetFlatColor() method to iMaterial and iMaterialHandle. For now the flat_color_X members in iGraphics3D polygon structures are still present; however I hope one day they will be gone and a material handle will be always present, since materials also support flat color. For now only software renderer supports materials with flat colors; I hope with time other renderers will be also updated for this. -*- Renamed RGBcolor -> csRGBcolor and RGBpixel -> csRGBpixel. In general, we should think where to put all library-independent header files such as rgbpixel.h and cspixmap.h. I would say they could live in main include directory since those classes are absolutely independent and completely inline. -*- Changed the way engine defines and uses texturing. There are four polygon texturing types now: POLYTXT_NONE (no texturing, useful when using materials without textures -- it defines no texturing parameters at all thus saves memory), POLYTXT_FLAT (flat-shading, only the angle between light and polygon normal is considered if CS_POLY_LIGHTING flag is set, and entire polygon is painted with one lighting value; every vertex has an U/V pair associated), POLYTXT_GOURAUD (every polygon vertex has a color and those colors are interpolated across scanlines) and finally POLYTXT_LIGHTMAP (a polygon which has an associated lightmap and a texture plane). Now it is possible to define and use objects which have flat-color but still receive light with Gouraud as well as without Gouraud interpolation; in general this open a whole new area for experimenting. -*- New keyword in world file inside the POLYGON () context: TEXTURING (NONE | FLAT | GOURAUD | LIGHTMAP) This defines one of the texturing modes above. -*- MIXMODE() keyword is applicable to all texturing types except LIGHTMAP. Alpha transparency for such polygons can be defined in two ways: POLYGON (... ALPHA (50) MIXMODE (MULTIPLY2)) or POLYGON (... MIXMODE (MULTIPLY2 ALPHA (0.5))) To be honest, I don't like having two different ways to specify alpha. I don't like the different scale either (0..1 and 0..100). Polygon always keeps alpha as a value 0..255 (and iGraphics3D always receives alpha in this range, the old 0..100 scale is gone). In general, I would say that giving colors and alpha as floating-point value looks like a bad idea. I would store both them as 0..255 value, or as a floating-point 0..1 value. Maybe it makes sense to change this in the new loader? -*- DECLARE_GROWING_ARRAY does not have a reference counter anymore. If you need a reference counter, use DECLARE_GROWING_ARRAY_REF. This gives slight less memory usage in some places. I have changed thing and polygon template objects to use growing arrays for vertices. This does not change memory footprint and gives better readable code (and maybe a little less binary size). -*- Simplified polygon template class a lot by moving most state variable into a csFlags variable. Added support for COLORS() keyword in polygon templates. GOURAUD keyword is now obsolete in both normal polygons and polygon templates; use TEXTURING (GOURAUD) instead. Overall results for flarge.zip: Was: World geometry is using 1526938 bytes. Now: World geometry is using 1465962 bytes. ---- Gain: 60976 bytes (flarge contains just 5 thing templates) -*- In addition to TEXNR() everywhere it appears MATTERIAL is accepted as a synonym; one day TEXNR should die. |
From: Jorrit T. <jo...@us...> - 2000-08-21 13:28:23
|
Date: Monday August 21, 2000 @ 6:28 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv20635/apps/pysimp Modified Files: pysimp.cpp Log Message: The big change from Andrew triggered a strange behaviour in the dynamic linker (dlopen) on Unix. Andrew renamed csMaterialMM in the texture manager to csMaterialHandle. However csMaterialHandle is already another class in the engine. When loading the software renderer dynamically it will use the already loaded csMaterialHandle in the application which is wrong. I fixed this by renaming csMaterialHandle in the engine to csMaterialWrapper. Not only does this solve the problem but it is actually also a better name. I also renamed csTextureHandle to csTextureWrapper and replace Get/Set MaterialHandle with Get/Set MaterialWrapper in various places. No doubt you'll have to modify your applications for this. |
From: Jorrit T. <jo...@us...> - 2000-08-31 07:38:01
|
Date: Thursday August 31, 2000 @ 0:38 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv4297/apps/pysimp Modified Files: pysimp.cpp Log Message: Fixed apps with regards to the latest csWorld::NewSector()->csWorld::CreateCsSector() change. |
From: Brandon E. <azv...@us...> - 2000-09-05 04:11:24
|
Date: Monday September 4, 2000 @ 21:11 Author: azverkan Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv1509/apps/pysimp Modified Files: pysimp.cpp Log Message: now a test app |
From: Andrew Z. <an...@us...> - 2000-09-26 07:36:58
|
Date: Tuesday September 26, 2000 @ 0:36 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv8256/apps/pysimp Modified Files: pysimp.cpp Log Message: -*- Made VFS a separate plug-in. This involves some minor changes in programs that use Crystal Space outside of CVS (all the sources in CVS have been updated): you have to remove all lines: REGISTER_STATIC_PLUGIN (vfs) from main source file; also you have to replace #include "csutil/vfs.h" with #include "ivfs.h" if you didn't this before (in any case VFS is always used through the SCF interface, so it is not likely there is any code left that makes use of the csVFS class directly). -*- Fixed a bug in perfstat plugin that sometimes leads to "0.00" being steady displayed instead of FPS. -*- Added the ability to determine file size without opening the file on VFS. -*- Changed walktest to maximal theoretical FPS of 100. Previously walktest never would *move* faster than at 40FPS. That is, the refresh rate can be even 500 FPS but you will never see anything moving faster than 100FPS. This should make the motion more smooth on powerful videocards. -*- Added acceleration ("run") to walktest by pressing SHIFT key. I have moved all "immediate move" commands (i_up, i_left and so on) to ctrl+# key bindings; that is, what previously has been achieved with shift+up you will get now by pressing ctrl+shift+up and so on. These commands are for debugging mostly anyway, and they conflict (they were conflicting before as well) with normal motion. |
From: Andrew Z. <an...@us...> - 2000-10-02 11:55:29
|
Date: Monday October 2, 2000 @ 4:55 Author: andyz Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv17432/apps/pysimp Modified Files: pysimp.cpp Log Message: -*- Caught and fixed a very bad bug that caused walktest to crash upon exit on most levels (which contains thing templates). It was related to the fact that some moveable.sector arrays are empty, but csThing::MergeTemplate used to refer to GetSector(0) unconditionally. -*- Overhauled the csIniFile class. There is now a new iConfigFile interface which is implemented by csIniFile. It is highly recommended all libraries and plugins to work through this interface rather than using csIniFile directly. Removed some exotic csIniFile methods such as saving and loading the config file to/from a csString, overhauled the iterators (they are exposed through interfaces now as well). This is a preparation to excluding csIniFile usage from plugins. The iSystem interface will expose a method to create iConfigFile objects, this will avoid duplicate code in main executable and plugins. Also the ConfigGetXXX methods will go away from iSystem, instead there will be an GetConfig() method to retrieve the basic iConfigFile object. -*- Implemented a new interface iDataBuffer which is meant as a extremely lightweight data container (as opposed to csString). The interface is meant for exchanging abstract data between plugins. For example: ... iVFS *vfs; iDataBuffer *data = vfs->ReadFile (filename); ... data->GetData (); ... data->GetSize (); data->DecRef (); Another example: iDataBuffer *path = vfs->ExpandPath ("../test"); printf ("Expanded path: %s\n", **path); path->DecRef (); -*- Added minimal locale support to Unix systemdriver (setlocale (LC_XXX, "")) because without that XFree4.0 won't (always) display national characters. If your specific Unix doesn't have <locale.h> see the instructions in unix.cpp... basically if we find that there are such systems we rather should add detection of setlocale to unixconf.sh. -*- Added Xsetlocale() to all X11 canvas drivers. I don't know whenever this is really required but it won't hurt in any case, and for some languages this could help. -*- I did all said above related to iConfigFile. Namely the iSystem interface has been changed: removed all the GetConfigXXX() methods; instead (the simplest but dirty way) you can just use GetConfig()->GetXXX() instead of older GetConfigXXX(); a better way is to first store the GetConfig() aside, then use the variable multiple times to query all the needed values. All the plugins and applications have been updated to accomodate this new change; of course I maybe forgot something so if you get compilation errors you have to check first if the old GetConfigXXX method is used (and proceed as above if so) and second check if the "icfgfile.h" file is included at the top of source file. |
From: Jorrit T. <jo...@us...> - 2000-10-04 08:27:55
|
Date: Wednesday October 4, 2000 @ 1:27 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv10752/apps/pysimp Modified Files: pysimp.cpp Log Message: - Made cspython plugin a real plugin (i.e. let it inherit from iPlugIn). - Fixed a bug in the cspython plugin which would initialize System to NULL. I have no idea why that code was there. |
From: Jorrit T. <jo...@us...> - 2000-10-04 09:10:45
|
Date: Wednesday October 4, 2000 @ 2:10 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv16295/apps/pysimp Modified Files: pysimp.cpp Log Message: Some experimentation with pysimple. Tried to update it so that it works more like the normal simple but instead it creates part of the geometry in python. However it does not work yet. |
From: Jorrit T. <jo...@us...> - 2000-10-05 09:17:47
|
Date: Thursday October 5, 2000 @ 2:17 Author: jorrit Update of /cvsroot/crystal/CS/apps/pysimp In directory slayer.i.sourceforge.net:/tmp/cvs-serv27232/apps/pysimp Modified Files: pysimp.cpp Log Message: - Extended iPolygon3D interface with one of the SetTextureSpace functions so that I can get the python script pysimp.py working. - Added iMaterialWrapper interface so that there is now an SCF interface for csMaterialWrapper. - Added iWorld::FindMaterial() to look for a loaded material. - Fixed iPolygon3D::GetVertex (and the W/C versions). They were completely broken. - Updated cs.i input file for SWIG so that it is more up-to-date with regards to the current state in CS. The interface is far from complete. First we need more and better defined SCF interfaces for the engine itself and second we need to extend cs.i to actually use all those interfaces. At this moment cs.i is extended just enough so that I could get pysimp.py working. - The pysimple test application now behaves almost exactly like simple (without the sprite though) but the geometry of the room is created in python instead of C++. Check out scripts/python/pysimp.py to see how this works. - SWIG generates a file called cs_wrap.doc. I also added this file to CVS since it is useful to read and not everybody has SWIG. |