Commit Graph

1939 Commits

Author SHA1 Message Date
c1ec44d751 ogl_tex: work around bug #69; greatly simplify upload implementation; add support for emulating s3tc
tex: add support for generating mipmaps in software (simplifies
ogl_tex_upload)
all codecs: change interface, adding "restrict" keyword; rename util
functions to tex_util
tex_dds: support for decompressing images with mipmaps included

This was SVN commit r2909.
2005-10-12 04:41:28 +00:00
e9864faa97 all resource implementations:
- add automatically called validate function
- make sure dtors correctly handle partial reload failures

all file code: IO routines renamed to io_* from *_io

h_mgr: add suballocator for filenames; some reorganization+cleanup;
better example code and added some notes to docs

snd: reorg to move resource methods next to struct

This was SVN commit r2907.
2005-10-12 04:35:01 +00:00
c498468fd0 wsdl(+main): add support for cleanly shutting down game if X clicked or Alt+F4 pressed. also cleanup; correctly declare SDL_Event
dyn_array: add pool allocator - see comments.
file(+gamesetup): add suballocator for aiocb (requires shutdown); revise
validator; rename file_*_io to file_io_*

This was SVN commit r2906.
2005-10-12 04:27:55 +00:00
ece006f43e sysdep: add restrict keyword (placebo if not supported)
gfx: extern "C"-ed
wtime, util, win, wdbg_sym: minor / commenting only
wdetect: don't skip gfx_card detect if buffer already filled
glext_funcs: remove obsolete defs

detect: call both OpenGL and platform-specific gfx_card detect; cleanup
vendor name to remove copyright/Inc crap

ogl: remove some variables that don't belong. moved vendor cleanup to
detect. moved S3TC emu code to ogl_tex

This was SVN commit r2905.
2005-10-12 04:22:44 +00:00
990e343ae6 renderer: load/unload water textures (similar to alpha maps); do that in delay load and avoid leaking them.
GUIrenderer: add oglSquelchError

lib.h: add feq() (checks for floating point equality); remove redundant
if from SAFE_DELETE
maths: use new feq()
Model*RData, VertexArray: fix trivial warnings

This was SVN commit r2904.
2005-10-12 04:16:41 +00:00
de5361047a Player colour rendering fallback now looks exactly the same as the fast path
again (using multi-pass).

This was SVN commit r2902.
2005-10-12 01:07:01 +00:00
e05ca36bc5 Changed water color/depth/alpha again
This was SVN commit r2897.
2005-10-10 23:05:53 +00:00
1b59f4c56e Keep renderer in sync with simulation when running too slowly for the sim to keep up
This was SVN commit r2895.
2005-10-10 19:49:02 +00:00
f2ccab089c new cumulative timer as requested for entity slowdown investigation.
use SUM_TIMER; see comments in source+header.

