Commit Graph

64 Commits (58f873acf482123bfc29c82096b6f35b7eee6b33)

Author SHA1 Message Date
Dennis Schridde 351060f21f - 1st attempt to create an API for image loading (support for PNG features like non 8bit channels still needs to be thought of). Appropriate code location is also missing (added new functions to tex.c, since they were not PNG related)
- Renamed pie_PNGLoadFile, because I got confused about pie_ vs. iV_ when working on my terrain stuff, and did not fix it when backporting to trunk
- iTexture (now aka iV_Image, s.a.) is given a depth field to enable support for different number of channels. This is required to support RGB only textures (without adding a useless alpha channel) and eg. for greyscale images like heightmaps
- Simplyfied iV_loadImage_PNG (formerly known as pie_PNGLoadFile, s.a.) and also removed lots of seemingly unnecessary conversions
- Converted page-8 from paletted to RGB for simplification. This multiplied the size by about 3x (still < 100kB)


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1580 4a71c877-e1ca-e34f-864e-861f7616d084
2007-05-01 20:34:54 +00:00
Giel van Schijndel d6758391d8 * Fix nameclash of <png.h> with lib/ivis_common/png.h
* renamed lib/ivis_common/png.[ch] to lib/ivis_common/png_util.[ch]

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1562 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-30 14:09:33 +00:00
Giel van Schijndel 82eee99004 * Move PNG dumping code from screen.c to png.c
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1560 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-29 23:00:38 +00:00
Giel van Schijndel aff4430378 * Move PNG specific code to png.[ch] (PNG saving code still needs moving though)
NOTE: this _WILL_ require updating the MSVC project file

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1559 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-29 22:19:21 +00:00
Giel van Schijndel 4548e56fe2 * Fix some signed vs unsigned comparisons
* Turn some implicit conversions of void* to something* into an explicit cast
 * remove some redundant commented out code
 * refactor some error checking code ( was: if (!error) normal exec path; else deal with error; now is: if (error) deal with error; normal exec path )

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1534 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-23 22:08:53 +00:00
Giel van Schijndel 825ac28558 * use malloc instead of a variable sized array (is slower, requires more maintenance work, but is C89 and as such MSVC compatible, *sigh*)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1526 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-23 14:28:04 +00:00
Dennis Schridde 5c79953e18 Watermelon: projfix11a:
1. Fixed a bug (I made some parenthesis order mistakes, near predictX and predictY, which might corrupt predictX, predictY)
2. Fixed a value corruption when predictX or predictY becomes negative, since proj_SendProjectile only expects UDWORD (now set them to 0 when they become negative, so the turret wont try to fire projectiles to some off-map coords)
3. Fixed zero height building bug (invincible rearm pads) when an imd's ymin is equal to ymax...

lib/ivis_opengl/screen.c: \param channels


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1524 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-23 14:08:05 +00:00
Giel van Schijndel 486ac3ed11 * Use a variable sized array for the scanline array
allocated on the stack instead of the heap, which usually is a lot faster => stack alloc = O(1), heap (malloc=heap allocater) usually O(n) or O(log n)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1522 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-22 22:36:38 +00:00
Giel van Schijndel 0ecf2cba49 * now "properly" apply fix for segfault caused by using png_destroy_read_struct to destroy a write_struct
* (r1502 had a NULL pointer to many passed in the argumentlist)

