diff options
| author | jussi | 2022-11-27 16:25:25 +0200 |
|---|---|---|
| committer | jussi | 2022-11-27 16:25:25 +0200 |
| commit | 08ef5b435273eaa3de860eac1c031219cd815587 (patch) | |
| tree | 921570cddf499c1ac5f10b55342300c190edac55 | |
| parent | deda5fb9170295133444809618835e8b9aa61512 (diff) | |
| download | reilua-enhanced-08ef5b435273eaa3de860eac1c031219cd815587.tar.gz reilua-enhanced-08ef5b435273eaa3de860eac1c031219cd815587.tar.bz2 reilua-enhanced-08ef5b435273eaa3de860eac1c031219cd815587.zip | |
RL_LoadDirectoryFilesEx and separate option for doc_parser.
| -rw-r--r-- | API.md | 9 | ||||
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | changelog | 2 | ||||
| -rw-r--r-- | devnotes | 10 | ||||
| -rw-r--r-- | doc_parser.lua | 49 | ||||
| -rw-r--r-- | include/core.h | 1 | ||||
| -rw-r--r-- | src/core.c | 27 | ||||
| -rw-r--r-- | src/lua_core.c | 1 |
8 files changed, 81 insertions, 22 deletions
@@ -2065,6 +2065,15 @@ Load directory filepaths --- +> fileNames = RL_LoadDirectoryFilesEx( string basePath, string filter, bool scanSubdirs ) + +Load directory filepaths with extension filtering and recursive directory scan + +- Failure return false +- Success return string{} + +--- + > success = RL_ChangeDirectory( string directory ) Change working directory, return true on success @@ -25,12 +25,12 @@ List of some MISSING features that are planned to be included. For specific func * Textures * LoadImageFromMemory * Text - * LoadFontFromMemory * GlyphInfo + * LoadFontFromMemory * Audio + * AudioStream management functions * LoadWaveFromMemory * LoadMusicStreamFromMemory - * AudioStream management functions ## Usage @@ -13,3 +13,5 @@ ADDED: Help argument. CHANGED: Changed fuction name RL_rlSetLineWidth to RL_rlglSetLineWidth. CHANGED: Changed fuction name RL_rlGetLineWidth to RL_rlglGetLineWidth. FIX: DrawRectangleGradient V and H expecting wrong amount of arguments. +ADDED: RL_LoadDirectoryFilesEx. +ADDED: Flag option (-s) for doc_parser.lua for exporting module APIs to separate files. @@ -2,13 +2,9 @@ Current { } Backlog { - * Core - * LoadDirectoryFilesEx * Audio - * AudioStream + * AudioStream. * Text - * Codepoints - * String management. At least TextSplit. - - * VR? + * Codepoints? + * VR. } diff --git a/doc_parser.lua b/doc_parser.lua index 09227cf..d7383e4 100644 --- a/doc_parser.lua +++ b/doc_parser.lua @@ -1,5 +1,12 @@ --Create api.md file from c sources. +-- Export each module as separate .md file. +local separate = false + +if arg[1] ~= nil and arg[1] == "-s" then + separate = true +end + local function split( str, sep ) if sep == nil then sep = "%s" @@ -34,6 +41,8 @@ Note: Engine will call Raylib functions 'BeginDrawing()' before this function ca You can still use RL_BeginDrawing() and RL_EndDrawing() manually from anywhere.\n\n---\n" ) apiFile:write( "\n> function log( logLevel, message )\n\ This function can be used for custom log message handling.\n\n---\n" ) +apiFile:write( "\n> function exit()\n\ +This function will be called on program close. Cleanup could be done here.\n\n---\n" ) -- Globals. @@ -142,27 +151,35 @@ apiFile:write( "\n> NPatchInfo = { { 0, 0, 24, 24 }, 0, 0, 0, 0, NPATCH_NINE_PAT apiFile:write( "\n> ModelAnimations = ModelAnimationsId\n\ int id. ModelAnimations\n\n---\n" ) +if separate then + apiFile:close() +end + -- Functions. local sourceFiles = { - "src/core.c", - "src/shapes.c", - "src/textures.c", - "src/text.c", - "src/models.c", - "src/audio.c", - "src/rmath.c", - "src/rgui.c", - "src/lights.c", - "src/rlgl.c", - "src/easings.c", + "core", + "shapes", + "textures", + "text", + "models", + "audio", + "rmath", + "rgui", + "lights", + "rlgl", + "easings", } for _, src in ipairs( sourceFiles ) do - srcFile = io.open( src, "r" ) + srcFile = io.open( "src/"..src..".c", "r" ) local line = "" local p = false + if separate then + apiFile = io.open( src..".md", "w" ) + end + repeat line = srcFile:read( "*l" ) @@ -182,6 +199,12 @@ for _, src in ipairs( sourceFiles ) do until line == nil srcFile:close() + + if separate then + apiFile:close() + end end -apiFile:close() +if not separate then + apiFile:close() +end diff --git a/include/core.h b/include/core.h index 9812d8d..cdd644f 100644 --- a/include/core.h +++ b/include/core.h @@ -85,6 +85,7 @@ int lcoreGetDirectoryPath( lua_State *L ); int lcoreGetPrevDirectoryPath( lua_State *L ); int lcoreGetWorkingDirectory( lua_State *L ); int lcoreLoadDirectoryFiles( lua_State *L ); +int lcoreLoadDirectoryFilesEx( lua_State *L ); int lcoreChangeDirectory( lua_State *L ); int lcoreIsFileDropped( lua_State *L ); int lcoreLoadDroppedFiles( lua_State *L ); @@ -2199,6 +2199,33 @@ int lcoreLoadDirectoryFiles( lua_State *L ) { } /* +> fileNames = RL_LoadDirectoryFilesEx( string basePath, string filter, bool scanSubdirs ) + +Load directory filepaths with extension filtering and recursive directory scan + +- Failure return false +- Success return string{} +*/ +int lcoreLoadDirectoryFilesEx( lua_State *L ) { + if ( !lua_isstring( L, -3 ) || !lua_isstring( L, -2 ) || !lua_isboolean( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_LoadDirectoryFilesEx( string dirPath )" ); + lua_pushboolean( L, false ); + return 1; + } + FilePathList files = LoadDirectoryFilesEx( lua_tostring( L, -3 ), lua_tostring( L, -2 ), lua_toboolean( L, -1 ) ); + + lua_createtable( L, files.count, 0 ); + + for ( int i = 0; i < files.count; ++i ) { + lua_pushstring( L, files.paths[i] ); + lua_rawseti( L, -2, i+1 ); + } + UnloadDirectoryFiles( files ); + + return 1; +} + +/* > success = RL_ChangeDirectory( string directory ) Change working directory, return true on success diff --git a/src/lua_core.c b/src/lua_core.c index 1d46440..defd8f2 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -748,6 +748,7 @@ void luaRegister() { lua_register( L, "RL_GetPrevDirectoryPath", lcoreGetPrevDirectoryPath ); lua_register( L, "RL_GetWorkingDirectory", lcoreGetWorkingDirectory ); lua_register( L, "RL_LoadDirectoryFiles", lcoreLoadDirectoryFiles ); + lua_register( L, "RL_LoadDirectoryFilesEx", lcoreLoadDirectoryFilesEx ); lua_register( L, "RL_ChangeDirectory", lcoreChangeDirectory ); lua_register( L, "RL_IsFileDropped", lcoreIsFileDropped ); lua_register( L, "RL_LoadDroppedFiles", lcoreLoadDroppedFiles ); |
