raylib-nuklear-test.c 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include <assert.h>
  2. #include "raylib.h"
  3. #define RAYLIB_NUKLEAR_IMPLEMENTATION
  4. #include "raylib-nuklear.h"
  5. int main(int argc, char *argv[]) {
  6. // Initialization
  7. SetTraceLogLevel(LOG_ALL);
  8. TraceLog(LOG_INFO, "================================");
  9. TraceLog(LOG_INFO, "raylib-nuklear-test");
  10. TraceLog(LOG_INFO, "================================");
  11. InitWindow(640, 480, "raylib-nuklear-tests");
  12. assert(IsWindowReady());
  13. // Make sure we're running in the correct directory.
  14. assert(argc > 0);
  15. const char* dir = GetDirectoryPath(argv[0]);
  16. assert(ChangeDirectory(dir));
  17. // InitNuklear()
  18. struct nk_context *ctx = InitNuklear(10);
  19. assert(ctx);
  20. // Image
  21. struct nk_image image = LoadNuklearImage("resources/test-image.png");
  22. assert(image.handle.ptr);
  23. Texture texture = TextureFromNuklear(image);
  24. assert(texture.width > 0);
  25. // UpdateNuklear()
  26. UpdateNuklear(ctx);
  27. // Nuklear GUI Code
  28. // https://github.com/Immediate-Mode-UI/Nuklear/wiki/Window
  29. if (nk_begin(ctx, "Nuklear", nk_rect(50, 50, 400, 400),
  30. NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_CLOSABLE)) {
  31. nk_button_label(ctx, "Button");
  32. nk_layout_row_static(ctx, 256, 256, 1);
  33. nk_image(ctx, image);
  34. }
  35. nk_end(ctx);
  36. // Render
  37. BeginDrawing();
  38. ClearBackground(RAYWHITE);
  39. // DrawNuklear()
  40. DrawNuklear(ctx);
  41. EndDrawing();
  42. WaitTime(500);
  43. // UnloadNuklearImage()
  44. UnloadNuklearImage(image);
  45. // UnloadNuklear()
  46. UnloadNuklear(ctx);
  47. // InitNuklearEx()
  48. Font font = LoadFont("resources/anonymous_pro_bold.ttf");
  49. ctx = InitNuklearEx(font, 25.0f);
  50. assert(ctx);
  51. UnloadNuklear(ctx);
  52. UnloadFont(font);
  53. // RectangleFromNuklear()
  54. struct nk_rect rect = nk_rect(10, 20, 30, 40);
  55. Rectangle rectangle = RectangleFromNuklear(rect);
  56. assert(rect.x == rectangle.x);
  57. assert(rect.y == rectangle.y);
  58. assert(rect.w == rectangle.width);
  59. assert(rect.h == rectangle.height);
  60. CloseWindow();
  61. TraceLog(LOG_INFO, "================================");
  62. TraceLog(LOG_INFO, "raylib-nuklear tests succesful");
  63. TraceLog(LOG_INFO, "================================");
  64. return 0;
  65. }