NervLandJS: A revolutionary 3D world sandbox in Web Browser

Or well… that's the idea at least… we are not quite there yet unfortunately 😅

But, anyway, Manu, here I will try to keep track of the state of this project, in case you ever have to stop working on it for lonnnnng months, and then your Alzheimer starts kicking in again, and you forget everything about it [again…]

So below you will find a list of pages/blog posts/technical notes to help you remind yourself what you have been doing [Yeahh I know… I'm talking to myself… ohh man… but, hey, who cares in the end ? 🤣]

NervLand: A revolutionary 3D world sandbox (maybe in Web Browser?)

So, following the final discussion in Using the Producers in the TerrainNode I think I should now rather try to build the NevLand app as a Rust app and see if I can use that more easily with multithreading support using a WebAssembly compilation. Thus, the adventure continues below:

NervLand: Back to C++ world

NervLand: Devlog videos

  • Devlog 0001:
    • In this recording I mainly work on the clang “CXXMethod” cursors parsing to improve on the generation of a decorated name for those methods.
  • Devlog 0002:
    • In this recording I do the same thing as in the first video above but focus this time on the fullname for a ClassTemplate cursor.
  • Devlog 0003:
    • This time we focus on the ClangParser class and try to start some refactoring/optimization without breaking the existing parsing system.
  • Devlog 0004:
    • ✅ Moving the ClangParser:parseNamespace in dedicated file
    • ✅ Prepared the parseFunctionDecl() function
    • ✅ Replaced usage of reflection.Visibility with clang.Vis'
    • ✅ Added Cursor:getNumChildren()
    • ✅ Removed ClangParser:resolveTypeRef()
    • ✅ Working on removal of ClangParser:getContextCursor()
  • Devlog 0005:
    • ✔️ Fixed handling of current “TemplateContext” for tk.Unexposed
    • ✔️ Removed context cursors functions from ClangParser
    • ✅ Added support for lua load_buffer C function
    • ✅ Investigated support for advanced require/load usage
  • Devlog 0006:
    • ✔️ Add support for LuaJIT profiler in nervbind
    • ✔️ Working on removal of ClangParser:getContextCursor() ?
    • ✔️ Initial refactoring of ClangParser:resolveType()
    • ✔️ Fixing bindings generation on linux systems
    • ✔️ Introducing Configurator to prepare NervBind configs
    • ✅ Fix error in QT bindings generation due to fullname caching
    • ✅ Fix invalid enum name in bindings
    • ✅ Initial build of the QT bindings module
  • Devlog 0007:
  • Devlog 0008/0009/0010:
    • ✔️ Implement mechanism to start/stop lua threads from LuaManager:
    • ✅ Adding lua bindings for QGenericArgument
    • ✅ Implement support for message passing between threads in luaQT
    • ✔️ Add support for QObject as base provider in Luna bindings:
      opts.custom_providers = { "nv::RefObject", "QObject" }
    • ✔️ Updating custom LunaProvider<QObject> to only delete widgets that are not in use.
    • ✔️ Fix crash with luna type map registration and multiple lua states creation.
    • ✔️ Add support to specify the context when connecting a lua function to a QT signal
    • ✔️ Add direct support for bindings loading in LuaState class
    • ✔️ Call the message_sent signal from inside the auxiliary lua state
  • Devlog 0011:
    • ✅ Advanced class template instantiation in NervLuna
    • ✅ Fix the issue with: Ignoring TypeAliasTemplateDecl cursor for base template class: nv::Vector<T>
  • Devlog 0012:
    • ✅ Fix invalid unnamed union binding issue
    • ✔️ Fix anonymous class binding issue

Task & Notes

  • public/projects/nervland/nervland.txt
  • Last modified: 2024/04/13 07:15
  • by