From 1f8d209202e6eb797f75f8d58ee204698c03e17f Mon Sep 17 00:00:00 2001 From: ocornut Date: Sat, 17 Jan 2015 23:21:06 +0000 Subject: [PATCH] Fixed more clang warnings + AddFontFromMemoryTTF() not honoring font_no parameter --- imgui.cpp | 28 ++++++++++++++++------------ imgui.h | 4 ++-- stb_rect_pack.h | 5 +++-- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 014781aea..b3df48192 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -321,22 +321,22 @@ #pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. #pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. #pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it. +#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion chanjges signedness // #endif //------------------------------------------------------------------------- // STB libraries implementation //------------------------------------------------------------------------- -#define STBRP_STATIC -#define STB_RECT_PACK_IMPLEMENTATION #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wmissing-prototypes" #endif + +#define STBRP_STATIC +#define STB_RECT_PACK_IMPLEMENTATION #include "stb_rect_pack.h" -#ifdef __clang__ -#pragma clang diagnostic pop -#endif #define STB_TRUETYPE_IMPLEMENTATION #define STBTT_malloc(x,u) ((void)(u), ImGui::MemAlloc(x)) @@ -348,6 +348,10 @@ struct ImGuiTextEditState; #define STB_TEXTEDIT_CHARTYPE ImWchar #include "stb_textedit.h" +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + //------------------------------------------------------------------------- // Forward Declarations //------------------------------------------------------------------------- @@ -6376,11 +6380,11 @@ void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_wid { unsigned char* pixels; GetTexDataAsAlpha8(&pixels, NULL, NULL); - TexPixelsRGBA32 = (unsigned int*)ImGui::MemAlloc(TexWidth * TexHeight * 4); + TexPixelsRGBA32 = (unsigned int*)ImGui::MemAlloc((size_t)(TexWidth * TexHeight * 4)); const unsigned char* src = pixels; unsigned int* dst = TexPixelsRGBA32; for (int n = TexWidth * TexHeight; n > 0; n--) - *dst++ = ((*src++) << 24) | 0x00FFFFFF; + *dst++ = ((unsigned int)(*src++) << 24) | 0x00FFFFFF; } *out_pixels = (unsigned char*)TexPixelsRGBA32; @@ -6440,7 +6444,7 @@ ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* in_ttf_data, size_t in_ttf_data_ data->TTFDataSize = in_ttf_data_size; data->SizePixels = size_pixels; data->GlyphRanges = glyph_ranges; - data->FontNo = 0; + data->FontNo = font_no; InputData.push_back(data); // Invalidate texture @@ -6497,7 +6501,7 @@ bool ImFontAtlas::Build() // Setup ranges int glyph_count = 0; - int glyph_ranges_count = 0; + size_t glyph_ranges_count = 0; for (const ImWchar* in_range = data.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) { glyph_count += (in_range[1] - in_range[0]) + 1; @@ -6577,10 +6581,10 @@ bool ImFontAtlas::Build() data.OutFont->Glyphs.resize(data.OutFont->Glyphs.size() + 1); ImFont::Glyph& glyph = data.OutFont->Glyphs.back(); glyph.Codepoint = (ImWchar)codepoint; - glyph.Width = pc.x1 - pc.x0 + 1; - glyph.Height = pc.y1 - pc.y0 + 1; + glyph.Width = (signed short)pc.x1 - pc.x0 + 1; + glyph.Height = (signed short)pc.y1 - pc.y0 + 1; glyph.XOffset = (signed short)(pc.xoff); - glyph.YOffset = (signed short)(pc.yoff) + (int)(font_ascent * font_scale); + glyph.YOffset = (signed short)(pc.yoff + (int)(font_ascent * font_scale)); glyph.XAdvance = (signed short)(pc.xadvance + character_spacing_x); // Bake spacing into XAdvance glyph.U0 = ((float)pc.x0 - 0.5f) * uv_scale_x; glyph.V0 = ((float)pc.y0 - 0.5f) * uv_scale_y; diff --git a/imgui.h b/imgui.h index 4eb775858..2b5e7e953 100644 --- a/imgui.h +++ b/imgui.h @@ -433,7 +433,7 @@ enum ImGuiStyleVar_ ImGuiStyleVar_FrameRounding, // float ImGuiStyleVar_ItemSpacing, // ImVec2 ImGuiStyleVar_ItemInnerSpacing, // ImVec2 - ImGuiStyleVar_TreeNodeSpacing, // float + ImGuiStyleVar_TreeNodeSpacing // float }; // Enumeration for ColorEditMode() @@ -452,7 +452,7 @@ enum ImGuiSetCondition_ { ImGuiSetCondition_Always = 1 << 0, // Set the variable ImGuiSetCondition_FirstUseThisSession = 1 << 1, // Only set the variable on the first call for this window (once per session) - ImGuiSetCondition_FirstUseEver = 1 << 2, // Only set the variable if the window doesn't exist in the .ini file + ImGuiSetCondition_FirstUseEver = 1 << 2 // Only set the variable if the window doesn't exist in the .ini file }; struct ImGuiStyle diff --git a/stb_rect_pack.h b/stb_rect_pack.h index dcc9d8877..eb0ef2f26 100644 --- a/stb_rect_pack.h +++ b/stb_rect_pack.h @@ -129,7 +129,7 @@ enum { STBRP_HEURISTIC_Skyline_default=0, STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, - STBRP_HEURISTIC_Skyline_BF_sortHeight, + STBRP_HEURISTIC_Skyline_BF_sortHeight }; @@ -178,7 +178,7 @@ struct stbrp_context enum { - STBRP__INIT_skyline = 1, + STBRP__INIT_skyline = 1 }; STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) @@ -248,6 +248,7 @@ STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, // find minimum y position if it starts at x1 static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) { + (void)c; stbrp_node *node = first; int x1 = x0 + width; int min_y, visited_width, waste_area;