thanks to vs2k5 for this fix (sorry couldn't find any other name anywhere on the mailinglist than your email userid)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1503 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-18 21:37:49 +00:00
Giel van Schijndel 6bfe7bfa86 * Fix segfault caused by using the wrong destruction function
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1502 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-18 21:25:32 +00:00
Giel van Schijndel 68eaeab5f3 * if we malloc we should free!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1501 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-18 20:06:35 +00:00
Giel van Schijndel 108e9ec935 Cleanup
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1500 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-18 18:17:21 +00:00
Giel van Schijndel aa9a519794 * Remove support for decoding (and encoding in case of screenshot dump code) of JPEG pictures
* Remove some dead (commented out) & dirty code from multiint.c which used JPEG code (image_load_from_jpg)
 * Remove dead (commented out) code from screen.c which used JPEG code (function static GLuint image_create_texture)
 * Remove unused backdrop types from pieblitfunc.[ch]
 * Convert last JPEG files into PNG, add a "comment" property on those: "All of these are converted from JPEG files, so this is JPEG quality."

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1490 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-17 18:24:31 +00:00
Giel van Schijndel 5756890d20 * Remove inclusion of <setjmp.h> which apparently libpng wants to include first (in <png.h>)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1489 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-17 17:48:19 +00:00
Giel van Schijndel baa3dcbb2a * Add PNG screenshot dumping code, when pressing F10 (with a default keymap) both a JPEG and PNG screendump will now be output
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1488 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-17 16:53:28 +00:00
Giel van Schijndel fd3324a9fe * pcx.c: use size_t for memory buffer length (size_t is the appropiate type for this, unsigned int is not)
* change macro BUFFER_SIZE to static const JPEG_bufferSize (compiler will optimize this away)
 * char* -> unsigned char*

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1486 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-17 12:58:22 +00:00
Giel van Schijndel f49c5cbdd5 * change pie_PNGLoadMem to pie_PNGLoadFile which (as the name suggests) now loads textures directly from PNG files (rather than memory buffers)
* change pie_ReloadTexPage to use files instead of memory buffers as well
 * change data.c's resource handler mappings to now load some more fileformats directly from file (all that directly or indirectly used to depend upon pie_PNGLoadMem)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1483 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-16 22:29:44 +00:00
Giel van Schijndel 7356aa1b9a * make pie_PNGLoadMem play nice and take the buffer size as an argument rather than assuming it to be 10000000 (10 million)
* do the same with pie_ReloadTexPage which calls pie_PNGLoadMem
 * char* -> const char* in tex.c
 * fix a syntax error from r1481

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1482 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-16 20:07:56 +00:00
Giel van Schijndel dcf4cb3263 * turn `integer overflow` debug message into an assert
* dump less information in the debug log if the assert is triggered (just "integer overflow; no more filenumbers available.")

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1481 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-16 20:00:12 +00:00
Giel van Schijndel 7527047316 * char* -> const char*
* make screen dumping code (screen shotstuff) more readable and friendly to edit (behaviour should be unchanged)
 * change screenDumpToDisk:
  * now returns void (rather than the target file name of the screen shot) since its only callee (a keymap callback) ignored the return value
  * use snprintf now instead of sprintf (to prevent buffer overflows)
  * add code to detect integer overflows (maybe we should just abort() on this condition?)
 * remove an empty and commented out function (screenTextOut)

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1480 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-16 19:22:01 +00:00
Dennis Schridde ce16856887 FREE->free, MALLOC->malloc (sed+review)
This patch will create crashes where the code expects FREE to set the pointer to NULL! (Those problems should be fixed anyway.)
The only occassion where I saw this is when quiting a game, so it is not too much of an issue.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1459 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-15 10:43:05 +00:00
Dennis Schridde 25aa853f29 - Remove lots of inclusions of windows.h (and move inclusion of frame.h up)
- Remove "-%token <sval> TEXT" from audp_parser.y since it clashed with declarations in MinGW's Windows headers. It does still compile and run, but this may have harmed something anyway. Please check!
- Hack around DATADIR being defined by objbase.h in MinGW by undefining it before the inclusion of shlobj.h (incl. in main.c) This only works since the case that DATADIR is actually used on Windows is extremely rare.



git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1437 4a71c877-e1ca-e34f-864e-861f7616d084
2007-04-11 14:21:45 +00:00
Gerard Krol 2fe34ce6cc Per's patch to use texture compression, modified to always specify generic compression (and let the driver decide which compression to use) and to
only compress the texure pages, and not backdrops and other textures. This this should give a framerate increase of 5-10 fps on fillrate limited 
systems (cpu usage < 100%).


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1289 4a71c877-e1ca-e34f-864e-861f7616d084
2007-03-28 15:08:57 +00:00
Dennis Schridde ca3b5909c8 Fix indention and some minor cleanup...
Fixing type-punned pointers is difficult, especially with that HEAP_ALLOC function...


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1252 4a71c877-e1ca-e34f-864e-861f7616d084
2007-03-16 19:31:15 +00:00
Dennis Schridde 2a74242eb3 - Replaced various vectors with Vector3i and Vector3f (idea by Watermelon)
- Vector3i from lib/ivis also used in lib/audio, maybe want to move it to some more generic place?
- Replace iPoint with Vector2i
- Remove additional integer type declarations from pietypes.h
- Rename all iSprite to iTexture
- Various warning fixes: Unsigned/signed comparisons, uninitialized variables, declared but not defined symbols
- Replace DEBUG_BLOCK with DEBUG_MALLOC (it was virtually the same)


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1245 4a71c877-e1ca-e34f-864e-861f7616d084
2007-03-16 16:20:16 +00:00
Per Inge Mathisen ea50a9249c Replace hard-coded map preview size of 512 with
BACKDROP_HACK_WIDTH and BACKDROP_HACK_HEIGHT for now.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1182 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-25 12:57:04 +00:00
Per Inge Mathisen 8927a832ac Remove more dead code
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1180 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-25 12:34:18 +00:00
Per Inge Mathisen 255d2fe12e Add log message about maximum texture size, and error
checks for lack of double buffering and too small
texture support. Use --debug texture to see your
texture size (first line in output).


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1156 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-21 20:20:26 +00:00
Dennis Schridde 7fca14b129 Improve description of r1152 (fix broken font rendering in menus) and use pie_SetTexturePage(-1) in all places it was used prior to r1075.
Also clean indention.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1153 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-21 00:10:03 +00:00
Giel van Schijndel 82dd8e0bbc fixes (maybe just circumvents?) bug #8514
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1152 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-20 23:46:34 +00:00
Per Inge Mathisen 785daa97e1 Split --enable-debug into four: strict (-Werror),
yes (as before), relaxed (-O2 & -Wextra), and no
(as before). Fix two more reported warnings.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1151 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-20 16:21:19 +00:00
Per Inge Mathisen 78396463a7 Fixes informed by -Wextra for graphics code. Removes much redundant code.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1147 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-19 17:18:50 +00:00
Dennis Schridde f105fad779 Improved backdrop-loading and don't delete a texture when it just needs to be replaced.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1085 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-10 14:34:12 +00:00
Dennis Schridde 977b2ee558 - Hack in PNG backdrop loader
- Add 2 new backdrops from Terminator (http://wz2100.net/forum/index.php?topic=109.0)
- Remove unused pal parameter from pie_PNGLoadMem()


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1075 4a71c877-e1ca-e34f-864e-861f7616d084
2007-02-07 15:27:17 +00:00
Dennis Schridde 49ceba7503 Add GPL notices to all sourcecode files.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1014 4a71c877-e1ca-e34f-864e-861f7616d084
2007-01-15 20:09:25 +00:00
Giel van Schijndel 3d23a48076 * expand the use of compiler-guards (C preprocessor macros) so that not only the forward declarations and referring macros are guarded, but the referred functions as well
* remove some unused things: variables, macros (MEMORYREPORT, MEMORYTREAP)
 * fix some signing errors:
  * change assignments of/comparisons with -1 to unsigned variables ((-1) directly, not through a preprocessor directive) to ~0 (left OpenAL-code alone)
  * remove some casts to (SDWORD) in comparisons which actually cause signed/unsigned errors rather than fix them
  * redefine some vars as unsigned

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@955 4a71c877-e1ca-e34f-864e-861f7616d084
2007-01-04 17:03:32 +00:00
Per Inge Mathisen 3f88e8e4f2 Remove some more dead graphics code, and fix some warnings.
Happy new year everyone!


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@946 4a71c877-e1ca-e34f-864e-861f7616d084
2006-12-31 18:19:19 +00:00
Stefan Huehner da14eaf2ad Add some more const to char* function parameters,
which aren't modified inside the called function.



git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@853 4a71c877-e1ca-e34f-864e-861f7616d084
2006-11-23 13:28:38 +00:00
Dennis Schridde 770af57c20 Remove more extra types
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@812 4a71c877-e1ca-e34f-864e-861f7616d084
2006-11-04 23:16:51 +00:00
Dennis Schridde 67056c8d24 - Droped a lot of (nearly) unused types from lib/framework/types.h
- Remove lots of unused functions (Windows/DDraw related)
- Now store the used bitdepth in the config and thus make it configurable without having to modify the sourcecode


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@808 4a71c877-e1ca-e34f-864e-861f7616d084
2006-11-04 01:11:26 +00:00
Dennis Schridde d3cd44148d Patch by Gerard Krol: Replace STRING with char (STRING was confusingly defined to char)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@804 4a71c877-e1ca-e34f-864e-861f7616d084
2006-11-03 21:35:50 +00:00
Dennis Schridde d889ce9da7 Patch by Christian Ohm: "g++ fixes"
Mainly explicit casts, some type changes, a few fixes.

We need to have a look if this line creates any problems:
lib/script/interp.c @@ -329,7 +329,7 @@
- if(!RetStackRemember(CurEvent, (ip + 2)))       //Remember where to jump back later
+ if(!RetStackRemember(CurEvent, *(ip + 2)))      //Remember where to jump back later


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@719 4a71c877-e1ca-e34f-864e-861f7616d084
2006-09-17 20:39:25 +00:00
Dennis Schridde b9087ef4ca Patch by Stefan Huehner: "code cleanup: void 4"
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@706 4a71c877-e1ca-e34f-864e-861f7616d084
2006-09-13 21:11:11 +00:00
Per Inge Mathisen 5396324fb6 Remove lots of unused graphics code. (Did the Pumpkin guys EVER delete code?)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@686 4a71c877-e1ca-e34f-864e-861f7616d084
2006-09-03 21:33:29 +00:00
Dennis Schridde be5f08343a Remove Palette code formerly used for the software renderer. (Patch by Christian Ohm)
This seems to also fix the rader flickering without shadows. (Or was this fixed in a previous commit?)


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@681 4a71c877-e1ca-e34f-864e-861f7616d084
2006-09-03 13:35:50 +00:00
Dennis Schridde e52dba36cc Corrected false error messages, old printfs
netplay.c got a bunch of new LOG_NET debug()s whose effects on performance have not been tested


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@619 4a71c877-e1ca-e34f-864e-861f7616d084
2006-08-23 15:27:20 +00:00
Dennis Schridde 0e288f45e7 - Replace all ASSERT(( )) with ASSERT( )
- Simplify definition of ASSERT(). Now is the same for GCC and MSVC.
  This may not work on versions older than MSVC 2005. If you experience this, please report it!

git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@613 4a71c877-e1ca-e34f-864e-861f7616d084
2006-08-23 12:58:48 +00:00
Per Inge Mathisen 6d8b190950 Make SBYTE explicitly a signed char, not just a char. This would have broken
some things on platforms where 'just char' means unsigned char. Fix lots of
new signedness warnings resulting from that fix (which would have cropped
up on unsigned char platforms anyway). Also implement a small subset of
stdint.h for windows platform in frame.h, hope this does not create any
conflicts. This allows us to use types like uint64_t where relevant.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@569 4a71c877-e1ca-e34f-864e-861f7616d084
2006-08-15 18:20:36 +00:00
Per Inge Mathisen 65175a10ca Add support for MacOSX and big endian platforms. Patch by
iamtheari@gmail.com with changes by me.


git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@558 4a71c877-e1ca-e34f-864e-861f7616d084
2006-08-12 10:45:49 +00:00
Per Inge Mathisen ecb223924a Remove DirectX types
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@553 4a71c877-e1ca-e34f-864e-861f7616d084
2006-08-10 16:05:52 +00:00