update makefile
This commit is contained in:
parent
dcf6e13fa5
commit
ef5ad47f61
3 changed files with 21 additions and 14 deletions
10
Makefile
10
Makefile
|
@ -15,6 +15,8 @@ LIBS = -lglfw
|
||||||
ROOTFLAGS = -std=c++17 -m64 -I$(ROOTINCDIR)
|
ROOTFLAGS = -std=c++17 -m64 -I$(ROOTINCDIR)
|
||||||
ROOTLIBS = -L$(ROOTLIBDIR) -lCore -lRIO -lROOTNTuple -lxxhash -pthread -Wl,-rpath,$(ROOTLIBDIR)
|
ROOTLIBS = -L$(ROOTLIBDIR) -lCore -lRIO -lROOTNTuple -lxxhash -pthread -Wl,-rpath,$(ROOTLIBDIR)
|
||||||
|
|
||||||
|
IMGUI_FLAGS = -Ithird_party -Ithird_party/imgui
|
||||||
|
|
||||||
ifeq ($(shell which mold),)
|
ifeq ($(shell which mold),)
|
||||||
MOLD =
|
MOLD =
|
||||||
else
|
else
|
||||||
|
@ -27,11 +29,11 @@ ROOT_IFACE_DBG = $(ROOT_IFACE).dbg
|
||||||
all: build/imgui.o $(ROOT_IFACE) ubsan
|
all: build/imgui.o $(ROOT_IFACE) ubsan
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm build/*.o rntviewer $(ROOT_IFACE)
|
rm -f build/*.o rntviewer $(ROOT_IFACE) $(ROOT_IFACE_DBG)
|
||||||
|
|
||||||
build/imgui.o: src/imgui_inc.cpp
|
build/imgui.o: src/imgui_inc.cpp
|
||||||
@mkdir -p $(@D)/build
|
@mkdir -p $(@D)/build
|
||||||
$(CXX) -O3 -fPIC -c -Ithird_party/imgui $< -o $@
|
$(CXX) -O3 -fPIC -c $(IMGUI_FLAGS) $< -o $@
|
||||||
|
|
||||||
$(ROOT_IFACE): src/root/RMicroFileReader.cxx
|
$(ROOT_IFACE): src/root/RMicroFileReader.cxx
|
||||||
$(CXX) -O3 -fPIC -c $(ROOTFLAGS) $< -o $@
|
$(CXX) -O3 -fPIC -c $(ROOTFLAGS) $< -o $@
|
||||||
|
@ -46,6 +48,10 @@ d: $(ROOT_IFACE_DBG) build/imgui.o
|
||||||
# release build
|
# release build
|
||||||
r: $(ROOT_IFACE) build/imgui.o
|
r: $(ROOT_IFACE) build/imgui.o
|
||||||
$(MOLD) $(CXX) -O2 -DNDEBUG $(CFLAGS) $(INC) $(ROOTFLAGS) -o rntviewer src/rntviewer.cpp build/imgui.o $(ROOT_IFACE) $(LIBS) $(ROOTLIBS)
|
$(MOLD) $(CXX) -O2 -DNDEBUG $(CFLAGS) $(INC) $(ROOTFLAGS) -o rntviewer src/rntviewer.cpp build/imgui.o $(ROOT_IFACE) $(LIBS) $(ROOTLIBS)
|
||||||
|
|
||||||
|
# debug-release build
|
||||||
|
dr: $(ROOT_IFACE_DBG) build/imgui.o
|
||||||
|
$(MOLD) $(CXX) -g -O2 $(CFLAGS) $(INC) $(ROOTFLAGS) -o rntviewer src/rntviewer.cpp build/imgui.o $(ROOT_IFACE_DBG) $(LIBS) $(ROOTLIBS)
|
||||||
|
|
||||||
# sanitizers
|
# sanitizers
|
||||||
asan: $(ROOT_IFACE_DBG) build/imgui.o
|
asan: $(ROOT_IFACE_DBG) build/imgui.o
|
||||||
|
|
|
@ -295,7 +295,8 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
app.viewer.mem_edit.DrawContents(content, content_size, app.base_display_addr);
|
app.viewer.mem_edit.DrawContents(content, content_size, app.base_display_addr);
|
||||||
|
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGuiColorEditFlags flags = ImGuiColorEditFlags_NoInputs|ImGuiColorEditFlags_NoLabel;
|
const ImGuiColorEditFlags edit_flags = ImGuiColorEditFlags_NoInputs|ImGuiColorEditFlags_NoLabel;
|
||||||
|
const ImGuiInputTextFlags input_flags = ImGuiInputTextFlags_EnterReturnsTrue;
|
||||||
|
|
||||||
// Unique sections: just display a button that jumps to the start of it and show their size
|
// Unique sections: just display a button that jumps to the start of it and show their size
|
||||||
for (u32 i = 0; i < Sec_COUNT; ++i) {
|
for (u32 i = 0; i < Sec_COUNT; ++i) {
|
||||||
|
@ -304,7 +305,7 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
|
|
||||||
String8 sec_name = section_names[i];
|
String8 sec_name = section_names[i];
|
||||||
String8 col_label = push_str8f(scratch.arena, "_%s", sec_name.c());
|
String8 col_label = push_str8f(scratch.arena, "_%s", sec_name.c());
|
||||||
ImGui::ColorEdit3(col_label.c(), app.viewer.col_section[i], flags);
|
ImGui::ColorEdit3(col_label.c(), app.viewer.col_section[i], edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(sec_name.c()))
|
if (ImGui::Button(sec_name.c()))
|
||||||
viewer_jump_to(app, range.start);
|
viewer_jump_to(app, range.start);
|
||||||
|
@ -313,16 +314,16 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Repeated sections: allow jumping to the N-th
|
// Repeated sections: allow jumping to the N-th
|
||||||
ImGui::ColorEdit3("_TKey Header", app.viewer.col_key, flags);
|
ImGui::ColorEdit3("_TKey Header", app.viewer.col_key, edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("TKey Header")) {} // TODO: jump to next key
|
if (ImGui::Button("TKey Header")) {} // TODO: jump to next key
|
||||||
|
|
||||||
ImGui::ColorEdit3("_Page Start", app.viewer.col_page_start, flags);
|
ImGui::ColorEdit3("_Page Start", app.viewer.col_page_start, edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Page Start"))
|
if (ImGui::Button("Page Start"))
|
||||||
viewer_jump_to_page(app, 0);
|
viewer_jump_to_page(app, 0);
|
||||||
|
|
||||||
ImGui::ColorEdit3("_Page", app.viewer.col_section[Sec_Page], flags);
|
ImGui::ColorEdit3("_Page", app.viewer.col_section[Sec_Page], edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Page"))
|
if (ImGui::Button("Page"))
|
||||||
viewer_jump_to_page(app, app.viewer.latest_page_gone_to);
|
viewer_jump_to_page(app, app.viewer.latest_page_gone_to);
|
||||||
|
@ -331,18 +332,18 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
const i64 step_fast_i64 = app.rndata.n_pages / 100;
|
const i64 step_fast_i64 = app.rndata.n_pages / 100;
|
||||||
i64 page_to_go_to = app.viewer.latest_page_gone_to;
|
i64 page_to_go_to = app.viewer.latest_page_gone_to;
|
||||||
ImGui::PushItemWidth(100.f);
|
ImGui::PushItemWidth(100.f);
|
||||||
if (ImGui::InputScalar("##page_viewed", ImGuiDataType_S64, &page_to_go_to, &step_i64, &step_fast_i64, "%u"))
|
if (ImGui::InputScalar("##page_viewed", ImGuiDataType_S64, &page_to_go_to, &step_i64, &step_fast_i64, "%u", input_flags))
|
||||||
viewer_jump_to_page(app, page_to_go_to);
|
viewer_jump_to_page(app, page_to_go_to);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Text("%s", to_pretty_size(scratch.arena, app.rndata.tot_page_comp_size).c());
|
ImGui::Text("%s", to_pretty_size(scratch.arena, app.rndata.tot_page_comp_size).c());
|
||||||
|
|
||||||
ImGui::ColorEdit3("_Checksum", app.viewer.col_checksum, flags);
|
ImGui::ColorEdit3("_Checksum", app.viewer.col_checksum, edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Checksum")) {} // TODO jump to next checksum
|
if (ImGui::Button("Checksum")) {} // TODO jump to next checksum
|
||||||
|
|
||||||
ImGui::ColorEdit3("_Page List", app.viewer.col_section[Sec_Page_List], flags);
|
ImGui::ColorEdit3("_Page List", app.viewer.col_section[Sec_Page_List], edit_flags);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Page List"))
|
if (ImGui::Button("Page List"))
|
||||||
viewer_jump_to_page_list(app, app.viewer.latest_page_list_gone_to);
|
viewer_jump_to_page_list(app, app.viewer.latest_page_list_gone_to);
|
||||||
|
@ -351,7 +352,7 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
{
|
{
|
||||||
i64 page_list_to_go_to = app.viewer.latest_page_list_gone_to;
|
i64 page_list_to_go_to = app.viewer.latest_page_list_gone_to;
|
||||||
ImGui::PushItemWidth(80.f);
|
ImGui::PushItemWidth(80.f);
|
||||||
if (ImGui::InputScalar("##page_list_viewed", ImGuiDataType_S64, &page_list_to_go_to, &step_i64, nullptr, "%u"))
|
if (ImGui::InputScalar("##page_list_viewed", ImGuiDataType_S64, &page_list_to_go_to, &step_i64, nullptr, "%u", input_flags))
|
||||||
viewer_jump_to_page_list(app, page_list_to_go_to);
|
viewer_jump_to_page_list(app, page_list_to_go_to);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
}
|
}
|
||||||
|
@ -378,7 +379,7 @@ void update_and_render(Arena *arena, App_State &app, f32 delta_time_ms)
|
||||||
const i64 step_fast_i64 = app.rndata.n_clusters / 100;
|
const i64 step_fast_i64 = app.rndata.n_clusters / 100;
|
||||||
i64 cluster_to_highlight = app.viewer.highlighted_cluster;
|
i64 cluster_to_highlight = app.viewer.highlighted_cluster;
|
||||||
ImGui::PushItemWidth(100.f);
|
ImGui::PushItemWidth(100.f);
|
||||||
if (ImGui::InputScalar("##highlighted_cluster", ImGuiDataType_S64, &cluster_to_highlight, &step_i64, &step_fast_i64, "%u")) {
|
if (ImGui::InputScalar("##highlighted_cluster", ImGuiDataType_S64, &cluster_to_highlight, &step_i64, &step_fast_i64, "%u", input_flags)) {
|
||||||
viewer_jump_to_cluster(app, cluster_to_highlight);
|
viewer_jump_to_cluster(app, cluster_to_highlight);
|
||||||
}
|
}
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
struct Byte_Range {
|
struct Byte_Range {
|
||||||
u64 start, len;
|
u64 start, len;
|
||||||
u64 end() const { return start + len; }
|
inline u64 end() const { return start + len; }
|
||||||
};
|
};
|
||||||
|
|
||||||
// Used to store location information about stuff like checksums, page lists, etc
|
// Used to store location information about stuff like checksums, page lists, etc
|
||||||
|
@ -18,7 +18,7 @@ struct Page_Info_Node {
|
||||||
u32 cluster_id;
|
u32 cluster_id;
|
||||||
b8 is_first_in_cluster;
|
b8 is_first_in_cluster;
|
||||||
|
|
||||||
u64 checksum_size() const {
|
inline u64 checksum_size() const {
|
||||||
return (n_elems < 0) * 8;
|
return (n_elems < 0) * 8;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue