Browse Source

REXM: Generate second report with examples with issues

Ray 1 month ago
parent
commit
dcd012e00f
3 changed files with 99 additions and 9 deletions
  1. 7 7
      tools/rexm/examples_report.md
  2. 39 0
      tools/rexm/examples_report_issues.md
  3. 53 2
      tools/rexm/rexm.c

+ 7 - 7
tools/rexm/examples_report.md

@@ -92,7 +92,7 @@ Example elements validated:
 | textures_sprite_button           |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | textures_sprite_explosion        |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | textures_bunnymark               |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
-| textures_mouse_painting          |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |    |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| textures_mouse_painting          |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |    |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | textures_blend_modes             |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | textures_draw_tiled              |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | textures_polygon                 |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
@@ -174,9 +174,9 @@ Example elements validated:
 | audio_stream_effects             |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | audio_sound_multi                |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
 | audio_sound_positioning          |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
-| rlgl_standalone                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
-| rlgl_compute_shader              |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
-| easings_testbed                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
-| raylib_opengl_interop            |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |    |
-| embedded_files_loading           |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
-| raymath_vector_angle             |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |    |
+| rlgl_standalone                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
+| rlgl_compute_shader              |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
+| easings_testbed                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
+| raylib_opengl_interop            |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |    |
+| embedded_files_loading           |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |    |
+| raymath_vector_angle             |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |    |

+ 39 - 0
tools/rexm/examples_report_issues.md

@@ -0,0 +1,39 @@
+# EXAMPLES COLLECTION - VALIDATION REPORT
+
+```
+Example elements validated:
+
+ - [C]     : Missing .c source file
+ - [CAT]   : Not a recognized category
+ - [INFO]  : Inconsistent example header info (stars, author...)
+ - [PNG]   : Missing screenshot .png
+ - [WPNG]  : Invalid png screenshot (using default one)
+ - [RES]   : Missing resources listed in the code
+ - [MK]    : Not listed in Makefile
+ - [MKWEB] : Not listed in Makefile.Web
+ - [VCX]   : Missing Visual Studio project file
+ - [SOL]   : Project not included in solution file
+ - [RDME]  : Not listed in README.md
+ - [JS]    : Not listed in Web (examples.js)
+ - [WOUT]  : Missing Web build (.html/.data/.wasm/.js)
+```
+| **EXAMPLE NAME**                 | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|
+|:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|
+| core_input_virtual_controls      |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| core_basic_window_web            |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |  ❌  |
+| core_input_gestures_web          |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |  ✔  |
+| core_high_dpi                    |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| shapes_digital_clock             |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| text_font_sdf                    |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| text_draw_3d                     |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| text_codepoints_loading          |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| models_loading_vox               |  ✔ |  ✔  |  ✔  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| models_loading_m3d               |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| shaders_texture_outline          |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| audio_music_stream               |  ✔ |  ✔  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| rlgl_standalone                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| rlgl_compute_shader              |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| easings_testbed                  |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| raylib_opengl_interop            |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |  ✔  |
+| embedded_files_loading           |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ❌  |  ✔ |   ✔  |  ✔  |  ✔ |  ✔  |  ✔ |  ✔  |
+| raymath_vector_angle             |  ✔ |  ❌  |  ❌  |  ✔ |  ✔  |  ✔  |  ✔ |   ✔  |  ✔  |  ❌ |  ✔  |  ✔ |  ✔  |

+ 53 - 2
tools/rexm/rexm.c

@@ -1002,6 +1002,7 @@ int main(int argc, char *argv[])
             }
 
             // Generate validation report/table with results (.md)
+            //-----------------------------------------------------------------------------------------------------
             /*
             Columns:
             [C]     VALID_MISSING_C             // Missing .c source file
@@ -1025,8 +1026,6 @@ int main(int argc, char *argv[])
             | text_format_text             |  ✘ |  ✘  |  ✘  |  ✘ |  ✘  |  ✘  |  ✘ |   ✘  |  ✔  |  ✘ |  ✔  |  ✔ |   ✔  |
             */
 
-            // TODO: Generate a report with only the examples missing some elements
-
             char *report = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1);
 
             int repIndex = 0;
@@ -1071,6 +1070,58 @@ int main(int argc, char *argv[])
 
             SaveFileText(TextFormat("%s/../tools/rexm/%s", exBasePath, "examples_report.md"), report);
             RL_FREE(report);
+            //-----------------------------------------------------------------------------------------------------
+
+            // Generate a report with only the examples missing some elements
+            //-----------------------------------------------------------------------------------------------------
+            char *reportIssues = (char *)RL_CALLOC(REXM_MAX_BUFFER_SIZE, 1);
+
+            repIndex = 0;
+            repIndex += sprintf(reportIssues + repIndex, "# EXAMPLES COLLECTION - VALIDATION REPORT\n\n");
+
+            repIndex += sprintf(reportIssues + repIndex, "```\nExample elements validated:\n\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [C]     : Missing .c source file\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [CAT]   : Not a recognized category\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [INFO]  : Inconsistent example header info (stars, author...)\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [PNG]   : Missing screenshot .png\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [WPNG]  : Invalid png screenshot (using default one)\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [RES]   : Missing resources listed in the code\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [MK]    : Not listed in Makefile\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [MKWEB] : Not listed in Makefile.Web\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [VCX]   : Missing Visual Studio project file\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [SOL]   : Project not included in solution file\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [RDME]  : Not listed in README.md\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [JS]    : Not listed in Web (examples.js)\n");
+            repIndex += sprintf(reportIssues + repIndex, " - [WOUT]  : Missing Web build (.html/.data/.wasm/.js)\n```\n");
+
+            repIndex += sprintf(reportIssues + repIndex, "| **EXAMPLE NAME**                 | [C] | [CAT]| [INFO]|[PNG]|[WPNG]| [RES]| [MK] |[MKWEB]| [VCX]| [SOL]|[RDME]|[JS] | [WOUT]|\n");
+            repIndex += sprintf(reportIssues + repIndex, "|:---------------------------------|:---:|:----:|:-----:|:---:|:----:|:----:|:----:|:-----:|:----:|:----:|:----:|:---:|:-----:|\n");
+
+            for (int i = 0; i < exCollectionCount; i++)
+            {
+                if (exCollection[i].status > 0)
+                {
+                    repIndex += sprintf(reportIssues + repIndex, "| %-32s |  %s |  %s  |  %s  |  %s |  %s  |  %s  |  %s |   %s  |  %s  |  %s |  %s  |  %s |  %s  |\n",
+                        exCollection[i].name,
+                        (exCollection[i].status & VALID_MISSING_C)? "❌" : "✔",
+                        (exCollection[i].status & VALID_INVALID_CATEGORY)? "❌" : "✔",
+                        (exCollection[i].status & VALID_INCONSISTENT_INFO)? "❌" : "✔",
+                        (exCollection[i].status & VALID_MISSING_PNG)? "❌" : "✔",
+                        (exCollection[i].status & VALID_INVALID_PNG)? "❌" : "✔",
+                        (exCollection[i].status & VALID_MISSING_RESOURCES)? "❌" : "✔",
+                        (exCollection[i].status & VALID_NOT_IN_MAKEFILE)? "❌" : "✔",
+                        (exCollection[i].status & VALID_NOT_IN_MAKEFILE_WEB)? "❌" : "✔",
+                        (exCollection[i].status & VALID_MISSING_VCXPROJ)? "❌" : "✔",
+                        (exCollection[i].status & VALID_NOT_IN_VCXSOL)? "❌" : "✔",
+                        (exCollection[i].status & VALID_NOT_IN_README)? "❌" : "✔",
+                        (exCollection[i].status & VALID_NOT_IN_JS)? "❌" : "✔",
+                        (exCollection[i].status & VALID_MISSING_WEB_OUTPUT)? "❌" : "✔");
+                }
+            }
+
+            SaveFileText(TextFormat("%s/../tools/rexm/%s", exBasePath, "examples_report_issues.md"), reportIssues);
+            RL_FREE(reportIssues);
+            //-----------------------------------------------------------------------------------------------------
 
             UnloadExamplesData(exCollection);
             //------------------------------------------------------------------------------------------------