OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
anonymous_namespace{IconManager.cpp} Namespace Reference

Functions

NSVGimage * parse_file (const char *filepath)
void subdata (unsigned char *data, size_t data_stride, const std::vector< unsigned char > &data2, size_t data2_row)

Function Documentation

◆ parse_file()

NSVGimage * anonymous_namespace{IconManager.cpp}::parse_file ( const char * filepath)
48 {
49 FILE *fp = boost::nowide::fopen(filepath, "rb");
50 assert(fp != nullptr);
51 if (fp == nullptr)
52 return nullptr;
53
54 Slic3r::ScopeGuard sg([fp]() { fclose(fp); });
55
56 fseek(fp, 0, SEEK_END);
57 size_t size = ftell(fp);
58 fseek(fp, 0, SEEK_SET);
59
60 // Note: +1 is for null termination
61 auto data_ptr = std::make_unique<char[]>(size+1);
62 data_ptr[size] = '\0'; // Must be null terminated.
63
64 size_t readed_size = fread(data_ptr.get(), 1, size, fp);
65 assert(readed_size == size);
66 if (readed_size != size)
67 return nullptr;
68
69 return nsvgParse(data_ptr.get(), "px", 96.0f);
70}
Definition Utils.hpp:533

References Slic3r::nsvgParse(), and parse_file().

Referenced by parse_file().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ subdata()

void anonymous_namespace{IconManager.cpp}::subdata ( unsigned char * data,
size_t data_stride,
const std::vector< unsigned char > & data2,
size_t data2_row )
72 {
73 assert(data_stride >= data2_row);
74 for (size_t data2_offset = 0, data_offset = 0;
75 data2_offset < data2.size();
76 data2_offset += data2_row, data_offset += data_stride)
77 ::memcpy((void *)(data + data_offset), (const void *)(data2.data() + data2_offset), data2_row);
78}

References subdata().

Referenced by subdata().

Here is the call graph for this function:
Here is the caller graph for this function: