mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 15:44:56 +00:00
Resolve clang-tidy issues & update config
This commit is contained in:
@@ -44,7 +44,7 @@ const char* getClipboardText(void* userData) {
|
||||
static ImVector<char> ClipboardBuf;
|
||||
size_t sz = 0;
|
||||
const auto data = static_cast<boo::IWindow*>(userData)->clipboardPaste(boo::EClipboardType::String, sz);
|
||||
ClipboardBuf.resize(sz);
|
||||
ClipboardBuf.resize(int(sz));
|
||||
strncpy(ClipboardBuf.Data, reinterpret_cast<const char*>(data.get()), sz);
|
||||
return ClipboardBuf.Data;
|
||||
}
|
||||
@@ -93,24 +93,27 @@ void ImGuiEngine::Initialize(boo::IGraphicsDataFactory* factory, boo::IWindow* w
|
||||
io.KeyMap[ImGuiKey_Z] = 'z'; // for text edit CTRL+Z: undo
|
||||
|
||||
auto* fontData = new uint8_t[NOTO_MONO_FONT_DECOMPRESSED_SZ];
|
||||
athena::io::Compression::decompressZlib(NOTO_MONO_FONT, NOTO_MONO_FONT_SZ, fontData, NOTO_MONO_FONT_DECOMPRESSED_SZ);
|
||||
athena::io::Compression::decompressZlib(static_cast<const atUint8*>(NOTO_MONO_FONT), atUint32(NOTO_MONO_FONT_SZ),
|
||||
fontData, NOTO_MONO_FONT_DECOMPRESSED_SZ);
|
||||
|
||||
int iconWidth = 0, iconHeight = 0;
|
||||
auto* metaforceIcon = stbi_load_from_memory(METAFORCE_ICON, METAFORCE_ICON_SZ, &iconWidth, &iconHeight, nullptr, 4);
|
||||
int iconWidth = 0;
|
||||
int iconHeight = 0;
|
||||
auto* metaforceIcon = stbi_load_from_memory(static_cast<const stbi_uc*>(METAFORCE_ICON), int(METAFORCE_ICON_SZ),
|
||||
&iconWidth, &iconHeight, nullptr, 4);
|
||||
|
||||
int width = 0;
|
||||
int height = 0;
|
||||
unsigned char* pixels = nullptr;
|
||||
ImFontConfig fontConfig{};
|
||||
fontConfig.FontData = fontData;
|
||||
fontConfig.FontDataSize = NOTO_MONO_FONT_DECOMPRESSED_SZ;
|
||||
fontConfig.FontDataSize = int(NOTO_MONO_FONT_DECOMPRESSED_SZ);
|
||||
fontConfig.SizePixels = std::floor(14.f * scale);
|
||||
snprintf(fontConfig.Name, sizeof(fontConfig.Name), "Noto Mono Regular, %dpx",
|
||||
snprintf(static_cast<char*>(fontConfig.Name), sizeof(fontConfig.Name), "Noto Mono Regular, %dpx",
|
||||
static_cast<int>(fontConfig.SizePixels));
|
||||
fontNormal = io.Fonts->AddFont(&fontConfig);
|
||||
fontConfig.FontDataOwnedByAtlas = false; // first one took ownership
|
||||
fontConfig.SizePixels = std::floor(24.f * scale);
|
||||
snprintf(fontConfig.Name, sizeof(fontConfig.Name), "Noto Mono Regular, %dpx",
|
||||
snprintf(static_cast<char*>(fontConfig.Name), sizeof(fontConfig.Name), "Noto Mono Regular, %dpx",
|
||||
static_cast<int>(fontConfig.SizePixels));
|
||||
fontLarge = io.Fonts->AddFont(&fontConfig);
|
||||
|
||||
@@ -144,30 +147,29 @@ void ImGuiEngine::Shutdown() {
|
||||
void ImGuiEngine::Begin(float dt, float scale) {
|
||||
ImGuiIO& io = ImGui::GetIO();
|
||||
io.DeltaTime = dt;
|
||||
io.DisplaySize.x = static_cast<float>(WindowRect.size[0]);
|
||||
io.DisplaySize.y = static_cast<float>(WindowRect.size[1]);
|
||||
io.DisplaySize.x = float(WindowRect.size[0]);
|
||||
io.DisplaySize.y = float(WindowRect.size[1]);
|
||||
io.DisplayFramebufferScale = ImVec2{scale, scale};
|
||||
if (Input.m_mouseIn) {
|
||||
io.MousePos = ImVec2{static_cast<float>(Input.m_mousePos.pixel[0]),
|
||||
static_cast<float>(WindowRect.size[1] - Input.m_mousePos.pixel[1])};
|
||||
io.MousePos = ImVec2{float(Input.m_mousePos.pixel[0]), float(WindowRect.size[1] - Input.m_mousePos.pixel[1])};
|
||||
} else {
|
||||
io.MousePos = ImVec2{-FLT_MAX, -FLT_MAX};
|
||||
}
|
||||
memcpy(io.MouseDown, Input.m_mouseButtons.data(), sizeof(io.MouseDown));
|
||||
float scrollDelta = Input.m_scrollDelta.delta[1] / scale;
|
||||
float scrollDeltaH = Input.m_scrollDelta.delta[0] / scale;
|
||||
memcpy(static_cast<bool*>(io.MouseDown), Input.m_mouseButtons.data(), sizeof(io.MouseDown));
|
||||
float scrollDelta = float(Input.m_scrollDelta.delta[1]) / scale;
|
||||
float scrollDeltaH = float(Input.m_scrollDelta.delta[0]) / scale;
|
||||
if (Input.m_scrollDelta.isAccelerated) {
|
||||
scrollDelta /= 10.f;
|
||||
scrollDeltaH /= 10.f;
|
||||
}
|
||||
io.MouseWheel = static_cast<float>(scrollDelta);
|
||||
io.MouseWheelH = static_cast<float>(scrollDeltaH);
|
||||
io.MouseWheel = scrollDelta;
|
||||
io.MouseWheelH = scrollDeltaH;
|
||||
Input.m_scrollDelta.zeroOut();
|
||||
io.KeyCtrl = True(Input.m_modifiers & boo::EModifierKey::Ctrl);
|
||||
io.KeyShift = True(Input.m_modifiers & boo::EModifierKey::Shift);
|
||||
io.KeyAlt = True(Input.m_modifiers & boo::EModifierKey::Alt);
|
||||
io.KeySuper = True(Input.m_modifiers & boo::EModifierKey::Command);
|
||||
memcpy(io.KeysDown, Input.m_keys.data(), sizeof(io.KeysDown));
|
||||
memcpy(static_cast<bool*>(io.KeysDown), Input.m_keys.data(), sizeof(io.KeysDown));
|
||||
|
||||
for (const auto c : ImGuiEngine::Input.m_charCodes) {
|
||||
io.AddInputCharacter(c);
|
||||
@@ -310,14 +312,15 @@ void ImGuiEngine::Draw(boo::IGraphicsCommandQueue* gfxQ) {
|
||||
}
|
||||
|
||||
void ImGuiEngine::BuildShaderDataBindings(boo::IGraphicsDataFactory::Context& ctx) {
|
||||
boo::ObjToken<boo::IGraphicsBuffer> uniforms[] = {UniformBuffer.get()};
|
||||
boo::PipelineStage unistages[] = {boo::PipelineStage::Vertex};
|
||||
size_t unioffs[] = {0};
|
||||
size_t unisizes[] = {sizeof(Uniform)};
|
||||
std::array<boo::ObjToken<boo::IGraphicsBuffer>, 1> uniforms = {UniformBuffer.get()};
|
||||
std::array<boo::PipelineStage, uniforms.size()> unistages = {boo::PipelineStage::Vertex};
|
||||
std::array<size_t, uniforms.size()> unioffs{0};
|
||||
std::array<size_t, uniforms.size()> unisizes{sizeof(Uniform)};
|
||||
for (int i = 0; i < ImGuiUserTextureID_MAX; ++i) {
|
||||
boo::ObjToken<boo::ITexture> texs[] = {Textures[i].get()};
|
||||
ShaderDataBindings[i] = ctx.newShaderDataBinding(ShaderPipeline, VertexBuffer.get(), nullptr, IndexBuffer.get(), 1,
|
||||
uniforms, unistages, unioffs, unisizes, 1, texs, nullptr, nullptr);
|
||||
std::array<boo::ObjToken<boo::ITexture>, 1> texs{Textures[i].get()};
|
||||
ShaderDataBindings[i] = ctx.newShaderDataBinding(ShaderPipeline, VertexBuffer.get(), nullptr, IndexBuffer.get(),
|
||||
uniforms.size(), uniforms.data(), unistages.data(), unioffs.data(),
|
||||
unisizes.data(), texs.size(), texs.data(), nullptr, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user