Blender V5.0
compression.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2025 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#include "BLI_compression.hh"
10
11namespace blender {
12
13void filter_transpose_delta(const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)
14{
15 for (size_t ib = 0; ib < item_size; ib++) {
16 uint8_t prev = 0;
17 const uint8_t *src_ptr = src + ib;
18 size_t it = 0;
19 for (; it < items_num; it++) {
20 uint8_t v = *src_ptr;
21 *dst = v - prev;
22 prev = v;
23 src_ptr += item_size;
24 dst += 1;
25 }
26 }
27}
28
29void unfilter_transpose_delta(const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)
30{
31 for (size_t ib = 0; ib < item_size; ib++) {
32 uint8_t prev = 0;
33 uint8_t *dst_ptr = dst + ib;
34 for (size_t it = 0; it < items_num; it++) {
35 uint8_t v = *src + prev;
36 prev = v;
37 *dst_ptr = v;
38 src += 1;
39 dst_ptr += item_size;
40 }
41 }
42}
43
44} // namespace blender
ATTR_WARN_UNUSED_RESULT const BMVert * v
void filter_transpose_delta(const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)
void unfilter_transpose_delta(const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)