(i've tested this on my laptop, but only get as far as the main menu.
hopefully this won't break anything :S)

This was SVN commit r2893.
2005-10-10 17:33:34 +00:00
6efb1e1c00 Single pass player color rendering.
Falls back to a simpler formula when only 2 TMUs are available.
CRenderer is now a JS object called "renderer" for scripting.

This was SVN commit r2891.
2005-10-10 14:15:28 +00:00
faa6a78304 Added LOS setting to GameAttributes. Also fixed a small bug with LOS rendering (the patch's render data wasn't updated for LOS until the second frame after it became visible, displaying it in black for 1 frame).
This was SVN commit r2887.
2005-10-10 03:35:32 +00:00
c468eedbbb Sped up LOS rendering.
This was SVN commit r2880.
2005-10-09 08:14:42 +00:00
57cfc7c6ac Made LOS drawn using terrain vertex color (which requires some terrain render data to be rebuilt each frame, but is faster).
This was SVN commit r2878.
2005-10-09 04:40:18 +00:00
aa1348b6a8 Atlas: Disable LOS when editing. Set up initial terrain data before starting CGame (since initialisation of LOS (and probably other things in the future) wants to know about the terrain).
World: Deallocate LOSManager.

This was SVN commit r2877.
2005-10-09 04:29:58 +00:00
0ed2815c8b Added initial version of LOS, and updated minimap to show both LOS and water.
LOS issues still outstanding:
- LOS looks ugly because of quad tesselation into 2 triangles
- Quad tesselation is unspecified by OpenGL (in fact using GL_QUADS on
LOS quads seemed to give different tesselations than it did for the
underlying terrain quads, but terrain rendering also used GL_QUADS).
This should be fixed once we decide on the quad tesselation issue.
- Units with traits.vision.permanent set are visible through FOW even if
you havent seen them before; this should only be true when you have seen
them before. But it gets even more complicated - if a permanent unit
seen through FOW dies or gets upgraded or something, perhaps you should
remember the old version. I'm not completely sure how to do this
(probably involves cloning its actor somehow).

This was SVN commit r2876.
2005-10-09 03:43:03 +00:00
7ebdefec4b Atlas: improved brushes
This was SVN commit r2875.
2005-10-09 03:26:16 +00:00
8bc8bcb740 Atlas: more flexible brushes
This was SVN commit r2868.
2005-10-08 03:55:21 +00:00
29d6f420fd GameView: removed unused ancient camera code.
Terrain: nicer handling of negative map coordinates (mainly for Atlas
brush previews that fall over the edge).
Misc: reverted seconds->microseconds.

This was SVN commit r2866.
2005-10-07 21:09:29 +00:00
04650efe7a Lots of gcc -Wall fixes. The common ones:
- switch() statements don't handle all values in an enum
- missing \n at end of file
- non-virtual destructors in classes containing virtual functions
- order of initializers in constructor initializer lists
... some other stuff (signedness, nested comments, unused variables) as
well.

This was SVN commit r2864.
2005-10-07 15:24:29 +00:00
8529426fa8 Optimisation: Don't recalculate actor transform data for entities that haven't moved
This was SVN commit r2862.
2005-10-07 02:44:54 +00:00
dbd58f4011 Remove CRenderer::Close(), which wasn't called anyway and the only reasonable
calling site would have been just before the destructor.
m_VertexShader is no longer leaked.

This was SVN commit r2860.
2005-10-06 16:07:36 +00:00
greybeard
6b25cafe05 The const size_t GFX_DRV_VER_LEN was increased from 64 to 256 to accommodate extraneous drivers found in the windows registry. This was made to prevent an assertion in wdetect.
This was SVN commit r2858.
2005-10-06 03:45:33 +00:00
bc8eba1002 Work around a bug in ATI's Linux OpenGL driver.
This was SVN commit r2857.
2005-10-06 03:29:26 +00:00
13697b8512 Stupid bug in VertexArrayIterator template - forgot a return *this.
This was SVN commit r2854.
2005-10-05 16:54:10 +00:00
f1ee2cd66d Add the notion of render paths and an appropriate configuration option.
Add Ogl_Shader and Ogl_Program handle types for shaders/programs loaded
from
files.
In the vertexshader render path, use a vertex program for lighting for
optimization.

This was SVN commit r2853.
2005-10-05 16:42:09 +00:00
a4fc7105be Explicitly call VertexBufferManager cleanup code, since we can't rely on
the order of destructors called for global instances.

This was SVN commit r2846.
2005-10-04 20:54:47 +00:00
721f6e4a1e Atlas: [very] primitive brushes
This was SVN commit r2843.
2005-10-04 02:50:59 +00:00
5e3b6fcbe3 goto crosses initialization (deja vu? ;)).
This was SVN commit r2840.
2005-10-03 19:37:45 +00:00
b8c2f424e7 glDrawRangeElements -> glDrawRangeElementsEXT (fixes compilation error; EXT/ARB/etc extensions need to be used for everything not in GL1.1)
Reinserted mu-like symbol.
Fixed some minor warnings.

This was SVN commit r2838.
2005-10-03 16:04:55 +00:00
d367014972 vfs_store: set return value to #bytes written
fix 2 bugs in tex / ogl_tex reported by philip (related to caching) -
thanks!
tex: documented header and improved implementation. add tex_transform_to
for convenience. change tex_write to require going through tex_wrap.

This was SVN commit r2837.
2005-10-03 12:57:31 +00:00
6fc1f45fa6 Stab at fixing the VertexArray compile error on VC++.
Added float-to-byte color conversion, including an SSE assembler
version.
Model renderer: Push UV coordinates into a shared vertex array and use
bytes instead of floats for the color array, thereby, significantly
reducing
the total size of vertex arrays.

This was SVN commit r2827.
2005-10-03 03:41:42 +00:00
a05e712319 Added VertexArray & co. classes to simplify a flexible, render path dependent
vertex array layout.
Add CModelDefRData, a per-CModelDef render data class.

