From: Norman K. <no...@sl...> - 2000-05-06 20:24:54
|
Date: Saturday May 6, 2000 @ 13:24 Author: norman Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv3132/renderer/opengl Modified Files: glrender.mak ogl_g3d.h ogl_txtmgr.h Log Message: changed all (hopefully) refrences to the old directories cs2d and cs3d |
From: Eric S. <sun...@sl...> - 2000-05-08 07:27:09
|
Date: Monday May 8, 2000 @ 0:26 Author: sunshine Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv25184/plugins/video/renderer/opengl Modified Files: ogl_g3d.cpp Log Message: -*- All Crystal Space application and plug-in configuration files are now loaded from virtual filesystems via VFS rather than the physical filesystem, with the exception of scf.cfg and vfs.cfg which can not be loaded from VFS for (hopefully) obvious reasons. (scf.cfg is needed to initialize SCF which is used to load the VFS plug-in, and vfs.cfg is used to actually define the VFS volumes.) -*- Moved all configuration files onto the VFS volume /config which happens to be mounted at physical location CS/data/config. Note that using the /config volume is a convenience, rather than a requirement. Programs written using Crystal Space can choose to locate their own configuration files anywhere they like; even on a physical filesystem, if desired (though this is frowned upon). -*- Script files which are executed by 'walktest' are now loaded from VFS rather than from a physical filesystem. -*- Fixed a lot more 'const' problems throughout the project. Most of these involved changing (char*) to (const char*). |
From: Jorrit T. <jo...@sl...> - 2000-05-09 14:41:14
|
Date: Tuesday May 9, 2000 @ 7:40 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv25830/plugins/video/renderer/opengl Modified Files: ogl_g3d.h Log Message: Received a patch from Samuel Humphreys which allows you to render on texture dynamically. Currently this only works for the software renderer. Support for the other renderers will have to be added. There is also a new 'dtsimple' demo app to show of the new feature. |
From: Jorrit T. <jo...@sl...> - 2000-05-10 09:52:51
|
Date: Wednesday May 10, 2000 @ 2:52 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv9596/plugins/video/renderer/opengl Modified Files: glrender.mak ogl_g3d.cpp ogl_g3d.h ogl_txtcache.cpp ogl_txtcache.h ogl_txtmgr.cpp ogl_txtmgr.h Log Message: Samuel Humphreys sent me a new patch to clean up his dynamic textures and also implement them for OpenGL. |
From: Eric S. <sun...@sl...> - 2000-05-10 11:01:59
|
Date: Wednesday May 10, 2000 @ 4:01 Author: sunshine Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv24407/plugins/video/renderer/opengl Modified Files: glrender.mak Log Message: Removed an obvious mistake. OpenGL was including *.cpp files from soft3d. |
From: Frank O. <ma...@sl...> - 2000-05-10 23:14:35
|
Date: Wednesday May 10, 2000 @ 16:14 Author: malakai Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv30974 Modified Files: ogl_txtmgr.cpp Log Message: added a check before calling DecRef in destructor -frank (fr...@oc...) |
From: Jorrit T. <jo...@sl...> - 2000-05-12 14:46:11
|
Date: Friday May 12, 2000 @ 6:43 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv24401/plugins/video/renderer/opengl Modified Files: ogl_g3d.cpp ogl_halo.cpp ogl_txtcache.cpp Log Message: Removed CHK and CHKB. |
From: Jorrit T. <jo...@sl...> - 2000-05-15 06:27:07
|
Date: Sunday May 14, 2000 @ 23:26 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv14769/plugins/video/renderer/opengl Modified Files: glrender.mak Log Message: Fixed bug in OpenGL makefile. The inclusion of the software renderer caused problems if the CS version of NASM was present. The NASM asm files were not included in the OpenGL makefile causing undefined symbols in the included software renderer. |
From: Eric S. <sun...@sl...> - 2000-05-15 14:12:05
|
Date: Monday May 15, 2000 @ 7:11 Author: sunshine Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv2341/plugins/video/renderer/opengl Modified Files: ogl_g3d.cpp ogl_halo.cpp ogl_txtcache.cpp ogl_txtmgr.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: Eric S. <sun...@sl...> - 2000-05-18 13:47:54
|
Date: Thursday May 18, 2000 @ 6:46 Author: sunshine Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv15702/plugins/video/renderer/opengl Modified Files: ogl_g3d.cpp Log Message: Eliminated compilation warnings about */ found outside of comment. |
From: Jorrit T. <jo...@sl...> - 2000-05-23 14:36:54
|
Date: Tuesday May 23, 2000 @ 7:35 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv6078/plugins/video/renderer/opengl Modified Files: glrender.mak ogl_g3d.cpp ogl_g3d.h ogl_txtcache.cpp ogl_txtmgr.cpp ogl_txtmgr.h Added Files: ogl_dyntexback.cpp ogl_dyntexback.h ogl_dyntexsoft.cpp ogl_dyntexsoft.h Log Message: - Added a patch from Samuel Humphreys with the following changes: - Pluggifies the software renderer for opengl . - Add a back buffer style implementation for opengl based on Normans implementation. However on my system, it runs at half the speed as the software version, and it renders flipped in the x-axis, I've tried lots of stuff to get it working properly, but to no avail. Need other people to have a go at this. Also with mesa and voodoo2 the texture shifts into the blue spectrum, whereas it doesnt with software opengl...Im investigating this. - Added further configuration stuff to opengl.cfg, so you can choose dynamic texture implementation. See comments there. - Implemented some outstanding methods to the opengl driver: SaveArea, RestoreArea - Fixed bug in DrawPixmap, it now correctly renders sub region of textures whose size has been modified. This was highlighted by cswstest. - Modified glx2d.cpp so that it'll give a single buffer for CSWS,--outstanding issue with paletted mode...i.e. the glx drivers will not work in paletted mode, but it wouldn't have done before my modifications anyway....a todo! - Small modification to csws so it requests a single buffer before opening the graphics drivers. - Change of signature to iGraphics3D->CreateOffScreenRenderer, have attempted to update all drivers, but I may of missed something. - Promoted default implementation of iGraphics2D->CreateOffScreenCanvas to csGraphics2D (as Eric suggested), updated all other drivers too. - oglglide now compiles again. |
From: Frank O. <ma...@sl...> - 2000-05-23 20:51:40
|
Date: Tuesday May 23, 2000 @ 13:50 Author: malakai Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv547/plugins/video/renderer/opengl Modified Files: ogl_dyntexback.cpp ogl_dyntexsoft.cpp Log Message: Added windows.h to csosdef.h Removed palces the individually included this. removed scattered undef's that related to this file. Fix misc bugs resulting in this inclusion. Updated win32 opengl drivers with latest dynamic texture code. Misc fixes/cleanup. -frank |
From: Frank O. <ma...@sl...> - 2000-05-24 00:53:36
|
Date: Tuesday May 23, 2000 @ 17:52 Author: malakai Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv30672 Modified Files: ogl_g3d.cpp Log Message: Fixed compiler warning -frank |
From: Frank O. <ma...@sl...> - 2000-05-26 18:13:42
|
Date: Friday May 26, 2000 @ 11:11 Author: malakai Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv14641 Modified Files: ogl_dyntexback.h ogl_dyntexsoft.cpp ogl_dyntexsoft.h Log Message: Fixed annoying compiler warning about type*/*comment*/ changed to: type* /*comment*/ -frank |
From: Jorrit T. <jo...@sl...> - 2000-05-30 09:47:32
|
Date: Tuesday May 30, 2000 @ 2:45 Author: jorrit Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv14615/plugins/video/renderer/opengl Modified Files: ogl_dyntexback.cpp ogl_dyntexback.h ogl_dyntexsoft.cpp ogl_dyntexsoft.h ogl_g3d.cpp ogl_g3d.h Log Message: Got a large patch from Samuel Humphreys with the following changes: - Adds a couple of new walls, bots and another dynamic texture to dtsimple. The new dynamic texture is rendered by the engine as the bots point of view, or as a manually configurable view from (0,0,0). Only works with the software drivers currently in 8, 16 & 32 bit modes. The opengl software texture version will not work...it will crash. The backbuffer opengl version will not work, but won't crash. I think the glide version will work, can't test this though. - Added new flag to iTextureManager: CS_DYNAMIC_TEXTURE_SHARE_HINT. See explanation there. - Added many more keys to fiddle with in dtsimple. - Added another software dynamic texture implementation to the software drivers. This implementation shares the texture manager with the parent context. This allows you to render to it with textures that you have already registered with the parent context i.e. a map view courtesy of the engine. - In pursuit of this added functions to the software 3d drivers which allows the initialisation and opening of the driver according to another driver while sharing resources. The sharing software dynamic texture utilises these functions. This is also in preparation for the window manager...coming soon! - Pluggified metaballs and updated metademo and dtsimple as appropriate. - Added more parameters to vary to see what happens in metademo. - Added a couple more functions to iSystem, which are implemented in system.h/cpp, so shouldnt break anything. These are queuing functions for two new windows messages. - Added two new windows messages. ..ContextResize and ..ContextClose. - Updated the engine to deal with new messages - 'Multiplexed' the engine. Added new function csWorld->SetContext(iGraphics3D *g3d). This allows the engine to swap states according to g3d. The new dynamic texture demonstrates this. - Fixed the annoying bug in the Xlib software drivers where on a fresh Xserver session the window placement wouldn't behave for the first three or four times. Borrowed the trick from gdk :). Much more window manager friendly now...i.e. Crystal Space is beginnning to behave politely! - Migrated XLib changes into the line drivers. - Added resizing to the line drivers. - Got rid of a static file scope variable in the software texture manager. - Small makefile fixes for blocks and csauth. - Did a fix to dump(csPolygon3D*) for polygons with no name. |
From: samuel h. <sa...@sl...> - 2000-06-02 06:08:13
|
Date: Thursday June 1, 2000 @ 23:05 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv13322/plugins/video/renderer/opengl Modified Files: ogl_dyntexback.cpp ogl_dyntexback.h ogl_g3d.cpp ogl_g3d.h Log Message: Some changes which gets the metaballs texture working. Mainly to do with many iGraphics3D refering to one iGraphics2D -The engine now keys of iGraphics3D rather than iGraphics2D, to determine whether it needs to swap states. -Metaball plugin now queries iGraphics3D for width and height of context. -Opengl: need to convert vertices co-ordinates to the upper left subregion of the backbuffer |
From: samuel h. <sa...@sl...> - 2000-06-04 03:46:00
|
Date: Saturday June 3, 2000 @ 20:43 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv30018/plugins/video/renderer/opengl Modified Files: ogl_dyntexback.cpp ogl_dyntexback.h ogl_dyntexsoft.cpp ogl_dyntexsoft.h ogl_g3d.cpp ogl_g3d.h ogl_halo.cpp ogl_txtmgr.cpp ogl_txtmgr.h Log Message: - rewrote the ogl backbuffer dynamic texture implementation, it now inherits from csGraphics3DOGLCommon and implements a dummy iGraphics2D which transforms vertex info to lower bottom left subregion of back buffer, and reports correctly width and height information. This has required splitting the old ogl_g3d.* into ogl_g3dcom.* and ogl_g3d.* Also two new private functions are added SharedInitialize and SharedOpen which have the same functionality as those in the software drivers. The engine now renders to backbuffer textures, but they are still inverted and have corrupt colour information. - Added verbose visual information reporting to glx. Now reports about auxiliary buffers and properly fills in pfmt. - The ogl texture manager now detects and deals with maximum texture constraints i.e. my voodoo2's 256x256 :) - Removed old software dynamic texture implementation. - Small fixes for canvas/common & dtsimple |
From: samuel h. <sa...@sl...> - 2000-06-04 03:51:16
|
Date: Saturday June 3, 2000 @ 20:48 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv30281/plugins/video/renderer/opengl Added Files: ogl_g3dcom.h ogl_g3dcom.cpp Log Message: New files for ogl3d which didnt go in first time around |
From: K. R. B. <rb...@sl...> - 2000-06-05 21:19:14
|
Date: Monday June 5, 2000 @ 14:16 Author: rbate Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv8300 Modified Files: ogl_g3dcom.h Log Message: Changing max_texture_size from int to GLint so things will compile on CW. |
From: K. R. B. <rb...@sl...> - 2000-06-05 21:20:09
|
Date: Monday June 5, 2000 @ 14:17 Author: rbate Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv8350 Modified Files: ogl_txtcache.cpp Log Message: Fixing what looks to be an error in an if statement. |
From: Gary H. <gha...@sl...> - 2000-06-07 02:58:11
|
Date: Tuesday June 6, 2000 @ 19:55 Author: ghaussmann Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv20129/plugins/video/renderer/opengl Modified Files: ogl_g3dcom.cpp Log Message: Added support for RGBA (transparent meshes) to DrawTriangleMesh. |
From: samuel h. <sa...@sl...> - 2000-06-13 10:10:25
|
Date: Tuesday June 13, 2000 @ 3:07 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv11181/plugins/video/renderer/opengl Modified Files: ogl_g3d.cpp ogl_g3d.h ogl_g3dcom.cpp ogl_txtcache.cpp ogl_txtcache.h ogl_txtmgr.cpp ogl_txtmgr.h Log Message: Changed names from dynamic textures to the more correct term procedural textures. - The iGraphics3D method CreateOffScreenRenderer is now gone. All drivers are updated. - The software drivers procedural textures are now more memory efficient. - By default the software procedural textures use the main renderers texture manager, which makes it more consistent with the glide and back buffer opengl implementations. Within this mode the engine can render to the texture. - The CS_TEXTURE_DYNAMIC_SHARE_HINT is now gone. In its place is a new hint CS_TEXTURE_PROC_ALONE. When this flag is selected the software procedural textures run internally at 8bit, they share and utilise their own 8bit texture manager. (Before each procedural texture had its own texture manager and cache..this is no longer the case :). The engine cannot render to the texture in this mode. - The iTextureHandle->TextureDynamicSyncPalette is now gone. This is no longer needed, and makes the interface more consistent across implementations. In its place is ProcTextureSync (), which currently is an empty method, but is in preparation for fine grained control of mip-mapping. The software texture manager now keeps a single linked list of all 8bit canvases it services. - Rewritten the opengl software procedural texture implementation. So that it can be rendered to by the engine. - Added a force32bitsoftware additional flag to opengl.cfg, which performs better with mesa and 16bit displays with a voodoo2. However, the problem with the transposition of red and blue returns, this is probably a bug in Mesa3.3beta. - This is how it now works: csOpenGLProcSoftware now wraps an instance of csSoftProcTexture3D. This instance is created via a new interface iSoftProcTexture. csSoftProcTexture3D creates its own texture manager and canvas. Subsequent software procedural textures share this texture manager. Each procedural texture registers itself with the software texture manager, and passes its handle back to the csOpenglProcSoftware class which stores it in a vector along with its opengl texture handle. The app writer registers and prepares all textures with the opengl texture manager, and then starts rendering. Each texture handle not already present within the vector is registered and prepared with the software texture manager and its handle stored with its opengl counterpart in a vector. Each iGraphics3D call which utilises a texture is intercepted and the opengl texture handle swapped for its software counterpart. On Print (csRect) the opengl texture is updated with the new procedural texture state, and also its software counterpart. - This change has required modifying the software drivers so that the texture handle is not referred to within the iPolygonTexture structure. - The CS_TEXTURE_PROC_ALONE_HINT has the effect of disabling the updating of the software texture managers versions of the procedural textures, which improves performance but disallows the engine from rendering to any procedural textures. For this mode to operate all textures need to possess this flag otherwise it'll revert to the slower mode. - Fixed the colours on the opengl back buffer implementation. Voodoo2 owners now need Mesa beta3.3 from cvs for this to work. Unfortunately glCopySubTexImage2D is now broken in cvs so I cant implement this optimisation. The texture probably still renders inverted, it does on the voodoo2. I dont think there is an opengl trick to reinvert the texture, but I could be wrong. Possible solutions are to intercept every draw call and invert these or to copy over from the framebuffer to the texture line by line. The latter way is going to be *slow*, the former would involve modifying transformation matrices (i.e. rotating by 180 degrees the world to camera matrix about the lookat vector) within the driver and inverting all vertices which are in screen co-ordinates. I wait for a better suggestion :). - Lastly Ive destroyed the performance of the opengl procedural textures, oops, need to investigate this :( Used to get about 70fps with the astext texture alone, this is now down to 10ish with software textures. This might be Mesa3.3beta. - dtsimple is updated to demonstrate how to do things with the cleaner, more consistent interface. - Added new constructor for csImageMemory - Fixed typo in memdbg.sh |
From: samuel h. <sa...@sl...> - 2000-06-13 10:29:11
|
Date: Tuesday June 13, 2000 @ 3:26 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv17270 Removed Files: ogl_dyntexback.cpp ogl_dyntexback.h ogl_dyntexsoft.cpp ogl_dyntexsoft.h Log Message: - Changed names from dynamic textures to the more correct term procedural textures. - The iGraphics3D method CreateOffScreenRenderer is now gone. All drivers are updated. - The software drivers procedural textures are now more memory efficient. - By default the software procedural textures use the main renderers texture manager, which makes it more consistent with the glide and back buffer opengl implementations. Within this mode the engine can render to the texture. - The CS_TEXTURE_DYNAMIC_SHARE_HINT is now gone. In its place is a new hint CS_TEXTURE_PROC_ALONE. When this flag is selected the software procedural textures run internally at 8bit, they share and utilise their own 8bit texture manager. (Before each procedural texture had its own texture manager and cache..this is no longer the case :). The engine cannot render to the texture in this mode. - The iTextureHandle->TextureDynamicSyncPalette is now gone. This is no longer needed, and makes the interface more consistent across implementations. In its place is ProcTextureSync (), which currently is an empty method, but is in preparation for fine grained control of mip-mapping. The software texture manager now keeps a single linked list of all 8bit canvases it services. - Rewritten the opengl software procedural texture implementation. So that it can be rendered to by the engine. - Added a force32bitsoftware additional flag to opengl.cfg, which performs better with mesa and 16bit displays with a voodoo2. However, the problem with the transposition of red and blue returns, this is probably a bug in Mesa3.3beta. - This is how it now works: csOpenGLProcSoftware now wraps an instance of csSoftProcTexture3D. This instance is created via a new interface iSoftProcTexture. csSoftProcTexture3D creates its own texture manager and canvas. Subsequent software procedural textures share this texture manager. Each procedural texture registers itself with the software texture manager, and passes its handle back to the csOpenglProcSoftware class which stores it in a vector along with its opengl texture handle. The app writer registers and prepares all textures with the opengl texture manager, and then starts rendering. Each texture handle not already present within the vector is registered and prepared with the software texture manager and its handle stored with its opengl counterpart in a vector. Each iGraphics3D call which utilises a texture is intercepted and the opengl texture handle swapped for its software counterpart. On Print (csRect) the opengl texture is updated with the new procedural texture state, and also its software counterpart. - This change has required modifying the software drivers so that the texture handle is not referred to within the iPolygonTexture structure. - The CS_TEXTURE_PROC_ALONE_HINT has the effect of disabling the updating of the software texture managers versions of the procedural textures, which improves performance but disallows the engine from rendering to any procedural textures. For this mode to operate all textures need to possess this flag otherwise it'll revert to the slower mode. - Fixed the colours on the opengl back buffer implementation. Voodoo2 owners now need Mesa beta3.3 from cvs for this to work. Unfortunately glCopySubTexImage2D is now broken in cvs so I cant implement this optimisation. The texture probably still renders inverted, it does on the voodoo2. I dont think there is an opengl trick to reinvert the texture, but I could be wrong. Possible solutions are to intercept every draw call and invert these or to copy over from the framebuffer to the texture line by line. The latter way is going to be *slow*, the former would involve modifying transformation matrices (i.e. rotating by 180 degrees the world to camera matrix about the lookat vector) within the driver and inverting all vertices which are in screen co-ordinates. I wait for a better suggestion :). - Lastly Ive destroyed the performance of the opengl procedural textures, oops, need to investigate this :( Used to get about 70fps with the astext texture alone, this is now down to 10ish with software textures. This might be Mesa3.3beta. - dtsimple is updated to demonstrate how to do things with the cleaner, more consistent interface. - Added new constructor for csImageMemory - Fixed typo in memdbg.sh |
From: samuel h. <sa...@sl...> - 2000-06-13 10:30:56
|
Date: Tuesday June 13, 2000 @ 3:27 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv17572 Added Files: ogl_proctexback.cpp ogl_proctexback.h ogl_proctexsoft.cpp ogl_proctexsoft.h Log Message: - Changed names from dynamic textures to the more correct term procedural textures. - The iGraphics3D method CreateOffScreenRenderer is now gone. All drivers are updated. - The software drivers procedural textures are now more memory efficient. - By default the software procedural textures use the main renderers texture manager, which makes it more consistent with the glide and back buffer opengl implementations. Within this mode the engine can render to the texture. - The CS_TEXTURE_DYNAMIC_SHARE_HINT is now gone. In its place is a new hint CS_TEXTURE_PROC_ALONE. When this flag is selected the software procedural textures run internally at 8bit, they share and utilise their own 8bit texture manager. (Before each procedural texture had its own texture manager and cache..this is no longer the case :). The engine cannot render to the texture in this mode. - The iTextureHandle->TextureDynamicSyncPalette is now gone. This is no longer needed, and makes the interface more consistent across implementations. In its place is ProcTextureSync (), which currently is an empty method, but is in preparation for fine grained control of mip-mapping. The software texture manager now keeps a single linked list of all 8bit canvases it services. - Rewritten the opengl software procedural texture implementation. So that it can be rendered to by the engine. - Added a force32bitsoftware additional flag to opengl.cfg, which performs better with mesa and 16bit displays with a voodoo2. However, the problem with the transposition of red and blue returns, this is probably a bug in Mesa3.3beta. - This is how it now works: csOpenGLProcSoftware now wraps an instance of csSoftProcTexture3D. This instance is created via a new interface iSoftProcTexture. csSoftProcTexture3D creates its own texture manager and canvas. Subsequent software procedural textures share this texture manager. Each procedural texture registers itself with the software texture manager, and passes its handle back to the csOpenglProcSoftware class which stores it in a vector along with its opengl texture handle. The app writer registers and prepares all textures with the opengl texture manager, and then starts rendering. Each texture handle not already present within the vector is registered and prepared with the software texture manager and its handle stored with its opengl counterpart in a vector. Each iGraphics3D call which utilises a texture is intercepted and the opengl texture handle swapped for its software counterpart. On Print (csRect) the opengl texture is updated with the new procedural texture state, and also its software counterpart. - This change has required modifying the software drivers so that the texture handle is not referred to within the iPolygonTexture structure. - The CS_TEXTURE_PROC_ALONE_HINT has the effect of disabling the updating of the software texture managers versions of the procedural textures, which improves performance but disallows the engine from rendering to any procedural textures. For this mode to operate all textures need to possess this flag otherwise it'll revert to the slower mode. - Fixed the colours on the opengl back buffer implementation. Voodoo2 owners now need Mesa beta3.3 from cvs for this to work. Unfortunately glCopySubTexImage2D is now broken in cvs so I cant implement this optimisation. The texture probably still renders inverted, it does on the voodoo2. I dont think there is an opengl trick to reinvert the texture, but I could be wrong. Possible solutions are to intercept every draw call and invert these or to copy over from the framebuffer to the texture line by line. The latter way is going to be *slow*, the former would involve modifying transformation matrices (i.e. rotating by 180 degrees the world to camera matrix about the lookat vector) within the driver and inverting all vertices which are in screen co-ordinates. I wait for a better suggestion :). - Lastly Ive destroyed the performance of the opengl procedural textures, oops, need to investigate this :( Used to get about 70fps with the astext texture alone, this is now down to 10ish with software textures. This might be Mesa3.3beta. - dtsimple is updated to demonstrate how to do things with the cleaner, more consistent interface. - Added new constructor for csImageMemory - Fixed typo in memdbg.sh |
From: samuel h. <sa...@sl...> - 2000-06-13 11:57:53
|
Date: Tuesday June 13, 2000 @ 4:54 Author: samuel Update of /cvsroot/crystal/CS/plugins/video/renderer/opengl In directory slayer.i.sourceforge.net:/tmp/cvs-serv7888/plugins/video/renderer/opengl Modified Files: ogl_proctexsoft.cpp Log Message: typo corrected |