Browse Source

Enable and fix most GCC warnings (#377)

Co-authored-by: Rob Loach <[email protected]>
Cameron Cawley 3 years ago
parent
commit
60c52adfaf
44 changed files with 235 additions and 78 deletions
  1. 1 1
      clib.json
  2. 1 1
      demo/allegro5/Makefile
  3. 0 3
      demo/allegro5/main.c
  4. 1 1
      demo/glfw_opengl2/Makefile
  5. 1 0
      demo/glfw_opengl2/nuklear_glfw_gl2.h
  6. 1 1
      demo/glfw_opengl3/Makefile
  7. 1 0
      demo/glfw_opengl3/nuklear_glfw_gl3.h
  8. 1 1
      demo/glfw_opengl4/Makefile
  9. 1 0
      demo/glfw_opengl4/nuklear_glfw_gl4.h
  10. 0 9
      demo/overview.c
  11. 1 1
      demo/sdl2surface_rawfb/Makefile
  12. 19 11
      demo/sdl2surface_rawfb/main.c
  13. 12 6
      demo/sdl2surface_rawfb/sdl2surface_rawfb.h
  14. 1 1
      demo/sdl_opengl2/Makefile
  15. 3 0
      demo/sdl_opengl2/main.c
  16. 1 1
      demo/sdl_opengl3/Makefile
  17. 3 0
      demo/sdl_opengl3/main.c
  18. 1 1
      demo/sdl_opengles2/Makefile
  19. 4 0
      demo/sdl_opengles2/main.c
  20. 1 1
      demo/sfml_opengl2/Makefile
  21. 7 0
      demo/sfml_opengl2/nuklear_sfml_gl2.h
  22. 1 1
      demo/sfml_opengl3/Makefile
  23. 7 0
      demo/sfml_opengl3/nuklear_sfml_gl3.h
  24. 2 2
      demo/wayland_rawfb/Makefile
  25. 99 13
      demo/wayland_rawfb/main.c
  26. 8 5
      demo/wayland_rawfb/nuklear_raw_wayland.h
  27. 1 1
      demo/x11/Makefile
  28. 8 0
      demo/x11/nuklear_xlib.h
  29. 1 1
      demo/x11_opengl2/Makefile
  30. 4 1
      demo/x11_opengl2/nuklear_xlib_gl2.h
  31. 1 1
      demo/x11_opengl3/Makefile
  32. 1 1
      demo/x11_rawfb/Makefile
  33. 8 2
      demo/x11_rawfb/nuklear_rawfb.h
  34. 1 1
      demo/x11_rawfb/nuklear_xlib.h
  35. 1 1
      demo/x11_xft/Makefile
  36. 12 2
      demo/x11_xft/nuklear_xlib.h
  37. 1 1
      example/Makefile
  38. 5 2
      example/canvas.c
  39. 3 0
      example/extended.c
  40. 5 0
      example/file_browser.c
  41. 1 2
      example/skinning.c
  42. 2 1
      nuklear.h
  43. 1 0
      src/CHANGELOG
  44. 1 1
      src/nuklear_layout.c

+ 1 - 1
clib.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "nuklear",
   "name": "nuklear",
-  "version": "4.09.0",
+  "version": "4.09.1",
   "repo": "Immediate-Mode-UI/Nuklear",
   "repo": "Immediate-Mode-UI/Nuklear",
   "description": "A small ANSI C gui toolkit",
   "description": "A small ANSI C gui toolkit",
   "keywords": ["gl", "ui", "toolkit"],
   "keywords": ["gl", "ui", "toolkit"],

+ 1 - 1
demo/allegro5/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -Wno-unused-function -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 0 - 3
demo/allegro5/main.c

@@ -47,9 +47,6 @@
  *                          DEMO
  *                          DEMO
  *
  *
  * ===============================================================*/
  * ===============================================================*/
-static void error_callback(int e, const char *d)
-{printf("Error %d: %s\n", e, d);}
-
 int main(void)
 int main(void)
 {
 {
     /* Platform */
     /* Platform */

+ 1 - 1
demo/glfw_opengl2/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 1 - 0
demo/glfw_opengl2/nuklear_glfw_gl2.h

@@ -218,6 +218,7 @@ NK_API void
 nk_glfw3_mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
 nk_glfw3_mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
 {
 {
     double x, y;
     double x, y;
+    NK_UNUSED(mods);
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     glfwGetCursorPos(window, &x, &y);
     glfwGetCursorPos(window, &x, &y);
     if (action == GLFW_PRESS)  {
     if (action == GLFW_PRESS)  {

+ 1 - 1
demo/glfw_opengl3/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 1 - 0
demo/glfw_opengl3/nuklear_glfw_gl3.h

@@ -330,6 +330,7 @@ nk_glfw3_mouse_button_callback(GLFWwindow* win, int button, int action, int mods
 {
 {
     struct nk_glfw* glfw = glfwGetWindowUserPointer(win);
     struct nk_glfw* glfw = glfwGetWindowUserPointer(win);
     double x, y;
     double x, y;
+    NK_UNUSED(mods);
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     glfwGetCursorPos(win, &x, &y);
     glfwGetCursorPos(win, &x, &y);
     if (action == GLFW_PRESS)  {
     if (action == GLFW_PRESS)  {

+ 1 - 1
demo/glfw_opengl4/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 1 - 0
demo/glfw_opengl4/nuklear_glfw_gl4.h

@@ -477,6 +477,7 @@ NK_API void
 nk_glfw3_mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
 nk_glfw3_mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
 {
 {
     double x, y;
     double x, y;
+    NK_UNUSED(mods);
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     if (button != GLFW_MOUSE_BUTTON_LEFT) return;
     glfwGetCursorPos(window, &x, &y);
     glfwGetCursorPos(window, &x, &y);
     if (action == GLFW_PRESS)  {
     if (action == GLFW_PRESS)  {

+ 0 - 9
demo/overview.c

@@ -623,13 +623,11 @@ overview(struct nk_context *ctx)
 
 
             int i;
             int i;
             int index = -1;
             int index = -1;
-            struct nk_rect bounds;
 
 
             /* line chart */
             /* line chart */
             id = 0;
             id = 0;
             index = -1;
             index = -1;
             nk_layout_row_dynamic(ctx, 100, 1);
             nk_layout_row_dynamic(ctx, 100, 1);
-            bounds = nk_widget_bounds(ctx);
             if (nk_chart_begin(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f)) {
             if (nk_chart_begin(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f)) {
                 for (i = 0; i < 32; ++i) {
                 for (i = 0; i < 32; ++i) {
                     nk_flags res = nk_chart_push(ctx, (float)cos(id));
                     nk_flags res = nk_chart_push(ctx, (float)cos(id));
@@ -651,7 +649,6 @@ overview(struct nk_context *ctx)
 
 
             /* column chart */
             /* column chart */
             nk_layout_row_dynamic(ctx, 100, 1);
             nk_layout_row_dynamic(ctx, 100, 1);
-            bounds = nk_widget_bounds(ctx);
             if (nk_chart_begin(ctx, NK_CHART_COLUMN, 32, 0.0f, 1.0f)) {
             if (nk_chart_begin(ctx, NK_CHART_COLUMN, 32, 0.0f, 1.0f)) {
                 for (i = 0; i < 32; ++i) {
                 for (i = 0; i < 32; ++i) {
                     nk_flags res = nk_chart_push(ctx, (float)fabs(sin(id)));
                     nk_flags res = nk_chart_push(ctx, (float)fabs(sin(id)));
@@ -672,7 +669,6 @@ overview(struct nk_context *ctx)
 
 
             /* mixed chart */
             /* mixed chart */
             nk_layout_row_dynamic(ctx, 100, 1);
             nk_layout_row_dynamic(ctx, 100, 1);
-            bounds = nk_widget_bounds(ctx);
             if (nk_chart_begin(ctx, NK_CHART_COLUMN, 32, 0.0f, 1.0f)) {
             if (nk_chart_begin(ctx, NK_CHART_COLUMN, 32, 0.0f, 1.0f)) {
                 nk_chart_add_slot(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f);
                 nk_chart_add_slot(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f);
                 nk_chart_add_slot(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f);
                 nk_chart_add_slot(ctx, NK_CHART_LINES, 32, -1.0f, 1.0f);
@@ -687,7 +683,6 @@ overview(struct nk_context *ctx)
 
 
             /* mixed colored chart */
             /* mixed colored chart */
             nk_layout_row_dynamic(ctx, 100, 1);
             nk_layout_row_dynamic(ctx, 100, 1);
-            bounds = nk_widget_bounds(ctx);
             if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
             if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                 nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                 nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                 nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,255,0), nk_rgb(0,150,0), 32, -1.0f, 1.0f);
                 nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,255,0), nk_rgb(0,150,0), 32, -1.0f, 1.0f);
@@ -946,7 +941,6 @@ overview(struct nk_context *ctx)
             if (nk_tree_push(ctx, NK_TREE_NODE, "Notebook", NK_MINIMIZED))
             if (nk_tree_push(ctx, NK_TREE_NODE, "Notebook", NK_MINIMIZED))
             {
             {
                 static int current_tab = 0;
                 static int current_tab = 0;
-                struct nk_rect bounds;
                 float step = (2*3.141592654f) / 32;
                 float step = (2*3.141592654f) / 32;
                 enum chart_type {CHART_LINE, CHART_HISTO, CHART_MIXED};
                 enum chart_type {CHART_LINE, CHART_HISTO, CHART_MIXED};
                 const char *names[] = {"Lines", "Columns", "Mixed"};
                 const char *names[] = {"Lines", "Columns", "Mixed"};
@@ -982,7 +976,6 @@ overview(struct nk_context *ctx)
                     default: break;
                     default: break;
                     case CHART_LINE:
                     case CHART_LINE:
                         nk_layout_row_dynamic(ctx, 100, 1);
                         nk_layout_row_dynamic(ctx, 100, 1);
-                        bounds = nk_widget_bounds(ctx);
                         if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                         if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                             nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                             nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                             for (i = 0, id = 0; i < 32; ++i) {
                             for (i = 0, id = 0; i < 32; ++i) {
@@ -995,7 +988,6 @@ overview(struct nk_context *ctx)
                         break;
                         break;
                     case CHART_HISTO:
                     case CHART_HISTO:
                         nk_layout_row_dynamic(ctx, 100, 1);
                         nk_layout_row_dynamic(ctx, 100, 1);
-                        bounds = nk_widget_bounds(ctx);
                         if (nk_chart_begin_colored(ctx, NK_CHART_COLUMN, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                         if (nk_chart_begin_colored(ctx, NK_CHART_COLUMN, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                             for (i = 0, id = 0; i < 32; ++i) {
                             for (i = 0, id = 0; i < 32; ++i) {
                                 nk_chart_push_slot(ctx, (float)fabs(sin(id)), 0);
                                 nk_chart_push_slot(ctx, (float)fabs(sin(id)), 0);
@@ -1006,7 +998,6 @@ overview(struct nk_context *ctx)
                         break;
                         break;
                     case CHART_MIXED:
                     case CHART_MIXED:
                         nk_layout_row_dynamic(ctx, 100, 1);
                         nk_layout_row_dynamic(ctx, 100, 1);
-                        bounds = nk_widget_bounds(ctx);
                         if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                         if (nk_chart_begin_colored(ctx, NK_CHART_LINES, nk_rgb(255,0,0), nk_rgb(150,0,0), 32, 0.0f, 1.0f)) {
                             nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                             nk_chart_add_slot_colored(ctx, NK_CHART_LINES, nk_rgb(0,0,255), nk_rgb(0,0,150),32, -1.0f, 1.0f);
                             nk_chart_add_slot_colored(ctx, NK_CHART_COLUMN, nk_rgb(0,255,0), nk_rgb(0,150,0), 32, 0.0f, 1.0f);
                             nk_chart_add_slot_colored(ctx, NK_CHART_COLUMN, nk_rgb(0,255,0), nk_rgb(0,150,0), 32, 0.0f, 1.0f);

+ 1 - 1
demo/sdl2surface_rawfb/Makefile

@@ -1,4 +1,4 @@
-CFLAGS=`sdl2-config --cflags --libs`   -std=c89 -Wall  -O0 -g -fvisibility=hidden -Wno-unused `pkg-config SDL2_ttf --cflags --libs`
+CFLAGS=`sdl2-config --cflags --libs`   -std=c89 -Wall -Wextra -pedantic -Wno-unused-function -O0 -g -fvisibility=hidden `pkg-config SDL2_ttf --cflags --libs`
 
 
 .PHONY: clean
 .PHONY: clean
 
 

+ 19 - 11
demo/sdl2surface_rawfb/main.c

@@ -2,7 +2,6 @@
 #include <SDL_mouse.h>
 #include <SDL_mouse.h>
 #include <SDL_keyboard.h>
 #include <SDL_keyboard.h>
 
 
-
 #ifndef MIN
 #ifndef MIN
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 #define MIN(a,b) ((a) < (b) ? (a) : (b))
 #endif
 #endif
@@ -26,6 +25,7 @@
 static int translate_sdl_key(struct SDL_Keysym const *k)
 static int translate_sdl_key(struct SDL_Keysym const *k)
 {
 {
     /*keyboard handling left as an exercise for the reader */
     /*keyboard handling left as an exercise for the reader */
+    NK_UNUSED(k);
 
 
     return NK_KEY_NONE;
     return NK_KEY_NONE;
 }
 }
@@ -50,7 +50,7 @@ static int sdl_button_to_nk(int button)
     }
     }
 }
 }
 
 
-
+#if 0
 static void
 static void
 grid_demo(struct nk_context *ctx)
 grid_demo(struct nk_context *ctx)
 {
 {
@@ -85,7 +85,7 @@ grid_demo(struct nk_context *ctx)
     }
     }
     nk_end(ctx);
     nk_end(ctx);
 }
 }
-
+#endif
 
 
 
 
 int main(int argc, char **argv)
 int main(int argc, char **argv)
@@ -93,20 +93,28 @@ int main(int argc, char **argv)
     struct nk_color clear = {0,100,0,255};
     struct nk_color clear = {0,100,0,255};
     struct nk_vec2 vec;
     struct nk_vec2 vec;
     struct nk_rect bounds = {40,40,0,0};
     struct nk_rect bounds = {40,40,0,0};
+    struct sdlsurface_context *context;
+
+    SDL_DisplayMode dm;
+    SDL_Window *window;
+    SDL_Renderer *renderer;
+    SDL_Texture *tex;
+    SDL_Surface *surface;
+
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
 
 
     SDL_Init(SDL_INIT_VIDEO);
     SDL_Init(SDL_INIT_VIDEO);
     printf("sdl init called...\n");
     printf("sdl init called...\n");
 
 
     SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
     SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
 
 
-    SDL_DisplayMode dm;
-
     SDL_GetDesktopDisplayMode(0, &dm);
     SDL_GetDesktopDisplayMode(0, &dm);
 
 
     printf("desktop display mode %d %d\n", dm.w, dm.h);
     printf("desktop display mode %d %d\n", dm.w, dm.h);
 
 
 
 
-    SDL_Window *window = SDL_CreateWindow("Puzzle", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, dm.w-200,dm.h-200, SDL_WINDOW_OPENGL);
+    window = SDL_CreateWindow("Puzzle", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, dm.w-200,dm.h-200, SDL_WINDOW_OPENGL);
     if (!window)
     if (!window)
     {
     {
         printf("can't open window!\n");
         printf("can't open window!\n");
@@ -114,18 +122,18 @@ int main(int argc, char **argv)
     }
     }
 
 
 
 
-    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0);
+    renderer = SDL_CreateRenderer(window, -1, 0);
 
 
-    SDL_Surface *surface = SDL_CreateRGBSurfaceWithFormat(0, dm.w-200, dm.h-200, 32, SDL_PIXELFORMAT_ARGB8888);
+    surface = SDL_CreateRGBSurfaceWithFormat(0, dm.w-200, dm.h-200, 32, SDL_PIXELFORMAT_ARGB8888);
 
 
 
 
-    struct sdlsurface_context *context = nk_sdlsurface_init(surface, 13.0f);
+    context = nk_sdlsurface_init(surface, 13.0f);
 
 
 
 
     while(1)
     while(1)
     {
     {
-        nk_input_begin(&(context->ctx));
         SDL_Event event;
         SDL_Event event;
+        nk_input_begin(&(context->ctx));
         while (SDL_PollEvent(&event))
         while (SDL_PollEvent(&event))
         {
         {
             switch(event.type)
             switch(event.type)
@@ -184,7 +192,7 @@ int main(int argc, char **argv)
 
 
 
 
 
 
-        SDL_Texture *tex = SDL_CreateTextureFromSurface(renderer, surface);
+        tex = SDL_CreateTextureFromSurface(renderer, surface);
         SDL_RenderCopy(renderer, tex, NULL, NULL);
         SDL_RenderCopy(renderer, tex, NULL, NULL);
         SDL_RenderPresent(renderer);
         SDL_RenderPresent(renderer);
         SDL_DestroyTexture(tex);
         SDL_DestroyTexture(tex);

+ 12 - 6
demo/sdl2surface_rawfb/sdl2surface_rawfb.h

@@ -167,7 +167,7 @@ nk_sdlsurface_img_setpixel(const struct SDL_Surface *img,
     unsigned int *pixel;
     unsigned int *pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
     pixel = (unsigned int *)ptr;
     pixel = (unsigned int *)ptr;
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
@@ -186,7 +186,7 @@ nk_sdlsurface_img_getpixel(const struct SDL_Surface *img, const int x0, const in
     unsigned int pixel;
     unsigned int pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
             col.a = ptr[x0];
             col.a = ptr[x0];
@@ -235,6 +235,8 @@ nk_sdlsurface_stroke_line(const struct sdlsurface_context *sdlsurface,
     short tmp;
     short tmp;
     int dy, dx, stepx, stepy;
     int dy, dx, stepx, stepy;
 
 
+    NK_UNUSED(line_thickness);
+
     dy = y1 - y0;
     dy = y1 - y0;
     dx = x1 - x0;
     dx = x1 - x0;
 
 
@@ -369,6 +371,8 @@ nk_sdlsurface_stroke_arc(const struct sdlsurface_context *sdlsurface,
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     int x, y, sigma;
     int x, y, sigma;
 
 
+    NK_UNUSED(line_thickness);
+
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (w < 1 || h < 1) return;
     if (w < 1 || h < 1) return;
 
 
@@ -735,6 +739,8 @@ nk_sdlsurface_stroke_circle(const struct sdlsurface_context *sdlsurface,
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     int x, y, sigma;
     int x, y, sigma;
 
 
+    NK_UNUSED(line_thickness);
+
     /* Convert upper left to center */
     /* Convert upper left to center */
     h = (h + 1) / 2;
     h = (h + 1) / 2;
     w = (w + 1) / 2;
     w = (w + 1) / 2;
@@ -802,13 +808,13 @@ nk_sdlsurface_clear(const struct sdlsurface_context *sdlsurface, const struct nk
 struct sdlsurface_context*
 struct sdlsurface_context*
 nk_sdlsurface_init(SDL_Surface *fb, float fontSize)
 nk_sdlsurface_init(SDL_Surface *fb, float fontSize)
 {
 {
-    SDL_assert((fb->format->format == SDL_PIXELFORMAT_ARGB8888)
-               || (fb->format->format == SDL_PIXELFORMAT_RGBA8888));
-
     const void *tex;
     const void *tex;
     int texh, texw;
     int texh, texw;
     struct sdlsurface_context *sdlsurface;
     struct sdlsurface_context *sdlsurface;
 
 
+    assert((fb->format->format == SDL_PIXELFORMAT_ARGB8888)
+               || (fb->format->format == SDL_PIXELFORMAT_RGBA8888));
+
     sdlsurface = malloc(sizeof(struct sdlsurface_context));
     sdlsurface = malloc(sizeof(struct sdlsurface_context));
     if (!sdlsurface)
     if (!sdlsurface)
         return NULL;
         return NULL;
@@ -843,9 +849,9 @@ nk_sdlsurface_init(SDL_Surface *fb, float fontSize)
 
 
     if (fb->format->format == SDL_PIXELFORMAT_RGBA8888)
     if (fb->format->format == SDL_PIXELFORMAT_RGBA8888)
     {
     {
-        SDL_assert(sdlsurface->font_tex->pitch == sdlsurface->font_tex->w * 4);
         uint32_t *fontPixels = (uint32_t *)sdlsurface->font_tex->pixels;
         uint32_t *fontPixels = (uint32_t *)sdlsurface->font_tex->pixels;
         int i;
         int i;
+        assert(sdlsurface->font_tex->pitch == sdlsurface->font_tex->w * 4);
         for (i = 0; i < sdlsurface->font_tex->w * sdlsurface->font_tex->h; i++)
         for (i = 0; i < sdlsurface->font_tex->w * sdlsurface->font_tex->h; i++)
         {
         {
             uint32_t col = fontPixels[i];
             uint32_t col = fontPixels[i];

+ 1 - 1
demo/sdl_opengl2/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 3 - 0
demo/sdl_opengl2/main.c

@@ -78,6 +78,9 @@ main(int argc, char *argv[])
     struct nk_context *ctx;
     struct nk_context *ctx;
     struct nk_colorf bg;
     struct nk_colorf bg;
 
 
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
+
     /* SDL setup */
     /* SDL setup */
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     SDL_Init(SDL_INIT_VIDEO);
     SDL_Init(SDL_INIT_VIDEO);

+ 1 - 1
demo/sdl_opengl3/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 3 - 0
demo/sdl_opengl3/main.c

@@ -81,6 +81,9 @@ int main(int argc, char *argv[])
     struct nk_context *ctx;
     struct nk_context *ctx;
     struct nk_colorf bg;
     struct nk_colorf bg;
 
 
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
+
     /* SDL setup */
     /* SDL setup */
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS);
     SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS);

+ 1 - 1
demo/sdl_opengles2/Makefile

@@ -2,7 +2,7 @@
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 4 - 0
demo/sdl_opengles2/main.c

@@ -139,6 +139,10 @@ int main(int argc, char* argv[])
     /* GUI */
     /* GUI */
     struct nk_context *ctx;
     struct nk_context *ctx;
     SDL_GLContext glContext;
     SDL_GLContext glContext;
+
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
+
     /* SDL setup */
     /* SDL setup */
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
     /*SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS); // - do NOT init SDL on GL ES 2 */
     /*SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_EVENTS); // - do NOT init SDL on GL ES 2 */

+ 1 - 1
demo/sfml_opengl2/Makefile

@@ -3,7 +3,7 @@ CC = g++
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -s -O2
+CFLAGS += -s -Wall -Wextra -pedantic -O2
 
 
 SRC = main.cpp
 SRC = main.cpp
 OBJ = $(SRC:.cpp=.o)
 OBJ = $(SRC:.cpp=.o)

+ 7 - 0
demo/sfml_opengl2/nuklear_sfml_gl2.h

@@ -189,6 +189,9 @@ nk_sfml_clipboard_paste(nk_handle usr, struct nk_text_edit* edit)
     if(text)
     if(text)
         nk_textedit_paste(edit, text, nk_strlen(text));
         nk_textedit_paste(edit, text, nk_strlen(text));
         (void)usr;
         (void)usr;
+#else
+    NK_UNUSED(usr);
+    NK_UNUSED(edit);
 #endif
 #endif
 }
 }
 
 
@@ -208,6 +211,10 @@ nk_sfml_clipboard_copy(nk_handle usr, const char* text, int len)
     sf::Clipboard clipboard(sfml.window);
     sf::Clipboard clipboard(sfml.window);
     clipboard.setText(str);
     clipboard.setText(str);
     free(str);
     free(str);
+#else
+    NK_UNUSED(usr);
+    NK_UNUSED(text);
+    NK_UNUSED(len);
 #endif
 #endif
 }
 }
 
 

+ 1 - 1
demo/sfml_opengl3/Makefile

@@ -3,7 +3,7 @@ CC = g++
 BIN = demo
 BIN = demo
 
 
 # Flags
 # Flags
-CFLAGS += -s -O2
+CFLAGS += -s -Wall -Wextra -pedantic -O2
 
 
 SRC = main.cpp
 SRC = main.cpp
 OBJ = $(SRC:.cpp=.o)
 OBJ = $(SRC:.cpp=.o)

+ 7 - 0
demo/sfml_opengl3/nuklear_sfml_gl3.h

@@ -298,6 +298,9 @@ nk_sfml_clipboard_paste(nk_handle usr, struct nk_text_edit* edit)
     sf::Clipboard clipboard(sfml.window);
     sf::Clipboard clipboard(sfml.window);
     const char* text = clipboard.getText();
     const char* text = clipboard.getText();
     if(text) nk_textedit_paste(edit, text, nk_strlen(text));
     if(text) nk_textedit_paste(edit, text, nk_strlen(text));
+#else
+    NK_UNUSED(usr);
+    NK_UNUSED(edit);
 #endif
 #endif
 }
 }
 static void
 static void
@@ -316,6 +319,10 @@ nk_sfml_clipboard_copy(nk_handle usr, const char* text, int len)
     sf::Clipboard clipboard(sfml.window);
     sf::Clipboard clipboard(sfml.window);
     clipboard.setText(str);
     clipboard.setText(str);
     free(str);
     free(str);
+#else
+    NK_UNUSED(usr);
+    NK_UNUSED(text);
+    NK_UNUSED(len);
 #endif
 #endif
 }
 }
 
 

+ 2 - 2
demo/wayland_rawfb/Makefile

@@ -2,12 +2,12 @@ WAYLAND=`pkg-config wayland-client --cflags --libs`
 WAYLAND_SCANNER=wayland-scanner
 WAYLAND_SCANNER=wayland-scanner
 WAYLAND_PROTOCOLS_DIR=/usr/share/wayland-protocols
 WAYLAND_PROTOCOLS_DIR=/usr/share/wayland-protocols
 
 
-CFLAGS?=-std=c11 -Wall -Werror -O3 -fvisibility=hidden
+CFLAGS?=-std=c99 -Wall -Wextra -pedantic -Wno-unused-function -O3 -fvisibility=hidden
 
 
 .PHONY: clean
 .PHONY: clean
 
 
 demo: main.c xdg-shell.c xdg-shell.h
 demo: main.c xdg-shell.c xdg-shell.h
-	$(CC) -o demo *.c $(WAYLAND) -lrt -lm
+	$(CC) $(CFLAGS) -o demo *.c $(WAYLAND) -lrt -lm
 
 
 xdg-shell.c:
 xdg-shell.c:
 	$(WAYLAND_SCANNER) code $(WAYLAND_PROTOCOLS_DIR)/stable/xdg-shell/xdg-shell.xml xdg-shell.c
 	$(WAYLAND_SCANNER) code $(WAYLAND_PROTOCOLS_DIR)/stable/xdg-shell/xdg-shell.xml xdg-shell.c

+ 99 - 13
demo/wayland_rawfb/main.c

@@ -32,21 +32,37 @@
 //WAYLAND OUTPUT INTERFACE
 //WAYLAND OUTPUT INTERFACE
 static void nk_wayland_output_cb_geometry(void *data, struct wl_output *wl_output, int x, int y, int w, int h, int subpixel, const char *make, const char *model, int transform)
 static void nk_wayland_output_cb_geometry(void *data, struct wl_output *wl_output, int x, int y, int w, int h, int subpixel, const char *make, const char *model, int transform)
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(wl_output);
+    NK_UNUSED(subpixel);
+    NK_UNUSED(make);
+    NK_UNUSED(model);
+    NK_UNUSED(transform);
+
     printf("wl_output geometry x=%d, y=%d, w=%d, h=%d make=%s, model=%s \n", x,y,w,h, make, model);
     printf("wl_output geometry x=%d, y=%d, w=%d, h=%d make=%s, model=%s \n", x,y,w,h, make, model);
 }
 }
 
 
 static void nk_wayland_output_cb_mode(void *data, struct wl_output *wl_output, unsigned int flags, int w, int h, int refresh)
 static void nk_wayland_output_cb_mode(void *data, struct wl_output *wl_output, unsigned int flags, int w, int h, int refresh)
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(wl_output);
+    NK_UNUSED(flags);
+    NK_UNUSED(w);
+    NK_UNUSED(h);
+    NK_UNUSED(refresh);
 }
 }
 
 
 static void nk_wayland_output_cb_done(void *data, struct wl_output *output)
 static void nk_wayland_output_cb_done(void *data, struct wl_output *output)
 {
 {
-
+    NK_UNUSED(data);
+    NK_UNUSED(output);
 }
 }
 
 
 static void nk_wayland_output_cb_scale(void *data, struct wl_output *output, int scale)
 static void nk_wayland_output_cb_scale(void *data, struct wl_output *output, int scale)
 {
 {
-
+    NK_UNUSED(data);
+    NK_UNUSED(output);
+    NK_UNUSED(scale);
 }
 }
 
 
 static const struct wl_output_listener nk_wayland_output_listener =
 static const struct wl_output_listener nk_wayland_output_listener =
@@ -61,15 +77,29 @@ static const struct wl_output_listener nk_wayland_output_listener =
 //WAYLAND POINTER INTERFACE (mouse/touchpad)
 //WAYLAND POINTER INTERFACE (mouse/touchpad)
 static void nk_wayland_pointer_enter (void *data, struct wl_pointer *pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y) 
 static void nk_wayland_pointer_enter (void *data, struct wl_pointer *pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(pointer);
+    NK_UNUSED(serial);
+    NK_UNUSED(surface);
+    NK_UNUSED(surface_x);
+    NK_UNUSED(surface_y);
 }
 }
 
 
 static void nk_wayland_pointer_leave (void *data, struct wl_pointer *pointer, uint32_t serial, struct wl_surface *surface) 
 static void nk_wayland_pointer_leave (void *data, struct wl_pointer *pointer, uint32_t serial, struct wl_surface *surface) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(pointer);
+    NK_UNUSED(serial);
+    NK_UNUSED(surface);
 }
 }
 
 
 static void nk_wayland_pointer_motion (void *data, struct wl_pointer *pointer, uint32_t time, wl_fixed_t x, wl_fixed_t y) 
 static void nk_wayland_pointer_motion (void *data, struct wl_pointer *pointer, uint32_t time, wl_fixed_t x, wl_fixed_t y) 
 {
 {
     struct nk_wayland* win = (struct nk_wayland*)data;
     struct nk_wayland* win = (struct nk_wayland*)data;
+
+    NK_UNUSED(pointer);
+    NK_UNUSED(time);
+
     win->mouse_pointer_x = wl_fixed_to_int(x);
     win->mouse_pointer_x = wl_fixed_to_int(x);
     win->mouse_pointer_y = wl_fixed_to_int(y);
     win->mouse_pointer_y = wl_fixed_to_int(y);
     
     
@@ -79,7 +109,11 @@ static void nk_wayland_pointer_motion (void *data, struct wl_pointer *pointer, u
 static void nk_wayland_pointer_button (void *data, struct wl_pointer *pointer, uint32_t serial, uint32_t time, uint32_t button, uint32_t state) 
 static void nk_wayland_pointer_button (void *data, struct wl_pointer *pointer, uint32_t serial, uint32_t time, uint32_t button, uint32_t state) 
 {
 {
     struct nk_wayland* win = (struct nk_wayland*)data;
     struct nk_wayland* win = (struct nk_wayland*)data;
-    
+
+    NK_UNUSED(pointer);
+    NK_UNUSED(serial);
+    NK_UNUSED(time);
+
     if (button == 272){ //left mouse button
     if (button == 272){ //left mouse button
         if (state == WL_POINTER_BUTTON_STATE_PRESSED) {
         if (state == WL_POINTER_BUTTON_STATE_PRESSED) {
            // printf("nk_input_button x=%d, y=%d press: 1 \n", win->mouse_pointer_x, win->mouse_pointer_y);
            // printf("nk_input_button x=%d, y=%d press: 1 \n", win->mouse_pointer_x, win->mouse_pointer_y);
@@ -93,6 +127,11 @@ static void nk_wayland_pointer_button (void *data, struct wl_pointer *pointer, u
 
 
 static void nk_wayland_pointer_axis (void *data, struct wl_pointer *pointer, uint32_t time, uint32_t axis, wl_fixed_t value) 
 static void nk_wayland_pointer_axis (void *data, struct wl_pointer *pointer, uint32_t time, uint32_t axis, wl_fixed_t value) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(pointer);
+    NK_UNUSED(time);
+    NK_UNUSED(axis);
+    NK_UNUSED(value);
 }
 }
 
 
 static struct wl_pointer_listener nk_wayland_pointer_listener = 
 static struct wl_pointer_listener nk_wayland_pointer_listener = 
@@ -101,30 +140,60 @@ static struct wl_pointer_listener nk_wayland_pointer_listener =
     &nk_wayland_pointer_leave, 
     &nk_wayland_pointer_leave, 
     &nk_wayland_pointer_motion, 
     &nk_wayland_pointer_motion, 
     &nk_wayland_pointer_button, 
     &nk_wayland_pointer_button, 
-    &nk_wayland_pointer_axis
+    &nk_wayland_pointer_axis,
+    NULL,
+    NULL,
+    NULL,
+    NULL
 };
 };
 //-------------------------------------------------------------------- endof WAYLAND POINTER INTERFACE
 //-------------------------------------------------------------------- endof WAYLAND POINTER INTERFACE
 
 
 //WAYLAND KEYBOARD INTERFACE
 //WAYLAND KEYBOARD INTERFACE
 static void nk_wayland_keyboard_keymap (void *data, struct wl_keyboard *keyboard, uint32_t format, int32_t fd, uint32_t size) 
 static void nk_wayland_keyboard_keymap (void *data, struct wl_keyboard *keyboard, uint32_t format, int32_t fd, uint32_t size) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(keyboard);
+    NK_UNUSED(format);
+    NK_UNUSED(fd);
+    NK_UNUSED(size);
 }
 }
 
 
 static void nk_wayland_keyboard_enter (void *data, struct wl_keyboard *keyboard, uint32_t serial, struct wl_surface *surface, struct wl_array *keys) 
 static void nk_wayland_keyboard_enter (void *data, struct wl_keyboard *keyboard, uint32_t serial, struct wl_surface *surface, struct wl_array *keys) 
-{	
+{
+    NK_UNUSED(data);
+    NK_UNUSED(keyboard);
+    NK_UNUSED(serial);
+    NK_UNUSED(surface);
+    NK_UNUSED(keys);
 }
 }
 
 
 static void nk_wayland_keyboard_leave (void *data, struct wl_keyboard *keyboard, uint32_t serial, struct wl_surface *surface) 
 static void nk_wayland_keyboard_leave (void *data, struct wl_keyboard *keyboard, uint32_t serial, struct wl_surface *surface) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(keyboard);
+    NK_UNUSED(serial);
+    NK_UNUSED(surface);
 }
 }
 
 
 static void nk_wayland_keyboard_key (void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t time, uint32_t key, uint32_t state) 
 static void nk_wayland_keyboard_key (void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t time, uint32_t key, uint32_t state) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(keyboard);
+    NK_UNUSED(serial);
+    NK_UNUSED(time);
+    NK_UNUSED(state);
     printf("key: %d \n", key);
     printf("key: %d \n", key);
 }
 }
 
 
-static void nk_wayland_keyboard_modifiers (void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group) 
+static void nk_wayland_keyboard_modifiers (void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group)
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(keyboard);
+    NK_UNUSED(serial);
+    NK_UNUSED(mods_depressed);
+    NK_UNUSED(mods_latched);
+    NK_UNUSED(mods_locked);
+    NK_UNUSED(group);
 }
 }
 
 
 static struct wl_keyboard_listener nk_wayland_keyboard_listener = 
 static struct wl_keyboard_listener nk_wayland_keyboard_listener = 
@@ -133,7 +202,8 @@ static struct wl_keyboard_listener nk_wayland_keyboard_listener =
     &nk_wayland_keyboard_enter, 
     &nk_wayland_keyboard_enter, 
     &nk_wayland_keyboard_leave, 
     &nk_wayland_keyboard_leave, 
     &nk_wayland_keyboard_key, 
     &nk_wayland_keyboard_key, 
-    &nk_wayland_keyboard_modifiers
+    &nk_wayland_keyboard_modifiers,
+    NULL
 };
 };
 //-------------------------------------------------------------------- endof WAYLAND KEYBOARD INTERFACE
 //-------------------------------------------------------------------- endof WAYLAND KEYBOARD INTERFACE
 
 
@@ -154,14 +224,16 @@ static void seat_capabilities (void *data, struct wl_seat *seat, uint32_t capabi
 
 
 static struct wl_seat_listener seat_listener =
 static struct wl_seat_listener seat_listener =
 {
 {
-    &seat_capabilities
+    &seat_capabilities,
+    NULL
 };
 };
 //-------------------------------------------------------------------- endof WAYLAND SEAT INTERFACE
 //-------------------------------------------------------------------- endof WAYLAND SEAT INTERFACE
 
 
 // WAYLAND SHELL INTERFACE
 // WAYLAND SHELL INTERFACE
 static void nk_wayland_xdg_wm_base_ping (void *data, struct xdg_wm_base *xdg_wm_base, uint32_t serial)
 static void nk_wayland_xdg_wm_base_ping (void *data, struct xdg_wm_base *xdg_wm_base, uint32_t serial)
 {
 {
-	xdg_wm_base_pong (xdg_wm_base, serial);
+    NK_UNUSED(data);
+    xdg_wm_base_pong (xdg_wm_base, serial);
 }
 }
 
 
 static struct xdg_wm_base_listener nk_wayland_xdg_wm_base_listener =
 static struct xdg_wm_base_listener nk_wayland_xdg_wm_base_listener =
@@ -171,6 +243,7 @@ static struct xdg_wm_base_listener nk_wayland_xdg_wm_base_listener =
 
 
 static void nk_wayland_xdg_surface_configure (void *data, struct xdg_surface *xdg_surface, uint32_t serial)
 static void nk_wayland_xdg_surface_configure (void *data, struct xdg_surface *xdg_surface, uint32_t serial)
 {
 {
+    NK_UNUSED(data);
     xdg_surface_ack_configure(xdg_surface, serial);
     xdg_surface_ack_configure(xdg_surface, serial);
 }
 }
 
 
@@ -181,10 +254,17 @@ static struct xdg_surface_listener nk_wayland_xdg_surface_listener =
 
 
 static void nk_wayland_xdg_toplevel_configure (void *data, struct xdg_toplevel *xdg_toplevel, int32_t width, int32_t height, struct wl_array *states)
 static void nk_wayland_xdg_toplevel_configure (void *data, struct xdg_toplevel *xdg_toplevel, int32_t width, int32_t height, struct wl_array *states)
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(xdg_toplevel);
+    NK_UNUSED(width);
+    NK_UNUSED(height);
+    NK_UNUSED(states);
 }
 }
 
 
 static void nk_wayland_xdg_toplevel_close (void *data, struct xdg_toplevel *xdg_toplevel)
 static void nk_wayland_xdg_toplevel_close (void *data, struct xdg_toplevel *xdg_toplevel)
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(xdg_toplevel);
 }
 }
 
 
 static struct xdg_toplevel_listener nk_wayland_xdg_toplevel_listener =
 static struct xdg_toplevel_listener nk_wayland_xdg_toplevel_listener =
@@ -199,7 +279,9 @@ static struct xdg_toplevel_listener nk_wayland_xdg_toplevel_listener =
 static void nk_wayland_registry_add_object (void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) 
 static void nk_wayland_registry_add_object (void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) 
 {
 {
     struct nk_wayland* win = (struct nk_wayland*)data;
     struct nk_wayland* win = (struct nk_wayland*)data;
-    
+
+    NK_UNUSED(version);
+
     //printf("looking for %s interface \n", interface);
     //printf("looking for %s interface \n", interface);
 	if (!strcmp(interface,"wl_compositor")) {
 	if (!strcmp(interface,"wl_compositor")) {
 		win->compositor = wl_registry_bind (registry, name, &wl_compositor_interface, 1);
 		win->compositor = wl_registry_bind (registry, name, &wl_compositor_interface, 1);
@@ -222,6 +304,9 @@ static void nk_wayland_registry_add_object (void *data, struct wl_registry *regi
 
 
 static void nk_wayland_registry_remove_object (void *data, struct wl_registry *registry, uint32_t name) 
 static void nk_wayland_registry_remove_object (void *data, struct wl_registry *registry, uint32_t name) 
 {
 {
+    NK_UNUSED(data);
+    NK_UNUSED(registry);
+    NK_UNUSED(name);
 }
 }
 
 
 static struct wl_registry_listener nk_wayland_registry_listener = 
 static struct wl_registry_listener nk_wayland_registry_listener = 
@@ -314,8 +399,10 @@ static void redraw(void *data, struct wl_callback *callback, uint32_t time)
 {
 {
   //  printf("redrawing.. 1\n");
   //  printf("redrawing.. 1\n");
     struct nk_wayland* win = (struct nk_wayland*)data;
     struct nk_wayland* win = (struct nk_wayland*)data;
-    struct nk_color col_red = {0xFF,0x00,0x00,0xA0}; //r,g,b,a
-    struct nk_color col_green = {0x00,0xFF,0x00,0xA0}; //r,g,b,a
+
+    NK_UNUSED(callback);
+    NK_UNUSED(time);
+
     wl_callback_destroy(win->frame_callback);
     wl_callback_destroy(win->frame_callback);
     wl_surface_damage(win->surface, 0, 0, WIDTH, HEIGHT); 
     wl_surface_damage(win->surface, 0, 0, WIDTH, HEIGHT); 
     
     
@@ -338,7 +425,6 @@ int main ()
     long dt;
     long dt;
     long started;
     long started;
     struct nk_wayland nk_wayland_ctx;
     struct nk_wayland nk_wayland_ctx;
-    struct wl_backend *backend;
     struct wl_registry *registry;
     struct wl_registry *registry;
     int running = 1;
     int running = 1;
     
     

+ 8 - 5
demo/wayland_rawfb/nuklear_raw_wayland.h

@@ -110,7 +110,7 @@ static void nk_wayland_ctx_setpixel(const struct nk_wayland* win,
     const short x0, const short y0, const struct nk_color col)
     const short x0, const short y0, const struct nk_color col)
 {
 {
     uint32_t c = nk_color_to_xrgb8888(col);
     uint32_t c = nk_color_to_xrgb8888(col);
-    uint32_t *pixels = win->data;
+    uint32_t *pixels = (uint32_t *)win->data;
     unsigned int *ptr;
     unsigned int *ptr;
 
 
     pixels += (y0 * win->width);
     pixels += (y0 * win->width);
@@ -252,7 +252,7 @@ static void nk_wayland_img_setpixel(const struct wayland_img *img, const int x0,
     unsigned int *pixel;
     unsigned int *pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
 	pixel = (unsigned int *)ptr;
 	pixel = (unsigned int *)ptr;
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
@@ -267,10 +267,9 @@ static struct nk_color nk_wayland_getpixel(const struct nk_wayland* win, const i
 {
 {
     struct nk_color col = {0, 0, 0, 0};
     struct nk_color col = {0, 0, 0, 0};
     uint32_t *ptr;
     uint32_t *ptr;
-    unsigned int pixel;
 
 
     if (y0 < win->height && y0 >= 0 && x0 >= 0 && x0 < win->width) {
     if (y0 < win->height && y0 >= 0 && x0 >= 0 && x0 < win->width) {
-        ptr = win->data + (y0 * win->width);
+        ptr = (uint32_t *)win->data + (y0 * win->width);
 
 
         col = nk_wayland_int2color(*ptr, PIXEL_LAYOUT_XRGB_8888);
         col = nk_wayland_int2color(*ptr, PIXEL_LAYOUT_XRGB_8888);
     } 
     } 
@@ -285,7 +284,7 @@ static struct nk_color nk_wayland_img_getpixel(const struct wayland_img *img, co
     unsigned int pixel;
     unsigned int pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
             col.a = ptr[x0];
             col.a = ptr[x0];
@@ -365,6 +364,8 @@ static void nk_wayland_stroke_line(const struct nk_wayland* win, short x0, short
     short tmp;
     short tmp;
     int dy, dx, stepx, stepy;
     int dy, dx, stepx, stepy;
 
 
+    NK_UNUSED(line_thickness);
+
     dy = y1 - y0;
     dy = y1 - y0;
     dx = x1 - x0;
     dx = x1 - x0;
     
     
@@ -494,6 +495,8 @@ static void nk_wayland_stroke_arc(const struct nk_wayland* win,
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     int x, y, sigma;
     int x, y, sigma;
 
 
+    NK_UNUSED(line_thickness);
+
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (w < 1 || h < 1) return;
     if (w < 1 || h < 1) return;
 
 

+ 1 - 1
demo/x11/Makefile

@@ -2,7 +2,7 @@
 BIN = zahnrad
 BIN = zahnrad
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -Wno-unused-function -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 8 - 0
demo/x11/nuklear_xlib.h

@@ -497,6 +497,9 @@ nk_xsurf_draw_image(XSurface *surf, short x, short y, unsigned short w, unsigned
     struct nk_image img, struct nk_color col)
     struct nk_image img, struct nk_color col)
 {
 {
     XImageWithAlpha *aimage = img.handle.ptr;
     XImageWithAlpha *aimage = img.handle.ptr;
+
+    NK_UNUSED(col);
+
     if (aimage){
     if (aimage){
         if (aimage->clipMask){
         if (aimage->clipMask){
             XSetClipMask(surf->dpy, surf->gc, aimage->clipMask);
             XSetClipMask(surf->dpy, surf->gc, aimage->clipMask);
@@ -581,6 +584,9 @@ nk_xfont_get_text_width(nk_handle handle, float height, const char *text, int le
 {
 {
     XFont *font = (XFont*)handle.ptr;
     XFont *font = (XFont*)handle.ptr;
     XRectangle r;
     XRectangle r;
+
+    NK_UNUSED(height);
+
     if(!font || !text)
     if(!font || !text)
         return 0;
         return 0;
 
 
@@ -687,6 +693,8 @@ nk_xlib_handle_event(Display *dpy, int screen, Window win, XEvent *evt)
 {
 {
     struct nk_context *ctx = &xlib.ctx;
     struct nk_context *ctx = &xlib.ctx;
 
 
+    NK_UNUSED(screen);
+
     /* optional grabbing behavior */
     /* optional grabbing behavior */
     if (ctx->input.mouse.grab) {
     if (ctx->input.mouse.grab) {
         XDefineCursor(xlib.dpy, xlib.root, xlib.cursor);
         XDefineCursor(xlib.dpy, xlib.root, xlib.cursor);

+ 1 - 1
demo/x11_opengl2/Makefile

@@ -6,7 +6,7 @@ CC = clang
 DCC = gcc
 DCC = gcc
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 4 - 1
demo/x11_opengl2/nuklear_xlib_gl2.h

@@ -100,8 +100,11 @@ nk_x11_render(enum nk_anti_aliasing AA, int max_vertex_buffer, int max_element_b
     /* setup global state */
     /* setup global state */
     struct nk_x11_device *dev = &x11.ogl;
     struct nk_x11_device *dev = &x11.ogl;
     int width, height;
     int width, height;
-
     XWindowAttributes attr;
     XWindowAttributes attr;
+
+    NK_UNUSED(max_vertex_buffer);
+    NK_UNUSED(max_element_buffer);
+
     XGetWindowAttributes(x11.dpy, x11.win, &attr);
     XGetWindowAttributes(x11.dpy, x11.win, &attr);
     width = attr.width;
     width = attr.width;
     height = attr.height;
     height = attr.height;

+ 1 - 1
demo/x11_opengl3/Makefile

@@ -6,7 +6,7 @@ CC = clang
 DCC = gcc
 DCC = gcc
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 1 - 1
demo/x11_rawfb/Makefile

@@ -2,7 +2,7 @@
 BIN = zahnrad
 BIN = zahnrad
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2 -Wunused
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -Wno-unused-function -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 8 - 2
demo/x11_rawfb/nuklear_rawfb.h

@@ -179,7 +179,7 @@ nk_rawfb_img_setpixel(const struct rawfb_image *img,
     unsigned int *pixel;
     unsigned int *pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
 	pixel = (unsigned int *)ptr;
 	pixel = (unsigned int *)ptr;
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
@@ -198,7 +198,7 @@ nk_rawfb_img_getpixel(const struct rawfb_image *img, const int x0, const int y0)
     unsigned int pixel;
     unsigned int pixel;
     NK_ASSERT(img);
     NK_ASSERT(img);
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
     if (y0 < img->h && y0 >= 0 && x0 >= 0 && x0 < img->w) {
-        ptr = img->pixels + (img->pitch * y0);
+        ptr = (unsigned char *)img->pixels + (img->pitch * y0);
 
 
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
         if (img->format == NK_FONT_ATLAS_ALPHA8) {
             col.a = ptr[x0];
             col.a = ptr[x0];
@@ -247,6 +247,8 @@ nk_rawfb_stroke_line(const struct rawfb_context *rawfb,
     short tmp;
     short tmp;
     int dy, dx, stepx, stepy;
     int dy, dx, stepx, stepy;
 
 
+    NK_UNUSED(line_thickness);
+
     dy = y1 - y0;
     dy = y1 - y0;
     dx = x1 - x0;
     dx = x1 - x0;
 
 
@@ -381,6 +383,8 @@ nk_rawfb_stroke_arc(const struct rawfb_context *rawfb,
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     int x, y, sigma;
     int x, y, sigma;
 
 
+    NK_UNUSED(line_thickness);
+
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (s != 0 && s != 90 && s != 180 && s != 270) return;
     if (w < 1 || h < 1) return;
     if (w < 1 || h < 1) return;
 
 
@@ -747,6 +751,8 @@ nk_rawfb_stroke_circle(const struct rawfb_context *rawfb,
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     const int fa2 = 4 * a2, fb2 = 4 * b2;
     int x, y, sigma;
     int x, y, sigma;
 
 
+    NK_UNUSED(line_thickness);
+
     /* Convert upper left to center */
     /* Convert upper left to center */
     h = (h + 1) / 2;
     h = (h + 1) / 2;
     w = (w + 1) / 2;
     w = (w + 1) / 2;

+ 1 - 1
demo/x11_rawfb/nuklear_xlib.h

@@ -109,7 +109,7 @@ nk_xlib_init(Display *dpy, Visual *vis, int screen, Window root,
             break;
             break;
         }
         }
         xlib.xsi.shmaddr = xlib.ximg->data = shmat(xlib.xsi.shmid, NULL, 0);
         xlib.xsi.shmaddr = xlib.ximg->data = shmat(xlib.xsi.shmid, NULL, 0);
-        if ((size_t)xlib.xsi.shmaddr < 0) {
+        if ((intptr_t)xlib.xsi.shmaddr < 0) {
             XDestroyImage(xlib.ximg);
             XDestroyImage(xlib.ximg);
             xlib.fallback = True;
             xlib.fallback = True;
             break;
             break;

+ 1 - 1
demo/x11_xft/Makefile

@@ -2,7 +2,7 @@
 BIN = zahnrad
 BIN = zahnrad
 
 
 # Flags
 # Flags
-CFLAGS += -std=c89 -pedantic -O2
+CFLAGS += -std=c89 -Wall -Wextra -pedantic -Wno-unused-function -O2
 
 
 SRC = main.c
 SRC = main.c
 OBJ = $(SRC:.c=.o)
 OBJ = $(SRC:.c=.o)

+ 12 - 2
demo/x11_xft/nuklear_xlib.h

@@ -423,10 +423,11 @@ nk_xsurf_draw_text(XSurface *surf, short x, short y, unsigned short w, unsigned
 #ifdef NK_XLIB_USE_XFT
 #ifdef NK_XLIB_USE_XFT
     XRenderColor xrc;
     XRenderColor xrc;
     XftColor color;
     XftColor color;
+#else
+    unsigned long fg = nk_color_from_byte(&cfg.r);
 #endif
 #endif
-    int tx, ty;
     unsigned long bg = nk_color_from_byte(&cbg.r);
     unsigned long bg = nk_color_from_byte(&cbg.r);
-    unsigned long fg = nk_color_from_byte(&cfg.r);
+    int tx, ty;
 
 
     XSetForeground(surf->dpy, surf->gc, bg);
     XSetForeground(surf->dpy, surf->gc, bg);
     XFillRectangle(surf->dpy, surf->drawable, surf->gc, (int)x, (int)y, (unsigned)w, (unsigned)h);
     XFillRectangle(surf->dpy, surf->drawable, surf->gc, (int)x, (int)y, (unsigned)w, (unsigned)h);
@@ -543,6 +544,9 @@ nk_xsurf_draw_image(XSurface *surf, short x, short y, unsigned short w, unsigned
     struct nk_image img, struct nk_color col)
     struct nk_image img, struct nk_color col)
 {
 {
     XImageWithAlpha *aimage = img.handle.ptr;
     XImageWithAlpha *aimage = img.handle.ptr;
+
+    NK_UNUSED(col);
+
     if (aimage){
     if (aimage){
         if (aimage->clipMask){
         if (aimage->clipMask){
             XSetClipMask(surf->dpy, surf->gc, aimage->clipMask);
             XSetClipMask(surf->dpy, surf->gc, aimage->clipMask);
@@ -645,6 +649,8 @@ nk_xfont_get_text_width(nk_handle handle, float height, const char *text, int le
 #ifdef NK_XLIB_USE_XFT
 #ifdef NK_XLIB_USE_XFT
     XGlyphInfo g;
     XGlyphInfo g;
 
 
+    NK_UNUSED(height);
+
 	if(!font || !text)
 	if(!font || !text)
 		return 0;
 		return 0;
 
 
@@ -653,6 +659,8 @@ nk_xfont_get_text_width(nk_handle handle, float height, const char *text, int le
 #else
 #else
     XRectangle r;
     XRectangle r;
 
 
+    NK_UNUSED(height);
+
 	if(!font || !text)
 	if(!font || !text)
 		return 0;
 		return 0;
 
 
@@ -770,6 +778,8 @@ nk_xlib_handle_event(Display *dpy, int screen, Window win, XEvent *evt)
 {
 {
     struct nk_context *ctx = &xlib.ctx;
     struct nk_context *ctx = &xlib.ctx;
 
 
+    NK_UNUSED(screen);
+
     /* optional grabbing behavior */
     /* optional grabbing behavior */
     if (ctx->input.mouse.grab) {
     if (ctx->input.mouse.grab) {
         XDefineCursor(xlib.dpy, xlib.root, xlib.cursor);
         XDefineCursor(xlib.dpy, xlib.root, xlib.cursor);

+ 1 - 1
example/Makefile

@@ -1,5 +1,5 @@
 # Flags
 # Flags
-CFLAGS += -std=c99 -pedantic -O2
+CFLAGS += -std=c99 -Wall -Wextra -pedantic -Wno-misleading-indentation -Wno-shift-negative-value -O2
 LIBS :=
 LIBS :=
 
 
 ifeq ($(OS),Windows_NT)
 ifeq ($(OS),Windows_NT)

+ 5 - 2
example/canvas.c

@@ -65,6 +65,8 @@ struct device {
     GLuint font_tex;
     GLuint font_tex;
 };
 };
 
 
+/* function icon_load () is not used to build this file but might still be useful :) */
+/*
 static void
 static void
 die(const char *fmt, ...)
 die(const char *fmt, ...)
 {
 {
@@ -76,8 +78,6 @@ die(const char *fmt, ...)
     exit(EXIT_FAILURE);
     exit(EXIT_FAILURE);
 }
 }
 
 
-/* function icon_load () is not used to build this file but might still be useful :) */
-/*
 static struct nk_image	
 static struct nk_image	
 icon_load(const char *filename)	
 icon_load(const char *filename)	
 {	
 {	
@@ -404,6 +404,9 @@ int main(int argc, char *argv[])
     struct nk_font_atlas atlas;
     struct nk_font_atlas atlas;
     struct nk_context ctx;
     struct nk_context ctx;
 
 
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
+
     /* GLFW */
     /* GLFW */
     glfwSetErrorCallback(error_callback);
     glfwSetErrorCallback(error_callback);
     if (!glfwInit()) {
     if (!glfwInit()) {

+ 3 - 0
example/extended.c

@@ -748,6 +748,9 @@ int main(int argc, char *argv[])
     struct media media;
     struct media media;
     struct nk_context ctx;
     struct nk_context ctx;
 
 
+    NK_UNUSED(argc);
+    NK_UNUSED(argv);
+
     /* GLFW */
     /* GLFW */
     glfwSetErrorCallback(error_callback);
     glfwSetErrorCallback(error_callback);
     if (!glfwInit()) {
     if (!glfwInit()) {

+ 5 - 0
example/file_browser.c

@@ -149,6 +149,7 @@ die(const char *fmt, ...)
     exit(EXIT_FAILURE);
     exit(EXIT_FAILURE);
 }
 }
 
 
+#if 0
 static char*
 static char*
 file_load(const char* path, size_t* siz)
 file_load(const char* path, size_t* siz)
 {
 {
@@ -163,6 +164,7 @@ file_load(const char* path, size_t* siz)
     fclose(fd);
     fclose(fd);
     return buf;
     return buf;
 }
 }
+#endif
 
 
 static char*
 static char*
 str_duplicate(const char *src)
 str_duplicate(const char *src)
@@ -200,6 +202,7 @@ dir_list(const char *dir, int return_subdirs, size_t *count)
     assert(dir);
     assert(dir);
     assert(count);
     assert(count);
     strncpy(buffer, dir, MAX_PATH_LEN);
     strncpy(buffer, dir, MAX_PATH_LEN);
+    buffer[MAX_PATH_LEN - 1] = 0;
     n = strlen(buffer);
     n = strlen(buffer);
 
 
     if (n > 0 && (buffer[n-1] != '/'))
     if (n > 0 && (buffer[n-1] != '/'))
@@ -343,6 +346,7 @@ static void
 file_browser_reload_directory_content(struct file_browser *browser, const char *path)
 file_browser_reload_directory_content(struct file_browser *browser, const char *path)
 {
 {
     strncpy(browser->directory, path, MAX_PATH_LEN);
     strncpy(browser->directory, path, MAX_PATH_LEN);
+    browser->directory[MAX_PATH_LEN - 1] = 0;
     dir_free_list(browser->files, browser->file_count);
     dir_free_list(browser->files, browser->file_count);
     dir_free_list(browser->directories, browser->dir_count);
     dir_free_list(browser->directories, browser->dir_count);
     browser->files = dir_list(path, 0, &browser->file_count);
     browser->files = dir_list(path, 0, &browser->file_count);
@@ -364,6 +368,7 @@ file_browser_init(struct file_browser *browser, struct media *media)
         {
         {
             size_t l;
             size_t l;
             strncpy(browser->home, home, MAX_PATH_LEN);
             strncpy(browser->home, home, MAX_PATH_LEN);
+            browser->home[MAX_PATH_LEN - 1] = 0;
             l = strlen(browser->home);
             l = strlen(browser->home);
             strcpy(browser->home + l, "/");
             strcpy(browser->home + l, "/");
             strcpy(browser->directory, browser->home);
             strcpy(browser->directory, browser->home);

+ 1 - 2
example/skinning.c

@@ -733,7 +733,6 @@ int main(int argc, char *argv[])
         nk_input_end(&ctx);}
         nk_input_end(&ctx);}
 
 
         /* GUI */
         /* GUI */
-        {struct nk_panel layout, tab;
         if (nk_begin(&ctx, "Demo", nk_rect(50, 50, 300, 400),
         if (nk_begin(&ctx, "Demo", nk_rect(50, 50, 300, 400),
             NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_TITLE))
             NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_TITLE))
         {
         {
@@ -805,7 +804,7 @@ int main(int argc, char *argv[])
                 nk_group_end(&ctx);
                 nk_group_end(&ctx);
             }
             }
         }
         }
-        nk_end(&ctx);}
+        nk_end(&ctx);
 
 
         /* Draw */
         /* Draw */
         glViewport(0, 0, display_width, display_height);
         glViewport(0, 0, display_width, display_height);

+ 2 - 1
nuklear.h

@@ -22166,7 +22166,7 @@ nk_layout_peek(struct nk_rect *bounds, struct nk_context *ctx)
 NK_API void 
 NK_API void 
 nk_spacer(struct nk_context *ctx )
 nk_spacer(struct nk_context *ctx )
 {
 {
-    struct nk_rect dummy_rect = {0};
+    struct nk_rect dummy_rect = { 0, 0, 0, 0 };
     nk_panel_alloc_space( &dummy_rect, ctx );
     nk_panel_alloc_space( &dummy_rect, ctx );
 }
 }
 
 
@@ -29560,6 +29560,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
 ///    - [yy]: Minor version with non-breaking API and library changes
 ///    - [yy]: Minor version with non-breaking API and library changes
 ///    - [zz]: Bug fix version with no direct changes to API
 ///    - [zz]: Bug fix version with no direct changes to API
 ///
 ///
+/// - 2021/12/16 (4.09.1) - Fix the majority of GCC warnings
 /// - 2021/10/16 (4.09.0) - Added nk_spacer() widget
 /// - 2021/10/16 (4.09.0) - Added nk_spacer() widget
 /// - 2021/09/22 (4.08.6) - Fix "may be used uninitialized" warnings in nk_widget
 /// - 2021/09/22 (4.08.6) - Fix "may be used uninitialized" warnings in nk_widget
 /// - 2021/09/22 (4.08.5) - GCC __builtin_offsetof only exists in version 4 and later
 /// - 2021/09/22 (4.08.5) - GCC __builtin_offsetof only exists in version 4 and later

+ 1 - 0
src/CHANGELOG

@@ -8,6 +8,7 @@
 ///    - [yy]: Minor version with non-breaking API and library changes
 ///    - [yy]: Minor version with non-breaking API and library changes
 ///    - [zz]: Bug fix version with no direct changes to API
 ///    - [zz]: Bug fix version with no direct changes to API
 ///
 ///
+/// - 2021/12/16 (4.09.1) - Fix the majority of GCC warnings
 /// - 2021/10/16 (4.09.0) - Added nk_spacer() widget
 /// - 2021/10/16 (4.09.0) - Added nk_spacer() widget
 /// - 2021/09/22 (4.08.6) - Fix "may be used uninitialized" warnings in nk_widget
 /// - 2021/09/22 (4.08.6) - Fix "may be used uninitialized" warnings in nk_widget
 /// - 2021/09/22 (4.08.5) - GCC __builtin_offsetof only exists in version 4 and later
 /// - 2021/09/22 (4.08.5) - GCC __builtin_offsetof only exists in version 4 and later

+ 1 - 1
src/nuklear_layout.c

@@ -763,7 +763,7 @@ nk_layout_peek(struct nk_rect *bounds, struct nk_context *ctx)
 NK_API void 
 NK_API void 
 nk_spacer(struct nk_context *ctx )
 nk_spacer(struct nk_context *ctx )
 {
 {
-    struct nk_rect dummy_rect = {0};
+    struct nk_rect dummy_rect = { 0, 0, 0, 0 };
     nk_panel_alloc_space( &dummy_rect, ctx );
     nk_panel_alloc_space( &dummy_rect, ctx );
 }
 }