This was SVN commit r2826.
2005-10-02 21:11:11 +00:00
ffd8630c45 Updated autobuilder to get the .pdb files from 'system'.
Deleted ps_test, since it isn't updated by the autobuilder and will be
out of date.
Removed console history file, since it doesn't need to be
version-controlled.

This was SVN commit r2823.
2005-10-01 04:26:12 +00:00
a92e92cd46 Basic GL_ARB_vertex_shader detection.
Remove a redundant copy operation in ModelRData::BuildVertices

This was SVN commit r2822.
2005-09-30 22:23:48 +00:00
99c6af533d fix for bug#68. allows opening hidden or system dirs because on some machines, the Windows dir is marked as such.
This was SVN commit r2820.
2005-09-30 15:24:03 +00:00
19b66bf0ff Use BOOST_PP_CAT to delay token pasting until arguments are fully evaluated.
Fixes compile error on g++-3.3

This was SVN commit r2819.
2005-09-30 15:16:03 +00:00
2790981eae CVSROOT: doesn't seem particularly useful now
ObjectBase: removed support for old actor format
Various: reduced sometimes-unnecessary header inclusions
Atlas: slightly nicer tool and message systems

This was SVN commit r2816.
2005-09-30 00:59:42 +00:00
ae20f157bc Accidentally committed experimental changes. Sorry about that.
This was SVN commit r2815.
2005-09-29 22:40:13 +00:00
c92c9376b9 Fix out-of-range write to the keys[] array, caused by fake SDL_KEY* events.
Pressing the Windows key no longer crashes the Linux build.

This was SVN commit r2814.
2005-09-29 22:22:43 +00:00
fff184b8fb Added sanity checks in hotkey handling.
This was SVN commit r2813.
2005-09-29 22:06:20 +00:00
38dfc3da99 Hardware cursor isn't implemented for X.
Remove dead sys_cursor_create references.

This was SVN commit r2812.
2005-09-29 21:48:04 +00:00
d98abf0685 final refactor (i hope). split up fmt / int_fmt determination to allow override of fmt without overriding int_fmt (useful for unifont.cpp). this changed the signature of ogl_tex_upload. better explained flags in OglTex and warn_if_uploaded.
also a few improvements / stomped on some warnings.

This was SVN commit r2809.
2005-09-29 17:33:30 +00:00
cd2f3948dd changed sys_cursor interface to load directly from file; can add createFromMemory version later if ever needed.
cursor: reflects the above; much simplified now.

ogl_tex: preserve all texture state across reloads. add quality
mechanism (perf boost on older cards). split up upload code. add
ogl_tex_transform(). add more docs.

renderer, GUIrenderer, unifont: bring in line with ogl_tex changes (int
-> uint and call setters before ogl_tex_upload)

GameSetup.cpp: add tex quality mechanism

This was SVN commit r2803.
2005-09-29 05:00:20 +00:00
b67b023513 Add more verbosity to the shutdown sequence.
Shutdown doesn't look clean on Linux, and this might help highlight
current and future problems. Besides, we don't want shutdown to take
ages, do we? ;)

This was SVN commit r2801.
2005-09-29 02:30:30 +00:00
a769783d5d Fix scroll wheel zooming on Linux.
Refactored HandleEvent into CGameView.

This was SVN commit r2800.
2005-09-28 23:57:55 +00:00
7fbbc1b0c6 Darken the background of the profile viewer for better readability.
This was SVN commit r2798.
2005-09-28 22:35:08 +00:00
3ded398729 g++ forbis goto across variable declarations.
This was SVN commit r2796.
2005-09-28 18:46:26 +00:00
f5613e74c8 Changed water color to Jason's dark blue.
This was SVN commit r2792.
2005-09-28 05:53:22 +00:00
pyrolink
41aa9ebda1 Added CameraLock() which makes the camera scroll smoothly over terrain and makes sure it is within g_YMinOffset+Terrain height and g_MaxZoomHeight, which are declared in main.cpp
This was SVN commit r2790.
2005-09-28 03:49:11 +00:00
pyrolink
56257d110e Added changes to interactive minimap so that the camera will stay g_YMinOffset away from terrain it's warped to.
This was SVN commit r2789.
2005-09-28 03:46:05 +00:00