Commit graph

784 commits

Author SHA1 Message Date
JoshuaJB
ef888367aa Cleanup tex_codec, fixes #2456, patch by IronNerd.
This was SVN commit r14836.
2014-03-13 04:16:20 +00:00
JoshuaJB
a5639631ee Texture system refactoring and cleanup, fixes #2455, patch by IronNerd.
This was SVN commit r14835.
2014-03-13 02:37:05 +00:00
Ykkrosh
35d48d2fe8 ...and increase HDATA_USER_SIZE so OglTex actually fits
This was SVN commit r14122.
2013-11-09 18:49:35 +00:00
Ykkrosh
1ad9d5424a Fix error at startup on 64-bit builds.
OglTex had a size_t added, which pushed it over HDATA_USER_SIZE.
Use u32 instead to minimise the difference between platforms.

This was SVN commit r14121.
2013-11-09 18:39:45 +00:00
Ykkrosh
3c47b12cbe Display texture memory usage in profiler's renderer stats
This was SVN commit r14116.
2013-11-09 01:03:23 +00:00
Ykkrosh
5778484a77 Refactor text renderer
Replace unifont with CFont and CFontManager, since the h_mgr interface
was
needlessly inconvenient.

Load the font textures through CTextureManager, to support dynamic
reloading (e.g. when resetting GL state - see #741).

Add CFontMetrics as a convenient wrapper for code that just wants to
measure text.

Fixes #1117.

This was SVN commit r14016.
2013-10-18 15:53:07 +00:00
historic_bruno
a8a968d32c Catch exceptions by reference (by convention), based on patch from Markus, refs #1852
This was SVN commit r13421.
2013-05-22 22:27:53 +00:00
historic_bruno
011ba8255e New sound system implementation by stwf, refs #1223, #961.
Enables audio on OS X, refs #685, #931.
Fixes music not playing after a game, refs #946.

This was SVN commit r12428.
2012-08-15 00:10:44 +00:00
Deiz
20d75a3880 Free cursors before shutting down SDL. Fixes #1355.
This was SVN commit r12271.
2012-08-03 16:48:02 +00:00
historic_bruno
574f4db8ab Fixes font texture handling to use format auto-detection when possible, based on patch by Deiz/F00. Fixes #1508
This was SVN commit r12073.
2012-07-05 01:05:09 +00:00
historic_bruno
b101f5ad01 Adds hardware cursors for Linux and OS X. Requires libxcursor on Linux. Fixes #748.
Adds explicit links to frameworks we need on OS X.

This was SVN commit r11596.
2012-04-21 07:53:53 +00:00
Ykkrosh
36107cb7e1 GLES compatibility for particles and shadows.
Fix invalid enum errors.
Fix shader texture binding.

This was SVN commit r11372.
2012-03-19 21:10:14 +00:00
Ykkrosh
6fc508f662 Fix non-PCH build.
Fix typo.

This was SVN commit r11327.
2012-03-13 21:39:01 +00:00
historic_bruno
7fa6afac37 Corrects some Doxygen comments and adds a few others of interest.
This was SVN commit r11209.
2012-03-01 03:55:05 +00:00
Ykkrosh
5009636e39 Improve Android compatibility.
Basic touchscreen input for testing.
Better GLSL support for map rendering.

This was SVN commit r11155.
2012-02-25 17:29:27 +00:00
Ykkrosh
832a51da80 GLSL text support
This was SVN commit r11080.
2012-02-15 21:53:13 +00:00
Ykkrosh
9972eb8cae Enough GLES compatibility to reach the menu screen
This was SVN commit r11064.
2012-02-13 20:53:24 +00:00
Ykkrosh
baff889321 Fix invalid varargs
This was SVN commit r11054.
2012-02-12 21:05:13 +00:00
Ykkrosh
531b40578a More GLES compatibility.
Add config option to disable hardware cursors on Windows.

This was SVN commit r11053.
2012-02-12 20:45:31 +00:00
Ykkrosh
a3f168b887 Initial support for GLSL generic vertex attributes in shader API, for GLES compatibility.
Specify GLSL version in shader files, for better error detection.

This was SVN commit r11040.
2012-02-09 17:55:25 +00:00
Ykkrosh
5cdb2ebd70 Fix cursor winding
This was SVN commit r10992.
2012-01-30 12:13:43 +00:00
Ykkrosh
cc5a0fba4e Use shader API for GUI text.
Flip GUI quads so we don't have to disable back-face culling.

This was SVN commit r10989.
2012-01-30 00:27:23 +00:00
Ykkrosh
8be430eb30 Remove obsolete ogl_shader
This was SVN commit r10984.
2012-01-29 12:23:16 +00:00
Ykkrosh
adbd7633dd # Initial GLSL rendering support
This was SVN commit r10978.
2012-01-29 01:22:22 +00:00
Ykkrosh
63e151fbd5 Slightly more Android compatibility
This was SVN commit r10975.
2012-01-28 16:38:21 +00:00
Ykkrosh
e64a3d3946 Experiment a little with OpenGL ES
This was SVN commit r10915.
2012-01-15 23:15:31 +00:00
Ykkrosh
0ec4242962 Detect and fix printf signedness errors. Fixes #1086, #1087.
This was SVN commit r10846.
2012-01-01 16:43:10 +00:00
Ykkrosh
fbff0aa98d Fix printf argument types
This was SVN commit r10529.
2011-11-13 18:31:06 +00:00
janwas
80df13f47b add support for recursive mutex on windows; ensure h_mgr uses them (pthread doesnt guarantee default type is recursive)
This was SVN commit r10247.
2011-09-10 22:51:51 +00:00
janwas
78fe8e1e62 h_mgr: fix simple double-free warning triggered at shutdown when an object's child was freed AND the all objects were forcibly freed (complicated by the fact that the pool allocator overwrites freed storage, which made this appear to be a tag conflict).
fixes #860, #915, #920

This was SVN commit r10243.
2011-09-10 20:04:01 +00:00
janwas
5406a68959 feature request by philip: instead of refusing to load textures larger than the OpenGL limit, ensure they have mipmaps (unless it's s3tc, which would be too expensive to recompress) and skip levels until it fits
This was SVN commit r10043.
2011-08-20 17:56:12 +00:00
Ykkrosh
b9bd7ff86e Fix signed/unsigned comparison warning
This was SVN commit r9972.
2011-08-06 12:31:48 +00:00
janwas
083e7a41fd fix typo
This was SVN commit r9962.
2011-08-04 17:27:14 +00:00
janwas
0748c5a75e cleanup and simplification of the really old h_mgr code.
replace array-of-pages data structure with demand-committed VM => allows
simple allocation of new resources without having to search for the
first free index. I suspect the cause of multiple reported bugs (refs
#860, #899, #915) was a race. Most issues are fixed, but the pool's
freelist also needs to be made thread-safe and lock-free. this has
performance and 64-bit portability implications, so I'll leave it for
later (Pool is due for some serious refactoring anyway).

please post a comment if this or similar issues persist.

This was SVN commit r9961.
2011-08-04 17:11:16 +00:00
janwas
6304797cbd pool - safely handle zero-sized allocations (fixes #909)
snd_mgr - remove no longer needed hacks for native OpenAL
implementations
test_wdbg_sym.h - belated commit of warning fix

This was SVN commit r9944.
2011-07-31 09:42:57 +00:00
Ykkrosh
8fee3d8ef8 # New territory border rendering.
Add textured line overlay rendering.
Change terrain height calculations to be triangulation-dependent for
improved accuracy.
Add triangulation-dependent terrain normal function.
Support separate S/T wrap modes for textures.
Rename CVector2D_Maths since it no longer conflicts with simulation
CVector2D.
Coalesce freed chunks in vertex buffers, to avoid excessive
fragmentation.
Add some things to help debug vertex buffer allocation a little.

This was SVN commit r9929.
2011-07-30 00:56:45 +00:00
Ykkrosh
708e9cea05 Fix looping of non-streaming sounds
This was SVN commit r9877.
2011-07-18 17:56:17 +00:00
janwas
0d23e3f333 post-alpha sync with work.
debug stack trace fixes, remove more asm, change CONTINUE/OK scheme to
OK/ALL_COMPLETE, fix tests

This was SVN commit r9871.
2011-07-18 09:21:56 +00:00
janwas
34186dd017 refactor file interface. requires workspace update
- separate file_system_util into vfs functions (-> vfs/vfs_util) and
file_system (avoids ugly fs_util namespace prefix)
- get rid of non-portable O_BINARY_NP etc. flags
- use standard O_WRONLY etc. flags instead of LIO_WRITE; but avoid the
need for specifying O_CREAT|O_TRUNC
- only open files for aio when O_DIRECT is specified (which 0ad does
not) - avoids wasting time and security issues
- return file descriptor directly instead of via output param
- waio: safer FCB mechanism that avoids mixing descriptors between lowio
and aio

This was SVN commit r9550.
2011-05-25 10:39:13 +00:00
janwas
7600c3862b refactor gfx detection code (interface), allow exporting from DLL (required at work)
This was SVN commit r9546.
2011-05-24 14:17:47 +00:00
Ykkrosh
1075e206f7 Fix some format string errors
This was SVN commit r9534.
2011-05-18 19:10:36 +00:00
janwas
7ed9a84252 avoid double-free when sounds are reclaimed and then freed.
fixes #833

This was SVN commit r9477.
2011-05-07 17:34:47 +00:00
janwas
46e5db4dc4 fix build with ICC
This was SVN commit r9475.
2011-05-07 15:47:20 +00:00
janwas
f608b44d1d fix self-test and map load on Windows (avoid mixing dir separators).
add more specific error codes (used at work)

This was SVN commit r9462.
2011-05-06 18:45:30 +00:00
janwas
5c76bc12fa refactor status code definitions: allow modules to define an array of them (more convenient+efficient).
merge ERR::NO_SYS, NOT_IMPLEMENTED into NOT_SUPPORTED
renderer: remove unnecessary ogl_shader include

This was SVN commit r9447.
2011-05-05 13:03:34 +00:00
janwas
7523894760 ENSURE(0) -> DEBUG_WARN_ERR(ERR::LOGIC) (a bit smaller, and more descriptive)
This was SVN commit r9423.
2011-05-04 12:10:17 +00:00
janwas
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
janwas
0720025073 cleanup
reduce dependency on PCH. move KiB constants to alignment, ARRAY_SIZE to
code_annotation.h.
move glext_funcs.h to external_libraries/glext_funcs.h, move part of
ogl.h to external_libraries/opengl.h
remove unused saturating arithmetic functions

This was SVN commit r9363.
2011-04-30 13:22:46 +00:00
janwas
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
janwas
6c915291cc cleanup (requires update-workspaces):
major refactor of wfilesystem - remove gotos and workaround for FAT file
times
replace more round_up of constants with Align<>
remove old unused allocators (STL aligned, matrix, some shared_ptr)
move allocator utils into separate headers.
remove lockfree, wterminal
avoid testing __cplusplus

This was SVN commit r9361.
2011-04-30 12:34:28 +00:00