yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Ellie Hermaszewskaformatf65d756bf

master
1.5 KiB58 linesraw
1#ifndef SLANG_HEX_DUMP_UTIL_H
2#define SLANG_HEX_DUMP_UTIL_H
3
4#include "slang-common.h"
5#include "slang-list.h"
6#include "slang-string.h"
7#include "slang.h"
8
9namespace Slang
10{
11
12struct HexDumpUtil
13{
14    /// Dump out bytes in source format - as in
15    /// 0x10, 0xab,
16    static SlangResult dumpSourceBytes(
17        const uint8_t* data,
18        size_t dataCount,
19        int maxBytesPerLine,
20        ISlangWriter* writer);
21
22    /// Dump data to writer, with lines starting with hex data
23    static SlangResult dump(const List<uint8_t>& data, int numBytesPerLine, ISlangWriter* writer);
24
25    static SlangResult dump(
26        const uint8_t* data,
27        size_t dataCount,
28        int numBytesPerLine,
29        ISlangWriter* writer);
30
31    /// Dump a single value
32    static void dump(uint32_t value, ISlangWriter* writer);
33
34    static SlangResult dumpWithMarkers(
35        const List<uint8_t>& data,
36        int numBytesPerLine,
37        ISlangWriter* writer);
38
39    static SlangResult dumpWithMarkers(
40        const uint8_t* data,
41        size_t dataSize,
42        int numBytesPerLine,
43        ISlangWriter* writer);
44
45    /// Parses lines formatted by dump, back into bytes
46    static SlangResult parse(const UnownedStringSlice& lines, List<uint8_t>& outBytes);
47
48    static SlangResult parseWithMarkers(const UnownedStringSlice& lines, List<uint8_t>& outBytes);
49
50    static SlangResult findStartAndEndLines(
51        const UnownedStringSlice& lines,
52        UnownedStringSlice& outStart,
53        UnownedStringSlice& outEnd);
54};
55
56} // namespace Slang
57
58#endif