Kp
537e9fef37
Throw if a bitmap starts outside its parents boundaries
...
Such bitmaps will, at best, fail to render due to clipping. These
should never happen, so report it with an exception if it does.
2021-02-25 03:53:49 +00:00
Dmitry Grigoryev
fbd05a1592
optimize include files (include what you use)
2021-02-06 21:38:50 +01:00
Kp
775d039083
Expand gcc memcpy workaround to gcc-10
...
The upstream bug is still not fixed.
2021-01-17 22:23:23 +00:00
Kp
fc63029833
Move more symbols into namespaces
2020-12-26 21:17:29 +00:00
Kp
6285878c4c
Add color_palette_index type alias, to note palette-related uint8_t
2020-07-16 02:31:04 +00:00
Kp
8cc7be4986
Use std::bitset to track used colors
...
This reduces memory usage over using std::array<bool> for the same
number of bits.
2020-07-16 02:31:04 +00:00
Kp
db7b4b3f88
Refer to <memory> directly, not through "compiler-make_unique.h"
2020-05-02 21:18:43 +00:00
Kp
cc38cdf4b8
Qualify uses of std::make_unique
2020-05-02 21:18:42 +00:00
Kp
8839f538e0
Refer to <array> directly, not through "compiler-array.h"
2020-05-02 21:18:42 +00:00
Kp
53761500f1
Qualify uses of std::array
2020-05-02 21:18:42 +00:00
Kp
9cee93abb1
Require support for C++14 std::exchange
2020-05-02 21:18:42 +00:00
Kp
334da8e8e6
Move some SDL-only symbols into !DXX_USE_OGL
2019-08-06 02:59:41 +00:00
Kp
dd8cfa763f
Expand gcc memcpy workaround
...
Add link to upstream bug report.
2019-07-22 00:51:01 +00:00
Kp
e2692d26ab
Clear grs_main_bitmap before initializing
...
No code path has been observed causing a leak by reinitializing without
resetting, but add an explicit reset to prevent future mistakes.
2019-07-07 22:00:02 +00:00
Kp
a52d8106ce
Use xrange for loops with simple identifier start and simple identifier end
...
s/for\s*(\s*\(\w\+\)\s\+\(\w\+\)\s*=\s*\([A-Za-z_0-9]\+\)\s*;\s*\2\s*!=\s*\([A-Za-z_0-9]\+\)u\?\s*;\s*\(++\s*\2\|\2\s*++\s*\))/range_for (const \1 \2, xrange(\3, \4))/
2019-05-04 18:27:37 +00:00
Kp
3bd10610fc
Use xrange for loops with zero start and simple identifier end
...
s/for\s*(\s*\(\w\+\)\s\+\(\w\+\)\s*=\s*0\+u\?\s*;\s*\2\s*!=\s*\([A-Za-z_0-9]\+\)u\?\s*;\s*\(++\s*\2\|\2\s*++\s*\))/range_for (const \1 \2, xrange(\3))/
2019-05-04 18:27:37 +00:00
Kp
15ac8a5ac6
Add utility xrange for range-based loops with precomputed bounds
...
Utility xrange, inspired by the Python2 feature of the same name,
provides an object that returns successive values from [start, end). It
is useful when the end index is known in advance, and is particularly
helpful when that index is expensive to recompute.
2019-05-04 18:27:36 +00:00
Kp
7bcbaae230
Tighten protection against grs_bitmap bm_data confusion
...
Bitmaps based on grs_main_bitmap own their data. Bitmaps based on
grs_bitmap do not. Adjust prototypes to prevent initializing a
grs_main_bitmap with data it will not own.
2019-02-02 18:36:39 +00:00
Kp
12b57e84e6
Switch most in-tree http:// links to https://
...
For each link given as http://, verify that the site is accessible over
https:// and, if so, switch to it. These domains were converted:
* llvm.org
* clang.llvm.org
* en.cppreference.com
* www.dxx-rebirth.com
* www.libsdl.org
* www.scons.org
2018-09-02 00:57:29 +00:00
Kp
b53be4943c
Update memcpy blacklist
2018-08-20 00:34:16 +00:00
Kp
f33877d379
Make grs_main_bitmap::grs_main_bitmap() clear the whole structure
2018-07-14 17:23:15 +00:00
Kp
ca2b1e0cf0
Remove build_colormap_good parameter used
...
`build_colormap_good` only took `used` to clear it. Only one caller
needed it cleared. Move the clear into that caller. Remove the
parameter from all calls.
2018-03-08 04:21:18 +00:00
Kp
b6e2205b9f
Simplify palette color tracking
...
Callers only care whether a color is used, not how often it is used.
2018-03-08 04:21:18 +00:00
Kp
ff49e949d4
Fix savegame thumbnail previews
...
Transposed arguments to fill_n caused rls_stretch_scanline to write
garbage to the preview buffer.
Reported-by: Havner <https://github.com/dxx-rebirth/dxx-rebirth/issues/354 >
Fixes: 8aadb4be5b
("Use fill_n instead of inline loop to write scanline")
2017-11-06 04:24:16 +00:00
Kp
7eadc218a6
Add debugging code to trace global canvas updates
2017-11-05 20:49:09 +00:00
Kp
8684cf5571
Remove unused gr_bitblt_dest_step_shift
...
It is always 0, and has been since it was imported in D2X.
2017-11-01 02:01:20 +00:00
Kp
0909b126ac
Simplify gr_rle_expand_scanline_generic
...
Both the `if` and `else` paths had the same loop and post-loop
processing. The `if` path was a strict subset of the `else` path. The
`else` path had one setup statement, and was otherwise equal to the `if`
path. Move the shared statements outside the guarded path.
2017-10-06 01:59:09 +00:00
Kp
8aadb4be5b
Use fill_n instead of inline loop to write scanline
2017-10-06 01:59:09 +00:00
Kp
49cc3aa324
Work around i686-w64-mingw32-g++ compiler crash
2017-04-22 21:23:55 +00:00
Kp
8184a4609b
Simplify gr_rle_decode
2017-04-08 16:48:17 +00:00
Kp
2e1e1b1185
Fix pointer/array::iterator mismatch in scalec.cpp
2017-04-08 16:48:17 +00:00
Kp
297746024b
Use enum for GR blending mode
2017-03-18 18:07:36 +00:00
Kp
719de35484
Pass grs_bitmap to gr_pixel
2017-03-11 19:56:23 +00:00
Kp
9dbec8433d
Pass grs_bitmap to gr_upixel
2017-03-11 19:56:23 +00:00
Kp
9311548eba
Pass grs_bitmap to ogl_upixelc
2017-03-11 19:56:23 +00:00
Kp
beaa49a7ba
Pass destination bitmap to scale_bitmap
2017-02-11 21:42:34 +00:00
Kp
d779a26307
Pass canvas to gr_bm_ubitblt0x_rle
2017-02-11 21:42:33 +00:00
Kp
f8b057d43d
Pass canvas to gr_bm_ubitbltm
2017-02-11 21:42:32 +00:00
Kp
9cc5d6f439
Pass canvas to gr_bm_ubitblt
2017-02-11 21:42:32 +00:00
Kp
43a700a200
Prefer grs_main_bitmap::reset() to direct reinitialization
...
This ensures that any allocated resources are always freed.
2017-02-11 21:42:31 +00:00
Kp
c242319829
Use RLE helper for bitblt RLE decoding
2017-02-11 21:42:30 +00:00
Kp
c1440ff995
Factor out RLE expansion
...
Many sites open-coded walking a bitmap and handling whether it was
RLE_BIG. Factor that out into a helper class and redirect those sites
to use it.
2017-02-11 21:42:30 +00:00
Kp
d40c636ecc
Reorder gr_free_bitmap_data to improve tail call optimization
2017-02-08 23:34:41 +00:00
Kp
764d20d4e1
Make grs_bitmap::bm_flags private
2017-01-15 00:03:13 +00:00
Kp
96cc5a40b8
Remove dead preprocessor guards
...
Some bitblt code had guards of the form:
#if A
xxx
#if !A
yyy
#endif
zzz
#endif
If A is true, !A is false, so the inner block can never be included.
Delete it.
2017-01-15 00:03:12 +00:00
Kp
c914131009
Pass canvas to gr_rle_expand_scanline_generic
2017-01-01 00:45:45 +00:00
Kp
22e364e030
Pass canvas to gr_clear_canvas
2017-01-01 00:45:45 +00:00
Kp
0905aefa0a
Pass canvas to gr_rect
2017-01-01 00:45:45 +00:00
Kp
794dcce327
Pass canvas to gr_urect
2017-01-01 00:45:44 +00:00
Kp
774dedd21d
Pass canvas to gr_bm_pixel
2017-01-01 00:45:44 +00:00