mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Merge branch 'Dadeos-compilation_warnings'
This commit is contained in:
commit
6dd2b13220
83
imgui.cpp
83
imgui.cpp
@ -378,7 +378,7 @@ static ImU32 crc32(const void* data, size_t data_size, ImU32 seed = 0)
|
|||||||
{
|
{
|
||||||
ImU32 crc = i;
|
ImU32 crc = i;
|
||||||
for (ImU32 j = 0; j < 8; j++)
|
for (ImU32 j = 0; j < 8; j++)
|
||||||
crc = (crc >> 1) ^ (-int(crc & 1) & polynomial);
|
crc = (crc >> 1) ^ (ImU32(-int(crc & 1)) & polynomial);
|
||||||
crc32_lut[i] = crc;
|
crc32_lut[i] = crc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -396,16 +396,14 @@ static size_t ImFormatString(char* buf, size_t buf_size, const char* fmt, ...)
|
|||||||
int w = vsnprintf(buf, buf_size, fmt, args);
|
int w = vsnprintf(buf, buf_size, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
buf[buf_size-1] = 0;
|
buf[buf_size-1] = 0;
|
||||||
if (w == -1) w = (int)buf_size;
|
return (w == -1) ? buf_size : (size_t)w;
|
||||||
return w;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args)
|
static size_t ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args)
|
||||||
{
|
{
|
||||||
int w = vsnprintf(buf, buf_size, fmt, args);
|
int w = vsnprintf(buf, buf_size, fmt, args);
|
||||||
buf[buf_size-1] = 0;
|
buf[buf_size-1] = 0;
|
||||||
if (w == -1) w = (int)buf_size;
|
return (w == -1) ? buf_size : (size_t)w;
|
||||||
return w;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ImU32 ImConvertColorFloat4ToU32(const ImVec4& in)
|
static ImU32 ImConvertColorFloat4ToU32(const ImVec4& in)
|
||||||
@ -900,13 +898,13 @@ void ImGuiTextBuffer::append(const char* fmt, ...)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
const size_t write_off = Buf.size();
|
const size_t write_off = Buf.size();
|
||||||
if (write_off + len >= Buf.capacity())
|
if (write_off + (size_t)len >= Buf.capacity())
|
||||||
Buf.reserve(Buf.capacity() * 2);
|
Buf.reserve(Buf.capacity() * 2);
|
||||||
|
|
||||||
Buf.resize(write_off + (size_t)len);
|
Buf.resize(write_off + (size_t)len);
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
ImFormatStringV(&Buf[write_off] - 1, len+1, fmt, args);
|
ImFormatStringV(&Buf[write_off] - 1, (size_t)len+1, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1052,13 +1050,14 @@ static void LoadSettings()
|
|||||||
return;
|
return;
|
||||||
if (fseek(f, 0, SEEK_END))
|
if (fseek(f, 0, SEEK_END))
|
||||||
return;
|
return;
|
||||||
long f_size = ftell(f);
|
const long f_size_signed = ftell(f);
|
||||||
if (f_size == -1)
|
if (f_size_signed == -1)
|
||||||
return;
|
return;
|
||||||
|
size_t f_size = (size_t)f_size_signed;
|
||||||
if (fseek(f, 0, SEEK_SET))
|
if (fseek(f, 0, SEEK_SET))
|
||||||
return;
|
return;
|
||||||
char* f_data = new char[f_size+1];
|
char* f_data = new char[f_size+1];
|
||||||
f_size = (long)fread(f_data, 1, f_size, f); // Text conversion alter read size so let's not be fussy about return value
|
f_size = fread(f_data, 1, f_size, f); // Text conversion alter read size so let's not be fussy about return value
|
||||||
fclose(f);
|
fclose(f);
|
||||||
if (f_size == 0)
|
if (f_size == 0)
|
||||||
{
|
{
|
||||||
@ -3009,7 +3008,7 @@ void PushID(const void* ptr_id)
|
|||||||
window->IDStack.push_back(window->GetID(ptr_id));
|
window->IDStack.push_back(window->GetID(ptr_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PushID(int int_id)
|
void PushID(const int int_id)
|
||||||
{
|
{
|
||||||
const void* ptr_id = (void*)(intptr_t)int_id;
|
const void* ptr_id = (void*)(intptr_t)int_id;
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
@ -3363,7 +3362,7 @@ enum ImGuiPlotType
|
|||||||
|
|
||||||
static float PlotGetValue(const float* values, size_t stride, int idx)
|
static float PlotGetValue(const float* values, size_t stride, int idx)
|
||||||
{
|
{
|
||||||
float v = *(float*)((unsigned char*)values + idx * stride);
|
const float v = *(float*)((unsigned char*)values + (size_t)idx * stride);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3616,14 +3615,14 @@ void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int idx, int n)
|
|||||||
bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int idx, const char* new_text, int new_text_len)
|
bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int idx, const char* new_text, int new_text_len)
|
||||||
{
|
{
|
||||||
char* buf_end = obj->Text + obj->BufSize;
|
char* buf_end = obj->Text + obj->BufSize;
|
||||||
const int text_len = (int)strlen(obj->Text);
|
const size_t text_len = strlen(obj->Text);
|
||||||
|
|
||||||
if (new_text_len > buf_end - (obj->Text + text_len + 1))
|
if (new_text_len > buf_end - (obj->Text + text_len + 1))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
memmove(obj->Text + idx + new_text_len, obj->Text + idx, text_len - idx);
|
memmove(obj->Text + (size_t)idx + new_text_len, obj->Text + (size_t)idx, text_len - (size_t)idx);
|
||||||
memcpy(obj->Text + idx, new_text, new_text_len);
|
memcpy(obj->Text + (size_t)idx, new_text, (size_t)new_text_len);
|
||||||
obj->Text[text_len + new_text_len] = 0;
|
obj->Text[text_len + (size_t)new_text_len] = 0;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -4066,7 +4065,7 @@ static bool Combo_ArrayGetter(void* data, int idx, const char** out_text)
|
|||||||
|
|
||||||
bool Combo(const char* label, int* current_item, const char** items, int items_count, int popup_height_items)
|
bool Combo(const char* label, int* current_item, const char** items, int items_count, int popup_height_items)
|
||||||
{
|
{
|
||||||
bool value_changed = Combo(label, current_item, Combo_ArrayGetter, (void*)items, items_count, popup_height_items);
|
const bool value_changed = Combo(label, current_item, Combo_ArrayGetter, (void*)items, items_count, popup_height_items);
|
||||||
return value_changed;
|
return value_changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4139,7 +4138,7 @@ bool Combo(const char* label, int* current_item, bool (*items_getter)(void*, int
|
|||||||
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x);
|
ImGui::SameLine(0, (int)g.Style.ItemInnerSpacing.x);
|
||||||
ImGui::TextUnformatted(label, FindTextDisplayEnd(label));
|
ImGui::TextUnformatted(label, FindTextDisplayEnd(label));
|
||||||
|
|
||||||
ImGui::PushID(id);
|
ImGui::PushID((int)id);
|
||||||
bool menu_toggled = false;
|
bool menu_toggled = false;
|
||||||
if (hovered)
|
if (hovered)
|
||||||
{
|
{
|
||||||
@ -4547,7 +4546,7 @@ float GetColumnOffset(int column_index)
|
|||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
column_index = window->DC.ColumnCurrent;
|
column_index = window->DC.ColumnCurrent;
|
||||||
|
|
||||||
const ImGuiID column_id = ImGuiID(window->DC.ColumnsSetID + column_index);
|
const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index);
|
||||||
RegisterAliveId(column_id);
|
RegisterAliveId(column_id);
|
||||||
const float default_t = column_index / (float)window->DC.ColumnsCount;
|
const float default_t = column_index / (float)window->DC.ColumnsCount;
|
||||||
const float t = (float)window->StateStorage.GetInt(column_id, (int)(default_t * 8096)) / 8096; // Cheaply store our floating point value inside the integer (could store an union into the map?)
|
const float t = (float)window->StateStorage.GetInt(column_id, (int)(default_t * 8096)) / 8096; // Cheaply store our floating point value inside the integer (could store an union into the map?)
|
||||||
@ -4563,7 +4562,7 @@ void SetColumnOffset(int column_index, float offset)
|
|||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
column_index = window->DC.ColumnCurrent;
|
column_index = window->DC.ColumnCurrent;
|
||||||
|
|
||||||
const ImGuiID column_id = ImGuiID(window->DC.ColumnsSetID + column_index);
|
const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index);
|
||||||
const float t = (offset - window->DC.ColumnStartX) / (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnStartX);
|
const float t = (offset - window->DC.ColumnStartX) / (window->Size.x - g.Style.ScrollBarWidth - window->DC.ColumnStartX);
|
||||||
window->StateStorage.SetInt(column_id, (int)(t*8096));
|
window->StateStorage.SetInt(column_id, (int)(t*8096));
|
||||||
}
|
}
|
||||||
@ -4613,7 +4612,7 @@ void Columns(int columns_count, const char* id, bool border)
|
|||||||
{
|
{
|
||||||
float x = window->Pos.x + GetColumnOffset(i);
|
float x = window->Pos.x + GetColumnOffset(i);
|
||||||
|
|
||||||
const ImGuiID column_id = ImGuiID(window->DC.ColumnsSetID + i);
|
const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(i);
|
||||||
const ImGuiAabb column_aabb(ImVec2(x-4,y1),ImVec2(x+4,y2));
|
const ImGuiAabb column_aabb(ImVec2(x-4,y1),ImVec2(x+4,y2));
|
||||||
|
|
||||||
if (IsClipped(column_aabb))
|
if (IsClipped(column_aabb))
|
||||||
@ -4840,7 +4839,7 @@ void ImDrawList::AddArc(const ImVec2& center, float rad, ImU32 col, int a_min, i
|
|||||||
|
|
||||||
if (tris)
|
if (tris)
|
||||||
{
|
{
|
||||||
ReserveVertices((a_max-a_min) * 3);
|
ReserveVertices((unsigned int)(a_max-a_min) * 3);
|
||||||
for (int a = a_min; a < a_max; a++)
|
for (int a = a_min; a < a_max; a++)
|
||||||
{
|
{
|
||||||
AddVtx(center + circle_vtx[a % IM_ARRAYSIZE(circle_vtx)] * rad, col);
|
AddVtx(center + circle_vtx[a % IM_ARRAYSIZE(circle_vtx)] * rad, col);
|
||||||
@ -4850,7 +4849,7 @@ void ImDrawList::AddArc(const ImVec2& center, float rad, ImU32 col, int a_min, i
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ReserveVertices((a_max-a_min) * 6);
|
ReserveVertices((unsigned int)(a_max-a_min) * 6);
|
||||||
for (int a = a_min; a < a_max; a++)
|
for (int a = a_min; a < a_max; a++)
|
||||||
AddVtxLine(center + circle_vtx[a % IM_ARRAYSIZE(circle_vtx)] * rad, center + circle_vtx[(a+1) % IM_ARRAYSIZE(circle_vtx)] * rad, col);
|
AddVtxLine(center + circle_vtx[a % IM_ARRAYSIZE(circle_vtx)] * rad, center + circle_vtx[(a+1) % IM_ARRAYSIZE(circle_vtx)] * rad, col);
|
||||||
}
|
}
|
||||||
@ -4961,7 +4960,7 @@ void ImDrawList::AddCircle(const ImVec2& centre, float radius, ImU32 col, int nu
|
|||||||
if ((col >> 24) == 0)
|
if ((col >> 24) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ReserveVertices(num_segments*6);
|
ReserveVertices((unsigned int)num_segments*6);
|
||||||
const float a_step = 2*PI/(float)num_segments;
|
const float a_step = 2*PI/(float)num_segments;
|
||||||
float a0 = 0.0f;
|
float a0 = 0.0f;
|
||||||
for (int i = 0; i < num_segments; i++)
|
for (int i = 0; i < num_segments; i++)
|
||||||
@ -4977,7 +4976,7 @@ void ImDrawList::AddCircleFilled(const ImVec2& centre, float radius, ImU32 col,
|
|||||||
if ((col >> 24) == 0)
|
if ((col >> 24) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ReserveVertices(num_segments*3);
|
ReserveVertices((unsigned int)num_segments*3);
|
||||||
const float a_step = 2*PI/(float)num_segments;
|
const float a_step = 2*PI/(float)num_segments;
|
||||||
float a0 = 0.0f;
|
float a0 = 0.0f;
|
||||||
for (int i = 0; i < num_segments; i++)
|
for (int i = 0; i < num_segments; i++)
|
||||||
@ -4999,17 +4998,17 @@ void ImDrawList::AddText(ImFont font, float font_size, const ImVec2& pos, ImU32
|
|||||||
text_end = text_begin + strlen(text_begin);
|
text_end = text_begin + strlen(text_begin);
|
||||||
|
|
||||||
// reserve vertices for worse case
|
// reserve vertices for worse case
|
||||||
const int char_count = (int)(text_end - text_begin);
|
const unsigned int char_count = (unsigned int)(text_end - text_begin);
|
||||||
const int vtx_count_max = char_count * 6;
|
const unsigned int vtx_count_max = char_count * 6;
|
||||||
const size_t vtx_begin = vtx_buffer.size();
|
const size_t vtx_begin = vtx_buffer.size();
|
||||||
ReserveVertices(vtx_count_max);
|
ReserveVertices(vtx_count_max);
|
||||||
|
|
||||||
font->RenderText(font_size, pos, col, clip_rect_stack.back(), text_begin, text_end, vtx_write);
|
font->RenderText(font_size, pos, col, clip_rect_stack.back(), text_begin, text_end, vtx_write);
|
||||||
|
|
||||||
// give unused vertices
|
// give back unused vertices
|
||||||
vtx_buffer.resize(vtx_write - &vtx_buffer.front());
|
vtx_buffer.resize((size_t)(vtx_write - &vtx_buffer.front()));
|
||||||
const int vtx_count = (int)(vtx_buffer.size() - vtx_begin);
|
const size_t vtx_count = vtx_buffer.size() - vtx_begin;
|
||||||
commands.back().vtx_count -= (vtx_count_max - vtx_count);
|
commands.back().vtx_count -= (unsigned int)(vtx_count_max - vtx_count);
|
||||||
vtx_write -= (vtx_count_max - vtx_count);
|
vtx_write -= (vtx_count_max - vtx_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5050,8 +5049,10 @@ bool ImBitmapFont::LoadFromFile(const char* filename)
|
|||||||
return false;
|
return false;
|
||||||
if (fseek(f, 0, SEEK_END))
|
if (fseek(f, 0, SEEK_END))
|
||||||
return false;
|
return false;
|
||||||
if ((DataSize = (int)ftell(f)) == -1)
|
const long f_size = ftell(f);
|
||||||
|
if (f_size == -1)
|
||||||
return false;
|
return false;
|
||||||
|
DataSize = (size_t)f_size;
|
||||||
if (fseek(f, 0, SEEK_SET))
|
if (fseek(f, 0, SEEK_SET))
|
||||||
return false;
|
return false;
|
||||||
if ((Data = (unsigned char*)malloc(DataSize)) == NULL)
|
if ((Data = (unsigned char*)malloc(DataSize)) == NULL)
|
||||||
@ -5059,7 +5060,7 @@ bool ImBitmapFont::LoadFromFile(const char* filename)
|
|||||||
fclose(f);
|
fclose(f);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ((int)fread(Data, 1, DataSize, f) != DataSize)
|
if (fread(Data, 1, DataSize, f) != DataSize)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
free(Data);
|
free(Data);
|
||||||
@ -5070,7 +5071,7 @@ bool ImBitmapFont::LoadFromFile(const char* filename)
|
|||||||
return LoadFromMemory(Data, DataSize);
|
return LoadFromMemory(Data, DataSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImBitmapFont::LoadFromMemory(const void* data, int data_size)
|
bool ImBitmapFont::LoadFromMemory(const void* data, size_t data_size)
|
||||||
{
|
{
|
||||||
Data = (unsigned char*)data;
|
Data = (unsigned char*)data;
|
||||||
DataSize = data_size;
|
DataSize = data_size;
|
||||||
@ -5358,9 +5359,9 @@ static void SetClipboardTextFn_DefaultImpl(const char* text, const char* text_en
|
|||||||
}
|
}
|
||||||
if (!text_end)
|
if (!text_end)
|
||||||
text_end = text + strlen(text);
|
text_end = text + strlen(text);
|
||||||
GImGui.PrivateClipboard = (char*)malloc(text_end - text + 1);
|
GImGui.PrivateClipboard = (char*)malloc((size_t)(text_end - text) + 1);
|
||||||
memcpy(GImGui.PrivateClipboard, text, text_end - text);
|
memcpy(GImGui.PrivateClipboard, text, (size_t)(text_end - text));
|
||||||
GImGui.PrivateClipboard[text_end - text] = 0;
|
GImGui.PrivateClipboard[(size_t)(text_end - text)] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -5456,7 +5457,7 @@ void ShowTestWindow(bool* open)
|
|||||||
static bool no_scrollbar = false;
|
static bool no_scrollbar = false;
|
||||||
static float fill_alpha = 0.65f;
|
static float fill_alpha = 0.65f;
|
||||||
|
|
||||||
const ImU32 layout_flags = (no_titlebar ? ImGuiWindowFlags_NoTitleBar : 0) | (no_border ? 0 : ImGuiWindowFlags_ShowBorders) | (no_resize ? ImGuiWindowFlags_NoResize : 0) | (no_move ? ImGuiWindowFlags_NoMove : 0) | (no_scrollbar ? ImGuiWindowFlags_NoScrollbar : 0);
|
const ImGuiWindowFlags layout_flags = (no_titlebar ? ImGuiWindowFlags_NoTitleBar : 0) | (no_border ? 0 : ImGuiWindowFlags_ShowBorders) | (no_resize ? ImGuiWindowFlags_NoResize : 0) | (no_move ? ImGuiWindowFlags_NoMove : 0) | (no_scrollbar ? ImGuiWindowFlags_NoScrollbar : 0);
|
||||||
ImGui::Begin("ImGui Test", open, ImVec2(550,680), fill_alpha, layout_flags);
|
ImGui::Begin("ImGui Test", open, ImVec2(550,680), fill_alpha, layout_flags);
|
||||||
ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f);
|
ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f);
|
||||||
|
|
||||||
@ -5621,7 +5622,7 @@ void ShowTestWindow(bool* open)
|
|||||||
|
|
||||||
static bool pause;
|
static bool pause;
|
||||||
static ImVector<float> values; if (values.empty()) { values.resize(100); memset(&values.front(), 0, values.size()*sizeof(float)); }
|
static ImVector<float> values; if (values.empty()) { values.resize(100); memset(&values.front(), 0, values.size()*sizeof(float)); }
|
||||||
static int values_offset = 0;
|
static size_t values_offset = 0;
|
||||||
if (!pause)
|
if (!pause)
|
||||||
{
|
{
|
||||||
// create dummy data at 60 hz
|
// create dummy data at 60 hz
|
||||||
@ -5635,7 +5636,7 @@ void ShowTestWindow(bool* open)
|
|||||||
phase += 0.10f*values_offset;
|
phase += 0.10f*values_offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ImGui::PlotLines("Frame Times", &values.front(), (int)values.size(), values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,70));
|
ImGui::PlotLines("Frame Times", &values.front(), (int)values.size(), (int)values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,70));
|
||||||
|
|
||||||
ImGui::SameLine(); ImGui::Checkbox("pause", &pause);
|
ImGui::SameLine(); ImGui::Checkbox("pause", &pause);
|
||||||
ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,70));
|
ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,70));
|
||||||
@ -5842,7 +5843,7 @@ void ShowTestWindow(bool* open)
|
|||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Add 1000 lines"))
|
if (ImGui::Button("Add 1000 lines"))
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < 1000; i++)
|
for (int i = 0; i < 1000; i++)
|
||||||
log.append("%i The quick brown fox jumps over the lazy dog\n", lines+i);
|
log.append("%i The quick brown fox jumps over the lazy dog\n", lines+i);
|
||||||
lines += 1000;
|
lines += 1000;
|
||||||
}
|
}
|
||||||
|
4
imgui.h
4
imgui.h
@ -622,7 +622,7 @@ struct ImBitmapFont
|
|||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
unsigned char* Data; // Raw data, content of .fnt file
|
unsigned char* Data; // Raw data, content of .fnt file
|
||||||
int DataSize; //
|
size_t DataSize; //
|
||||||
bool DataOwned; //
|
bool DataOwned; //
|
||||||
const FntInfo* Info; // (point into raw data)
|
const FntInfo* Info; // (point into raw data)
|
||||||
const FntCommon* Common; // (point into raw data)
|
const FntCommon* Common; // (point into raw data)
|
||||||
@ -637,7 +637,7 @@ struct ImBitmapFont
|
|||||||
ImBitmapFont();
|
ImBitmapFont();
|
||||||
~ImBitmapFont() { Clear(); }
|
~ImBitmapFont() { Clear(); }
|
||||||
|
|
||||||
bool LoadFromMemory(const void* data, int data_size);
|
bool LoadFromMemory(const void* data, size_t data_size);
|
||||||
bool LoadFromFile(const char* filename);
|
bool LoadFromFile(const char* filename);
|
||||||
void Clear();
|
void Clear();
|
||||||
void BuildLookupTable();
|
void BuildLookupTable();
|
||||||
|
Loading…
Reference in New Issue
Block a user