Full Code of LuminoEngine/Lumino for AI

main 905c7a14798d cached
2394 files
46.8 MB
12.4M tokens
21602 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (50,218K chars total). Download the full file to get everything.
Repository: LuminoEngine/Lumino
Branch: main
Commit: 905c7a14798d
Files: 2394
Total size: 46.8 MB

Directory structure:
gitextract_m_82tz9h/

├── .clang-format
├── .github/
│   ├── CONTRIBUTING.md
│   └── workflows/
│       ├── build-continuous.yml
│       └── package-continuous.yml
├── .gitignore
├── .gitmodules
├── .textlintrc
├── CMakeLists.txt
├── ImportLumino.cmake
├── LICENSE
├── README.md
├── assets/
│   └── Distributable/
│       └── assets/
│           └── LineWave.fx
├── bootstrap.bat
├── build.csproj
├── cmake/
│   └── LuminoConfig.cmake.in
├── docs/
│   ├── APIDesignPolicy.md
│   ├── CodingGuideline.md
│   ├── Development-Emscripten.md
│   ├── DevelopmentTips.md
│   ├── Doxygen/
│   │   ├── .gitignore
│   │   ├── Doxyfile
│   │   ├── build_doc.bat
│   │   └── theme/
│   │       ├── _tabs.css
│   │       ├── customdoxygen.css
│   │       ├── header.html
│   │       ├── tab_change.js
│   │       └── tab_stylesheet.css
│   ├── Gallery/
│   │   ├── 33-scene.jfif
│   │   └── 34-scene.jfif
│   ├── HowToBuild-Ruby.md
│   ├── HowToBuild-Web.md
│   ├── HowToBuild.md
│   ├── ReleaseProcess.md
│   └── Roadmap.md
├── examples/
│   ├── Example-WebLibrary/
│   │   ├── CMakeLists.txt
│   │   ├── PCH.h
│   │   ├── README.md
│   │   ├── import_funcs.js
│   │   ├── pre.js
│   │   ├── shell_minimal.html
│   │   └── src/
│   │       └── Main.cpp
│   ├── Experimental/
│   │   ├── Assets/
│   │   │   ├── Audio/
│   │   │   │   ├── ln21.mid
│   │   │   │   ├── ln23.ogg
│   │   │   │   └── lnme_victory1.ogg
│   │   │   ├── Level1.yml
│   │   │   ├── Models/
│   │   │   │   ├── Axis.blend
│   │   │   │   ├── Axis.glb
│   │   │   │   ├── Box-Blue.gltf
│   │   │   │   ├── Box-Red.gltf
│   │   │   │   ├── Box1.blend
│   │   │   │   ├── Box1.yml
│   │   │   │   ├── Z-Box.blend
│   │   │   │   └── Z-Box.glb
│   │   │   ├── Particle.yml
│   │   │   ├── Shader/
│   │   │   │   ├── Ring.fx
│   │   │   │   ├── SpriteTest.hlsl
│   │   │   │   ├── UIShaderTest.fx
│   │   │   │   ├── simple.frag
│   │   │   │   └── simple.vert
│   │   │   ├── SkinnedMesh1.blend
│   │   │   ├── SkinnedMesh1.glb
│   │   │   ├── SkinnedMesh2.blend
│   │   │   ├── SkinnedMesh2.glb
│   │   │   └── picture1.tga
│   │   ├── Basic/
│   │   │   ├── 0-Hello.cpp
│   │   │   ├── 0-Hello.hsp
│   │   │   ├── 0-Hello.rb
│   │   │   ├── 1-Graphics.cpp
│   │   │   ├── 1-Graphics.hsp
│   │   │   ├── 1-Graphics.rb
│   │   │   ├── 2-Entity.cpp
│   │   │   ├── 2-Entity.hsp
│   │   │   ├── 2-Entity.rb
│   │   │   ├── 2-Graphics-1.cpp
│   │   │   ├── 2-Graphics-1.hsp
│   │   │   ├── 2-Graphics-1.rb
│   │   │   ├── lumino.ini
│   │   │   ├── x-ObjectClass.cpp
│   │   │   ├── x-ObjectClass.hsp
│   │   │   └── x-ObjectClass.rb
│   │   ├── CMakeLists.txt
│   │   ├── Example.PCH.hpp
│   │   ├── Features/
│   │   │   ├── EntityTransform.cpp
│   │   │   ├── ShapeEntity.cpp
│   │   │   └── Sprite.cpp
│   │   ├── LuminoExample.hpp
│   │   ├── Main.cpp
│   │   └── Tutorial_Sandbox.cpp
│   └── FromVcpkg/
│       ├── CMakeLists.txt
│       ├── Main.cpp
│       └── README.md
├── external/
│   ├── ImportExternalLibraries.cmake
│   ├── ThirdPartyLicense
│   ├── custom-triplets/
│   │   ├── toolchain-wasm32-emscripten.cmake
│   │   └── wasm32-emscripten.cmake
│   ├── freetype2/
│   │   └── CMakeLists.txt
│   ├── glad/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── include/
│   │   │   ├── KHR/
│   │   │   │   └── khrplatform.h
│   │   │   └── glad/
│   │   │       └── glad.h
│   │   └── src/
│   │       └── glad.c
│   ├── libpng/
│   │   └── CMakeLists.txt
│   ├── lua/
│   │   └── CMakeLists.txt
│   ├── nanovg/
│   │   └── CMakeLists.txt
│   ├── vcpkg-2021.05.12-ports/
│   │   └── box2d/
│   │       └── portfile.cmake
│   └── zlib/
│       └── CMakeLists.txt
├── include/
│   └── LuminoEditor/
│       └── Plugin.hpp
├── lumino/
│   ├── FFI/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── LuminoFFI/
│   │   │       ├── Common.hpp
│   │   │       ├── FFI.hpp
│   │   │       ├── FlatCommon.h
│   │   │       └── Lumino.FlatC.generated.h
│   │   ├── src/
│   │   │   ├── FFI.cpp
│   │   │   ├── Internal.hpp
│   │   │   ├── Lumino.FlatC.generated.cpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── PCH.hpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       └── Test_FlatAPI.cpp
│   ├── Graphics/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoGraphics.cmake
│   │   ├── examples/
│   │   │   ├── Assets/
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Experimental-Rendering/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── ExternalOpenGLContext/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   ├── pre.js
│   │   │   │   └── serve.py
│   │   │   ├── HelloTriangle/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   ├── pre.js
│   │   │   │   └── serve.py
│   │   │   └── NWJSOverlap/
│   │   │       ├── .gitignore
│   │   │       ├── CMakeLists.txt
│   │   │       ├── README.md
│   │   │       ├── index.html
│   │   │       ├── index.js
│   │   │       ├── package.json
│   │   │       └── renderer_lib/
│   │   │           ├── import_funcs.js
│   │   │           ├── pre.js
│   │   │           ├── renderer_lib.cpp
│   │   │           └── renderer_lib.js
│   │   ├── include/
│   │   │   ├── LuminoGraphics/
│   │   │   │   ├── Animation/
│   │   │   │   │   ├── Animation.hpp
│   │   │   │   │   ├── AnimationClip.hpp
│   │   │   │   │   ├── AnimationClock.hpp
│   │   │   │   │   ├── AnimationContext.hpp
│   │   │   │   │   ├── AnimationCurve.hpp
│   │   │   │   │   ├── AnimationMixer.hpp
│   │   │   │   │   ├── AnimationTrack.hpp
│   │   │   │   │   ├── Animator.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── EasingFunctions.hpp
│   │   │   │   │   ├── Tween.hpp
│   │   │   │   │   └── WeightsAnimationTrack.hpp
│   │   │   │   ├── Bitmap/
│   │   │   │   │   ├── Bitmap.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── D3DCompilerAPI.hpp
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Font/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Font.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       ├── FontCore.hpp
│   │   │   │   │       ├── FontManager.hpp
│   │   │   │   │       └── TextLayoutEngine.hpp
│   │   │   │   ├── GPU/
│   │   │   │   │   ├── CommandQueue.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── ConstantBuffer.hpp
│   │   │   │   │   ├── DepthBuffer.hpp
│   │   │   │   │   ├── Graphics.hpp
│   │   │   │   │   ├── GraphicsCommandBuffer.hpp
│   │   │   │   │   ├── GraphicsContext.hpp
│   │   │   │   │   ├── GraphicsExtensionOpenGL.hpp
│   │   │   │   │   ├── GraphicsResource.hpp
│   │   │   │   │   ├── IndexBuffer.hpp
│   │   │   │   │   ├── RHI.hpp
│   │   │   │   │   ├── RenderPass.hpp
│   │   │   │   │   ├── SamplerState.hpp
│   │   │   │   │   ├── Shader.hpp
│   │   │   │   │   ├── ShaderDescriptor.hpp
│   │   │   │   │   ├── ShaderInterfaceFramework.hpp
│   │   │   │   │   ├── ShaderParameterValue.hpp
│   │   │   │   │   ├── SwapChain.hpp
│   │   │   │   │   ├── Texture.hpp
│   │   │   │   │   ├── VertexBuffer.hpp
│   │   │   │   │   ├── VertexLayout.hpp
│   │   │   │   │   ├── VulkanIntegration.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── RenderingCommandList.hpp
│   │   │   │   ├── Mesh/
│   │   │   │   │   ├── AnimationController.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── MeshModeEntity.hpp
│   │   │   │   │   ├── MeshModel.hpp
│   │   │   │   │   ├── MeshModelFactory.hpp
│   │   │   │   │   ├── MeshPrimitive.hpp
│   │   │   │   │   ├── MeshProcessing.hpp
│   │   │   │   │   └── SkinnedMeshModel.hpp
│   │   │   │   ├── RHIModule.hpp
│   │   │   │   ├── Rendering/
│   │   │   │   │   ├── CanvasContext.hpp
│   │   │   │   │   ├── CommandList.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Drawing.hpp
│   │   │   │   │   ├── FeatureRenderer/
│   │   │   │   │   │   ├── FrameRectRenderer.hpp
│   │   │   │   │   │   ├── MeshRenderer.hpp
│   │   │   │   │   │   ├── PrimitiveMeshRenderer.hpp
│   │   │   │   │   │   ├── ScreenRectangleRenderer.hpp
│   │   │   │   │   │   ├── ShapesRenderer.hpp
│   │   │   │   │   │   ├── SpriteRenderer.hpp
│   │   │   │   │   │   └── SpriteTextRenderer.hpp
│   │   │   │   │   ├── InstancedMeshesModel.hpp
│   │   │   │   │   ├── Kanata/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── KBatch.hpp
│   │   │   │   │   │   ├── KBatchList.hpp
│   │   │   │   │   │   ├── KBatchProxy.hpp
│   │   │   │   │   │   ├── KBatchProxyCollector.hpp
│   │   │   │   │   │   ├── KDrawCommand.hpp
│   │   │   │   │   │   ├── KPipelineState.hpp
│   │   │   │   │   │   ├── KRenderView.hpp
│   │   │   │   │   │   ├── KRenderingContext.hpp
│   │   │   │   │   │   ├── KSceneRenderPass.hpp
│   │   │   │   │   │   ├── KUnlitRenderPass.hpp
│   │   │   │   │   │   └── RenderFeature/
│   │   │   │   │   │       ├── KFrameRectRenderFeature.hpp
│   │   │   │   │   │       ├── KMeshRenderFeature.hpp
│   │   │   │   │   │       ├── KPrimitiveMeshRenderer.hpp
│   │   │   │   │   │       ├── KScreenRectangleRenderFeature.hpp
│   │   │   │   │   │       ├── KShapesRenderFeature.hpp
│   │   │   │   │   │       ├── KSpriteRenderFeature.hpp
│   │   │   │   │   │       └── KSpriteTextRenderFeature.hpp
│   │   │   │   │   ├── Material.hpp
│   │   │   │   │   ├── RenderFeature.hpp
│   │   │   │   │   ├── RenderView.hpp
│   │   │   │   │   ├── RenderingContext.hpp
│   │   │   │   │   ├── RenderingPipeline/
│   │   │   │   │   │   ├── FlatRenderingPipeline.hpp
│   │   │   │   │   │   ├── RenderingPipeline.hpp
│   │   │   │   │   │   └── StandardRenderingPipeline.hpp
│   │   │   │   │   ├── Shaders.hpp
│   │   │   │   │   ├── Vertex.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── RenderingManager.hpp
│   │   │   │   ├── Testing/
│   │   │   │   │   └── GraphicsTestHelper.hpp
│   │   │   │   ├── TextRendering/
│   │   │   │   │   └── Common.hpp
│   │   │   │   └── detail/
│   │   │   │       └── GraphicsManager.hpp
│   │   │   └── LuminoGraphics.hpp
│   │   ├── sandbox/
│   │   │   ├── Assets/
│   │   │   │   ├── Sprite.hlsl
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   └── Main.cpp
│   │   ├── src/
│   │   │   ├── Animation/
│   │   │   │   ├── Animation.cpp
│   │   │   │   ├── AnimationClip.cpp
│   │   │   │   ├── AnimationClock.cpp
│   │   │   │   ├── AnimationContext.cpp
│   │   │   │   ├── AnimationCurve.cpp
│   │   │   │   ├── AnimationManager.cpp
│   │   │   │   ├── AnimationManager.hpp
│   │   │   │   ├── AnimationMixer.cpp
│   │   │   │   ├── AnimationTrack.cpp
│   │   │   │   ├── Animator.cpp
│   │   │   │   ├── BvhImporter.cpp
│   │   │   │   ├── BvhImporter.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Tween.cpp
│   │   │   │   ├── VmdLoader.cpp
│   │   │   │   ├── VmdLoader.hpp
│   │   │   │   └── WeightsAnimationTrack.cpp
│   │   │   ├── Bitmap/
│   │   │   │   ├── Bitmap.cpp
│   │   │   │   ├── BitmapEncoding.cpp
│   │   │   │   └── BitmapEncoding.hpp
│   │   │   ├── Font/
│   │   │   │   ├── Font.cpp
│   │   │   │   ├── FontCore.cpp
│   │   │   │   ├── FontManager.cpp
│   │   │   │   ├── FreeTypeFont.cpp
│   │   │   │   ├── FreeTypeFont.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── FontAwesome5Free-Regular-400.otf.inl
│   │   │   │   │   ├── FontAwesome5Free-Solid-900.otf.inl
│   │   │   │   │   ├── FontAwesome5Map.inl
│   │   │   │   │   ├── LICENSE.txt
│   │   │   │   │   ├── LICENSE_J
│   │   │   │   │   ├── mplus-1c-regular-ascii-subset.ttf.inl
│   │   │   │   │   └── mplus-1m-regular-ascii-subset.ttf.inl
│   │   │   │   └── TextLayoutEngine.cpp
│   │   │   ├── GPU/
│   │   │   │   ├── CommandQueue.cpp
│   │   │   │   ├── ConstantBuffer.cpp
│   │   │   │   ├── DepthBuffer.cpp
│   │   │   │   ├── Graphics.cpp
│   │   │   │   ├── GraphicsCommandBuffer.cpp
│   │   │   │   ├── GraphicsContext.cpp
│   │   │   │   ├── GraphicsExtensionOpenGL.cpp
│   │   │   │   ├── GraphicsProfiler.cpp
│   │   │   │   ├── GraphicsProfiler.hpp
│   │   │   │   ├── GraphicsResource.cpp
│   │   │   │   ├── IndexBuffer.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── RHI.cpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── RegisterTypes.cpp
│   │   │   │   ├── RegisterTypes.inl
│   │   │   │   ├── RenderPass.cpp
│   │   │   │   ├── RenderPassCache.cpp
│   │   │   │   ├── RenderPassCache.hpp
│   │   │   │   ├── RenderTargetTextureCache.cpp
│   │   │   │   ├── RenderTargetTextureCache.hpp
│   │   │   │   ├── RenderingCommandList.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── default.frag
│   │   │   │   │   ├── default.frag.spv
│   │   │   │   │   ├── default.frag.spv.inl
│   │   │   │   │   ├── default.vert
│   │   │   │   │   ├── default.vert.spv
│   │   │   │   │   └── default.vert.spv.inl
│   │   │   │   ├── SamplerState.cpp
│   │   │   │   ├── Shader.cpp
│   │   │   │   ├── ShaderDescriptor.cpp
│   │   │   │   ├── ShaderInterfaceFramework.cpp
│   │   │   │   ├── ShaderParameterValue.cpp
│   │   │   │   ├── SingleFrameAllocator.cpp
│   │   │   │   ├── SingleFrameAllocator.hpp
│   │   │   │   ├── StreamingBufferAllocator.cpp
│   │   │   │   ├── StreamingBufferAllocator.hpp
│   │   │   │   ├── SwapChain.cpp
│   │   │   │   ├── Texture.cpp
│   │   │   │   ├── VertexBuffer.cpp
│   │   │   │   ├── VertexLayout.cpp
│   │   │   │   └── VulkanIntegration.cpp
│   │   │   ├── GraphicsManager.cpp
│   │   │   ├── Mesh/
│   │   │   │   ├── AnimationController.cpp
│   │   │   │   ├── CCDIKSolver.cpp
│   │   │   │   ├── CCDIKSolver.hpp
│   │   │   │   ├── GMesh.cpp
│   │   │   │   ├── GMesh.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MeshBoneMapper.cpp
│   │   │   │   ├── MeshBoneMapper.hpp
│   │   │   │   ├── MeshGeneraters/
│   │   │   │   │   ├── CylinderMeshGenerater.cpp
│   │   │   │   │   ├── CylinderMeshGenerater.hpp
│   │   │   │   │   ├── MeshGenerater.cpp
│   │   │   │   │   ├── MeshGenerater.hpp
│   │   │   │   │   ├── TeapotMeshGenerater.cpp
│   │   │   │   │   └── TeapotMeshGenerater.hpp
│   │   │   │   ├── MeshImporters/
│   │   │   │   │   ├── FbxImporter.cpp
│   │   │   │   │   ├── FbxImporter.hpp
│   │   │   │   │   ├── GLTFImporter.cpp
│   │   │   │   │   ├── GLTFImporter.hpp
│   │   │   │   │   ├── MeshImporter.cpp
│   │   │   │   │   ├── MeshImporter.hpp
│   │   │   │   │   ├── MqoImporter.cpp
│   │   │   │   │   ├── MqoImporter.hpp
│   │   │   │   │   ├── ObjMeshImporter.cpp
│   │   │   │   │   ├── ObjMeshImporter.hpp
│   │   │   │   │   ├── PmxImporter.cpp
│   │   │   │   │   ├── PmxImporter.hpp
│   │   │   │   │   ├── VRMImporter.cpp
│   │   │   │   │   └── VRMImporter.hpp
│   │   │   │   ├── MeshManager.cpp
│   │   │   │   ├── MeshManager.hpp
│   │   │   │   ├── MeshModel.cpp
│   │   │   │   ├── MeshModelEntity.cpp
│   │   │   │   ├── MeshModelFactory.cpp
│   │   │   │   ├── MeshPrimitive.cpp
│   │   │   │   ├── MeshProcessing.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── toon01.png.h
│   │   │   │   │   ├── toon02.png.h
│   │   │   │   │   ├── toon03.png.h
│   │   │   │   │   ├── toon04.png.h
│   │   │   │   │   ├── toon05.png.h
│   │   │   │   │   ├── toon06.png.h
│   │   │   │   │   ├── toon07.png.h
│   │   │   │   │   ├── toon08.png.h
│   │   │   │   │   ├── toon09.png.h
│   │   │   │   │   └── toon10.png.h
│   │   │   │   └── SkinnedMeshModel.cpp
│   │   │   ├── RHIModule.cpp
│   │   │   ├── Rendering/
│   │   │   │   ├── CanvasContext.cpp
│   │   │   │   ├── ClusteredShadingSceneRenderer.cpp
│   │   │   │   ├── ClusteredShadingSceneRenderer.hpp
│   │   │   │   ├── CommandList.cpp
│   │   │   │   ├── CommandListServer.cpp
│   │   │   │   ├── CommandListServer.hpp
│   │   │   │   ├── Docs/
│   │   │   │   │   └── Shader.md
│   │   │   │   ├── DrawElementListBuilder.cpp
│   │   │   │   ├── DrawElementListBuilder.hpp
│   │   │   │   ├── Drawing.cpp
│   │   │   │   ├── FeatureRenderer/
│   │   │   │   │   ├── FrameRectRenderer.cpp
│   │   │   │   │   ├── MeshRenderer.cpp
│   │   │   │   │   ├── PrimitiveMeshRenderer.cpp
│   │   │   │   │   ├── ScreenRectangleRenderer.cpp
│   │   │   │   │   ├── ShapesRenderer.cpp
│   │   │   │   │   ├── SpriteRenderer.cpp
│   │   │   │   │   └── SpriteTextRenderer.cpp
│   │   │   │   ├── InstancedMeshesModel.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Kanata/
│   │   │   │   │   ├── KBatch.cpp
│   │   │   │   │   ├── KBatchList.cpp
│   │   │   │   │   ├── KBatchProxy.cpp
│   │   │   │   │   ├── KBatchProxyCollector.cpp
│   │   │   │   │   ├── KDrawCommand.cpp
│   │   │   │   │   ├── KPipelineState.cpp
│   │   │   │   │   ├── KRenderView.cpp
│   │   │   │   │   ├── KRenderingContext.cpp
│   │   │   │   │   ├── KSceneRenderPass.cpp
│   │   │   │   │   ├── KStreamingMeshBufferAllocator.cpp
│   │   │   │   │   ├── KStreamingMeshBufferAllocator.hpp
│   │   │   │   │   ├── KUnlitRenderPass.cpp
│   │   │   │   │   └── RenderFeature/
│   │   │   │   │       ├── KFrameRectRenderFeature.cpp
│   │   │   │   │       ├── KMeshRenderFeature.cpp
│   │   │   │   │       ├── KPrimitiveMeshRenderer.cpp
│   │   │   │   │       ├── KScreenRectangleRenderFeature.cpp
│   │   │   │   │       ├── KShapesRenderFeature.cpp
│   │   │   │   │       ├── KSpriteRenderFeature.cpp
│   │   │   │   │       └── KSpriteTextRenderFeature.cpp
│   │   │   │   ├── LightClusters.cpp
│   │   │   │   ├── LightClusters.hpp
│   │   │   │   ├── Material.cpp
│   │   │   │   ├── RLIs/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── RLIBatch.cpp
│   │   │   │   │   ├── RLIBatch.hpp
│   │   │   │   │   ├── RLIBatchList.cpp
│   │   │   │   │   ├── RLIBatchList.hpp
│   │   │   │   │   ├── RLIBatchState.cpp
│   │   │   │   │   ├── RLIBatchState.hpp
│   │   │   │   │   ├── RLICulling.cpp
│   │   │   │   │   ├── RLICulling.hpp
│   │   │   │   │   ├── RLIMaterial.cpp
│   │   │   │   │   └── RLIMaterial.hpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── RenderElement.cpp
│   │   │   │   ├── RenderElement.hpp
│   │   │   │   ├── RenderFeature/
│   │   │   │   │   ├── BlitRenderFeature.cpp
│   │   │   │   │   ├── BlitRenderFeature.hpp
│   │   │   │   │   ├── ClearRenderFeature.cpp
│   │   │   │   │   ├── ClearRenderFeature.hpp
│   │   │   │   │   ├── ExtensionRenderFeature.cpp
│   │   │   │   │   ├── ExtensionRenderFeature.hpp
│   │   │   │   │   ├── FrameRectRenderFeature.cpp
│   │   │   │   │   ├── FrameRectRenderFeature.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshRenderFeature.cpp
│   │   │   │   │   ├── MeshRenderFeature.hpp
│   │   │   │   │   ├── NanoVGHelper.cpp
│   │   │   │   │   ├── NanoVGHelper.hpp
│   │   │   │   │   ├── PathRenderFeature.cpp
│   │   │   │   │   ├── PathRenderFeature.hpp
│   │   │   │   │   ├── PrimitiveRenderFeature.cpp
│   │   │   │   │   ├── PrimitiveRenderFeature.hpp
│   │   │   │   │   ├── RenderFeature.cpp
│   │   │   │   │   ├── ShapesRenderFeature.cpp
│   │   │   │   │   ├── ShapesRenderFeature.hpp
│   │   │   │   │   ├── SpriteRenderFeature.cpp
│   │   │   │   │   ├── SpriteRenderFeature.hpp
│   │   │   │   │   ├── SpriteTextRenderFeature.cpp
│   │   │   │   │   └── SpriteTextRenderFeature.hpp
│   │   │   │   ├── RenderStage.cpp
│   │   │   │   ├── RenderStage.hpp
│   │   │   │   ├── RenderView.cpp
│   │   │   │   ├── RenderingContext.cpp
│   │   │   │   ├── RenderingManager.cpp
│   │   │   │   ├── RenderingPipeline/
│   │   │   │   │   ├── FlatRenderingPipeline.cpp
│   │   │   │   │   ├── RenderingPipeline.cpp
│   │   │   │   │   └── StandardRenderingPipeline.cpp
│   │   │   │   ├── RenderingProfiler.cpp
│   │   │   │   ├── RenderingProfiler.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── BlackShader.fx
│   │   │   │   │   ├── BlackShader.lcfx
│   │   │   │   │   ├── BlackShader.lcfx.inl
│   │   │   │   │   ├── BlendShape.compute
│   │   │   │   │   ├── ClusteredShadingDefault.fx
│   │   │   │   │   ├── ClusteredShadingDefault.lcfx
│   │   │   │   │   ├── ClusteredShadingDefault.lcfx.inl
│   │   │   │   │   ├── CopyScreen.fx
│   │   │   │   │   ├── CopyScreen.lcfx
│   │   │   │   │   ├── CopyScreen.lcfx.inl
│   │   │   │   │   ├── FlareSprite.fx
│   │   │   │   │   ├── FlareSprite.lcfx
│   │   │   │   │   ├── FlareSprite.lcfx.inl
│   │   │   │   │   ├── ForwardGBufferPrepass.fx
│   │   │   │   │   ├── ForwardGBufferPrepass.lcfx
│   │   │   │   │   ├── ForwardGBufferPrepass.lcfx.inl
│   │   │   │   │   ├── ImGui.fx
│   │   │   │   │   ├── ImGui.lcfx
│   │   │   │   │   ├── ImGui.lcfx.inl
│   │   │   │   │   ├── InfinitePlaneGrid.fx
│   │   │   │   │   ├── InfinitePlaneGrid.lcfx
│   │   │   │   │   ├── InfinitePlaneGrid.lcfx.inl
│   │   │   │   │   ├── LightDisc.fx
│   │   │   │   │   ├── LightDisc.lcfx
│   │   │   │   │   ├── LightDisc.lcfx.inl
│   │   │   │   │   ├── MToon.fx
│   │   │   │   │   ├── MToon.lcfx
│   │   │   │   │   ├── MToon.lcfx.inl
│   │   │   │   │   ├── Random.png.inl
│   │   │   │   │   ├── Reflector.fx
│   │   │   │   │   ├── Reflector.lcfx
│   │   │   │   │   ├── Reflector.lcfx.inl
│   │   │   │   │   ├── ShadowCaster.fx
│   │   │   │   │   ├── ShadowCaster.lcfx
│   │   │   │   │   ├── ShadowCaster.lcfx.inl
│   │   │   │   │   ├── Sprite.fx
│   │   │   │   │   ├── Sprite.lcfx
│   │   │   │   │   ├── Sprite.lcfx.inl
│   │   │   │   │   ├── nanovg.fx
│   │   │   │   │   ├── nanovg.lcfx
│   │   │   │   │   └── nanovg.lcfx.inl
│   │   │   │   ├── SceneRenderer.cpp
│   │   │   │   ├── SceneRenderer.hpp
│   │   │   │   ├── Shaders.cpp
│   │   │   │   ├── UnLigitingSceneRenderer.cpp
│   │   │   │   └── UnLigitingSceneRenderer.hpp
│   │   │   ├── Testing/
│   │   │   │   └── GraphicsTestHelper.cpp
│   │   │   ├── TextRendering/
│   │   │   │   ├── FontGlyphCache.cpp
│   │   │   │   ├── FontGlyphCache.hpp
│   │   │   │   ├── TextRenderingCache.cpp
│   │   │   │   └── TextRenderingCache.hpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── Assets/
│   │       │   ├── Mesh/
│   │       │   │   ├── SkinnedAxis1.blend
│   │       │   │   ├── SkinnedAxis1.glb
│   │       │   │   ├── SkinnedMesh2.blend
│   │       │   │   ├── SkinnedMesh2.glb
│   │       │   │   ├── StaticAxis1.blend
│   │       │   │   └── StaticAxis1.glb
│   │       │   └── ShaderCompiler/
│   │       │       ├── ShaderVariant.hlsl
│   │       │       └── Simple.hlsl
│   │       ├── CMakeLists.txt
│   │       ├── Main.cpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       ├── Test_Mesh.cpp
│   │       ├── Test_Rendering_Mesh.cpp
│   │       ├── Test_Rendering_Sprite.cpp
│   │       ├── Test_Shader_ShaderCompiler.cpp
│   │       └── pch.hpp
│   ├── GraphicsRHI/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoGraphicsRHI.cmake
│   │   ├── examples/
│   │   │   ├── GraphicsRHI-1-ClearScreen/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   └── GraphicsRHI-HelloTriangle/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Main.cpp
│   │   │       └── simple.hlsl
│   │   ├── include/
│   │   │   ├── LuminoGraphicsRHI/
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── GraphicsDeviceContext.hpp
│   │   │   │   ├── GraphicsExtension.hpp
│   │   │   │   ├── GraphicsExtensionVulkan.hpp
│   │   │   │   ├── RHIBitmap.hpp
│   │   │   │   ├── RHIHelper.hpp
│   │   │   │   ├── RHIObject.hpp
│   │   │   │   ├── RHIObjectCache.hpp
│   │   │   │   ├── RHIProfiler.hpp
│   │   │   │   ├── RHIResource.hpp
│   │   │   │   ├── ShaderCompiler/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── ShaderHelper.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       ├── D3DCompilerAPI.hpp
│   │   │   │   │       ├── ShaderManager.hpp
│   │   │   │   │       └── UnifiedShader.hpp
│   │   │   │   ├── Vulkan/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── VulkanBuffers.hpp
│   │   │   │   │   ├── VulkanCommandList.hpp
│   │   │   │   │   ├── VulkanDescriptorPool.hpp
│   │   │   │   │   ├── VulkanDeviceContext.hpp
│   │   │   │   │   ├── VulkanHelper.hpp
│   │   │   │   │   ├── VulkanShaderPass.hpp
│   │   │   │   │   ├── VulkanTextures.hpp
│   │   │   │   │   └── VulkanVertexLayout.hpp
│   │   │   │   ├── WebGPU/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── WebGPUCommandList.hpp
│   │   │   │   │   ├── WebGPUDevice.hpp
│   │   │   │   │   ├── WebGPUHelper.hpp
│   │   │   │   │   ├── WebGPURenderPass.hpp
│   │   │   │   │   ├── WebGPURenderTarget.hpp
│   │   │   │   │   └── WebGPUSwapChain.hpp
│   │   │   │   └── detail/
│   │   │   │       └── GraphicsRHIManager.hpp
│   │   │   └── LuminoGraphicsRHI.hpp
│   │   ├── src/
│   │   │   ├── DirectX12/
│   │   │   │   ├── DX12Buffers.cpp
│   │   │   │   ├── DX12Buffers.hpp
│   │   │   │   ├── DX12CommandList.cpp
│   │   │   │   ├── DX12CommandList.hpp
│   │   │   │   ├── DX12DescriptorPool.cpp
│   │   │   │   ├── DX12DescriptorPool.hpp
│   │   │   │   ├── DX12DeviceContext.cpp
│   │   │   │   ├── DX12DeviceContext.hpp
│   │   │   │   ├── DX12Helper.cpp
│   │   │   │   ├── DX12Helper.hpp
│   │   │   │   ├── DX12RenderPass.cpp
│   │   │   │   ├── DX12RenderPass.hpp
│   │   │   │   ├── DX12ShaderPass.cpp
│   │   │   │   ├── DX12ShaderPass.hpp
│   │   │   │   ├── DX12SingleFrameAllocator.cpp
│   │   │   │   ├── DX12SingleFrameAllocator.hpp
│   │   │   │   ├── DX12SwapChain.cpp
│   │   │   │   ├── DX12SwapChain.hpp
│   │   │   │   ├── DX12Textures.cpp
│   │   │   │   └── DX12Textures.hpp
│   │   │   ├── GraphicsDeviceContext.cpp
│   │   │   ├── GraphicsRHIManager.cpp
│   │   │   ├── OpenGL/
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── GLCommandList.cpp
│   │   │   │   ├── GLCommandList.hpp
│   │   │   │   ├── GLDepthBuffer.cpp
│   │   │   │   ├── GLDepthBuffer.hpp
│   │   │   │   ├── GLDescriptorPool.cpp
│   │   │   │   ├── GLDescriptorPool.hpp
│   │   │   │   ├── GLFWSwapChain.cpp
│   │   │   │   ├── GLFWSwapChain.hpp
│   │   │   │   ├── GLHelper.cpp
│   │   │   │   ├── GLHelper.hpp
│   │   │   │   ├── GLIndexBuffer.cpp
│   │   │   │   ├── GLIndexBuffer.hpp
│   │   │   │   ├── GLRenderPass.cpp
│   │   │   │   ├── GLRenderPass.hpp
│   │   │   │   ├── GLShaderPass.cpp
│   │   │   │   ├── GLShaderPass.hpp
│   │   │   │   ├── GLTextures.cpp
│   │   │   │   ├── GLTextures.hpp
│   │   │   │   ├── GLUniformBuffer.cpp
│   │   │   │   ├── GLUniformBuffer.hpp
│   │   │   │   ├── GLVertexBuffer.cpp
│   │   │   │   ├── GLVertexBuffer.hpp
│   │   │   │   ├── OpenGLDeviceContext.cpp
│   │   │   │   └── OpenGLDeviceContext.hpp
│   │   │   ├── RHIBitmap.cpp
│   │   │   ├── RHIHelper.cpp
│   │   │   ├── RHIObject.cpp
│   │   │   ├── RHIObjectCache.cpp
│   │   │   ├── RHIProfiler.cpp
│   │   │   ├── RHIResource.cpp
│   │   │   ├── Resource/
│   │   │   │   ├── GenerateMipMaps.hlsl
│   │   │   │   └── GenerateMipMaps.hlsl.inl
│   │   │   ├── ShaderCompiler/
│   │   │   │   ├── HLSLMetadataParser.cpp
│   │   │   │   ├── HLSLMetadataParser.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Lexer/
│   │   │   │   │   ├── AbstractLexer.cpp
│   │   │   │   │   ├── AbstractLexer.hpp
│   │   │   │   │   ├── CppLexer.cpp
│   │   │   │   │   ├── CppLexer.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   └── Token.hpp
│   │   │   │   ├── MultiCompileCombination.cpp
│   │   │   │   ├── MultiCompileCombination.hpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── Lumino.fxh
│   │   │   │   │   ├── Lumino.fxh.inl
│   │   │   │   │   ├── LuminoForward.fxh
│   │   │   │   │   ├── LuminoForward.fxh.inl
│   │   │   │   │   ├── LuminoNormalMap.fxh
│   │   │   │   │   ├── LuminoNormalMap.fxh.inl
│   │   │   │   │   ├── LuminoPBR.fxh
│   │   │   │   │   ├── LuminoPBR.fxh.inl
│   │   │   │   │   ├── LuminoShadow.fxh
│   │   │   │   │   ├── LuminoShadow.fxh.inl
│   │   │   │   │   ├── LuminoSkinning.fxh
│   │   │   │   │   ├── LuminoSkinning.fxh.inl
│   │   │   │   │   └── Readme.md
│   │   │   │   ├── ShaderHelper.cpp
│   │   │   │   ├── ShaderManager.cpp
│   │   │   │   ├── ShaderTranspiler.cpp
│   │   │   │   ├── ShaderTranspiler.hpp
│   │   │   │   ├── UnifiedShader.cpp
│   │   │   │   ├── UnifiedShaderCompiler.cpp
│   │   │   │   ├── UnifiedShaderCompiler.hpp
│   │   │   │   ├── Unity.md
│   │   │   │   ├── Windows/
│   │   │   │   │   └── D3DCompilerAPI.cpp
│   │   │   │   ├── pch.cpp
│   │   │   │   └── pch.hpp
│   │   │   ├── Vulkan/
│   │   │   │   ├── VulkanBuffers.cpp
│   │   │   │   ├── VulkanCommandList.cpp
│   │   │   │   ├── VulkanDescriptorPool.cpp
│   │   │   │   ├── VulkanDeviceContext.cpp
│   │   │   │   ├── VulkanHelper.cpp
│   │   │   │   ├── VulkanShaderPass.cpp
│   │   │   │   ├── VulkanSingleFrameAllocator.cpp
│   │   │   │   ├── VulkanSingleFrameAllocator.hpp
│   │   │   │   ├── VulkanTextures.cpp
│   │   │   │   └── VulkanVertexLayout.cpp
│   │   │   ├── WebGPU/
│   │   │   │   ├── README.md
│   │   │   │   ├── WebGPUCommandList.cpp
│   │   │   │   ├── WebGPUDevice.cpp
│   │   │   │   ├── WebGPUHelper.cpp
│   │   │   │   ├── WebGPURenderPass.cpp
│   │   │   │   ├── WebGPURenderTarget.cpp
│   │   │   │   └── WebGPUSwapChain.cpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Main.cpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       └── pch.hpp
│   ├── LuminoCore/
│   │   ├── CMakeLists.txt
│   │   ├── Info.plist
│   │   ├── LuminoCore.natvis
│   │   ├── LuminoCoreSources.cmake
│   │   ├── NuGet/
│   │   │   ├── Lumino.Core.PropertyUI.xml
│   │   │   ├── Lumino.Core.nuspec
│   │   │   ├── Lumino.Core.props
│   │   │   └── Lumino.Core.targets
│   │   ├── cmake/
│   │   │   ├── LuminoConfig-Common.cmake
│   │   │   └── LuminoConfig-LuminoCore.cmake
│   │   ├── include/
│   │   │   ├── LuminoCore/
│   │   │   │   ├── Base/
│   │   │   │   │   ├── Array.hpp
│   │   │   │   │   ├── Array.ipp
│   │   │   │   │   ├── Assertion.hpp
│   │   │   │   │   ├── Buffer.hpp
│   │   │   │   │   ├── CRCHash.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── DateTime.hpp
│   │   │   │   │   ├── ElapsedTimer.hpp
│   │   │   │   │   ├── EnumFlags.hpp
│   │   │   │   │   ├── Environment.hpp
│   │   │   │   │   ├── FixedArray.hpp
│   │   │   │   │   ├── Format.hpp
│   │   │   │   │   ├── LinearAllocator.hpp
│   │   │   │   │   ├── List.hpp
│   │   │   │   │   ├── Locale.hpp
│   │   │   │   │   ├── Logger.hpp
│   │   │   │   │   ├── Optional.hpp
│   │   │   │   │   ├── Optional2.hpp
│   │   │   │   │   ├── OptionalRef.ipp
│   │   │   │   │   ├── Platform.hpp
│   │   │   │   │   ├── Ref.inl
│   │   │   │   │   ├── Ref1.inl
│   │   │   │   │   ├── Ref2.inl
│   │   │   │   │   ├── RefObject.hpp
│   │   │   │   │   ├── Result.hpp
│   │   │   │   │   ├── StlHelper.hpp
│   │   │   │   │   ├── String.hpp
│   │   │   │   │   ├── StringFormat.hpp
│   │   │   │   │   ├── StringFormat.inl
│   │   │   │   │   ├── StringHelper.hpp
│   │   │   │   │   ├── StringHelper.ipp
│   │   │   │   │   ├── URefObject.hpp
│   │   │   │   │   ├── UnicodeUtils.hpp
│   │   │   │   │   ├── Uuid.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── fmt/
│   │   │   │   │           ├── core.h
│   │   │   │   │           ├── format-inl.h
│   │   │   │   │           ├── format.h
│   │   │   │   │           └── xchar.h
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Geometries/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── GeometryStructs.hpp
│   │   │   │   ├── IO/
│   │   │   │   │   ├── BinaryReader.hpp
│   │   │   │   │   ├── BinaryWriter.hpp
│   │   │   │   │   ├── CommandLineParser.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Console.hpp
│   │   │   │   │   ├── DllLoader.hpp
│   │   │   │   │   ├── FileInfo.hpp
│   │   │   │   │   ├── FileStream.hpp
│   │   │   │   │   ├── FileSystem.hpp
│   │   │   │   │   ├── IOError.hpp
│   │   │   │   │   ├── MemoryStream.hpp
│   │   │   │   │   ├── Path.hpp
│   │   │   │   │   ├── Process.hpp
│   │   │   │   │   ├── Stream.hpp
│   │   │   │   │   ├── StreamReader.hpp
│   │   │   │   │   ├── StreamWriter.hpp
│   │   │   │   │   ├── StringReader.hpp
│   │   │   │   │   ├── StringWriter.hpp
│   │   │   │   │   ├── TextReader.hpp
│   │   │   │   │   └── TextWriter.hpp
│   │   │   │   ├── Json/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── JsonDiagnostics.hpp
│   │   │   │   │   ├── JsonDocument.hpp
│   │   │   │   │   ├── JsonReader.hpp
│   │   │   │   │   └── JsonWriter.hpp
│   │   │   │   ├── Math/
│   │   │   │   │   ├── AttitudeTransform.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Geometries.hpp
│   │   │   │   │   ├── Math.hpp
│   │   │   │   │   ├── MathSerialization.hpp
│   │   │   │   │   ├── Matrix.hpp
│   │   │   │   │   ├── Plane.hpp
│   │   │   │   │   ├── Quaternion.hpp
│   │   │   │   │   ├── Random.hpp
│   │   │   │   │   ├── Vector2.hpp
│   │   │   │   │   ├── Vector3.hpp
│   │   │   │   │   ├── Vector4.hpp
│   │   │   │   │   ├── Vector4OpDeclareTemplate.inl
│   │   │   │   │   ├── Vector4OpImplementTemplate.inl
│   │   │   │   │   └── ViewFrustum.hpp
│   │   │   │   ├── Runtime/
│   │   │   │   │   ├── Archive.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Object.hpp
│   │   │   │   │   ├── Property.hpp
│   │   │   │   │   ├── RuntimeContext.hpp
│   │   │   │   │   ├── TypeInfo.hpp
│   │   │   │   │   └── Variant.hpp
│   │   │   │   ├── Serialization/
│   │   │   │   │   ├── ArchiveStore.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Serialization.hpp
│   │   │   │   │   └── SerializeTypes.inl
│   │   │   │   ├── Testing/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── TestHelper.hpp
│   │   │   │   ├── Text/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Encoding.hpp
│   │   │   │   │   └── EncodingConverter.hpp
│   │   │   │   └── Threading/
│   │   │   │       ├── Common.hpp
│   │   │   │       ├── ConditionEvent.hpp
│   │   │   │       └── Thread.hpp
│   │   │   └── LuminoCore.hpp
│   │   ├── src/
│   │   │   ├── Base/
│   │   │   │   ├── Assertion.cpp
│   │   │   │   ├── Buffer.cpp
│   │   │   │   ├── CRCHash.cpp
│   │   │   │   ├── CRTHelper.h
│   │   │   │   ├── DateTime.cpp
│   │   │   │   ├── ElapsedTimer.cpp
│   │   │   │   ├── ElapsedTimer_Linux.hpp
│   │   │   │   ├── ElapsedTimer_Mac.hpp
│   │   │   │   ├── ElapsedTimer_Win32.hpp
│   │   │   │   ├── Environment.cpp
│   │   │   │   ├── Environment_Linux.hpp
│   │   │   │   ├── Environment_Mac.hpp
│   │   │   │   ├── Environment_Win32.hpp
│   │   │   │   ├── Format.cpp
│   │   │   │   ├── Foundation_macOS.mm
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── LinearAllocator.cpp
│   │   │   │   ├── Locale.cpp
│   │   │   │   ├── Logger.cpp
│   │   │   │   ├── Platform.cpp
│   │   │   │   ├── RefObject.cpp
│   │   │   │   ├── Result.cpp
│   │   │   │   ├── StlHelper.cpp
│   │   │   │   ├── String.cpp
│   │   │   │   ├── StringHelper.cpp
│   │   │   │   ├── StringView.cpp
│   │   │   │   ├── URefObject.cpp
│   │   │   │   ├── UnicodeUtils.cpp
│   │   │   │   └── Uuid.cpp
│   │   │   ├── Geometries/
│   │   │   │   └── GeometryStructs.cpp
│   │   │   ├── IO/
│   │   │   │   ├── BinaryReader.cpp
│   │   │   │   ├── BinaryWriter.cpp
│   │   │   │   ├── CommandLineParser.cpp
│   │   │   │   ├── Console.cpp
│   │   │   │   ├── DllLoader.cpp
│   │   │   │   ├── FileInfo.cpp
│   │   │   │   ├── FileStream.cpp
│   │   │   │   ├── FileSystem.cpp
│   │   │   │   ├── FileSystem_Unix.hpp
│   │   │   │   ├── FileSystem_Win32.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MemoryStream.cpp
│   │   │   │   ├── Path.cpp
│   │   │   │   ├── PathHelper.cpp
│   │   │   │   ├── PathHelper.hpp
│   │   │   │   ├── PathHelper.ipp
│   │   │   │   ├── Process.cpp
│   │   │   │   ├── Process_Unix.hpp
│   │   │   │   ├── Process_Win32.hpp
│   │   │   │   ├── Stream.cpp
│   │   │   │   ├── StreamReader.cpp
│   │   │   │   ├── StreamWriter.cpp
│   │   │   │   ├── StringReader.cpp
│   │   │   │   ├── StringWriter.cpp
│   │   │   │   ├── TextReader.cpp
│   │   │   │   └── TextWriter.cpp
│   │   │   ├── Internal.hpp
│   │   │   ├── Json/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── JsonDiagnostics.cpp
│   │   │   │   ├── JsonDocument.cpp
│   │   │   │   ├── JsonReader.cpp
│   │   │   │   └── JsonWriter.cpp
│   │   │   ├── LuminoCore.PCH.h
│   │   │   ├── Math/
│   │   │   │   ├── Asm.h
│   │   │   │   ├── AttitudeTransform.cpp
│   │   │   │   ├── Geometries.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Math.cpp
│   │   │   │   ├── Matrix.cpp
│   │   │   │   ├── Plane.cpp
│   │   │   │   ├── Quaternion.cpp
│   │   │   │   ├── Random.cpp
│   │   │   │   ├── Vector2.cpp
│   │   │   │   ├── Vector3.cpp
│   │   │   │   ├── Vector4.cpp
│   │   │   │   └── ViewFrustum.cpp
│   │   │   ├── Runtime/
│   │   │   │   ├── Archive.cpp
│   │   │   │   ├── Object.cpp
│   │   │   │   ├── Property.cpp
│   │   │   │   ├── RuntimeContext.cpp
│   │   │   │   ├── TypeInfo.cpp
│   │   │   │   ├── Variant.cpp
│   │   │   │   └── rapidjson/
│   │   │   │       ├── allocators.h
│   │   │   │       ├── cursorstreamwrapper.h
│   │   │   │       ├── document.h
│   │   │   │       ├── encodedstream.h
│   │   │   │       ├── encodings.h
│   │   │   │       ├── error/
│   │   │   │       │   ├── en.h
│   │   │   │       │   └── error.h
│   │   │   │       ├── filereadstream.h
│   │   │   │       ├── filewritestream.h
│   │   │   │       ├── fwd.h
│   │   │   │       ├── internal/
│   │   │   │       │   ├── biginteger.h
│   │   │   │       │   ├── clzll.h
│   │   │   │       │   ├── diyfp.h
│   │   │   │       │   ├── dtoa.h
│   │   │   │       │   ├── ieee754.h
│   │   │   │       │   ├── itoa.h
│   │   │   │       │   ├── meta.h
│   │   │   │       │   ├── pow10.h
│   │   │   │       │   ├── regex.h
│   │   │   │       │   ├── stack.h
│   │   │   │       │   ├── strfunc.h
│   │   │   │       │   ├── strtod.h
│   │   │   │       │   └── swap.h
│   │   │   │       ├── istreamwrapper.h
│   │   │   │       ├── license.txt
│   │   │   │       ├── memorybuffer.h
│   │   │   │       ├── memorystream.h
│   │   │   │       ├── msinttypes/
│   │   │   │       │   ├── inttypes.h
│   │   │   │       │   └── stdint.h
│   │   │   │       ├── ostreamwrapper.h
│   │   │   │       ├── pointer.h
│   │   │   │       ├── prettywriter.h
│   │   │   │       ├── rapidjson.h
│   │   │   │       ├── reader.h
│   │   │   │       ├── schema.h
│   │   │   │       ├── stream.h
│   │   │   │       ├── stringbuffer.h
│   │   │   │       └── writer.h
│   │   │   ├── Serialization/
│   │   │   │   ├── ArchiveStore.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── Serialization.cpp
│   │   │   ├── Testing/
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── TestHelper.cpp
│   │   │   ├── Text/
│   │   │   │   ├── ASCIIEncoding.cpp
│   │   │   │   ├── ASCIIEncoding.hpp
│   │   │   │   ├── ConvertTable_EUCJP_EXT.cpp
│   │   │   │   ├── ConvertTable_SJIS.cpp
│   │   │   │   ├── DBCSEncoding.cpp
│   │   │   │   ├── DBCSEncoding.hpp
│   │   │   │   ├── Encoding.cpp
│   │   │   │   ├── EncodingConverter.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MakeTable/
│   │   │   │   │   └── MakeEucJpExtTable.rb
│   │   │   │   ├── UTF16Encoding.cpp
│   │   │   │   ├── UTF16Encoding.hpp
│   │   │   │   ├── UTF32Encoding.cpp
│   │   │   │   ├── UTF32Encoding.hpp
│   │   │   │   ├── UTF8Encoding.cpp
│   │   │   │   ├── UTF8Encoding.hpp
│   │   │   │   ├── Win32CodePageEncoding.cpp
│   │   │   │   └── Win32CodePageEncoding.hpp
│   │   │   └── Threading/
│   │   │       ├── ConditionEvent.cpp
│   │   │       ├── ConditionEvent_POSIX.hpp
│   │   │       ├── ConditionEvent_Win32.hpp
│   │   │       ├── Internal.hpp
│   │   │       ├── Thread.cpp
│   │   │       ├── Thread_POSIX.hpp
│   │   │       └── Thread_Win32.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── TestData/
│   │       │   ├── ASCII_CR.txt
│   │       │   ├── ASCII_CRLF.txt
│   │       │   ├── ASCII_LF.txt
│   │       │   ├── JSONExample1.json
│   │       │   ├── JSONExample2.json
│   │       │   ├── JSONExample3.json
│   │       │   ├── JSONExample4.json
│   │       │   ├── JSONExample5.json
│   │       │   ├── Test_Json_JsonDocument_Save1.json
│   │       │   ├── UTF8_BOM_LF.txt
│   │       │   └── UTF8_LF.txt
│   │       ├── Test_Base_Array.cpp
│   │       ├── Test_Base_Assertion.cpp
│   │       ├── Test_Base_ByteBuffer.cpp
│   │       ├── Test_Base_EnumFlags.cpp
│   │       ├── Test_Base_Environment.cpp
│   │       ├── Test_Base_Formatter.cpp
│   │       ├── Test_Base_List.cpp
│   │       ├── Test_Base_Logger.cpp
│   │       ├── Test_Base_Optional.cpp
│   │       ├── Test_Base_RefObject.cpp
│   │       ├── Test_Base_Result.cpp
│   │       ├── Test_Base_String.cpp
│   │       ├── Test_Base_StringView.cpp
│   │       ├── Test_Base_URefObject.cpp
│   │       ├── Test_IO_BinaryReader.cpp
│   │       ├── Test_IO_CommandLineParser.cpp
│   │       ├── Test_IO_FileStream.cpp
│   │       ├── Test_IO_FileSystem.cpp
│   │       ├── Test_IO_Path.cpp
│   │       ├── Test_IO_Process.cpp
│   │       ├── Test_IO_StreamReader.cpp
│   │       ├── Test_IO_TextWriter.cpp
│   │       ├── Test_Json_JsonReader.cpp
│   │       ├── Test_Json_JsonWriter.cpp
│   │       ├── Test_Math.cpp
│   │       ├── Test_Math_AttitudeTransform.cpp
│   │       ├── Test_Math_Common.hpp
│   │       ├── Test_Math_Matrix.cpp
│   │       ├── Test_Math_Plane.cpp
│   │       ├── Test_Math_Quaternion.cpp
│   │       ├── Test_Math_Vector2.cpp
│   │       ├── Test_Math_Vector3.cpp
│   │       ├── Test_Math_Vector4.cpp
│   │       ├── Test_Math_ViewFrustum.cpp
│   │       ├── Test_Runtime_Serializer.cpp
│   │       ├── Test_Text_Encoding.cpp
│   │       ├── Test_Text_EncodingConverter.cpp
│   │       └── pre.js
│   ├── LuminoEngine/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoEngine.cmake
│   │   ├── examples/
│   │   │   ├── Assets/
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   ├── EditorWithImGui/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── EmptyWindow/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Example-Engine-MeshObject/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Example-Engine-NWJSOverlap/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── README.md
│   │   │   │   ├── app/
│   │   │   │   │   ├── ExampleApp.cpp
│   │   │   │   │   ├── app.js
│   │   │   │   │   ├── import_funcs.js
│   │   │   │   │   └── pre.js
│   │   │   │   ├── index.html
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── Example_Engine_ExternalGLFW/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Experimental_Demo/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   └── HelloApp/
│   │   │       ├── CMakeLists.txt
│   │   │       └── Main.cpp
│   │   ├── include/
│   │   │   ├── Lumino.hpp
│   │   │   ├── LuminoEngine/
│   │   │   │   ├── Audio/
│   │   │   │   │   ├── Audio.hpp
│   │   │   │   │   ├── AudioBus.hpp
│   │   │   │   │   ├── AudioContext.hpp
│   │   │   │   │   ├── AudioDestinationNode.hpp
│   │   │   │   │   ├── AudioGainNode.hpp
│   │   │   │   │   ├── AudioListener.hpp
│   │   │   │   │   ├── AudioNode.hpp
│   │   │   │   │   ├── AudioPannerNode.hpp
│   │   │   │   │   ├── AudioProcessorNode.hpp
│   │   │   │   │   ├── AudioSourceNode.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── GameAudio.hpp
│   │   │   │   │   ├── InternalSharedMutex.inc
│   │   │   │   │   └── Sound.hpp
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Editor/
│   │   │   │   │   └── Editor.hpp
│   │   │   │   ├── Effect/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── EffectContext.hpp
│   │   │   │   │   ├── EffectModel.hpp
│   │   │   │   │   ├── ParticleEffectModel.hpp
│   │   │   │   │   └── ParticleEffectModel2.hpp
│   │   │   │   ├── Engine/
│   │   │   │   │   ├── Application.hpp
│   │   │   │   │   ├── ApplicationRunner.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Debug.hpp
│   │   │   │   │   ├── Engine.hpp
│   │   │   │   │   ├── EngineSettings.hpp
│   │   │   │   │   └── Time.hpp
│   │   │   │   ├── EngineContext.hpp
│   │   │   │   ├── Input/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Input.hpp
│   │   │   │   │   ├── InputBinding.hpp
│   │   │   │   │   ├── InputController.hpp
│   │   │   │   │   └── Mouse.hpp
│   │   │   │   ├── Physics/
│   │   │   │   │   ├── CollisionShape.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Joint.hpp
│   │   │   │   │   ├── PhysicsObject.hpp
│   │   │   │   │   ├── PhysicsWorld.hpp
│   │   │   │   │   ├── PhysicsWorld2D.hpp
│   │   │   │   │   ├── RigidBody.hpp
│   │   │   │   │   ├── SoftBody.hpp
│   │   │   │   │   └── TriggerBody.hpp
│   │   │   │   ├── PostEffect/
│   │   │   │   │   ├── BloomPostEffect.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── DepthOfFieldPostEffect.hpp
│   │   │   │   │   ├── FXAAPostEffect.hpp
│   │   │   │   │   ├── FilmicPostEffect.hpp
│   │   │   │   │   ├── LightShaftPostEffect.hpp
│   │   │   │   │   ├── PostEffect.hpp
│   │   │   │   │   ├── SSAOPostEffect.hpp
│   │   │   │   │   ├── SSRPostEffect.hpp
│   │   │   │   │   ├── ScreenBlurPostEffect.hpp
│   │   │   │   │   ├── TonePostEffect.hpp
│   │   │   │   │   ├── TonemapPostEffect.hpp
│   │   │   │   │   └── TransitionPostEffect.hpp
│   │   │   │   ├── Scene/
│   │   │   │   │   ├── Camera.hpp
│   │   │   │   │   ├── CameraOrbitControlComponent.hpp
│   │   │   │   │   ├── CharacterController.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Component.hpp
│   │   │   │   │   ├── Effect/
│   │   │   │   │   │   ├── ParticleEmitter.hpp
│   │   │   │   │   │   └── ParticleEmitterComponent.hpp
│   │   │   │   │   ├── Level.hpp
│   │   │   │   │   ├── Light.hpp
│   │   │   │   │   ├── Mesh/
│   │   │   │   │   │   ├── InstancedMeshes.hpp
│   │   │   │   │   │   ├── MeshComponent.hpp
│   │   │   │   │   │   ├── SkinnedMesh.hpp
│   │   │   │   │   │   └── StaticMesh.hpp
│   │   │   │   │   ├── MeshTilemap/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── MeshTilemapComponent.hpp
│   │   │   │   │   │   ├── MeshTilemapLayer.hpp
│   │   │   │   │   │   ├── MeshTilemapModel.hpp
│   │   │   │   │   │   └── MeshTileset.hpp
│   │   │   │   │   ├── MeshVoxelmap/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── MeshVoxelmapComponent.hpp
│   │   │   │   │   │   ├── MeshVoxelmapLayer.hpp
│   │   │   │   │   │   ├── MeshVoxelmapModel.hpp
│   │   │   │   │   │   └── MeshVoxelset.hpp
│   │   │   │   │   ├── Physics/
│   │   │   │   │   │   ├── Collision.hpp
│   │   │   │   │   │   ├── RigidBody2DComponent.hpp
│   │   │   │   │   │   └── RigidBodyComponent.hpp
│   │   │   │   │   ├── Raycaster.hpp
│   │   │   │   │   ├── Reflection/
│   │   │   │   │   │   ├── OffscreenWorldRenderView.hpp
│   │   │   │   │   │   ├── Reflector.hpp
│   │   │   │   │   │   └── ReflectorComponent.hpp
│   │   │   │   │   ├── Scene.hpp
│   │   │   │   │   ├── SceneConductor.hpp
│   │   │   │   │   ├── Shapes/
│   │   │   │   │   │   ├── ConeMesh.hpp
│   │   │   │   │   │   ├── CylinderMesh.hpp
│   │   │   │   │   │   ├── MeshPrimitiveComponent.hpp
│   │   │   │   │   │   ├── MeshPrimitives.hpp
│   │   │   │   │   │   ├── PathShape.hpp
│   │   │   │   │   │   └── TeapotMesh.hpp
│   │   │   │   │   ├── Sprite/
│   │   │   │   │   │   └── InstancedSprites.hpp
│   │   │   │   │   ├── Sprite.hpp
│   │   │   │   │   ├── Text/
│   │   │   │   │   │   ├── Text.hpp
│   │   │   │   │   │   └── TextComponent.hpp
│   │   │   │   │   ├── TransformControls.hpp
│   │   │   │   │   ├── VisualObject.hpp
│   │   │   │   │   ├── World.hpp
│   │   │   │   │   ├── WorldObject.hpp
│   │   │   │   │   └── WorldRenderView.hpp
│   │   │   │   ├── Scripting/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── Interpreter.hpp
│   │   │   │   ├── Tilemap/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Tilemap.hpp
│   │   │   │   │   ├── TilemapComponent.hpp
│   │   │   │   │   ├── TilemapLayer.hpp
│   │   │   │   │   ├── TilemapModel.hpp
│   │   │   │   │   ├── Tileset.hpp
│   │   │   │   │   └── Voxel.hpp
│   │   │   │   ├── UI/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Controls/
│   │   │   │   │   │   ├── UIButton.hpp
│   │   │   │   │   │   ├── UICheckBox.hpp
│   │   │   │   │   │   ├── UIComboBox.hpp
│   │   │   │   │   │   ├── UIControl.hpp
│   │   │   │   │   │   ├── UIDialog.hpp
│   │   │   │   │   │   ├── UILinkLabel.hpp
│   │   │   │   │   │   ├── UIListBox.hpp
│   │   │   │   │   │   ├── UIListBoxItem.hpp
│   │   │   │   │   │   ├── UIListView.hpp
│   │   │   │   │   │   ├── UIPropertyFields.hpp
│   │   │   │   │   │   ├── UIScrollView.hpp
│   │   │   │   │   │   ├── UISplitter.hpp
│   │   │   │   │   │   ├── UITextField.hpp
│   │   │   │   │   │   ├── UITreeBox.hpp
│   │   │   │   │   │   ├── UITreeView.hpp
│   │   │   │   │   │   └── UIWindow.hpp
│   │   │   │   │   ├── ImGuiIntegration.hpp
│   │   │   │   │   ├── Layout/
│   │   │   │   │   │   ├── UIGridLayout.hpp
│   │   │   │   │   │   └── UILayoutPanel.hpp
│   │   │   │   │   ├── RoutingRenderView.hpp
│   │   │   │   │   ├── UI.hpp
│   │   │   │   │   ├── UIActiveTimer.hpp
│   │   │   │   │   ├── UIAdorner.hpp
│   │   │   │   │   ├── UIColors.hpp
│   │   │   │   │   ├── UICommand.hpp
│   │   │   │   │   ├── UIContainerElement.hpp
│   │   │   │   │   ├── UIContext.hpp
│   │   │   │   │   ├── UIElement.hpp
│   │   │   │   │   ├── UIEvents.hpp
│   │   │   │   │   ├── UIFocusNavigator.hpp
│   │   │   │   │   ├── UIFrameWindow.hpp
│   │   │   │   │   ├── UIIcon.hpp
│   │   │   │   │   ├── UIItemsElement.hpp
│   │   │   │   │   ├── UIItemsModel.hpp
│   │   │   │   │   ├── UILayoutElement.hpp
│   │   │   │   │   ├── UIMessageTextArea.hpp
│   │   │   │   │   ├── UIPopup.hpp
│   │   │   │   │   ├── UIRenderView.hpp
│   │   │   │   │   ├── UIRenderingContext.hpp
│   │   │   │   │   ├── UISprite.hpp
│   │   │   │   │   ├── UIStyle.hpp
│   │   │   │   │   ├── UIStyleAnimation.hpp
│   │   │   │   │   ├── UITabBar.hpp
│   │   │   │   │   ├── UIText.hpp
│   │   │   │   │   ├── UIViewport.hpp
│   │   │   │   │   └── imgui/
│   │   │   │   │       └── .gitignore
│   │   │   │   └── Visual/
│   │   │   │       ├── CameraComponent.hpp
│   │   │   │       ├── Common.hpp
│   │   │   │       ├── EmojiComponent.hpp
│   │   │   │       ├── LightComponent.hpp
│   │   │   │       ├── SpriteComponent.hpp
│   │   │   │       └── VisualComponent.hpp
│   │   │   └── LuminoEngine.hpp
│   │   ├── sandbox/
│   │   │   ├── Assets/
│   │   │   │   ├── Audio/
│   │   │   │   │   ├── ln21.mid
│   │   │   │   │   ├── ln23.ogg
│   │   │   │   │   └── lnme_victory1.ogg
│   │   │   │   ├── Level1.yml
│   │   │   │   ├── Models/
│   │   │   │   │   ├── Axis.blend
│   │   │   │   │   ├── Axis.glb
│   │   │   │   │   ├── Box-Blue.gltf
│   │   │   │   │   ├── Box-Red.gltf
│   │   │   │   │   ├── Box1.blend
│   │   │   │   │   ├── Box1.yml
│   │   │   │   │   ├── Z-Box.blend
│   │   │   │   │   └── Z-Box.glb
│   │   │   │   ├── Particle.yml
│   │   │   │   ├── Shader/
│   │   │   │   │   ├── Ring.fx
│   │   │   │   │   ├── SpriteTest.hlsl
│   │   │   │   │   ├── UIShaderTest.fx
│   │   │   │   │   ├── simple.frag
│   │   │   │   │   └── simple.vert
│   │   │   │   ├── SkinnedMesh1.blend
│   │   │   │   ├── SkinnedMesh1.glb
│   │   │   │   ├── SkinnedMesh2.blend
│   │   │   │   ├── SkinnedMesh2.glb
│   │   │   │   └── picture1.tga
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Common.hpp
│   │   │   ├── Example_GameAudio.cpp
│   │   │   ├── Example_MainLoop.cpp
│   │   │   ├── Example_MeshViewer.cpp
│   │   │   ├── Example_MessageWindow.cpp
│   │   │   ├── Example_Navigator.cpp
│   │   │   ├── Example_Shader.cpp
│   │   │   ├── Example_SoundControl.cpp
│   │   │   ├── Example_Sprite.cpp
│   │   │   ├── Example_Tilemap.cpp
│   │   │   ├── Example_UIControls.cpp
│   │   │   ├── Example_glTFSampleViewer.cpp
│   │   │   ├── Experiment_CharacterController.cpp
│   │   │   ├── Experiment_Editor.cpp
│   │   │   ├── Experiment_MeshCollider.cpp
│   │   │   ├── Experiment_Reflector.cpp
│   │   │   ├── Experiment_SSR.cpp
│   │   │   ├── Experiment_Scripting.cpp
│   │   │   ├── Experiment_SelectObject.cpp
│   │   │   ├── Experiment_SerializeLevel.cpp
│   │   │   ├── Experiment_Shadow.cpp
│   │   │   ├── Experiment_Voxel.cpp
│   │   │   ├── SandboxMain.cpp
│   │   │   ├── Sandbox_Builder.cpp
│   │   │   ├── Sandbox_EmptyApp.cpp
│   │   │   ├── Sandbox_GameScene.cpp
│   │   │   ├── Sandbox_GridListBox.cpp
│   │   │   ├── Sandbox_InstancedMesh.cpp
│   │   │   ├── Sandbox_MeshTilemap.cpp
│   │   │   ├── Sandbox_Particle.cpp
│   │   │   ├── Sandbox_PathRendering.cpp
│   │   │   ├── Sandbox_PathShape.cpp
│   │   │   ├── Sandbox_Physics.cpp
│   │   │   ├── Sandbox_Physics2.cpp
│   │   │   ├── Sandbox_PostEffect.cpp
│   │   │   ├── Sandbox_Sky.cpp
│   │   │   ├── Sandbox_UIShader.cpp
│   │   │   ├── Tutorial_Sandbox.cpp
│   │   │   └── UISandbox.cpp
│   │   ├── src/
│   │   │   ├── Audio/
│   │   │   │   ├── ARIs/
│   │   │   │   │   ├── ARIAudioBus.cpp
│   │   │   │   │   ├── ARIAudioBus.hpp
│   │   │   │   │   ├── ARIDestinationNode.cpp
│   │   │   │   │   ├── ARIDestinationNode.hpp
│   │   │   │   │   ├── ARIGainNode.cpp
│   │   │   │   │   ├── ARIGainNode.hpp
│   │   │   │   │   ├── ARIInputPin.cpp
│   │   │   │   │   ├── ARIInputPin.hpp
│   │   │   │   │   ├── ARINode.cpp
│   │   │   │   │   ├── ARINode.hpp
│   │   │   │   │   ├── ARIOutputPin.cpp
│   │   │   │   │   ├── ARIOutputPin.hpp
│   │   │   │   │   ├── ARIPannerNode.cpp
│   │   │   │   │   ├── ARIPannerNode.hpp
│   │   │   │   │   ├── ARIProcessorNode.cpp
│   │   │   │   │   ├── ARIProcessorNode.hpp
│   │   │   │   │   ├── ARISourceNode.cpp
│   │   │   │   │   ├── ARISourceNode.hpp
│   │   │   │   │   ├── ChromiumWebCore.cpp
│   │   │   │   │   ├── ChromiumWebCore.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── VectorMath.cpp
│   │   │   │   │   └── VectorMath.h
│   │   │   │   ├── Audio.cpp
│   │   │   │   ├── AudioBus.cpp
│   │   │   │   ├── AudioContext.cpp
│   │   │   │   ├── AudioDestinationNode.cpp
│   │   │   │   ├── AudioGainNode.cpp
│   │   │   │   ├── AudioListener.cpp
│   │   │   │   ├── AudioManager.cpp
│   │   │   │   ├── AudioManager.hpp
│   │   │   │   ├── AudioNode.cpp
│   │   │   │   ├── AudioPannerNode.cpp
│   │   │   │   ├── AudioProcessorNode.cpp
│   │   │   │   ├── AudioSourceNode.cpp
│   │   │   │   ├── Backend/
│   │   │   │   │   ├── ALAudioDevice.cpp
│   │   │   │   │   ├── ALAudioDevice.hpp
│   │   │   │   │   ├── AudioDevice.cpp
│   │   │   │   │   ├── AudioDevice.hpp
│   │   │   │   │   ├── DSoundAudioDevice.cpp
│   │   │   │   │   ├── DSoundAudioDevice.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── SDLAudioDevice.cpp
│   │   │   │   │   └── SDLAudioDevice.hpp
│   │   │   │   ├── Decoder/
│   │   │   │   │   ├── AudioDecoder.cpp
│   │   │   │   │   ├── AudioDecoder.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── Mp3AudioDecoder.cpp
│   │   │   │   │   ├── Mp3AudioDecoder.hpp
│   │   │   │   │   ├── OggAudioDecoder.cpp
│   │   │   │   │   ├── OggAudioDecoder.hpp
│   │   │   │   │   ├── WaveAudioDecoder.cpp
│   │   │   │   │   └── WaveAudioDecoder.hpp
│   │   │   │   ├── GameAudio.cpp
│   │   │   │   ├── GameAudioImpl.cpp
│   │   │   │   ├── GameAudioImpl.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── README.md
│   │   │   │   └── Sound.cpp
│   │   │   ├── Editor/
│   │   │   │   ├── DevelopmentTool.cpp
│   │   │   │   ├── DevelopmentTool.hpp
│   │   │   │   ├── Editor.cpp
│   │   │   │   ├── EditorViewportToolPane.cpp
│   │   │   │   ├── EditorViewportToolPane.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MainViewportToolPane.cpp
│   │   │   │   ├── MainViewportToolPane.hpp
│   │   │   │   ├── ProfilerToolPane.cpp
│   │   │   │   └── ProfilerToolPane.hpp
│   │   │   ├── Effect/
│   │   │   │   ├── EffectContext.cpp
│   │   │   │   ├── EffectManager.cpp
│   │   │   │   ├── EffectManager.hpp
│   │   │   │   ├── EffectModel.cpp
│   │   │   │   ├── EffekseerEffect.cpp
│   │   │   │   ├── EffekseerEffect.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── ParticleEffectInstance.cpp
│   │   │   │   ├── ParticleEffectInstance.hpp
│   │   │   │   ├── ParticleEffectModel.cpp
│   │   │   │   ├── ParticleEffectModel2.cpp
│   │   │   │   ├── ParticleEffectRenderer.cpp
│   │   │   │   ├── ParticleEffectRenderer.hpp
│   │   │   │   └── README.md
│   │   │   ├── Engine/
│   │   │   │   ├── Application.cpp
│   │   │   │   ├── ApplicationRunner.cpp
│   │   │   │   ├── Debug.cpp
│   │   │   │   ├── Engine.cpp
│   │   │   │   ├── EngineDomain.hpp
│   │   │   │   ├── EngineManager.cpp
│   │   │   │   ├── EngineManager.hpp
│   │   │   │   ├── EngineProfiler.cpp
│   │   │   │   ├── EngineProfiler.hpp
│   │   │   │   ├── EngineSettings.cpp
│   │   │   │   ├── FpsController.cpp
│   │   │   │   ├── FpsController.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── Time.cpp
│   │   │   ├── EngineContext.cpp
│   │   │   ├── Input/
│   │   │   │   ├── CocoaInputDriver.cpp
│   │   │   │   ├── CocoaInputDriver.h
│   │   │   │   ├── GLFWInputDriver.cpp
│   │   │   │   ├── GLFWInputDriver.hpp
│   │   │   │   ├── Input.cpp
│   │   │   │   ├── InputBinding.cpp
│   │   │   │   ├── InputController.cpp
│   │   │   │   ├── InputDriver.cpp
│   │   │   │   ├── InputDriver.hpp
│   │   │   │   ├── InputManager.cpp
│   │   │   │   ├── InputManager.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Mouse.cpp
│   │   │   │   ├── Win32InputDriver.cpp
│   │   │   │   ├── Win32InputDriver.hpp
│   │   │   │   ├── Win32JoystickDriver.cpp
│   │   │   │   └── Win32JoystickDriver.hpp
│   │   │   ├── Internal.hpp
│   │   │   ├── LuminoEngine.PCH.h
│   │   │   ├── ManagerClass.template.cpp
│   │   │   ├── ManagerClass.template.hpp
│   │   │   ├── Physics/
│   │   │   │   ├── BulletUtils.hpp
│   │   │   │   ├── CollisionShape.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Joint.cpp
│   │   │   │   ├── PhysicsDebugRenderer.cpp
│   │   │   │   ├── PhysicsDebugRenderer.hpp
│   │   │   │   ├── PhysicsManager.cpp
│   │   │   │   ├── PhysicsManager.hpp
│   │   │   │   ├── PhysicsObject.cpp
│   │   │   │   ├── PhysicsWorld.cpp
│   │   │   │   ├── PhysicsWorld2D.cpp
│   │   │   │   ├── README.md
│   │   │   │   ├── RigidBody.cpp
│   │   │   │   ├── SoftBody.cpp
│   │   │   │   └── TriggerBody.cpp
│   │   │   ├── PostEffect/
│   │   │   │   ├── BloomPostEffect.cpp
│   │   │   │   ├── DepthOfFieldPostEffect.cpp
│   │   │   │   ├── FXAAPostEffect.cpp
│   │   │   │   ├── FilmicPostEffect.cpp
│   │   │   │   ├── LightShaftPostEffect.cpp
│   │   │   │   ├── PostEffect.cpp
│   │   │   │   ├── PostEffectRenderer.cpp
│   │   │   │   ├── PostEffectRenderer.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── BloomComposite.fx
│   │   │   │   │   ├── BloomComposite.lcfx
│   │   │   │   │   ├── BloomComposite.lcfx.inl
│   │   │   │   │   ├── Copy.fx
│   │   │   │   │   ├── Copy.lcfx
│   │   │   │   │   ├── Copy.lcfx.inl
│   │   │   │   │   ├── DepthOfField.fx
│   │   │   │   │   ├── DepthOfField.lcfx
│   │   │   │   │   ├── DepthOfField.lcfx.inl
│   │   │   │   │   ├── FXAA.fx
│   │   │   │   │   ├── FXAA.lcfx
│   │   │   │   │   ├── FXAA.lcfx.inl
│   │   │   │   │   ├── FilmicPostEffect.fx
│   │   │   │   │   ├── FilmicPostEffect.lcfx
│   │   │   │   │   ├── FilmicPostEffect.lcfx.inl
│   │   │   │   │   ├── LuminosityHighPassShader.fx
│   │   │   │   │   ├── LuminosityHighPassShader.lcfx
│   │   │   │   │   ├── LuminosityHighPassShader.lcfx.inl
│   │   │   │   │   ├── RadialBlur.fx
│   │   │   │   │   ├── RadialBlur.lcfx
│   │   │   │   │   ├── RadialBlur.lcfx.inl
│   │   │   │   │   ├── SSAOBlurAndComposite.fx
│   │   │   │   │   ├── SSAOBlurAndComposite.lcfx
│   │   │   │   │   ├── SSAOBlurAndComposite.lcfx.inl
│   │   │   │   │   ├── SSAOOcclusionMap.fx
│   │   │   │   │   ├── SSAOOcclusionMap.lcfx
│   │   │   │   │   ├── SSAOOcclusionMap.lcfx.inl
│   │   │   │   │   ├── SSRBlur.fx
│   │   │   │   │   ├── SSRBlur.lcfx
│   │   │   │   │   ├── SSRBlur.lcfx.inl
│   │   │   │   │   ├── SSRComposite.fx
│   │   │   │   │   ├── SSRComposite.lcfx
│   │   │   │   │   ├── SSRComposite.lcfx.inl
│   │   │   │   │   ├── SSRRayTracing.fx
│   │   │   │   │   ├── SSRRayTracing.lcfx
│   │   │   │   │   ├── SSRRayTracing.lcfx.inl
│   │   │   │   │   ├── ScreenBlur.fx
│   │   │   │   │   ├── ScreenBlur.lcfx
│   │   │   │   │   ├── ScreenBlur.lcfx.inl
│   │   │   │   │   ├── SeperableBlur.fx
│   │   │   │   │   ├── SeperableBlur.lcfx
│   │   │   │   │   ├── SeperableBlur.lcfx.inl
│   │   │   │   │   ├── ShaderLib/
│   │   │   │   │   │   ├── BloomComposite.fxh
│   │   │   │   │   │   ├── BloomComposite.fxh.inl
│   │   │   │   │   │   ├── Common.fxh
│   │   │   │   │   │   ├── Common.fxh.inl
│   │   │   │   │   │   ├── FXAA.hlsli
│   │   │   │   │   │   ├── SSRComposite.fxh
│   │   │   │   │   │   ├── SSRComposite.fxh.inl
│   │   │   │   │   │   ├── Tonemap.part.fxh
│   │   │   │   │   │   ├── Tonemap.part.fxh.inl
│   │   │   │   │   │   ├── Vignette.part.fxh
│   │   │   │   │   │   └── Vignette.part.fxh.inl
│   │   │   │   │   ├── ToneEffect.fx
│   │   │   │   │   ├── ToneEffect.lcfx
│   │   │   │   │   ├── ToneEffect.lcfx.inl
│   │   │   │   │   ├── TonemapEffect.fx
│   │   │   │   │   ├── TonemapEffect.lcfx
│   │   │   │   │   ├── TonemapEffect.lcfx.inl
│   │   │   │   │   ├── TransitionEffectWithMask.fx
│   │   │   │   │   ├── TransitionEffectWithMask.lcfx
│   │   │   │   │   ├── TransitionEffectWithMask.lcfx.inl
│   │   │   │   │   ├── TransitionEffectWithoutMask.fx
│   │   │   │   │   ├── TransitionEffectWithoutMask.lcfx
│   │   │   │   │   └── TransitionEffectWithoutMask.lcfx.inl
│   │   │   │   ├── SSAOPostEffect.cpp
│   │   │   │   ├── SSRPostEffect.cpp
│   │   │   │   ├── ScreenBlurPostEffect.cpp
│   │   │   │   ├── TonePostEffect.cpp
│   │   │   │   ├── TonemapPostEffect.cpp
│   │   │   │   └── TransitionPostEffect.cpp
│   │   │   ├── RegisterTypes.cpp
│   │   │   ├── RegisterTypes.inl
│   │   │   ├── Scene/
│   │   │   │   ├── Camera.cpp
│   │   │   │   ├── CameraOrbitControlComponent.cpp
│   │   │   │   ├── CharacterController.cpp
│   │   │   │   ├── Component.cpp
│   │   │   │   ├── Effect/
│   │   │   │   │   ├── ParticleEmitter.cpp
│   │   │   │   │   └── ParticleEmitterComponent.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── InternalSkyBox.cpp
│   │   │   │   ├── InternalSkyBox.hpp
│   │   │   │   ├── Level.cpp
│   │   │   │   ├── Light.cpp
│   │   │   │   ├── Mesh/
│   │   │   │   │   ├── InstancedMeshes.cpp
│   │   │   │   │   ├── MeshComponent.cpp
│   │   │   │   │   ├── SkinnedMesh.cpp
│   │   │   │   │   └── StaticMesh.cpp
│   │   │   │   ├── MeshTilemap/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshTilemapComponent.cpp
│   │   │   │   │   ├── MeshTilemapLayer.cpp
│   │   │   │   │   ├── MeshTilemapModel.cpp
│   │   │   │   │   └── MeshTileset.cpp
│   │   │   │   ├── MeshVoxelmap/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshVoxelmapComponent.cpp
│   │   │   │   │   ├── MeshVoxelmapLayer.cpp
│   │   │   │   │   ├── MeshVoxelmapModel.cpp
│   │   │   │   │   ├── MeshVoxelset.cpp
│   │   │   │   │   ├── VoxelmapMesh.cpp
│   │   │   │   │   └── VoxelmapMesh.hpp
│   │   │   │   ├── Physics/
│   │   │   │   │   ├── Collision.cpp
│   │   │   │   │   ├── RigidBody2DComponent.cpp
│   │   │   │   │   └── RigidBodyComponent.cpp
│   │   │   │   ├── Raycaster.cpp
│   │   │   │   ├── Reflection/
│   │   │   │   │   ├── OffscreenWorldRenderView.cpp
│   │   │   │   │   ├── Reflector.cpp
│   │   │   │   │   └── ReflectorComponent.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── SkyDome.fx
│   │   │   │   │   ├── SkyDome.lcfx
│   │   │   │   │   ├── SkyDome.lcfx.inl
│   │   │   │   │   ├── SkyFromAtmosphere.fx
│   │   │   │   │   ├── SkyFromAtmosphere.lcfx
│   │   │   │   │   ├── SkyFromAtmosphere.lcfx.inl
│   │   │   │   │   ├── SkyLowAltitudeOptimized.fx
│   │   │   │   │   ├── SkyLowAltitudeOptimized.lcfx
│   │   │   │   │   ├── SkyLowAltitudeOptimized.lcfx.inl
│   │   │   │   │   ├── SkydomeCloudA.png.inl
│   │   │   │   │   ├── SkydomeCloudB.png.inl
│   │   │   │   │   ├── SkydomeCloudC.png.inl
│   │   │   │   │   └── SkydomeCloudR.png.inl
│   │   │   │   ├── Scene.cpp
│   │   │   │   ├── SceneConductor.cpp
│   │   │   │   ├── SceneManager.cpp
│   │   │   │   ├── SceneManager.hpp
│   │   │   │   ├── Shapes/
│   │   │   │   │   ├── ConeMesh.cpp
│   │   │   │   │   ├── CylinderMesh.cpp
│   │   │   │   │   ├── MeshPrimitiveComponent.cpp
│   │   │   │   │   ├── MeshPrimitives.cpp
│   │   │   │   │   ├── PathShape.cpp
│   │   │   │   │   ├── PathShapeContext.cpp
│   │   │   │   │   ├── PathShapeContext.hpp
│   │   │   │   │   └── TeapotMesh.cpp
│   │   │   │   ├── SkyDomeMesh.inl
│   │   │   │   ├── Sprite/
│   │   │   │   │   └── InstancedSprites.cpp
│   │   │   │   ├── Sprite.cpp
│   │   │   │   ├── Text/
│   │   │   │   │   ├── Text.cpp
│   │   │   │   │   └── TextComponent.cpp
│   │   │   │   ├── TransformControls.cpp
│   │   │   │   ├── VisualObject.cpp
│   │   │   │   ├── World.cpp
│   │   │   │   ├── WorldObject.cpp
│   │   │   │   └── WorldRenderView.cpp
│   │   │   ├── Scripting/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Interpreter.cpp
│   │   │   │   ├── ScriptingManager.cpp
│   │   │   │   └── ScriptingManager.hpp
│   │   │   ├── SharedLibraryMain.cpp
│   │   │   ├── Tilemap/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Tilemap.cpp
│   │   │   │   ├── TilemapComponent.cpp
│   │   │   │   ├── TilemapLayer.cpp
│   │   │   │   ├── TilemapModel.cpp
│   │   │   │   ├── TilemapPhysicsObject.cpp
│   │   │   │   ├── TilemapPhysicsObject.hpp
│   │   │   │   ├── Tileset.cpp
│   │   │   │   └── Voxel.cpp
│   │   │   ├── UI/
│   │   │   │   ├── Controls/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── UIButton.cpp
│   │   │   │   │   ├── UICheckBox.cpp
│   │   │   │   │   ├── UIComboBox.cpp
│   │   │   │   │   ├── UIControl.cpp
│   │   │   │   │   ├── UIDialog.cpp
│   │   │   │   │   ├── UILinkLabel.cpp
│   │   │   │   │   ├── UIListBox.cpp
│   │   │   │   │   ├── UIListBoxItem.cpp
│   │   │   │   │   ├── UIListView.cpp
│   │   │   │   │   ├── UIPropertyFields.cpp
│   │   │   │   │   ├── UIScrollView.cpp
│   │   │   │   │   ├── UISplitter.cpp
│   │   │   │   │   ├── UITextField.cpp
│   │   │   │   │   ├── UITreeBox.cpp
│   │   │   │   │   ├── UITreeView.cpp
│   │   │   │   │   └── UIWindow.cpp
│   │   │   │   ├── ImGuiIntegration.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Layout/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── UIGridLayout.cpp
│   │   │   │   │   └── UILayoutPanel.cpp
│   │   │   │   ├── RoutingRenderView.cpp
│   │   │   │   ├── UI.cpp
│   │   │   │   ├── UIActiveTimer.cpp
│   │   │   │   ├── UIAdorner.cpp
│   │   │   │   ├── UIColors.cpp
│   │   │   │   ├── UIColorsDefine.inl
│   │   │   │   ├── UICommand.cpp
│   │   │   │   ├── UIContainerElement.cpp
│   │   │   │   ├── UIContext.cpp
│   │   │   │   ├── UIEditableTextArea.cpp
│   │   │   │   ├── UIEditableTextArea.hpp
│   │   │   │   ├── UIElement.cpp
│   │   │   │   ├── UIEventArgsPool.hpp
│   │   │   │   ├── UIEvents.cpp
│   │   │   │   ├── UIFocusNavigator.cpp
│   │   │   │   ├── UIFrameWindow.cpp
│   │   │   │   ├── UIIcon.cpp
│   │   │   │   ├── UIItemsElement.cpp
│   │   │   │   ├── UIItemsModel.cpp
│   │   │   │   ├── UILayoutElement.cpp
│   │   │   │   ├── UIManager.cpp
│   │   │   │   ├── UIManager.hpp
│   │   │   │   ├── UIMessageTextArea.cpp
│   │   │   │   ├── UIPopup.cpp
│   │   │   │   ├── UIRenderView.cpp
│   │   │   │   ├── UIRenderingContext.cpp
│   │   │   │   ├── UISprite.cpp
│   │   │   │   ├── UIStyle.cpp
│   │   │   │   ├── UIStyleAnimation.cpp
│   │   │   │   ├── UIStyleInstance.cpp
│   │   │   │   ├── UIStyleInstance.hpp
│   │   │   │   ├── UITabBar.cpp
│   │   │   │   ├── UIText.cpp
│   │   │   │   └── UIViewport.cpp
│   │   │   └── Visual/
│   │   │       ├── CameraComponent.cpp
│   │   │       ├── EmojiComponent.cpp
│   │   │       ├── Internal.hpp
│   │   │       ├── LightComponent.cpp
│   │   │       ├── SpriteComponent.cpp
│   │   │       ├── VisualComponent.cpp
│   │   │       ├── VisualManager.cpp
│   │   │       └── VisualManager.hpp
│   │   └── test/
│   │       ├── .gitignore
│   │       ├── Assets/
│   │       │   ├── 4Window.fx
│   │       │   ├── Animation/
│   │       │   │   └── Move1.vmd
│   │       │   ├── Assets/
│   │       │   │   └── Level1.yml
│   │       │   ├── Atmosphere.1.fx
│   │       │   ├── Atmosphere.fx
│   │       │   ├── Audio/
│   │       │   │   ├── sin_440_3s_S16L_22050_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_22050_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_32000_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_32000_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_44100_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_44100_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_48000_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_48000_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_88200_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_88200_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_96000_1ch.ogg
│   │       │   │   └── sin_440_3s_S16L_96000_2ch.ogg
│   │       │   ├── Basic.fx
│   │       │   ├── Cloud.fx
│   │       │   ├── ConstantBufferTest-1.psh
│   │       │   ├── Graphics/
│   │       │   │   ├── Instancing.psh
│   │       │   │   ├── Instancing.vsh
│   │       │   │   ├── MultiRenderTargetTest-1.psh
│   │       │   │   ├── MultiRenderTargetTest-1.vsh
│   │       │   │   ├── SimpleConstantBuffer.fx
│   │       │   │   ├── SimpleConstantBuffer.lcfx
│   │       │   │   ├── SimplePosColor.fx
│   │       │   │   └── SimplePosColor.lcfx
│   │       │   ├── Mesh/
│   │       │   │   ├── Axis1.blend
│   │       │   │   ├── Axis1.glb
│   │       │   │   ├── BoxTextured/
│   │       │   │   │   └── BoxTextured.gltf
│   │       │   │   ├── SkinnedAxis1.blend
│   │       │   │   ├── SkinnedAxis1.glb
│   │       │   │   ├── SkinnedMesh2.blend
│   │       │   │   ├── SkinnedMesh2.blend1
│   │       │   │   └── SkinnedMesh2.glb
│   │       │   ├── MultiStreamVertexBuffer-1.psh
│   │       │   ├── MultiStreamVertexBuffer-1.vsh
│   │       │   ├── NestedStruct.fx
│   │       │   ├── PreprosessorTest.fx
│   │       │   ├── PreprosessorTest.fxh
│   │       │   ├── PreprosessorTest2.fx
│   │       │   ├── Rendering/
│   │       │   │   ├── bone2.glb
│   │       │   │   └── bone2.mqoz
│   │       │   ├── Shader/
│   │       │   │   ├── FxcTest1.fx
│   │       │   │   ├── FxcTest1.v1.lcfx
│   │       │   │   ├── IndependentSamplerState.fx
│   │       │   │   ├── LayoutTest-1.fx
│   │       │   │   ├── LayoutTest-2.fx
│   │       │   │   ├── MultiTechMultiTexture-1.fx
│   │       │   │   ├── NotProvidedVertexAttribute-1.fx
│   │       │   │   ├── UniformBufferTest-1.fx
│   │       │   │   └── UniformBufferTest-WorldMatrix.fx
│   │       │   ├── ShaderPassRenderStateTest1.fx
│   │       │   ├── SimplePosColor.psh
│   │       │   ├── SimplePosColor.vsh
│   │       │   ├── Texture3DTest-1.psh
│   │       │   ├── Texture3DTest-1.vsh
│   │       │   ├── TextureTest-1.psh
│   │       │   ├── TextureTest-1.vsh
│   │       │   ├── simple.frag
│   │       │   ├── simple.psh
│   │       │   ├── simple.vert
│   │       │   ├── simple.vsh
│   │       │   ├── test.json
│   │       │   ├── test.lca
│   │       │   └── test.psh
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── PCH.hpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       ├── Test_Animation_Mixer.cpp
│   │       ├── Test_Asset_AssetArchive.cpp
│   │       ├── Test_Asset_AssetFile.cpp
│   │       ├── Test_Asset_AssetObject.cpp
│   │       ├── Test_Asset_LoadAsset.cpp
│   │       ├── Test_Audio_Decorder.cpp
│   │       ├── Test_Base_Event.cpp
│   │       ├── Test_Base_ObjectCache.cpp
│   │       ├── Test_Base_Regex.cpp
│   │       ├── Test_Base_Variant.cpp
│   │       ├── Test_Effect_Particle.cpp
│   │       ├── Test_Engine_Object.cpp
│   │       ├── Test_Graphics_Bitmap.cpp
│   │       ├── Test_Graphics_ColorStructs.cpp
│   │       ├── Test_Graphics_DeviceContext.cpp
│   │       ├── Test_Graphics_LowLevelRendering.cpp
│   │       ├── Test_Graphics_Texture.cpp
│   │       ├── Test_Mesh.cpp
│   │       ├── Test_Physics.cpp
│   │       ├── Test_Physics_2D.cpp
│   │       ├── Test_PostEffect.cpp
│   │       ├── Test_Rendering_DefaultShading.cpp
│   │       ├── Test_Rendering_LowLevels.cpp
│   │       ├── Test_Rendering_RenderingContext.cpp
│   │       ├── Test_Rendering_Shading.cpp
│   │       ├── Test_Rendering_ShapeRenderer.cpp
│   │       ├── Test_Scene_MeshPrimitive.cpp
│   │       ├── Test_Scene_Sprite.cpp
│   │       ├── Test_Scene_Text.cpp
│   │       ├── Test_Scene_WorldObject.cpp
│   │       ├── Test_Shader_HlslEffect.cpp
│   │       ├── Test_Shader_Shader.cpp
│   │       ├── Test_Shader_UnifiedShader.cpp
│   │       ├── Test_UI_UIElement.cpp
│   │       ├── Test_UI_UIFrameWindow.cpp
│   │       ├── Test_UI_UIGridLayout.cpp
│   │       ├── Test_UI_UILayout.cpp
│   │       ├── Test_UI_UISprite.cpp
│   │       ├── Test_UI_UIStyle.cpp
│   │       ├── Test_UI_UITextBlock.cpp
│   │       └── Test_Visual_VisualComponent.cpp
│   ├── Platform/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoPlatform.cmake
│   │   ├── examples/
│   │   │   ├── Web/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   └── serve.py
│   │   │   └── Windows/
│   │   │       ├── CMakeLists.txt
│   │   │       └── Main.cpp
│   │   ├── include/
│   │   │   └── LuminoPlatform/
│   │   │       ├── AndroidPlatformInterface.hpp
│   │   │       ├── CocoaPlatformInterface.hpp
│   │   │       ├── Common.hpp
│   │   │       ├── ExternalProxyPlatformWindow.hpp
│   │   │       ├── Platform.hpp
│   │   │       ├── PlatformDialogs.hpp
│   │   │       ├── PlatformEvent.hpp
│   │   │       ├── PlatformModule.hpp
│   │   │       ├── PlatformSupport.hpp
│   │   │       ├── PlatformWindow.hpp
│   │   │       ├── Win32PlatformInterface.hpp
│   │   │       ├── detail/
│   │   │       │   ├── GLFWPlatformWindow.hpp
│   │   │       │   ├── OpenGLContext.hpp
│   │   │       │   ├── PlatformManager.hpp
│   │   │       │   └── PlatformWindowManager.hpp
│   │   │       └── iOSPlatformInterface.hpp
│   │   └── src/
│   │       ├── Internal.hpp
│   │       ├── Platform/
│   │       │   ├── Android/
│   │       │   │   └── AndroidPlatformInterface.cpp
│   │       │   ├── EmptyPlatformWindowManager.cpp
│   │       │   ├── EmptyPlatformWindowManager.hpp
│   │       │   ├── EmscriptenPlatformInterface.cpp
│   │       │   ├── GLFWPlatformWindowManager.cpp
│   │       │   ├── GLFWPlatformWindowManager.hpp
│   │       │   ├── Internal.hpp
│   │       │   ├── OpenGLContext.cpp
│   │       │   ├── Platform.cpp
│   │       │   ├── PlatformDialogs.cpp
│   │       │   ├── PlatformEvent.cpp
│   │       │   ├── PlatformManager.cpp
│   │       │   ├── PlatformModule.cpp
│   │       │   ├── PlatformSupport.cpp
│   │       │   ├── PlatformWindow.cpp
│   │       │   ├── PlatformWindowManager.cpp
│   │       │   ├── TextInputMethodSystem.cpp
│   │       │   ├── TextInputMethodSystem.hpp
│   │       │   ├── Windows/
│   │       │   │   ├── Win32PlatformDialogs.hpp
│   │       │   │   ├── Win32PlatformInterface.cpp
│   │       │   │   ├── Win32PlatformWindowManager.cpp
│   │       │   │   └── Win32PlatformWindowManager.hpp
│   │       │   ├── iOS/
│   │       │   │   └── iOSPlatformInterface.mm
│   │       │   └── macOS/
│   │       │       ├── CocoaPlatformInterface.mm
│   │       │       └── PlatformSupport.mm
│   │       ├── RegisterTypes.inl
│   │       └── pch.hpp
│   └── Runtime/
│       ├── CMakeLists.txt
│       ├── cmake/
│       │   └── LuminoConfig-LuminoRuntime.cmake
│       ├── include/
│       │   └── LuminoEngine/
│       │       ├── Asset/
│       │       │   ├── AssetModel.hpp
│       │       │   ├── AssetObject.hpp
│       │       │   ├── Assets.hpp
│       │       │   ├── Common.hpp
│       │       │   ├── TextureImporter.hpp
│       │       │   └── detail/
│       │       │       └── AssetManager.hpp
│       │       ├── Base/
│       │       │   ├── Builder.hpp
│       │       │   ├── Collection.hpp
│       │       │   ├── Common.hpp
│       │       │   ├── Delegate.hpp
│       │       │   ├── Event.hpp
│       │       │   ├── Fetch.hpp
│       │       │   ├── MixHash.hpp
│       │       │   ├── ObjectPool.hpp
│       │       │   ├── Promise.hpp
│       │       │   ├── Regex.hpp
│       │       │   ├── Serializer.hpp
│       │       │   ├── Task.hpp
│       │       │   ├── UndoRedo.hpp
│       │       │   └── detail/
│       │       │       └── RefObjectCache.hpp
│       │       ├── Engine/
│       │       │   ├── Common2.hpp
│       │       │   ├── CoreApplication.hpp
│       │       │   ├── Diagnostics.hpp
│       │       │   ├── EngineContext2.hpp
│       │       │   └── Module.hpp
│       │       ├── Graphics/
│       │       │   ├── ColorStructs.hpp
│       │       │   ├── Common.hpp
│       │       │   └── RenderState.hpp
│       │       ├── Reflection/
│       │       │   └── VMProperty.hpp
│       │       ├── Runtime/
│       │       │   ├── FFITypes.hpp
│       │       │   ├── RuntimeLog.hpp
│       │       │   └── detail/
│       │       │       ├── BindingValidation.hpp
│       │       │       └── RuntimeManager.hpp
│       │       └── RuntimeModule.hpp
│       ├── src/
│       │   ├── Asset/
│       │   │   ├── AssetArchive.cpp
│       │   │   ├── AssetArchive.hpp
│       │   │   ├── AssetManager.cpp
│       │   │   ├── AssetModel.cpp
│       │   │   ├── AssetObject.cpp
│       │   │   ├── Assets.cpp
│       │   │   ├── Internal.hpp
│       │   │   ├── README.md
│       │   │   └── TextureImporter.cpp
│       │   ├── Base/
│       │   │   ├── Builder.cpp
│       │   │   ├── Collection.cpp
│       │   │   ├── Delegate.cpp
│       │   │   ├── Event.cpp
│       │   │   ├── Fetch.cpp
│       │   │   ├── Internal.hpp
│       │   │   ├── ObjectPool.cpp
│       │   │   ├── Promise.cpp
│       │   │   ├── Regex.cpp
│       │   │   ├── Serializer.cpp
│       │   │   ├── Task.cpp
│       │   │   └── UndoRedo.cpp
│       │   ├── Engine/
│       │   │   ├── CoreApplication.cpp
│       │   │   ├── Diagnostics.cpp
│       │   │   ├── EngineContext2.cpp
│       │   │   ├── Internal.hpp
│       │   │   └── Module.cpp
│       │   ├── Graphics/
│       │   │   ├── ColorStructs.cpp
│       │   │   ├── Internal.hpp
│       │   │   └── RenderState.cpp
│       │   ├── Internal.hpp
│       │   ├── Reflection/
│       │   │   └── Internal.hpp
│       │   ├── RegisterTypes.cpp
│       │   ├── RegisterTypes.inl
│       │   ├── Runtime/
│       │   │   ├── BindingValidation.cpp
│       │   │   ├── RuntimeLog.cpp
│       │   │   └── RuntimeManager.cpp
│       │   ├── RuntimeModule.cpp
│       │   └── pch.hpp
│       └── test/
│           ├── CMakeLists.txt
│           ├── Main.cpp
│           ├── Test_Base_Fetch.cpp
│           ├── Test_Base_Promise.cpp
│           ├── Test_Reflection_TypeInfo.cpp
│           └── pch.hpp
├── src/
│   ├── CFlagOverrides.cmake
│   ├── Editor/
│   │   ├── App/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Main.cpp
│   │   │   └── PCH.hpp
│   │   ├── CLI/
│   │   │   ├── Bin2InlCommand.cpp
│   │   │   ├── Bin2InlCommand.hpp
│   │   │   ├── BuildAssetCommand.cpp
│   │   │   ├── BuildAssetCommand.hpp
│   │   │   ├── BuildCommand.cpp
│   │   │   ├── BuildCommand.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Command.cpp
│   │   │   ├── Command.hpp
│   │   │   ├── FxcCommand.cpp
│   │   │   ├── FxcCommand.hpp
│   │   │   ├── LuminoCLI.PCH.hpp
│   │   │   ├── Main.cpp
│   │   │   ├── NewAssetCommand.cpp
│   │   │   ├── NewAssetCommand.hpp
│   │   │   ├── NewCommand.cpp
│   │   │   └── NewCommand.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Core/
│   │   │   ├── App/
│   │   │   │   ├── Application.cpp
│   │   │   │   ├── Application.hpp
│   │   │   │   ├── DocumentManager.cpp
│   │   │   │   ├── DocumentManager.hpp
│   │   │   │   ├── EditorContext.cpp
│   │   │   │   ├── EditorContext.hpp
│   │   │   │   ├── InspectorPane.cpp
│   │   │   │   ├── InspectorPane.hpp
│   │   │   │   ├── MainWindow.cpp
│   │   │   │   ├── MainWindow.hpp
│   │   │   │   ├── NavigatorManager.cpp
│   │   │   │   ├── NavigatorManager.hpp
│   │   │   │   ├── NewProjectDialog.cpp
│   │   │   │   ├── NewProjectDialog.hpp
│   │   │   │   ├── OutputPane.cpp
│   │   │   │   ├── OutputPane.hpp
│   │   │   │   ├── ProblemsPane.cpp
│   │   │   │   ├── ProblemsPane.hpp
│   │   │   │   ├── StartupView.cpp
│   │   │   │   ├── StartupView.hpp
│   │   │   │   ├── ToolPanesArea.cpp
│   │   │   │   └── ToolPanesArea.hpp
│   │   │   ├── AppData.cpp
│   │   │   ├── AppData.hpp
│   │   │   ├── AssetEditor/
│   │   │   │   ├── AssetEditorModel.cpp
│   │   │   │   └── AssetEditorModel.hpp
│   │   │   ├── CLI.cpp
│   │   │   ├── CLI.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Common.hpp
│   │   │   ├── Controls/
│   │   │   │   ├── AssetPicker.cpp
│   │   │   │   └── AssetPicker.hpp
│   │   │   ├── EnvironmentSettings.cpp
│   │   │   ├── EnvironmentSettings.hpp
│   │   │   ├── PCH.hpp
│   │   │   ├── Project/
│   │   │   │   ├── AssetDatabase.cpp
│   │   │   │   ├── AssetDatabase.hpp
│   │   │   │   ├── BuildAssetHelper.cpp
│   │   │   │   ├── BuildAssetHelper.hpp
│   │   │   │   ├── LanguageContext.cpp
│   │   │   │   ├── LanguageContext.hpp
│   │   │   │   ├── PluginManager.cpp
│   │   │   │   ├── PluginManager.hpp
│   │   │   │   ├── Project.cpp
│   │   │   │   ├── Project.hpp
│   │   │   │   ├── ProjectTemplateManager.cpp
│   │   │   │   ├── ProjectTemplateManager.hpp
│   │   │   │   ├── Toolset.cpp
│   │   │   │   └── Toolset.hpp
│   │   │   ├── StandardPlugin/
│   │   │   │   ├── AssetBrowserNavigator.cpp
│   │   │   │   ├── AssetBrowserNavigator.hpp
│   │   │   │   ├── LevelEditor.cpp
│   │   │   │   ├── LevelEditor.hpp
│   │   │   │   ├── LevelEditorHierarchyPane.cpp
│   │   │   │   ├── LevelEditorHierarchyPane.hpp
│   │   │   │   ├── LevelEditorPropertyPane.cpp
│   │   │   │   ├── LevelEditorPropertyPane.hpp
│   │   │   │   ├── StandardPluginModule.cpp
│   │   │   │   └── StandardPluginModule.hpp
│   │   │   ├── TilemapPlugin/
│   │   │   │   ├── TilesetEditorModel.cpp
│   │   │   │   ├── TilesetEditorModel.hpp
│   │   │   │   ├── TilesetEditorView.cpp
│   │   │   │   ├── TilesetEditorView.hpp
│   │   │   │   ├── TilesetExtensionModule.cpp
│   │   │   │   ├── TilesetExtensionModule.hpp
│   │   │   │   ├── TilesetNavigator.cpp
│   │   │   │   └── TilesetNavigator.hpp
│   │   │   ├── TilemapSceneExtension/
│   │   │   │   ├── TilemapSceneEditor.cpp
│   │   │   │   ├── TilemapSceneEditor.hpp
│   │   │   │   ├── TilemapSceneEditorModel.cpp
│   │   │   │   ├── TilemapSceneEditorModel.hpp
│   │   │   │   ├── TilemapSceneEditorModule.cpp
│   │   │   │   ├── TilemapSceneEditorModule.hpp
│   │   │   │   ├── TilemapSceneModePane.cpp
│   │   │   │   ├── TilemapSceneModePane.hpp
│   │   │   │   ├── TilemapSceneNavigator.cpp
│   │   │   │   └── TilemapSceneNavigator.hpp
│   │   │   ├── UIExtension.cpp
│   │   │   ├── UIExtension.hpp
│   │   │   ├── Workspace.cpp
│   │   │   └── Workspace.hpp
│   │   ├── MeshViewer/
│   │   │   ├── Application.cpp
│   │   │   ├── Application.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Main.cpp
│   │   │   ├── MainWindow.cpp
│   │   │   ├── MainWindow.hpp
│   │   │   ├── PCH.hpp
│   │   │   ├── ViewModel.cpp
│   │   │   ├── ViewModel.hpp
│   │   │   ├── VisualizedMeshComponent.cpp
│   │   │   └── VisualizedMeshComponent.hpp
│   │   └── Studio/
│   │       ├── ActionManager.cpp
│   │       ├── ActionManager.h
│   │       ├── AssetBrowser/
│   │       │   ├── AssetBrowserNavigator.cpp
│   │       │   └── AssetBrowserNavigator.h
│   │       ├── AssetImportDialog.cpp
│   │       ├── AssetImportDialog.h
│   │       ├── CMakeLists.txt
│   │       ├── ContentsViewManager.cpp
│   │       ├── ContentsViewManager.h
│   │       ├── Document.cpp
│   │       ├── Document.h
│   │       ├── DocumentManager.cpp
│   │       ├── DocumentManager.h
│   │       ├── External/
│   │       │   └── QtAwesome/
│   │       │       ├── QtAwesome.cpp
│   │       │       ├── QtAwesome.h
│   │       │       ├── QtAwesome.qrc
│   │       │       ├── QtAwesomeAnim.cpp
│   │       │       └── QtAwesomeAnim.h
│   │       ├── InspectorPaneContainer.cpp
│   │       ├── InspectorPaneContainer.h
│   │       ├── LuminoWidget.cpp
│   │       ├── LuminoWidget.h
│   │       ├── Main.cpp
│   │       ├── MainWindow.cpp
│   │       ├── MainWindow.h
│   │       ├── Navigators/
│   │       │   ├── AudioAssetNavigator.cpp
│   │       │   ├── AudioAssetNavigator.h
│   │       │   ├── MapAssetNavigator.cpp
│   │       │   ├── MapAssetNavigator.h
│   │       │   ├── MotionAssetNavigator.cpp
│   │       │   ├── MotionAssetNavigator.h
│   │       │   ├── PrefabAssetNavigator.cpp
│   │       │   ├── PrefabAssetNavigator.h
│   │       │   ├── SkillAssetNavigator.cpp
│   │       │   └── SkillAssetNavigator.h
│   │       ├── NewProjectDialog.cpp
│   │       ├── NewProjectDialog.h
│   │       ├── OutputPane.cpp
│   │       ├── OutputPane.h
│   │       ├── PCH.h
│   │       ├── ProblemsPane.cpp
│   │       ├── ProblemsPane.h
│   │       ├── PropertyPane.cpp
│   │       ├── PropertyPane.h
│   │       ├── Readme.md
│   │       ├── SceneContentsView.cpp
│   │       ├── SceneContentsView.h
│   │       ├── SceneEditorDocumentView.cpp
│   │       ├── SceneEditorDocumentView.h
│   │       ├── SpriteFrameset/
│   │       │   ├── SpriteFramesetAssetNavigator.cpp
│   │       │   ├── SpriteFramesetAssetNavigator.h
│   │       │   ├── SpriteFramesetEditorDocumentView.cpp
│   │       │   └── SpriteFramesetEditorDocumentView.h
│   │       ├── StartupView.cpp
│   │       ├── StartupView.h
│   │       ├── ToolPaneContainer.cpp
│   │       ├── ToolPaneContainer.h
│   │       └── Widgets/
│   │           ├── Expander.cpp
│   │           └── Expander.h
│   ├── LuminoCommon.cmake
│   ├── LuminoConfig.cmake
│   ├── Readme.md
│   └── Transcoder/
│       ├── CLI/
│       │   ├── CMakeLists.txt
│       │   ├── Main.cpp
│       │   └── PCH.hpp
│       ├── CMakeLists.txt
│       ├── Core/
│       │   ├── CMakeLists.txt
│       │   ├── CodeAnalyzer.cpp
│       │   ├── CodeAnalyzer.hpp
│       │   ├── Common.hpp
│       │   ├── Generators/
│       │   │   ├── DotNetPInvokeGenerator.cpp
│       │   │   ├── DotNetPInvokeGenerator.hpp
│       │   │   ├── DotnetClassGenerator.cpp
│       │   │   ├── DotnetClassGenerator.hpp
│       │   │   ├── FlatCGenerator.cpp
│       │   │   ├── FlatCGenerator.hpp
│       │   │   ├── Generator.cpp
│       │   │   ├── Generator.hpp
│       │   │   ├── HSP3Generator.cpp
│       │   │   ├── HSP3Generator.hpp
│       │   │   ├── OutputBuffer.cpp
│       │   │   ├── OutputBuffer.hpp
│       │   │   ├── RegisterTypesGenerator.cpp
│       │   │   ├── RegisterTypesGenerator.hpp
│       │   │   ├── RubyExtGenerator.cpp
│       │   │   ├── RubyExtGenerator.hpp
│       │   │   └── Templates/
│       │   │       ├── HSPCommands.template.cpp
│       │   │       ├── LuminoC.template.h
│       │   │       ├── RubyDoc.txt
│       │   │       ├── RubyEnums.txt
│       │   │       ├── RubyEventSignalClass.template.rb
│       │   │       ├── RubyExt.template.cpp
│       │   │       ├── RubyRequiredClassMethods.template.cpp
│       │   │       ├── RubyRequiredStructMethods.template.cpp
│       │   │       ├── RubyStructs.txt
│       │   │       ├── Source.cpp.template
│       │   │       └── WrapperIF.h.template
│       │   ├── PCH.cpp
│       │   ├── PCH.hpp
│       │   ├── Project.cpp
│       │   ├── Project.hpp
│       │   ├── Readme.md
│       │   ├── SymbolDatabase.cpp
│       │   └── SymbolDatabase.hpp
│       ├── Docs/
│       │   ├── FlatC.md
│       │   └── HSP.md
│       ├── Parser/
│       │   ├── CMakeLists.txt
│       │   ├── ClangVisitorRunner12.hpp
│       │   ├── HeaderParser2.cpp
│       │   ├── HeaderParser2.hpp
│       │   ├── Main.cpp
│       │   ├── PCH.hpp
│       │   ├── ParserIntermediates.cpp
│       │   ├── ParserIntermediates.hpp
│       │   └── ParserUtils.hpp
│       ├── Readme.md
│       └── Test/
│           ├── Assets/
│           │   └── Struct/
│           │       └── TestStruct.hpp
│           ├── CMakeLists.txt
│           ├── Main.cpp
│           ├── PCH.hpp
│           └── Test_Struct.cpp
└── tools/
    ├── BinaryToIntArray/
    │   ├── BinaryToIntArray.bat
    │   └── BinaryToIntArray.rb
    ├── Bindings/
    │   ├── Dotnet/
    │   │   ├── Lumino.Dotnet/
    │   │   │   ├── Class1.cs
    │   │   │   ├── Lumino.Class.generated.cs
    │   │   │   ├── Lumino.Dotnet.csproj
    │   │   │   └── Lumino.PInvoke.generated.cs
    │   │   ├── Lumino.Dotnet.Test/
    │   │   │   ├── Lumino.Dotnet.Test.csproj
    │   │   │   └── Program.cs
    │   │   └── LuminoDotnet.sln
    │   ├── HSP3/
    │   │   ├── .gitignore
    │   │   ├── CMakeLists.txt
    │   │   ├── Lumino.HSPCommands.generated.cpp
    │   │   ├── LuminoHSP.cpp
    │   │   ├── LuminoHSP.h
    │   │   ├── README_HSP3.txt
    │   │   ├── hsp3plugin/
    │   │   │   ├── README.md
    │   │   │   ├── hsp3debug.h
    │   │   │   ├── hsp3plugin.cpp
    │   │   │   ├── hsp3plugin.h
    │   │   │   ├── hsp3struct.h
    │   │   │   ├── hspvar_core.h
    │   │   │   └── hspwnd.h
    │   │   ├── lumino.as
    │   │   ├── lumino.hs
    │   │   ├── main.cpp
    │   │   ├── samples/
    │   │   │   └── test1.hsp
    │   │   └── test/
    │   │       ├── Test1.hsp
    │   │       ├── Test2.hsp
    │   │       ├── Test3.hsp
    │   │       ├── Test4.hsp
    │   │       └── setup.bat
    │   └── Ruby/
    │       ├── .gitignore
    │       ├── APIReference/
    │       │   ├── Lumino.RubyYARDOCSource.generated.rb
    │       │   └── Readme.md
    │       ├── GemProject/
    │       │   ├── .gitignore
    │       │   ├── Gemfile
    │       │   ├── LICENSE.txt
    │       │   ├── README.md
    │       │   ├── Rakefile
    │       │   ├── bin/
    │       │   │   ├── console
    │       │   │   └── setup
    │       │   ├── examples/
    │       │   │   └── hello_app.rb
    │       │   ├── exe/
    │       │   │   └── lumino-rb
    │       │   ├── ext/
    │       │   │   └── lumino_ext/
    │       │   │       ├── FlatC.generated.h
    │       │   │       ├── FlatCommon.h
    │       │   │       ├── Lumino.RubyExt.generated.cpp
    │       │   │       ├── LuminoRubyRuntimeManager.cpp
    │       │   │       ├── LuminoRubyRuntimeManager.h
    │       │   │       ├── extconf.rb
    │       │   │       └── log.txt
    │       │   ├── lib/
    │       │   │   ├── lumino/
    │       │   │   │   ├── cli.rb
    │       │   │   │   └── version.rb
    │       │   │   └── lumino.rb
    │       │   ├── lumino.gemspec
    │       │   └── test/
    │       │       ├── test_engine.rb
    │       │       └── test_struct.rb
    │       ├── README.md
    │       ├── Test.rb
    │       ├── Test_Override.rb
    │       ├── extconf.rb
    │       ├── gc_sandbox.rb
    │       ├── gemtest/
    │       │   ├── serialize.rb
    │       │   ├── test.rb
    │       │   └── test2.rb
    │       ├── samples/
    │       │   └── draw_texture.rb
    │       └── sandbox.rb
    ├── Editor/
    │   ├── CMakeLists.txt
    │   ├── build.bat
    │   └── src/
    │       ├── Squircle.cpp
    │       ├── Squircle.h
    │       ├── main.cpp
    │       ├── main.qml
    │       └── qml.qrc
    ├── EngineResources/
    │   ├── .gitignore
    │   └── README.md
    ├── FontAwesome/
    │   ├── 5.9.0-desktop/
    │   │   ├── Font Awesome 5 Brands-Regular-400.otf
    │   │   ├── Font Awesome 5 Free-Regular-400.otf
    │   │   ├── Font Awesome 5 Free-Solid-900.otf
    │   │   └── metadata/
    │   │       └── icons.json
    │   ├── LICENSE.txt
    │   └── MakeMapInl.py
    ├── LuminoBuild/
    │   ├── AndroidBuildEnv.cs
    │   ├── BuildEnvironment.cs
    │   ├── BuildSystem/
    │   │   ├── BuildSystem.cs
    │   │   ├── BuildTask.cs
    │   │   ├── Logger.cs
    │   │   ├── Proc.cs
    │   │   ├── TaskManager.cs
    │   │   └── Utils.cs
    │   ├── EmscriptenBuildEnv.cs
    │   ├── Env/
    │   │   └── EmscriptenEnv.cs
    │   ├── Main.cs
    │   ├── Rules/
    │   │   ├── BuildLocalPackage.cs
    │   │   └── BuildPackage.cs
    │   └── Tasks/
    │       ├── Bootstrap.cs
    │       ├── BuildDocuments.cs
    │       ├── BuildEmbeddedResources.cs
    │       ├── BuildEmscripten.cs
    │       ├── BuildEngine.cs
    │       ├── BuildEngine_Android.cs
    │       ├── BuildEngine_Linux.cs
    │       ├── BuildEngine_iOS.cs
    │       ├── BuildEngine_macOS.cs
    │       ├── BuildExternalProjects.cs
    │       ├── BuildExternals.cs
    │       ├── BuildLLVM.cs
    │       ├── BuildRuntime.cs
    │       ├── CompressPackage.cs
    │       ├── DeployEnginePackage.cs
    │       ├── MakeInstaller_Win32.cs
    │       ├── MakeNativePackage.cs
    │       ├── MakeNuGetPackage_Core.cs
    │       ├── MakePackage_HSP3.cs
    │       ├── MakePackage_Ruby.cs
    │       ├── MakePackage_macOS.cs
    │       └── SetupTools.cs
    ├── LuminoStudio/
    │   ├── CMakeLists.txt
    │   ├── DocumentManager.cpp
    │   ├── DocumentManager.h
    │   ├── LuminoStudio.pro
    │   ├── LuminoWidget.cpp
    │   ├── LuminoWidget.h
    │   ├── Main.cpp
    │   ├── MainWindow.cpp
    │   ├── MainWindow.h
    │   ├── MainWindow.ui
    │   ├── PCH.h
    │   ├── Resources/
    │   │   ├── LICENSE.md
    │   │   ├── README.md
    │   │   ├── breeze.qrc
    │   │   ├── dark.qss
    │   │   └── light.qss
    │   ├── SceneListDock.cpp
    │   ├── SceneListDock.h
    │   ├── SceneListDock.ui
    │   └── style.qrc
    ├── PackageSource/
    │   ├── Installer/
    │   │   ├── .gitignore
    │   │   ├── InstallDialog.pbx
    │   │   ├── LuminoInstaller.wxs.template
    │   │   └── license-jp.rtf
    │   ├── Readme.txt.template
    │   └── macOS/
    │       └── setup.sh
    ├── ProjectTemplates/
    │   ├── cpp-cmake/
    │   │   ├── .gitignore
    │   │   ├── CMakeLists.txt
    │   │   ├── assets/
    │   │   │   └── LineWave.fx
    │   │   ├── projects/
    │   │   │   ├── Editor/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   ├── Common.h
    │   │   │   │   ├── EditorMain.cpp
    │   │   │   │   ├── EditorMain.h
    │   │   │   │   └── PCH.h
    │   │   │   ├── Game/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   └── PCH.h
    │   │   │   └── Runtime/
    │   │   │       ├── CMakeLists.txt
    │   │   │       ├── Main.Windows.cpp
    │   │   │       ├── PCH.cpp
    │   │   │       └── PCH.h
    │   │   └── src/
    │   │       ├── App.cpp
    │   │       └── App.h
    │   ├── cpp-default/
    │   │   ├── .gitignore
    │   │   ├── LuminoApp.sln
    │   │   ├── assets/
    │   │   │   └── LineWave.fx
    │   │   ├── projects/
    │   │   │   ├── LuminoApp.Android/
    │   │   │   │   ├── .gitignore
    │   │   │   │   ├── app/
    │   │   │   │   │   ├── .gitignore
    │   │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   │   ├── build.gradle
    │   │   │   │   │   ├── proguard-rules.pro
    │   │   │   │   │   └── src/
    │   │   │   │   │       └── main/
    │   │   │   │   │           ├── AndroidManifest.xml
    │   │   │   │   │           ├── cpp/
    │   │   │   │   │           │   ├── PCH.h
    │   │   │   │   │           │   └── native-lib.cpp
    │   │   │   │   │           └── res/
    │   │   │   │   │               ├── drawable/
    │   │   │   │   │               │   └── ic_launcher_background.xml
    │   │   │   │   │               ├── drawable-v24/
    │   │   │   │   │               │   └── ic_launcher_foreground.xml
    │   │   │   │   │               ├── layout/
    │   │   │   │   │               │   └── activity_main.xml
    │   │   │   │   │               ├── mipmap-anydpi-v26/
    │   │   │   │   │               │   ├── ic_launcher.xml
    │   │   │   │   │               │   └── ic_launcher_round.xml
    │   │   │   │   │               └── values/
    │   │   │   │   │                   ├── colors.xml
    │   │   │   │   │                   ├── strings.xml
    │   │   │   │   │                   └── styles.xml
    │   │   │   │   ├── build.gradle
    │   │   │   │   ├── gradle/
    │   │   │   │   │   └── wrapper/
    │   │   │   │   │       ├── gradle-wrapper.jar
    │   │   │   │   │       └── gradle-wrapper.properties
    │   │   │   │   ├── gradle.properties
    │   │   │   │   ├── gradlew
    │   │   │   │   ├── gradlew.bat
    │   │   │   │   └── settings.gradle
    │   │   │   ├── LuminoApp.Web/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   ├── PCH.h
    │   │   │   │   └── pre.js
    │   │   │   ├── LuminoApp.Windows/
    │   │   │   │   ├── Launch.cpp
    │   │   │   │   ├── LuminoApp.rc
    │   │   │   │   ├── LuminoApp.vcxproj
    │   │   │   │   ├── LuminoApp.vcxproj.filters
    │   │   │   │   ├── PCH.cpp
    │   │   │   │   ├── PCH.h
    │   │   │   │   ├── Resource.h
    │   │   │   │   ├── Resource.rc
    │   │   │   │   └── targetver.h
    │   │   │   ├── LuminoApp.iOS/
    │   │   │   │   ├── .gitignore
    │   │   │   │   ├── LuminoApp.iOS/
    │   │   │   │   │   ├── AppDelegate.h
    │   │   │   │   │   ├── AppDelegate.mm
    │   │   │   │   │   ├── Assets.xcassets/
    │   │   │   │   │   │   ├── AppIcon.appiconset/
    │   │   │   │   │   │   │   └── Contents.json
    │   │   │   │   │   │   ├── ColorMap.textureset/
    │   │   │   │   │   │   │   ├── Contents.json
    │   │   │   │   │   │   │   └── Universal.mipmapset/
    │   │   │   │   │   │   │       └── Contents.json
    │   │   │   │   │   │   └── Contents.json
    │   │   │   │   │   ├── Base.lproj/
    │   │   │   │   │   │   ├── LaunchScreen.storyboard
    │   │   │   │   │   │   └── Main.storyboard
    │   │   │   │   │   ├── GameViewController.h
    │   │   │   │   │   ├── GameViewController.mm
    │   │   │   │   │   ├── Info.plist
    │   │   │   │   │   ├── Prefix.pch
    │   │   │   │   │   ├── Renderer.h
    │   │   │   │   │   ├── Renderer.mm
    │   │   │   │   │   ├── RootGLKView.h
    │   │   │   │   │   ├── RootGLKView.mm
    │   │   │   │   │   └── main.mm
    │   │   │   │   └── LuminoApp.iOS.xcodeproj/
    │   │   │   │       ├── project.pbxproj
    │   │   │   │       └── project.xcworkspace/
    │   │   │   │           ├── contents.xcworkspacedata
    │   │   │   │           └── xcshareddata/
    │   │   │   │               └── IDEWorkspaceChecks.plist
    │   │   │   └── LuminoApp.macOS/
    │   │   │       ├── .gitignore
    │   │   │       ├── LuminoApp.macOS/
    │   │   │       │   ├── Assets.xcassets/
    │   │   │       │   │   ├── AppIcon.appiconset/
    │   │   │       │   │   │   └── Contents.json
    │   │   │       │   │   ├── ColorMap.textureset/
    │   │   │       │   │   │   ├── Contents.json
    │   │   │       │   │   │   └── Universal.mipmapset/
    │   │   │       │   │   │       └── Contents.json
    │   │   │       │   │   └── Contents.json
    │   │   │       │   ├── Info.plist
    │   │   │       │   ├── LuminoApp_macOS.entitlements
    │   │   │       │   ├── Prefix.pch
    │   │   │       │   └── main.mm
    │   │   │       └── LuminoApp.macOS.xcodeproj/
    │   │   │           ├── project.pbxproj
    │   │   │           └── project.xcworkspace/
    │   │   │               ├── contents.xcworkspacedata
    │   │   │               └── xcshareddata/
    │   │   │                   └── IDEWorkspaceChecks.plist
    │   │   └── src/
    │   │       └── App.cpp
    │   └── ruby-default/
    │       └── main.rb
    ├── TestProjects/
    │   └── CMake/
    │       ├── CMakeLists.txt
    │       └── Main.cpp
    ├── VLGothic/
    │   ├── Changelog
    │   ├── LICENSE
    │   ├── LICENSE.en
    │   ├── LICENSE_E.mplus
    │   ├── LICENSE_J.mplus
    │   ├── README
    │   ├── README.sazanami
    │   ├── README_E.mplus
    │   └── README_J.mplus
    ├── VisualStudio/
    │   ├── Lumino.natvis
    │   ├── Templates/
    │   │   ├── Lumino-VS2019-Cpp/
    │   │   │   ├── APP/
    │   │   │   │   ├── Launch.cpp
    │   │   │   │   ├── Lumino.natvis
    │   │   │   │   ├── app.rc
    │   │   │   │   ├── pch.cpp
    │   │   │   │   ├── pch.h
    │   │   │   │   ├── resource.h
    │   │   │   │   └── targetver.h
    │   │   │   ├── ASSETS/
    │   │   │   │   └── LineWave.fx
    │   │   │   ├── LuminoProject.vcxproj
    │   │   │   ├── LuminoProject.vcxproj.filters
    │   │   │   ├── Main.cpp
    │   │   │   └── MyTemplate.vstemplate
    │   │   └── README.md
    │   ├── lngetset.snippet
    │   └── lngetsetref.snippet
    ├── VulkanTest/
    │   ├── CMakeLists.txt
    │   └── test1.cpp
    ├── lumino-wg/
    │   ├── CMakeLists.txt
    │   ├── Common.hpp
    │   ├── DotNet/
    │   │   ├── CSClassLibGenerator.cpp
    │   │   ├── CSClassLibGenerator.hpp
    │   │   ├── CSCommon.cpp
    │   │   ├── CSCommon.hpp
    │   │   ├── CSStructsGenerator.cpp
    │   │   ├── CSStructsGenerator.hpp
    │   │   ├── DotNetPInvokeLibGenerator.cpp
    │   │   └── DotNetPInvokeLibGenerator.hpp
    │   ├── Generator.cpp
    │   ├── Generator.hpp
    │   ├── Main.cpp
    │   ├── OutputBuffer.cpp
    │   ├── OutputBuffer.hpp
    │   ├── PCH.hpp
    │   ├── Parser.cpp
    │   ├── Parser.hpp
    │   ├── Readme.md
    │   ├── SymbolDatabase.cpp
    │   ├── SymbolDatabase.hpp
    │   ├── Templates/
    │   │   ├── CSClasses.template.cs
    │   │   ├── CSStructs.template.cs
    │   │   └── DotNetPInvoke.template.cs
    │   └── WrapperIF/
    │       ├── FlatCCommon.cpp
    │       ├── FlatCCommon.hpp
    │       ├── Templates/
    │       │   ├── LuminoC.h
    │       │   ├── Source.cpp
    │       │   └── WrapperIF.h
    │       ├── WrapperIFClassesGenerator.cpp
    │       ├── WrapperIFClassesGenerator.hpp
    │       ├── WrapperIFGenerator.cpp
    │       └── WrapperIFGenerator.hpp
    └── mplus-font/
        ├── LICENSE_E
        ├── LICENSE_J
        └── Readme.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
---
Language:        Cpp
# BasedOnStyle:  Mozilla
AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:   
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  BeforeCatch:     true
  BeforeElse:      true
  IndentBraces:    false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: true
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     0
CommentPragmas:  '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: false
ForEachMacros:   
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IncludeCategories: 
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth:     4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 4
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 4
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments:  true
SortIncludes:    false
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles:  false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Cpp11
TabWidth:        8
UseTab:          Never
...



================================================
FILE: .github/CONTRIBUTING.md
================================================
Contributing
====================

Reporting Issues
--------------------
バグの報告や機能要求は GitHub の IssuesTracker へお願いします。

バグ報告や機能要求ごとに1つの Issue を提出してください。同じ Issue で複数のバグや機能要求を列挙しないように注意をお願いします。


### バグ報告

Issue には [bug] ラベルを割り当ててください。

バグを報告する前に、どのように再現するか、お使いの OS、ブラウザ、バージョン、作業手順、可能であればスクリーンショットを書き留めてください。


### 機能要求・改善

Issue には [enhancement] ラベルを割り当ててください。

できるだけ、機能が必要になった理由や背景を記入してください。具体的なイメージがある場合はその作業手順や、サンプルコードなどを記入していただけると助かります。


Pull requests
--------------------

パッチコードはいつでも歓迎します!

ただし、大規模なコード変更やドキュメント化されたインターフェイスの変更を行う場合はまず Issue を提出してください。まだ開発初期であるため、事前にほかのコードへの影響などを確認することがあります。




================================================
FILE: .github/workflows/build-continuous.yml
================================================
name: Verification

on:
  pull_request:
    branches:
    - main

env:
  cache-version: v1
  LN_BUILD_FROM_CI: 1

jobs:
      
  #==============================================================================
  #==============================================================================
  Build-x64-windows-static:
    runs-on: windows-2019
    
    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 5.0.x

    - name: Prepare cache (./build/tools)
      uses: actions/cache@v1
      with:
        path: ./build/tools
        key: ${{ env.cache-version }}-x64-windows-${{ hashFiles('**/BuildExternals.cs') }}
            
    - name: Dependencies
      run: dotnet run -- BuildExternals x64-windows-static
    - name: Build
      run: dotnet run -- BuildEngine x64-windows-static

  #==============================================================================
  Build-wasm32-emscripten:
    runs-on: windows-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 5.0.x

    - name: Prepare cache (./build/tools)
      uses: actions/cache@v1
      with:
        path: ./build/tools
        key: ${{ env.cache-version }}-wasm32-emscripten-${{ hashFiles('**/BuildExternals.cs') }}

    - name: Dependencies
      run: dotnet run -- BuildExternals wasm32-emscripten
    - name: Build
      run: dotnet run -- BuildEngine wasm32-emscripten

  #==============================================================================
  # Native-Web:
  #   runs-on: windows-latest

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108

  #   - name: Common build cache (build/BuildCache)
  #     uses: actions/cache@v1
  #     with:
  #       path: ./build/BuildCache
  #       key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
  #   - uses: actions/cache@v1.0.3
  #     with:
  #       path: ./build/Emscripten/emsdk
  #       key: ${{ env.cache-version }}-emsdk-${{ hashFiles(format('{0}{1}', github.workspace, '/tools/LuminoBuild/EmscriptenBuildEnv.cs')) }}
  #       restore-keys: |
  #         ${{ env.cache-version }}-emsdk-
          
  #   - name: Build
  #     run: |
  #       dotnet run -- BuildExternalProjects Emscripten
  #       dotnet run -- BuildEngine_Emscripten Emscripten
      

  # #==============================================================================
  # Native-Android:
  #   runs-on: windows-latest

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108

  #   - name: Common build cache (build/BuildCache)
  #     uses: actions/cache@v1
  #     with:
  #       path: ./build/BuildCache
  #       key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
  #   - name: Build
  #     run: |
  #       dotnet run -- BuildExternalProjects Android-x86_64
  #       dotnet run -- BuildEngine_Android

  # #==============================================================================
  # Native-macOS:
  #   runs-on: macos-11.0

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108

  #   - name: Common build cache (build/BuildCache)
  #     uses: actions/cache@v1
  #     with:
  #       path: ./build/BuildCache
  #       key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
  #   - name: Build
  #     run: |
  #       dotnet run -- BuildExternalProjects macOS
  #       dotnet run -- BuildEngine_macOS

  #==============================================================================
#  Native-iOS:
#    runs-on: macos-11.0

#    steps:
#    - name: Checkout
#      uses: actions/checkout@v1

#    - name: Setup .NET Core
#      uses: actions/setup-dotnet@v1
#      with:
#        dotnet-version: 2.2.108

#    - name: Common build cache (build/BuildCache)
#      uses: actions/cache@v1
#      with:
#        path: ./build/BuildCache
#        key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
#    - name: Build
#      run: |
#        dotnet run -- BuildExternalProjects iOS-OS64
#        dotnet run -- BuildExternalProjects iOS-SIMULATOR64
#        dotnet run -- BuildEngine_iOS


================================================
FILE: .github/workflows/package-continuous.yml
================================================
name: Package

on:
  push:
    branches:
    - main

env:
  cache-version: v1
  LN_BUILD_FROM_CI: 1

jobs:
  #==============================================================================
  Build-x64-windows-static:
    runs-on: windows-2019
    
    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 5.0.x

    - name: Prepare cache (./build/tools)
      uses: actions/cache@v1
      with:
        path: ./build/tools
        key: ${{ env.cache-version }}-x64-windows-${{ hashFiles('**/BuildExternals.cs') }}
            
    - name: Dependencies
      run: dotnet run -- BuildExternals x64-windows-static
    - name: Build
      run: dotnet run -- BuildEngine x64-windows-static
    - name: Package
      run: dotnet run -- MakeNativePackage x64-windows-static
        
    - uses: actions/upload-artifact@v1
      with:
        name: NativePackage-x64-windows-static
        path: ./build/NativePackage

  #==============================================================================
  Build-wasm32-emscripten:
    runs-on: windows-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Setup .NET Core
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 5.0.x

    - name: Prepare cache (./build/tools)
      uses: actions/cache@v1
      with:
        path: ./build/tools
        key: ${{ env.cache-version }}-wasm32-emscripten-${{ hashFiles('**/BuildExternals.cs') }}

    - name: Dependencies
      run: dotnet run -- BuildExternals wasm32-emscripten
    - name: Build
      run: dotnet run -- BuildEngine wasm32-emscripten
    - name: Package
      run: dotnet run -- MakeNativePackage wasm32-emscripten
        
    - uses: actions/upload-artifact@v1
      with:
        name: NativePackage-wasm32-emscripten
        path: ./build/NativePackage

  # #==============================================================================
  # Build-Native-Android:
  #   runs-on: windows-2019

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108

  #   - name: Common build cache (build/BuildCache)
  #     uses: actions/cache@v1
  #     with:
  #       path: ./build/BuildCache
  #       key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
  #   - name: Build
  #     run: |
  #       dotnet run -- BuildExternalProjects Android-x86_64
  #       dotnet run -- BuildExternalProjects Android-x86
  #       dotnet run -- BuildExternalProjects Android-arm64-v8a
  #       dotnet run -- BuildExternalProjects Android-armeabi-v7a
  #       dotnet run -- BuildEngine_Android
  #       dotnet run -- MakeNativePackage

  #   - uses: actions/upload-artifact@v1
  #     with:
  #       name: NativePackage-Android
  #       path: ./build/NativePackage

  # #==============================================================================
  # Build-Native-macOS:
  #   runs-on: macos-11.0

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108

  #   - name: Common build cache (build/BuildCache)
  #     uses: actions/cache@v1
  #     with:
  #       path: ./build/BuildCache
  #       key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
            
  #   - name: Build
  #     run: |
  #       dotnet run -- BuildExternalProjects macOS
  #       dotnet run -- BuildEngine_macOS
  #       dotnet run -- MakeNativePackage

  #   - uses: actions/upload-artifact@v1
  #     with:
  #       name: NativePackage-macOS
  #       path: ./build/NativePackage
        
  #==============================================================================
#  Build-Native-iOS:
#    runs-on: macos-11.0
#
#    steps:
#    - name: Checkout
#      uses: actions/checkout@v1
#
#    - name: Setup .NET Core
#      uses: actions/setup-dotnet@v1
#      with:
#        dotnet-version: 2.2.108
#
#    - name: Common build cache (build/BuildCache)
#      uses: actions/cache@v1
#      with:
#        path: ./build/BuildCache
#        key: ${{ env.cache-version }}-BuildCache-${{ hashFiles('**/BuildEnvironment.cs') }}
#            
#    - name: Build
#      run: |
#        dotnet run -- BuildExternalProjects iOS-OS64
#        dotnet run -- BuildExternalProjects iOS-SIMULATOR64
#        dotnet run -- BuildEngine_iOS
#        dotnet run -- MakeNativePackage

#    - uses: actions/upload-artifact@v1
#      with:
#        name: NativePackage-iOS
#        path: ./build/NativePackage

  #==============================================================================
  # Package-Windows:
  #   needs: [Build-Native-MSVC2019-x64-MT, Build-Native-Web, Build-Native-Android]
  #   runs-on: windows-2019
    
  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1
      
  #   - name: Setup .NET Core
  #     uses: actions/setup-dotnet@v1
  #     with:
  #       dotnet-version: 2.2.108
        
  #   - uses: actions/download-artifact@v1
  #     with:
  #       name: NativePackage-MSVC2019-x64-MT
  #       path: ./build/NativePackage
    
  #   - name: Build
  #     run: dotnet run -- MakeInstaller_Win32

  #   - uses: actions/upload-artifact@v1
  #     with:
  #       name: Lumino-latest-Windows.msi
  #       path: ./build/Lumino-latest-Windows.msi

  #   - uses: actions/upload-artifact@v1
  #     with:
  #       name: Lumino-latest-Windows.zip
  #       path: ./build/Lumino-latest-Windows

  #==============================================================================
#   Package-macOS:
# #    needs: [Build-Native-macOS, Build-Native-iOS]
#     needs: [Build-Native-macOS]
#     runs-on: macos-11.0
    
#     steps:
#     - name: Checkout
#       uses: actions/checkout@v1
      
#     - name: Setup .NET Core
#       uses: actions/setup-dotnet@v1
#       with:
#         dotnet-version: 2.2.108
        
#     - uses: actions/download-artifact@v1
#       with:
#         name: NativePackage-macOS
#         path: ./build/NativePackage
    
# #    - uses: actions/download-artifact@v1
# #      with:
# #        name: NativePackage-iOS
# #        path: ./build/NativePackage

#     - name: Build
#       run: dotnet run -- MakePackage_macOS

#     - uses: actions/upload-artifact@v1
#       with:
#         name: Lumino-latest-macOS.zip
#         path: ./build/Lumino-latest-macOS

  #==============================================================================
  Package-Ruby:
    needs: Build-x64-windows-static
    runs-on: windows-2019

    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Set up Ruby
      uses: actions/setup-ruby@v1
      with:
        ruby-version: 2.6.x
        architecture: 'x64'

    - uses: actions/download-artifact@v1
      with:
        name: NativePackage-x64-windows-static
        path: ./build/NativePackage

    - name: Build and test with Rake
      run: |
        gem install bundler
        dotnet run -- MakePackage_Ruby

    - uses: actions/upload-artifact@v1
      with:
        name: Lumino-latest-Ruby
        path: ./tools/Bindings/Ruby/GemProject/pkg

  #==============================================================================
  # Package-HSP3:
  #   needs: Build-Native-MSVC2019-x86-MT
  #   runs-on: windows-2019

  #   steps:
  #   - name: Checkout
  #     uses: actions/checkout@v1

  #   - uses: actions/download-artifact@v1
  #     with:
  #       name: NativePackage-MSVC2019-x86-MT
  #       path: ./build/NativePackage

  #   - name: Build and test with Rake
  #     run: |
  #       dotnet run -- MakePackage_HSP3

  #   - uses: actions/upload-artifact@v1
  #     with:
  #       name: Lumino-latest-HSP3
  #       path: ./tools/Bindings/HSP3/_package/LuminoHSP3-latest


================================================
FILE: .gitignore
================================================
build/
build_*/
build/Lumino-*/
lib/
build.sln
ReleasePackage-*/
.vscode
.ln
tmp/
lumino.exe
vcpkg/


## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk 
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output 
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser


================================================
FILE: .gitmodules
================================================
[submodule "vcpkg"]
	path = vcpkg
	url = https://github.com/microsoft/vcpkg.git


================================================
FILE: .textlintrc
================================================
{
    "rules": {
        "preset-ja-technical-writing": true,
        "textlint-rule-spellcheck-tech-word": true,
        "spellcheck-tech-word": true,
        "preset-ja-technical-writing": true
    }
}

================================================
FILE: CMakeLists.txt
================================================

cmake_minimum_required(VERSION 3.16.0)
project(Lumino)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
enable_testing()

if(ANDROID_ABI)
    set(LN_ANDROID ON)
endif()

# Determine if fmt is built as a subproject (using add_subdirectory) or if it is the master project.
if(NOT DEFINED LUMINO_MASTER_PROJECT)
    set(LUMINO_MASTER_PROJECT OFF)

    if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
        set(LUMINO_MASTER_PROJECT ON)
        message(STATUS "CMake version: ${CMAKE_VERSION}")
    endif()
endif()

# -------------------------------------------------------------------------------
# Options
# -------------------------------------------------------------------------------
option(LN_TARGET_ARCH "arch." "Unknown")

option(LN_BUILD_TESTS "build unit test projects." ON)

option(LUMINO_BUILD_EXAMPLES "build example projects." ON)

# build tool projects
# option(LN_BUILD_TOOLS "build tool projects." ON)

# build language bindings projects
option(LN_BUILD_BINDINGS "build language bindings." OFF)

# build editor projects
option(LN_BUILD_EDITOR "build editor projects." OFF)

# build shared library
option(LN_BUILD_SHARED_LIBRARY "build shared library." OFF)

# build LuminoCore.
option(LUMINO_BUILD_CORE "build LuminoCore." ON)

# build LuminoEngine.
option(LUMINO_BUILD_ENGINE "build LuminoEngine." ON)

# build embedded shader transcompiler.
option(LN_BUILD_EMBEDDED_SHADER_TRANSCOMPILER "build tool projects.build embedded shader transcompiler." ON)

# MSVC Runtime library.
option(LN_MSVC_STATIC_RUNTIME "static runtime (/MT, /MTd) or DLL runtime (/MD, /MDd) or to link either." OFF)

# use SDL on MSVC
option(LN_MSVC_USE_SDL "use SDL on MSVC" OFF)

# Vulkan
option(LN_USE_VULKAN "Vulkan" ON)

option(LUMINO_USE_WEBGPU "WebGPU" OFF)

# OpenGL
option(LN_USE_OPENGL "OpenGL" ON)

# FBX
option(LN_FBX_SDK_PATH "FBX" "")

# Effekseer
option(LN_USE_Effekseer "Effekseer" OFF)

# HSP
option(LN_BUILD_BINDING_HSP "HSP Binding" "")

option(LN_EXTERNAL2 "" OFF)

set(LN_VCPKG_INSTALLED_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")

option(LUMINO_INSTALL "Generate the install target." ${LUMINO_MASTER_PROJECT})

# -------------------------------------------------------------------------------
# Configuration
# -------------------------------------------------------------------------------
include(GNUInstallDirs)
set(LN_EXPORT_DESTINATION_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/lumino")

set(CMAKE_DEBUG_POSTFIX "d")

# ビルド時にリポジトリ全体に共通設定を伝播させるため、ここで、 include が必要。
include(lumino/LuminoCore/cmake/LuminoConfig-Common.cmake)

if(LN_MSVC_STATIC_RUNTIME)
    ln_use_msvc_static_runtime_library()
endif()

set(LUMINO_REPO_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}")
add_definitions(-DLUMINO_REPO_ROOT_DIR="${LUMINO_REPO_ROOT_DIR}")
set(LUMINO_INCLUDE_DIRECTORIES
    "${LUMINO_REPO_ROOT_DIR}/src/Core/include"
    "${LUMINO_REPO_ROOT_DIR}/src/Engine/include"
    "${LUMINO_REPO_ROOT_DIR}/src/Editor/Core")

if(LN_FBX_SDK_PATH)
    message("LN_FBX_SDK_PATH: ${LN_FBX_SDK_PATH}")
    set(LN_USE_FBX_IMPORTER ON)
endif()

if(DEFINED EMSCRIPTEN)
    include_directories("${EMSCRIPTEN_ROOT_PATH}/system/lib/libcxxabi/include")
    set(CMAKE_EXECUTABLE_SUFFIX .html)
    set(LN_EMSCRIPTEN ON)
    add_definitions(-DLN_GRAPHICS_OPENGLES)
    add_definitions(-DLN_GLFW)

    # add_definitions(-DGLFW_INCLUDE_ES2) # glfw3.h 内で include するヘッダを制御する
    set(LN_USE_SDL ON)
    set(LN_USE_VULKAN OFF)
    set(LN_BUILD_EMBEDDED_SHADER_TRANSCOMPILER OFF)

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")

    # set_target_properties(LuminoEngine PROPERTIES COMPILE_FLAGS "-pthread")
    if(LUMINO_BUILD_EXAMPLES)
        set(LN_LUMINO_CLI_TOOL "${CMAKE_CURRENT_LIST_DIR}/build/buildtrees/x64-windows-static/lumino/src/Editor/CLI/Debug/lumino.exe")

        if(NOT EXISTS ${LN_LUMINO_CLI_TOOL})
            message(FATAL_ERROR "Not found: ${LN_LUMINO_CLI_TOOL}")
        endif()
    endif()

elseif(LN_ANDROID)
    add_definitions(-DLN_GRAPHICS_OPENGLES)

elseif(APPLE AND DEFINED PLATFORM) # PLATFORM is ios-cmake variable.
    set(LN_IOS ON)
    set(LN_USE_OPENAL ON)
    add_definitions(-DLN_GRAPHICS_OPENGLES)
    set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "10.0" CACHE string "iOS Deployment Target")

elseif(WIN32 OR APPLE OR UNIX)
    add_definitions(-DLN_GLFW)
    set(GLFW_INSTALL ON CACHE BOOL "" FORCE)
    set(LN_OS_DESKTOP ON)
    set(LN_USE_OPENAL ON)
endif()

if(MSVC)
    if(LN_MSVC_USE_SDL)
        set(LN_USE_SDL ON)
    else()
        set(LN_USE_SDL OFF)
    endif()

    add_definitions("/MP")

    # TODO: lib 分割したい
    add_definitions("/bigobj")
endif()

if(WIN32)
    add_definitions(-DNOMINMAX)
endif()


if(LUMINO_BUILD_ENGINE)
    set(LUMINO_BUILD_CORE ON)
endif()

# -------------------------------------------------------------------------------
# Externals
# -------------------------------------------------------------------------------
if(LN_OS_DESKTOP)
    find_package(GTest CONFIG REQUIRED)
endif()

# ------------------------------------------------------------------------------
# gtest
set(LN_INCLUDES_gtest
    "${CMAKE_CURRENT_LIST_DIR}/build/ExternalSource/googletest/googletest/include"
    "${CMAKE_CURRENT_LIST_DIR}/build/ExternalSource/googletest/googletest"
    "${CMAKE_CURRENT_LIST_DIR}/build/ExternalSource/googletest/googletest/src")

set(LN_SOURCES_gtest
    "${CMAKE_CURRENT_LIST_DIR}/build/ExternalSource/googletest/googletest/src/gtest-all.cc")

set(LN_GLTF_SAMPLE_MODELS_DIR "${CMAKE_CURRENT_LIST_DIR}/build/ExternalSource/glTF-Sample-Models/")

# ------------------------------------------------------------------------------
if(LUMINO_BUILD_CORE)
    add_subdirectory(lumino/LuminoCore)
endif()

if(LUMINO_USE_WEBGPU)
    add_subdirectory(external/wgpu-native-for-windows/webgpu)
endif()

if(LUMINO_BUILD_ENGINE)
    if(LN_EMSCRIPTEN)
        add_subdirectory(lumino/Runtime)
        add_subdirectory(lumino/Platform)
        add_subdirectory(lumino/Graphics)
        add_subdirectory(lumino/LuminoEngine)
        add_subdirectory(examples/Example-WebLibrary)
    else()
        set(LN_EXTERNAL_FIND_PATH_MODE "build")
        include(external/ImportExternalLibraries.cmake)
        add_subdirectory(lumino/Runtime)
        add_subdirectory(lumino/Platform)
        add_subdirectory(lumino/GraphicsRHI)
        add_subdirectory(lumino/Graphics)
        add_subdirectory(lumino/LuminoEngine)
        add_subdirectory(lumino/FFI)
        set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT LuminoEngine-sandbox)

        if(LUMINO_BUILD_EXAMPLES)
            # add_subdirectory(examples)
        endif()

        if(LN_BUILD_BINDINGS)
            add_subdirectory(src/Transcoder)
        endif()

        if(LN_BUILD_EDITOR)
            add_subdirectory(src/Editor)
        endif()

        if(${LN_TARGET_ARCH} STREQUAL "MSVC2019-x86-MT")
            add_subdirectory(tools/Bindings/HSP3)
        endif()
    endif()
endif()

# -------------------------------------------------------------------------------
# Installation
# -------------------------------------------------------------------------------
# ちょっと複雑になってるので注意。
# このようにした動機は、
# - find_package(Lumino CONFIG REQUIRED) したときに、fmt など外部ライブラリもまとめて find_package したいためである。
# find_package(Lumino CONFIG REQUIRED) では、まず LuminoConfig.cmake を読みに行こうとする。
# 当初はこのファイルは install(EXPORT) コマンドで cmake に自動生成させていたのだが、
# この場合、生成コードをカスタマイズすることができない。
# そのため install(EXPORT) では LuminoTargets.cmake(及び、LuminoTargets-debug.cmake など) を生成させて、
# 自分で作った LuminoConfig.cmake からそれらを include することにしている。
if(LUMINO_INSTALL)
    # configure_package_config_file によって Configure 実行時に、
    # LuminoConfig.cmake を ${CMAKE_CURRENT_BINARY_DIR} へ生成する。
    include(CMakePackageConfigHelpers)
    configure_package_config_file(
        "cmake/LuminoConfig.cmake.in"
        "LuminoConfig.cmake"
        INSTALL_DESTINATION ${LN_EXPORT_DESTINATION_DIR}
    )

    install(
        EXPORT LuminoExport
        NAMESPACE lumino::
        DESTINATION ${LN_EXPORT_DESTINATION_DIR}
        FILE LuminoTargets.cmake
        EXPORT_LINK_INTERFACE_LIBRARIES
    )

    install(
        FILES "${CMAKE_CURRENT_BINARY_DIR}/LuminoConfig.cmake"
        DESTINATION ${LN_EXPORT_DESTINATION_DIR}
    )
endif()


================================================
FILE: ImportLumino.cmake
================================================

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/build/tools/vcpkg/installed/x64-windows-static")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/build/installed/x64-windows-static")
find_package(Lumino REQUIRED)



================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2017-2019 lriki

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
Lumino
==========

Lumino is an open source library for building interactive applications such as games and digital art.
It provides a simple API that runs on multiple platforms and is available for multiple programming languages.

Lumino はゲームやデジタルアートなどのインタラクティブアプリケーションを構築するためのオープンソースライブラリです。
マルチプラットフォームで動作し複数のプログラミング言語から利用できる、シンプルな API を提供します。

Build and Unit Tests
----------

[![Package](https://github.com/LuminoEngine/Lumino/workflows/Package/badge.svg)](https://github.com/LuminoEngine/Lumino/actions)

Quick-start
----------

とりあえず使ってみたい方へ。(CMake)

1. .NET SDK をインストールする。
2. このリポジトリをクローンする。
3. 次のコマンドで Lumino をビルドする。
    ```
    dotnet run -- BuildEngine
    ```
4. CMakeLists.txt で `ImportLumino.cmake` を include し、 LuminoEngine がリンクする。
    ```cmake
    cmake_minimum_required(VERSION 3.15)
    project(TestProject)
    include(ImportLumino.cmake)    # Path to repository root.

    add_executable(${PROJECT_NAME} Main.cpp)
    target_link_libraries(${PROJECT_NAME} PRIVATE LuminoEngine)
    ```

実際の例: `tools/TestProjects/CMake`

Get started (⚠️少し情報が古いです)
----------

🌏 [Website](https://luminoengine.github.io/) 

🛠 [How to build](docs/HowToBuild.md)

[Roadmap](docs/Roadmap.md)

[Contributing](.github/CONTRIBUTING.md)

🛡️ [API design policy](docs/APIDesignPolicy.md)

[Blog](http://luminolog.hatenablog.com/)


開発状況と目標
----------

Lumino はまだまだ開発途中であり、一般にリリースできる段階にはありません。しかし全体的なアーキテクチャは、いくつかの高度な視覚表現を実装した [ゲーム](https://www.youtube.com/watch?v=S1c5A8C3OGM&feature=youtu.be) を安定してリリースできるレベルまでまとまってきました。 Lumino の開発中のバージョンは [Website](https://luminoengine.github.io/) から試すことができます。

直近では、簡単に使い始められるようにするため、またどんな機能があるか分かりやすくするため、以下の目標で開発を進めています。

- ドキュメント (チュートリアルやサンプル) を充実させる。
- 開発中ゲームからのフィードバックを反映する。
- 主要なプラットフォームに対応する。 (現在は Linux 版が手つかず)

一方、これまではプログラマではなくてもゲームを開発できるような汎用ゲームエンジンを目指していましたが、その目標を見直しています。
まだ明確ではありませんが、学習や研究開発、簡易的なデータビジュアライゼーション、小規模なゲーム・アート作品等、ちいさなものをコードファーストで素早く開発できる、プログラマ向けのライブラリセットを目指そうとしています。直近では次のような計画があります。

- ランタイムで様々なアセットを動的生成する機能
- 動画再生
- 各種通信対応 (HTTP, TCP/UDP, UART)
- 各種デバイス対応 (マルチタッチ, ペンタブ, カメラ, AR/VR)

コミュニティ
----------

TODO

Screenshots
--------
参考のため、開発の中で撮れた画像を置いておきます。

#### Scene rendering

![](docs/Gallery/33-scene.jfif)

![](docs/Gallery/32-scene.png)

#### VRM + BVH

![](docs/Gallery/31-vmr.gif)

#### Soft Shadow

![](docs/Gallery/30-softshadow.gif)

#### Depth of field

![](docs/Gallery/29-posteffect.gif)

### Character Controller

![](docs/Gallery/28-moving.gif)

### Mirror

![](docs/Gallery/27-mirror.gif)

### Screen Space Reflection

![](docs/Gallery/26-ssr.gif)

### Sky

![](docs/Gallery/25-sky.gif)

### Particle Rain

![](docs/Gallery/24-patricle.gif)

### Transition Effect

![](docs/Gallery/23-transition.gif)

### 3D Tilemap

![](docs/Gallery/22-3d-tilemap.gif)

### Post Effect (ToneChange, Bloom)

![](docs/Gallery/21-posteffect.png)

### 3D Text and Emoji

![](docs/Gallery/20-3d-text-and-emoji.png)

### Fantastic Ocean

![](docs/Gallery/18-ocean.gif)

![](docs/Gallery/19-ocean.gif)

### Voxel Map

![](docs/Gallery/17-3d-voxelmap.gif)

### Web Platform

![](docs/Gallery/16-web.gif)

### Effekseer

![](docs/Gallery/15-effekseer.png)

### 2D Action
![](docs/Gallery/14-2d-action.png)

### Tilemap Editor

![](docs/Gallery/13-tilemap-editor.png)

### Materials

![](docs/Gallery/12-materials.png)

### Fog

![](docs/Gallery/11-fog.jpg)

### Tilemap

![](docs/Gallery/10-tilemap.png)

### SoftBody

![](docs/Gallery/9-softbody.png)

### 3D Sprites

![](docs/Gallery/8-3d-sprites.png)

### Morphing

![](docs/Gallery/7-morphing.png)

### MMD Model

![](docs/Gallery/6-mmd.png)

### Multi Lights

![](docs/Gallery/5-multi-light.png)

### Atmosphere

![](docs/Gallery/4-atmosphere.jpg)

### Mirror

![](docs/Gallery/3-mirror.jpg)

### 3D Sprite Character

![](docs/Gallery/2-sprite-character.png)

### Pixel Shader

![](docs/Gallery/1-pixel-shader.png)




================================================
FILE: assets/Distributable/assets/LineWave.fx
================================================

struct VS_INPUT
{
    float4 Pos : POSITION;
    float4 TexUV : TEXCOORD;
};
 
struct VS_OUTPUT
{
    float4 Pos : SV_POSITION;
    float4 TexUV : TEXCOORD;
};
 
VS_OUTPUT vsMain(VS_INPUT input)
{
    VS_OUTPUT output = (VS_OUTPUT)0;
    output.Pos = input.Pos;
    output.TexUV = input.TexUV;
    return output;
}

struct PS_INPUT
{
    float4 TexUV : TEXCOORD;
};


cbuffer ConstBuff
{
    float time;
};

float4 psMain(PS_INPUT input) : SV_TARGET
{
    float2 st = input.TexUV;
    st -= 0.5;
	float3 color = float3(0.0, 0.0, 0.0);
    float c = 0.0;
    for (float i = 0; i < 12; i++) {

		st.x += sin(st.y * 4.0 + time * 2.0 + c * 40.0) * 0.2 * cos(time + (c + 2.0) * 300.0);
		color += (1.0 - float3(pow(abs(st.x), 0.03)));
        c += 1.0;
	}

	color = float3(color.r * 0.2, color.g * 1.0, color.b * 1.5);
	return float4(color, 1.0);
}

technique MainTech
{
    pass Pass0
    {
        VertexShader = vsMain;
        PixelShader = psMain;
    }
}


================================================
FILE: bootstrap.bat
================================================
@echo off
dotnet run -- Bootstrap


================================================
FILE: build.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    
    <!-- disable auto blob https://docs.microsoft.com/ja-jp/dotnet/core/tools/csproj -->
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
    <EnableDefaultItems>false</EnableDefaultItems>
    
    <!-- obj path -->
    <IntermediateOutputPath>build/LuminoBuild/obj/$(Configuration)</IntermediateOutputPath>
    <BaseIntermediateOutputPath>build/LuminoBuild/obj</BaseIntermediateOutputPath>
    
    <!-- bin path -->
    <OutputPath>build/LuminoBuild/bin/$(Configuration)/</OutputPath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
  </PropertyGroup>
  
  <ItemGroup>
    <Compile Include="tools/LuminoBuild/Main.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\BuildSystem.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\BuildTask.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\Logger.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\TaskManager.cs" />
    <Compile Include="tools/LuminoBuild/BuildEnvironment.cs" />
    <Compile Include="tools/LuminoBuild/EmscriptenBuildEnv.cs" />
    <Compile Include="tools/LuminoBuild/AndroidBuildEnv.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/SetupTools.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildDocuments.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildEmbeddedResources.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildEngine_Linux.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildEngine_macOS.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildEngine_iOS.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakeNuGetPackage_Core.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildEngine_Android.cs" />
    <Compile Include="tools\LuminoBuild\Tasks\Bootstrap.cs" />
    <Compile Include="tools\LuminoBuild\Tasks\BuildEngine.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildExternalProjects.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildLLVM.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildRuntime.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakeNativePackage.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakeInstaller_Win32.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/CompressPackage.cs" />
    <Compile Include="tools/LuminoBuild/Rules/BuildPackage.cs" />
    <Compile Include="tools/LuminoBuild/Rules/BuildLocalPackage.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakePackage_HSP3.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakePackage_macOS.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/MakePackage_Ruby.cs" />
    <Compile Include="tools/LuminoBuild/Env/EmscriptenEnv.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\Proc.cs" />
    <Compile Include="tools/LuminoBuild/Tasks/BuildExternals.cs" />
    <Compile Include="tools\LuminoBuild\BuildSystem\Utils.cs" />
  </ItemGroup>
  
  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.8.0" />
  </ItemGroup>
  
</Project>


================================================
FILE: cmake/LuminoConfig.cmake.in
================================================
@PACKAGE_INIT@

# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/LuminoConfig-*.cmake")
foreach(f ${CONFIG_FILES})
    include(${f})
endforeach()

include("${CMAKE_CURRENT_LIST_DIR}/LuminoTargets.cmake")

#-------------------------------------------------------------------------------
# Combination target
#-------------------------------------------------------------------------------
add_library(lumino::Lumino INTERFACE IMPORTED)
target_link_libraries(lumino::Lumino INTERFACE lumino::LuminoEngine lumino::LuminoCore)



================================================
FILE: docs/APIDesignPolicy.md
================================================
API design policy
==========

Lumino (特に Core モジュール) は現在、フォーマルなプロジェクトで使用するため積極的にリファクタリングを行っています。

ここではリファクタリング作業のガイドラインや、今後の API 設計のベースとなる方針に付いて説明します。


サイズ・長さの型
----------

符号付きの整数を使用します。

Array::length() や String::length() などが該当します。

### 理由

符号付き整数と符号なし整数との意図しない演算が発生することが非常に多いためです。
C++ に不慣れなプログラマーには、次のコードの問題を見つけることは困難です。
コンパイラによっては警告を出力することもありません。

```cpp
for (int i = 0; i < container.size() - 1; ++i) {
    if (container[i] == container[i + 1]) return true;
}
```

https://google.github.io/styleguide/cppguide.html#Integer_Types
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1227r1.html






================================================
FILE: docs/CodingGuideline.md
================================================
Coding guideline
==========

実装コードについては特に規則は設けません。 [周囲のコードと一貫性を持たせるようにします。](https://google.github.io/styleguide/cppguide.html#Parting_Words)

公開 API についてはいくつか守らなければならないことがあります。特に複数プログラミング言語に対応するためのバインドコードの生成のためにいくつか特殊なマクロコードでコードをマークすることがあります。

目標
----------

### 簡潔さより明確さを重視する

少ない文字数でコードを書けるようにすることが目標ではありません。

Lumino の簡潔さは、コードの書き手ではなく読み手にとっての明確さです。


公開 API のルール
----------

### 関数

副作用の有無と計算量によって名前をつけます。

* 副作用があったり、計算が定数オーダーとならないものは動詞句とします。例:`sort()`, `find()`
* それ以外の、副作用がなく、定数オーダーとなるものは名詞句とします。例:`length()`, `front()`

### 仮想関数

- エンジン内部から特定のタイミングを通知するために仮想関数を公開することができます。
- 関数名は `on` で始めます。例:`onUpdate`, `onRender`

> ライトウェイトなゲームエンジンやクリエイティブ向けのフレームワークでは `on` をつけないことが多いです。
> しかし Lumino では「エンジン内部から呼び出される特殊な関数」であることを明確に示すため、命名規則を設けます。
> これは関数定義の周辺に仮想関数であることを示すキーワードを省略可能(あるいは存在しない)である言語や、FlatC-API で通常関数と区別するために重要になります。
> 逆に言うと、このようなケース以外で仮想関数は公開しません。
> (NOTE: 多くの場合、仮想関数よりもコールバック関数を登録する方が拡張性・再利用性の点で有利です)



================================================
FILE: docs/Development-Emscripten.md
================================================
Development on Emscripte
==========

Debug build
----------

Default is a `Release` build. Debug information such as stack traces cannot be displayed correctly.

Specify the `--debug` option to generate debug information.

```
dotnet run -- BuildEngine wasm32-emscripten --debug
```

Browser cache and force reload
----------

Files are cached by the browser and changes to local asset files may not be reflected.

If you are using Chrome, the following procedure is recommended for reloading.

1. Press and hold the reload button.
2. [Delete cache and Hard reload]




================================================
FILE: docs/DevelopmentTips.md
================================================
Development Tips
==========

macOS
----------

```
brew install git-lfs
git lfs install

dotnet run -- BuildExternalProjects macOS
dotnet run -- BuildEngine_macOS
dotnet run -- MakeNativePackage
```

iOS
----------

```
dotnet run -- BuildExternalProjects iOS-OS64
dotnet run -- BuildExternalProjects iOS-SIMULATOR64
dotnet run -- BuildEngine_iOS
dotnet run -- MakeNativePackage
```


Android
----------

```
dotnet run -- BuildExternalProjects Android-x86_64
dotnet run -- BuildExternalProjects Android-x86
dotnet run -- BuildExternalProjects Android-arm64-v8a
dotnet run -- BuildExternalProjects Android-armeabi-v7a
dotnet run -- BuildEngine_Android
dotnet run -- MakeNativePackage
```


Web
----------

```
dotnet run -- BuildExternalProjects Emscripten
dotnet run -- BuildEngine_Emscripten
dotnet run -- MakeNativePackage
```

```
cp build/Emscripten/EngineInstall/lib/libLuminoEngine.a build/NativePackage/Engine/Emscripten/lib/libLuminoEngine.a
or
cp build/Emscripten/src/LuminoCore/libLuminoCore.a build/Emscripten/emsdk/upstream/emscripten/system/local/LuminoEngine/lib/libLuminoCore.a
cp build/Emscripten/src/LuminoEngine/libLuminoEngine.a build/Emscripten/emsdk/upstream/emscripten/system/local/LuminoEngine/lib/libLuminoEngine.a
```

```
python -m http.server 8000
```

----------


```
dotnet run -- BuildExternalProjects MSVC2019-x64-MT
dotnet run -- BuildEngine_MSVC MSVC2019-x64-MT
dotnet run -- MakeNativePackage
dotnet run -- MakeInstaller_Win32
```


### 起動できない場合…

Conosle:

```
(index):1 wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
```
↓こんなかんじの MIME type つけてあげる。ブラウザは Shift+F5 でリロード。
```
# -*- coding: utf-8 -*-
#test on python 3.4 ,python of lower version  has different module organization.
import http.server
from http.server import HTTPServer, BaseHTTPRequestHandler
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler
Handler.extensions_map={
    '.wasm': 'application/wasm',
    '.manifest': 'text/cache-manifest',
    '.html': 'text/html',
    '.png': 'image/png',
    '.jpg': 'image/jpg',
    '.svg':	'image/svg+xml',
    '.css':	'text/css',
    '.js': 'application/x-javascript',
    '': 'application/octet-stream', # Default
}
httpd = socketserver.TCPServer(("", PORT), Handler)

print("serving at port", PORT)
httpd.serve_forever()
```


```
(index):1 Cannot enlarge memory arrays to size 17014784 bytes (OOM). Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value 16777216, (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 
```
↓



Windows
----------

```
dotnet run -- MakeVSProjects
```

macOS
----------
AppData は ~/.config/Lumino/

textlint
----------

VSCode に拡張機能をインストールする。コマンドパレット から、

```
ext install vscode-textlint
```

textlint をインストールする (-g は必須) 。ターミナルから、

```
npm i -g textlint textlint-rule-preset-ja-technical-writing textlint-rule-max-ten textlint-rule-spellcheck-tech-word textlint-rule-no-mix-dearu-desumasu
```

.textlintrc ファイルを作る。(リポジトリルートに置いてあります)

### ルールについて
* textlint-rule-preset-ja-technical-writing
    * 日本語の技術文書用のルール
* textlint-rule-max-ten
    * 一文に利用できる、の数をチェックするルール
* textlint-rule-spellcheck-tech-word
    * [azu/technical-word-rules](https://github.com/azu/technical-word-rules) の辞書で単語チェック
* textlint-rule-no-mix-dearu-desumasu
    * 「ですます」調と「である」調の混在をチェックするルール


PlantUML
----------

```
choco install -y openjdk
choco install -y graphviz
```

```
ext install plantuml
shd101wyy.markdown-preview-enhanced
```

プレビューは Alt+D.


開発中のパッケージを使う
----------

### Windows


```
set LUMINO_PATH=<path to LocalPackage>
set PATH=%LUMINO_PATH%\Tools;%PATH%
```
LUMINO_PATH



================================================
FILE: docs/Doxygen/.gitignore
================================================
html/
xml/


================================================
FILE: docs/Doxygen/Doxyfile
================================================
# Doxyfile 1.8.13

# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
#
# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
# TAG = value [value, ...]
# For lists, items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (\" \").

#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------

# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
# for the list of possible encodings.
# The default value is: UTF-8.

DOXYFILE_ENCODING      = UTF-8

# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
# double-quotes, unless you are using Doxywizard) that should identify the
# project for which the documentation is generated. This name is used in the
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME           = Lumino

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER         = 

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF          = 

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.

PROJECT_LOGO           = C:/Proj/LN/Lumino/docs/Assets/icon64.png

# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.

OUTPUT_DIRECTORY       = .

# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
# will distribute the generated files over these directories. Enabling this
# option can be useful when feeding doxygen a huge amount of source files, where
# putting all generated files in the same directory would otherwise causes
# performance problems for the file system.
# The default value is: NO.

CREATE_SUBDIRS         = NO

# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
# characters to appear in the names of generated files. If set to NO, non-ASCII
# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
# U+3044.
# The default value is: NO.

ALLOW_UNICODE_NAMES    = NO

# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
# Ukrainian and Vietnamese.
# The default value is: English.

OUTPUT_LANGUAGE        = Japanese-en

# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.

BRIEF_MEMBER_DESC      = YES

# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
# description of a member or function before the detailed description
#
# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
# The default value is: YES.

REPEAT_BRIEF           = YES

# This tag implements a quasi-intelligent brief description abbreviator that is
# used to form the text in various listings. Each string in this list, if found
# as the leading text of the brief description, will be stripped from the text
# and the result, after processing the whole list, is used as the annotated
# text. Otherwise, the brief description is used as-is. If left blank, the
# following values are used ($name is automatically replaced with the name of
# the entity):The $name class, The $name widget, The $name file, is, provides,
# specifies, contains, represents, a, an and the.

ABBREVIATE_BRIEF       = "The $name class" \
                         "The $name widget" \
                         "The $name file" \
                         is \
                         provides \
                         specifies \
                         contains \
                         represents \
                         a \
                         an \
                         the

# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# doxygen will generate a detailed section even if there is only a brief
# description.
# The default value is: NO.

ALWAYS_DETAILED_SEC    = NO

# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
# The default value is: NO.

INLINE_INHERITED_MEMB  = NO

# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the
# shortest path that makes the file name unique will be used
# The default value is: YES.

FULL_PATH_NAMES        = YES

# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
# Stripping is only done if one of the specified strings matches the left-hand
# part of the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the path to
# strip.
#
# Note that you can specify absolute paths here, but also relative paths, which
# will be relative from the directory where doxygen is started.
# This tag requires that the tag FULL_PATH_NAMES is set to YES.

STRIP_FROM_PATH        = 

# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
# path mentioned in the documentation of a class, which tells the reader which
# header file to include in order to use a class. If left blank only the name of
# the header file containing the class definition is used. Otherwise one should
# specify the list of include paths that are normally passed to the compiler
# using the -I flag.

STRIP_FROM_INC_PATH    = 

# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
# less readable) file names. This can be useful is your file systems doesn't
# support long names like on DOS, Mac, or CD-ROM.
# The default value is: NO.

SHORT_NAMES            = NO

# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
# first line (until the first dot) of a Javadoc-style comment as the brief
# description. If set to NO, the Javadoc-style will behave just like regular Qt-
# style comments (thus requiring an explicit @brief command for a brief
# description.)
# The default value is: NO.

JAVADOC_AUTOBRIEF      = YES

# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
# requiring an explicit \brief command for a brief description.)
# The default value is: NO.

QT_AUTOBRIEF           = NO

# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
# a brief description. This used to be the default behavior. The new default is
# to treat a multi-line C++ comment block as a detailed description. Set this
# tag to YES if you prefer the old behavior instead.
#
# Note that setting this tag to YES also means that rational rose comments are
# not recognized any more.
# The default value is: NO.

MULTILINE_CPP_IS_BRIEF = NO

# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.

INHERIT_DOCS           = YES

# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
# page for each member. If set to NO, the documentation of a member will be part
# of the file/class/namespace that contains it.
# The default value is: NO.

SEPARATE_MEMBER_PAGES  = NO

# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
# uses this value to replace tabs by spaces in code fragments.
# Minimum value: 1, maximum value: 16, default value: 4.

TAB_SIZE               = 4

# This tag can be used to specify a number of aliases that act as commands in
# the documentation. An alias has the form:
# name=value
# For example adding
# "sideeffect=@par Side Effects:\n"
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines.

ALIASES                = 

# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.

TCL_SUBST              = 

# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
# members will be omitted, etc.
# The default value is: NO.

OPTIMIZE_OUTPUT_FOR_C  = NO

# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
# Python sources only. Doxygen will then generate output that is more tailored
# for that language. For instance, namespaces will be presented as packages,
# qualified scopes will look different, etc.
# The default value is: NO.

OPTIMIZE_OUTPUT_JAVA   = NO

# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
# sources. Doxygen will then generate output that is tailored for Fortran.
# The default value is: NO.

OPTIMIZE_FOR_FORTRAN   = NO

# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
# sources. Doxygen will then generate output that is tailored for VHDL.
# The default value is: NO.

OPTIMIZE_OUTPUT_VHDL   = NO

# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.

EXTENSION_MAPPING      = 

# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
# The default value is: YES.

MARKDOWN_SUPPORT       = YES

# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 0.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.

TOC_INCLUDE_HEADINGS   = 0

# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
# globally by setting AUTOLINK_SUPPORT to NO.
# The default value is: YES.

AUTOLINK_SUPPORT       = YES

# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should set this
# tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string);
# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
# The default value is: NO.

BUILTIN_STL_SUPPORT    = NO

# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
# The default value is: NO.

CPP_CLI_SUPPORT        = NO

# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.

SIP_SUPPORT            = NO

# For Microsoft's IDL there are propget and propput attributes to indicate
# getter and setter methods for a property. Setting this option to YES will make
# doxygen to replace the get and set methods by a property in the documentation.
# This will only work if the methods are indeed getting or setting a simple
# type. If this is not the case, or you want to show the methods anyway, you
# should set this option to NO.
# The default value is: YES.

IDL_PROPERTY_SUPPORT   = YES

# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
# The default value is: NO.

DISTRIBUTE_GROUP_DOC   = NO

# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
# is disabled and one has to add nested compounds explicitly via \ingroup.
# The default value is: NO.

GROUP_NESTED_COMPOUNDS = NO

# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
# type (e.g. under the Public Functions section). Set it to NO to prevent
# subgrouping. Alternatively, this can be done per class using the
# \nosubgrouping command.
# The default value is: YES.

SUBGROUPING            = YES

# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
# are shown inside the group in which they are included (e.g. using \ingroup)
# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
# and RTF).
#
# Note that this feature does not work in combination with
# SEPARATE_MEMBER_PAGES.
# The default value is: NO.

INLINE_GROUPED_CLASSES = NO

# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
# with only public data fields or simple typedef fields will be shown inline in
# the documentation of the scope in which they are defined (i.e. file,
# namespace, or group documentation), provided this scope is documented. If set
# to NO, structs, classes, and unions are shown on a separate page (for HTML and
# Man pages) or section (for LaTeX and RTF).
# The default value is: NO.

INLINE_SIMPLE_STRUCTS  = NO

# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
# enum is documented as struct, union, or enum with the name of the typedef. So
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
# with name TypeT. When disabled the typedef will appear as a member of a file,
# namespace, or class. And the struct will be named TypeS. This can typically be
# useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.
# The default value is: NO.

TYPEDEF_HIDES_STRUCT   = NO

# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
# cache is used to resolve symbols given their name and scope. Since this can be
# an expensive process and often the same symbol appears multiple times in the
# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
# doxygen will become slower. If the cache is too large, memory is wasted. The
# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
# symbols. At the end of a run doxygen will report the cache usage and suggest
# the optimal cache size from a speed point of view.
# Minimum value: 0, maximum value: 9, default value: 0.

LOOKUP_CACHE_SIZE      = 0

#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------

# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
# documentation are documented, even if no documentation was available. Private
# class members and static file members will be hidden unless the
# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
# Note: This will also disable the warnings about undocumented members that are
# normally produced when WARNINGS is set to YES.
# The default value is: NO.

EXTRACT_ALL            = NO

# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
# be included in the documentation.
# The default value is: NO.

EXTRACT_PRIVATE        = NO

# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.

EXTRACT_PACKAGE        = NO

# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
# included in the documentation.
# The default value is: NO.

EXTRACT_STATIC         = NO

# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
# only classes defined in header files are included. Does not have any effect
# for Java sources.
# The default value is: YES.

EXTRACT_LOCAL_CLASSES  = YES

# This flag is only useful for Objective-C code. If set to YES, local methods,
# which are defined in the implementation section but not in the interface are
# included in the documentation. If set to NO, only methods in the interface are
# included.
# The default value is: NO.

EXTRACT_LOCAL_METHODS  = NO

# If this flag is set to YES, the members of anonymous namespaces will be
# extracted and appear in the documentation as a namespace called
# 'anonymous_namespace{file}', where file will be replaced with the base name of
# the file that contains the anonymous namespace. By default anonymous namespace
# are hidden.
# The default value is: NO.

EXTRACT_ANON_NSPACES   = NO

# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
# section is generated. This option has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.

HIDE_UNDOC_MEMBERS     = YES

# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy. If set
# to NO, these classes will be included in the various overviews. This option
# has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.

HIDE_UNDOC_CLASSES     = YES

# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO, these declarations will be
# included in the documentation.
# The default value is: NO.

HIDE_FRIEND_COMPOUNDS  = NO

# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
# documentation blocks found inside the body of a function. If set to NO, these
# blocks will be appended to the function's detailed documentation block.
# The default value is: NO.

HIDE_IN_BODY_DOCS      = NO

# The INTERNAL_DOCS tag determines if documentation that is typed after a
# \internal command is included. If the tag is set to NO then the documentation
# will be excluded. Set it to YES to include the internal documentation.
# The default value is: NO.

INTERNAL_DOCS          = NO

# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
# names in lower-case letters. If set to YES, upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
# The default value is: system dependent.

CASE_SENSE_NAMES       = NO

# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
# their full class and namespace scopes in the documentation. If set to YES, the
# scope will be hidden.
# The default value is: NO.

HIDE_SCOPE_NAMES       = NO

# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
# append additional text to a page's title, such as Class Reference. If set to
# YES the compound reference will be hidden.
# The default value is: NO.

HIDE_COMPOUND_REFERENCE= NO

# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
# the files that are included by a file in the documentation of that file.
# The default value is: YES.

SHOW_INCLUDE_FILES     = YES

# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
# grouped member an include statement to the documentation, telling the reader
# which file to include in order to use the member.
# The default value is: NO.

SHOW_GROUPED_MEMB_INC  = NO

# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
# files with double quotes in the documentation rather than with sharp brackets.
# The default value is: NO.

FORCE_LOCAL_INCLUDES   = NO

# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
# documentation for inline members.
# The default value is: YES.

INLINE_INFO            = YES

# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
# (detailed) documentation of file and class members alphabetically by member
# name. If set to NO, the members will appear in declaration order.
# The default value is: YES.

SORT_MEMBER_DOCS       = YES

# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
# descriptions of file, namespace and class members alphabetically by member
# name. If set to NO, the members will appear in declaration order. Note that
# this will also influence the order of the classes in the class list.
# The default value is: NO.

SORT_BRIEF_DOCS        = NO

# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
# (brief and detailed) documentation of class members so that constructors and
# destructors are listed first. If set to NO the constructors will appear in the
# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
# member documentation.
# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
# detailed member documentation.
# The default value is: NO.

SORT_MEMBERS_CTORS_1ST = NO

# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
# of group names into alphabetical order. If set to NO the group names will
# appear in their defined order.
# The default value is: NO.

SORT_GROUP_NAMES       = NO

# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
# fully-qualified names, including namespaces. If set to NO, the class list will
# be sorted only by class name, not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the alphabetical
# list.
# The default value is: NO.

SORT_BY_SCOPE_NAME     = NO

# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
# type resolution of all parameters of a function it will reject a match between
# the prototype and the implementation of a member function even if there is
# only one candidate or it is obvious which candidate to choose by doing a
# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
# accept a match between prototype and implementation in such cases.
# The default value is: NO.

STRICT_PROTO_MATCHING  = NO

# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
# list. This list is created by putting \todo commands in the documentation.
# The default value is: YES.

GENERATE_TODOLIST      = NO

# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
# list. This list is created by putting \test commands in the documentation.
# The default value is: YES.

GENERATE_TESTLIST      = NO

# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
# list. This list is created by putting \bug commands in the documentation.
# The default value is: YES.

GENERATE_BUGLIST       = YES

# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
# the deprecated list. This list is created by putting \deprecated commands in
# the documentation.
# The default value is: YES.

GENERATE_DEPRECATEDLIST= YES

# The ENABLED_SECTIONS tag can be used to enable conditional documentation
# sections, marked by \if <section_label> ... \endif and \cond <section_label>
# ... \endcond blocks.

ENABLED_SECTIONS       = 

# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
# initial value of a variable or macro / define can have for it to appear in the
# documentation. If the initializer consists of more lines than specified here
# it will be hidden. Use a value of 0 to hide initializers completely. The
# appearance of the value of individual variables and macros / defines can be
# controlled using \showinitializer or \hideinitializer command in the
# documentation regardless of this setting.
# Minimum value: 0, maximum value: 10000, default value: 30.

MAX_INITIALIZER_LINES  = 30

# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
# the bottom of the documentation of classes and structs. If set to YES, the
# list will mention the files that were used to generate the documentation.
# The default value is: YES.

SHOW_USED_FILES        = YES

# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
# will remove the Files entry from the Quick Index and from the Folder Tree View
# (if specified).
# The default value is: YES.

SHOW_FILES             = YES

# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
# page. This will remove the Namespaces entry from the Quick Index and from the
# Folder Tree View (if specified).
# The default value is: YES.

SHOW_NAMESPACES        = YES

# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command command input-file, where command is the value of the
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
# by doxygen. Whatever the program writes to standard output is used as the file
# version. For an example see the documentation.

FILE_VERSION_FILTER    = 

# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated
# output files in an output format independent way. To create the layout file
# that represents doxygen's defaults, run doxygen with the -l option. You can
# optionally specify a file name after the option, if omitted DoxygenLayout.xml
# will be used as the name of the layout file.
#
# Note that if you run doxygen from a directory containing a file called
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty.

LAYOUT_FILE            = 

# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.

CITE_BIB_FILES         = 

#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------

# The QUIET tag can be used to turn on/off the messages that are generated to
# standard output by doxygen. If QUIET is set to YES this implies that the
# messages are off.
# The default value is: NO.

QUIET                  = NO

# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
# this implies that the warnings are on.
#
# Tip: Turn warnings on while writing the documentation.
# The default value is: YES.

WARNINGS               = YES

# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
# will automatically be disabled.
# The default value is: YES.

WARN_IF_UNDOCUMENTED   = YES

# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some parameters
# in a documented function, or documenting parameters that don't exist or using
# markup commands wrongly.
# The default value is: YES.

WARN_IF_DOC_ERROR      = YES

# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
# parameter documentation, but not about the absence of documentation.
# The default value is: NO.

WARN_NO_PARAMDOC       = NO

# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered.
# The default value is: NO.

WARN_AS_ERROR          = NO

# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
# and the warning text. Optionally the format may contain $version, which will
# be replaced by the version of the file (if it could be obtained via
# FILE_VERSION_FILTER)
# The default value is: $file:$line: $text.

WARN_FORMAT            = "$file:$line: $text"

# The WARN_LOGFILE tag can be used to specify a file to which warning and error
# messages should be written. If left blank the output is written to standard
# error (stderr).

WARN_LOGFILE           = 

#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------

# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT                  = ../../include \
                         ../../src/LuminoEngine/include

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: http://www.gnu.org/software/libiconv) for the list of
# possible encodings.
# The default value is: UTF-8.

INPUT_ENCODING         = UTF-8

# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.

FILE_PATTERNS          = *.c \
                         *.cc \
                         *.cxx \
                         *.cpp \
                         *.c++ \
                         *.java \
                         *.ii \
                         *.ixx \
                         *.ipp \
                         *.i++ \
                         *.inl \
                         *.idl \
                         *.ddl \
                         *.odl \
                         *.h \
                         *.hh \
                         *.hxx \
                         *.hpp \
                         *.h++ \
                         *.cs \
                         *.d \
                         *.php \
                         *.php4 \
                         *.php5 \
                         *.phtml \
                         *.inc \
                         *.m \
                         *.markdown \
                         *.md \
                         *.mm \
                         *.dox \
                         *.py \
                         *.f90 \
                         *.f \
                         *.for \
                         *.tcl \
                         *.vhd \
                         *.vhdl \
                         *.ucf \
                         *.qsf \
                         *.as \
                         *.js

# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.

RECURSIVE              = YES

# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
#
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE                = 

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
# The default value is: NO.

EXCLUDE_SYMLINKS       = NO

# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*

EXCLUDE_PATTERNS       = 

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*

EXCLUDE_SYMBOLS        = detail

# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
# command).

EXAMPLE_PATH           = 

# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
# *.h) to filter out the source-files in the directories. If left blank all
# files are included.

EXAMPLE_PATTERNS       = *

# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude commands
# irrespective of the value of the RECURSIVE tag.
# The default value is: NO.

EXAMPLE_RECURSIVE      = NO

# The IMAGE_PATH tag can be used to specify one or more files or directories
# that contain images that are to be included in the documentation (see the
# \image command).

IMAGE_PATH             = 

# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command:
#
# <filter> <input-file>
#
# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
# name of an input file. Doxygen will then use the output that the filter
# program writes to standard output. If FILTER_PATTERNS is specified, this tag
# will be ignored.
#
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.

INPUT_FILTER           = 

# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis. Doxygen will compare the file name with each pattern and apply the
# filter if there is a match. The filters are a list of the form: pattern=filter
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.

FILTER_PATTERNS        = 

# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will also be used to filter the input files that are used for
# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
# The default value is: NO.

FILTER_SOURCE_FILES    = NO

# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
# it is also possible to disable source filtering for a specific pattern using
# *.ext= (so without naming a filter).
# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.

FILTER_SOURCE_PATTERNS = 

# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
# is part of the input, its contents will be placed on the main page
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.

USE_MDFILE_AS_MAINPAGE = 

#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------

# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
# generated. Documented entities will be cross-referenced with these sources.
#
# Note: To get rid of all source code in the generated output, make sure that
# also VERBATIM_HEADERS is set to NO.
# The default value is: NO.

SOURCE_BROWSER         = NO

# Setting the INLINE_SOURCES tag to YES will include the body of functions,
# classes and enums directly into the documentation.
# The default value is: NO.

INLINE_SOURCES         = NO

# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
# special comment blocks from generated source code fragments. Normal C, C++ and
# Fortran comments will always remain visible.
# The default value is: YES.

STRIP_CODE_COMMENTS    = YES

# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
# function all documented functions referencing it will be listed.
# The default value is: NO.

REFERENCED_BY_RELATION = NO

# If the REFERENCES_RELATION tag is set to YES then for each documented function
# all documented entities called/used by that function will be listed.
# The default value is: NO.

REFERENCES_RELATION    = NO

# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
# to YES then the hyperlinks from functions in REFERENCES_RELATION and
# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
# link to the documentation.
# The default value is: YES.

REFERENCES_LINK_SOURCE = YES

# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
# source code will show a tooltip with additional information such as prototype,
# brief description and links to the definition and documentation. Since this
# will make the HTML file larger and loading of large files a bit slower, you
# can opt to disable this feature.
# The default value is: YES.
# This tag requires that the tag SOURCE_BROWSER is set to YES.

SOURCE_TOOLTIPS        = YES

# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
# (see http://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
# - Install the latest version of global
# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
# Doxygen will invoke htags (and that will in turn invoke gtags), so these
# tools must be available from the command line (i.e. in the search path).
#
# The result: instead of the source browser generated by doxygen, the links to
# source code will now point to the output of htags.
# The default value is: NO.
# This tag requires that the tag SOURCE_BROWSER is set to YES.

USE_HTAGS              = NO

# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
# verbatim copy of the header file for each class for which an include is
# specified. Set to NO to disable this.
# See also: Section \class.
# The default value is: YES.

VERBATIM_HEADERS       = YES

# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse-libclang=ON option for CMake.
# The default value is: NO.

CLANG_ASSISTED_PARSING = NO

# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.

CLANG_OPTIONS          = 

#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------

# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
# compounds will be generated. Enable this if the project contains a lot of
# classes, structs, unions or interfaces.
# The default value is: YES.

ALPHABETICAL_INDEX     = YES

# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.

COLS_IN_ALPHA_INDEX    = 5

# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
# while generating the index headers.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.

IGNORE_PREFIX          = 

#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------

# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.

GENERATE_HTML          = YES

# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_OUTPUT            = html

# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
# The default value is: .html.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_FILE_EXTENSION    = .html

# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
# each generated HTML page. If the tag is left blank doxygen will generate a
# standard header.
#
# To get valid HTML the header file that includes any scripts and style sheets
# that doxygen needs, which is dependent on the configuration options used (e.g.
# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
# default header using
# doxygen -w html new_header.html new_footer.html new_stylesheet.css
# YourConfigFile
# and then modify the file new_header.html. See also section "Doxygen usage"
# for information on how to generate the default header that doxygen normally
# uses.
# Note: The header is subject to change so you typically have to regenerate the
# default header when upgrading to a newer version of doxygen. For a description
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_HEADER            = 

# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
# footer. See HTML_HEADER for more information on how to generate a default
# footer and what special commands can be used inside the footer. See also
# section "Doxygen usage" for information on how to generate the default footer
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_FOOTER            = 

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
# the HTML output. If left blank doxygen will generate a default style sheet.
# See also section "Doxygen usage" for information on how to generate the style
# sheet that doxygen normally uses.
# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
# it is more robust and this tag (HTML_STYLESHEET) will in the future become
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_STYLESHEET        = 

# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
# created by doxygen. Using this option one can overrule certain style aspects.
# This is preferred over using HTML_STYLESHEET since it does not replace the
# standard style sheet and is therefore more robust against future updates.
# Doxygen will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_EXTRA_STYLESHEET  = theme/customdoxygen.css

# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
# that these files will be copied to the base HTML output directory. Use the
# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_EXTRA_FILES       = 

# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_HUE    = 160

# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
# in the HTML output. For a value of 0 the output will use grayscales only. A
# value of 255 will produce the most vivid colors.
# Minimum value: 0, maximum value: 255, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_SAT    = 135

# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
# luminance component of the colors in the HTML output. Values below 100
# gradually make the output lighter, whereas values above 100 make the output
# darker. The value divided by 100 is the actual gamma applied, so 80 represents
# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
# change the gamma.
# Minimum value: 40, maximum value: 240, default value: 80.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_COLORSTYLE_GAMMA  = 49

# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
# to YES can help to show when doxygen was last run and thus if the
# documentation is up to date.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_TIMESTAMP         = YES

# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_DYNAMIC_SECTIONS  = NO

# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
# and collapse entries dynamically later on. Doxygen will expand the tree to
# such a level that at most the specified number of entries are visible (unless
# a fully collapsed tree already exceeds this amount). So setting the number of
# entries 1 will produce a full collapsed tree by default. 0 is a special value
# representing an infinite number of entries and will result in a full expanded
# tree by default.
# Minimum value: 0, maximum value: 9999, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_INDEX_NUM_ENTRIES = 100

# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: http://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_DOCSET        = NO

# This tag determines the name of the docset feed. A documentation feed provides
# an umbrella under which multiple documentation sets from a single provider
# (such as a company or product suite) can be grouped.
# The default value is: Doxygen generated docs.
# This tag requires that the tag GENERATE_DOCSET is set to YES.

DOCSET_FEEDNAME        = "Doxygen generated docs"

# This tag specifies a string that should uniquely identify the documentation
# set bundle. This should be a reverse domain-name style string, e.g.
# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_DOCSET is set to YES.

DOCSET_BUNDLE_ID       = org.doxygen.Project

# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
# the documentation publisher. This should be a reverse domain-name style
# string, e.g. com.mycompany.MyDocSet.documentation.
# The default value is: org.doxygen.Publisher.
# This tag requires that the tag GENERATE_DOCSET is set to YES.

DOCSET_PUBLISHER_ID    = org.doxygen.Publisher

# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
# The default value is: Publisher.
# This tag requires that the tag GENERATE_DOCSET is set to YES.

DOCSET_PUBLISHER_NAME  = Publisher

# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
# files are now used as the Windows 98 help format, and will replace the old
# Windows help format (.hlp) on all Windows platforms in the future. Compressed
# HTML files also contain an index, a table of contents, and you can search for
# words in the documentation. The HTML workshop also contains a viewer for
# compressed HTML files.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_HTMLHELP      = NO

# The CHM_FILE tag can be used to specify the file name of the resulting .chm
# file. You can add a path in front of the file if the result should not be
# written to the html output directory.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

CHM_FILE               = 

# The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler (hhc.exe). If non-empty,
# doxygen will try to run the HTML help compiler on the generated index.hhp.
# The file has to be specified with full path.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

HHC_LOCATION           = 

# The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

GENERATE_CHI           = NO

# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
# and project file content.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

CHM_INDEX_ENCODING     = 

# The BINARY_TOC flag controls whether a binary table of contents is generated
# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
# enables the Previous and Next buttons.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

BINARY_TOC             = NO

# The TOC_EXPAND flag can be set to YES to add extra items for group members to
# the table of contents of the HTML help documentation and to the tree view.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.

TOC_EXPAND             = NO

# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
# (.qch) of the generated HTML documentation.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_QHP           = NO

# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
# the file name of the resulting .qch file. The path specified is relative to
# the HTML output folder.
# This tag requires that the tag GENERATE_QHP is set to YES.

QCH_FILE               = 

# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.

QHP_NAMESPACE          = org.doxygen.Project

# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
# folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.

QHP_VIRTUAL_FOLDER     = doc

# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.

QHP_CUST_FILTER_NAME   = 

# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.

QHP_CUST_FILTER_ATTRS  = 

# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.

QHP_SECT_FILTER_ATTRS  = 

# The QHG_LOCATION tag can be used to specify the location of Qt's
# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
# generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.

QHG_LOCATION           = 

# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
# generated, together with the HTML files, they form an Eclipse help plugin. To
# install this plugin and make it available under the help contents menu in
# Eclipse, the contents of the directory containing the HTML and XML files needs
# to be copied into the plugins directory of eclipse. The name of the directory
# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
# After copying Eclipse needs to be restarted before the help appears.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_ECLIPSEHELP   = NO

# A unique identifier for the Eclipse help plugin. When installing the plugin
# the directory name containing the HTML and XML files should also have this
# name. Each documentation set should have its own identifier.
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.

ECLIPSE_DOC_ID         = org.doxygen.Project

# If you want full control over the layout of the generated HTML pages it might
# be necessary to disable the index and replace it with your own. The
# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
# of each HTML page. A value of NO enables the index and the value YES disables
# it. Since the tabs in the index contain the same information as the navigation
# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

DISABLE_INDEX          = NO

# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information. If the tag
# value is set to YES, a side panel will be generated containing a tree-like
# index structure (just like the one that is generated for HTML Help). For this
# to work a browser that supports JavaScript, DHTML, CSS and frames is required
# (i.e. any modern browser). Windows users are probably better off using the
# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
# further fine-tune the look of the index. As an example, the default style
# sheet generated by doxygen has an example that shows how to put an image at
# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
# the same information as the tab index, you could consider setting
# DISABLE_INDEX to YES when enabling this option.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_TREEVIEW      = YES

# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
#
# Note that a value of 0 will completely suppress the enum values from appearing
# in the overview section.
# Minimum value: 0, maximum value: 20, default value: 4.
# This tag requires that the tag GENERATE_HTML is set to YES.

ENUM_VALUES_PER_LINE   = 4

# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
# to set the initial width (in pixels) of the frame in which the tree is shown.
# Minimum value: 0, maximum value: 1500, default value: 250.
# This tag requires that the tag GENERATE_HTML is set to YES.

TREEVIEW_WIDTH         = 250

# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
# external symbols imported via tag files in a separate window.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

EXT_LINKS_IN_WINDOW    = NO

# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML
# output directory to force them to be regenerated.
# Minimum value: 8, maximum value: 50, default value: 10.
# This tag requires that the tag GENERATE_HTML is set to YES.

FORMULA_FONTSIZE       = 10

# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
# Note that when changing this option you need to delete any form_*.png files in
# the HTML output directory before the changes have effect.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.

FORMULA_TRANSPARENT    = YES

# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
# to it using the MATHJAX_RELPATH option.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

USE_MATHJAX            = NO

# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
# This tag requires that the tag USE_MATHJAX is set to YES.

MATHJAX_FORMAT         = HTML-CSS

# When MathJax is enabled you need to specify the location relative to the HTML
# output directory using the MATHJAX_RELPATH option. The destination directory
# should contain the MathJax.js script. For instance, if the mathjax directory
# is located at the same level as the HTML output directory, then
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
# MathJax from http://www.mathjax.org before deployment.
# The default value is: http://cdn.mathjax.org/mathjax/latest.
# This tag requires that the tag USE_MATHJAX is set to YES.

MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest

# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
# This tag requires that the tag USE_MATHJAX is set to YES.

MATHJAX_EXTENSIONS     = 

# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.

MATHJAX_CODEFILE       = 

# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
# the HTML output. The underlying search engine uses javascript and DHTML and
# should work on any modern browser. Note that when using HTML help
# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
# there is already a search function so this one should typically be disabled.
# For large projects the javascript based search engine can be slow, then
# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
# search using the keyboard; to jump to the search box use <access key> + S
# (what the <access key> is depends on the OS and browser, but it is typically
# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
# key> to jump into the search results window, the results can be navigated
# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
# the search. The filter options can be selected when the cursor is inside the
# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
# to select a filter and <Enter> or <escape> to activate or cancel the filter
# option.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.

SEARCHENGINE           = YES

# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
# and searching needs to be provided by external tools. See the section
# "External Indexing and Searching" for details.
# The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES.

SERVER_BASED_SEARCH    = NO

# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
# script for searching. Instead the search results are written to an XML file
# which needs to be processed by an external indexer. Doxygen will invoke an
# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
# search results.
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES.

EXTERNAL_SEARCH        = NO

# The SEARCHENGINE_URL should point to a search engine hosted by a web server
# which will return the search results when EXTERNAL_SEARCH is enabled.
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.

SEARCHENGINE_URL       = 

# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
# search data is written to a file for indexing by an external tool. With the
# SEARCHDATA_FILE tag the name of this file can be specified.
# The default file is: searchdata.xml.
# This tag requires that the tag SEARCHENGINE is set to YES.

SEARCHDATA_FILE        = searchdata.xml

# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
# projects and redirect the results back to the right project.
# This tag requires that the tag SEARCHENGINE is set to YES.

EXTERNAL_SEARCH_ID     = 

# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
# projects other than the one defined by this configuration file, but that are
# all added to the same external search index. Each project needs to have a
# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
# to a relative location where the documentation can be found. The format is:
# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
# This tag requires that the tag SEARCHENGINE is set to YES.

EXTRA_SEARCH_MAPPINGS  = 

#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------

# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.

GENERATE_LATEX         = NO

# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: latex.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_OUTPUT           = latex

# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
# Note that when enabling USE_PDFLATEX this option is only used for generating
# bitmaps for formulas in the HTML output, but not in the Makefile that is
# written to the output directory.
# The default file is: latex.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_CMD_NAME         = latex

# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.

MAKEINDEX_CMD_NAME     = makeindex

# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

COMPACT_LATEX          = NO

# The PAPER_TYPE tag can be used to set the paper type that is used by the
# printer.
# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
# 14 inches) and executive (7.25 x 10.5 inches).
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.

PAPER_TYPE             = a4

# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. The package can be specified just
# by its name or with the correct syntax as to be used with the LaTeX
# \usepackage command. To get the times font for instance you can specify :
# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
# To use the option intlimits with the amsmath package you can specify:
# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.

EXTRA_PACKAGES         = 

# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
# generated LaTeX document. The header should contain everything until the first
# chapter. If it is left blank doxygen will generate a standard header. See
# section "Doxygen usage" for information on how to let doxygen write the
# default header to a separate file.
#
# Note: Only use a user-defined header if you know what you are doing! The
# following commands have a special meaning inside the header: $title,
# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
# string, for the replacement values of the other commands the user is referred
# to HTML_HEADER.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_HEADER           = 

# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last
# chapter. If it is left blank doxygen will generate a standard footer. See
# LATEX_HEADER for more information on how to generate a default footer and what
# special commands can be used inside the footer.
#
# Note: Only use a user-defined footer if you know what you are doing!
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_FOOTER           = 

# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# LaTeX style sheets that are included after the standard style sheets created
# by doxygen. Using this option one can overrule certain style aspects. Doxygen
# will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list).
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_EXTRA_STYLESHEET = 

# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the LATEX_OUTPUT output
# directory. Note that the files will be copied as-is; there are no commands or
# markers available.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_EXTRA_FILES      = 

# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
# contain links (just like the HTML output) instead of page references. This
# makes the output suitable for online browsing using a PDF viewer.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.

PDF_HYPERLINKS         = YES

# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
# the PDF file directly from the LaTeX files. Set this option to YES, to get a
# higher quality PDF documentation.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.

USE_PDFLATEX           = YES

# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
# command to the generated LaTeX files. This will instruct LaTeX to keep running
# if errors occur, instead of asking the user for help. This option is also used
# when generating formulas in HTML.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_BATCHMODE        = NO

# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
# index chapters (such as File Index, Compound Index, etc.) in the output.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_HIDE_INDICES     = NO

# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_SOURCE_CODE      = NO

# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_BIB_STYLE        = plain

# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
# page will contain the date and time when the page was generated. Setting this
# to NO can help when comparing the output of multiple runs.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_TIMESTAMP        = NO

#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------

# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
# RTF output is optimized for Word 97 and may not look too pretty with other RTF
# readers/editors.
# The default value is: NO.

GENERATE_RTF           = NO

# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: rtf.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_OUTPUT             = rtf

# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.

COMPACT_RTF            = NO

# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
# contain hyperlink fields. The RTF file will contain links (just like the HTML
# output) instead of page references. This makes the output suitable for online
# browsing using Word or some other Word compatible readers that support those
# fields.
#
# Note: WordPad (write) and others do not support links.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_HYPERLINKS         = NO

# Load stylesheet definitions from file. Syntax is similar to doxygen's config
# file, i.e. a series of assignments. You only have to provide replacements,
# missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_STYLESHEET_FILE    = 

# Set optional variables used in the generation of an RTF document. Syntax is
# similar to doxygen's config file. A template extensions file can be generated
# using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_EXTENSIONS_FILE    = 

# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
# with syntax highlighting in the RTF output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.

RTF_SOURCE_CODE        = NO

#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------

# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
# classes and files.
# The default value is: NO.

GENERATE_MAN           = NO

# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it. A directory man3 will be created inside the directory specified by
# MAN_OUTPUT.
# The default directory is: man.
# This tag requires that the tag GENERATE_MAN is set to YES.

MAN_OUTPUT             = man

# The MAN_EXTENSION tag determines the extension that is added to the generated
# man pages. In case the manual section does not start with a number, the number
# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
# optional.
# The default value is: .3.
# This tag requires that the tag GENERATE_MAN is set to YES.

MAN_EXTENSION          = .3

# The MAN_SUBDIR tag determines the name of the directory created within
# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
# MAN_EXTENSION with the initial . removed.
# This tag requires that the tag GENERATE_MAN is set to YES.

MAN_SUBDIR             = 

# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
# will generate one additional man file for each entity documented in the real
# man page(s). These additional files only source the real man page, but without
# them the man command would be unable to find the correct page.
# The default value is: NO.
# This tag requires that the tag GENERATE_MAN is set to YES.

MAN_LINKS              = NO

#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------

# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
# captures the structure of the code including all documentation.
# The default value is: NO.

GENERATE_XML           = YES

# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: xml.
# This tag requires that the tag GENERATE_XML is set to YES.

XML_OUTPUT             = xml

# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
# listings (including syntax highlighting and cross-referencing information) to
# the XML output. Note that enabling this will significantly increase the size
# of the XML output.
# The default value is: YES.
# This tag requires that the tag GENERATE_XML is set to YES.

XML_PROGRAMLISTING     = NO

#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------

# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
# that can be used to generate PDF.
# The default value is: NO.

GENERATE_DOCBOOK       = NO

# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
# front of it.
# The default directory is: docbook.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.

DOCBOOK_OUTPUT         = docbook

# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
# program listings (including syntax highlighting and cross-referencing
# information) to the DOCBOOK output. Note that enabling this will significantly
# increase the size of the DOCBOOK output.
# The default value is: NO.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.

DOCBOOK_PROGRAMLISTING = NO

#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------

# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sf.net) file that captures the
# structure of the code including all documentation. Note that this feature is
# still experimental and incomplete at the moment.
# The default value is: NO.

GENERATE_AUTOGEN_DEF   = NO

#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------

# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
# file that captures the structure of the code including all documentation.
#
# Note that this feature is still experimental and incomplete at the moment.
# The default value is: NO.

GENERATE_PERLMOD       = NO

# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
# output from the Perl module output.
# The default value is: NO.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.

PERLMOD_LATEX          = NO

# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
# formatted so it can be parsed by a human reader. This is useful if you want to
# understand what is going on. On the other hand, if this tag is set to NO, the
# size of the Perl module output will be much smaller and Perl will parse it
# just the same.
# The default value is: YES.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.

PERLMOD_PRETTY         = YES

# The names of the make variables in the generated doxyrules.make file are
# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
# so different doxyrules.make files included by the same Makefile don't
# overwrite each other's variables.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.

PERLMOD_MAKEVAR_PREFIX = 

#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------

# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
# C-preprocessor directives found in the sources and include files.
# The default value is: YES.

ENABLE_PREPROCESSING   = YES

# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
# in the source code. If set to NO, only conditional compilation will be
# performed. Macro expansion can be done in a controlled way by setting
# EXPAND_ONLY_PREDEF to YES.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

MACRO_EXPANSION        = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_ONLY_PREDEF     = NO

# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
# The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

SEARCH_INCLUDES        = YES

# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by the
# preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES.

INCLUDE_PATH           = 

# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will be
# used.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

INCLUDE_FILE_PATTERNS  = 

# The PREDEFINED tag can be used to specify one or more macro names that are
# defined before the preprocessor is started (similar to the -D option of e.g.
# gcc). The argument of the tag is a list of macros of the form: name or
# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
# is assumed. To prevent a macro definition from being undefined via #undef or
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED             = LN_DOXYGEN \
                         "LN_NAMESPACE_BEGIN=namespace ln {" \
                         LN_NAMESPACE_END=}

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
# macro definition that is found in the sources will be used. Use the PREDEFINED
# tag if you want to use a different macro definition that overrules the
# definition found in the source code.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_AS_DEFINED      = 

# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all references to function-like macros that are alone on a line, have
# an all uppercase name, and do not end with a semicolon. Such function macros
# are typically used for boiler-plate code, and will confuse the parser if not
# removed.
# The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

SKIP_FUNCTION_MACROS   = YES

#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------

# The TAGFILES tag can be used to specify one or more tag files. For each tag
# file the location of the external documentation should be added. The format of
# a tag file without this location is as follows:
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where loc1 and loc2 can be relative or absolute paths or URLs. See the
# section "Linking to external documentation" for more information about the use
# of tag files.
# Note: Each tag file must have a unique name (where the name does NOT include
# the path). If a tag file is not located in the directory in which doxygen is
# run, you must also specify the path to the tagfile here.

TAGFILES               = 

# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.

GENERATE_TAGFILE       = 

# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
# listed.
# The default value is: NO.

ALLEXTERNALS           = NO

# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will be
# listed.
# The default value is: YES.

EXTERNAL_GROUPS        = YES

# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
# the related pages index. If set to NO, only the current project's pages will
# be listed.
# The default value is: YES.

EXTERNAL_PAGES         = YES

# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.

PERL_PATH              = /usr/bin/perl

#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------

# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
# The default value is: YES.

CLASS_DIAGRAMS         = YES

# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.

MSCGEN_PATH            = 

# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
# If left empty dia is assumed to be found in the default search path.

DIA_PATH               = 

# If set to YES the inheritance and collaboration graphs will hide inheritance
# and usage relations if the target is undocumented or is not a class.
# The default value is: YES.

HIDE_UNDOC_RELATIONS   = YES

# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.

HAVE_DOT               = NO

# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of
# processors available in the system. You can set it explicitly to a value
# larger than 0 to get control over the balance between CPU load and processing
# speed.
# Minimum value: 0, maximum value: 32, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_NUM_THREADS        = 0

# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
# setting DOT_FONTPATH to the directory containing the font.
# The default value is: Helvetica.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_FONTNAME           = Helvetica

# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
# dot graphs.
# Minimum value: 4, maximum value: 24, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_FONTSIZE           = 10

# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_FONTPATH           = 

# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
# each documented class showing the direct and indirect inheritance relations.
# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

CLASS_GRAPH            = YES

# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
# graph for each documented class showing the direct and indirect implementation
# dependencies (inheritance, containment, and class references variables) of the
# class with other documented classes.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

COLLABORATION_GRAPH    = YES

# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
# groups, showing the direct groups dependencies.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

GROUP_GRAPHS           = YES

# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

UML_LOOK               = NO

# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
# class node. If there are many fields or methods and many nodes the graph may
# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
# number of items for each type to make the size more manageable. Set this to 0
# for no limit. Note that the threshold may be exceeded by 50% before the limit
# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.

UML_LIMIT_NUM_FIELDS   = 10

# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their
# instances.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

TEMPLATE_RELATIONS     = NO

# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
# YES then doxygen will generate a graph for each documented file showing the
# direct and indirect include dependencies of the file with other documented
# files.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

INCLUDE_GRAPH          = YES

# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
# set to YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other documented
# files.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

INCLUDED_BY_GRAPH      = YES

# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
# dependency graph for every global function or class method.
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command. Disabling a call graph can be
# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

CALL_GRAPH             = NO

# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
# dependency graph for every global function or class method.
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command. Disabling a caller graph can be
# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

CALLER_GRAPH           = NO

# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
# hierarchy of all classes instead of a textual one.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

GRAPHICAL_HIERARCHY    = YES

# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
# dependencies a directory has on other directories in a graphical way. The
# dependency relations are determined by the #include relations between the
# files in the directories.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

DIRECTORY_GRAPH        = YES

# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_IMAGE_FORMAT       = png

# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
# enable generation of interactive SVG images that allow zooming and panning.
#
# Note that this requires a modern browser other than Internet Explorer. Tested
# and working are Firefox, Chrome, Safari, and Opera.
# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
# the SVG files visible. Older versions of IE do not have SVG support.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

INTERACTIVE_SVG        = NO

# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_PATH               = 

# The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the \dotfile
# command).
# This tag requires that the tag HAVE_DOT is set to YES.

DOTFILE_DIRS           = 

# The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the \mscfile
# command).

MSCFILE_DIRS           = 

# The DIAFILE_DIRS tag can be used to specify one or more directories that
# contain dia files that are included in the documentation (see the \diafile
# command).

DIAFILE_DIRS           = 

# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
# path where java can find the plantuml.jar file. If left blank, it is assumed
# PlantUML is not used or called during a preprocessing step. Doxygen will
# generate a warning when it encounters a \startuml command in this case and
# will not generate output for the diagram.

PLANTUML_JAR_PATH      = 

# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
# configuration file for plantuml.

PLANTUML_CFG_FILE      = 

# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.

PLANTUML_INCLUDE_PATH  = 

# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# that will be shown in the graph. If the number of nodes in a graph becomes
# larger than this value, doxygen will truncate the graph, which is visualized
# by representing a node as a red box. Note that doxygen if the number of direct
# children of the root node in a graph is already larger than
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
# Minimum value: 0, maximum value: 10000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_GRAPH_MAX_NODES    = 50

# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
# generated by dot. A depth value of 3 means that only nodes reachable from the
# root by following a path via at most 3 edges will be shown. Nodes that lay
# further from the root node will be omitted. Note that setting this option to 1
# or 2 may greatly reduce the computation time needed for large code bases. Also
# note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
# Minimum value: 0, maximum value: 1000, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.

MAX_DOT_GRAPH_DEPTH    = 0

# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not seem
# to support this out of the box.
#
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_TRANSPARENT        = NO

# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
# this, this feature is disabled by default.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_MULTI_TARGETS      = NO

# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
# explaining the meaning of the various boxes and arrows in the dot generated
# graphs.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

GENERATE_LEGEND        = YES

# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
# files that are used to generate the various graphs.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.

DOT_CLEANUP            = YES


================================================
FILE: docs/Doxygen/build_doc.bat
================================================

doxygen Doxyfile
xcopy theme html /s /i /y
copy ..\Assets\icon64.png html\icon64.png

: uEUɕ\
:CommonManual\html\index.html



================================================
FILE: docs/Doxygen/theme/_tabs.css
================================================
.tabs, .tabs2, .tabs3 {
    background-image: url('tab_b.png');
    width: 100%;
    z-index: 101;
    font-size: 13px;
    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}

.tabs2 {
    font-size: 10px;
    border-top: 1px solid #DDDDDD;  /* タブリストの間にボーダーを入れる */
}
.tabs3 {
    font-size: 9px;
}

.tablist {
    margin: 0;
    padding: 0;
    display: table;
}

.tablist li {
    float: left;
    display: table-cell;
    background-image: url('tab_b.png');
    line-height: 36px;
    list-style: none;
}

.tablist a {
    display: block;
    padding: 0 20px;
    font-weight: bold;
    background-image:url('tab_s.png');
    background-repeat:no-repeat;
    background-position:right;
    color: #483D3A;
    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
    text-decoration: none;
    outline: none;
}

.tabs3 .tablist a {
    padding: 0 10px;
}

.tablist a:hover {
    background-image: url('tab_h.png');
    background-repeat:repeat-x;
    color: #fff;
    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
    text-decoration: none;
}

.tablist li.current a {
    background-image: url('tab_a.png');
    background-repeat:repeat-x;
    color: #fff;
    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}


================================================
FILE: docs/Doxygen/theme/customdoxygen.css
================================================
/* The standard CSS for doxygen 1.8.8 */

.sm a {
	color: rgb(96, 96, 96);
}


.memtitle {
	padding: 8px;
	border-top: 1px solid rgb(182, 182, 182);
	border-left: 1px solid rgb(182, 182, 182);
	border-right: 1px solid rgb(182, 182, 182);
}


body, table, div, p, dl {
	font: 400 14px/22px Meiryo,Roboto,sans-serif;
}

/* @group Heading Levels */

h1.groupheader {
	font-size: 150%;
}

.title {
	font: 400 14px/28px Roboto,sans-serif;
	font-size: 150%;
	font-weight: bold;
	margin: 10px 2px;
}

h1 {
	font-size: 120%;
	margin: 30px 0px 2px 2px;
}

h2.groupheader {
	border-bottom: 1px solid #888888;
	color: #333333;
	font-size: 150%;
	font-weight: normal;
	margin-top: 1.75em;
	padding-top: 8px;
	padding-bottom: 4px;
	width: 100%;
}

h3.groupheader {
	font-size: 100%;
}

h1, h2, h3, h4, h5, h6 {
	-webkit-transition: text-shadow 0.5s linear;
	-moz-transition: text-shadow 0.5s linear;
	-ms-transition: text-shadow 0.5s linear;
	-o-transition: text-shadow 0.5s linear;
	transition: text-shadow 0.5s linear;
	margin-right: 15px;
}

h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
	text-shadow: 0 0 15px cyan;
}

dt {
	font-weight: bold;
}

div.multicol {
	-moz-column-gap: 1em;
	-webkit-column-gap: 1em;
	-moz-column-count: 3;
	-webkit-column-count: 3;
}

p.startli, p.startdd {
	margin-top: 2px;
}

p.starttd {
	margin-top: 0px;
}

p.endli {
	margin-bottom: 0px;
}

p.enddd {
	margin-bottom: 4px;
}

p.endtd {
	margin-bottom: 2px;
}

/* @end */

caption {
	font-weight: bold;
}

span.legend {
        font-size: 70%;
        text-align: center;
}

h3.version {
        font-size: 90%;
        text-align: center;
}

div.qindex, div.navtab{
	background-color: #eeeeee;
	border: 1px solid #b3b3b3;
	text-align: center;
}

div.qindex, div.navpath {
	width: 100%;
	line-height: 140%;
}

div.navtab {
	margin-right: 15px;
}

/* @group Link Styling */

a {
	color: #28a07c;
	font-weight: normal;
	text-decoration: none;
}

.contents a:visited {
	color: #28a07c;
}

a:hover {
	text-decoration: underline;
}

a.qindex {
	font-weight: bold;
}

a.qindexHL {
	font-weight: bold;
	background-color: #adadad;
	color: #ffffff;
	border: 1px double #9b9b9b;
}

.contents a.qindexHL:visited {
        color: #ffffff;
}

a.el {
	font-weight: bold;
}

a.elRef {
}

a.code, a.code:visited, a.line, a.line:visited {
	color: #626262; 
}

a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
	color: #626262; 
}

/* @end */

dl.el {
	margin-left: -1cm;
}

pre.fragment {
        border: 1px solid #CECECE;
        background-color: #FBFCFD;
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
        overflow: auto;
        word-wrap: break-word;
        font-size:  9pt;
        line-height: 125%;
        font-family: monospace, fixed;
        font-size: 105%;
}

div.fragment {
        padding: 4px 6px;
        margin: 4px 8px 4px 2px;
	background-color: #FBFCFD;
	border: 1px solid #CECECE;
}

div.line {
	font-family: monospace, fixed;
        font-size: 13px;
	min-height: 13px;
	line-height: 1.0;
	text-wrap: unrestricted;
	white-space: -moz-pre-wrap; /* Moz */
	white-space: -pre-wrap;     /* Opera 4-6 */
	white-space: -o-pre-wrap;   /* Opera 7 */
	white-space: pre-wrap;      /* CSS3  */
	word-wrap: break-word;      /* IE 5.5+ */
	text-indent: -53px;
	padding-left: 53px;
	padding-bottom: 0px;
	margin: 0px;
	-webkit-transition-property: background-color, box-shadow;
	-webkit-transition-duration: 0.5s;
	-moz-transition-property: background-color, box-shadow;
	-moz-transition-duration: 0.5s;
	-ms-transition-property: background-color, box-shadow;
	-ms-transition-duration: 0.5s;
	-o-transition-property: background-color, box-shadow;
	-o-transition-duration: 0.5s;
	transition-property: background-color, box-shadow;
	transition-duration: 0.5s;
}

div.line.glow {
	background-color: cyan;
	box-shadow: 0 0 10px cyan;
}


span.lineno {
	padding-right: 4px;
	text-align: right;
	border-right: 2px solid #0F0;
	background-color: #E8E8E8;
        white-space: pre;
}
span.lineno a {
	background-color: #D8D8D8;
}

span.lineno a:hover {
	background-color: #C8C8C8;
}

div.ah {
	background-color: #555555;
	font-weight: bold;
	color: #ffffff;
	margin-bottom: 3px;
	margin-top: 3px;
	padding: 0.2em;
	border: solid thin #333;
	border-radius: 0.5em;
	-webkit-border-radius: .5em;
	-moz-border-radius: .5em;
	/*
	box-shadow: 2px 2px 3px #999;
	-webkit-box-shadow: 2px 2px 3px #999;
	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
	*/
}

div.groupHeader {
	margin-left: 16px;
	margin-top: 12px;
	font-weight: bold;
}

div.groupText {
	margin-left: 16px;
	font-style: italic;
}

body {
	background-color: white;
	color: black;
        margin: 0;
}

div.contents {
	margin-top: 10px;
	margin-left: 12px;
	margin-right: 8px;
}

td.indexkey {
	background-color: #EEEEEE;
	font-weight: bold;
	border: 1px solid #CECECE;
	margin: 2px 0px 2px 0;
	padding: 2px 10px;
        white-space: nowrap;
        vertical-align: top;
}

td.indexvalue {
	background-color: #EEEEEE;
	border: 1px solid #CECECE;
	padding: 2px 10px;
	margin: 2px 0px;
}

tr.memlist {
	background-color: #F0F0F0;
}

p.formulaDsp {
	text-align: center;
}

img.formulaDsp {
	
}

img.formulaInl {
	vertical-align: middle;
}

div.center {
	text-align: center;
        margin-top: 0px;
        margin-bottom: 0px;
        padding: 0px;
}

div.center img {
	border: 0px;
}

address.footer {
	text-align: right;
	padding-right: 12px;
}

img.footer {
	border: 0px;
	vertical-align: middle;
}

/* @group Code Colorization */

span.keyword {
	color: #008000
}

span.keywordtype {
	color: #604020
}

span.keywordflow {
	color: #e08000
}

span.comment {
	color: #800000
}

span.preprocessor {
	color: #806020
}

span.stringliteral {
	color: #002080
}

span.charliteral {
	color: #008080
}

span.vhdldigit { 
	color: #ff00ff 
}

span.vhdlchar { 
	color: #000000 
}

span.vhdlkeyword { 
	color: #700070 
}

span.vhdllogic { 
	color: #ff0000 
}

blockquote {
        background-color: #F7F8FB;
        border-left: 2px solid #9CAFD4;
        margin: 0 24px 0 4px;
        padding: 0 12px 0 16px;
}

/* @end */

/*
.search {
	color: #2F2F2F;
	font-weight: bold;
}

form.search {
	margin-bottom: 0px;
	margin-top: 0px;
}

input.search {
	font-size: 75%;
	color: #E0E0E0;
	font-weight: normal;
	background-color: #CECECE;
}
*/

td.tiny {
	font-size: 75%;
}

.dirtab {
	padding: 4px;
	border-collapse: collapse;
	border: 1px solid #B3B3B3;
}

th.dirtab {
	background: #EEEEEE;
	font-weight: bold;
}

hr {
	height: 0px;
	border: none;
	border-top: 1px solid #676767;
}

hr.footer {
	height: 1px;
}

/* @group Member Descriptions */

table.memberdecls {
	border-spacing: 0px;
	padding: 0px;
}

.memberdecls td, .fieldtable tr {
	-webkit-transition-property: background-color, box-shadow;
	-webkit-transition-duration: 0.5s;
	-moz-transition-property: background-color, box-shadow;
	-moz-transition-duration: 0.5s;
	-ms-transition-property: background-color, box-shadow;
	-ms-transition-duration: 0.5s;
	-o-transition-property: background-color, box-shadow;
	-o-transition-duration: 0.5s;
	transition-property: background-color, box-shadow;
	transition-duration: 0.5s;
}

.memberdecls td.glow, .fieldtable tr.glow {
	background-color: cyan;
	box-shadow: 0 0 15px cyan;
}

.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
	background-color: #F9F9F9;
	border: none;
	margin: 4px;
	padding: 1px 0 0 8px;
}

.mdescLeft, .mdescRight {
	padding: 0px 8px 4px 8px;
	color: #555;
}

.memSeparator {
        border-bottom: 1px solid #CECECE;
        line-height: 1px;
        margin: 0px;
        padding: 0px;
}

.memItemLeft, .memTemplItemLeft {
        white-space: nowrap;
}

.memItemRight {
	width: 100%;
}

.memTemplParams {
	color: #636363;
        white-space: nowrap;
	font-size: 80%;
}

/* @end */

/* @group Member Details */

/* Styles for detailed member documentation */

.memtemplate {
	font-size: 80%;
	color: #636363;
	font-weight: normal;
	margin-left: 9px;
}

.memnav {
	background-color: #EEEEEE;
	border: 1px solid #B3B3B3;
	text-align: center;
	margin: 2px;
	margin-right: 15px;
	padding: 2px;
}

.mempage {
	width: 100%;
}

.memitem {
	padding: 0;
	margin-bottom: 10px;
	margin-right: 5px;
        -webkit-transition: box-shadow 0.5s linear;
        -moz-transition: box-shadow 0.5s linear;
        -ms-transition: box-shadow 0.5s linear;
        -o-transition: box-shadow 0.5s linear;
        transition: box-shadow 0.5s linear;
        display: table !important;
        width: 100%;
}

.memitem.glow {
         box-shadow: 0 0 15px cyan;
}

.memname {
        font-weight: bold;
        margin-left: 6px;
}

.memname td {
	vertical-align: bottom;
}

.memproto, dl.reflist dt {
        border-top: 1px solid #B6B6B6;
        border-left: 1px solid #B6B6B6;
        border-right: 1px solid #B6B6B6;
        padding: 6px 0px 6px 0px;
        color: #253555;
        font-weight: bold;
        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
        background-image:url('nav_f.png');
        background-repeat:repeat-x;
        background-color: #E7E7E7;
        /* opera specific markup */
        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
        border-top-right-radius: 4px;
        border-top-left-radius: 4px;
        /* firefox specific markup */
        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
        -moz-border-radius-topright: 4px;
        -moz-border-radius-topleft: 4px;
        /* webkit specific markup */
        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
        -webkit-border-top-right-radius: 4px;
        -webkit-border-top-left-radius: 4px;

}

.memdoc, dl.reflist dd {
        border-bottom: 1px solid #B6B6B6;      
        border-left: 1px solid #B6B6B6;      
        border-right: 1px solid #B6B6B6; 
        padding: 6px 10px 2px 10px;
        background-color: #FBFBFB;
        border-top-width: 0;
        background-image:url('nav_g.png');
        background-repeat:repeat-x;
        background-color: #FFFFFF;
        /* opera specific markup */
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
        /* firefox specific markup */
        -moz-border-radius-bottomleft: 4px;
        -moz-border-radius-bottomright: 4px;
        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
        /* webkit specific markup */
        -webkit-border-bottom-left-radius: 4px;
        -webkit-border-bottom-right-radius: 4px;
        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
}

dl.reflist dt {
        padding: 5px;
}

dl.reflist dd {
        margin: 0px 0px 10px 0px;
        padding: 5px;
}

.paramkey {
	text-align: right;
}

.paramtype {
	white-space: nowrap;
}

.paramname {
	color: #602020;
	white-space: nowrap;
}
.paramname em {
	font-style: normal;
}
.paramname code {
        line-height: 14px;
}

.params, .retval, .exception, .tparams {
        margin-left: 0px;
        padding-left: 0px;
}       

.params .paramname, .retval .paramname {
        font-weight: bold;
        vertical-align: top;
}
        
.params .paramtype {
        font-style: italic;
        vertical-align: top;
}       
        
.params .paramdir {
        font-family: "courier new",courier,monospace;
        vertical-align: top;
}

table.mlabels {
	border-spacing: 0px;
}

td.mlabels-left {
	width: 100%;
	padding: 0px;
}

td.mlabels-right {
	vertical-align: bottom;
	padding: 0px;
	white-space: nowrap;
}

span.mlabels {
        margin-left: 8px;
}

span.mlabel {
        background-color: #728DC1;
        border-top:1px solid #5373B4;
        border-left:1px solid #5373B4;
        border-right:1px solid #C4CFE5;
        border-bottom:1px solid #C4CFE5;
	text-shadow: none;
	color: white;
	margin-right: 4px;
	padding: 2px 3px;
	border-radius: 3px;
	font-size: 7pt;
	white-space: nowrap;
	vertical-align: middle;
}



/* @end */

/* these are for tree view inside a (index) page */

div.directory {
        margin: 10px 0px;
        border-top: 1px solid #AAAAAA;
        border-bottom: 1px solid #AAAAAA;
        width: 100%;
}

.directory table {
        border-collapse:collapse;
}

.directory td {
        margin: 0px;
        padding: 0px;
	vertical-align: top;
}

.directory td.entry {
        white-space: nowrap;
        padding-right: 6px;
	padding-top: 3px;
}

.directory td.entry a {
        outline:none;
}

.directory td.entry a img {
        border: none;
}

.directory td.desc {
        width: 100%;
        padding-left: 6px;
	padding-right: 6px;
	padding-top: 3px;
	border-left: 1px solid rgba(0,0,0,0.05);
}

.directory tr.even {
	padding-left: 6px;
	background-color: #F7F8FB;
}

.directory img {
	vertical-align: -30%;
}

.directory .levels {
        white-space: nowrap;
        width: 100%;
        text-align: right;
        font-size: 9pt;
}

.directory .levels span {
        cursor: pointer;
        padding-left: 2px;
        padding-right: 2px;
	color: #3D578C;
}

.arrow {
    color: #9CAFD4;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: pointer;
    font-size: 80%;
    display: inline-block;
    width: 16px;
    height: 22px;
}

.icon {
    font-family: Arial, Helvetica;
    font-weight: bold;
    font-size: 12px;
    height: 14px;
    width: 16px;
    display: inline-block;
    background-color: #62B090;
    color: white;
    text-align: center;
    border-radius: 4px;
    margin-left: 2px;
    margin-right: 2px;
}

.icona {
    width: 24px;
    height: 22px;
    display: inline-block;
}

.iconfopen {
    width: 24px;
    height: 18px;
    margin-bottom: 4px;
    background-image:url('ftv2folderopen.png');
    background-position: 0px -4px;
    background-repeat: repeat-y;
    vertical-align:top;
    display: inline-block;
}

.iconfclosed {
    width: 24px;
    height: 18px;
    margin-bottom: 4px;
    background-image:url('ftv2folderclosed.png');
    background-position: 0px -4px;
    background-repeat: repeat-y;
    vertical-align:top;
    display: inline-block;
}

.icondoc {
    width: 24px;
    height: 18px;
    margin-bottom: 4px;
    background-image:url('ftv2doc.png');
    background-position: 0px -4px;
    background-repeat: repeat-y;
    vertical-align:top;
    display: inline-block;
}

table.directory {
    font: 400 14px Roboto,sans-serif;
}

/* @end */

div.dynheader {
        margin-top: 8px;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

address {
	font-style: normal;
	color: #2A3D61;
}

table.doxtable {
	border-collapse:collapse;
        margin-top: 4px;
        margin-bottom: 4px;
}

table.doxtable td, table.doxtable th {
	border: 1px solid #3F3F3F;
	padding: 3px 7px 2px;
}

table.doxtable th {
	background-color: #4D4D4D;
	color: #FFFFFF;
	font-size: 110%;
	padding-bottom: 4px;
	padding-top: 5px;
}

table.fieldtable {
        /*width: 100%;*/
        margin-bottom: 10px;
        border: 1px solid #B6B6B6;
        border-spacing: 0px;
        -moz-border-radius: 4px;
        -webkit-border-radius: 4px;
        border-radius: 4px;
        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}

.fieldtable td, .fieldtable th {
        padding: 3px 7px 2px;
}

.fieldtable td.fieldtype, .fieldtable td.fieldname {
        white-space: nowrap;
        border-right: 1px solid #B6B6B6;
        border-bottom: 1px solid #B6B6B6;
        vertical-align: top;
}

.fieldtable td.fieldname {
        padding-top: 3px;
}

.fieldtable td.fielddoc {
        border-bottom: 1px solid #B6B6B6;
        /*width: 100%;*/
}

.fieldtable td.fielddoc p:first-child {
        margin-top: 0px;
}       
        
.fieldtable td.fielddoc p:last-child {
        margin-bottom: 2px;
}

.fieldtable tr:last-child td {
        border-bottom: none;
}

.fieldtable th {
        background-image:url('nav_f.png');
        background-repeat:repeat-x;
        background-color: #E7E7E7;
        font-size: 90%;
        color: #333333;
        padding-bottom: 4px;
        padding-top: 5px;
        text-align:left;
        -moz-border-radius-topleft: 4px;
        -moz-border-radius-topright: 4px;
        -webkit-border-top-left-radius: 4px;
        -webkit-border-top-right-radius: 4px;
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
        border-bottom: 1px solid #B6B6B6;
}


.tabsearch {
	top: 0px;
	left: 10px;
	height: 36px;
	background-image: url('tab_b.png');
	z-index: 101;
	overflow: hidden;
	font-size: 13px;
}

.navpath ul
{
	font-size: 11px;
	background-image:url('tab_b.png');
	background-repeat:repeat-x;
	background-position: 0 -5px;
	height:30px;
	line-height:30px;
	color:#9E9E9E;
	border:solid 1px #CCCCCC;
	overflow:hidden;
	margin:0px;
	padding:0px;
}

.navpath li
{
	list-style-type:none;
	float:left;
	padding-left:10px;
	padding-right:15px;
	background-image:url('bc_s.png');
	background-repeat:no-repeat;
	background-position:right;
	color:#4C4C4C;
}

.navpath li.navelem a
{
	height:32px;
	display:block;
	text-decoration: none;
	outline: none;
    color: #483D3A;
	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
	text-decoration: none;        
}

.navpath li.navelem a:hover
{
	color:#828282;
}

.navpath li.footer
{
        list-style-type:none;
        float:right;
        padding-left:10px;
        padding-right:15px;
        background-image:none;
        background-repeat:no-repeat;
        background-position:right;
        color:#4C4C4C;
        font-size: 8pt;
}


div.summary
{
	float: right;
	font-size: 8pt;
	padding-right: 5px;
	width: 50%;
	text-align: right;
}       

div.summary a
{
	white-space: nowrap;
}

div.ingroups
{
	font-size: 8pt;
	width: 50%;
	text-align: left;
}

div.ingroups a
{
	white-space: nowrap;
}

div.header
{
        background-image:url('nav_h.png');
        background-repeat:repeat-x;
	background-color: #F9F9F9;
	margin:  0px;
	border-top: 1px solid #CECECE;		/* ス^スuスニペス[スWス\ススフ間にボス[ス_ス[スススススス */
	border-bottom: 1px solid #CECECE;
}

div.headertitle
{
	padding: 5px 5px 5px 10px;
}

dl
{
        padding: 0 0 0 10px;
}

/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
dl.section
{
	margin-left: 0px;
	padding-left: 0px;
}

dl.note
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #D0C000;
}

dl.warning, dl.attention
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #FF0000;
}

dl.pre, dl.post, dl.invariant
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #00D000;
}

dl.deprecated
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #505050;
}

dl.todo
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #00C0E0;
}

dl.test
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #3030E0;
}

dl.bug
{
        margin-left:-7px;
        padding-left: 3px;
        border-left:4px solid;
        border-color: #C08050;
}

dl.section dd {
	margin-bottom: 6px;
}


#projectlogo
{
	text-align: center;
	vertical-align: bottom;
	border-collapse: separate;
}
 
#projectlogo img
{ 
	border: 0px none;
}
 
#projectname
{
	font: 250% Tahoma, Arial,sans-serif;	/* スTスCスYススススTスワゑソススススススス */
	margin: 0px;
	padding: 2px 4px;
}
    
#projectbrief
{
	font: 120% Tahoma, Arial,sans-serif;
	margin: 0px;
	padding: 0px;
}

#projectnumber
{
	font: 50% Tahoma, Arial,sans-serif;
	margin: 0px;
	padding: 0px;
}

#titlearea
{
	padding: 0px;
	margin: 0px;
	width: 100%;
	border-bottom: 1px solid #777777;
}

.image
{
        text-align: center;
}

.dotgraph
{
        text-align: center;
}

.mscgraph
{
        text-align: center;
}

.diagraph
{
        text-align: center;
}

.caption
{
	font-weight: bold;
}

div.zoom
{
	border: 1px solid #A3A3A3;
}

dl.citelist {
        margin-bottom:50px;
}

dl.citelist dt {
        color:#474747;
        float:left;
        font-weight:bold;
        margin-right:10px;
        padding:5px;
}

dl.citelist dd {
        margin:2px 0;
        padding:5px 0;
}

div.toc {
        padding: 14px 25px;
        background-color: #F4F6FA;
        border: 1px solid #D8DFEE;
        border-radius: 7px 7px 7px 7px;
        float: right;
        height: auto;
        margin: 0 20px 10px 10px;
        width: 200px;
}

div.toc li {
        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
        margin-top: 5px;
        padding-left: 10px;
        padding-top: 2px;
}

div.toc h3 {
        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
	color: #4665A2;
        border-bottom: 0 none;
        margin: 0;
}

div.toc ul {
        list-style: none outside none;
        border: medium none;
        padding: 0px;
}       

div.toc li.level1 {
        margin-left: 0px;
}

div.toc li.level2 {
        margin-left: 15px;
}

div.toc li.level3 {
        margin-left: 30px;
}

div.toc li.level4 {
        margin-left: 45px;
}

.inherit_header {
        font-weight: bold;
        color: gray;
        cursor: pointer;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.inherit_header td {
        padding: 6px 0px 2px 5px;
}

.inherit {
        display: none;
}

tr.heading h2 {
        margin-top: 12px;
        margin-bottom: 4px;
}

/* tooltip related style info */

.ttc {
        position: absolute;
        display: none;
}

#powerTip {
	cursor: default;
	white-space: nowrap;
	background-color: white;
	border: 1px solid gray;
	border-radius: 4px 4px 4px 4px;
	box-shadow: 1px 1px 7px gray;
	display: none;
	font-size: smaller;
	max-width: 80%;
	opacity: 0.9;
	padding: 1ex 1em 1em;
	position: absolute;
	z-index: 2147483647;
}

#powerTip div.ttdoc {
        color: grey;
	font-style: italic;
}

#powerTip div.ttname a {
        font-weight: bold;
}

#powerTip div.ttname {
        font-weight: bold;
}

#powerTip div.ttdeci {
        color: #006318;
}

#powerTip div {
        margin: 0px;
        padding: 0px;
        font: 12px/16px Roboto,sans-serif;
}

#powerTip:before, #powerTip:after {
	content: "";
	position: absolute;
	margin: 0px;
}

#powerTip.n:after,  #powerTip.n:before,
#powerTip.s:after,  #powerTip.s:before,
#powerTip.w:after,  #powerTip.w:before,
#powerTip.e:after,  #powerTip.e:before,
#powerTip.ne:after, #powerTip.ne:before,
#powerTip.se:after, #powerTip.se:before,
#powerTip.nw:after, #powerTip.nw:before,
#powerTip.sw:after, #powerTip.sw:before {
	border: solid transparent;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
}

#powerTip.n:after,  #powerTip.s:after,
#powerTip.w:after,  #powerTip.e:after,
#powerTip.nw:after, #powerTip.ne:after,
#powerTip.sw:after, #powerTip.se:after {
	border-color: rgba(255, 255, 255, 0);
}

#powerTip.n:before,  #powerTip.s:before,
#powerTip.w:before,  #powerTip.e:before,
#powerTip.nw:before, #powerTip.ne:before,
#powerTip.sw:before, #powerTip.se:before {
	border-color: rgba(128, 128, 128, 0);
}

#powerTip.n:after,  #powerTip.n:before,
#powerTip.ne:after, #powerTip.ne:before,
#powerTip.nw:after, #powerTip.nw:before {
	top: 100%;
}

#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
	border-top-color: #ffffff;
	border-width: 10px;
	margin: 0px -10px;
}
#powerTip.n:before {
	border-top-color: #808080;
	border-width: 11px;
	margin: 0px -11px;
}
#powerTip.n:after, #powerTip.n:before {
	left: 50%;
}

#powerTip.nw:after, #powerTip.nw:before {
	right: 14px;
}

#powerTip.ne:after, #powerTip.ne:before {
	left: 14px;
}

#powerTip.s:after,  #powerTip.s:before,
#powerTip.se:after, #powerTip.se:before,
#powerTip.sw:after, #powerTip.sw:before {
	bottom: 100%;
}

#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
	border-bottom-color: #ffffff;
	border-width: 10px;
	margin: 0px -10px;
}

#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
	border-bottom-color: #808080;
	border-width: 11px;
	margin: 0px -11px;
}

#powerTip.s:after, #powerTip.s:before {
	left: 50%;
}

#powerTip.sw:after, #powerTip.sw:before {
	right: 14px;
}

#powerTip.se:after, #powerTip.se:before {
	left: 14px;
}

#powerTip.e:after, #powerTip.e:before {
	left: 100%;
}
#powerTip.e:after {
	border-left-color: #ffffff;
	border-width: 10px;
	top: 50%;
	margin-top: -10px;
}
#powerTip.e:before {
	border-left-color: #808080;
	border-width: 11px;
	top: 50%;
	margin-top: -11px;
}

#powerTip.w:after, #powerTip.w:before {
	right: 100%;
}
#powerTip.w:after {
	border-right-color: #ffffff;
	border-width: 10px;
	top: 50%;
	margin-top: -10px;
}
#powerTip.w:before {
	border-right-color: #808080;
	border-width: 11px;
	top: 50%;
	margin-top: -11px;
}

@media print
{
  #top { display: none; }
  #side-nav { display: none; }
  #nav-path { display: none; }
  body { overflow:visible; }
  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
  .summary { display: none; }
  .memitem { page-break-inside: avoid; }
  #doc-content
  {
    margin-left:0 !important;
    height:auto !important;
    width:auto !important;
    overflow:inherit;
    display:inline;
  }
}



================================================
FILE: docs/Doxygen/theme/header.html
================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css" />

<!-- Lang TAB Control -->
<link href="$relpath$tab_stylesheet.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="tab_change.js"></script>
<!-- Lang TAB Control -->

<!-- SyntaxHighlighter -->
<script type="text/javascript" src="sh/scripts/shCore.js"></script>
<script type="text/javascript" src="sh/scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="sh/scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="sh/scripts/shBrushRuby.js"></script>
<link type="text/css" rel="stylesheet" href="sh/styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="sh/styles/shThemeDefault.css"/>
<script type="text/javascript">
SyntaxHighlighter.config.clipboardSwf = 'sh/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
<!-- SyntaxHighlighter -->

$treeview
$search
$mathjax
</head>
<body>
<div id="top"><!-- do not remove this div! -->

<!--BEGIN TITLEAREA-->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <!--BEGIN PROJECT_LOGO-->
  <td id="projectlogo"><img alt="Logo" src="$relpath$$projectlogo"/></td>
  <!--END PROJECT_LOGO-->
  <!--BEGIN PROJECT_NAME-->
  <td style="padding-left: 0.5em;">
   <div id="projectname">$projectname
   <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
   </div>
   <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
  </td>
  <!--END PROJECT_NAME-->
  <!--BEGIN !PROJECT_NAME-->
   <!--BEGIN PROJECT_BRIEF-->
    <td style="padding-left: 0.5em;">
    <div id="projectbrief">$projectbrief</div>
    </td>
   <!--END PROJECT_BRIEF-->
  <!--END !PROJECT_NAME-->
  <!--BEGIN DISABLE_INDEX-->
   <!--BEGIN SEARCHENGINE-->
   <td>$searchbox</td>
   <!--END SEARCHENGINE-->
  <!--END DISABLE_INDEX-->
 </tr>
 </tbody>
</table>
</div>
<!--END TITLEAREA-->


================================================
FILE: docs/Doxygen/theme/tab_change.js
================================================
window.onload = function()
{
	var elements = document.getElementsByTagName("div");
	for(var i = 0; i < elements.length;i++)
	{
		
		if (elements[i].className == "ln_lang_tabs")
		{
			lnInitLangTab(elements[i])
			
			lnSelectTab(elements[i], "tab1");
			
		}
	}
}

function lnGetContentsElement(element)
{
	var elements = [];
	var children = element.childNodes;
	for(var i = 0; i < children.length;i++)
	{
		if (children[i].className == "ln_tab_content")
		{
			elements.push(children[i]);
		}
	}
	return elements;
}

function lnGetContentByName(contents, name)
{
	for(var i = 0; i < contents.length;i++)
	{
		if (contents[i].getAttribute("name") == name)
		{
			return contents[i];
		}
	}
	return null;
}

function lnInitLangTab(element)
{
	var childContents = lnGetContentsElement(element);
	var lis = element.getElementsByTagName("li");
	for(var i = 0; i < lis.length;i++)
	{
		var contentName = lis[i].getAttribute("name");
		var content = lnGetContentByName(childContents, contentName);
		lis[i].onclick = function()
		{
			var elements = document.getElementsByTagName("div");
			for(var i = 0; i < elements.length;i++)
			{
				if (elements[i].className == "ln_lang_tabs")
				{
					lnSelectTab(elements[i], this.getAttribute("name"));
				}
			}
		}
	}
}

// element : <div class="ln_lang_tabs">
function lnSelectTab(element, contentName)
{
	//alert("lnSelectTab");
	var childContents = lnGetContentsElement(element);
	var lis = element.getElementsByTagName("li");
	
	//alert("childContents.length:" + childContents.length);
	//alert("lis.length:" + lis.length);
	
	for(var i = 0; i < lis.length;i++)
	{
		var name = lis[i].getAttribute("name");
		var content = lnGetContentByName(childContents, name);
		//alert(name+":"+contentName);
		if (name)
		{
			if (name == contentName)
			{
				content.style.display		= "block";
				content.style.visibility	= "visible";
				lis[i].className		= "active";
			}
			else
			{
			
				content.style.display		= "none";
				content.style.visibility	= "hidden";
				lis[i].className			= "";
			}
		}
	}
}


================================================
FILE: docs/Doxygen/theme/tab_stylesheet.css
================================================

.ln_lang_tabs ul.ln_tab_menu
{
    list-style-type : none;
    margin          : 0px;
    padding         : 0px;
}

.ln_lang_tabs ul.ln_tab_menu li
{
    display         : inline;
    background      : #dddddd;
    padding         : 2px;
    margin          : 0px;
    border                  : 1px #777777 solid;
    border-top-left-radius  : 3px;
    border-top-right-radius : 3px;
}

.ln_lang_tabs ul.ln_tab_menu li.active
{
    background      : #ffffff;
    border-color    : #777777 #777777 #ffffff;
    z-index         : 2;
}

.ln_lang_tabs ul.ln_tab_menu a
{
    text-decoration : none;
    margin          : 3px;
    color           : #333333;
    cursor          : pointer;
}

.ln_lang_tabs .ln_tab_content
{
    width           : 80%;
    padding         : 0px;
    margin          : 0px;
    border          : 1px #777777 solid;
}



================================================
FILE: docs/HowToBuild-Ruby.md
================================================
How to build (Ruby package)
========

Install required packages
--------

### Windows

#### Chocolatey

```
choco install -y ruby
choco install -y msys2
refreshenv
ridk install 2 3
```

> msys2 is required for non-interactive execution of the risk command.
> https://community.chocolatey.org/packages/ruby


### macOS

`TBD`

### Linux

`TBD`

Build
--------

```
dotnet run -- MakePackage_Ruby
```


================================================
FILE: docs/HowToBuild-Web.md
================================================
ビルド方法
========

```
dotnet run -- BuildExternals wasm32-emscripten
dotnet run -- BuildEngine_Emscripten wasm32-emscripten
```

see [Development on Emscripte](./Development-Emscripten.md)



================================================
FILE: docs/HowToBuild.md
================================================
How to build
========

Install requirments
--------

### Windows

#### Visual Studio

Visual Studio 2019 をインストールしてください。

また、Visual Studio Installer では次のワークロードをインストールしてください。
* C++ によるデスクトップ開発
* .NET Core クロスプラットフォームの開発

#### Chocolatey

Chocolatey をインストールしてください。
― [Chocolatey installation](https://chocolatey.org/docs/installation)

続いて Windows PowerShell(管理者) で各パッケージをインストールします。 
- [Win + X] > [Windows PowerShell(管理者)]

```
choco install -y git
choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'
choco install -y nuget.commandline
choco install -y docfx
choco install -y doxygen.install
choco install -y python3
choco install -y wixtoolset
choco install -y vulkan-sdk
choco install -y mingw
```

### macOS

[dotnet](https://docs.microsoft.com/ja-jp/dotnet/core/macos-prerequisites?tabs=netcore2x) をインストールしてください。

その他のパッケージは homebrew でインストールします。
```
brew install git cmake doxygen docfx openssl python3
```


ビルドする
--------

Lumino のルートフォルダ (build.csproj のあるフォルダ) で次のコマンドを実行してください。

Windows (MSVC):
```
dotnet run -- BuildLocalPackage MSVC2019-x64-MT
```

macOS:
```
dotnet run -- BuildLocalPackage macOS
```

Visual Studio や Xcode のプロジェクトファイルは `build/ターゲット名` フォルダ内に作られます。これを開いて、各 IDE で開発できます。

また、上記コマンドは特定ターゲットのみのビルドを行います。Web や Android, iOS ターゲットなども含めてフルビルドする場合は次のコマンドを使用します。

```
dotnet run
```

なお、このコマンドは Lumino 本体のビルド、ドキュメントのビルド、リリースパッケージの作成までの一連のタスクを実行します。

より細かい単位でタスクを実行したい場合は次のコマンドを使用します。

```
dotnet run -- <タスク名>
```

<タスク名> は以下のフォルダ内の .cs ファイルに定義されているクラス名です。
- tools/LuminoBuild/Rules
- tools/LuminoBuild/Tasks


Language bindings
--------

- C lang (TBD)
- [Ruby](./HowToBuild-Ruby.md)


================================================
FILE: docs/ReleaseProcess.md
================================================
リリース手順
==========

バージョン番号の修正
----------

- src/LuminoCore/NuGet/Lumino.Core.nuspec
- tools/LuminoBuild/LuminoBuildTool.cs
    - GUID も修正する。`powershell -Command "[Guid]::NewGuid()"` で打ち出せる。
- tools/Bindings/Ruby/GemProject/lib/lumino/version.rb



ビルド
----------
### Windows

[Developer Command Prompt] で以下を実行する。

```
dotnet run
```

`build/NuGetPackage-LuminoCore/Lumino.Core.x.y.z.nupkg` を配布する。


Documents
----------

### Website

https://github.com/LuminoEngine/Website

build.py の中で Lumino リポジトリをタグ指定 clone している個所を変更する。

### リリースノート
※1.0.0 までは用意しない。




================================================
FILE: docs/Roadmap.md
================================================
Roadmap
====================

1.0.0 の後
--------------------

- ランタイムで様々なアセットを動的生成する機能
- 動画再生
- 各プラットフォームへの正式対応
- GUI 機能の強化
- 各種通信 (HTTP, TCP/UDP, UART)
- 各種デバイス対応 (マルチタッチ, ペンタブ, カメラ, AR/VR)
- 各種エフェクト (パーティクル,フリップアニメーション)


1.0.0
--------------------

0.10.0 までで実装した機能を正式に仕上げていく。

### Graphics
- シーンレンダリング
- 各種ポストエフェクト
- glTF/VRM 対応
- SkinnedMesh
- GUI

### Audio
- ゲーム用サウンドユーティリティ
- オーディオノードグラフ

### Input
- タッチ、マウス、キーボード、ゲームパッド
- ゲーム用キーコンフィグ

### その他
- 3D 物理演算
- アセット管理
- シーン遷移管理
- 描画速度の改善

0.10.0
--------------------
3Dゲーム開発に最低限必要な機能をトライアルできるレベルまで実装する。

### Rendering module
- Material
- RenderingContext
- CommandBuffer
- SceneRenderer
- RenderFeature (BasicShape, Text, Sprite...)
- ImageEffect

### Graphics module
- DirectX driver

### Input module
- Input
- InputGesture

### Language bindings
- HSP3


0.9.0
--------------------
複数プログラミング言語対応のためのトランスコンパイラを作成する。

- ~~C#(.NET)~~
- ~~Python~~
- Ruby


0.8.0
--------------------
LowLevel なグラフィックス機能を実装する。
まだ使いやすいとは言いづらいけど描画の基本機能を完成させる。

### Graphics module
- SwapChain
- VertexBuffer
- VertexDeclaration
- IndexBuffer
- Texture2D
- ~~Texture3D~~
- RenderTargetTexture
- RenderingThread
- GraphicsContext
- GeometryStructs
- Bitmap
- Vulkan driver

0.7.0
--------------------
HLSL を入力としたシェーダのトランスコンパイラを作成する。

### Graphics module
- ~~DirectX driver~~

### Shader module
- Shader


0.6.0
--------------------
コマンドラインツールでを使って、各プラットフォームで動作する C++ プロジェクトを作れるようにする。
動作としてはビューポート全体のクリアまで。

### Platform
- Html5
- Android
- iOS
- Windows
- Mac
- ~~Linux~~

### Framework
- Application

### UI
- UIMainWindow

### Graphics module
- OpenGL driver

### Tool
- lumino (command line tool)


0.5.0
--------------------
Core ライブラリの主要機能の移行作業。

### Base module
- Assertion
- Logger
- String
- CRC hash
- Typesafe string formatting
- Enum flags
- Environment
- List
- Locale
- RefObject
- ElapsedTimer
- Event
- Optional
- Result

### Text module
- TextEncoding
- ASCIIEncoding
- UTF8Encoding
- UTF16Encoding
- UTF32Encoding
- Win32CodePageEncoding

### IO module
- Path
- FileSystem
- FileStream
- MemoryStream
- TextReader
- StreamReader
- StringReader
- TextWriter
- StreamWriter
- StringWriter
- CommandLineParser

### Json module
- Json(SAX)
- Json(DOM)

### Math module
- Math
- AttitudeTransform
- Matrix
- Plane
- Quaternion
- Random
- Vector2
- Vector3
- Vector4
- ViewFrustum

### Serialization module
- Archive (Json)

### Release
- Nuget
- Doxygen reference
- docfx homepage







================================================
FILE: examples/Example-WebLibrary/CMakeLists.txt
================================================
cmake_min
Download .txt
gitextract_m_82tz9h/

├── .clang-format
├── .github/
│   ├── CONTRIBUTING.md
│   └── workflows/
│       ├── build-continuous.yml
│       └── package-continuous.yml
├── .gitignore
├── .gitmodules
├── .textlintrc
├── CMakeLists.txt
├── ImportLumino.cmake
├── LICENSE
├── README.md
├── assets/
│   └── Distributable/
│       └── assets/
│           └── LineWave.fx
├── bootstrap.bat
├── build.csproj
├── cmake/
│   └── LuminoConfig.cmake.in
├── docs/
│   ├── APIDesignPolicy.md
│   ├── CodingGuideline.md
│   ├── Development-Emscripten.md
│   ├── DevelopmentTips.md
│   ├── Doxygen/
│   │   ├── .gitignore
│   │   ├── Doxyfile
│   │   ├── build_doc.bat
│   │   └── theme/
│   │       ├── _tabs.css
│   │       ├── customdoxygen.css
│   │       ├── header.html
│   │       ├── tab_change.js
│   │       └── tab_stylesheet.css
│   ├── Gallery/
│   │   ├── 33-scene.jfif
│   │   └── 34-scene.jfif
│   ├── HowToBuild-Ruby.md
│   ├── HowToBuild-Web.md
│   ├── HowToBuild.md
│   ├── ReleaseProcess.md
│   └── Roadmap.md
├── examples/
│   ├── Example-WebLibrary/
│   │   ├── CMakeLists.txt
│   │   ├── PCH.h
│   │   ├── README.md
│   │   ├── import_funcs.js
│   │   ├── pre.js
│   │   ├── shell_minimal.html
│   │   └── src/
│   │       └── Main.cpp
│   ├── Experimental/
│   │   ├── Assets/
│   │   │   ├── Audio/
│   │   │   │   ├── ln21.mid
│   │   │   │   ├── ln23.ogg
│   │   │   │   └── lnme_victory1.ogg
│   │   │   ├── Level1.yml
│   │   │   ├── Models/
│   │   │   │   ├── Axis.blend
│   │   │   │   ├── Axis.glb
│   │   │   │   ├── Box-Blue.gltf
│   │   │   │   ├── Box-Red.gltf
│   │   │   │   ├── Box1.blend
│   │   │   │   ├── Box1.yml
│   │   │   │   ├── Z-Box.blend
│   │   │   │   └── Z-Box.glb
│   │   │   ├── Particle.yml
│   │   │   ├── Shader/
│   │   │   │   ├── Ring.fx
│   │   │   │   ├── SpriteTest.hlsl
│   │   │   │   ├── UIShaderTest.fx
│   │   │   │   ├── simple.frag
│   │   │   │   └── simple.vert
│   │   │   ├── SkinnedMesh1.blend
│   │   │   ├── SkinnedMesh1.glb
│   │   │   ├── SkinnedMesh2.blend
│   │   │   ├── SkinnedMesh2.glb
│   │   │   └── picture1.tga
│   │   ├── Basic/
│   │   │   ├── 0-Hello.cpp
│   │   │   ├── 0-Hello.hsp
│   │   │   ├── 0-Hello.rb
│   │   │   ├── 1-Graphics.cpp
│   │   │   ├── 1-Graphics.hsp
│   │   │   ├── 1-Graphics.rb
│   │   │   ├── 2-Entity.cpp
│   │   │   ├── 2-Entity.hsp
│   │   │   ├── 2-Entity.rb
│   │   │   ├── 2-Graphics-1.cpp
│   │   │   ├── 2-Graphics-1.hsp
│   │   │   ├── 2-Graphics-1.rb
│   │   │   ├── lumino.ini
│   │   │   ├── x-ObjectClass.cpp
│   │   │   ├── x-ObjectClass.hsp
│   │   │   └── x-ObjectClass.rb
│   │   ├── CMakeLists.txt
│   │   ├── Example.PCH.hpp
│   │   ├── Features/
│   │   │   ├── EntityTransform.cpp
│   │   │   ├── ShapeEntity.cpp
│   │   │   └── Sprite.cpp
│   │   ├── LuminoExample.hpp
│   │   ├── Main.cpp
│   │   └── Tutorial_Sandbox.cpp
│   └── FromVcpkg/
│       ├── CMakeLists.txt
│       ├── Main.cpp
│       └── README.md
├── external/
│   ├── ImportExternalLibraries.cmake
│   ├── ThirdPartyLicense
│   ├── custom-triplets/
│   │   ├── toolchain-wasm32-emscripten.cmake
│   │   └── wasm32-emscripten.cmake
│   ├── freetype2/
│   │   └── CMakeLists.txt
│   ├── glad/
│   │   ├── CMakeLists.txt
│   │   ├── Readme.md
│   │   ├── include/
│   │   │   ├── KHR/
│   │   │   │   └── khrplatform.h
│   │   │   └── glad/
│   │   │       └── glad.h
│   │   └── src/
│   │       └── glad.c
│   ├── libpng/
│   │   └── CMakeLists.txt
│   ├── lua/
│   │   └── CMakeLists.txt
│   ├── nanovg/
│   │   └── CMakeLists.txt
│   ├── vcpkg-2021.05.12-ports/
│   │   └── box2d/
│   │       └── portfile.cmake
│   └── zlib/
│       └── CMakeLists.txt
├── include/
│   └── LuminoEditor/
│       └── Plugin.hpp
├── lumino/
│   ├── FFI/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── LuminoFFI/
│   │   │       ├── Common.hpp
│   │   │       ├── FFI.hpp
│   │   │       ├── FlatCommon.h
│   │   │       └── Lumino.FlatC.generated.h
│   │   ├── src/
│   │   │   ├── FFI.cpp
│   │   │   ├── Internal.hpp
│   │   │   ├── Lumino.FlatC.generated.cpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── PCH.hpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       └── Test_FlatAPI.cpp
│   ├── Graphics/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoGraphics.cmake
│   │   ├── examples/
│   │   │   ├── Assets/
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Experimental-Rendering/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── ExternalOpenGLContext/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   ├── pre.js
│   │   │   │   └── serve.py
│   │   │   ├── HelloTriangle/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   ├── pre.js
│   │   │   │   └── serve.py
│   │   │   └── NWJSOverlap/
│   │   │       ├── .gitignore
│   │   │       ├── CMakeLists.txt
│   │   │       ├── README.md
│   │   │       ├── index.html
│   │   │       ├── index.js
│   │   │       ├── package.json
│   │   │       └── renderer_lib/
│   │   │           ├── import_funcs.js
│   │   │           ├── pre.js
│   │   │           ├── renderer_lib.cpp
│   │   │           └── renderer_lib.js
│   │   ├── include/
│   │   │   ├── LuminoGraphics/
│   │   │   │   ├── Animation/
│   │   │   │   │   ├── Animation.hpp
│   │   │   │   │   ├── AnimationClip.hpp
│   │   │   │   │   ├── AnimationClock.hpp
│   │   │   │   │   ├── AnimationContext.hpp
│   │   │   │   │   ├── AnimationCurve.hpp
│   │   │   │   │   ├── AnimationMixer.hpp
│   │   │   │   │   ├── AnimationTrack.hpp
│   │   │   │   │   ├── Animator.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── EasingFunctions.hpp
│   │   │   │   │   ├── Tween.hpp
│   │   │   │   │   └── WeightsAnimationTrack.hpp
│   │   │   │   ├── Bitmap/
│   │   │   │   │   ├── Bitmap.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── D3DCompilerAPI.hpp
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Font/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Font.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       ├── FontCore.hpp
│   │   │   │   │       ├── FontManager.hpp
│   │   │   │   │       └── TextLayoutEngine.hpp
│   │   │   │   ├── GPU/
│   │   │   │   │   ├── CommandQueue.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── ConstantBuffer.hpp
│   │   │   │   │   ├── DepthBuffer.hpp
│   │   │   │   │   ├── Graphics.hpp
│   │   │   │   │   ├── GraphicsCommandBuffer.hpp
│   │   │   │   │   ├── GraphicsContext.hpp
│   │   │   │   │   ├── GraphicsExtensionOpenGL.hpp
│   │   │   │   │   ├── GraphicsResource.hpp
│   │   │   │   │   ├── IndexBuffer.hpp
│   │   │   │   │   ├── RHI.hpp
│   │   │   │   │   ├── RenderPass.hpp
│   │   │   │   │   ├── SamplerState.hpp
│   │   │   │   │   ├── Shader.hpp
│   │   │   │   │   ├── ShaderDescriptor.hpp
│   │   │   │   │   ├── ShaderInterfaceFramework.hpp
│   │   │   │   │   ├── ShaderParameterValue.hpp
│   │   │   │   │   ├── SwapChain.hpp
│   │   │   │   │   ├── Texture.hpp
│   │   │   │   │   ├── VertexBuffer.hpp
│   │   │   │   │   ├── VertexLayout.hpp
│   │   │   │   │   ├── VulkanIntegration.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── RenderingCommandList.hpp
│   │   │   │   ├── Mesh/
│   │   │   │   │   ├── AnimationController.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── MeshModeEntity.hpp
│   │   │   │   │   ├── MeshModel.hpp
│   │   │   │   │   ├── MeshModelFactory.hpp
│   │   │   │   │   ├── MeshPrimitive.hpp
│   │   │   │   │   ├── MeshProcessing.hpp
│   │   │   │   │   └── SkinnedMeshModel.hpp
│   │   │   │   ├── RHIModule.hpp
│   │   │   │   ├── Rendering/
│   │   │   │   │   ├── CanvasContext.hpp
│   │   │   │   │   ├── CommandList.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Drawing.hpp
│   │   │   │   │   ├── FeatureRenderer/
│   │   │   │   │   │   ├── FrameRectRenderer.hpp
│   │   │   │   │   │   ├── MeshRenderer.hpp
│   │   │   │   │   │   ├── PrimitiveMeshRenderer.hpp
│   │   │   │   │   │   ├── ScreenRectangleRenderer.hpp
│   │   │   │   │   │   ├── ShapesRenderer.hpp
│   │   │   │   │   │   ├── SpriteRenderer.hpp
│   │   │   │   │   │   └── SpriteTextRenderer.hpp
│   │   │   │   │   ├── InstancedMeshesModel.hpp
│   │   │   │   │   ├── Kanata/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── KBatch.hpp
│   │   │   │   │   │   ├── KBatchList.hpp
│   │   │   │   │   │   ├── KBatchProxy.hpp
│   │   │   │   │   │   ├── KBatchProxyCollector.hpp
│   │   │   │   │   │   ├── KDrawCommand.hpp
│   │   │   │   │   │   ├── KPipelineState.hpp
│   │   │   │   │   │   ├── KRenderView.hpp
│   │   │   │   │   │   ├── KRenderingContext.hpp
│   │   │   │   │   │   ├── KSceneRenderPass.hpp
│   │   │   │   │   │   ├── KUnlitRenderPass.hpp
│   │   │   │   │   │   └── RenderFeature/
│   │   │   │   │   │       ├── KFrameRectRenderFeature.hpp
│   │   │   │   │   │       ├── KMeshRenderFeature.hpp
│   │   │   │   │   │       ├── KPrimitiveMeshRenderer.hpp
│   │   │   │   │   │       ├── KScreenRectangleRenderFeature.hpp
│   │   │   │   │   │       ├── KShapesRenderFeature.hpp
│   │   │   │   │   │       ├── KSpriteRenderFeature.hpp
│   │   │   │   │   │       └── KSpriteTextRenderFeature.hpp
│   │   │   │   │   ├── Material.hpp
│   │   │   │   │   ├── RenderFeature.hpp
│   │   │   │   │   ├── RenderView.hpp
│   │   │   │   │   ├── RenderingContext.hpp
│   │   │   │   │   ├── RenderingPipeline/
│   │   │   │   │   │   ├── FlatRenderingPipeline.hpp
│   │   │   │   │   │   ├── RenderingPipeline.hpp
│   │   │   │   │   │   └── StandardRenderingPipeline.hpp
│   │   │   │   │   ├── Shaders.hpp
│   │   │   │   │   ├── Vertex.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── RenderingManager.hpp
│   │   │   │   ├── Testing/
│   │   │   │   │   └── GraphicsTestHelper.hpp
│   │   │   │   ├── TextRendering/
│   │   │   │   │   └── Common.hpp
│   │   │   │   └── detail/
│   │   │   │       └── GraphicsManager.hpp
│   │   │   └── LuminoGraphics.hpp
│   │   ├── sandbox/
│   │   │   ├── Assets/
│   │   │   │   ├── Sprite.hlsl
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   └── Main.cpp
│   │   ├── src/
│   │   │   ├── Animation/
│   │   │   │   ├── Animation.cpp
│   │   │   │   ├── AnimationClip.cpp
│   │   │   │   ├── AnimationClock.cpp
│   │   │   │   ├── AnimationContext.cpp
│   │   │   │   ├── AnimationCurve.cpp
│   │   │   │   ├── AnimationManager.cpp
│   │   │   │   ├── AnimationManager.hpp
│   │   │   │   ├── AnimationMixer.cpp
│   │   │   │   ├── AnimationTrack.cpp
│   │   │   │   ├── Animator.cpp
│   │   │   │   ├── BvhImporter.cpp
│   │   │   │   ├── BvhImporter.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Tween.cpp
│   │   │   │   ├── VmdLoader.cpp
│   │   │   │   ├── VmdLoader.hpp
│   │   │   │   └── WeightsAnimationTrack.cpp
│   │   │   ├── Bitmap/
│   │   │   │   ├── Bitmap.cpp
│   │   │   │   ├── BitmapEncoding.cpp
│   │   │   │   └── BitmapEncoding.hpp
│   │   │   ├── Font/
│   │   │   │   ├── Font.cpp
│   │   │   │   ├── FontCore.cpp
│   │   │   │   ├── FontManager.cpp
│   │   │   │   ├── FreeTypeFont.cpp
│   │   │   │   ├── FreeTypeFont.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── FontAwesome5Free-Regular-400.otf.inl
│   │   │   │   │   ├── FontAwesome5Free-Solid-900.otf.inl
│   │   │   │   │   ├── FontAwesome5Map.inl
│   │   │   │   │   ├── LICENSE.txt
│   │   │   │   │   ├── LICENSE_J
│   │   │   │   │   ├── mplus-1c-regular-ascii-subset.ttf.inl
│   │   │   │   │   └── mplus-1m-regular-ascii-subset.ttf.inl
│   │   │   │   └── TextLayoutEngine.cpp
│   │   │   ├── GPU/
│   │   │   │   ├── CommandQueue.cpp
│   │   │   │   ├── ConstantBuffer.cpp
│   │   │   │   ├── DepthBuffer.cpp
│   │   │   │   ├── Graphics.cpp
│   │   │   │   ├── GraphicsCommandBuffer.cpp
│   │   │   │   ├── GraphicsContext.cpp
│   │   │   │   ├── GraphicsExtensionOpenGL.cpp
│   │   │   │   ├── GraphicsProfiler.cpp
│   │   │   │   ├── GraphicsProfiler.hpp
│   │   │   │   ├── GraphicsResource.cpp
│   │   │   │   ├── IndexBuffer.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── RHI.cpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── RegisterTypes.cpp
│   │   │   │   ├── RegisterTypes.inl
│   │   │   │   ├── RenderPass.cpp
│   │   │   │   ├── RenderPassCache.cpp
│   │   │   │   ├── RenderPassCache.hpp
│   │   │   │   ├── RenderTargetTextureCache.cpp
│   │   │   │   ├── RenderTargetTextureCache.hpp
│   │   │   │   ├── RenderingCommandList.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── default.frag
│   │   │   │   │   ├── default.frag.spv
│   │   │   │   │   ├── default.frag.spv.inl
│   │   │   │   │   ├── default.vert
│   │   │   │   │   ├── default.vert.spv
│   │   │   │   │   └── default.vert.spv.inl
│   │   │   │   ├── SamplerState.cpp
│   │   │   │   ├── Shader.cpp
│   │   │   │   ├── ShaderDescriptor.cpp
│   │   │   │   ├── ShaderInterfaceFramework.cpp
│   │   │   │   ├── ShaderParameterValue.cpp
│   │   │   │   ├── SingleFrameAllocator.cpp
│   │   │   │   ├── SingleFrameAllocator.hpp
│   │   │   │   ├── StreamingBufferAllocator.cpp
│   │   │   │   ├── StreamingBufferAllocator.hpp
│   │   │   │   ├── SwapChain.cpp
│   │   │   │   ├── Texture.cpp
│   │   │   │   ├── VertexBuffer.cpp
│   │   │   │   ├── VertexLayout.cpp
│   │   │   │   └── VulkanIntegration.cpp
│   │   │   ├── GraphicsManager.cpp
│   │   │   ├── Mesh/
│   │   │   │   ├── AnimationController.cpp
│   │   │   │   ├── CCDIKSolver.cpp
│   │   │   │   ├── CCDIKSolver.hpp
│   │   │   │   ├── GMesh.cpp
│   │   │   │   ├── GMesh.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MeshBoneMapper.cpp
│   │   │   │   ├── MeshBoneMapper.hpp
│   │   │   │   ├── MeshGeneraters/
│   │   │   │   │   ├── CylinderMeshGenerater.cpp
│   │   │   │   │   ├── CylinderMeshGenerater.hpp
│   │   │   │   │   ├── MeshGenerater.cpp
│   │   │   │   │   ├── MeshGenerater.hpp
│   │   │   │   │   ├── TeapotMeshGenerater.cpp
│   │   │   │   │   └── TeapotMeshGenerater.hpp
│   │   │   │   ├── MeshImporters/
│   │   │   │   │   ├── FbxImporter.cpp
│   │   │   │   │   ├── FbxImporter.hpp
│   │   │   │   │   ├── GLTFImporter.cpp
│   │   │   │   │   ├── GLTFImporter.hpp
│   │   │   │   │   ├── MeshImporter.cpp
│   │   │   │   │   ├── MeshImporter.hpp
│   │   │   │   │   ├── MqoImporter.cpp
│   │   │   │   │   ├── MqoImporter.hpp
│   │   │   │   │   ├── ObjMeshImporter.cpp
│   │   │   │   │   ├── ObjMeshImporter.hpp
│   │   │   │   │   ├── PmxImporter.cpp
│   │   │   │   │   ├── PmxImporter.hpp
│   │   │   │   │   ├── VRMImporter.cpp
│   │   │   │   │   └── VRMImporter.hpp
│   │   │   │   ├── MeshManager.cpp
│   │   │   │   ├── MeshManager.hpp
│   │   │   │   ├── MeshModel.cpp
│   │   │   │   ├── MeshModelEntity.cpp
│   │   │   │   ├── MeshModelFactory.cpp
│   │   │   │   ├── MeshPrimitive.cpp
│   │   │   │   ├── MeshProcessing.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── toon01.png.h
│   │   │   │   │   ├── toon02.png.h
│   │   │   │   │   ├── toon03.png.h
│   │   │   │   │   ├── toon04.png.h
│   │   │   │   │   ├── toon05.png.h
│   │   │   │   │   ├── toon06.png.h
│   │   │   │   │   ├── toon07.png.h
│   │   │   │   │   ├── toon08.png.h
│   │   │   │   │   ├── toon09.png.h
│   │   │   │   │   └── toon10.png.h
│   │   │   │   └── SkinnedMeshModel.cpp
│   │   │   ├── RHIModule.cpp
│   │   │   ├── Rendering/
│   │   │   │   ├── CanvasContext.cpp
│   │   │   │   ├── ClusteredShadingSceneRenderer.cpp
│   │   │   │   ├── ClusteredShadingSceneRenderer.hpp
│   │   │   │   ├── CommandList.cpp
│   │   │   │   ├── CommandListServer.cpp
│   │   │   │   ├── CommandListServer.hpp
│   │   │   │   ├── Docs/
│   │   │   │   │   └── Shader.md
│   │   │   │   ├── DrawElementListBuilder.cpp
│   │   │   │   ├── DrawElementListBuilder.hpp
│   │   │   │   ├── Drawing.cpp
│   │   │   │   ├── FeatureRenderer/
│   │   │   │   │   ├── FrameRectRenderer.cpp
│   │   │   │   │   ├── MeshRenderer.cpp
│   │   │   │   │   ├── PrimitiveMeshRenderer.cpp
│   │   │   │   │   ├── ScreenRectangleRenderer.cpp
│   │   │   │   │   ├── ShapesRenderer.cpp
│   │   │   │   │   ├── SpriteRenderer.cpp
│   │   │   │   │   └── SpriteTextRenderer.cpp
│   │   │   │   ├── InstancedMeshesModel.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Kanata/
│   │   │   │   │   ├── KBatch.cpp
│   │   │   │   │   ├── KBatchList.cpp
│   │   │   │   │   ├── KBatchProxy.cpp
│   │   │   │   │   ├── KBatchProxyCollector.cpp
│   │   │   │   │   ├── KDrawCommand.cpp
│   │   │   │   │   ├── KPipelineState.cpp
│   │   │   │   │   ├── KRenderView.cpp
│   │   │   │   │   ├── KRenderingContext.cpp
│   │   │   │   │   ├── KSceneRenderPass.cpp
│   │   │   │   │   ├── KStreamingMeshBufferAllocator.cpp
│   │   │   │   │   ├── KStreamingMeshBufferAllocator.hpp
│   │   │   │   │   ├── KUnlitRenderPass.cpp
│   │   │   │   │   └── RenderFeature/
│   │   │   │   │       ├── KFrameRectRenderFeature.cpp
│   │   │   │   │       ├── KMeshRenderFeature.cpp
│   │   │   │   │       ├── KPrimitiveMeshRenderer.cpp
│   │   │   │   │       ├── KScreenRectangleRenderFeature.cpp
│   │   │   │   │       ├── KShapesRenderFeature.cpp
│   │   │   │   │       ├── KSpriteRenderFeature.cpp
│   │   │   │   │       └── KSpriteTextRenderFeature.cpp
│   │   │   │   ├── LightClusters.cpp
│   │   │   │   ├── LightClusters.hpp
│   │   │   │   ├── Material.cpp
│   │   │   │   ├── RLIs/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── RLIBatch.cpp
│   │   │   │   │   ├── RLIBatch.hpp
│   │   │   │   │   ├── RLIBatchList.cpp
│   │   │   │   │   ├── RLIBatchList.hpp
│   │   │   │   │   ├── RLIBatchState.cpp
│   │   │   │   │   ├── RLIBatchState.hpp
│   │   │   │   │   ├── RLICulling.cpp
│   │   │   │   │   ├── RLICulling.hpp
│   │   │   │   │   ├── RLIMaterial.cpp
│   │   │   │   │   └── RLIMaterial.hpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── RenderElement.cpp
│   │   │   │   ├── RenderElement.hpp
│   │   │   │   ├── RenderFeature/
│   │   │   │   │   ├── BlitRenderFeature.cpp
│   │   │   │   │   ├── BlitRenderFeature.hpp
│   │   │   │   │   ├── ClearRenderFeature.cpp
│   │   │   │   │   ├── ClearRenderFeature.hpp
│   │   │   │   │   ├── ExtensionRenderFeature.cpp
│   │   │   │   │   ├── ExtensionRenderFeature.hpp
│   │   │   │   │   ├── FrameRectRenderFeature.cpp
│   │   │   │   │   ├── FrameRectRenderFeature.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshRenderFeature.cpp
│   │   │   │   │   ├── MeshRenderFeature.hpp
│   │   │   │   │   ├── NanoVGHelper.cpp
│   │   │   │   │   ├── NanoVGHelper.hpp
│   │   │   │   │   ├── PathRenderFeature.cpp
│   │   │   │   │   ├── PathRenderFeature.hpp
│   │   │   │   │   ├── PrimitiveRenderFeature.cpp
│   │   │   │   │   ├── PrimitiveRenderFeature.hpp
│   │   │   │   │   ├── RenderFeature.cpp
│   │   │   │   │   ├── ShapesRenderFeature.cpp
│   │   │   │   │   ├── ShapesRenderFeature.hpp
│   │   │   │   │   ├── SpriteRenderFeature.cpp
│   │   │   │   │   ├── SpriteRenderFeature.hpp
│   │   │   │   │   ├── SpriteTextRenderFeature.cpp
│   │   │   │   │   └── SpriteTextRenderFeature.hpp
│   │   │   │   ├── RenderStage.cpp
│   │   │   │   ├── RenderStage.hpp
│   │   │   │   ├── RenderView.cpp
│   │   │   │   ├── RenderingContext.cpp
│   │   │   │   ├── RenderingManager.cpp
│   │   │   │   ├── RenderingPipeline/
│   │   │   │   │   ├── FlatRenderingPipeline.cpp
│   │   │   │   │   ├── RenderingPipeline.cpp
│   │   │   │   │   └── StandardRenderingPipeline.cpp
│   │   │   │   ├── RenderingProfiler.cpp
│   │   │   │   ├── RenderingProfiler.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── BlackShader.fx
│   │   │   │   │   ├── BlackShader.lcfx
│   │   │   │   │   ├── BlackShader.lcfx.inl
│   │   │   │   │   ├── BlendShape.compute
│   │   │   │   │   ├── ClusteredShadingDefault.fx
│   │   │   │   │   ├── ClusteredShadingDefault.lcfx
│   │   │   │   │   ├── ClusteredShadingDefault.lcfx.inl
│   │   │   │   │   ├── CopyScreen.fx
│   │   │   │   │   ├── CopyScreen.lcfx
│   │   │   │   │   ├── CopyScreen.lcfx.inl
│   │   │   │   │   ├── FlareSprite.fx
│   │   │   │   │   ├── FlareSprite.lcfx
│   │   │   │   │   ├── FlareSprite.lcfx.inl
│   │   │   │   │   ├── ForwardGBufferPrepass.fx
│   │   │   │   │   ├── ForwardGBufferPrepass.lcfx
│   │   │   │   │   ├── ForwardGBufferPrepass.lcfx.inl
│   │   │   │   │   ├── ImGui.fx
│   │   │   │   │   ├── ImGui.lcfx
│   │   │   │   │   ├── ImGui.lcfx.inl
│   │   │   │   │   ├── InfinitePlaneGrid.fx
│   │   │   │   │   ├── InfinitePlaneGrid.lcfx
│   │   │   │   │   ├── InfinitePlaneGrid.lcfx.inl
│   │   │   │   │   ├── LightDisc.fx
│   │   │   │   │   ├── LightDisc.lcfx
│   │   │   │   │   ├── LightDisc.lcfx.inl
│   │   │   │   │   ├── MToon.fx
│   │   │   │   │   ├── MToon.lcfx
│   │   │   │   │   ├── MToon.lcfx.inl
│   │   │   │   │   ├── Random.png.inl
│   │   │   │   │   ├── Reflector.fx
│   │   │   │   │   ├── Reflector.lcfx
│   │   │   │   │   ├── Reflector.lcfx.inl
│   │   │   │   │   ├── ShadowCaster.fx
│   │   │   │   │   ├── ShadowCaster.lcfx
│   │   │   │   │   ├── ShadowCaster.lcfx.inl
│   │   │   │   │   ├── Sprite.fx
│   │   │   │   │   ├── Sprite.lcfx
│   │   │   │   │   ├── Sprite.lcfx.inl
│   │   │   │   │   ├── nanovg.fx
│   │   │   │   │   ├── nanovg.lcfx
│   │   │   │   │   └── nanovg.lcfx.inl
│   │   │   │   ├── SceneRenderer.cpp
│   │   │   │   ├── SceneRenderer.hpp
│   │   │   │   ├── Shaders.cpp
│   │   │   │   ├── UnLigitingSceneRenderer.cpp
│   │   │   │   └── UnLigitingSceneRenderer.hpp
│   │   │   ├── Testing/
│   │   │   │   └── GraphicsTestHelper.cpp
│   │   │   ├── TextRendering/
│   │   │   │   ├── FontGlyphCache.cpp
│   │   │   │   ├── FontGlyphCache.hpp
│   │   │   │   ├── TextRenderingCache.cpp
│   │   │   │   └── TextRenderingCache.hpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── Assets/
│   │       │   ├── Mesh/
│   │       │   │   ├── SkinnedAxis1.blend
│   │       │   │   ├── SkinnedAxis1.glb
│   │       │   │   ├── SkinnedMesh2.blend
│   │       │   │   ├── SkinnedMesh2.glb
│   │       │   │   ├── StaticAxis1.blend
│   │       │   │   └── StaticAxis1.glb
│   │       │   └── ShaderCompiler/
│   │       │       ├── ShaderVariant.hlsl
│   │       │       └── Simple.hlsl
│   │       ├── CMakeLists.txt
│   │       ├── Main.cpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       ├── Test_Mesh.cpp
│   │       ├── Test_Rendering_Mesh.cpp
│   │       ├── Test_Rendering_Sprite.cpp
│   │       ├── Test_Shader_ShaderCompiler.cpp
│   │       └── pch.hpp
│   ├── GraphicsRHI/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoGraphicsRHI.cmake
│   │   ├── examples/
│   │   │   ├── GraphicsRHI-1-ClearScreen/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   └── GraphicsRHI-HelloTriangle/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Main.cpp
│   │   │       └── simple.hlsl
│   │   ├── include/
│   │   │   ├── LuminoGraphicsRHI/
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── GraphicsDeviceContext.hpp
│   │   │   │   ├── GraphicsExtension.hpp
│   │   │   │   ├── GraphicsExtensionVulkan.hpp
│   │   │   │   ├── RHIBitmap.hpp
│   │   │   │   ├── RHIHelper.hpp
│   │   │   │   ├── RHIObject.hpp
│   │   │   │   ├── RHIObjectCache.hpp
│   │   │   │   ├── RHIProfiler.hpp
│   │   │   │   ├── RHIResource.hpp
│   │   │   │   ├── ShaderCompiler/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── ShaderHelper.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       ├── D3DCompilerAPI.hpp
│   │   │   │   │       ├── ShaderManager.hpp
│   │   │   │   │       └── UnifiedShader.hpp
│   │   │   │   ├── Vulkan/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── VulkanBuffers.hpp
│   │   │   │   │   ├── VulkanCommandList.hpp
│   │   │   │   │   ├── VulkanDescriptorPool.hpp
│   │   │   │   │   ├── VulkanDeviceContext.hpp
│   │   │   │   │   ├── VulkanHelper.hpp
│   │   │   │   │   ├── VulkanShaderPass.hpp
│   │   │   │   │   ├── VulkanTextures.hpp
│   │   │   │   │   └── VulkanVertexLayout.hpp
│   │   │   │   ├── WebGPU/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── WebGPUCommandList.hpp
│   │   │   │   │   ├── WebGPUDevice.hpp
│   │   │   │   │   ├── WebGPUHelper.hpp
│   │   │   │   │   ├── WebGPURenderPass.hpp
│   │   │   │   │   ├── WebGPURenderTarget.hpp
│   │   │   │   │   └── WebGPUSwapChain.hpp
│   │   │   │   └── detail/
│   │   │   │       └── GraphicsRHIManager.hpp
│   │   │   └── LuminoGraphicsRHI.hpp
│   │   ├── src/
│   │   │   ├── DirectX12/
│   │   │   │   ├── DX12Buffers.cpp
│   │   │   │   ├── DX12Buffers.hpp
│   │   │   │   ├── DX12CommandList.cpp
│   │   │   │   ├── DX12CommandList.hpp
│   │   │   │   ├── DX12DescriptorPool.cpp
│   │   │   │   ├── DX12DescriptorPool.hpp
│   │   │   │   ├── DX12DeviceContext.cpp
│   │   │   │   ├── DX12DeviceContext.hpp
│   │   │   │   ├── DX12Helper.cpp
│   │   │   │   ├── DX12Helper.hpp
│   │   │   │   ├── DX12RenderPass.cpp
│   │   │   │   ├── DX12RenderPass.hpp
│   │   │   │   ├── DX12ShaderPass.cpp
│   │   │   │   ├── DX12ShaderPass.hpp
│   │   │   │   ├── DX12SingleFrameAllocator.cpp
│   │   │   │   ├── DX12SingleFrameAllocator.hpp
│   │   │   │   ├── DX12SwapChain.cpp
│   │   │   │   ├── DX12SwapChain.hpp
│   │   │   │   ├── DX12Textures.cpp
│   │   │   │   └── DX12Textures.hpp
│   │   │   ├── GraphicsDeviceContext.cpp
│   │   │   ├── GraphicsRHIManager.cpp
│   │   │   ├── OpenGL/
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── GLCommandList.cpp
│   │   │   │   ├── GLCommandList.hpp
│   │   │   │   ├── GLDepthBuffer.cpp
│   │   │   │   ├── GLDepthBuffer.hpp
│   │   │   │   ├── GLDescriptorPool.cpp
│   │   │   │   ├── GLDescriptorPool.hpp
│   │   │   │   ├── GLFWSwapChain.cpp
│   │   │   │   ├── GLFWSwapChain.hpp
│   │   │   │   ├── GLHelper.cpp
│   │   │   │   ├── GLHelper.hpp
│   │   │   │   ├── GLIndexBuffer.cpp
│   │   │   │   ├── GLIndexBuffer.hpp
│   │   │   │   ├── GLRenderPass.cpp
│   │   │   │   ├── GLRenderPass.hpp
│   │   │   │   ├── GLShaderPass.cpp
│   │   │   │   ├── GLShaderPass.hpp
│   │   │   │   ├── GLTextures.cpp
│   │   │   │   ├── GLTextures.hpp
│   │   │   │   ├── GLUniformBuffer.cpp
│   │   │   │   ├── GLUniformBuffer.hpp
│   │   │   │   ├── GLVertexBuffer.cpp
│   │   │   │   ├── GLVertexBuffer.hpp
│   │   │   │   ├── OpenGLDeviceContext.cpp
│   │   │   │   └── OpenGLDeviceContext.hpp
│   │   │   ├── RHIBitmap.cpp
│   │   │   ├── RHIHelper.cpp
│   │   │   ├── RHIObject.cpp
│   │   │   ├── RHIObjectCache.cpp
│   │   │   ├── RHIProfiler.cpp
│   │   │   ├── RHIResource.cpp
│   │   │   ├── Resource/
│   │   │   │   ├── GenerateMipMaps.hlsl
│   │   │   │   └── GenerateMipMaps.hlsl.inl
│   │   │   ├── ShaderCompiler/
│   │   │   │   ├── HLSLMetadataParser.cpp
│   │   │   │   ├── HLSLMetadataParser.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Lexer/
│   │   │   │   │   ├── AbstractLexer.cpp
│   │   │   │   │   ├── AbstractLexer.hpp
│   │   │   │   │   ├── CppLexer.cpp
│   │   │   │   │   ├── CppLexer.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   └── Token.hpp
│   │   │   │   ├── MultiCompileCombination.cpp
│   │   │   │   ├── MultiCompileCombination.hpp
│   │   │   │   ├── Readme.md
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── Lumino.fxh
│   │   │   │   │   ├── Lumino.fxh.inl
│   │   │   │   │   ├── LuminoForward.fxh
│   │   │   │   │   ├── LuminoForward.fxh.inl
│   │   │   │   │   ├── LuminoNormalMap.fxh
│   │   │   │   │   ├── LuminoNormalMap.fxh.inl
│   │   │   │   │   ├── LuminoPBR.fxh
│   │   │   │   │   ├── LuminoPBR.fxh.inl
│   │   │   │   │   ├── LuminoShadow.fxh
│   │   │   │   │   ├── LuminoShadow.fxh.inl
│   │   │   │   │   ├── LuminoSkinning.fxh
│   │   │   │   │   ├── LuminoSkinning.fxh.inl
│   │   │   │   │   └── Readme.md
│   │   │   │   ├── ShaderHelper.cpp
│   │   │   │   ├── ShaderManager.cpp
│   │   │   │   ├── ShaderTranspiler.cpp
│   │   │   │   ├── ShaderTranspiler.hpp
│   │   │   │   ├── UnifiedShader.cpp
│   │   │   │   ├── UnifiedShaderCompiler.cpp
│   │   │   │   ├── UnifiedShaderCompiler.hpp
│   │   │   │   ├── Unity.md
│   │   │   │   ├── Windows/
│   │   │   │   │   └── D3DCompilerAPI.cpp
│   │   │   │   ├── pch.cpp
│   │   │   │   └── pch.hpp
│   │   │   ├── Vulkan/
│   │   │   │   ├── VulkanBuffers.cpp
│   │   │   │   ├── VulkanCommandList.cpp
│   │   │   │   ├── VulkanDescriptorPool.cpp
│   │   │   │   ├── VulkanDeviceContext.cpp
│   │   │   │   ├── VulkanHelper.cpp
│   │   │   │   ├── VulkanShaderPass.cpp
│   │   │   │   ├── VulkanSingleFrameAllocator.cpp
│   │   │   │   ├── VulkanSingleFrameAllocator.hpp
│   │   │   │   ├── VulkanTextures.cpp
│   │   │   │   └── VulkanVertexLayout.cpp
│   │   │   ├── WebGPU/
│   │   │   │   ├── README.md
│   │   │   │   ├── WebGPUCommandList.cpp
│   │   │   │   ├── WebGPUDevice.cpp
│   │   │   │   ├── WebGPUHelper.cpp
│   │   │   │   ├── WebGPURenderPass.cpp
│   │   │   │   ├── WebGPURenderTarget.cpp
│   │   │   │   └── WebGPUSwapChain.cpp
│   │   │   └── pch.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Main.cpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       └── pch.hpp
│   ├── LuminoCore/
│   │   ├── CMakeLists.txt
│   │   ├── Info.plist
│   │   ├── LuminoCore.natvis
│   │   ├── LuminoCoreSources.cmake
│   │   ├── NuGet/
│   │   │   ├── Lumino.Core.PropertyUI.xml
│   │   │   ├── Lumino.Core.nuspec
│   │   │   ├── Lumino.Core.props
│   │   │   └── Lumino.Core.targets
│   │   ├── cmake/
│   │   │   ├── LuminoConfig-Common.cmake
│   │   │   └── LuminoConfig-LuminoCore.cmake
│   │   ├── include/
│   │   │   ├── LuminoCore/
│   │   │   │   ├── Base/
│   │   │   │   │   ├── Array.hpp
│   │   │   │   │   ├── Array.ipp
│   │   │   │   │   ├── Assertion.hpp
│   │   │   │   │   ├── Buffer.hpp
│   │   │   │   │   ├── CRCHash.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── DateTime.hpp
│   │   │   │   │   ├── ElapsedTimer.hpp
│   │   │   │   │   ├── EnumFlags.hpp
│   │   │   │   │   ├── Environment.hpp
│   │   │   │   │   ├── FixedArray.hpp
│   │   │   │   │   ├── Format.hpp
│   │   │   │   │   ├── LinearAllocator.hpp
│   │   │   │   │   ├── List.hpp
│   │   │   │   │   ├── Locale.hpp
│   │   │   │   │   ├── Logger.hpp
│   │   │   │   │   ├── Optional.hpp
│   │   │   │   │   ├── Optional2.hpp
│   │   │   │   │   ├── OptionalRef.ipp
│   │   │   │   │   ├── Platform.hpp
│   │   │   │   │   ├── Ref.inl
│   │   │   │   │   ├── Ref1.inl
│   │   │   │   │   ├── Ref2.inl
│   │   │   │   │   ├── RefObject.hpp
│   │   │   │   │   ├── Result.hpp
│   │   │   │   │   ├── StlHelper.hpp
│   │   │   │   │   ├── String.hpp
│   │   │   │   │   ├── StringFormat.hpp
│   │   │   │   │   ├── StringFormat.inl
│   │   │   │   │   ├── StringHelper.hpp
│   │   │   │   │   ├── StringHelper.ipp
│   │   │   │   │   ├── URefObject.hpp
│   │   │   │   │   ├── UnicodeUtils.hpp
│   │   │   │   │   ├── Uuid.hpp
│   │   │   │   │   └── detail/
│   │   │   │   │       └── fmt/
│   │   │   │   │           ├── core.h
│   │   │   │   │           ├── format-inl.h
│   │   │   │   │           ├── format.h
│   │   │   │   │           └── xchar.h
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Geometries/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── GeometryStructs.hpp
│   │   │   │   ├── IO/
│   │   │   │   │   ├── BinaryReader.hpp
│   │   │   │   │   ├── BinaryWriter.hpp
│   │   │   │   │   ├── CommandLineParser.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Console.hpp
│   │   │   │   │   ├── DllLoader.hpp
│   │   │   │   │   ├── FileInfo.hpp
│   │   │   │   │   ├── FileStream.hpp
│   │   │   │   │   ├── FileSystem.hpp
│   │   │   │   │   ├── IOError.hpp
│   │   │   │   │   ├── MemoryStream.hpp
│   │   │   │   │   ├── Path.hpp
│   │   │   │   │   ├── Process.hpp
│   │   │   │   │   ├── Stream.hpp
│   │   │   │   │   ├── StreamReader.hpp
│   │   │   │   │   ├── StreamWriter.hpp
│   │   │   │   │   ├── StringReader.hpp
│   │   │   │   │   ├── StringWriter.hpp
│   │   │   │   │   ├── TextReader.hpp
│   │   │   │   │   └── TextWriter.hpp
│   │   │   │   ├── Json/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── JsonDiagnostics.hpp
│   │   │   │   │   ├── JsonDocument.hpp
│   │   │   │   │   ├── JsonReader.hpp
│   │   │   │   │   └── JsonWriter.hpp
│   │   │   │   ├── Math/
│   │   │   │   │   ├── AttitudeTransform.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Geometries.hpp
│   │   │   │   │   ├── Math.hpp
│   │   │   │   │   ├── MathSerialization.hpp
│   │   │   │   │   ├── Matrix.hpp
│   │   │   │   │   ├── Plane.hpp
│   │   │   │   │   ├── Quaternion.hpp
│   │   │   │   │   ├── Random.hpp
│   │   │   │   │   ├── Vector2.hpp
│   │   │   │   │   ├── Vector3.hpp
│   │   │   │   │   ├── Vector4.hpp
│   │   │   │   │   ├── Vector4OpDeclareTemplate.inl
│   │   │   │   │   ├── Vector4OpImplementTemplate.inl
│   │   │   │   │   └── ViewFrustum.hpp
│   │   │   │   ├── Runtime/
│   │   │   │   │   ├── Archive.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Object.hpp
│   │   │   │   │   ├── Property.hpp
│   │   │   │   │   ├── RuntimeContext.hpp
│   │   │   │   │   ├── TypeInfo.hpp
│   │   │   │   │   └── Variant.hpp
│   │   │   │   ├── Serialization/
│   │   │   │   │   ├── ArchiveStore.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Serialization.hpp
│   │   │   │   │   └── SerializeTypes.inl
│   │   │   │   ├── Testing/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── TestHelper.hpp
│   │   │   │   ├── Text/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Encoding.hpp
│   │   │   │   │   └── EncodingConverter.hpp
│   │   │   │   └── Threading/
│   │   │   │       ├── Common.hpp
│   │   │   │       ├── ConditionEvent.hpp
│   │   │   │       └── Thread.hpp
│   │   │   └── LuminoCore.hpp
│   │   ├── src/
│   │   │   ├── Base/
│   │   │   │   ├── Assertion.cpp
│   │   │   │   ├── Buffer.cpp
│   │   │   │   ├── CRCHash.cpp
│   │   │   │   ├── CRTHelper.h
│   │   │   │   ├── DateTime.cpp
│   │   │   │   ├── ElapsedTimer.cpp
│   │   │   │   ├── ElapsedTimer_Linux.hpp
│   │   │   │   ├── ElapsedTimer_Mac.hpp
│   │   │   │   ├── ElapsedTimer_Win32.hpp
│   │   │   │   ├── Environment.cpp
│   │   │   │   ├── Environment_Linux.hpp
│   │   │   │   ├── Environment_Mac.hpp
│   │   │   │   ├── Environment_Win32.hpp
│   │   │   │   ├── Format.cpp
│   │   │   │   ├── Foundation_macOS.mm
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── LinearAllocator.cpp
│   │   │   │   ├── Locale.cpp
│   │   │   │   ├── Logger.cpp
│   │   │   │   ├── Platform.cpp
│   │   │   │   ├── RefObject.cpp
│   │   │   │   ├── Result.cpp
│   │   │   │   ├── StlHelper.cpp
│   │   │   │   ├── String.cpp
│   │   │   │   ├── StringHelper.cpp
│   │   │   │   ├── StringView.cpp
│   │   │   │   ├── URefObject.cpp
│   │   │   │   ├── UnicodeUtils.cpp
│   │   │   │   └── Uuid.cpp
│   │   │   ├── Geometries/
│   │   │   │   └── GeometryStructs.cpp
│   │   │   ├── IO/
│   │   │   │   ├── BinaryReader.cpp
│   │   │   │   ├── BinaryWriter.cpp
│   │   │   │   ├── CommandLineParser.cpp
│   │   │   │   ├── Console.cpp
│   │   │   │   ├── DllLoader.cpp
│   │   │   │   ├── FileInfo.cpp
│   │   │   │   ├── FileStream.cpp
│   │   │   │   ├── FileSystem.cpp
│   │   │   │   ├── FileSystem_Unix.hpp
│   │   │   │   ├── FileSystem_Win32.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MemoryStream.cpp
│   │   │   │   ├── Path.cpp
│   │   │   │   ├── PathHelper.cpp
│   │   │   │   ├── PathHelper.hpp
│   │   │   │   ├── PathHelper.ipp
│   │   │   │   ├── Process.cpp
│   │   │   │   ├── Process_Unix.hpp
│   │   │   │   ├── Process_Win32.hpp
│   │   │   │   ├── Stream.cpp
│   │   │   │   ├── StreamReader.cpp
│   │   │   │   ├── StreamWriter.cpp
│   │   │   │   ├── StringReader.cpp
│   │   │   │   ├── StringWriter.cpp
│   │   │   │   ├── TextReader.cpp
│   │   │   │   └── TextWriter.cpp
│   │   │   ├── Internal.hpp
│   │   │   ├── Json/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── JsonDiagnostics.cpp
│   │   │   │   ├── JsonDocument.cpp
│   │   │   │   ├── JsonReader.cpp
│   │   │   │   └── JsonWriter.cpp
│   │   │   ├── LuminoCore.PCH.h
│   │   │   ├── Math/
│   │   │   │   ├── Asm.h
│   │   │   │   ├── AttitudeTransform.cpp
│   │   │   │   ├── Geometries.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Math.cpp
│   │   │   │   ├── Matrix.cpp
│   │   │   │   ├── Plane.cpp
│   │   │   │   ├── Quaternion.cpp
│   │   │   │   ├── Random.cpp
│   │   │   │   ├── Vector2.cpp
│   │   │   │   ├── Vector3.cpp
│   │   │   │   ├── Vector4.cpp
│   │   │   │   └── ViewFrustum.cpp
│   │   │   ├── Runtime/
│   │   │   │   ├── Archive.cpp
│   │   │   │   ├── Object.cpp
│   │   │   │   ├── Property.cpp
│   │   │   │   ├── RuntimeContext.cpp
│   │   │   │   ├── TypeInfo.cpp
│   │   │   │   ├── Variant.cpp
│   │   │   │   └── rapidjson/
│   │   │   │       ├── allocators.h
│   │   │   │       ├── cursorstreamwrapper.h
│   │   │   │       ├── document.h
│   │   │   │       ├── encodedstream.h
│   │   │   │       ├── encodings.h
│   │   │   │       ├── error/
│   │   │   │       │   ├── en.h
│   │   │   │       │   └── error.h
│   │   │   │       ├── filereadstream.h
│   │   │   │       ├── filewritestream.h
│   │   │   │       ├── fwd.h
│   │   │   │       ├── internal/
│   │   │   │       │   ├── biginteger.h
│   │   │   │       │   ├── clzll.h
│   │   │   │       │   ├── diyfp.h
│   │   │   │       │   ├── dtoa.h
│   │   │   │       │   ├── ieee754.h
│   │   │   │       │   ├── itoa.h
│   │   │   │       │   ├── meta.h
│   │   │   │       │   ├── pow10.h
│   │   │   │       │   ├── regex.h
│   │   │   │       │   ├── stack.h
│   │   │   │       │   ├── strfunc.h
│   │   │   │       │   ├── strtod.h
│   │   │   │       │   └── swap.h
│   │   │   │       ├── istreamwrapper.h
│   │   │   │       ├── license.txt
│   │   │   │       ├── memorybuffer.h
│   │   │   │       ├── memorystream.h
│   │   │   │       ├── msinttypes/
│   │   │   │       │   ├── inttypes.h
│   │   │   │       │   └── stdint.h
│   │   │   │       ├── ostreamwrapper.h
│   │   │   │       ├── pointer.h
│   │   │   │       ├── prettywriter.h
│   │   │   │       ├── rapidjson.h
│   │   │   │       ├── reader.h
│   │   │   │       ├── schema.h
│   │   │   │       ├── stream.h
│   │   │   │       ├── stringbuffer.h
│   │   │   │       └── writer.h
│   │   │   ├── Serialization/
│   │   │   │   ├── ArchiveStore.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── Serialization.cpp
│   │   │   ├── Testing/
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── TestHelper.cpp
│   │   │   ├── Text/
│   │   │   │   ├── ASCIIEncoding.cpp
│   │   │   │   ├── ASCIIEncoding.hpp
│   │   │   │   ├── ConvertTable_EUCJP_EXT.cpp
│   │   │   │   ├── ConvertTable_SJIS.cpp
│   │   │   │   ├── DBCSEncoding.cpp
│   │   │   │   ├── DBCSEncoding.hpp
│   │   │   │   ├── Encoding.cpp
│   │   │   │   ├── EncodingConverter.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MakeTable/
│   │   │   │   │   └── MakeEucJpExtTable.rb
│   │   │   │   ├── UTF16Encoding.cpp
│   │   │   │   ├── UTF16Encoding.hpp
│   │   │   │   ├── UTF32Encoding.cpp
│   │   │   │   ├── UTF32Encoding.hpp
│   │   │   │   ├── UTF8Encoding.cpp
│   │   │   │   ├── UTF8Encoding.hpp
│   │   │   │   ├── Win32CodePageEncoding.cpp
│   │   │   │   └── Win32CodePageEncoding.hpp
│   │   │   └── Threading/
│   │   │       ├── ConditionEvent.cpp
│   │   │       ├── ConditionEvent_POSIX.hpp
│   │   │       ├── ConditionEvent_Win32.hpp
│   │   │       ├── Internal.hpp
│   │   │       ├── Thread.cpp
│   │   │       ├── Thread_POSIX.hpp
│   │   │       └── Thread_Win32.hpp
│   │   └── test/
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── TestData/
│   │       │   ├── ASCII_CR.txt
│   │       │   ├── ASCII_CRLF.txt
│   │       │   ├── ASCII_LF.txt
│   │       │   ├── JSONExample1.json
│   │       │   ├── JSONExample2.json
│   │       │   ├── JSONExample3.json
│   │       │   ├── JSONExample4.json
│   │       │   ├── JSONExample5.json
│   │       │   ├── Test_Json_JsonDocument_Save1.json
│   │       │   ├── UTF8_BOM_LF.txt
│   │       │   └── UTF8_LF.txt
│   │       ├── Test_Base_Array.cpp
│   │       ├── Test_Base_Assertion.cpp
│   │       ├── Test_Base_ByteBuffer.cpp
│   │       ├── Test_Base_EnumFlags.cpp
│   │       ├── Test_Base_Environment.cpp
│   │       ├── Test_Base_Formatter.cpp
│   │       ├── Test_Base_List.cpp
│   │       ├── Test_Base_Logger.cpp
│   │       ├── Test_Base_Optional.cpp
│   │       ├── Test_Base_RefObject.cpp
│   │       ├── Test_Base_Result.cpp
│   │       ├── Test_Base_String.cpp
│   │       ├── Test_Base_StringView.cpp
│   │       ├── Test_Base_URefObject.cpp
│   │       ├── Test_IO_BinaryReader.cpp
│   │       ├── Test_IO_CommandLineParser.cpp
│   │       ├── Test_IO_FileStream.cpp
│   │       ├── Test_IO_FileSystem.cpp
│   │       ├── Test_IO_Path.cpp
│   │       ├── Test_IO_Process.cpp
│   │       ├── Test_IO_StreamReader.cpp
│   │       ├── Test_IO_TextWriter.cpp
│   │       ├── Test_Json_JsonReader.cpp
│   │       ├── Test_Json_JsonWriter.cpp
│   │       ├── Test_Math.cpp
│   │       ├── Test_Math_AttitudeTransform.cpp
│   │       ├── Test_Math_Common.hpp
│   │       ├── Test_Math_Matrix.cpp
│   │       ├── Test_Math_Plane.cpp
│   │       ├── Test_Math_Quaternion.cpp
│   │       ├── Test_Math_Vector2.cpp
│   │       ├── Test_Math_Vector3.cpp
│   │       ├── Test_Math_Vector4.cpp
│   │       ├── Test_Math_ViewFrustum.cpp
│   │       ├── Test_Runtime_Serializer.cpp
│   │       ├── Test_Text_Encoding.cpp
│   │       ├── Test_Text_EncodingConverter.cpp
│   │       └── pre.js
│   ├── LuminoEngine/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoEngine.cmake
│   │   ├── examples/
│   │   │   ├── Assets/
│   │   │   │   └── simple.hlsl
│   │   │   ├── CMakeLists.txt
│   │   │   ├── EditorWithImGui/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── EmptyWindow/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Example-Engine-MeshObject/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Example-Engine-NWJSOverlap/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── README.md
│   │   │   │   ├── app/
│   │   │   │   │   ├── ExampleApp.cpp
│   │   │   │   │   ├── app.js
│   │   │   │   │   ├── import_funcs.js
│   │   │   │   │   └── pre.js
│   │   │   │   ├── index.html
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── Example_Engine_ExternalGLFW/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   ├── Experimental_Demo/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Main.cpp
│   │   │   └── HelloApp/
│   │   │       ├── CMakeLists.txt
│   │   │       └── Main.cpp
│   │   ├── include/
│   │   │   ├── Lumino.hpp
│   │   │   ├── LuminoEngine/
│   │   │   │   ├── Audio/
│   │   │   │   │   ├── Audio.hpp
│   │   │   │   │   ├── AudioBus.hpp
│   │   │   │   │   ├── AudioContext.hpp
│   │   │   │   │   ├── AudioDestinationNode.hpp
│   │   │   │   │   ├── AudioGainNode.hpp
│   │   │   │   │   ├── AudioListener.hpp
│   │   │   │   │   ├── AudioNode.hpp
│   │   │   │   │   ├── AudioPannerNode.hpp
│   │   │   │   │   ├── AudioProcessorNode.hpp
│   │   │   │   │   ├── AudioSourceNode.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── GameAudio.hpp
│   │   │   │   │   ├── InternalSharedMutex.inc
│   │   │   │   │   └── Sound.hpp
│   │   │   │   ├── Common.hpp
│   │   │   │   ├── Editor/
│   │   │   │   │   └── Editor.hpp
│   │   │   │   ├── Effect/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── EffectContext.hpp
│   │   │   │   │   ├── EffectModel.hpp
│   │   │   │   │   ├── ParticleEffectModel.hpp
│   │   │   │   │   └── ParticleEffectModel2.hpp
│   │   │   │   ├── Engine/
│   │   │   │   │   ├── Application.hpp
│   │   │   │   │   ├── ApplicationRunner.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Debug.hpp
│   │   │   │   │   ├── Engine.hpp
│   │   │   │   │   ├── EngineSettings.hpp
│   │   │   │   │   └── Time.hpp
│   │   │   │   ├── EngineContext.hpp
│   │   │   │   ├── Input/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Input.hpp
│   │   │   │   │   ├── InputBinding.hpp
│   │   │   │   │   ├── InputController.hpp
│   │   │   │   │   └── Mouse.hpp
│   │   │   │   ├── Physics/
│   │   │   │   │   ├── CollisionShape.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Joint.hpp
│   │   │   │   │   ├── PhysicsObject.hpp
│   │   │   │   │   ├── PhysicsWorld.hpp
│   │   │   │   │   ├── PhysicsWorld2D.hpp
│   │   │   │   │   ├── RigidBody.hpp
│   │   │   │   │   ├── SoftBody.hpp
│   │   │   │   │   └── TriggerBody.hpp
│   │   │   │   ├── PostEffect/
│   │   │   │   │   ├── BloomPostEffect.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── DepthOfFieldPostEffect.hpp
│   │   │   │   │   ├── FXAAPostEffect.hpp
│   │   │   │   │   ├── FilmicPostEffect.hpp
│   │   │   │   │   ├── LightShaftPostEffect.hpp
│   │   │   │   │   ├── PostEffect.hpp
│   │   │   │   │   ├── SSAOPostEffect.hpp
│   │   │   │   │   ├── SSRPostEffect.hpp
│   │   │   │   │   ├── ScreenBlurPostEffect.hpp
│   │   │   │   │   ├── TonePostEffect.hpp
│   │   │   │   │   ├── TonemapPostEffect.hpp
│   │   │   │   │   └── TransitionPostEffect.hpp
│   │   │   │   ├── Scene/
│   │   │   │   │   ├── Camera.hpp
│   │   │   │   │   ├── CameraOrbitControlComponent.hpp
│   │   │   │   │   ├── CharacterController.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Component.hpp
│   │   │   │   │   ├── Effect/
│   │   │   │   │   │   ├── ParticleEmitter.hpp
│   │   │   │   │   │   └── ParticleEmitterComponent.hpp
│   │   │   │   │   ├── Level.hpp
│   │   │   │   │   ├── Light.hpp
│   │   │   │   │   ├── Mesh/
│   │   │   │   │   │   ├── InstancedMeshes.hpp
│   │   │   │   │   │   ├── MeshComponent.hpp
│   │   │   │   │   │   ├── SkinnedMesh.hpp
│   │   │   │   │   │   └── StaticMesh.hpp
│   │   │   │   │   ├── MeshTilemap/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── MeshTilemapComponent.hpp
│   │   │   │   │   │   ├── MeshTilemapLayer.hpp
│   │   │   │   │   │   ├── MeshTilemapModel.hpp
│   │   │   │   │   │   └── MeshTileset.hpp
│   │   │   │   │   ├── MeshVoxelmap/
│   │   │   │   │   │   ├── Common.hpp
│   │   │   │   │   │   ├── MeshVoxelmapComponent.hpp
│   │   │   │   │   │   ├── MeshVoxelmapLayer.hpp
│   │   │   │   │   │   ├── MeshVoxelmapModel.hpp
│   │   │   │   │   │   └── MeshVoxelset.hpp
│   │   │   │   │   ├── Physics/
│   │   │   │   │   │   ├── Collision.hpp
│   │   │   │   │   │   ├── RigidBody2DComponent.hpp
│   │   │   │   │   │   └── RigidBodyComponent.hpp
│   │   │   │   │   ├── Raycaster.hpp
│   │   │   │   │   ├── Reflection/
│   │   │   │   │   │   ├── OffscreenWorldRenderView.hpp
│   │   │   │   │   │   ├── Reflector.hpp
│   │   │   │   │   │   └── ReflectorComponent.hpp
│   │   │   │   │   ├── Scene.hpp
│   │   │   │   │   ├── SceneConductor.hpp
│   │   │   │   │   ├── Shapes/
│   │   │   │   │   │   ├── ConeMesh.hpp
│   │   │   │   │   │   ├── CylinderMesh.hpp
│   │   │   │   │   │   ├── MeshPrimitiveComponent.hpp
│   │   │   │   │   │   ├── MeshPrimitives.hpp
│   │   │   │   │   │   ├── PathShape.hpp
│   │   │   │   │   │   └── TeapotMesh.hpp
│   │   │   │   │   ├── Sprite/
│   │   │   │   │   │   └── InstancedSprites.hpp
│   │   │   │   │   ├── Sprite.hpp
│   │   │   │   │   ├── Text/
│   │   │   │   │   │   ├── Text.hpp
│   │   │   │   │   │   └── TextComponent.hpp
│   │   │   │   │   ├── TransformControls.hpp
│   │   │   │   │   ├── VisualObject.hpp
│   │   │   │   │   ├── World.hpp
│   │   │   │   │   ├── WorldObject.hpp
│   │   │   │   │   └── WorldRenderView.hpp
│   │   │   │   ├── Scripting/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   └── Interpreter.hpp
│   │   │   │   ├── Tilemap/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Tilemap.hpp
│   │   │   │   │   ├── TilemapComponent.hpp
│   │   │   │   │   ├── TilemapLayer.hpp
│   │   │   │   │   ├── TilemapModel.hpp
│   │   │   │   │   ├── Tileset.hpp
│   │   │   │   │   └── Voxel.hpp
│   │   │   │   ├── UI/
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Controls/
│   │   │   │   │   │   ├── UIButton.hpp
│   │   │   │   │   │   ├── UICheckBox.hpp
│   │   │   │   │   │   ├── UIComboBox.hpp
│   │   │   │   │   │   ├── UIControl.hpp
│   │   │   │   │   │   ├── UIDialog.hpp
│   │   │   │   │   │   ├── UILinkLabel.hpp
│   │   │   │   │   │   ├── UIListBox.hpp
│   │   │   │   │   │   ├── UIListBoxItem.hpp
│   │   │   │   │   │   ├── UIListView.hpp
│   │   │   │   │   │   ├── UIPropertyFields.hpp
│   │   │   │   │   │   ├── UIScrollView.hpp
│   │   │   │   │   │   ├── UISplitter.hpp
│   │   │   │   │   │   ├── UITextField.hpp
│   │   │   │   │   │   ├── UITreeBox.hpp
│   │   │   │   │   │   ├── UITreeView.hpp
│   │   │   │   │   │   └── UIWindow.hpp
│   │   │   │   │   ├── ImGuiIntegration.hpp
│   │   │   │   │   ├── Layout/
│   │   │   │   │   │   ├── UIGridLayout.hpp
│   │   │   │   │   │   └── UILayoutPanel.hpp
│   │   │   │   │   ├── RoutingRenderView.hpp
│   │   │   │   │   ├── UI.hpp
│   │   │   │   │   ├── UIActiveTimer.hpp
│   │   │   │   │   ├── UIAdorner.hpp
│   │   │   │   │   ├── UIColors.hpp
│   │   │   │   │   ├── UICommand.hpp
│   │   │   │   │   ├── UIContainerElement.hpp
│   │   │   │   │   ├── UIContext.hpp
│   │   │   │   │   ├── UIElement.hpp
│   │   │   │   │   ├── UIEvents.hpp
│   │   │   │   │   ├── UIFocusNavigator.hpp
│   │   │   │   │   ├── UIFrameWindow.hpp
│   │   │   │   │   ├── UIIcon.hpp
│   │   │   │   │   ├── UIItemsElement.hpp
│   │   │   │   │   ├── UIItemsModel.hpp
│   │   │   │   │   ├── UILayoutElement.hpp
│   │   │   │   │   ├── UIMessageTextArea.hpp
│   │   │   │   │   ├── UIPopup.hpp
│   │   │   │   │   ├── UIRenderView.hpp
│   │   │   │   │   ├── UIRenderingContext.hpp
│   │   │   │   │   ├── UISprite.hpp
│   │   │   │   │   ├── UIStyle.hpp
│   │   │   │   │   ├── UIStyleAnimation.hpp
│   │   │   │   │   ├── UITabBar.hpp
│   │   │   │   │   ├── UIText.hpp
│   │   │   │   │   ├── UIViewport.hpp
│   │   │   │   │   └── imgui/
│   │   │   │   │       └── .gitignore
│   │   │   │   └── Visual/
│   │   │   │       ├── CameraComponent.hpp
│   │   │   │       ├── Common.hpp
│   │   │   │       ├── EmojiComponent.hpp
│   │   │   │       ├── LightComponent.hpp
│   │   │   │       ├── SpriteComponent.hpp
│   │   │   │       └── VisualComponent.hpp
│   │   │   └── LuminoEngine.hpp
│   │   ├── sandbox/
│   │   │   ├── Assets/
│   │   │   │   ├── Audio/
│   │   │   │   │   ├── ln21.mid
│   │   │   │   │   ├── ln23.ogg
│   │   │   │   │   └── lnme_victory1.ogg
│   │   │   │   ├── Level1.yml
│   │   │   │   ├── Models/
│   │   │   │   │   ├── Axis.blend
│   │   │   │   │   ├── Axis.glb
│   │   │   │   │   ├── Box-Blue.gltf
│   │   │   │   │   ├── Box-Red.gltf
│   │   │   │   │   ├── Box1.blend
│   │   │   │   │   ├── Box1.yml
│   │   │   │   │   ├── Z-Box.blend
│   │   │   │   │   └── Z-Box.glb
│   │   │   │   ├── Particle.yml
│   │   │   │   ├── Shader/
│   │   │   │   │   ├── Ring.fx
│   │   │   │   │   ├── SpriteTest.hlsl
│   │   │   │   │   ├── UIShaderTest.fx
│   │   │   │   │   ├── simple.frag
│   │   │   │   │   └── simple.vert
│   │   │   │   ├── SkinnedMesh1.blend
│   │   │   │   ├── SkinnedMesh1.glb
│   │   │   │   ├── SkinnedMesh2.blend
│   │   │   │   ├── SkinnedMesh2.glb
│   │   │   │   └── picture1.tga
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Common.hpp
│   │   │   ├── Example_GameAudio.cpp
│   │   │   ├── Example_MainLoop.cpp
│   │   │   ├── Example_MeshViewer.cpp
│   │   │   ├── Example_MessageWindow.cpp
│   │   │   ├── Example_Navigator.cpp
│   │   │   ├── Example_Shader.cpp
│   │   │   ├── Example_SoundControl.cpp
│   │   │   ├── Example_Sprite.cpp
│   │   │   ├── Example_Tilemap.cpp
│   │   │   ├── Example_UIControls.cpp
│   │   │   ├── Example_glTFSampleViewer.cpp
│   │   │   ├── Experiment_CharacterController.cpp
│   │   │   ├── Experiment_Editor.cpp
│   │   │   ├── Experiment_MeshCollider.cpp
│   │   │   ├── Experiment_Reflector.cpp
│   │   │   ├── Experiment_SSR.cpp
│   │   │   ├── Experiment_Scripting.cpp
│   │   │   ├── Experiment_SelectObject.cpp
│   │   │   ├── Experiment_SerializeLevel.cpp
│   │   │   ├── Experiment_Shadow.cpp
│   │   │   ├── Experiment_Voxel.cpp
│   │   │   ├── SandboxMain.cpp
│   │   │   ├── Sandbox_Builder.cpp
│   │   │   ├── Sandbox_EmptyApp.cpp
│   │   │   ├── Sandbox_GameScene.cpp
│   │   │   ├── Sandbox_GridListBox.cpp
│   │   │   ├── Sandbox_InstancedMesh.cpp
│   │   │   ├── Sandbox_MeshTilemap.cpp
│   │   │   ├── Sandbox_Particle.cpp
│   │   │   ├── Sandbox_PathRendering.cpp
│   │   │   ├── Sandbox_PathShape.cpp
│   │   │   ├── Sandbox_Physics.cpp
│   │   │   ├── Sandbox_Physics2.cpp
│   │   │   ├── Sandbox_PostEffect.cpp
│   │   │   ├── Sandbox_Sky.cpp
│   │   │   ├── Sandbox_UIShader.cpp
│   │   │   ├── Tutorial_Sandbox.cpp
│   │   │   └── UISandbox.cpp
│   │   ├── src/
│   │   │   ├── Audio/
│   │   │   │   ├── ARIs/
│   │   │   │   │   ├── ARIAudioBus.cpp
│   │   │   │   │   ├── ARIAudioBus.hpp
│   │   │   │   │   ├── ARIDestinationNode.cpp
│   │   │   │   │   ├── ARIDestinationNode.hpp
│   │   │   │   │   ├── ARIGainNode.cpp
│   │   │   │   │   ├── ARIGainNode.hpp
│   │   │   │   │   ├── ARIInputPin.cpp
│   │   │   │   │   ├── ARIInputPin.hpp
│   │   │   │   │   ├── ARINode.cpp
│   │   │   │   │   ├── ARINode.hpp
│   │   │   │   │   ├── ARIOutputPin.cpp
│   │   │   │   │   ├── ARIOutputPin.hpp
│   │   │   │   │   ├── ARIPannerNode.cpp
│   │   │   │   │   ├── ARIPannerNode.hpp
│   │   │   │   │   ├── ARIProcessorNode.cpp
│   │   │   │   │   ├── ARIProcessorNode.hpp
│   │   │   │   │   ├── ARISourceNode.cpp
│   │   │   │   │   ├── ARISourceNode.hpp
│   │   │   │   │   ├── ChromiumWebCore.cpp
│   │   │   │   │   ├── ChromiumWebCore.hpp
│   │   │   │   │   ├── Common.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── VectorMath.cpp
│   │   │   │   │   └── VectorMath.h
│   │   │   │   ├── Audio.cpp
│   │   │   │   ├── AudioBus.cpp
│   │   │   │   ├── AudioContext.cpp
│   │   │   │   ├── AudioDestinationNode.cpp
│   │   │   │   ├── AudioGainNode.cpp
│   │   │   │   ├── AudioListener.cpp
│   │   │   │   ├── AudioManager.cpp
│   │   │   │   ├── AudioManager.hpp
│   │   │   │   ├── AudioNode.cpp
│   │   │   │   ├── AudioPannerNode.cpp
│   │   │   │   ├── AudioProcessorNode.cpp
│   │   │   │   ├── AudioSourceNode.cpp
│   │   │   │   ├── Backend/
│   │   │   │   │   ├── ALAudioDevice.cpp
│   │   │   │   │   ├── ALAudioDevice.hpp
│   │   │   │   │   ├── AudioDevice.cpp
│   │   │   │   │   ├── AudioDevice.hpp
│   │   │   │   │   ├── DSoundAudioDevice.cpp
│   │   │   │   │   ├── DSoundAudioDevice.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── SDLAudioDevice.cpp
│   │   │   │   │   └── SDLAudioDevice.hpp
│   │   │   │   ├── Decoder/
│   │   │   │   │   ├── AudioDecoder.cpp
│   │   │   │   │   ├── AudioDecoder.hpp
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── Mp3AudioDecoder.cpp
│   │   │   │   │   ├── Mp3AudioDecoder.hpp
│   │   │   │   │   ├── OggAudioDecoder.cpp
│   │   │   │   │   ├── OggAudioDecoder.hpp
│   │   │   │   │   ├── WaveAudioDecoder.cpp
│   │   │   │   │   └── WaveAudioDecoder.hpp
│   │   │   │   ├── GameAudio.cpp
│   │   │   │   ├── GameAudioImpl.cpp
│   │   │   │   ├── GameAudioImpl.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── README.md
│   │   │   │   └── Sound.cpp
│   │   │   ├── Editor/
│   │   │   │   ├── DevelopmentTool.cpp
│   │   │   │   ├── DevelopmentTool.hpp
│   │   │   │   ├── Editor.cpp
│   │   │   │   ├── EditorViewportToolPane.cpp
│   │   │   │   ├── EditorViewportToolPane.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── MainViewportToolPane.cpp
│   │   │   │   ├── MainViewportToolPane.hpp
│   │   │   │   ├── ProfilerToolPane.cpp
│   │   │   │   └── ProfilerToolPane.hpp
│   │   │   ├── Effect/
│   │   │   │   ├── EffectContext.cpp
│   │   │   │   ├── EffectManager.cpp
│   │   │   │   ├── EffectManager.hpp
│   │   │   │   ├── EffectModel.cpp
│   │   │   │   ├── EffekseerEffect.cpp
│   │   │   │   ├── EffekseerEffect.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── ParticleEffectInstance.cpp
│   │   │   │   ├── ParticleEffectInstance.hpp
│   │   │   │   ├── ParticleEffectModel.cpp
│   │   │   │   ├── ParticleEffectModel2.cpp
│   │   │   │   ├── ParticleEffectRenderer.cpp
│   │   │   │   ├── ParticleEffectRenderer.hpp
│   │   │   │   └── README.md
│   │   │   ├── Engine/
│   │   │   │   ├── Application.cpp
│   │   │   │   ├── ApplicationRunner.cpp
│   │   │   │   ├── Debug.cpp
│   │   │   │   ├── Engine.cpp
│   │   │   │   ├── EngineDomain.hpp
│   │   │   │   ├── EngineManager.cpp
│   │   │   │   ├── EngineManager.hpp
│   │   │   │   ├── EngineProfiler.cpp
│   │   │   │   ├── EngineProfiler.hpp
│   │   │   │   ├── EngineSettings.cpp
│   │   │   │   ├── FpsController.cpp
│   │   │   │   ├── FpsController.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   └── Time.cpp
│   │   │   ├── EngineContext.cpp
│   │   │   ├── Input/
│   │   │   │   ├── CocoaInputDriver.cpp
│   │   │   │   ├── CocoaInputDriver.h
│   │   │   │   ├── GLFWInputDriver.cpp
│   │   │   │   ├── GLFWInputDriver.hpp
│   │   │   │   ├── Input.cpp
│   │   │   │   ├── InputBinding.cpp
│   │   │   │   ├── InputController.cpp
│   │   │   │   ├── InputDriver.cpp
│   │   │   │   ├── InputDriver.hpp
│   │   │   │   ├── InputManager.cpp
│   │   │   │   ├── InputManager.hpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Mouse.cpp
│   │   │   │   ├── Win32InputDriver.cpp
│   │   │   │   ├── Win32InputDriver.hpp
│   │   │   │   ├── Win32JoystickDriver.cpp
│   │   │   │   └── Win32JoystickDriver.hpp
│   │   │   ├── Internal.hpp
│   │   │   ├── LuminoEngine.PCH.h
│   │   │   ├── ManagerClass.template.cpp
│   │   │   ├── ManagerClass.template.hpp
│   │   │   ├── Physics/
│   │   │   │   ├── BulletUtils.hpp
│   │   │   │   ├── CollisionShape.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Joint.cpp
│   │   │   │   ├── PhysicsDebugRenderer.cpp
│   │   │   │   ├── PhysicsDebugRenderer.hpp
│   │   │   │   ├── PhysicsManager.cpp
│   │   │   │   ├── PhysicsManager.hpp
│   │   │   │   ├── PhysicsObject.cpp
│   │   │   │   ├── PhysicsWorld.cpp
│   │   │   │   ├── PhysicsWorld2D.cpp
│   │   │   │   ├── README.md
│   │   │   │   ├── RigidBody.cpp
│   │   │   │   ├── SoftBody.cpp
│   │   │   │   └── TriggerBody.cpp
│   │   │   ├── PostEffect/
│   │   │   │   ├── BloomPostEffect.cpp
│   │   │   │   ├── DepthOfFieldPostEffect.cpp
│   │   │   │   ├── FXAAPostEffect.cpp
│   │   │   │   ├── FilmicPostEffect.cpp
│   │   │   │   ├── LightShaftPostEffect.cpp
│   │   │   │   ├── PostEffect.cpp
│   │   │   │   ├── PostEffectRenderer.cpp
│   │   │   │   ├── PostEffectRenderer.hpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── BloomComposite.fx
│   │   │   │   │   ├── BloomComposite.lcfx
│   │   │   │   │   ├── BloomComposite.lcfx.inl
│   │   │   │   │   ├── Copy.fx
│   │   │   │   │   ├── Copy.lcfx
│   │   │   │   │   ├── Copy.lcfx.inl
│   │   │   │   │   ├── DepthOfField.fx
│   │   │   │   │   ├── DepthOfField.lcfx
│   │   │   │   │   ├── DepthOfField.lcfx.inl
│   │   │   │   │   ├── FXAA.fx
│   │   │   │   │   ├── FXAA.lcfx
│   │   │   │   │   ├── FXAA.lcfx.inl
│   │   │   │   │   ├── FilmicPostEffect.fx
│   │   │   │   │   ├── FilmicPostEffect.lcfx
│   │   │   │   │   ├── FilmicPostEffect.lcfx.inl
│   │   │   │   │   ├── LuminosityHighPassShader.fx
│   │   │   │   │   ├── LuminosityHighPassShader.lcfx
│   │   │   │   │   ├── LuminosityHighPassShader.lcfx.inl
│   │   │   │   │   ├── RadialBlur.fx
│   │   │   │   │   ├── RadialBlur.lcfx
│   │   │   │   │   ├── RadialBlur.lcfx.inl
│   │   │   │   │   ├── SSAOBlurAndComposite.fx
│   │   │   │   │   ├── SSAOBlurAndComposite.lcfx
│   │   │   │   │   ├── SSAOBlurAndComposite.lcfx.inl
│   │   │   │   │   ├── SSAOOcclusionMap.fx
│   │   │   │   │   ├── SSAOOcclusionMap.lcfx
│   │   │   │   │   ├── SSAOOcclusionMap.lcfx.inl
│   │   │   │   │   ├── SSRBlur.fx
│   │   │   │   │   ├── SSRBlur.lcfx
│   │   │   │   │   ├── SSRBlur.lcfx.inl
│   │   │   │   │   ├── SSRComposite.fx
│   │   │   │   │   ├── SSRComposite.lcfx
│   │   │   │   │   ├── SSRComposite.lcfx.inl
│   │   │   │   │   ├── SSRRayTracing.fx
│   │   │   │   │   ├── SSRRayTracing.lcfx
│   │   │   │   │   ├── SSRRayTracing.lcfx.inl
│   │   │   │   │   ├── ScreenBlur.fx
│   │   │   │   │   ├── ScreenBlur.lcfx
│   │   │   │   │   ├── ScreenBlur.lcfx.inl
│   │   │   │   │   ├── SeperableBlur.fx
│   │   │   │   │   ├── SeperableBlur.lcfx
│   │   │   │   │   ├── SeperableBlur.lcfx.inl
│   │   │   │   │   ├── ShaderLib/
│   │   │   │   │   │   ├── BloomComposite.fxh
│   │   │   │   │   │   ├── BloomComposite.fxh.inl
│   │   │   │   │   │   ├── Common.fxh
│   │   │   │   │   │   ├── Common.fxh.inl
│   │   │   │   │   │   ├── FXAA.hlsli
│   │   │   │   │   │   ├── SSRComposite.fxh
│   │   │   │   │   │   ├── SSRComposite.fxh.inl
│   │   │   │   │   │   ├── Tonemap.part.fxh
│   │   │   │   │   │   ├── Tonemap.part.fxh.inl
│   │   │   │   │   │   ├── Vignette.part.fxh
│   │   │   │   │   │   └── Vignette.part.fxh.inl
│   │   │   │   │   ├── ToneEffect.fx
│   │   │   │   │   ├── ToneEffect.lcfx
│   │   │   │   │   ├── ToneEffect.lcfx.inl
│   │   │   │   │   ├── TonemapEffect.fx
│   │   │   │   │   ├── TonemapEffect.lcfx
│   │   │   │   │   ├── TonemapEffect.lcfx.inl
│   │   │   │   │   ├── TransitionEffectWithMask.fx
│   │   │   │   │   ├── TransitionEffectWithMask.lcfx
│   │   │   │   │   ├── TransitionEffectWithMask.lcfx.inl
│   │   │   │   │   ├── TransitionEffectWithoutMask.fx
│   │   │   │   │   ├── TransitionEffectWithoutMask.lcfx
│   │   │   │   │   └── TransitionEffectWithoutMask.lcfx.inl
│   │   │   │   ├── SSAOPostEffect.cpp
│   │   │   │   ├── SSRPostEffect.cpp
│   │   │   │   ├── ScreenBlurPostEffect.cpp
│   │   │   │   ├── TonePostEffect.cpp
│   │   │   │   ├── TonemapPostEffect.cpp
│   │   │   │   └── TransitionPostEffect.cpp
│   │   │   ├── RegisterTypes.cpp
│   │   │   ├── RegisterTypes.inl
│   │   │   ├── Scene/
│   │   │   │   ├── Camera.cpp
│   │   │   │   ├── CameraOrbitControlComponent.cpp
│   │   │   │   ├── CharacterController.cpp
│   │   │   │   ├── Component.cpp
│   │   │   │   ├── Effect/
│   │   │   │   │   ├── ParticleEmitter.cpp
│   │   │   │   │   └── ParticleEmitterComponent.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── InternalSkyBox.cpp
│   │   │   │   ├── InternalSkyBox.hpp
│   │   │   │   ├── Level.cpp
│   │   │   │   ├── Light.cpp
│   │   │   │   ├── Mesh/
│   │   │   │   │   ├── InstancedMeshes.cpp
│   │   │   │   │   ├── MeshComponent.cpp
│   │   │   │   │   ├── SkinnedMesh.cpp
│   │   │   │   │   └── StaticMesh.cpp
│   │   │   │   ├── MeshTilemap/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshTilemapComponent.cpp
│   │   │   │   │   ├── MeshTilemapLayer.cpp
│   │   │   │   │   ├── MeshTilemapModel.cpp
│   │   │   │   │   └── MeshTileset.cpp
│   │   │   │   ├── MeshVoxelmap/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── MeshVoxelmapComponent.cpp
│   │   │   │   │   ├── MeshVoxelmapLayer.cpp
│   │   │   │   │   ├── MeshVoxelmapModel.cpp
│   │   │   │   │   ├── MeshVoxelset.cpp
│   │   │   │   │   ├── VoxelmapMesh.cpp
│   │   │   │   │   └── VoxelmapMesh.hpp
│   │   │   │   ├── Physics/
│   │   │   │   │   ├── Collision.cpp
│   │   │   │   │   ├── RigidBody2DComponent.cpp
│   │   │   │   │   └── RigidBodyComponent.cpp
│   │   │   │   ├── Raycaster.cpp
│   │   │   │   ├── Reflection/
│   │   │   │   │   ├── OffscreenWorldRenderView.cpp
│   │   │   │   │   ├── Reflector.cpp
│   │   │   │   │   └── ReflectorComponent.cpp
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── SkyDome.fx
│   │   │   │   │   ├── SkyDome.lcfx
│   │   │   │   │   ├── SkyDome.lcfx.inl
│   │   │   │   │   ├── SkyFromAtmosphere.fx
│   │   │   │   │   ├── SkyFromAtmosphere.lcfx
│   │   │   │   │   ├── SkyFromAtmosphere.lcfx.inl
│   │   │   │   │   ├── SkyLowAltitudeOptimized.fx
│   │   │   │   │   ├── SkyLowAltitudeOptimized.lcfx
│   │   │   │   │   ├── SkyLowAltitudeOptimized.lcfx.inl
│   │   │   │   │   ├── SkydomeCloudA.png.inl
│   │   │   │   │   ├── SkydomeCloudB.png.inl
│   │   │   │   │   ├── SkydomeCloudC.png.inl
│   │   │   │   │   └── SkydomeCloudR.png.inl
│   │   │   │   ├── Scene.cpp
│   │   │   │   ├── SceneConductor.cpp
│   │   │   │   ├── SceneManager.cpp
│   │   │   │   ├── SceneManager.hpp
│   │   │   │   ├── Shapes/
│   │   │   │   │   ├── ConeMesh.cpp
│   │   │   │   │   ├── CylinderMesh.cpp
│   │   │   │   │   ├── MeshPrimitiveComponent.cpp
│   │   │   │   │   ├── MeshPrimitives.cpp
│   │   │   │   │   ├── PathShape.cpp
│   │   │   │   │   ├── PathShapeContext.cpp
│   │   │   │   │   ├── PathShapeContext.hpp
│   │   │   │   │   └── TeapotMesh.cpp
│   │   │   │   ├── SkyDomeMesh.inl
│   │   │   │   ├── Sprite/
│   │   │   │   │   └── InstancedSprites.cpp
│   │   │   │   ├── Sprite.cpp
│   │   │   │   ├── Text/
│   │   │   │   │   ├── Text.cpp
│   │   │   │   │   └── TextComponent.cpp
│   │   │   │   ├── TransformControls.cpp
│   │   │   │   ├── VisualObject.cpp
│   │   │   │   ├── World.cpp
│   │   │   │   ├── WorldObject.cpp
│   │   │   │   └── WorldRenderView.cpp
│   │   │   ├── Scripting/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Interpreter.cpp
│   │   │   │   ├── ScriptingManager.cpp
│   │   │   │   └── ScriptingManager.hpp
│   │   │   ├── SharedLibraryMain.cpp
│   │   │   ├── Tilemap/
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Tilemap.cpp
│   │   │   │   ├── TilemapComponent.cpp
│   │   │   │   ├── TilemapLayer.cpp
│   │   │   │   ├── TilemapModel.cpp
│   │   │   │   ├── TilemapPhysicsObject.cpp
│   │   │   │   ├── TilemapPhysicsObject.hpp
│   │   │   │   ├── Tileset.cpp
│   │   │   │   └── Voxel.cpp
│   │   │   ├── UI/
│   │   │   │   ├── Controls/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── UIButton.cpp
│   │   │   │   │   ├── UICheckBox.cpp
│   │   │   │   │   ├── UIComboBox.cpp
│   │   │   │   │   ├── UIControl.cpp
│   │   │   │   │   ├── UIDialog.cpp
│   │   │   │   │   ├── UILinkLabel.cpp
│   │   │   │   │   ├── UIListBox.cpp
│   │   │   │   │   ├── UIListBoxItem.cpp
│   │   │   │   │   ├── UIListView.cpp
│   │   │   │   │   ├── UIPropertyFields.cpp
│   │   │   │   │   ├── UIScrollView.cpp
│   │   │   │   │   ├── UISplitter.cpp
│   │   │   │   │   ├── UITextField.cpp
│   │   │   │   │   ├── UITreeBox.cpp
│   │   │   │   │   ├── UITreeView.cpp
│   │   │   │   │   └── UIWindow.cpp
│   │   │   │   ├── ImGuiIntegration.cpp
│   │   │   │   ├── Internal.hpp
│   │   │   │   ├── Layout/
│   │   │   │   │   ├── Internal.hpp
│   │   │   │   │   ├── UIGridLayout.cpp
│   │   │   │   │   └── UILayoutPanel.cpp
│   │   │   │   ├── RoutingRenderView.cpp
│   │   │   │   ├── UI.cpp
│   │   │   │   ├── UIActiveTimer.cpp
│   │   │   │   ├── UIAdorner.cpp
│   │   │   │   ├── UIColors.cpp
│   │   │   │   ├── UIColorsDefine.inl
│   │   │   │   ├── UICommand.cpp
│   │   │   │   ├── UIContainerElement.cpp
│   │   │   │   ├── UIContext.cpp
│   │   │   │   ├── UIEditableTextArea.cpp
│   │   │   │   ├── UIEditableTextArea.hpp
│   │   │   │   ├── UIElement.cpp
│   │   │   │   ├── UIEventArgsPool.hpp
│   │   │   │   ├── UIEvents.cpp
│   │   │   │   ├── UIFocusNavigator.cpp
│   │   │   │   ├── UIFrameWindow.cpp
│   │   │   │   ├── UIIcon.cpp
│   │   │   │   ├── UIItemsElement.cpp
│   │   │   │   ├── UIItemsModel.cpp
│   │   │   │   ├── UILayoutElement.cpp
│   │   │   │   ├── UIManager.cpp
│   │   │   │   ├── UIManager.hpp
│   │   │   │   ├── UIMessageTextArea.cpp
│   │   │   │   ├── UIPopup.cpp
│   │   │   │   ├── UIRenderView.cpp
│   │   │   │   ├── UIRenderingContext.cpp
│   │   │   │   ├── UISprite.cpp
│   │   │   │   ├── UIStyle.cpp
│   │   │   │   ├── UIStyleAnimation.cpp
│   │   │   │   ├── UIStyleInstance.cpp
│   │   │   │   ├── UIStyleInstance.hpp
│   │   │   │   ├── UITabBar.cpp
│   │   │   │   ├── UIText.cpp
│   │   │   │   └── UIViewport.cpp
│   │   │   └── Visual/
│   │   │       ├── CameraComponent.cpp
│   │   │       ├── EmojiComponent.cpp
│   │   │       ├── Internal.hpp
│   │   │       ├── LightComponent.cpp
│   │   │       ├── SpriteComponent.cpp
│   │   │       ├── VisualComponent.cpp
│   │   │       ├── VisualManager.cpp
│   │   │       └── VisualManager.hpp
│   │   └── test/
│   │       ├── .gitignore
│   │       ├── Assets/
│   │       │   ├── 4Window.fx
│   │       │   ├── Animation/
│   │       │   │   └── Move1.vmd
│   │       │   ├── Assets/
│   │       │   │   └── Level1.yml
│   │       │   ├── Atmosphere.1.fx
│   │       │   ├── Atmosphere.fx
│   │       │   ├── Audio/
│   │       │   │   ├── sin_440_3s_S16L_22050_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_22050_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_32000_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_32000_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_44100_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_44100_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_48000_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_48000_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_88200_1ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_88200_2ch.ogg
│   │       │   │   ├── sin_440_3s_S16L_96000_1ch.ogg
│   │       │   │   └── sin_440_3s_S16L_96000_2ch.ogg
│   │       │   ├── Basic.fx
│   │       │   ├── Cloud.fx
│   │       │   ├── ConstantBufferTest-1.psh
│   │       │   ├── Graphics/
│   │       │   │   ├── Instancing.psh
│   │       │   │   ├── Instancing.vsh
│   │       │   │   ├── MultiRenderTargetTest-1.psh
│   │       │   │   ├── MultiRenderTargetTest-1.vsh
│   │       │   │   ├── SimpleConstantBuffer.fx
│   │       │   │   ├── SimpleConstantBuffer.lcfx
│   │       │   │   ├── SimplePosColor.fx
│   │       │   │   └── SimplePosColor.lcfx
│   │       │   ├── Mesh/
│   │       │   │   ├── Axis1.blend
│   │       │   │   ├── Axis1.glb
│   │       │   │   ├── BoxTextured/
│   │       │   │   │   └── BoxTextured.gltf
│   │       │   │   ├── SkinnedAxis1.blend
│   │       │   │   ├── SkinnedAxis1.glb
│   │       │   │   ├── SkinnedMesh2.blend
│   │       │   │   ├── SkinnedMesh2.blend1
│   │       │   │   └── SkinnedMesh2.glb
│   │       │   ├── MultiStreamVertexBuffer-1.psh
│   │       │   ├── MultiStreamVertexBuffer-1.vsh
│   │       │   ├── NestedStruct.fx
│   │       │   ├── PreprosessorTest.fx
│   │       │   ├── PreprosessorTest.fxh
│   │       │   ├── PreprosessorTest2.fx
│   │       │   ├── Rendering/
│   │       │   │   ├── bone2.glb
│   │       │   │   └── bone2.mqoz
│   │       │   ├── Shader/
│   │       │   │   ├── FxcTest1.fx
│   │       │   │   ├── FxcTest1.v1.lcfx
│   │       │   │   ├── IndependentSamplerState.fx
│   │       │   │   ├── LayoutTest-1.fx
│   │       │   │   ├── LayoutTest-2.fx
│   │       │   │   ├── MultiTechMultiTexture-1.fx
│   │       │   │   ├── NotProvidedVertexAttribute-1.fx
│   │       │   │   ├── UniformBufferTest-1.fx
│   │       │   │   └── UniformBufferTest-WorldMatrix.fx
│   │       │   ├── ShaderPassRenderStateTest1.fx
│   │       │   ├── SimplePosColor.psh
│   │       │   ├── SimplePosColor.vsh
│   │       │   ├── Texture3DTest-1.psh
│   │       │   ├── Texture3DTest-1.vsh
│   │       │   ├── TextureTest-1.psh
│   │       │   ├── TextureTest-1.vsh
│   │       │   ├── simple.frag
│   │       │   ├── simple.psh
│   │       │   ├── simple.vert
│   │       │   ├── simple.vsh
│   │       │   ├── test.json
│   │       │   ├── test.lca
│   │       │   └── test.psh
│   │       ├── CMakeLists.txt
│   │       ├── Common.hpp
│   │       ├── Main.cpp
│   │       ├── PCH.hpp
│   │       ├── TestEnv.cpp
│   │       ├── TestEnv.hpp
│   │       ├── Test_Animation_Mixer.cpp
│   │       ├── Test_Asset_AssetArchive.cpp
│   │       ├── Test_Asset_AssetFile.cpp
│   │       ├── Test_Asset_AssetObject.cpp
│   │       ├── Test_Asset_LoadAsset.cpp
│   │       ├── Test_Audio_Decorder.cpp
│   │       ├── Test_Base_Event.cpp
│   │       ├── Test_Base_ObjectCache.cpp
│   │       ├── Test_Base_Regex.cpp
│   │       ├── Test_Base_Variant.cpp
│   │       ├── Test_Effect_Particle.cpp
│   │       ├── Test_Engine_Object.cpp
│   │       ├── Test_Graphics_Bitmap.cpp
│   │       ├── Test_Graphics_ColorStructs.cpp
│   │       ├── Test_Graphics_DeviceContext.cpp
│   │       ├── Test_Graphics_LowLevelRendering.cpp
│   │       ├── Test_Graphics_Texture.cpp
│   │       ├── Test_Mesh.cpp
│   │       ├── Test_Physics.cpp
│   │       ├── Test_Physics_2D.cpp
│   │       ├── Test_PostEffect.cpp
│   │       ├── Test_Rendering_DefaultShading.cpp
│   │       ├── Test_Rendering_LowLevels.cpp
│   │       ├── Test_Rendering_RenderingContext.cpp
│   │       ├── Test_Rendering_Shading.cpp
│   │       ├── Test_Rendering_ShapeRenderer.cpp
│   │       ├── Test_Scene_MeshPrimitive.cpp
│   │       ├── Test_Scene_Sprite.cpp
│   │       ├── Test_Scene_Text.cpp
│   │       ├── Test_Scene_WorldObject.cpp
│   │       ├── Test_Shader_HlslEffect.cpp
│   │       ├── Test_Shader_Shader.cpp
│   │       ├── Test_Shader_UnifiedShader.cpp
│   │       ├── Test_UI_UIElement.cpp
│   │       ├── Test_UI_UIFrameWindow.cpp
│   │       ├── Test_UI_UIGridLayout.cpp
│   │       ├── Test_UI_UILayout.cpp
│   │       ├── Test_UI_UISprite.cpp
│   │       ├── Test_UI_UIStyle.cpp
│   │       ├── Test_UI_UITextBlock.cpp
│   │       └── Test_Visual_VisualComponent.cpp
│   ├── Platform/
│   │   ├── CMakeLists.txt
│   │   ├── cmake/
│   │   │   └── LuminoConfig-LuminoPlatform.cmake
│   │   ├── examples/
│   │   │   ├── Web/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Main.cpp
│   │   │   │   └── serve.py
│   │   │   └── Windows/
│   │   │       ├── CMakeLists.txt
│   │   │       └── Main.cpp
│   │   ├── include/
│   │   │   └── LuminoPlatform/
│   │   │       ├── AndroidPlatformInterface.hpp
│   │   │       ├── CocoaPlatformInterface.hpp
│   │   │       ├── Common.hpp
│   │   │       ├── ExternalProxyPlatformWindow.hpp
│   │   │       ├── Platform.hpp
│   │   │       ├── PlatformDialogs.hpp
│   │   │       ├── PlatformEvent.hpp
│   │   │       ├── PlatformModule.hpp
│   │   │       ├── PlatformSupport.hpp
│   │   │       ├── PlatformWindow.hpp
│   │   │       ├── Win32PlatformInterface.hpp
│   │   │       ├── detail/
│   │   │       │   ├── GLFWPlatformWindow.hpp
│   │   │       │   ├── OpenGLContext.hpp
│   │   │       │   ├── PlatformManager.hpp
│   │   │       │   └── PlatformWindowManager.hpp
│   │   │       └── iOSPlatformInterface.hpp
│   │   └── src/
│   │       ├── Internal.hpp
│   │       ├── Platform/
│   │       │   ├── Android/
│   │       │   │   └── AndroidPlatformInterface.cpp
│   │       │   ├── EmptyPlatformWindowManager.cpp
│   │       │   ├── EmptyPlatformWindowManager.hpp
│   │       │   ├── EmscriptenPlatformInterface.cpp
│   │       │   ├── GLFWPlatformWindowManager.cpp
│   │       │   ├── GLFWPlatformWindowManager.hpp
│   │       │   ├── Internal.hpp
│   │       │   ├── OpenGLContext.cpp
│   │       │   ├── Platform.cpp
│   │       │   ├── PlatformDialogs.cpp
│   │       │   ├── PlatformEvent.cpp
│   │       │   ├── PlatformManager.cpp
│   │       │   ├── PlatformModule.cpp
│   │       │   ├── PlatformSupport.cpp
│   │       │   ├── PlatformWindow.cpp
│   │       │   ├── PlatformWindowManager.cpp
│   │       │   ├── TextInputMethodSystem.cpp
│   │       │   ├── TextInputMethodSystem.hpp
│   │       │   ├── Windows/
│   │       │   │   ├── Win32PlatformDialogs.hpp
│   │       │   │   ├── Win32PlatformInterface.cpp
│   │       │   │   ├── Win32PlatformWindowManager.cpp
│   │       │   │   └── Win32PlatformWindowManager.hpp
│   │       │   ├── iOS/
│   │       │   │   └── iOSPlatformInterface.mm
│   │       │   └── macOS/
│   │       │       ├── CocoaPlatformInterface.mm
│   │       │       └── PlatformSupport.mm
│   │       ├── RegisterTypes.inl
│   │       └── pch.hpp
│   └── Runtime/
│       ├── CMakeLists.txt
│       ├── cmake/
│       │   └── LuminoConfig-LuminoRuntime.cmake
│       ├── include/
│       │   └── LuminoEngine/
│       │       ├── Asset/
│       │       │   ├── AssetModel.hpp
│       │       │   ├── AssetObject.hpp
│       │       │   ├── Assets.hpp
│       │       │   ├── Common.hpp
│       │       │   ├── TextureImporter.hpp
│       │       │   └── detail/
│       │       │       └── AssetManager.hpp
│       │       ├── Base/
│       │       │   ├── Builder.hpp
│       │       │   ├── Collection.hpp
│       │       │   ├── Common.hpp
│       │       │   ├── Delegate.hpp
│       │       │   ├── Event.hpp
│       │       │   ├── Fetch.hpp
│       │       │   ├── MixHash.hpp
│       │       │   ├── ObjectPool.hpp
│       │       │   ├── Promise.hpp
│       │       │   ├── Regex.hpp
│       │       │   ├── Serializer.hpp
│       │       │   ├── Task.hpp
│       │       │   ├── UndoRedo.hpp
│       │       │   └── detail/
│       │       │       └── RefObjectCache.hpp
│       │       ├── Engine/
│       │       │   ├── Common2.hpp
│       │       │   ├── CoreApplication.hpp
│       │       │   ├── Diagnostics.hpp
│       │       │   ├── EngineContext2.hpp
│       │       │   └── Module.hpp
│       │       ├── Graphics/
│       │       │   ├── ColorStructs.hpp
│       │       │   ├── Common.hpp
│       │       │   └── RenderState.hpp
│       │       ├── Reflection/
│       │       │   └── VMProperty.hpp
│       │       ├── Runtime/
│       │       │   ├── FFITypes.hpp
│       │       │   ├── RuntimeLog.hpp
│       │       │   └── detail/
│       │       │       ├── BindingValidation.hpp
│       │       │       └── RuntimeManager.hpp
│       │       └── RuntimeModule.hpp
│       ├── src/
│       │   ├── Asset/
│       │   │   ├── AssetArchive.cpp
│       │   │   ├── AssetArchive.hpp
│       │   │   ├── AssetManager.cpp
│       │   │   ├── AssetModel.cpp
│       │   │   ├── AssetObject.cpp
│       │   │   ├── Assets.cpp
│       │   │   ├── Internal.hpp
│       │   │   ├── README.md
│       │   │   └── TextureImporter.cpp
│       │   ├── Base/
│       │   │   ├── Builder.cpp
│       │   │   ├── Collection.cpp
│       │   │   ├── Delegate.cpp
│       │   │   ├── Event.cpp
│       │   │   ├── Fetch.cpp
│       │   │   ├── Internal.hpp
│       │   │   ├── ObjectPool.cpp
│       │   │   ├── Promise.cpp
│       │   │   ├── Regex.cpp
│       │   │   ├── Serializer.cpp
│       │   │   ├── Task.cpp
│       │   │   └── UndoRedo.cpp
│       │   ├── Engine/
│       │   │   ├── CoreApplication.cpp
│       │   │   ├── Diagnostics.cpp
│       │   │   ├── EngineContext2.cpp
│       │   │   ├── Internal.hpp
│       │   │   └── Module.cpp
│       │   ├── Graphics/
│       │   │   ├── ColorStructs.cpp
│       │   │   ├── Internal.hpp
│       │   │   └── RenderState.cpp
│       │   ├── Internal.hpp
│       │   ├── Reflection/
│       │   │   └── Internal.hpp
│       │   ├── RegisterTypes.cpp
│       │   ├── RegisterTypes.inl
│       │   ├── Runtime/
│       │   │   ├── BindingValidation.cpp
│       │   │   ├── RuntimeLog.cpp
│       │   │   └── RuntimeManager.cpp
│       │   ├── RuntimeModule.cpp
│       │   └── pch.hpp
│       └── test/
│           ├── CMakeLists.txt
│           ├── Main.cpp
│           ├── Test_Base_Fetch.cpp
│           ├── Test_Base_Promise.cpp
│           ├── Test_Reflection_TypeInfo.cpp
│           └── pch.hpp
├── src/
│   ├── CFlagOverrides.cmake
│   ├── Editor/
│   │   ├── App/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Main.cpp
│   │   │   └── PCH.hpp
│   │   ├── CLI/
│   │   │   ├── Bin2InlCommand.cpp
│   │   │   ├── Bin2InlCommand.hpp
│   │   │   ├── BuildAssetCommand.cpp
│   │   │   ├── BuildAssetCommand.hpp
│   │   │   ├── BuildCommand.cpp
│   │   │   ├── BuildCommand.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Command.cpp
│   │   │   ├── Command.hpp
│   │   │   ├── FxcCommand.cpp
│   │   │   ├── FxcCommand.hpp
│   │   │   ├── LuminoCLI.PCH.hpp
│   │   │   ├── Main.cpp
│   │   │   ├── NewAssetCommand.cpp
│   │   │   ├── NewAssetCommand.hpp
│   │   │   ├── NewCommand.cpp
│   │   │   └── NewCommand.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Core/
│   │   │   ├── App/
│   │   │   │   ├── Application.cpp
│   │   │   │   ├── Application.hpp
│   │   │   │   ├── DocumentManager.cpp
│   │   │   │   ├── DocumentManager.hpp
│   │   │   │   ├── EditorContext.cpp
│   │   │   │   ├── EditorContext.hpp
│   │   │   │   ├── InspectorPane.cpp
│   │   │   │   ├── InspectorPane.hpp
│   │   │   │   ├── MainWindow.cpp
│   │   │   │   ├── MainWindow.hpp
│   │   │   │   ├── NavigatorManager.cpp
│   │   │   │   ├── NavigatorManager.hpp
│   │   │   │   ├── NewProjectDialog.cpp
│   │   │   │   ├── NewProjectDialog.hpp
│   │   │   │   ├── OutputPane.cpp
│   │   │   │   ├── OutputPane.hpp
│   │   │   │   ├── ProblemsPane.cpp
│   │   │   │   ├── ProblemsPane.hpp
│   │   │   │   ├── StartupView.cpp
│   │   │   │   ├── StartupView.hpp
│   │   │   │   ├── ToolPanesArea.cpp
│   │   │   │   └── ToolPanesArea.hpp
│   │   │   ├── AppData.cpp
│   │   │   ├── AppData.hpp
│   │   │   ├── AssetEditor/
│   │   │   │   ├── AssetEditorModel.cpp
│   │   │   │   └── AssetEditorModel.hpp
│   │   │   ├── CLI.cpp
│   │   │   ├── CLI.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Common.hpp
│   │   │   ├── Controls/
│   │   │   │   ├── AssetPicker.cpp
│   │   │   │   └── AssetPicker.hpp
│   │   │   ├── EnvironmentSettings.cpp
│   │   │   ├── EnvironmentSettings.hpp
│   │   │   ├── PCH.hpp
│   │   │   ├── Project/
│   │   │   │   ├── AssetDatabase.cpp
│   │   │   │   ├── AssetDatabase.hpp
│   │   │   │   ├── BuildAssetHelper.cpp
│   │   │   │   ├── BuildAssetHelper.hpp
│   │   │   │   ├── LanguageContext.cpp
│   │   │   │   ├── LanguageContext.hpp
│   │   │   │   ├── PluginManager.cpp
│   │   │   │   ├── PluginManager.hpp
│   │   │   │   ├── Project.cpp
│   │   │   │   ├── Project.hpp
│   │   │   │   ├── ProjectTemplateManager.cpp
│   │   │   │   ├── ProjectTemplateManager.hpp
│   │   │   │   ├── Toolset.cpp
│   │   │   │   └── Toolset.hpp
│   │   │   ├── StandardPlugin/
│   │   │   │   ├── AssetBrowserNavigator.cpp
│   │   │   │   ├── AssetBrowserNavigator.hpp
│   │   │   │   ├── LevelEditor.cpp
│   │   │   │   ├── LevelEditor.hpp
│   │   │   │   ├── LevelEditorHierarchyPane.cpp
│   │   │   │   ├── LevelEditorHierarchyPane.hpp
│   │   │   │   ├── LevelEditorPropertyPane.cpp
│   │   │   │   ├── LevelEditorPropertyPane.hpp
│   │   │   │   ├── StandardPluginModule.cpp
│   │   │   │   └── StandardPluginModule.hpp
│   │   │   ├── TilemapPlugin/
│   │   │   │   ├── TilesetEditorModel.cpp
│   │   │   │   ├── TilesetEditorModel.hpp
│   │   │   │   ├── TilesetEditorView.cpp
│   │   │   │   ├── TilesetEditorView.hpp
│   │   │   │   ├── TilesetExtensionModule.cpp
│   │   │   │   ├── TilesetExtensionModule.hpp
│   │   │   │   ├── TilesetNavigator.cpp
│   │   │   │   └── TilesetNavigator.hpp
│   │   │   ├── TilemapSceneExtension/
│   │   │   │   ├── TilemapSceneEditor.cpp
│   │   │   │   ├── TilemapSceneEditor.hpp
│   │   │   │   ├── TilemapSceneEditorModel.cpp
│   │   │   │   ├── TilemapSceneEditorModel.hpp
│   │   │   │   ├── TilemapSceneEditorModule.cpp
│   │   │   │   ├── TilemapSceneEditorModule.hpp
│   │   │   │   ├── TilemapSceneModePane.cpp
│   │   │   │   ├── TilemapSceneModePane.hpp
│   │   │   │   ├── TilemapSceneNavigator.cpp
│   │   │   │   └── TilemapSceneNavigator.hpp
│   │   │   ├── UIExtension.cpp
│   │   │   ├── UIExtension.hpp
│   │   │   ├── Workspace.cpp
│   │   │   └── Workspace.hpp
│   │   ├── MeshViewer/
│   │   │   ├── Application.cpp
│   │   │   ├── Application.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Main.cpp
│   │   │   ├── MainWindow.cpp
│   │   │   ├── MainWindow.hpp
│   │   │   ├── PCH.hpp
│   │   │   ├── ViewModel.cpp
│   │   │   ├── ViewModel.hpp
│   │   │   ├── VisualizedMeshComponent.cpp
│   │   │   └── VisualizedMeshComponent.hpp
│   │   └── Studio/
│   │       ├── ActionManager.cpp
│   │       ├── ActionManager.h
│   │       ├── AssetBrowser/
│   │       │   ├── AssetBrowserNavigator.cpp
│   │       │   └── AssetBrowserNavigator.h
│   │       ├── AssetImportDialog.cpp
│   │       ├── AssetImportDialog.h
│   │       ├── CMakeLists.txt
│   │       ├── ContentsViewManager.cpp
│   │       ├── ContentsViewManager.h
│   │       ├── Document.cpp
│   │       ├── Document.h
│   │       ├── DocumentManager.cpp
│   │       ├── DocumentManager.h
│   │       ├── External/
│   │       │   └── QtAwesome/
│   │       │       ├── QtAwesome.cpp
│   │       │       ├── QtAwesome.h
│   │       │       ├── QtAwesome.qrc
│   │       │       ├── QtAwesomeAnim.cpp
│   │       │       └── QtAwesomeAnim.h
│   │       ├── InspectorPaneContainer.cpp
│   │       ├── InspectorPaneContainer.h
│   │       ├── LuminoWidget.cpp
│   │       ├── LuminoWidget.h
│   │       ├── Main.cpp
│   │       ├── MainWindow.cpp
│   │       ├── MainWindow.h
│   │       ├── Navigators/
│   │       │   ├── AudioAssetNavigator.cpp
│   │       │   ├── AudioAssetNavigator.h
│   │       │   ├── MapAssetNavigator.cpp
│   │       │   ├── MapAssetNavigator.h
│   │       │   ├── MotionAssetNavigator.cpp
│   │       │   ├── MotionAssetNavigator.h
│   │       │   ├── PrefabAssetNavigator.cpp
│   │       │   ├── PrefabAssetNavigator.h
│   │       │   ├── SkillAssetNavigator.cpp
│   │       │   └── SkillAssetNavigator.h
│   │       ├── NewProjectDialog.cpp
│   │       ├── NewProjectDialog.h
│   │       ├── OutputPane.cpp
│   │       ├── OutputPane.h
│   │       ├── PCH.h
│   │       ├── ProblemsPane.cpp
│   │       ├── ProblemsPane.h
│   │       ├── PropertyPane.cpp
│   │       ├── PropertyPane.h
│   │       ├── Readme.md
│   │       ├── SceneContentsView.cpp
│   │       ├── SceneContentsView.h
│   │       ├── SceneEditorDocumentView.cpp
│   │       ├── SceneEditorDocumentView.h
│   │       ├── SpriteFrameset/
│   │       │   ├── SpriteFramesetAssetNavigator.cpp
│   │       │   ├── SpriteFramesetAssetNavigator.h
│   │       │   ├── SpriteFramesetEditorDocumentView.cpp
│   │       │   └── SpriteFramesetEditorDocumentView.h
│   │       ├── StartupView.cpp
│   │       ├── StartupView.h
│   │       ├── ToolPaneContainer.cpp
│   │       ├── ToolPaneContainer.h
│   │       └── Widgets/
│   │           ├── Expander.cpp
│   │           └── Expander.h
│   ├── LuminoCommon.cmake
│   ├── LuminoConfig.cmake
│   ├── Readme.md
│   └── Transcoder/
│       ├── CLI/
│       │   ├── CMakeLists.txt
│       │   ├── Main.cpp
│       │   └── PCH.hpp
│       ├── CMakeLists.txt
│       ├── Core/
│       │   ├── CMakeLists.txt
│       │   ├── CodeAnalyzer.cpp
│       │   ├── CodeAnalyzer.hpp
│       │   ├── Common.hpp
│       │   ├── Generators/
│       │   │   ├── DotNetPInvokeGenerator.cpp
│       │   │   ├── DotNetPInvokeGenerator.hpp
│       │   │   ├── DotnetClassGenerator.cpp
│       │   │   ├── DotnetClassGenerator.hpp
│       │   │   ├── FlatCGenerator.cpp
│       │   │   ├── FlatCGenerator.hpp
│       │   │   ├── Generator.cpp
│       │   │   ├── Generator.hpp
│       │   │   ├── HSP3Generator.cpp
│       │   │   ├── HSP3Generator.hpp
│       │   │   ├── OutputBuffer.cpp
│       │   │   ├── OutputBuffer.hpp
│       │   │   ├── RegisterTypesGenerator.cpp
│       │   │   ├── RegisterTypesGenerator.hpp
│       │   │   ├── RubyExtGenerator.cpp
│       │   │   ├── RubyExtGenerator.hpp
│       │   │   └── Templates/
│       │   │       ├── HSPCommands.template.cpp
│       │   │       ├── LuminoC.template.h
│       │   │       ├── RubyDoc.txt
│       │   │       ├── RubyEnums.txt
│       │   │       ├── RubyEventSignalClass.template.rb
│       │   │       ├── RubyExt.template.cpp
│       │   │       ├── RubyRequiredClassMethods.template.cpp
│       │   │       ├── RubyRequiredStructMethods.template.cpp
│       │   │       ├── RubyStructs.txt
│       │   │       ├── Source.cpp.template
│       │   │       └── WrapperIF.h.template
│       │   ├── PCH.cpp
│       │   ├── PCH.hpp
│       │   ├── Project.cpp
│       │   ├── Project.hpp
│       │   ├── Readme.md
│       │   ├── SymbolDatabase.cpp
│       │   └── SymbolDatabase.hpp
│       ├── Docs/
│       │   ├── FlatC.md
│       │   └── HSP.md
│       ├── Parser/
│       │   ├── CMakeLists.txt
│       │   ├── ClangVisitorRunner12.hpp
│       │   ├── HeaderParser2.cpp
│       │   ├── HeaderParser2.hpp
│       │   ├── Main.cpp
│       │   ├── PCH.hpp
│       │   ├── ParserIntermediates.cpp
│       │   ├── ParserIntermediates.hpp
│       │   └── ParserUtils.hpp
│       ├── Readme.md
│       └── Test/
│           ├── Assets/
│           │   └── Struct/
│           │       └── TestStruct.hpp
│           ├── CMakeLists.txt
│           ├── Main.cpp
│           ├── PCH.hpp
│           └── Test_Struct.cpp
└── tools/
    ├── BinaryToIntArray/
    │   ├── BinaryToIntArray.bat
    │   └── BinaryToIntArray.rb
    ├── Bindings/
    │   ├── Dotnet/
    │   │   ├── Lumino.Dotnet/
    │   │   │   ├── Class1.cs
    │   │   │   ├── Lumino.Class.generated.cs
    │   │   │   ├── Lumino.Dotnet.csproj
    │   │   │   └── Lumino.PInvoke.generated.cs
    │   │   ├── Lumino.Dotnet.Test/
    │   │   │   ├── Lumino.Dotnet.Test.csproj
    │   │   │   └── Program.cs
    │   │   └── LuminoDotnet.sln
    │   ├── HSP3/
    │   │   ├── .gitignore
    │   │   ├── CMakeLists.txt
    │   │   ├── Lumino.HSPCommands.generated.cpp
    │   │   ├── LuminoHSP.cpp
    │   │   ├── LuminoHSP.h
    │   │   ├── README_HSP3.txt
    │   │   ├── hsp3plugin/
    │   │   │   ├── README.md
    │   │   │   ├── hsp3debug.h
    │   │   │   ├── hsp3plugin.cpp
    │   │   │   ├── hsp3plugin.h
    │   │   │   ├── hsp3struct.h
    │   │   │   ├── hspvar_core.h
    │   │   │   └── hspwnd.h
    │   │   ├── lumino.as
    │   │   ├── lumino.hs
    │   │   ├── main.cpp
    │   │   ├── samples/
    │   │   │   └── test1.hsp
    │   │   └── test/
    │   │       ├── Test1.hsp
    │   │       ├── Test2.hsp
    │   │       ├── Test3.hsp
    │   │       ├── Test4.hsp
    │   │       └── setup.bat
    │   └── Ruby/
    │       ├── .gitignore
    │       ├── APIReference/
    │       │   ├── Lumino.RubyYARDOCSource.generated.rb
    │       │   └── Readme.md
    │       ├── GemProject/
    │       │   ├── .gitignore
    │       │   ├── Gemfile
    │       │   ├── LICENSE.txt
    │       │   ├── README.md
    │       │   ├── Rakefile
    │       │   ├── bin/
    │       │   │   ├── console
    │       │   │   └── setup
    │       │   ├── examples/
    │       │   │   └── hello_app.rb
    │       │   ├── exe/
    │       │   │   └── lumino-rb
    │       │   ├── ext/
    │       │   │   └── lumino_ext/
    │       │   │       ├── FlatC.generated.h
    │       │   │       ├── FlatCommon.h
    │       │   │       ├── Lumino.RubyExt.generated.cpp
    │       │   │       ├── LuminoRubyRuntimeManager.cpp
    │       │   │       ├── LuminoRubyRuntimeManager.h
    │       │   │       ├── extconf.rb
    │       │   │       └── log.txt
    │       │   ├── lib/
    │       │   │   ├── lumino/
    │       │   │   │   ├── cli.rb
    │       │   │   │   └── version.rb
    │       │   │   └── lumino.rb
    │       │   ├── lumino.gemspec
    │       │   └── test/
    │       │       ├── test_engine.rb
    │       │       └── test_struct.rb
    │       ├── README.md
    │       ├── Test.rb
    │       ├── Test_Override.rb
    │       ├── extconf.rb
    │       ├── gc_sandbox.rb
    │       ├── gemtest/
    │       │   ├── serialize.rb
    │       │   ├── test.rb
    │       │   └── test2.rb
    │       ├── samples/
    │       │   └── draw_texture.rb
    │       └── sandbox.rb
    ├── Editor/
    │   ├── CMakeLists.txt
    │   ├── build.bat
    │   └── src/
    │       ├── Squircle.cpp
    │       ├── Squircle.h
    │       ├── main.cpp
    │       ├── main.qml
    │       └── qml.qrc
    ├── EngineResources/
    │   ├── .gitignore
    │   └── README.md
    ├── FontAwesome/
    │   ├── 5.9.0-desktop/
    │   │   ├── Font Awesome 5 Brands-Regular-400.otf
    │   │   ├── Font Awesome 5 Free-Regular-400.otf
    │   │   ├── Font Awesome 5 Free-Solid-900.otf
    │   │   └── metadata/
    │   │       └── icons.json
    │   ├── LICENSE.txt
    │   └── MakeMapInl.py
    ├── LuminoBuild/
    │   ├── AndroidBuildEnv.cs
    │   ├── BuildEnvironment.cs
    │   ├── BuildSystem/
    │   │   ├── BuildSystem.cs
    │   │   ├── BuildTask.cs
    │   │   ├── Logger.cs
    │   │   ├── Proc.cs
    │   │   ├── TaskManager.cs
    │   │   └── Utils.cs
    │   ├── EmscriptenBuildEnv.cs
    │   ├── Env/
    │   │   └── EmscriptenEnv.cs
    │   ├── Main.cs
    │   ├── Rules/
    │   │   ├── BuildLocalPackage.cs
    │   │   └── BuildPackage.cs
    │   └── Tasks/
    │       ├── Bootstrap.cs
    │       ├── BuildDocuments.cs
    │       ├── BuildEmbeddedResources.cs
    │       ├── BuildEmscripten.cs
    │       ├── BuildEngine.cs
    │       ├── BuildEngine_Android.cs
    │       ├── BuildEngine_Linux.cs
    │       ├── BuildEngine_iOS.cs
    │       ├── BuildEngine_macOS.cs
    │       ├── BuildExternalProjects.cs
    │       ├── BuildExternals.cs
    │       ├── BuildLLVM.cs
    │       ├── BuildRuntime.cs
    │       ├── CompressPackage.cs
    │       ├── DeployEnginePackage.cs
    │       ├── MakeInstaller_Win32.cs
    │       ├── MakeNativePackage.cs
    │       ├── MakeNuGetPackage_Core.cs
    │       ├── MakePackage_HSP3.cs
    │       ├── MakePackage_Ruby.cs
    │       ├── MakePackage_macOS.cs
    │       └── SetupTools.cs
    ├── LuminoStudio/
    │   ├── CMakeLists.txt
    │   ├── DocumentManager.cpp
    │   ├── DocumentManager.h
    │   ├── LuminoStudio.pro
    │   ├── LuminoWidget.cpp
    │   ├── LuminoWidget.h
    │   ├── Main.cpp
    │   ├── MainWindow.cpp
    │   ├── MainWindow.h
    │   ├── MainWindow.ui
    │   ├── PCH.h
    │   ├── Resources/
    │   │   ├── LICENSE.md
    │   │   ├── README.md
    │   │   ├── breeze.qrc
    │   │   ├── dark.qss
    │   │   └── light.qss
    │   ├── SceneListDock.cpp
    │   ├── SceneListDock.h
    │   ├── SceneListDock.ui
    │   └── style.qrc
    ├── PackageSource/
    │   ├── Installer/
    │   │   ├── .gitignore
    │   │   ├── InstallDialog.pbx
    │   │   ├── LuminoInstaller.wxs.template
    │   │   └── license-jp.rtf
    │   ├── Readme.txt.template
    │   └── macOS/
    │       └── setup.sh
    ├── ProjectTemplates/
    │   ├── cpp-cmake/
    │   │   ├── .gitignore
    │   │   ├── CMakeLists.txt
    │   │   ├── assets/
    │   │   │   └── LineWave.fx
    │   │   ├── projects/
    │   │   │   ├── Editor/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   ├── Common.h
    │   │   │   │   ├── EditorMain.cpp
    │   │   │   │   ├── EditorMain.h
    │   │   │   │   └── PCH.h
    │   │   │   ├── Game/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   └── PCH.h
    │   │   │   └── Runtime/
    │   │   │       ├── CMakeLists.txt
    │   │   │       ├── Main.Windows.cpp
    │   │   │       ├── PCH.cpp
    │   │   │       └── PCH.h
    │   │   └── src/
    │   │       ├── App.cpp
    │   │       └── App.h
    │   ├── cpp-default/
    │   │   ├── .gitignore
    │   │   ├── LuminoApp.sln
    │   │   ├── assets/
    │   │   │   └── LineWave.fx
    │   │   ├── projects/
    │   │   │   ├── LuminoApp.Android/
    │   │   │   │   ├── .gitignore
    │   │   │   │   ├── app/
    │   │   │   │   │   ├── .gitignore
    │   │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   │   ├── build.gradle
    │   │   │   │   │   ├── proguard-rules.pro
    │   │   │   │   │   └── src/
    │   │   │   │   │       └── main/
    │   │   │   │   │           ├── AndroidManifest.xml
    │   │   │   │   │           ├── cpp/
    │   │   │   │   │           │   ├── PCH.h
    │   │   │   │   │           │   └── native-lib.cpp
    │   │   │   │   │           └── res/
    │   │   │   │   │               ├── drawable/
    │   │   │   │   │               │   └── ic_launcher_background.xml
    │   │   │   │   │               ├── drawable-v24/
    │   │   │   │   │               │   └── ic_launcher_foreground.xml
    │   │   │   │   │               ├── layout/
    │   │   │   │   │               │   └── activity_main.xml
    │   │   │   │   │               ├── mipmap-anydpi-v26/
    │   │   │   │   │               │   ├── ic_launcher.xml
    │   │   │   │   │               │   └── ic_launcher_round.xml
    │   │   │   │   │               └── values/
    │   │   │   │   │                   ├── colors.xml
    │   │   │   │   │                   ├── strings.xml
    │   │   │   │   │                   └── styles.xml
    │   │   │   │   ├── build.gradle
    │   │   │   │   ├── gradle/
    │   │   │   │   │   └── wrapper/
    │   │   │   │   │       ├── gradle-wrapper.jar
    │   │   │   │   │       └── gradle-wrapper.properties
    │   │   │   │   ├── gradle.properties
    │   │   │   │   ├── gradlew
    │   │   │   │   ├── gradlew.bat
    │   │   │   │   └── settings.gradle
    │   │   │   ├── LuminoApp.Web/
    │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   ├── PCH.h
    │   │   │   │   └── pre.js
    │   │   │   ├── LuminoApp.Windows/
    │   │   │   │   ├── Launch.cpp
    │   │   │   │   ├── LuminoApp.rc
    │   │   │   │   ├── LuminoApp.vcxproj
    │   │   │   │   ├── LuminoApp.vcxproj.filters
    │   │   │   │   ├── PCH.cpp
    │   │   │   │   ├── PCH.h
    │   │   │   │   ├── Resource.h
    │   │   │   │   ├── Resource.rc
    │   │   │   │   └── targetver.h
    │   │   │   ├── LuminoApp.iOS/
    │   │   │   │   ├── .gitignore
    │   │   │   │   ├── LuminoApp.iOS/
    │   │   │   │   │   ├── AppDelegate.h
    │   │   │   │   │   ├── AppDelegate.mm
    │   │   │   │   │   ├── Assets.xcassets/
    │   │   │   │   │   │   ├── AppIcon.appiconset/
    │   │   │   │   │   │   │   └── Contents.json
    │   │   │   │   │   │   ├── ColorMap.textureset/
    │   │   │   │   │   │   │   ├── Contents.json
    │   │   │   │   │   │   │   └── Universal.mipmapset/
    │   │   │   │   │   │   │       └── Contents.json
    │   │   │   │   │   │   └── Contents.json
    │   │   │   │   │   ├── Base.lproj/
    │   │   │   │   │   │   ├── LaunchScreen.storyboard
    │   │   │   │   │   │   └── Main.storyboard
    │   │   │   │   │   ├── GameViewController.h
    │   │   │   │   │   ├── GameViewController.mm
    │   │   │   │   │   ├── Info.plist
    │   │   │   │   │   ├── Prefix.pch
    │   │   │   │   │   ├── Renderer.h
    │   │   │   │   │   ├── Renderer.mm
    │   │   │   │   │   ├── RootGLKView.h
    │   │   │   │   │   ├── RootGLKView.mm
    │   │   │   │   │   └── main.mm
    │   │   │   │   └── LuminoApp.iOS.xcodeproj/
    │   │   │   │       ├── project.pbxproj
    │   │   │   │       └── project.xcworkspace/
    │   │   │   │           ├── contents.xcworkspacedata
    │   │   │   │           └── xcshareddata/
    │   │   │   │               └── IDEWorkspaceChecks.plist
    │   │   │   └── LuminoApp.macOS/
    │   │   │       ├── .gitignore
    │   │   │       ├── LuminoApp.macOS/
    │   │   │       │   ├── Assets.xcassets/
    │   │   │       │   │   ├── AppIcon.appiconset/
    │   │   │       │   │   │   └── Contents.json
    │   │   │       │   │   ├── ColorMap.textureset/
    │   │   │       │   │   │   ├── Contents.json
    │   │   │       │   │   │   └── Universal.mipmapset/
    │   │   │       │   │   │       └── Contents.json
    │   │   │       │   │   └── Contents.json
    │   │   │       │   ├── Info.plist
    │   │   │       │   ├── LuminoApp_macOS.entitlements
    │   │   │       │   ├── Prefix.pch
    │   │   │       │   └── main.mm
    │   │   │       └── LuminoApp.macOS.xcodeproj/
    │   │   │           ├── project.pbxproj
    │   │   │           └── project.xcworkspace/
    │   │   │               ├── contents.xcworkspacedata
    │   │   │               └── xcshareddata/
    │   │   │                   └── IDEWorkspaceChecks.plist
    │   │   └── src/
    │   │       └── App.cpp
    │   └── ruby-default/
    │       └── main.rb
    ├── TestProjects/
    │   └── CMake/
    │       ├── CMakeLists.txt
    │       └── Main.cpp
    ├── VLGothic/
    │   ├── Changelog
    │   ├── LICENSE
    │   ├── LICENSE.en
    │   ├── LICENSE_E.mplus
    │   ├── LICENSE_J.mplus
    │   ├── README
    │   ├── README.sazanami
    │   ├── README_E.mplus
    │   └── README_J.mplus
    ├── VisualStudio/
    │   ├── Lumino.natvis
    │   ├── Templates/
    │   │   ├── Lumino-VS2019-Cpp/
    │   │   │   ├── APP/
    │   │   │   │   ├── Launch.cpp
    │   │   │   │   ├── Lumino.natvis
    │   │   │   │   ├── app.rc
    │   │   │   │   ├── pch.cpp
    │   │   │   │   ├── pch.h
    │   │   │   │   ├── resource.h
    │   │   │   │   └── targetver.h
    │   │   │   ├── ASSETS/
    │   │   │   │   └── LineWave.fx
    │   │   │   ├── LuminoProject.vcxproj
    │   │   │   ├── LuminoProject.vcxproj.filters
    │   │   │   ├── Main.cpp
    │   │   │   └── MyTemplate.vstemplate
    │   │   └── README.md
    │   ├── lngetset.snippet
    │   └── lngetsetref.snippet
    ├── VulkanTest/
    │   ├── CMakeLists.txt
    │   └── test1.cpp
    ├── lumino-wg/
    │   ├── CMakeLists.txt
    │   ├── Common.hpp
    │   ├── DotNet/
    │   │   ├── CSClassLibGenerator.cpp
    │   │   ├── CSClassLibGenerator.hpp
    │   │   ├── CSCommon.cpp
    │   │   ├── CSCommon.hpp
    │   │   ├── CSStructsGenerator.cpp
    │   │   ├── CSStructsGenerator.hpp
    │   │   ├── DotNetPInvokeLibGenerator.cpp
    │   │   └── DotNetPInvokeLibGenerator.hpp
    │   ├── Generator.cpp
    │   ├── Generator.hpp
    │   ├── Main.cpp
    │   ├── OutputBuffer.cpp
    │   ├── OutputBuffer.hpp
    │   ├── PCH.hpp
    │   ├── Parser.cpp
    │   ├── Parser.hpp
    │   ├── Readme.md
    │   ├── SymbolDatabase.cpp
    │   ├── SymbolDatabase.hpp
    │   ├── Templates/
    │   │   ├── CSClasses.template.cs
    │   │   ├── CSStructs.template.cs
    │   │   └── DotNetPInvoke.template.cs
    │   └── WrapperIF/
    │       ├── FlatCCommon.cpp
    │       ├── FlatCCommon.hpp
    │       ├── Templates/
    │       │   ├── LuminoC.h
    │       │   ├── Source.cpp
    │       │   └── WrapperIF.h
    │       ├── WrapperIFClassesGenerator.cpp
    │       ├── WrapperIFClassesGenerator.hpp
    │       ├── WrapperIFGenerator.cpp
    │       └── WrapperIFGenerator.hpp
    └── mplus-font/
        ├── LICENSE_E
        ├── LICENSE_J
        └── Readme.md
Download .txt
Showing preview only (2,134K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (21602 symbols across 1579 files)

FILE: docs/Doxygen/theme/tab_change.js
  function lnGetContentsElement (line 17) | function lnGetContentsElement(element)
  function lnGetContentByName (line 31) | function lnGetContentByName(contents, name)
  function lnInitLangTab (line 43) | function lnInitLangTab(element)
  function lnSelectTab (line 66) | function lnSelectTab(element, contentName)

FILE: examples/Experimental/Basic/0-Hello.cpp
  class HelloExample (line 3) | class HelloExample : public Application
    method onInit (line 5) | void onInit() override
    method onUpdate (line 10) | void onUpdate() override

FILE: examples/Experimental/Basic/0-Hello.rb
  class App (line 3) | class App < Application
    method on_init (line 4) | def on_init

FILE: examples/Experimental/Basic/1-Graphics.cpp
  class GraphicsBasicExample (line 3) | class GraphicsBasicExample : public Application
    method onInit (line 7) | void onInit() override
    method onUpdate (line 12) | void onUpdate() override

FILE: examples/Experimental/Basic/1-Graphics.rb
  class App (line 3) | class App < Application
    method on_init (line 4) | def on_init

FILE: examples/Experimental/Basic/2-Entity.cpp
  class EntityBasicExample (line 3) | class EntityBasicExample : public Application
    method onInit (line 5) | void onInit() override

FILE: examples/Experimental/Basic/2-Entity.rb
  class App (line 3) | class App < Application
    method on_init (line 4) | def on_init

FILE: examples/Experimental/Basic/2-Graphics-1.cpp
  class App_Tutorial_Graphics_1 (line 3) | class App_Tutorial_Graphics_1 : public Application
    method onUpdate (line 5) | void onUpdate() override

FILE: examples/Experimental/Basic/2-Graphics-1.rb
  class App (line 3) | class App < Application
    method on_init (line 4) | def on_init

FILE: examples/Experimental/Basic/x-ObjectClass.cpp
  class ObjectClassBasicExample (line 3) | class ObjectClassBasicExample : public Application
    method onInit (line 5) | void onInit() override

FILE: examples/Experimental/Example.PCH.hpp
  type Example (line 6) | struct Example

FILE: examples/Experimental/Features/EntityTransform.cpp
  class Features_EntityTransform (line 4) | class Features_EntityTransform : public Application
    method onInit (line 9) | void onInit() override
    method onUpdate (line 18) | void onUpdate() override

FILE: examples/Experimental/Features/ShapeEntity.cpp
  class App_ShapeEntity (line 4) | class App_ShapeEntity : public Application
    method onInit (line 8) | void onInit() override
    method onUpdate (line 31) | void onUpdate() override

FILE: examples/Experimental/Features/Sprite.cpp
  class App_Sprite (line 4) | class App_Sprite : public Application
    method onInit (line 8) | void onInit() override
    method onUpdate (line 13) | void onUpdate() override

FILE: examples/Experimental/Main.cpp
  type ExampleEntry (line 32) | struct ExampleEntry
  type ExampleGroup (line 38) | struct ExampleGroup
  class Navigator (line 67) | class Navigator
    method Navigator (line 70) | Navigator()
    method update (line 126) | void update()
    method startApp (line 138) | void startApp(const ExampleEntry* example)
    method showList (line 145) | void showList()
    method runRuby (line 150) | void runRuby()
  class ExampleListPane (line 175) | class ExampleListPane
    method onGui (line 181) | void onGui() override
  function main (line 294) | int main(int argc, char** argv)

FILE: examples/Experimental/Tutorial_Sandbox.cpp
  class App_Tutorial_Sandbox (line 4) | class App_Tutorial_Sandbox : public Application
    method App_Tutorial_Sandbox (line 7) | App_Tutorial_Sandbox()
    method onInit (line 13) | virtual void onInit() override
    method onUpdate (line 46) | void onUpdate() override

FILE: examples/FromVcpkg/Main.cpp
  function main (line 4) | int main() {

FILE: external/glad/include/KHR/khrplatform.h
  type khronos_int32_t (line 142) | typedef int32_t                 khronos_int32_t;
  type khronos_uint32_t (line 143) | typedef uint32_t                khronos_uint32_t;
  type khronos_int64_t (line 144) | typedef int64_t                 khronos_int64_t;
  type khronos_uint64_t (line 145) | typedef uint64_t                khronos_uint64_t;
  type khronos_int32_t (line 155) | typedef int32_t                 khronos_int32_t;
  type khronos_uint32_t (line 156) | typedef uint32_t                khronos_uint32_t;
  type khronos_int64_t (line 157) | typedef int64_t                 khronos_int64_t;
  type khronos_uint64_t (line 158) | typedef uint64_t                khronos_uint64_t;
  type __int32 (line 167) | typedef __int32                 khronos_int32_t;
  type khronos_uint32_t (line 168) | typedef unsigned __int32        khronos_uint32_t;
  type __int64 (line 169) | typedef __int64                 khronos_int64_t;
  type khronos_uint64_t (line 170) | typedef unsigned __int64        khronos_uint64_t;
  type khronos_int32_t (line 179) | typedef int                     khronos_int32_t;
  type khronos_uint32_t (line 180) | typedef unsigned int            khronos_uint32_t;
  type khronos_int64_t (line 182) | typedef long int                khronos_int64_t;
  type khronos_uint64_t (line 183) | typedef unsigned long int       khronos_uint64_t;
  type khronos_int64_t (line 185) | typedef long long int           khronos_int64_t;
  type khronos_uint64_t (line 186) | typedef unsigned long long int  khronos_uint64_t;
  type khronos_int32_t (line 196) | typedef int                     khronos_int32_t;
  type khronos_uint32_t (line 197) | typedef unsigned int            khronos_uint32_t;
  type khronos_int32_t (line 207) | typedef int32_t                 khronos_int32_t;
  type khronos_uint32_t (line 208) | typedef uint32_t                khronos_uint32_t;
  type khronos_int64_t (line 209) | typedef int64_t                 khronos_int64_t;
  type khronos_uint64_t (line 210) | typedef uint64_t                khronos_uint64_t;
  type khronos_int8_t (line 220) | typedef signed   char          khronos_int8_t;
  type khronos_uint8_t (line 221) | typedef unsigned char          khronos_uint8_t;
  type khronos_int16_t (line 222) | typedef signed   short int     khronos_int16_t;
  type khronos_uint16_t (line 223) | typedef unsigned short int     khronos_uint16_t;
  type khronos_intptr_t (line 231) | typedef signed   long long int khronos_intptr_t;
  type khronos_uintptr_t (line 232) | typedef unsigned long long int khronos_uintptr_t;
  type khronos_ssize_t (line 233) | typedef signed   long long int khronos_ssize_t;
  type khronos_usize_t (line 234) | typedef unsigned long long int khronos_usize_t;
  type khronos_intptr_t (line 236) | typedef signed   long  int     khronos_intptr_t;
  type khronos_uintptr_t (line 237) | typedef unsigned long  int     khronos_uintptr_t;
  type khronos_ssize_t (line 238) | typedef signed   long  int     khronos_ssize_t;
  type khronos_usize_t (line 239) | typedef unsigned long  int     khronos_usize_t;
  type khronos_float_t (line 246) | typedef          float         khronos_float_t;
  type khronos_uint64_t (line 259) | typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
  type khronos_int64_t (line 260) | typedef khronos_int64_t        khronos_stime_nanoseconds_t;
  type khronos_boolean_enum_t (line 276) | typedef enum {

FILE: external/glad/include/glad/glad.h
  type gladGLversionStruct (line 61) | struct gladGLversionStruct {
  type __int32 (line 133) | typedef __int32 int32_t;
  type __int64 (line 134) | typedef __int64 int64_t;
  type GLenum (line 141) | typedef unsigned int GLenum;
  type GLboolean (line 142) | typedef unsigned char GLboolean;
  type GLbitfield (line 143) | typedef unsigned int GLbitfield;
  type GLvoid (line 144) | typedef void GLvoid;
  type GLbyte (line 145) | typedef signed char GLbyte;
  type GLshort (line 146) | typedef short GLshort;
  type GLint (line 147) | typedef int GLint;
  type GLclampx (line 148) | typedef int GLclampx;
  type GLubyte (line 149) | typedef unsigned char GLubyte;
  type GLushort (line 150) | typedef unsigned short GLushort;
  type GLuint (line 151) | typedef unsigned int GLuint;
  type GLsizei (line 152) | typedef int GLsizei;
  type GLfloat (line 153) | typedef float GLfloat;
  type GLclampf (line 154) | typedef float GLclampf;
  type GLdouble (line 155) | typedef double GLdouble;
  type GLclampd (line 156) | typedef double GLclampd;
  type GLchar (line 159) | typedef char GLchar;
  type GLcharARB (line 160) | typedef char GLcharARB;
  type GLhandleARB (line 164) | typedef unsigned int GLhandleARB;
  type GLhalfARB (line 166) | typedef unsigned short GLhalfARB;
  type GLhalf (line 167) | typedef unsigned short GLhalf;
  type GLint (line 168) | typedef GLint GLfixed;
  type khronos_intptr_t (line 169) | typedef khronos_intptr_t GLintptr;
  type khronos_ssize_t (line 170) | typedef khronos_ssize_t GLsizeiptr;
  type GLint64 (line 171) | typedef int64_t GLint64;
  type GLuint64 (line 172) | typedef uint64_t GLuint64;
  type GLintptrARB (line 174) | typedef long GLintptrARB;
  type GLintptrARB (line 176) | typedef ptrdiff_t GLintptrARB;
  type GLsizeiptrARB (line 179) | typedef long GLsizeiptrARB;
  type GLsizeiptrARB (line 181) | typedef ptrdiff_t GLsizeiptrARB;
  type GLint64EXT (line 183) | typedef int64_t GLint64EXT;
  type GLuint64EXT (line 184) | typedef uint64_t GLuint64EXT;
  type __GLsync (line 185) | struct __GLsync
  type _cl_context (line 186) | struct _cl_context
  type _cl_event (line 187) | struct _cl_event
  type GLhalfNV (line 192) | typedef unsigned short GLhalfNV;
  type GLintptr (line 193) | typedef GLintptr GLvdpauSurfaceNV;
  type GLubyte (line 1263) | typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name);
  type GLubyte (line 1952) | typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLu...
  type const (line 2391) | typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint p...
  type const (line 2394) | typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, G...

FILE: external/glad/src/glad.c
  function open_gl (line 52) | static
  function close_gl (line 66) | static
  function open_gl (line 82) | static
  function close_gl (line 113) | static
  function gladLoadGL (line 143) | int gladLoadGL(void) {
  type gladGLversionStruct (line 154) | struct gladGLversionStruct
  function get_exts (line 167) | static int get_exts(void) {
  function free_exts (line 205) | static void free_exts(void) {
  function has_ext (line 216) | static int has_ext(const char *ext) {
  function load_GL_VERSION_1_0 (line 705) | static void load_GL_VERSION_1_0(GLADloadproc load) {
  function load_GL_VERSION_1_1 (line 756) | static void load_GL_VERSION_1_1(GLADloadproc load) {
  function load_GL_VERSION_1_2 (line 772) | static void load_GL_VERSION_1_2(GLADloadproc load) {
  function load_GL_VERSION_1_3 (line 779) | static void load_GL_VERSION_1_3(GLADloadproc load) {
  function load_GL_VERSION_1_4 (line 791) | static void load_GL_VERSION_1_4(GLADloadproc load) {
  function load_GL_VERSION_1_5 (line 803) | static void load_GL_VERSION_1_5(GLADloadproc load) {
  function load_GL_VERSION_2_0 (line 825) | static void load_GL_VERSION_2_0(GLADloadproc load) {
  function load_GL_VERSION_2_1 (line 921) | static void load_GL_VERSION_2_1(GLADloadproc load) {
  function load_GL_VERSION_3_0 (line 930) | static void load_GL_VERSION_3_0(GLADloadproc load) {
  function load_GL_VERSION_3_1 (line 1017) | static void load_GL_VERSION_3_1(GLADloadproc load) {
  function load_GL_VERSION_3_2 (line 1035) | static void load_GL_VERSION_3_2(GLADloadproc load) {
  function load_GL_VERSION_3_3 (line 1057) | static void load_GL_VERSION_3_3(GLADloadproc load) {
  function load_GL_VERSION_4_0 (line 1118) | static void load_GL_VERSION_4_0(GLADloadproc load) {
  function find_extensionsGL (line 1167) | static int find_extensionsGL(void) {
  function find_coreGL (line 1174) | static void find_coreGL(void) {
  function gladLoadGLLoader (line 1229) | int gladLoadGLLoader(GLADloadproc load) {
  function load_GL_ES_VERSION_2_0 (line 1253) | static void load_GL_ES_VERSION_2_0(GLADloadproc load) {
  function load_GL_ES_VERSION_3_0 (line 1398) | static void load_GL_ES_VERSION_3_0(GLADloadproc load) {
  function find_extensionsGLES2 (line 1505) | static int find_extensionsGLES2(void) {
  function find_coreGLES2 (line 1512) | static void find_coreGLES2(void) {
  function gladLoadGLES2Loader (line 1556) | int gladLoadGLES2Loader(GLADloadproc load) {

FILE: include/LuminoEditor/Plugin.hpp
  type lna (line 3) | namespace lna {
    class EditorContext (line 4) | class EditorContext
    class AssetEditorModel (line 5) | class AssetEditorModel
  type ln (line 8) | namespace ln {
    class UIFrame (line 9) | class UIFrame
    class NavigationMenuItem (line 10) | class NavigationMenuItem
    class AssetImporter (line 11) | class AssetImporter
    class EditorPane (line 12) | class EditorPane
    class IEditorExtension (line 13) | class IEditorExtension
    type EditorExtensionType (line 15) | enum class EditorExtensionType
    class IModuleInterface (line 33) | class IModuleInterface
    class IPluginModule (line 40) | class IPluginModule : public IModuleInterface
    class IEditorExtension (line 53) | class IEditorExtension
    class AssetEditorModelFactory (line 106) | class AssetEditorModelFactory

FILE: lumino/FFI/include/LuminoFFI/FFI.hpp
  type ln (line 4) | namespace ln {
    class Exception (line 5) | class Exception
    class Object (line 6) | class Object
    class FFI (line 8) | class FFI
    type detail (line 25) | namespace detail {
      function T1 (line 28) | inline T1 convertStructForced(const T2& v)

FILE: lumino/FFI/include/LuminoFFI/FlatCommon.h
  type LNHandle (line 52) | typedef uint32_t LNHandle;
  type LNChar (line 57) | typedef char32_t LNChar;
  type LNResult (line 62) | typedef enum tagLNResult
  type LNBool (line 79) | typedef enum tagLNBool
  type LNRuntimeSettings (line 109) | typedef struct tagLNRuntimeSettings
  type LNSubinstanceId (line 144) | typedef uint64_t LNSubinstanceId;
  type LNSubinstanceId (line 145) | typedef LNSubinstanceId(*LNSubinstanceAllocFunc)(LNHandle object);

FILE: lumino/FFI/include/LuminoFFI/Lumino.FlatC.generated.h
  type LNVector3 (line 10) | struct LNVector3
  type LNVector4 (line 20) | struct LNVector4
  type LNQuaternion (line 33) | struct LNQuaternion
  type LNMatrix (line 49) | struct LNMatrix
  type LNPoint (line 60) | struct LNPoint
  type LNSize (line 69) | struct LNSize
  type LNRect (line 78) | struct LNRect
  type LNThickness (line 89) | struct LNThickness
  type LNCornerRadius (line 100) | struct LNCornerRadius
  type LNColor (line 111) | struct LNColor
  type LNColorTone (line 122) | struct LNColorTone
  type LNLogLevel (line 135) | typedef enum tagLNLogLevel
  type LNEncodingType (line 182) | typedef enum tagLNEncodingType
  type LNKeys (line 214) | typedef enum tagLNKeys
  type LNMouseButtons (line 636) | typedef enum tagLNMouseButtons
  type LNGraphicsAPI (line 673) | typedef enum tagLNGraphicsAPI
  type LNTextureFormat (line 700) | typedef enum tagLNTextureFormat
  type LNDepthBufferFormat (line 747) | typedef enum tagLNDepthBufferFormat
  type LNSoundFadeBehavior (line 759) | typedef enum tagLNSoundFadeBehavior
  type LNShadingModel (line 791) | typedef enum tagLNShadingModel
  type LNBlendMode (line 808) | typedef enum tagLNBlendMode
  type LNSceneClearMode (line 840) | typedef enum tagLNSceneClearMode
  type LNAnimationWrapMode (line 872) | typedef enum tagLNAnimationWrapMode
  type LNHierarchicalAnimationMode (line 894) | typedef enum tagLNHierarchicalAnimationMode
  type LNTangentMode (line 921) | typedef enum tagLNTangentMode
  type LNParticleEmitterShapeType (line 948) | typedef enum tagLNParticleEmitterShapeType
  type LNParticleGeometryDirection (line 970) | typedef enum tagLNParticleGeometryDirection
  type LNLevelTransitionEffectMode (line 997) | typedef enum tagLNLevelTransitionEffectMode
  type LNUILayoutOrientation (line 1019) | typedef enum tagLNUILayoutOrientation
  type LNUIVisibility (line 1046) | typedef enum tagLNUIVisibility
  type LNUIColorHues (line 1068) | typedef enum tagLNUIColorHues
  type LNUIVAlignment (line 1175) | typedef enum tagLNUIVAlignment
  type LNUIHAlignment (line 1202) | typedef enum tagLNUIHAlignment
  type LNUIInlinePlacement (line 1229) | typedef enum tagLNUIInlinePlacement
  type LNUIListSubmitMode (line 1281) | typedef enum tagLNUIListSubmitMode
  type LNResult (line 1295) | typedef LNResult(*LNPromiseFailureDelegateCallback)(LNHandle promisefail...
  type LNResult (line 1296) | typedef LNResult(*LNZVTestDelegate1Callback)(LNHandle zvtestdelegate1, i...
  type LNResult (line 1297) | typedef LNResult(*LNZVTestDelegate2Callback)(LNHandle zvtestdelegate2, i...
  type LNResult (line 1298) | typedef LNResult(*LNZVTestDelegate3Callback)(LNHandle zvtestdelegate3, L...
  type LNResult (line 1299) | typedef LNResult(*LNZVTestEventHandler1Callback)(LNHandle zvtesteventhan...
  type LNResult (line 1300) | typedef LNResult(*LNZVTestEventHandler2Callback)(LNHandle zvtesteventhan...
  type LNResult (line 1301) | typedef LNResult(*LNTexture2DDelegateCallback)(LNHandle texture2ddelegat...
  type LNResult (line 1302) | typedef LNResult(*LNCollisionEventHandlerCallback)(LNHandle collisioneve...
  type LNResult (line 1303) | typedef LNResult(*LNTestDelegateCallback)(LNHandle testdelegate, int p1,...
  type LNResult (line 1304) | typedef LNResult(*LNUIGeneralEventHandlerCallback)(LNHandle uigeneraleve...
  type LNResult (line 1305) | typedef LNResult(*LNUIEventHandlerCallback)(LNHandle uieventhandler);
  type LNResult (line 1306) | typedef LNResult(*LNInterpreterCommandDelegateCallback)(LNHandle interpr...
  type LNResult (line 1307) | typedef LNResult(*LNObjectSerializeHandlerCallback)(LNHandle objectseria...
  type LNResult (line 1308) | typedef LNResult(*LNEventConnectionSerializeHandlerCallback)(LNHandle ev...
  type LNResult (line 1309) | typedef LNResult(*LNVariantSerializeHandlerCallback)(LNHandle variantser...
  type LNResult (line 1310) | typedef LNResult(*LNZVTestClass1SerializeHandlerCallback)(LNHandle zvtes...
  type LNResult (line 1311) | typedef LNResult(*LNZVTestEventArgs1SerializeHandlerCallback)(LNHandle z...
  type LNResult (line 1312) | typedef LNResult(*LNSerializer2SerializeHandlerCallback)(LNHandle serial...
  type LNResult (line 1313) | typedef LNResult(*LNAssetObjectSerializeHandlerCallback)(LNHandle asseto...
  type LNResult (line 1314) | typedef LNResult(*LNAssetImportSettingsSerializeHandlerCallback)(LNHandl...
  type LNResult (line 1315) | typedef LNResult(*LNAssetModelSerializeHandlerCallback)(LNHandle assetmo...
  type LNResult (line 1316) | typedef LNResult(*LNTextureSerializeHandlerCallback)(LNHandle textureser...
  type LNResult (line 1317) | typedef LNResult(*LNTexture2DSerializeHandlerCallback)(LNHandle texture2...
  type LNResult (line 1318) | typedef LNResult(*LNShaderSerializeHandlerCallback)(LNHandle shaderseria...
  type LNResult (line 1319) | typedef LNResult(*LNSoundSerializeHandlerCallback)(LNHandle soundseriali...
  type LNResult (line 1320) | typedef LNResult(*LNRenderViewSerializeHandlerCallback)(LNHandle renderv...
  type LNResult (line 1321) | typedef LNResult(*LNMaterialSerializeHandlerCallback)(LNHandle materials...
  type LNResult (line 1322) | typedef LNResult(*LNMeshNodeSerializeHandlerCallback)(LNHandle meshnodes...
  type LNResult (line 1323) | typedef LNResult(*LNAnimationControllerSerializeHandlerCallback)(LNHandl...
  type LNResult (line 1324) | typedef LNResult(*LNMeshModelSerializeHandlerCallback)(LNHandle meshmode...
  type LNResult (line 1325) | typedef LNResult(*LNMeshImportSettingsSerializeHandlerCallback)(LNHandle...
  type LNResult (line 1326) | typedef LNResult(*LNSkinnedMeshModelSerializeHandlerCallback)(LNHandle s...
  type LNResult (line 1327) | typedef LNResult(*LNCollisionShapeSerializeHandlerCallback)(LNHandle col...
  type LNResult (line 1328) | typedef LNResult(*LNBoxCollisionShapeSerializeHandlerCallback)(LNHandle ...
  type LNResult (line 1329) | typedef LNResult(*LNAnimationCurveSerializeHandlerCallback)(LNHandle ani...
  type LNResult (line 1330) | typedef LNResult(*LNKeyFrameAnimationCurveSerializeHandlerCallback)(LNHa...
  type LNResult (line 1331) | typedef LNResult(*LNAnimationClipSerializeHandlerCallback)(LNHandle anim...
  type LNResult (line 1332) | typedef LNResult(*LNAnimationStateSerializeHandlerCallback)(LNHandle ani...
  type LNResult (line 1333) | typedef LNResult(*LNEffectResourceSerializeHandlerCallback)(LNHandle eff...
  type LNResult (line 1334) | typedef LNResult(*LNParticleEmitterModelSerializeHandlerCallback)(LNHand...
  type LNResult (line 1335) | typedef LNResult(*LNParticleModelSerializeHandlerCallback)(LNHandle part...
  type LNResult (line 1336) | typedef LNResult(*LNComponentSerializeHandlerCallback)(LNHandle componen...
  type LNResult (line 1337) | typedef LNResult(*LNVisualComponentSerializeHandlerCallback)(LNHandle vi...
  type LNResult (line 1338) | typedef LNResult(*LNSpriteComponentSerializeHandlerCallback)(LNHandle sp...
  type LNResult (line 1339) | typedef LNResult(*LNCharacterControllerSerializeHandlerCallback)(LNHandl...
  type LNResult (line 1340) | typedef LNResult(*LNWorldSerializeHandlerCallback)(LNHandle worldseriali...
  type LNResult (line 1341) | typedef LNResult(*LNComponentListSerializeHandlerCallback)(LNHandle comp...
  type LNResult (line 1342) | typedef LNResult(*LNWorldObjectSerializeHandlerCallback)(LNHandle worldo...
  type LNResult (line 1343) | typedef LNResult(*LNWorldObjectPreUpdateHandlerCallback)(LNHandle worldo...
  type LNResult (line 1344) | typedef LNResult(*LNWorldObjectUpdateHandlerCallback)(LNHandle worldobje...
  type LNResult (line 1345) | typedef LNResult(*LNVisualObjectSerializeHandlerCallback)(LNHandle visua...
  type LNResult (line 1346) | typedef LNResult(*LNVisualObjectPreUpdateHandlerCallback)(LNHandle visua...
  type LNResult (line 1347) | typedef LNResult(*LNVisualObjectUpdateHandlerCallback)(LNHandle visualob...
  type LNResult (line 1348) | typedef LNResult(*LNCameraSerializeHandlerCallback)(LNHandle cameraseria...
  type LNResult (line 1349) | typedef LNResult(*LNCameraPreUpdateHandlerCallback)(LNHandle camerapreup...
  type LNResult (line 1350) | typedef LNResult(*LNCameraUpdateHandlerCallback)(LNHandle cameraupdateha...
  type LNResult (line 1351) | typedef LNResult(*LNEnvironmentLightSerializeHandlerCallback)(LNHandle e...
  type LNResult (line 1352) | typedef LNResult(*LNEnvironmentLightPreUpdateHandlerCallback)(LNHandle e...
  type LNResult (line 1353) | typedef LNResult(*LNEnvironmentLightUpdateHandlerCallback)(LNHandle envi...
  type LNResult (line 1354) | typedef LNResult(*LNDirectionalLightSerializeHandlerCallback)(LNHandle d...
  type LNResult (line 1355) | typedef LNResult(*LNDirectionalLightPreUpdateHandlerCallback)(LNHandle d...
  type LNResult (line 1356) | typedef LNResult(*LNDirectionalLightUpdateHandlerCallback)(LNHandle dire...
  type LNResult (line 1357) | typedef LNResult(*LNPointLightSerializeHandlerCallback)(LNHandle pointli...
  type LNResult (line 1358) | typedef LNResult(*LNPointLightPreUpdateHandlerCallback)(LNHandle pointli...
  type LNResult (line 1359) | typedef LNResult(*LNPointLightUpdateHandlerCallback)(LNHandle pointlight...
  type LNResult (line 1360) | typedef LNResult(*LNSpotLightSerializeHandlerCallback)(LNHandle spotligh...
  type LNResult (line 1361) | typedef LNResult(*LNSpotLightPreUpdateHandlerCallback)(LNHandle spotligh...
  type LNResult (line 1362) | typedef LNResult(*LNSpotLightUpdateHandlerCallback)(LNHandle spotlightup...
  type LNResult (line 1363) | typedef LNResult(*LNSpriteSerializeHandlerCallback)(LNHandle spriteseria...
  type LNResult (line 1364) | typedef LNResult(*LNSpritePreUpdateHandlerCallback)(LNHandle spritepreup...
  type LNResult (line 1365) | typedef LNResult(*LNSpriteUpdateHandlerCallback)(LNHandle spriteupdateha...
  type LNResult (line 1366) | typedef LNResult(*LNCameraOrbitControlComponentSerializeHandlerCallback)...
  type LNResult (line 1367) | typedef LNResult(*LNRaycasterSerializeHandlerCallback)(LNHandle raycaste...
  type LNResult (line 1368) | typedef LNResult(*LNRaycastResultSerializeHandlerCallback)(LNHandle rayc...
  type LNResult (line 1369) | typedef LNResult(*LNWorldRenderViewSerializeHandlerCallback)(LNHandle wo...
  type LNResult (line 1370) | typedef LNResult(*LNShapeObjectSerializeHandlerCallback)(LNHandle shapeo...
  type LNResult (line 1371) | typedef LNResult(*LNShapeObjectPreUpdateHandlerCallback)(LNHandle shapeo...
  type LNResult (line 1372) | typedef LNResult(*LNShapeObjectUpdateHandlerCallback)(LNHandle shapeobje...
  type LNResult (line 1373) | typedef LNResult(*LNPlaneMeshSerializeHandlerCallback)(LNHandle planemes...
  type LNResult (line 1374) | typedef LNResult(*LNPlaneMeshPreUpdateHandlerCallback)(LNHandle planemes...
  type LNResult (line 1375) | typedef LNResult(*LNPlaneMeshUpdateHandlerCallback)(LNHandle planemeshup...
  type LNResult (line 1376) | typedef LNResult(*LNStaticMeshSerializeHandlerCallback)(LNHandle staticm...
  type LNResult (line 1377) | typedef LNResult(*LNStaticMeshPreUpdateHandlerCallback)(LNHandle staticm...
  type LNResult (line 1378) | typedef LNResult(*LNStaticMeshUpdateHandlerCallback)(LNHandle staticmesh...
  type LNResult (line 1379) | typedef LNResult(*LNMeshComponentSerializeHandlerCallback)(LNHandle mesh...
  type LNResult (line 1380) | typedef LNResult(*LNCollisionSerializeHandlerCallback)(LNHandle collisio...
  type LNResult (line 1381) | typedef LNResult(*LNTriggerBodyComponentSerializeHandlerCallback)(LNHand...
  type LNResult (line 1382) | typedef LNResult(*LNParticleEmitterSerializeHandlerCallback)(LNHandle pa...
  type LNResult (line 1383) | typedef LNResult(*LNParticleEmitterPreUpdateHandlerCallback)(LNHandle pa...
  type LNResult (line 1384) | typedef LNResult(*LNParticleEmitterUpdateHandlerCallback)(LNHandle parti...
  type LNResult (line 1385) | typedef LNResult(*LNLevelSerializeHandlerCallback)(LNHandle levelseriali...
  type LNResult (line 1386) | typedef LNResult(*LNLevelStartHandlerCallback)(LNHandle levelstarthandle...
  type LNResult (line 1387) | typedef LNResult(*LNLevelStopHandlerCallback)(LNHandle levelstophandler,...
  type LNResult (line 1388) | typedef LNResult(*LNLevelPauseHandlerCallback)(LNHandle levelpausehandle...
  type LNResult (line 1389) | typedef LNResult(*LNLevelResumeHandlerCallback)(LNHandle levelresumehand...
  type LNResult (line 1390) | typedef LNResult(*LNLevelUpdateHandlerCallback)(LNHandle levelupdatehand...
  type LNResult (line 1391) | typedef LNResult(*LNUIEventArgsSerializeHandlerCallback)(LNHandle uieven...
  type LNResult (line 1392) | typedef LNResult(*LNUILayoutElementSerializeHandlerCallback)(LNHandle ui...
  type LNResult (line 1393) | typedef LNResult(*LNUIElementSerializeHandlerCallback)(LNHandle uielemen...
  type LNResult (line 1394) | typedef LNResult(*LNUITextSerializeHandlerCallback)(LNHandle uitextseria...
  type LNResult (line 1395) | typedef LNResult(*LNUISpriteSerializeHandlerCallback)(LNHandle uisprites...
  type LNResult (line 1396) | typedef LNResult(*LNUIIconSerializeHandlerCallback)(LNHandle uiiconseria...
  type LNResult (line 1397) | typedef LNResult(*LNUIMessageTextAreaSerializeHandlerCallback)(LNHandle ...
  type LNResult (line 1398) | typedef LNResult(*LNUILayoutPanelSerializeHandlerCallback)(LNHandle uila...
  type LNResult (line 1399) | typedef LNResult(*LNUIBoxLayoutSerializeHandlerCallback)(LNHandle uiboxl...
  type LNResult (line 1400) | typedef LNResult(*LNUIStackLayoutSerializeHandlerCallback)(LNHandle uist...
  type LNResult (line 1401) | typedef LNResult(*LNUIGridLayoutSerializeHandlerCallback)(LNHandle uigri...
  type LNResult (line 1402) | typedef LNResult(*LNUIControlSerializeHandlerCallback)(LNHandle uicontro...
  type LNResult (line 1403) | typedef LNResult(*LNUIButtonBaseSerializeHandlerCallback)(LNHandle uibut...
  type LNResult (line 1404) | typedef LNResult(*LNUIButtonSerializeHandlerCallback)(LNHandle uibuttons...
  type LNResult (line 1405) | typedef LNResult(*LNUIWindowSerializeHandlerCallback)(LNHandle uiwindows...
  type LNResult (line 1406) | typedef LNResult(*LNUIListItemsControlSerializeHandlerCallback)(LNHandle...
  type LNResult (line 1407) | typedef LNResult(*LNUIListBoxSerializeHandlerCallback)(LNHandle uilistbo...
  type LNResult (line 1408) | typedef LNResult(*LNUIListItemSerializeHandlerCallback)(LNHandle uilisti...
  type LNResult (line 1409) | typedef LNResult(*LNUIListBoxItemSerializeHandlerCallback)(LNHandle uili...
  type LNResult (line 1410) | typedef LNResult(*LNInputGestureSerializeHandlerCallback)(LNHandle input...
  type LNResult (line 1411) | typedef LNResult(*LNKeyGestureSerializeHandlerCallback)(LNHandle keygest...
  type LNResult (line 1412) | typedef LNResult(*LNInterpreterCommandSerializeHandlerCallback)(LNHandle...
  type LNResult (line 1413) | typedef LNResult(*LNInterpreterCommandListSerializeHandlerCallback)(LNHa...
  type LNResult (line 1414) | typedef LNResult(*LNInterpreterSerializeHandlerCallback)(LNHandle interp...
  type LNResult (line 1415) | typedef LNResult(*LNInterpreterUpdateWaitHandlerCallback)(LNHandle inter...
  type LNResult (line 1416) | typedef LNResult(*LNApplicationSerializeHandlerCallback)(LNHandle applic...
  type LNResult (line 1417) | typedef LNResult(*LNApplicationInitHandlerCallback)(LNHandle application...
  type LNResult (line 1418) | typedef LNResult(*LNApplicationUpdateHandlerCallback)(LNHandle applicati...
  type LNResult (line 1780) | typedef LNResult(*LNObject_OnSerialize_OverrideCallback)(LNHandle object...
  type LNObject_SubclassRegistrationInfo (line 1793) | typedef struct tagLNObject_SubclassRegistrationInfo
  type LNResult (line 1808) | typedef LNResult(*LNEventConnection_OnSerialize_OverrideCallback)(LNHand...
  type LNEventConnection_SubclassRegistrationInfo (line 1821) | typedef struct tagLNEventConnection_SubclassRegistrationInfo
  type LNPromiseFailureDelegate_SubclassRegistrationInfo (line 1838) | typedef struct tagLNPromiseFailureDelegate_SubclassRegistrationInfo
  type LNResult (line 1872) | typedef LNResult(*LNVariant_OnSerialize_OverrideCallback)(LNHandle objec...
  type LNVariant_SubclassRegistrationInfo (line 1885) | typedef struct tagLNVariant_SubclassRegistrationInfo
  type LNZVTestDelegate1_SubclassRegistrationInfo (line 1902) | typedef struct tagLNZVTestDelegate1_SubclassRegistrationInfo
  type LNZVTestDelegate2_SubclassRegistrationInfo (line 1918) | typedef struct tagLNZVTestDelegate2_SubclassRegistrationInfo
  type LNZVTestDelegate3_SubclassRegistrationInfo (line 1934) | typedef struct tagLNZVTestDelegate3_SubclassRegistrationInfo
  type LNZVTestEventHandler1_SubclassRegistrationInfo (line 1950) | typedef struct tagLNZVTestEventHandler1_SubclassRegistrationInfo
  type LNZVTestEventHandler2_SubclassRegistrationInfo (line 1966) | typedef struct tagLNZVTestEventHandler2_SubclassRegistrationInfo
  type LNZVTestPromise1_SubclassRegistrationInfo (line 1996) | typedef struct tagLNZVTestPromise1_SubclassRegistrationInfo
  type LNZVTestPromise2_SubclassRegistrationInfo (line 2026) | typedef struct tagLNZVTestPromise2_SubclassRegistrationInfo
  type LNResult (line 2140) | typedef LNResult(*LNZVTestClass1_OnSerialize_OverrideCallback)(LNHandle ...
  type LNZVTestClass1_SubclassRegistrationInfo (line 2153) | typedef struct tagLNZVTestClass1_SubclassRegistrationInfo
  type LNResult (line 2188) | typedef LNResult(*LNZVTestEventArgs1_OnSerialize_OverrideCallback)(LNHan...
  type LNZVTestEventArgs1_SubclassRegistrationInfo (line 2201) | typedef struct tagLNZVTestEventArgs1_SubclassRegistrationInfo
  type LNResult (line 2240) | typedef LNResult(*LNSerializer2_OnSerialize_OverrideCallback)(LNHandle o...
  type LNSerializer2_SubclassRegistrationInfo (line 2253) | typedef struct tagLNSerializer2_SubclassRegistrationInfo
  type LNResult (line 2268) | typedef LNResult(*LNAssetObject_OnSerialize_OverrideCallback)(LNHandle o...
  type LNAssetObject_SubclassRegistrationInfo (line 2281) | typedef struct tagLNAssetObject_SubclassRegistrationInfo
  type LNResult (line 2296) | typedef LNResult(*LNAssetImportSettings_OnSerialize_OverrideCallback)(LN...
  type LNAssetImportSettings_SubclassRegistrationInfo (line 2309) | typedef struct tagLNAssetImportSettings_SubclassRegistrationInfo
  type LNResult (line 2338) | typedef LNResult(*LNAssetModel_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNAssetModel_SubclassRegistrationInfo (line 2351) | typedef struct tagLNAssetModel_SubclassRegistrationInfo
  type LNTexture2DDelegate_SubclassRegistrationInfo (line 2415) | typedef struct tagLNTexture2DDelegate_SubclassRegistrationInfo
  type LNTexture2DPromise_SubclassRegistrationInfo (line 2445) | typedef struct tagLNTexture2DPromise_SubclassRegistrationInfo
  type LNResult (line 2469) | typedef LNResult(*LNTexture_OnSerialize_OverrideCallback)(LNHandle objec...
  type LNTexture_SubclassRegistrationInfo (line 2482) | typedef struct tagLNTexture_SubclassRegistrationInfo
  type LNResult (line 2532) | typedef LNResult(*LNTexture2D_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNTexture2D_SubclassRegistrationInfo (line 2545) | typedef struct tagLNTexture2D_SubclassRegistrationInfo
  type LNResult (line 2605) | typedef LNResult(*LNShader_OnSerialize_OverrideCallback)(LNHandle object...
  type LNShader_SubclassRegistrationInfo (line 2618) | typedef struct tagLNShader_SubclassRegistrationInfo
  type LNResult (line 2716) | typedef LNResult(*LNSound_OnSerialize_OverrideCallback)(LNHandle object,...
  type LNSound_SubclassRegistrationInfo (line 2729) | typedef struct tagLNSound_SubclassRegistrationInfo
  type LNResult (line 2819) | typedef LNResult(*LNRenderView_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNRenderView_SubclassRegistrationInfo (line 2832) | typedef struct tagLNRenderView_SubclassRegistrationInfo
  type LNResult (line 2923) | typedef LNResult(*LNMaterial_OnSerialize_OverrideCallback)(LNHandle obje...
  type LNMaterial_SubclassRegistrationInfo (line 2936) | typedef struct tagLNMaterial_SubclassRegistrationInfo
  type LNResult (line 2965) | typedef LNResult(*LNMeshNode_OnSerialize_OverrideCallback)(LNHandle obje...
  type LNMeshNode_SubclassRegistrationInfo (line 2978) | typedef struct tagLNMeshNode_SubclassRegistrationInfo
  type LNResult (line 3009) | typedef LNResult(*LNAnimationController_OnSerialize_OverrideCallback)(LN...
  type LNAnimationController_SubclassRegistrationInfo (line 3022) | typedef struct tagLNAnimationController_SubclassRegistrationInfo
  type LNResult (line 3086) | typedef LNResult(*LNMeshModel_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNMeshModel_SubclassRegistrationInfo (line 3099) | typedef struct tagLNMeshModel_SubclassRegistrationInfo
  type LNResult (line 3120) | typedef LNResult(*LNMeshImportSettings_OnSerialize_OverrideCallback)(LNH...
  type LNMeshImportSettings_SubclassRegistrationInfo (line 3133) | typedef struct tagLNMeshImportSettings_SubclassRegistrationInfo
  type LNResult (line 3148) | typedef LNResult(*LNSkinnedMeshModel_OnSerialize_OverrideCallback)(LNHan...
  type LNSkinnedMeshModel_SubclassRegistrationInfo (line 3161) | typedef struct tagLNSkinnedMeshModel_SubclassRegistrationInfo
  type LNResult (line 3176) | typedef LNResult(*LNCollisionShape_OnSerialize_OverrideCallback)(LNHandl...
  type LNCollisionShape_SubclassRegistrationInfo (line 3189) | typedef struct tagLNCollisionShape_SubclassRegistrationInfo
  type LNResult (line 3220) | typedef LNResult(*LNBoxCollisionShape_OnSerialize_OverrideCallback)(LNHa...
  type LNBoxCollisionShape_SubclassRegistrationInfo (line 3233) | typedef struct tagLNBoxCollisionShape_SubclassRegistrationInfo
  type LNResult (line 3256) | typedef LNResult(*LNAnimationCurve_OnSerialize_OverrideCallback)(LNHandl...
  type LNAnimationCurve_SubclassRegistrationInfo (line 3269) | typedef struct tagLNAnimationCurve_SubclassRegistrationInfo
  type LNResult (line 3301) | typedef LNResult(*LNKeyFrameAnimationCurve_OnSerialize_OverrideCallback)...
  type LNKeyFrameAnimationCurve_SubclassRegistrationInfo (line 3314) | typedef struct tagLNKeyFrameAnimationCurve_SubclassRegistrationInfo
  type LNResult (line 3365) | typedef LNResult(*LNAnimationClip_OnSerialize_OverrideCallback)(LNHandle...
  type LNAnimationClip_SubclassRegistrationInfo (line 3378) | typedef struct tagLNAnimationClip_SubclassRegistrationInfo
  type LNResult (line 3393) | typedef LNResult(*LNAnimationState_OnSerialize_OverrideCallback)(LNHandl...
  type LNAnimationState_SubclassRegistrationInfo (line 3406) | typedef struct tagLNAnimationState_SubclassRegistrationInfo
  type LNResult (line 3421) | typedef LNResult(*LNEffectResource_OnSerialize_OverrideCallback)(LNHandl...
  type LNEffectResource_SubclassRegistrationInfo (line 3434) | typedef struct tagLNEffectResource_SubclassRegistrationInfo
  type LNResult (line 3539) | typedef LNResult(*LNParticleEmitterModel_OnSerialize_OverrideCallback)(L...
  type LNParticleEmitterModel_SubclassRegistrationInfo (line 3552) | typedef struct tagLNParticleEmitterModel_SubclassRegistrationInfo
  type LNResult (line 3594) | typedef LNResult(*LNParticleModel_OnSerialize_OverrideCallback)(LNHandle...
  type LNParticleModel_SubclassRegistrationInfo (line 3607) | typedef struct tagLNParticleModel_SubclassRegistrationInfo
  type LNResult (line 3622) | typedef LNResult(*LNComponent_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNComponent_SubclassRegistrationInfo (line 3635) | typedef struct tagLNComponent_SubclassRegistrationInfo
  type LNResult (line 3664) | typedef LNResult(*LNVisualComponent_OnSerialize_OverrideCallback)(LNHand...
  type LNVisualComponent_SubclassRegistrationInfo (line 3677) | typedef struct tagLNVisualComponent_SubclassRegistrationInfo
  type LNResult (line 3699) | typedef LNResult(*LNSpriteComponent_OnSerialize_OverrideCallback)(LNHand...
  type LNSpriteComponent_SubclassRegistrationInfo (line 3712) | typedef struct tagLNSpriteComponent_SubclassRegistrationInfo
  type LNCollisionEventHandler_SubclassRegistrationInfo (line 3729) | typedef struct tagLNCollisionEventHandler_SubclassRegistrationInfo
  type LNResult (line 3842) | typedef LNResult(*LNCharacterController_OnSerialize_OverrideCallback)(LN...
  type LNCharacterController_SubclassRegistrationInfo (line 3855) | typedef struct tagLNCharacterController_SubclassRegistrationInfo
  type LNResult (line 3877) | typedef LNResult(*LNWorld_OnSerialize_OverrideCallback)(LNHandle object,...
  type LNWorld_SubclassRegistrationInfo (line 3890) | typedef struct tagLNWorld_SubclassRegistrationInfo
  type LNResult (line 3920) | typedef LNResult(*LNComponentList_OnSerialize_OverrideCallback)(LNHandle...
  type LNComponentList_SubclassRegistrationInfo (line 3933) | typedef struct tagLNComponentList_SubclassRegistrationInfo
  type LNResult (line 4129) | typedef LNResult(*LNWorldObject_OnSerialize_OverrideCallback)(LNHandle o...
  type LNResult (line 4132) | typedef LNResult(*LNWorldObject_OnPreUpdate_OverrideCallback)(LNHandle w...
  type LNResult (line 4135) | typedef LNResult(*LNWorldObject_OnUpdate_OverrideCallback)(LNHandle worl...
  type LNWorldObject_SubclassRegistrationInfo (line 4162) | typedef struct tagLNWorldObject_SubclassRegistrationInfo
  type LNResult (line 4214) | typedef LNResult(*LNVisualObject_OnSerialize_OverrideCallback)(LNHandle ...
  type LNResult (line 4217) | typedef LNResult(*LNVisualObject_OnPreUpdate_OverrideCallback)(LNHandle ...
  type LNResult (line 4220) | typedef LNResult(*LNVisualObject_OnUpdate_OverrideCallback)(LNHandle wor...
  type LNVisualObject_SubclassRegistrationInfo (line 4247) | typedef struct tagLNVisualObject_SubclassRegistrationInfo
  type LNResult (line 4264) | typedef LNResult(*LNCamera_OnSerialize_OverrideCallback)(LNHandle object...
  type LNResult (line 4267) | typedef LNResult(*LNCamera_OnPreUpdate_OverrideCallback)(LNHandle worldo...
  type LNResult (line 4270) | typedef LNResult(*LNCamera_OnUpdate_OverrideCallback)(LNHandle worldobje...
  type LNCamera_SubclassRegistrationInfo (line 4297) | typedef struct tagLNCamera_SubclassRegistrationInfo
  type LNResult (line 4426) | typedef LNResult(*LNEnvironmentLight_OnSerialize_OverrideCallback)(LNHan...
  type LNResult (line 4429) | typedef LNResult(*LNEnvironmentLight_OnPreUpdate_OverrideCallback)(LNHan...
  type LNResult (line 4432) | typedef LNResult(*LNEnvironmentLight_OnUpdate_OverrideCallback)(LNHandle...
  type LNEnvironmentLight_SubclassRegistrationInfo (line 4459) | typedef struct tagLNEnvironmentLight_SubclassRegistrationInfo
  type LNResult (line 4559) | typedef LNResult(*LNDirectionalLight_OnSerialize_OverrideCallback)(LNHan...
  type LNResult (line 4562) | typedef LNResult(*LNDirectionalLight_OnPreUpdate_OverrideCallback)(LNHan...
  type LNResult (line 4565) | typedef LNResult(*LNDirectionalLight_OnUpdate_OverrideCallback)(LNHandle...
  type LNDirectionalLight_SubclassRegistrationInfo (line 4592) | typedef struct tagLNDirectionalLight_SubclassRegistrationInfo
  type LNResult (line 4693) | typedef LNResult(*LNPointLight_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNResult (line 4696) | typedef LNResult(*LNPointLight_OnPreUpdate_OverrideCallback)(LNHandle wo...
  type LNResult (line 4699) | typedef LNResult(*LNPointLight_OnUpdate_OverrideCallback)(LNHandle world...
  type LNPointLight_SubclassRegistrationInfo (line 4726) | typedef struct tagLNPointLight_SubclassRegistrationInfo
  type LNResult (line 4856) | typedef LNResult(*LNSpotLight_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNResult (line 4859) | typedef LNResult(*LNSpotLight_OnPreUpdate_OverrideCallback)(LNHandle wor...
  type LNResult (line 4862) | typedef LNResult(*LNSpotLight_OnUpdate_OverrideCallback)(LNHandle worldo...
  type LNSpotLight_SubclassRegistrationInfo (line 4889) | typedef struct tagLNSpotLight_SubclassRegistrationInfo
  type LNTestDelegate_SubclassRegistrationInfo (line 4908) | typedef struct tagLNTestDelegate_SubclassRegistrationInfo
  type LNResult (line 4983) | typedef LNResult(*LNSprite_OnSerialize_OverrideCallback)(LNHandle object...
  type LNResult (line 4986) | typedef LNResult(*LNSprite_OnPreUpdate_OverrideCallback)(LNHandle worldo...
  type LNResult (line 4989) | typedef LNResult(*LNSprite_OnUpdate_OverrideCallback)(LNHandle worldobje...
  type LNSprite_SubclassRegistrationInfo (line 5016) | typedef struct tagLNSprite_SubclassRegistrationInfo
  type LNResult (line 5039) | typedef LNResult(*LNCameraOrbitControlComponent_OnSerialize_OverrideCall...
  type LNCameraOrbitControlComponent_SubclassRegistrationInfo (line 5052) | typedef struct tagLNCameraOrbitControlComponent_SubclassRegistrationInfo
  type LNResult (line 5084) | typedef LNResult(*LNRaycaster_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNRaycaster_SubclassRegistrationInfo (line 5097) | typedef struct tagLNRaycaster_SubclassRegistrationInfo
  type LNResult (line 5119) | typedef LNResult(*LNRaycastResult_OnSerialize_OverrideCallback)(LNHandle...
  type LNRaycastResult_SubclassRegistrationInfo (line 5132) | typedef struct tagLNRaycastResult_SubclassRegistrationInfo
  type LNResult (line 5161) | typedef LNResult(*LNWorldRenderView_OnSerialize_OverrideCallback)(LNHand...
  type LNWorldRenderView_SubclassRegistrationInfo (line 5174) | typedef struct tagLNWorldRenderView_SubclassRegistrationInfo
  type LNResult (line 5189) | typedef LNResult(*LNShapeObject_OnSerialize_OverrideCallback)(LNHandle o...
  type LNResult (line 5192) | typedef LNResult(*LNShapeObject_OnPreUpdate_OverrideCallback)(LNHandle w...
  type LNResult (line 5195) | typedef LNResult(*LNShapeObject_OnUpdate_OverrideCallback)(LNHandle worl...
  type LNShapeObject_SubclassRegistrationInfo (line 5222) | typedef struct tagLNShapeObject_SubclassRegistrationInfo
  type LNResult (line 5245) | typedef LNResult(*LNPlaneMesh_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNResult (line 5248) | typedef LNResult(*LNPlaneMesh_OnPreUpdate_OverrideCallback)(LNHandle wor...
  type LNResult (line 5251) | typedef LNResult(*LNPlaneMesh_OnUpdate_OverrideCallback)(LNHandle worldo...
  type LNPlaneMesh_SubclassRegistrationInfo (line 5278) | typedef struct tagLNPlaneMesh_SubclassRegistrationInfo
  type LNBoxMesh_SubclassRegistrationInfo (line 5319) | typedef struct tagLNBoxMesh_SubclassRegistrationInfo
  type LNResult (line 5357) | typedef LNResult(*LNStaticMesh_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNResult (line 5360) | typedef LNResult(*LNStaticMesh_OnPreUpdate_OverrideCallback)(LNHandle wo...
  type LNResult (line 5363) | typedef LNResult(*LNStaticMesh_OnUpdate_OverrideCallback)(LNHandle world...
  type LNStaticMesh_SubclassRegistrationInfo (line 5390) | typedef struct tagLNStaticMesh_SubclassRegistrationInfo
  type LNResult (line 5428) | typedef LNResult(*LNMeshComponent_OnSerialize_OverrideCallback)(LNHandle...
  type LNMeshComponent_SubclassRegistrationInfo (line 5441) | typedef struct tagLNMeshComponent_SubclassRegistrationInfo
  type LNResult (line 5463) | typedef LNResult(*LNCollision_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNCollision_SubclassRegistrationInfo (line 5476) | typedef struct tagLNCollision_SubclassRegistrationInfo
  type LNResult (line 5504) | typedef LNResult(*LNTriggerBodyComponent_OnSerialize_OverrideCallback)(L...
  type LNTriggerBodyComponent_SubclassRegistrationInfo (line 5517) | typedef struct tagLNTriggerBodyComponent_SubclassRegistrationInfo
  type LNResult (line 5539) | typedef LNResult(*LNParticleEmitter_OnSerialize_OverrideCallback)(LNHand...
  type LNResult (line 5542) | typedef LNResult(*LNParticleEmitter_OnPreUpdate_OverrideCallback)(LNHand...
  type LNResult (line 5545) | typedef LNResult(*LNParticleEmitter_OnUpdate_OverrideCallback)(LNHandle ...
  type LNParticleEmitter_SubclassRegistrationInfo (line 5572) | typedef struct tagLNParticleEmitter_SubclassRegistrationInfo
  type LNResult (line 5981) | typedef LNResult(*LNLevel_OnSerialize_OverrideCallback)(LNHandle object,...
  type LNResult (line 5984) | typedef LNResult(*LNLevel_OnStart_OverrideCallback)(LNHandle level);
  type LNResult (line 5987) | typedef LNResult(*LNLevel_OnStop_OverrideCallback)(LNHandle level);
  type LNResult (line 5990) | typedef LNResult(*LNLevel_OnPause_OverrideCallback)(LNHandle level);
  type LNResult (line 5993) | typedef LNResult(*LNLevel_OnResume_OverrideCallback)(LNHandle level);
  type LNResult (line 5996) | typedef LNResult(*LNLevel_OnUpdate_OverrideCallback)(LNHandle level);
  type LNLevel_SubclassRegistrationInfo (line 6044) | typedef struct tagLNLevel_SubclassRegistrationInfo
  type LNResult (line 6209) | typedef LNResult(*LNUIEventArgs_OnSerialize_OverrideCallback)(LNHandle o...
  type LNUIEventArgs_SubclassRegistrationInfo (line 6222) | typedef struct tagLNUIEventArgs_SubclassRegistrationInfo
  type LNUIGeneralEventHandler_SubclassRegistrationInfo (line 6239) | typedef struct tagLNUIGeneralEventHandler_SubclassRegistrationInfo
  type LNUIEventHandler_SubclassRegistrationInfo (line 6255) | typedef struct tagLNUIEventHandler_SubclassRegistrationInfo
  type LNResult (line 6269) | typedef LNResult(*LNUILayoutElement_OnSerialize_OverrideCallback)(LNHand...
  type LNUILayoutElement_SubclassRegistrationInfo (line 6282) | typedef struct tagLNUILayoutElement_SubclassRegistrationInfo
  type LNResult (line 6642) | typedef LNResult(*LNUIElement_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNUIElement_SubclassRegistrationInfo (line 6655) | typedef struct tagLNUIElement_SubclassRegistrationInfo
  type LNResult (line 6700) | typedef LNResult(*LNUIText_OnSerialize_OverrideCallback)(LNHandle object...
  type LNUIText_SubclassRegistrationInfo (line 6713) | typedef struct tagLNUIText_SubclassRegistrationInfo
  type LNResult (line 6779) | typedef LNResult(*LNUISprite_OnSerialize_OverrideCallback)(LNHandle obje...
  type LNUISprite_SubclassRegistrationInfo (line 6792) | typedef struct tagLNUISprite_SubclassRegistrationInfo
  type LNResult (line 6834) | typedef LNResult(*LNUIIcon_OnSerialize_OverrideCallback)(LNHandle object...
  type LNUIIcon_SubclassRegistrationInfo (line 6847) | typedef struct tagLNUIIcon_SubclassRegistrationInfo
  type LNResult (line 6883) | typedef LNResult(*LNUIMessageTextArea_OnSerialize_OverrideCallback)(LNHa...
  type LNUIMessageTextArea_SubclassRegistrationInfo (line 6896) | typedef struct tagLNUIMessageTextArea_SubclassRegistrationInfo
  type LNResult (line 6927) | typedef LNResult(*LNUILayoutPanel_OnSerialize_OverrideCallback)(LNHandle...
  type LNUILayoutPanel_SubclassRegistrationInfo (line 6940) | typedef struct tagLNUILayoutPanel_SubclassRegistrationInfo
  type LNResult (line 6975) | typedef LNResult(*LNUIBoxLayout_OnSerialize_OverrideCallback)(LNHandle o...
  type LNUIBoxLayout_SubclassRegistrationInfo (line 6988) | typedef struct tagLNUIBoxLayout_SubclassRegistrationInfo
  type LNResult (line 7023) | typedef LNResult(*LNUIStackLayout_OnSerialize_OverrideCallback)(LNHandle...
  type LNUIStackLayout_SubclassRegistrationInfo (line 7036) | typedef struct tagLNUIStackLayout_SubclassRegistrationInfo
  type LNResult (line 7088) | typedef LNResult(*LNUIGridLayout_OnSerialize_OverrideCallback)(LNHandle ...
  type LNUIGridLayout_SubclassRegistrationInfo (line 7101) | typedef struct tagLNUIGridLayout_SubclassRegistrationInfo
  type LNResult (line 7130) | typedef LNResult(*LNUIControl_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNUIControl_SubclassRegistrationInfo (line 7143) | typedef struct tagLNUIControl_SubclassRegistrationInfo
  type LNResult (line 7166) | typedef LNResult(*LNUIButtonBase_OnSerialize_OverrideCallback)(LNHandle ...
  type LNUIButtonBase_SubclassRegistrationInfo (line 7179) | typedef struct tagLNUIButtonBase_SubclassRegistrationInfo
  type LNResult (line 7216) | typedef LNResult(*LNUIButton_OnSerialize_OverrideCallback)(LNHandle obje...
  type LNUIButton_SubclassRegistrationInfo (line 7229) | typedef struct tagLNUIButton_SubclassRegistrationInfo
  type LNResult (line 7250) | typedef LNResult(*LNUIWindow_OnSerialize_OverrideCallback)(LNHandle obje...
  type LNUIWindow_SubclassRegistrationInfo (line 7263) | typedef struct tagLNUIWindow_SubclassRegistrationInfo
  type LNResult (line 7314) | typedef LNResult(*LNUIListItemsControl_OnSerialize_OverrideCallback)(LNH...
  type LNUIListItemsControl_SubclassRegistrationInfo (line 7327) | typedef struct tagLNUIListItemsControl_SubclassRegistrationInfo
  type LNResult (line 7356) | typedef LNResult(*LNUIListBox_OnSerialize_OverrideCallback)(LNHandle obj...
  type LNUIListBox_SubclassRegistrationInfo (line 7369) | typedef struct tagLNUIListBox_SubclassRegistrationInfo
  type LNResult (line 7392) | typedef LNResult(*LNUIListItem_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNUIListItem_SubclassRegistrationInfo (line 7405) | typedef struct tagLNUIListItem_SubclassRegistrationInfo
  type LNResult (line 7427) | typedef LNResult(*LNUIListBoxItem_OnSerialize_OverrideCallback)(LNHandle...
  type LNUIListBoxItem_SubclassRegistrationInfo (line 7440) | typedef struct tagLNUIListBoxItem_SubclassRegistrationInfo
  type LNResult (line 7455) | typedef LNResult(*LNInputGesture_OnSerialize_OverrideCallback)(LNHandle ...
  type LNInputGesture_SubclassRegistrationInfo (line 7468) | typedef struct tagLNInputGesture_SubclassRegistrationInfo
  type LNResult (line 7490) | typedef LNResult(*LNKeyGesture_OnSerialize_OverrideCallback)(LNHandle ob...
  type LNKeyGesture_SubclassRegistrationInfo (line 7503) | typedef struct tagLNKeyGesture_SubclassRegistrationInfo
  type LNResult (line 7650) | typedef LNResult(*LNInterpreterCommand_OnSerialize_OverrideCallback)(LNH...
  type LNInterpreterCommand_SubclassRegistrationInfo (line 7663) | typedef struct tagLNInterpreterCommand_SubclassRegistrationInfo
  type LNResult (line 7734) | typedef LNResult(*LNInterpreterCommandList_OnSerialize_OverrideCallback)...
  type LNInterpreterCommandList_SubclassRegistrationInfo (line 7747) | typedef struct tagLNInterpreterCommandList_SubclassRegistrationInfo
  type LNInterpreterCommandDelegate_SubclassRegistrationInfo (line 7764) | typedef struct tagLNInterpreterCommandDelegate_SubclassRegistrationInfo
  type LNResult (line 7855) | typedef LNResult(*LNInterpreter_OnSerialize_OverrideCallback)(LNHandle o...
  type LNResult (line 7858) | typedef LNResult(*LNInterpreter_OnUpdateWait_OverrideCallback)(LNHandle ...
  type LNInterpreter_SubclassRegistrationInfo (line 7878) | typedef struct tagLNInterpreter_SubclassRegistrationInfo
  type LNResult (line 8081) | typedef LNResult(*LNApplication_OnSerialize_OverrideCallback)(LNHandle o...
  type LNResult (line 8084) | typedef LNResult(*LNApplication_OnInit_OverrideCallback)(LNHandle applic...
  type LNResult (line 8087) | typedef LNResult(*LNApplication_OnUpdate_OverrideCallback)(LNHandle appl...
  type LNApplication_SubclassRegistrationInfo (line 8114) | typedef struct tagLNApplication_SubclassRegistrationInfo
  type LNObjectSerializeHandler_SubclassRegistrationInfo (line 8173) | typedef struct tagLNObjectSerializeHandler_SubclassRegistrationInfo
  type LNEventConnectionSerializeHandler_SubclassRegistrationInfo (line 8189) | typedef struct tagLNEventConnectionSerializeHandler_SubclassRegistration...
  type LNVariantSerializeHandler_SubclassRegistrationInfo (line 8205) | typedef struct tagLNVariantSerializeHandler_SubclassRegistrationInfo
  type LNZVTestClass1SerializeHandler_SubclassRegistrationInfo (line 8221) | typedef struct tagLNZVTestClass1SerializeHandler_SubclassRegistrationInfo
  type LNZVTestEventArgs1SerializeHandler_SubclassRegistrationInfo (line 8237) | typedef struct tagLNZVTestEventArgs1SerializeHandler_SubclassRegistratio...
  type LNSerializer2SerializeHandler_SubclassRegistrationInfo (line 8253) | typedef struct tagLNSerializer2SerializeHandler_SubclassRegistrationInfo
  type LNAssetObjectSerializeHandler_SubclassRegistrationInfo (line 8269) | typedef struct tagLNAssetObjectSerializeHandler_SubclassRegistrationInfo
  type LNAssetImportSettingsSerializeHandler_SubclassRegistrationInfo (line 8285) | typedef struct tagLNAssetImportSettingsSerializeHandler_SubclassRegistra...
  type LNAssetModelSerializeHandler_SubclassRegistrationInfo (line 8301) | typedef struct tagLNAssetModelSerializeHandler_SubclassRegistrationInfo
  type LNTextureSerializeHandler_SubclassRegistrationInfo (line 8317) | typedef struct tagLNTextureSerializeHandler_SubclassRegistrationInfo
  type LNTexture2DSerializeHandler_SubclassRegistrationInfo (line 8333) | typedef struct tagLNTexture2DSerializeHandler_SubclassRegistrationInfo
  type LNShaderSerializeHandler_SubclassRegistrationInfo (line 8349) | typedef struct tagLNShaderSerializeHandler_SubclassRegistrationInfo
  type LNSoundSerializeHandler_SubclassRegistrationInfo (line 8365) | typedef struct tagLNSoundSerializeHandler_SubclassRegistrationInfo
  type LNRenderViewSerializeHandler_SubclassRegistrationInfo (line 8381) | typedef struct tagLNRenderViewSerializeHandler_SubclassRegistrationInfo
  type LNMaterialSerializeHandler_SubclassRegistrationInfo (line 8397) | typedef struct tagLNMaterialSerializeHandler_SubclassRegistrationInfo
  type LNMeshNodeSerializeHandler_SubclassRegistrationInfo (line 8413) | typedef struct tagLNMeshNodeSerializeHandler_SubclassRegistrationInfo
  type LNAnimationControllerSerializeHandler_SubclassRegistrationInfo (line 8429) | typedef struct tagLNAnimationControllerSerializeHandler_SubclassRegistra...
  type LNMeshModelSerializeHandler_SubclassRegistrationInfo (line 8445) | typedef struct tagLNMeshModelSerializeHandler_SubclassRegistrationInfo
  type LNMeshImportSettingsSerializeHandler_SubclassRegistrationInfo (line 8461) | typedef struct tagLNMeshImportSettingsSerializeHandler_SubclassRegistrat...
  type LNSkinnedMeshModelSerializeHandler_SubclassRegistrationInfo (line 8477) | typedef struct tagLNSkinnedMeshModelSerializeHandler_SubclassRegistratio...
  type LNCollisionShapeSerializeHandler_SubclassRegistrationInfo (line 8493) | typedef struct tagLNCollisionShapeSerializeHandler_SubclassRegistrationInfo
  type LNBoxCollisionShapeSerializeHandler_SubclassRegistrationInfo (line 8509) | typedef struct tagLNBoxCollisionShapeSerializeHandler_SubclassRegistrati...
  type LNAnimationCurveSerializeHandler_SubclassRegistrationInfo (line 8525) | typedef struct tagLNAnimationCurveSerializeHandler_SubclassRegistrationInfo
  type LNKeyFrameAnimationCurveSerializeHandler_SubclassRegistrationInfo (line 8541) | typedef struct tagLNKeyFrameAnimationCurveSerializeHandler_SubclassRegis...
  type LNAnimationClipSerializeHandler_SubclassRegistrationInfo (line 8557) | typedef struct tagLNAnimationClipSerializeHandler_SubclassRegistrationInfo
  type LNAnimationStateSerializeHandler_SubclassRegistrationInfo (line 8573) | typedef struct tagLNAnimationStateSerializeHandler_SubclassRegistrationInfo
  type LNEffectResourceSerializeHandler_SubclassRegistrationInfo (line 8589) | typedef struct tagLNEffectResourceSerializeHandler_SubclassRegistrationInfo
  type LNParticleEmitterModelSerializeHandler_SubclassRegistrationInfo (line 8605) | typedef struct tagLNParticleEmitterModelSerializeHandler_SubclassRegistr...
  type LNParticleModelSerializeHandler_SubclassRegistrationInfo (line 8621) | typedef struct tagLNParticleModelSerializeHandler_SubclassRegistrationInfo
  type LNComponentSerializeHandler_SubclassRegistrationInfo (line 8637) | typedef struct tagLNComponentSerializeHandler_SubclassRegistrationInfo
  type LNVisualComponentSerializeHandler_SubclassRegistrationInfo (line 8653) | typedef struct tagLNVisualComponentSerializeHandler_SubclassRegistration...
  type LNSpriteComponentSerializeHandler_SubclassRegistrationInfo (line 8669) | typedef struct tagLNSpriteComponentSerializeHandler_SubclassRegistration...
  type LNCharacterControllerSerializeHandler_SubclassRegistrationInfo (line 8685) | typedef struct tagLNCharacterControllerSerializeHandler_SubclassRegistra...
  type LNWorldSerializeHandler_SubclassRegistrationInfo (line 8701) | typedef struct tagLNWorldSerializeHandler_SubclassRegistrationInfo
  type LNComponentListSerializeHandler_SubclassRegistrationInfo (line 8717) | typedef struct tagLNComponentListSerializeHandler_SubclassRegistrationInfo
  type LNWorldObjectSerializeHandler_SubclassRegistrationInfo (line 8733) | typedef struct tagLNWorldObjectSerializeHandler_SubclassRegistrationInfo
  type LNWorldObjectPreUpdateHandler_SubclassRegistrationInfo (line 8749) | typedef struct tagLNWorldObjectPreUpdateHandler_SubclassRegistrationInfo
  type LNWorldObjectUpdateHandler_SubclassRegistrationInfo (line 8765) | typedef struct tagLNWorldObjectUpdateHandler_SubclassRegistrationInfo
  type LNVisualObjectSerializeHandler_SubclassRegistrationInfo (line 8781) | typedef struct tagLNVisualObjectSerializeHandler_SubclassRegistrationInfo
  type LNVisualObjectPreUpdateHandler_SubclassRegistrationInfo (line 8797) | typedef struct tagLNVisualObjectPreUpdateHandler_SubclassRegistrationInfo
  type LNVisualObjectUpdateHandler_SubclassRegistrationInfo (line 8813) | typedef struct tagLNVisualObjectUpdateHandler_SubclassRegistrationInfo
  type LNCameraSerializeHandler_SubclassRegistrationInfo (line 8829) | typedef struct tagLNCameraSerializeHandler_SubclassRegistrationInfo
  type LNCameraPreUpdateHandler_SubclassRegistrationInfo (line 8845) | typedef struct tagLNCameraPreUpdateHandler_SubclassRegistrationInfo
  type LNCameraUpdateHandler_SubclassRegistrationInfo (line 8861) | typedef struct tagLNCameraUpdateHandler_SubclassRegistrationInfo
  type LNEnvironmentLightSerializeHandler_SubclassRegistrationInfo (line 8877) | typedef struct tagLNEnvironmentLightSerializeHandler_SubclassRegistratio...
  type LNEnvironmentLightPreUpdateHandler_SubclassRegistrationInfo (line 8893) | typedef struct tagLNEnvironmentLightPreUpdateHandler_SubclassRegistratio...
  type LNEnvironmentLightUpdateHandler_SubclassRegistrationInfo (line 8909) | typedef struct tagLNEnvironmentLightUpdateHandler_SubclassRegistrationInfo
  type LNDirectionalLightSerializeHandler_SubclassRegistrationInfo (line 8925) | typedef struct tagLNDirectionalLightSerializeHandler_SubclassRegistratio...
  type LNDirectionalLightPreUpdateHandler_SubclassRegistrationInfo (line 8941) | typedef struct tagLNDirectionalLightPreUpdateHandler_SubclassRegistratio...
  type LNDirectionalLightUpdateHandler_SubclassRegistrationInfo (line 8957) | typedef struct tagLNDirectionalLightUpdateHandler_SubclassRegistrationInfo
  type LNPointLightSerializeHandler_SubclassRegistrationInfo (line 8973) | typedef struct tagLNPointLightSerializeHandler_SubclassRegistrationInfo
  type LNPointLightPreUpdateHandler_SubclassRegistrationInfo (line 8989) | typedef struct tagLNPointLightPreUpdateHandler_SubclassRegistrationInfo
  type LNPointLightUpdateHandler_SubclassRegistrationInfo (line 9005) | typedef struct tagLNPointLightUpdateHandler_SubclassRegistrationInfo
  type LNSpotLightSerializeHandler_SubclassRegistrationInfo (line 9021) | typedef struct tagLNSpotLightSerializeHandler_SubclassRegistrationInfo
  type LNSpotLightPreUpdateHandler_SubclassRegistrationInfo (line 9037) | typedef struct tagLNSpotLightPreUpdateHandler_SubclassRegistrationInfo
  type LNSpotLightUpdateHandler_SubclassRegistrationInfo (line 9053) | typedef struct tagLNSpotLightUpdateHandler_SubclassRegistrationInfo
  type LNSpriteSerializeHandler_SubclassRegistrationInfo (line 9069) | typedef struct tagLNSpriteSerializeHandler_SubclassRegistrationInfo
  type LNSpritePreUpdateHandler_SubclassRegistrationInfo (line 9085) | typedef struct tagLNSpritePreUpdateHandler_SubclassRegistrationInfo
  type LNSpriteUpdateHandler_SubclassRegistrationInfo (line 9101) | typedef struct tagLNSpriteUpdateHandler_SubclassRegistrationInfo
  type LNCameraOrbitControlComponentSerializeHandler_SubclassRegistrationInfo (line 9117) | typedef struct tagLNCameraOrbitControlComponentSerializeHandler_Subclass...
  type LNRaycasterSerializeHandler_SubclassRegistrationInfo (line 9133) | typedef struct tagLNRaycasterSerializeHandler_SubclassRegistrationInfo
  type LNRaycastResultSerializeHandler_SubclassRegistrationInfo (line 9149) | typedef struct tagLNRaycastResultSerializeHandler_SubclassRegistrationInfo
  type LNWorldRenderViewSerializeHandler_SubclassRegistrationInfo (line 9165) | typedef struct tagLNWorldRenderViewSerializeHandler_SubclassRegistration...
  type LNShapeObjectSerializeHandler_SubclassRegistrationInfo (line 9181) | typedef struct tagLNShapeObjectSerializeHandler_SubclassRegistrationInfo
  type LNShapeObjectPreUpdateHandler_SubclassRegistrationInfo (line 9197) | typedef struct tagLNShapeObjectPreUpdateHandler_SubclassRegistrationInfo
  type LNShapeObjectUpdateHandler_SubclassRegistrationInfo (line 9213) | typedef struct tagLNShapeObjectUpdateHandler_SubclassRegistrationInfo
  type LNPlaneMeshSerializeHandler_SubclassRegistrationInfo (line 9229) | typedef struct tagLNPlaneMeshSerializeHandler_SubclassRegistrationInfo
  type LNPlaneMeshPreUpdateHandler_SubclassRegistrationInfo (line 9245) | typedef struct tagLNPlaneMeshPreUpdateHandler_SubclassRegistrationInfo
  type LNPlaneMeshUpdateHandler_SubclassRegistrationInfo (line 9261) | typedef struct tagLNPlaneMeshUpdateHandler_SubclassRegistrationInfo
  type LNStaticMeshSerializeHandler_SubclassRegistrationInfo (line 9277) | typedef struct tagLNStaticMeshSerializeHandler_SubclassRegistrationInfo
  type LNStaticMeshPreUpdateHandler_SubclassRegistrationInfo (line 9293) | typedef struct tagLNStaticMeshPreUpdateHandler_SubclassRegistrationInfo
  type LNStaticMeshUpdateHandler_SubclassRegistrationInfo (line 9309) | typedef struct tagLNStaticMeshUpdateHandler_SubclassRegistrationInfo
  type LNMeshComponentSerializeHandler_SubclassRegistrationInfo (line 9325) | typedef struct tagLNMeshComponentSerializeHandler_SubclassRegistrationInfo
  type LNCollisionSerializeHandler_SubclassRegistrationInfo (line 9341) | typedef struct tagLNCollisionSerializeHandler_SubclassRegistrationInfo
  type LNTriggerBodyComponentSerializeHandler_SubclassRegistrationInfo (line 9357) | typedef struct tagLNTriggerBodyComponentSerializeHandler_SubclassRegistr...
  type LNParticleEmitterSerializeHandler_SubclassRegistrationInfo (line 9373) | typedef struct tagLNParticleEmitterSerializeHandler_SubclassRegistration...
  type LNParticleEmitterPreUpdateHandler_SubclassRegistrationInfo (line 9389) | typedef struct tagLNParticleEmitterPreUpdateHandler_SubclassRegistration...
  type LNParticleEmitterUpdateHandler_SubclassRegistrationInfo (line 9405) | typedef struct tagLNParticleEmitterUpdateHandler_SubclassRegistrationInfo
  type LNLevelSerializeHandler_SubclassRegistrationInfo (line 9421) | typedef struct tagLNLevelSerializeHandler_SubclassRegistrationInfo
  type LNLevelStartHandler_SubclassRegistrationInfo (line 9437) | typedef struct tagLNLevelStartHandler_SubclassRegistrationInfo
  type LNLevelStopHandler_SubclassRegistrationInfo (line 9453) | typedef struct tagLNLevelStopHandler_SubclassRegistrationInfo
  type LNLevelPauseHandler_SubclassRegistrationInfo (line 9469) | typedef struct tagLNLevelPauseHandler_SubclassRegistrationInfo
  type LNLevelResumeHandler_SubclassRegistrationInfo (line 9485) | typedef struct tagLNLevelResumeHandler_SubclassRegistrationInfo
  type LNLevelUpdateHandler_SubclassRegistrationInfo (line 9501) | typedef struct tagLNLevelUpdateHandler_SubclassRegistrationInfo
  type LNUIEventArgsSerializeHandler_SubclassRegistrationInfo (line 9517) | typedef struct tagLNUIEventArgsSerializeHandler_SubclassRegistrationInfo
  type LNUILayoutElementSerializeHandler_SubclassRegistrationInfo (line 9533) | typedef struct tagLNUILayoutElementSerializeHandler_SubclassRegistration...
  type LNUIElementSerializeHandler_SubclassRegistrationInfo (line 9549) | typedef struct tagLNUIElementSerializeHandler_SubclassRegistrationInfo
  type LNUITextSerializeHandler_SubclassRegistrationInfo (line 9565) | typedef struct tagLNUITextSerializeHandler_SubclassRegistrationInfo
  type LNUISpriteSerializeHandler_SubclassRegistrationInfo (line 9581) | typedef struct tagLNUISpriteSerializeHandler_SubclassRegistrationInfo
  type LNUIIconSerializeHandler_SubclassRegistrationInfo (line 9597) | typedef struct tagLNUIIconSerializeHandler_SubclassRegistrationInfo
  type LNUIMessageTextAreaSerializeHandler_SubclassRegistrationInfo (line 9613) | typedef struct tagLNUIMessageTextAreaSerializeHandler_SubclassRegistrati...
  type LNUILayoutPanelSerializeHandler_SubclassRegistrationInfo (line 9629) | typedef struct tagLNUILayoutPanelSerializeHandler_SubclassRegistrationInfo
  type LNUIBoxLayoutSerializeHandler_SubclassRegistrationInfo (line 9645) | typedef struct tagLNUIBoxLayoutSerializeHandler_SubclassRegistrationInfo
  type LNUIStackLayoutSerializeHandler_SubclassRegistrationInfo (line 9661) | typedef struct tagLNUIStackLayoutSerializeHandler_SubclassRegistrationInfo
  type LNUIGridLayoutSerializeHandler_SubclassRegistrationInfo (line 9677) | typedef struct tagLNUIGridLayoutSerializeHandler_SubclassRegistrationInfo
  type LNUIControlSerializeHandler_SubclassRegistrationInfo (line 9693) | typedef struct tagLNUIControlSerializeHandler_SubclassRegistrationInfo
  type LNUIButtonBaseSerializeHandler_SubclassRegistrationInfo (line 9709) | typedef struct tagLNUIButtonBaseSerializeHandler_SubclassRegistrationInfo
  type LNUIButtonSerializeHandler_SubclassRegistrationInfo (line 9725) | typedef struct tagLNUIButtonSerializeHandler_SubclassRegistrationInfo
  type LNUIWindowSerializeHandler_SubclassRegistrationInfo (line 9741) | typedef struct tagLNUIWindowSerializeHandler_SubclassRegistrationInfo
  type LNUIListItemsControlSerializeHandler_SubclassRegistrationInfo (line 9757) | typedef struct tagLNUIListItemsControlSerializeHandler_SubclassRegistrat...
  type LNUIListBoxSerializeHandler_SubclassRegistrationInfo (line 9773) | typedef struct tagLNUIListBoxSerializeHandler_SubclassRegistrationInfo
  type LNUIListItemSerializeHandler_SubclassRegistrationInfo (line 9789) | typedef struct tagLNUIListItemSerializeHandler_SubclassRegistrationInfo
  type LNUIListBoxItemSerializeHandler_SubclassRegistrationInfo (line 9805) | typedef struct tagLNUIListBoxItemSerializeHandler_SubclassRegistrationInfo
  type LNInputGestureSerializeHandler_SubclassRegistrationInfo (line 9821) | typedef struct tagLNInputGestureSerializeHandler_SubclassRegistrationInfo
  type LNKeyGestureSerializeHandler_SubclassRegistrationInfo (line 9837) | typedef struct tagLNKeyGestureSerializeHandler_SubclassRegistrationInfo
  type LNInterpreterCommandSerializeHandler_SubclassRegistrationInfo (line 9853) | typedef struct tagLNInterpreterCommandSerializeHandler_SubclassRegistrat...
  type LNInterpreterCommandListSerializeHandler_SubclassRegistrationInfo (line 9869) | typedef struct tagLNInterpreterCommandListSerializeHandler_SubclassRegis...
  type LNInterpreterSerializeHandler_SubclassRegistrationInfo (line 9885) | typedef struct tagLNInterpreterSerializeHandler_SubclassRegistrationInfo
  type LNInterpreterUpdateWaitHandler_SubclassRegistrationInfo (line 9901) | typedef struct tagLNInterpreterUpdateWaitHandler_SubclassRegistrationInfo
  type LNApplicationSerializeHandler_SubclassRegistrationInfo (line 9917) | typedef struct tagLNApplicationSerializeHandler_SubclassRegistrationInfo
  type LNApplicationInitHandler_SubclassRegistrationInfo (line 9933) | typedef struct tagLNApplicationInitHandler_SubclassRegistrationInfo
  type LNApplicationUpdateHandler_SubclassRegistrationInfo (line 9949) | typedef struct tagLNApplicationUpdateHandler_SubclassRegistrationInfo

FILE: lumino/FFI/src/FFI.cpp
  type ln (line 9) | namespace ln {
    function LNResult (line 11) | LNResult FFI::processException(Exception* e) {
    function LNHandle (line 15) | LNHandle FFI::makeObjectWrap(Object* obj, bool fromCreate)
    function Object (line 20) | Object* FFI::getObject(LNHandle handle)
    function Char (line 40) | const Char* FFI::getUTF16StringPtr(const String& str)
    function TextEncoding (line 63) | TextEncoding* FFI::getAStringEncoding()
    type detail (line 71) | namespace detail {
      function std_string_vprintf (line 73) | static std::string std_string_vprintf(const char* format, std::va_li...
  function LNRuntime_Initialize (line 105) | void LNRuntime_Initialize(const tagLNRuntimeSettings* settings)
  function LNRuntime_Finalize (line 121) | void LNRuntime_Finalize()
  function LNRuntime_SetManagedObjectId (line 127) | void LNRuntime_SetManagedObjectId(LNHandle handle, int64_t id)
  function LNRuntime_GetManagedObjectId (line 132) | int64_t LNRuntime_GetManagedObjectId(LNHandle handle)
  function LNRuntime_GetManagedTypeInfoId (line 137) | int64_t LNRuntime_GetManagedTypeInfoId(LNHandle handle)
  function LNRuntime_SetReferenceTrackEnabled (line 147) | void LNRuntime_SetReferenceTrackEnabled(LNHandle handle)
  function LNRuntime_RunAppInternal (line 167) | void LNRuntime_RunAppInternal(LNHandle app)
  function LNRuntime_DumpInfo (line 173) | void LNRuntime_DumpInfo()
  function LNInternalEngineSettings_SetEngineResourcesPathA (line 178) | void LNInternalEngineSettings_SetEngineResourcesPathA(const char* path)
  function LNResult (line 186) | LNResult LNTypeInfo_Acquire(const LNChar* typeName, int32_t* outTypeInfoId)
  function LNResult (line 200) | LNResult LNTypeInfo_AcquireA(const char* typeName, int32_t* outTypeInfoId)
  function LNResult (line 205) | LNResult LNTypeInfo_Find(const LNChar* typeName, int32_t* outTypeInfoId)
  function LNResult (line 219) | LNResult LNTypeInfo_FindA(const char* typeName, int32_t* outTypeInfoId)
  function LNResult (line 224) | LNResult LNTypeInfo_SetBaseClass(int32_t typeInfoId, int32_t baseClassTy...
  function LNResult (line 239) | LNResult LNTypeInfo_SetCreateInstanceCallback(int32_t typeInfoId, LNType...
  function LNResult (line 263) | LNResult LNTypeInfo_SetManagedTypeInfoId(int32_t typeInfoId, int32_t man...
  function LNResult (line 276) | LNResult LNTypeInfo_GetManagedTypeInfoId(int32_t typeInfoId, int32_t* ou...
  function LNResult (line 292) | LNResult LNObject_Release(LNHandle obj)
  function LNResult (line 303) | LNResult LNObject_Retain(LNHandle obj)
  function LNResult (line 314) | LNResult LNObject_GetReferenceCount(LNHandle obj, int* outReturn)
  function _LNObject_GetReferenceCount (line 326) | int32_t _LNObject_GetReferenceCount(LNHandle obj)
  function LNResult (line 335) | LNResult LNObject_SetTypeInfoId(LNHandle obj, int typeInfoId)
  function LNLog_PrintA (line 373) | void LNLog_PrintA(LNLogLevel level, const char* tag, const char* format,...
  function LN_FLAT_API (line 405) | LN_FLAT_API LNResult LNStringBuffer_GetUTF16String(LNHandle stringBuffer...
  function LN_FLAT_API (line 410) | LN_FLAT_API LNResult LNStringBuffer_GetUTF8String(LNHandle stringBuffer,...

FILE: lumino/FFI/src/Lumino.FlatC.generated.cpp
  class LNWS_ObjectSerializeHandler (line 11) | class LNWS_ObjectSerializeHandler : public ObjectSerializeHandler
    type LNObjectSerializeHandler_OverridePrototypes (line 15) | struct LNObjectSerializeHandler_OverridePrototypes
    method LNObjectSerializeHandler_OverridePrototypes (line 20) | LNObjectSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNObjectSerializeHandler_SubclassRegistrationInfo (line 22) | static LNObjectSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_ObjectSerializeHandler (line 27) | LNWS_ObjectSerializeHandler()
    method init (line 42) | bool init(LNObjectSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 52) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 67) | LN_FLAT_API LNResult LNObjectSerializeHandler_Create(LNObjectSerializeHa...
  class LNWS_EventConnectionSerializeHandler (line 78) | class LNWS_EventConnectionSerializeHandler : public EventConnectionSeria...
    type LNEventConnectionSerializeHandler_OverridePrototypes (line 82) | struct LNEventConnectionSerializeHandler_OverridePrototypes
    method LNEventConnectionSerializeHandler_OverridePrototypes (line 87) | LNEventConnectionSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNEventConnectionSerializeHandler_SubclassRegistrationInfo (line 89) | static LNEventConnectionSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_EventConnectionSerializeHandler (line 94) | LNWS_EventConnectionSerializeHandler()
    method init (line 109) | bool init(LNEventConnectionSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 119) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 134) | LN_FLAT_API LNResult LNEventConnectionSerializeHandler_Create(LNEventCon...
  class LNWS_VariantSerializeHandler (line 145) | class LNWS_VariantSerializeHandler : public VariantSerializeHandler
    type LNVariantSerializeHandler_OverridePrototypes (line 149) | struct LNVariantSerializeHandler_OverridePrototypes
    method LNVariantSerializeHandler_OverridePrototypes (line 154) | LNVariantSerializeHandler_OverridePrototypes* acquireOverridePrototype...
    method LNVariantSerializeHandler_SubclassRegistrationInfo (line 156) | static LNVariantSerializeHandler_SubclassRegistrationInfo* subclassInf...
    method LNWS_VariantSerializeHandler (line 161) | LNWS_VariantSerializeHandler()
    method init (line 176) | bool init(LNVariantSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 186) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 201) | LN_FLAT_API LNResult LNVariantSerializeHandler_Create(LNVariantSerialize...
  class LNWS_ZVTestClass1SerializeHandler (line 212) | class LNWS_ZVTestClass1SerializeHandler : public ZVTestClass1SerializeHa...
    type LNZVTestClass1SerializeHandler_OverridePrototypes (line 216) | struct LNZVTestClass1SerializeHandler_OverridePrototypes
    method LNZVTestClass1SerializeHandler_OverridePrototypes (line 221) | LNZVTestClass1SerializeHandler_OverridePrototypes* acquireOverrideProt...
    method LNZVTestClass1SerializeHandler_SubclassRegistrationInfo (line 223) | static LNZVTestClass1SerializeHandler_SubclassRegistrationInfo* subcla...
    method LNWS_ZVTestClass1SerializeHandler (line 228) | LNWS_ZVTestClass1SerializeHandler()
    method init (line 243) | bool init(LNZVTestClass1SerializeHandlerCallback callback)
    method setTypeInfoOverride (line 253) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 268) | LN_FLAT_API LNResult LNZVTestClass1SerializeHandler_Create(LNZVTestClass...
  class LNWS_ZVTestEventArgs1SerializeHandler (line 279) | class LNWS_ZVTestEventArgs1SerializeHandler : public ZVTestEventArgs1Ser...
    type LNZVTestEventArgs1SerializeHandler_OverridePrototypes (line 283) | struct LNZVTestEventArgs1SerializeHandler_OverridePrototypes
    method LNZVTestEventArgs1SerializeHandler_OverridePrototypes (line 288) | LNZVTestEventArgs1SerializeHandler_OverridePrototypes* acquireOverride...
    method LNZVTestEventArgs1SerializeHandler_SubclassRegistrationInfo (line 290) | static LNZVTestEventArgs1SerializeHandler_SubclassRegistrationInfo* su...
    method LNWS_ZVTestEventArgs1SerializeHandler (line 295) | LNWS_ZVTestEventArgs1SerializeHandler()
    method init (line 310) | bool init(LNZVTestEventArgs1SerializeHandlerCallback callback)
    method setTypeInfoOverride (line 320) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 335) | LN_FLAT_API LNResult LNZVTestEventArgs1SerializeHandler_Create(LNZVTestE...
  class LNWS_Serializer2SerializeHandler (line 346) | class LNWS_Serializer2SerializeHandler : public Serializer2SerializeHandler
    type LNSerializer2SerializeHandler_OverridePrototypes (line 350) | struct LNSerializer2SerializeHandler_OverridePrototypes
    method LNSerializer2SerializeHandler_OverridePrototypes (line 355) | LNSerializer2SerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNSerializer2SerializeHandler_SubclassRegistrationInfo (line 357) | static LNSerializer2SerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_Serializer2SerializeHandler (line 362) | LNWS_Serializer2SerializeHandler()
    method init (line 377) | bool init(LNSerializer2SerializeHandlerCallback callback)
    method setTypeInfoOverride (line 387) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 402) | LN_FLAT_API LNResult LNSerializer2SerializeHandler_Create(LNSerializer2S...
  class LNWS_AssetObjectSerializeHandler (line 413) | class LNWS_AssetObjectSerializeHandler : public AssetObjectSerializeHandler
    type LNAssetObjectSerializeHandler_OverridePrototypes (line 417) | struct LNAssetObjectSerializeHandler_OverridePrototypes
    method LNAssetObjectSerializeHandler_OverridePrototypes (line 422) | LNAssetObjectSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNAssetObjectSerializeHandler_SubclassRegistrationInfo (line 424) | static LNAssetObjectSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_AssetObjectSerializeHandler (line 429) | LNWS_AssetObjectSerializeHandler()
    method init (line 444) | bool init(LNAssetObjectSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 454) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 469) | LN_FLAT_API LNResult LNAssetObjectSerializeHandler_Create(LNAssetObjectS...
  class LNWS_AssetImportSettingsSerializeHandler (line 480) | class LNWS_AssetImportSettingsSerializeHandler : public AssetImportSetti...
    type LNAssetImportSettingsSerializeHandler_OverridePrototypes (line 484) | struct LNAssetImportSettingsSerializeHandler_OverridePrototypes
    method LNAssetImportSettingsSerializeHandler_OverridePrototypes (line 489) | LNAssetImportSettingsSerializeHandler_OverridePrototypes* acquireOverr...
    method LNAssetImportSettingsSerializeHandler_SubclassRegistrationInfo (line 491) | static LNAssetImportSettingsSerializeHandler_SubclassRegistrationInfo*...
    method LNWS_AssetImportSettingsSerializeHandler (line 496) | LNWS_AssetImportSettingsSerializeHandler()
    method init (line 511) | bool init(LNAssetImportSettingsSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 521) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 536) | LN_FLAT_API LNResult LNAssetImportSettingsSerializeHandler_Create(LNAsse...
  class LNWS_AssetModelSerializeHandler (line 547) | class LNWS_AssetModelSerializeHandler : public AssetModelSerializeHandler
    type LNAssetModelSerializeHandler_OverridePrototypes (line 551) | struct LNAssetModelSerializeHandler_OverridePrototypes
    method LNAssetModelSerializeHandler_OverridePrototypes (line 556) | LNAssetModelSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNAssetModelSerializeHandler_SubclassRegistrationInfo (line 558) | static LNAssetModelSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_AssetModelSerializeHandler (line 563) | LNWS_AssetModelSerializeHandler()
    method init (line 578) | bool init(LNAssetModelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 588) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 603) | LN_FLAT_API LNResult LNAssetModelSerializeHandler_Create(LNAssetModelSer...
  class LNWS_TextureSerializeHandler (line 614) | class LNWS_TextureSerializeHandler : public TextureSerializeHandler
    type LNTextureSerializeHandler_OverridePrototypes (line 618) | struct LNTextureSerializeHandler_OverridePrototypes
    method LNTextureSerializeHandler_OverridePrototypes (line 623) | LNTextureSerializeHandler_OverridePrototypes* acquireOverridePrototype...
    method LNTextureSerializeHandler_SubclassRegistrationInfo (line 625) | static LNTextureSerializeHandler_SubclassRegistrationInfo* subclassInf...
    method LNWS_TextureSerializeHandler (line 630) | LNWS_TextureSerializeHandler()
    method init (line 645) | bool init(LNTextureSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 655) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 670) | LN_FLAT_API LNResult LNTextureSerializeHandler_Create(LNTextureSerialize...
  class LNWS_Texture2DSerializeHandler (line 681) | class LNWS_Texture2DSerializeHandler : public Texture2DSerializeHandler
    type LNTexture2DSerializeHandler_OverridePrototypes (line 685) | struct LNTexture2DSerializeHandler_OverridePrototypes
    method LNTexture2DSerializeHandler_OverridePrototypes (line 690) | LNTexture2DSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNTexture2DSerializeHandler_SubclassRegistrationInfo (line 692) | static LNTexture2DSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_Texture2DSerializeHandler (line 697) | LNWS_Texture2DSerializeHandler()
    method init (line 712) | bool init(LNTexture2DSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 722) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 737) | LN_FLAT_API LNResult LNTexture2DSerializeHandler_Create(LNTexture2DSeria...
  class LNWS_ShaderSerializeHandler (line 748) | class LNWS_ShaderSerializeHandler : public ShaderSerializeHandler
    type LNShaderSerializeHandler_OverridePrototypes (line 752) | struct LNShaderSerializeHandler_OverridePrototypes
    method LNShaderSerializeHandler_OverridePrototypes (line 757) | LNShaderSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNShaderSerializeHandler_SubclassRegistrationInfo (line 759) | static LNShaderSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_ShaderSerializeHandler (line 764) | LNWS_ShaderSerializeHandler()
    method init (line 779) | bool init(LNShaderSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 789) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 804) | LN_FLAT_API LNResult LNShaderSerializeHandler_Create(LNShaderSerializeHa...
  class LNWS_SoundSerializeHandler (line 815) | class LNWS_SoundSerializeHandler : public SoundSerializeHandler
    type LNSoundSerializeHandler_OverridePrototypes (line 819) | struct LNSoundSerializeHandler_OverridePrototypes
    method LNSoundSerializeHandler_OverridePrototypes (line 824) | LNSoundSerializeHandler_OverridePrototypes* acquireOverridePrototypes(...
    method LNSoundSerializeHandler_SubclassRegistrationInfo (line 826) | static LNSoundSerializeHandler_SubclassRegistrationInfo* subclassInfo(...
    method LNWS_SoundSerializeHandler (line 831) | LNWS_SoundSerializeHandler()
    method init (line 846) | bool init(LNSoundSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 856) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 871) | LN_FLAT_API LNResult LNSoundSerializeHandler_Create(LNSoundSerializeHand...
  class LNWS_RenderViewSerializeHandler (line 882) | class LNWS_RenderViewSerializeHandler : public RenderViewSerializeHandler
    type LNRenderViewSerializeHandler_OverridePrototypes (line 886) | struct LNRenderViewSerializeHandler_OverridePrototypes
    method LNRenderViewSerializeHandler_OverridePrototypes (line 891) | LNRenderViewSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNRenderViewSerializeHandler_SubclassRegistrationInfo (line 893) | static LNRenderViewSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_RenderViewSerializeHandler (line 898) | LNWS_RenderViewSerializeHandler()
    method init (line 913) | bool init(LNRenderViewSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 923) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 938) | LN_FLAT_API LNResult LNRenderViewSerializeHandler_Create(LNRenderViewSer...
  class LNWS_MaterialSerializeHandler (line 949) | class LNWS_MaterialSerializeHandler : public MaterialSerializeHandler
    type LNMaterialSerializeHandler_OverridePrototypes (line 953) | struct LNMaterialSerializeHandler_OverridePrototypes
    method LNMaterialSerializeHandler_OverridePrototypes (line 958) | LNMaterialSerializeHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNMaterialSerializeHandler_SubclassRegistrationInfo (line 960) | static LNMaterialSerializeHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_MaterialSerializeHandler (line 965) | LNWS_MaterialSerializeHandler()
    method init (line 980) | bool init(LNMaterialSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 990) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1005) | LN_FLAT_API LNResult LNMaterialSerializeHandler_Create(LNMaterialSeriali...
  class LNWS_MeshNodeSerializeHandler (line 1016) | class LNWS_MeshNodeSerializeHandler : public MeshNodeSerializeHandler
    type LNMeshNodeSerializeHandler_OverridePrototypes (line 1020) | struct LNMeshNodeSerializeHandler_OverridePrototypes
    method LNMeshNodeSerializeHandler_OverridePrototypes (line 1025) | LNMeshNodeSerializeHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNMeshNodeSerializeHandler_SubclassRegistrationInfo (line 1027) | static LNMeshNodeSerializeHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_MeshNodeSerializeHandler (line 1032) | LNWS_MeshNodeSerializeHandler()
    method init (line 1047) | bool init(LNMeshNodeSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1057) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1072) | LN_FLAT_API LNResult LNMeshNodeSerializeHandler_Create(LNMeshNodeSeriali...
  class LNWS_AnimationControllerSerializeHandler (line 1083) | class LNWS_AnimationControllerSerializeHandler : public AnimationControl...
    type LNAnimationControllerSerializeHandler_OverridePrototypes (line 1087) | struct LNAnimationControllerSerializeHandler_OverridePrototypes
    method LNAnimationControllerSerializeHandler_OverridePrototypes (line 1092) | LNAnimationControllerSerializeHandler_OverridePrototypes* acquireOverr...
    method LNAnimationControllerSerializeHandler_SubclassRegistrationInfo (line 1094) | static LNAnimationControllerSerializeHandler_SubclassRegistrationInfo*...
    method LNWS_AnimationControllerSerializeHandler (line 1099) | LNWS_AnimationControllerSerializeHandler()
    method init (line 1114) | bool init(LNAnimationControllerSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1124) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1139) | LN_FLAT_API LNResult LNAnimationControllerSerializeHandler_Create(LNAnim...
  class LNWS_MeshModelSerializeHandler (line 1150) | class LNWS_MeshModelSerializeHandler : public MeshModelSerializeHandler
    type LNMeshModelSerializeHandler_OverridePrototypes (line 1154) | struct LNMeshModelSerializeHandler_OverridePrototypes
    method LNMeshModelSerializeHandler_OverridePrototypes (line 1159) | LNMeshModelSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNMeshModelSerializeHandler_SubclassRegistrationInfo (line 1161) | static LNMeshModelSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_MeshModelSerializeHandler (line 1166) | LNWS_MeshModelSerializeHandler()
    method init (line 1181) | bool init(LNMeshModelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1191) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1206) | LN_FLAT_API LNResult LNMeshModelSerializeHandler_Create(LNMeshModelSeria...
  class LNWS_MeshImportSettingsSerializeHandler (line 1217) | class LNWS_MeshImportSettingsSerializeHandler : public MeshImportSetting...
    type LNMeshImportSettingsSerializeHandler_OverridePrototypes (line 1221) | struct LNMeshImportSettingsSerializeHandler_OverridePrototypes
    method LNMeshImportSettingsSerializeHandler_OverridePrototypes (line 1226) | LNMeshImportSettingsSerializeHandler_OverridePrototypes* acquireOverri...
    method LNMeshImportSettingsSerializeHandler_SubclassRegistrationInfo (line 1228) | static LNMeshImportSettingsSerializeHandler_SubclassRegistrationInfo* ...
    method LNWS_MeshImportSettingsSerializeHandler (line 1233) | LNWS_MeshImportSettingsSerializeHandler()
    method init (line 1248) | bool init(LNMeshImportSettingsSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1258) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1273) | LN_FLAT_API LNResult LNMeshImportSettingsSerializeHandler_Create(LNMeshI...
  class LNWS_SkinnedMeshModelSerializeHandler (line 1284) | class LNWS_SkinnedMeshModelSerializeHandler : public SkinnedMeshModelSer...
    type LNSkinnedMeshModelSerializeHandler_OverridePrototypes (line 1288) | struct LNSkinnedMeshModelSerializeHandler_OverridePrototypes
    method LNSkinnedMeshModelSerializeHandler_OverridePrototypes (line 1293) | LNSkinnedMeshModelSerializeHandler_OverridePrototypes* acquireOverride...
    method LNSkinnedMeshModelSerializeHandler_SubclassRegistrationInfo (line 1295) | static LNSkinnedMeshModelSerializeHandler_SubclassRegistrationInfo* su...
    method LNWS_SkinnedMeshModelSerializeHandler (line 1300) | LNWS_SkinnedMeshModelSerializeHandler()
    method init (line 1315) | bool init(LNSkinnedMeshModelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1325) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1340) | LN_FLAT_API LNResult LNSkinnedMeshModelSerializeHandler_Create(LNSkinned...
  class LNWS_CollisionShapeSerializeHandler (line 1351) | class LNWS_CollisionShapeSerializeHandler : public CollisionShapeSeriali...
    type LNCollisionShapeSerializeHandler_OverridePrototypes (line 1355) | struct LNCollisionShapeSerializeHandler_OverridePrototypes
    method LNCollisionShapeSerializeHandler_OverridePrototypes (line 1360) | LNCollisionShapeSerializeHandler_OverridePrototypes* acquireOverridePr...
    method LNCollisionShapeSerializeHandler_SubclassRegistrationInfo (line 1362) | static LNCollisionShapeSerializeHandler_SubclassRegistrationInfo* subc...
    method LNWS_CollisionShapeSerializeHandler (line 1367) | LNWS_CollisionShapeSerializeHandler()
    method init (line 1382) | bool init(LNCollisionShapeSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1392) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1407) | LN_FLAT_API LNResult LNCollisionShapeSerializeHandler_Create(LNCollision...
  class LNWS_BoxCollisionShapeSerializeHandler (line 1418) | class LNWS_BoxCollisionShapeSerializeHandler : public BoxCollisionShapeS...
    type LNBoxCollisionShapeSerializeHandler_OverridePrototypes (line 1422) | struct LNBoxCollisionShapeSerializeHandler_OverridePrototypes
    method LNBoxCollisionShapeSerializeHandler_OverridePrototypes (line 1427) | LNBoxCollisionShapeSerializeHandler_OverridePrototypes* acquireOverrid...
    method LNBoxCollisionShapeSerializeHandler_SubclassRegistrationInfo (line 1429) | static LNBoxCollisionShapeSerializeHandler_SubclassRegistrationInfo* s...
    method LNWS_BoxCollisionShapeSerializeHandler (line 1434) | LNWS_BoxCollisionShapeSerializeHandler()
    method init (line 1449) | bool init(LNBoxCollisionShapeSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1459) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1474) | LN_FLAT_API LNResult LNBoxCollisionShapeSerializeHandler_Create(LNBoxCol...
  class LNWS_AnimationCurveSerializeHandler (line 1485) | class LNWS_AnimationCurveSerializeHandler : public AnimationCurveSeriali...
    type LNAnimationCurveSerializeHandler_OverridePrototypes (line 1489) | struct LNAnimationCurveSerializeHandler_OverridePrototypes
    method LNAnimationCurveSerializeHandler_OverridePrototypes (line 1494) | LNAnimationCurveSerializeHandler_OverridePrototypes* acquireOverridePr...
    method LNAnimationCurveSerializeHandler_SubclassRegistrationInfo (line 1496) | static LNAnimationCurveSerializeHandler_SubclassRegistrationInfo* subc...
    method LNWS_AnimationCurveSerializeHandler (line 1501) | LNWS_AnimationCurveSerializeHandler()
    method init (line 1516) | bool init(LNAnimationCurveSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1526) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1541) | LN_FLAT_API LNResult LNAnimationCurveSerializeHandler_Create(LNAnimation...
  class LNWS_KeyFrameAnimationCurveSerializeHandler (line 1552) | class LNWS_KeyFrameAnimationCurveSerializeHandler : public KeyFrameAnima...
    type LNKeyFrameAnimationCurveSerializeHandler_OverridePrototypes (line 1556) | struct LNKeyFrameAnimationCurveSerializeHandler_OverridePrototypes
    method LNKeyFrameAnimationCurveSerializeHandler_OverridePrototypes (line 1561) | LNKeyFrameAnimationCurveSerializeHandler_OverridePrototypes* acquireOv...
    method LNKeyFrameAnimationCurveSerializeHandler_SubclassRegistrationInfo (line 1563) | static LNKeyFrameAnimationCurveSerializeHandler_SubclassRegistrationIn...
    method LNWS_KeyFrameAnimationCurveSerializeHandler (line 1568) | LNWS_KeyFrameAnimationCurveSerializeHandler()
    method init (line 1583) | bool init(LNKeyFrameAnimationCurveSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1593) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1608) | LN_FLAT_API LNResult LNKeyFrameAnimationCurveSerializeHandler_Create(LNK...
  class LNWS_AnimationClipSerializeHandler (line 1619) | class LNWS_AnimationClipSerializeHandler : public AnimationClipSerialize...
    type LNAnimationClipSerializeHandler_OverridePrototypes (line 1623) | struct LNAnimationClipSerializeHandler_OverridePrototypes
    method LNAnimationClipSerializeHandler_OverridePrototypes (line 1628) | LNAnimationClipSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNAnimationClipSerializeHandler_SubclassRegistrationInfo (line 1630) | static LNAnimationClipSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_AnimationClipSerializeHandler (line 1635) | LNWS_AnimationClipSerializeHandler()
    method init (line 1650) | bool init(LNAnimationClipSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1660) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1675) | LN_FLAT_API LNResult LNAnimationClipSerializeHandler_Create(LNAnimationC...
  class LNWS_AnimationStateSerializeHandler (line 1686) | class LNWS_AnimationStateSerializeHandler : public AnimationStateSeriali...
    type LNAnimationStateSerializeHandler_OverridePrototypes (line 1690) | struct LNAnimationStateSerializeHandler_OverridePrototypes
    method LNAnimationStateSerializeHandler_OverridePrototypes (line 1695) | LNAnimationStateSerializeHandler_OverridePrototypes* acquireOverridePr...
    method LNAnimationStateSerializeHandler_SubclassRegistrationInfo (line 1697) | static LNAnimationStateSerializeHandler_SubclassRegistrationInfo* subc...
    method LNWS_AnimationStateSerializeHandler (line 1702) | LNWS_AnimationStateSerializeHandler()
    method init (line 1717) | bool init(LNAnimationStateSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1727) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1742) | LN_FLAT_API LNResult LNAnimationStateSerializeHandler_Create(LNAnimation...
  class LNWS_EffectResourceSerializeHandler (line 1753) | class LNWS_EffectResourceSerializeHandler : public EffectResourceSeriali...
    type LNEffectResourceSerializeHandler_OverridePrototypes (line 1757) | struct LNEffectResourceSerializeHandler_OverridePrototypes
    method LNEffectResourceSerializeHandler_OverridePrototypes (line 1762) | LNEffectResourceSerializeHandler_OverridePrototypes* acquireOverridePr...
    method LNEffectResourceSerializeHandler_SubclassRegistrationInfo (line 1764) | static LNEffectResourceSerializeHandler_SubclassRegistrationInfo* subc...
    method LNWS_EffectResourceSerializeHandler (line 1769) | LNWS_EffectResourceSerializeHandler()
    method init (line 1784) | bool init(LNEffectResourceSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1794) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1809) | LN_FLAT_API LNResult LNEffectResourceSerializeHandler_Create(LNEffectRes...
  class LNWS_ParticleEmitterModelSerializeHandler (line 1820) | class LNWS_ParticleEmitterModelSerializeHandler : public ParticleEmitter...
    type LNParticleEmitterModelSerializeHandler_OverridePrototypes (line 1824) | struct LNParticleEmitterModelSerializeHandler_OverridePrototypes
    method LNParticleEmitterModelSerializeHandler_OverridePrototypes (line 1829) | LNParticleEmitterModelSerializeHandler_OverridePrototypes* acquireOver...
    method LNParticleEmitterModelSerializeHandler_SubclassRegistrationInfo (line 1831) | static LNParticleEmitterModelSerializeHandler_SubclassRegistrationInfo...
    method LNWS_ParticleEmitterModelSerializeHandler (line 1836) | LNWS_ParticleEmitterModelSerializeHandler()
    method init (line 1851) | bool init(LNParticleEmitterModelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1861) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1876) | LN_FLAT_API LNResult LNParticleEmitterModelSerializeHandler_Create(LNPar...
  class LNWS_ParticleModelSerializeHandler (line 1887) | class LNWS_ParticleModelSerializeHandler : public ParticleModelSerialize...
    type LNParticleModelSerializeHandler_OverridePrototypes (line 1891) | struct LNParticleModelSerializeHandler_OverridePrototypes
    method LNParticleModelSerializeHandler_OverridePrototypes (line 1896) | LNParticleModelSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNParticleModelSerializeHandler_SubclassRegistrationInfo (line 1898) | static LNParticleModelSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_ParticleModelSerializeHandler (line 1903) | LNWS_ParticleModelSerializeHandler()
    method init (line 1918) | bool init(LNParticleModelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1928) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 1943) | LN_FLAT_API LNResult LNParticleModelSerializeHandler_Create(LNParticleMo...
  class LNWS_ComponentSerializeHandler (line 1954) | class LNWS_ComponentSerializeHandler : public ComponentSerializeHandler
    type LNComponentSerializeHandler_OverridePrototypes (line 1958) | struct LNComponentSerializeHandler_OverridePrototypes
    method LNComponentSerializeHandler_OverridePrototypes (line 1963) | LNComponentSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNComponentSerializeHandler_SubclassRegistrationInfo (line 1965) | static LNComponentSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_ComponentSerializeHandler (line 1970) | LNWS_ComponentSerializeHandler()
    method init (line 1985) | bool init(LNComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 1995) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2010) | LN_FLAT_API LNResult LNComponentSerializeHandler_Create(LNComponentSeria...
  class LNWS_VisualComponentSerializeHandler (line 2021) | class LNWS_VisualComponentSerializeHandler : public VisualComponentSeria...
    type LNVisualComponentSerializeHandler_OverridePrototypes (line 2025) | struct LNVisualComponentSerializeHandler_OverridePrototypes
    method LNVisualComponentSerializeHandler_OverridePrototypes (line 2030) | LNVisualComponentSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNVisualComponentSerializeHandler_SubclassRegistrationInfo (line 2032) | static LNVisualComponentSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_VisualComponentSerializeHandler (line 2037) | LNWS_VisualComponentSerializeHandler()
    method init (line 2052) | bool init(LNVisualComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2062) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2077) | LN_FLAT_API LNResult LNVisualComponentSerializeHandler_Create(LNVisualCo...
  class LNWS_SpriteComponentSerializeHandler (line 2088) | class LNWS_SpriteComponentSerializeHandler : public SpriteComponentSeria...
    type LNSpriteComponentSerializeHandler_OverridePrototypes (line 2092) | struct LNSpriteComponentSerializeHandler_OverridePrototypes
    method LNSpriteComponentSerializeHandler_OverridePrototypes (line 2097) | LNSpriteComponentSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNSpriteComponentSerializeHandler_SubclassRegistrationInfo (line 2099) | static LNSpriteComponentSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_SpriteComponentSerializeHandler (line 2104) | LNWS_SpriteComponentSerializeHandler()
    method init (line 2119) | bool init(LNSpriteComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2129) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2144) | LN_FLAT_API LNResult LNSpriteComponentSerializeHandler_Create(LNSpriteCo...
  class LNWS_CharacterControllerSerializeHandler (line 2155) | class LNWS_CharacterControllerSerializeHandler : public CharacterControl...
    type LNCharacterControllerSerializeHandler_OverridePrototypes (line 2159) | struct LNCharacterControllerSerializeHandler_OverridePrototypes
    method LNCharacterControllerSerializeHandler_OverridePrototypes (line 2164) | LNCharacterControllerSerializeHandler_OverridePrototypes* acquireOverr...
    method LNCharacterControllerSerializeHandler_SubclassRegistrationInfo (line 2166) | static LNCharacterControllerSerializeHandler_SubclassRegistrationInfo*...
    method LNWS_CharacterControllerSerializeHandler (line 2171) | LNWS_CharacterControllerSerializeHandler()
    method init (line 2186) | bool init(LNCharacterControllerSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2196) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2211) | LN_FLAT_API LNResult LNCharacterControllerSerializeHandler_Create(LNChar...
  class LNWS_WorldSerializeHandler (line 2222) | class LNWS_WorldSerializeHandler : public WorldSerializeHandler
    type LNWorldSerializeHandler_OverridePrototypes (line 2226) | struct LNWorldSerializeHandler_OverridePrototypes
    method LNWorldSerializeHandler_OverridePrototypes (line 2231) | LNWorldSerializeHandler_OverridePrototypes* acquireOverridePrototypes(...
    method LNWorldSerializeHandler_SubclassRegistrationInfo (line 2233) | static LNWorldSerializeHandler_SubclassRegistrationInfo* subclassInfo(...
    method LNWS_WorldSerializeHandler (line 2238) | LNWS_WorldSerializeHandler()
    method init (line 2253) | bool init(LNWorldSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2263) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2278) | LN_FLAT_API LNResult LNWorldSerializeHandler_Create(LNWorldSerializeHand...
  class LNWS_ComponentListSerializeHandler (line 2289) | class LNWS_ComponentListSerializeHandler : public ComponentListSerialize...
    type LNComponentListSerializeHandler_OverridePrototypes (line 2293) | struct LNComponentListSerializeHandler_OverridePrototypes
    method LNComponentListSerializeHandler_OverridePrototypes (line 2298) | LNComponentListSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNComponentListSerializeHandler_SubclassRegistrationInfo (line 2300) | static LNComponentListSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_ComponentListSerializeHandler (line 2305) | LNWS_ComponentListSerializeHandler()
    method init (line 2320) | bool init(LNComponentListSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2330) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2345) | LN_FLAT_API LNResult LNComponentListSerializeHandler_Create(LNComponentL...
  class LNWS_WorldObjectSerializeHandler (line 2356) | class LNWS_WorldObjectSerializeHandler : public WorldObjectSerializeHandler
    type LNWorldObjectSerializeHandler_OverridePrototypes (line 2360) | struct LNWorldObjectSerializeHandler_OverridePrototypes
    method LNWorldObjectSerializeHandler_OverridePrototypes (line 2365) | LNWorldObjectSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNWorldObjectSerializeHandler_SubclassRegistrationInfo (line 2367) | static LNWorldObjectSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_WorldObjectSerializeHandler (line 2372) | LNWS_WorldObjectSerializeHandler()
    method init (line 2387) | bool init(LNWorldObjectSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2397) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2412) | LN_FLAT_API LNResult LNWorldObjectSerializeHandler_Create(LNWorldObjectS...
  class LNWS_WorldObjectPreUpdateHandler (line 2423) | class LNWS_WorldObjectPreUpdateHandler : public WorldObjectPreUpdateHandler
    type LNWorldObjectPreUpdateHandler_OverridePrototypes (line 2427) | struct LNWorldObjectPreUpdateHandler_OverridePrototypes
    method LNWorldObjectPreUpdateHandler_OverridePrototypes (line 2432) | LNWorldObjectPreUpdateHandler_OverridePrototypes* acquireOverrideProto...
    method LNWorldObjectPreUpdateHandler_SubclassRegistrationInfo (line 2434) | static LNWorldObjectPreUpdateHandler_SubclassRegistrationInfo* subclas...
    method LNWS_WorldObjectPreUpdateHandler (line 2439) | LNWS_WorldObjectPreUpdateHandler()
    method init (line 2454) | bool init(LNWorldObjectPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2464) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2479) | LN_FLAT_API LNResult LNWorldObjectPreUpdateHandler_Create(LNWorldObjectP...
  class LNWS_WorldObjectUpdateHandler (line 2490) | class LNWS_WorldObjectUpdateHandler : public WorldObjectUpdateHandler
    type LNWorldObjectUpdateHandler_OverridePrototypes (line 2494) | struct LNWorldObjectUpdateHandler_OverridePrototypes
    method LNWorldObjectUpdateHandler_OverridePrototypes (line 2499) | LNWorldObjectUpdateHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNWorldObjectUpdateHandler_SubclassRegistrationInfo (line 2501) | static LNWorldObjectUpdateHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_WorldObjectUpdateHandler (line 2506) | LNWS_WorldObjectUpdateHandler()
    method init (line 2521) | bool init(LNWorldObjectUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2531) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2546) | LN_FLAT_API LNResult LNWorldObjectUpdateHandler_Create(LNWorldObjectUpda...
  class LNWS_VisualObjectSerializeHandler (line 2557) | class LNWS_VisualObjectSerializeHandler : public VisualObjectSerializeHa...
    type LNVisualObjectSerializeHandler_OverridePrototypes (line 2561) | struct LNVisualObjectSerializeHandler_OverridePrototypes
    method LNVisualObjectSerializeHandler_OverridePrototypes (line 2566) | LNVisualObjectSerializeHandler_OverridePrototypes* acquireOverrideProt...
    method LNVisualObjectSerializeHandler_SubclassRegistrationInfo (line 2568) | static LNVisualObjectSerializeHandler_SubclassRegistrationInfo* subcla...
    method LNWS_VisualObjectSerializeHandler (line 2573) | LNWS_VisualObjectSerializeHandler()
    method init (line 2588) | bool init(LNVisualObjectSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2598) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2613) | LN_FLAT_API LNResult LNVisualObjectSerializeHandler_Create(LNVisualObjec...
  class LNWS_VisualObjectPreUpdateHandler (line 2624) | class LNWS_VisualObjectPreUpdateHandler : public VisualObjectPreUpdateHa...
    type LNVisualObjectPreUpdateHandler_OverridePrototypes (line 2628) | struct LNVisualObjectPreUpdateHandler_OverridePrototypes
    method LNVisualObjectPreUpdateHandler_OverridePrototypes (line 2633) | LNVisualObjectPreUpdateHandler_OverridePrototypes* acquireOverrideProt...
    method LNVisualObjectPreUpdateHandler_SubclassRegistrationInfo (line 2635) | static LNVisualObjectPreUpdateHandler_SubclassRegistrationInfo* subcla...
    method LNWS_VisualObjectPreUpdateHandler (line 2640) | LNWS_VisualObjectPreUpdateHandler()
    method init (line 2655) | bool init(LNVisualObjectPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2665) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2680) | LN_FLAT_API LNResult LNVisualObjectPreUpdateHandler_Create(LNVisualObjec...
  class LNWS_VisualObjectUpdateHandler (line 2691) | class LNWS_VisualObjectUpdateHandler : public VisualObjectUpdateHandler
    type LNVisualObjectUpdateHandler_OverridePrototypes (line 2695) | struct LNVisualObjectUpdateHandler_OverridePrototypes
    method LNVisualObjectUpdateHandler_OverridePrototypes (line 2700) | LNVisualObjectUpdateHandler_OverridePrototypes* acquireOverridePrototy...
    method LNVisualObjectUpdateHandler_SubclassRegistrationInfo (line 2702) | static LNVisualObjectUpdateHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_VisualObjectUpdateHandler (line 2707) | LNWS_VisualObjectUpdateHandler()
    method init (line 2722) | bool init(LNVisualObjectUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2732) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2747) | LN_FLAT_API LNResult LNVisualObjectUpdateHandler_Create(LNVisualObjectUp...
  class LNWS_CameraSerializeHandler (line 2758) | class LNWS_CameraSerializeHandler : public CameraSerializeHandler
    type LNCameraSerializeHandler_OverridePrototypes (line 2762) | struct LNCameraSerializeHandler_OverridePrototypes
    method LNCameraSerializeHandler_OverridePrototypes (line 2767) | LNCameraSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNCameraSerializeHandler_SubclassRegistrationInfo (line 2769) | static LNCameraSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_CameraSerializeHandler (line 2774) | LNWS_CameraSerializeHandler()
    method init (line 2789) | bool init(LNCameraSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 2799) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2814) | LN_FLAT_API LNResult LNCameraSerializeHandler_Create(LNCameraSerializeHa...
  class LNWS_CameraPreUpdateHandler (line 2825) | class LNWS_CameraPreUpdateHandler : public CameraPreUpdateHandler
    type LNCameraPreUpdateHandler_OverridePrototypes (line 2829) | struct LNCameraPreUpdateHandler_OverridePrototypes
    method LNCameraPreUpdateHandler_OverridePrototypes (line 2834) | LNCameraPreUpdateHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNCameraPreUpdateHandler_SubclassRegistrationInfo (line 2836) | static LNCameraPreUpdateHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_CameraPreUpdateHandler (line 2841) | LNWS_CameraPreUpdateHandler()
    method init (line 2856) | bool init(LNCameraPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2866) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2881) | LN_FLAT_API LNResult LNCameraPreUpdateHandler_Create(LNCameraPreUpdateHa...
  class LNWS_CameraUpdateHandler (line 2892) | class LNWS_CameraUpdateHandler : public CameraUpdateHandler
    type LNCameraUpdateHandler_OverridePrototypes (line 2896) | struct LNCameraUpdateHandler_OverridePrototypes
    method LNCameraUpdateHandler_OverridePrototypes (line 2901) | LNCameraUpdateHandler_OverridePrototypes* acquireOverridePrototypes() ...
    method LNCameraUpdateHandler_SubclassRegistrationInfo (line 2903) | static LNCameraUpdateHandler_SubclassRegistrationInfo* subclassInfo() ...
    method LNWS_CameraUpdateHandler (line 2908) | LNWS_CameraUpdateHandler()
    method init (line 2923) | bool init(LNCameraUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 2933) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 2948) | LN_FLAT_API LNResult LNCameraUpdateHandler_Create(LNCameraUpdateHandlerC...
  class LNWS_EnvironmentLightSerializeHandler (line 2959) | class LNWS_EnvironmentLightSerializeHandler : public EnvironmentLightSer...
    type LNEnvironmentLightSerializeHandler_OverridePrototypes (line 2963) | struct LNEnvironmentLightSerializeHandler_OverridePrototypes
    method LNEnvironmentLightSerializeHandler_OverridePrototypes (line 2968) | LNEnvironmentLightSerializeHandler_OverridePrototypes* acquireOverride...
    method LNEnvironmentLightSerializeHandler_SubclassRegistrationInfo (line 2970) | static LNEnvironmentLightSerializeHandler_SubclassRegistrationInfo* su...
    method LNWS_EnvironmentLightSerializeHandler (line 2975) | LNWS_EnvironmentLightSerializeHandler()
    method init (line 2990) | bool init(LNEnvironmentLightSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 3000) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3015) | LN_FLAT_API LNResult LNEnvironmentLightSerializeHandler_Create(LNEnviron...
  class LNWS_EnvironmentLightPreUpdateHandler (line 3026) | class LNWS_EnvironmentLightPreUpdateHandler : public EnvironmentLightPre...
    type LNEnvironmentLightPreUpdateHandler_OverridePrototypes (line 3030) | struct LNEnvironmentLightPreUpdateHandler_OverridePrototypes
    method LNEnvironmentLightPreUpdateHandler_OverridePrototypes (line 3035) | LNEnvironmentLightPreUpdateHandler_OverridePrototypes* acquireOverride...
    method LNEnvironmentLightPreUpdateHandler_SubclassRegistrationInfo (line 3037) | static LNEnvironmentLightPreUpdateHandler_SubclassRegistrationInfo* su...
    method LNWS_EnvironmentLightPreUpdateHandler (line 3042) | LNWS_EnvironmentLightPreUpdateHandler()
    method init (line 3057) | bool init(LNEnvironmentLightPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3067) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3082) | LN_FLAT_API LNResult LNEnvironmentLightPreUpdateHandler_Create(LNEnviron...
  class LNWS_EnvironmentLightUpdateHandler (line 3093) | class LNWS_EnvironmentLightUpdateHandler : public EnvironmentLightUpdate...
    type LNEnvironmentLightUpdateHandler_OverridePrototypes (line 3097) | struct LNEnvironmentLightUpdateHandler_OverridePrototypes
    method LNEnvironmentLightUpdateHandler_OverridePrototypes (line 3102) | LNEnvironmentLightUpdateHandler_OverridePrototypes* acquireOverridePro...
    method LNEnvironmentLightUpdateHandler_SubclassRegistrationInfo (line 3104) | static LNEnvironmentLightUpdateHandler_SubclassRegistrationInfo* subcl...
    method LNWS_EnvironmentLightUpdateHandler (line 3109) | LNWS_EnvironmentLightUpdateHandler()
    method init (line 3124) | bool init(LNEnvironmentLightUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3134) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3149) | LN_FLAT_API LNResult LNEnvironmentLightUpdateHandler_Create(LNEnvironmen...
  class LNWS_DirectionalLightSerializeHandler (line 3160) | class LNWS_DirectionalLightSerializeHandler : public DirectionalLightSer...
    type LNDirectionalLightSerializeHandler_OverridePrototypes (line 3164) | struct LNDirectionalLightSerializeHandler_OverridePrototypes
    method LNDirectionalLightSerializeHandler_OverridePrototypes (line 3169) | LNDirectionalLightSerializeHandler_OverridePrototypes* acquireOverride...
    method LNDirectionalLightSerializeHandler_SubclassRegistrationInfo (line 3171) | static LNDirectionalLightSerializeHandler_SubclassRegistrationInfo* su...
    method LNWS_DirectionalLightSerializeHandler (line 3176) | LNWS_DirectionalLightSerializeHandler()
    method init (line 3191) | bool init(LNDirectionalLightSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 3201) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3216) | LN_FLAT_API LNResult LNDirectionalLightSerializeHandler_Create(LNDirecti...
  class LNWS_DirectionalLightPreUpdateHandler (line 3227) | class LNWS_DirectionalLightPreUpdateHandler : public DirectionalLightPre...
    type LNDirectionalLightPreUpdateHandler_OverridePrototypes (line 3231) | struct LNDirectionalLightPreUpdateHandler_OverridePrototypes
    method LNDirectionalLightPreUpdateHandler_OverridePrototypes (line 3236) | LNDirectionalLightPreUpdateHandler_OverridePrototypes* acquireOverride...
    method LNDirectionalLightPreUpdateHandler_SubclassRegistrationInfo (line 3238) | static LNDirectionalLightPreUpdateHandler_SubclassRegistrationInfo* su...
    method LNWS_DirectionalLightPreUpdateHandler (line 3243) | LNWS_DirectionalLightPreUpdateHandler()
    method init (line 3258) | bool init(LNDirectionalLightPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3268) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3283) | LN_FLAT_API LNResult LNDirectionalLightPreUpdateHandler_Create(LNDirecti...
  class LNWS_DirectionalLightUpdateHandler (line 3294) | class LNWS_DirectionalLightUpdateHandler : public DirectionalLightUpdate...
    type LNDirectionalLightUpdateHandler_OverridePrototypes (line 3298) | struct LNDirectionalLightUpdateHandler_OverridePrototypes
    method LNDirectionalLightUpdateHandler_OverridePrototypes (line 3303) | LNDirectionalLightUpdateHandler_OverridePrototypes* acquireOverridePro...
    method LNDirectionalLightUpdateHandler_SubclassRegistrationInfo (line 3305) | static LNDirectionalLightUpdateHandler_SubclassRegistrationInfo* subcl...
    method LNWS_DirectionalLightUpdateHandler (line 3310) | LNWS_DirectionalLightUpdateHandler()
    method init (line 3325) | bool init(LNDirectionalLightUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3335) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3350) | LN_FLAT_API LNResult LNDirectionalLightUpdateHandler_Create(LNDirectiona...
  class LNWS_PointLightSerializeHandler (line 3361) | class LNWS_PointLightSerializeHandler : public PointLightSerializeHandler
    type LNPointLightSerializeHandler_OverridePrototypes (line 3365) | struct LNPointLightSerializeHandler_OverridePrototypes
    method LNPointLightSerializeHandler_OverridePrototypes (line 3370) | LNPointLightSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNPointLightSerializeHandler_SubclassRegistrationInfo (line 3372) | static LNPointLightSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_PointLightSerializeHandler (line 3377) | LNWS_PointLightSerializeHandler()
    method init (line 3392) | bool init(LNPointLightSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 3402) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3417) | LN_FLAT_API LNResult LNPointLightSerializeHandler_Create(LNPointLightSer...
  class LNWS_PointLightPreUpdateHandler (line 3428) | class LNWS_PointLightPreUpdateHandler : public PointLightPreUpdateHandler
    type LNPointLightPreUpdateHandler_OverridePrototypes (line 3432) | struct LNPointLightPreUpdateHandler_OverridePrototypes
    method LNPointLightPreUpdateHandler_OverridePrototypes (line 3437) | LNPointLightPreUpdateHandler_OverridePrototypes* acquireOverrideProtot...
    method LNPointLightPreUpdateHandler_SubclassRegistrationInfo (line 3439) | static LNPointLightPreUpdateHandler_SubclassRegistrationInfo* subclass...
    method LNWS_PointLightPreUpdateHandler (line 3444) | LNWS_PointLightPreUpdateHandler()
    method init (line 3459) | bool init(LNPointLightPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3469) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3484) | LN_FLAT_API LNResult LNPointLightPreUpdateHandler_Create(LNPointLightPre...
  class LNWS_PointLightUpdateHandler (line 3495) | class LNWS_PointLightUpdateHandler : public PointLightUpdateHandler
    type LNPointLightUpdateHandler_OverridePrototypes (line 3499) | struct LNPointLightUpdateHandler_OverridePrototypes
    method LNPointLightUpdateHandler_OverridePrototypes (line 3504) | LNPointLightUpdateHandler_OverridePrototypes* acquireOverridePrototype...
    method LNPointLightUpdateHandler_SubclassRegistrationInfo (line 3506) | static LNPointLightUpdateHandler_SubclassRegistrationInfo* subclassInf...
    method LNWS_PointLightUpdateHandler (line 3511) | LNWS_PointLightUpdateHandler()
    method init (line 3526) | bool init(LNPointLightUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3536) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3551) | LN_FLAT_API LNResult LNPointLightUpdateHandler_Create(LNPointLightUpdate...
  class LNWS_SpotLightSerializeHandler (line 3562) | class LNWS_SpotLightSerializeHandler : public SpotLightSerializeHandler
    type LNSpotLightSerializeHandler_OverridePrototypes (line 3566) | struct LNSpotLightSerializeHandler_OverridePrototypes
    method LNSpotLightSerializeHandler_OverridePrototypes (line 3571) | LNSpotLightSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNSpotLightSerializeHandler_SubclassRegistrationInfo (line 3573) | static LNSpotLightSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_SpotLightSerializeHandler (line 3578) | LNWS_SpotLightSerializeHandler()
    method init (line 3593) | bool init(LNSpotLightSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 3603) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3618) | LN_FLAT_API LNResult LNSpotLightSerializeHandler_Create(LNSpotLightSeria...
  class LNWS_SpotLightPreUpdateHandler (line 3629) | class LNWS_SpotLightPreUpdateHandler : public SpotLightPreUpdateHandler
    type LNSpotLightPreUpdateHandler_OverridePrototypes (line 3633) | struct LNSpotLightPreUpdateHandler_OverridePrototypes
    method LNSpotLightPreUpdateHandler_OverridePrototypes (line 3638) | LNSpotLightPreUpdateHandler_OverridePrototypes* acquireOverridePrototy...
    method LNSpotLightPreUpdateHandler_SubclassRegistrationInfo (line 3640) | static LNSpotLightPreUpdateHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_SpotLightPreUpdateHandler (line 3645) | LNWS_SpotLightPreUpdateHandler()
    method init (line 3660) | bool init(LNSpotLightPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3670) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3685) | LN_FLAT_API LNResult LNSpotLightPreUpdateHandler_Create(LNSpotLightPreUp...
  class LNWS_SpotLightUpdateHandler (line 3696) | class LNWS_SpotLightUpdateHandler : public SpotLightUpdateHandler
    type LNSpotLightUpdateHandler_OverridePrototypes (line 3700) | struct LNSpotLightUpdateHandler_OverridePrototypes
    method LNSpotLightUpdateHandler_OverridePrototypes (line 3705) | LNSpotLightUpdateHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNSpotLightUpdateHandler_SubclassRegistrationInfo (line 3707) | static LNSpotLightUpdateHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_SpotLightUpdateHandler (line 3712) | LNWS_SpotLightUpdateHandler()
    method init (line 3727) | bool init(LNSpotLightUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3737) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3752) | LN_FLAT_API LNResult LNSpotLightUpdateHandler_Create(LNSpotLightUpdateHa...
  class LNWS_SpriteSerializeHandler (line 3763) | class LNWS_SpriteSerializeHandler : public SpriteSerializeHandler
    type LNSpriteSerializeHandler_OverridePrototypes (line 3767) | struct LNSpriteSerializeHandler_OverridePrototypes
    method LNSpriteSerializeHandler_OverridePrototypes (line 3772) | LNSpriteSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNSpriteSerializeHandler_SubclassRegistrationInfo (line 3774) | static LNSpriteSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_SpriteSerializeHandler (line 3779) | LNWS_SpriteSerializeHandler()
    method init (line 3794) | bool init(LNSpriteSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 3804) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3819) | LN_FLAT_API LNResult LNSpriteSerializeHandler_Create(LNSpriteSerializeHa...
  class LNWS_SpritePreUpdateHandler (line 3830) | class LNWS_SpritePreUpdateHandler : public SpritePreUpdateHandler
    type LNSpritePreUpdateHandler_OverridePrototypes (line 3834) | struct LNSpritePreUpdateHandler_OverridePrototypes
    method LNSpritePreUpdateHandler_OverridePrototypes (line 3839) | LNSpritePreUpdateHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNSpritePreUpdateHandler_SubclassRegistrationInfo (line 3841) | static LNSpritePreUpdateHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_SpritePreUpdateHandler (line 3846) | LNWS_SpritePreUpdateHandler()
    method init (line 3861) | bool init(LNSpritePreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3871) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3886) | LN_FLAT_API LNResult LNSpritePreUpdateHandler_Create(LNSpritePreUpdateHa...
  class LNWS_SpriteUpdateHandler (line 3897) | class LNWS_SpriteUpdateHandler : public SpriteUpdateHandler
    type LNSpriteUpdateHandler_OverridePrototypes (line 3901) | struct LNSpriteUpdateHandler_OverridePrototypes
    method LNSpriteUpdateHandler_OverridePrototypes (line 3906) | LNSpriteUpdateHandler_OverridePrototypes* acquireOverridePrototypes() ...
    method LNSpriteUpdateHandler_SubclassRegistrationInfo (line 3908) | static LNSpriteUpdateHandler_SubclassRegistrationInfo* subclassInfo() ...
    method LNWS_SpriteUpdateHandler (line 3913) | LNWS_SpriteUpdateHandler()
    method init (line 3928) | bool init(LNSpriteUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 3938) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 3953) | LN_FLAT_API LNResult LNSpriteUpdateHandler_Create(LNSpriteUpdateHandlerC...
  class LNWS_CameraOrbitControlComponentSerializeHandler (line 3964) | class LNWS_CameraOrbitControlComponentSerializeHandler : public CameraOr...
    type LNCameraOrbitControlComponentSerializeHandler_OverridePrototypes (line 3968) | struct LNCameraOrbitControlComponentSerializeHandler_OverridePrototypes
    method LNCameraOrbitControlComponentSerializeHandler_OverridePrototypes (line 3973) | LNCameraOrbitControlComponentSerializeHandler_OverridePrototypes* acqu...
    method LNCameraOrbitControlComponentSerializeHandler_SubclassRegistrationInfo (line 3975) | static LNCameraOrbitControlComponentSerializeHandler_SubclassRegistrat...
    method LNWS_CameraOrbitControlComponentSerializeHandler (line 3980) | LNWS_CameraOrbitControlComponentSerializeHandler()
    method init (line 3995) | bool init(LNCameraOrbitControlComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4005) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4020) | LN_FLAT_API LNResult LNCameraOrbitControlComponentSerializeHandler_Creat...
  class LNWS_RaycasterSerializeHandler (line 4031) | class LNWS_RaycasterSerializeHandler : public RaycasterSerializeHandler
    type LNRaycasterSerializeHandler_OverridePrototypes (line 4035) | struct LNRaycasterSerializeHandler_OverridePrototypes
    method LNRaycasterSerializeHandler_OverridePrototypes (line 4040) | LNRaycasterSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNRaycasterSerializeHandler_SubclassRegistrationInfo (line 4042) | static LNRaycasterSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_RaycasterSerializeHandler (line 4047) | LNWS_RaycasterSerializeHandler()
    method init (line 4062) | bool init(LNRaycasterSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4072) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4087) | LN_FLAT_API LNResult LNRaycasterSerializeHandler_Create(LNRaycasterSeria...
  class LNWS_RaycastResultSerializeHandler (line 4098) | class LNWS_RaycastResultSerializeHandler : public RaycastResultSerialize...
    type LNRaycastResultSerializeHandler_OverridePrototypes (line 4102) | struct LNRaycastResultSerializeHandler_OverridePrototypes
    method LNRaycastResultSerializeHandler_OverridePrototypes (line 4107) | LNRaycastResultSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNRaycastResultSerializeHandler_SubclassRegistrationInfo (line 4109) | static LNRaycastResultSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_RaycastResultSerializeHandler (line 4114) | LNWS_RaycastResultSerializeHandler()
    method init (line 4129) | bool init(LNRaycastResultSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4139) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4154) | LN_FLAT_API LNResult LNRaycastResultSerializeHandler_Create(LNRaycastRes...
  class LNWS_WorldRenderViewSerializeHandler (line 4165) | class LNWS_WorldRenderViewSerializeHandler : public WorldRenderViewSeria...
    type LNWorldRenderViewSerializeHandler_OverridePrototypes (line 4169) | struct LNWorldRenderViewSerializeHandler_OverridePrototypes
    method LNWorldRenderViewSerializeHandler_OverridePrototypes (line 4174) | LNWorldRenderViewSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNWorldRenderViewSerializeHandler_SubclassRegistrationInfo (line 4176) | static LNWorldRenderViewSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_WorldRenderViewSerializeHandler (line 4181) | LNWS_WorldRenderViewSerializeHandler()
    method init (line 4196) | bool init(LNWorldRenderViewSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4206) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4221) | LN_FLAT_API LNResult LNWorldRenderViewSerializeHandler_Create(LNWorldRen...
  class LNWS_ShapeObjectSerializeHandler (line 4232) | class LNWS_ShapeObjectSerializeHandler : public ShapeObjectSerializeHandler
    type LNShapeObjectSerializeHandler_OverridePrototypes (line 4236) | struct LNShapeObjectSerializeHandler_OverridePrototypes
    method LNShapeObjectSerializeHandler_OverridePrototypes (line 4241) | LNShapeObjectSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNShapeObjectSerializeHandler_SubclassRegistrationInfo (line 4243) | static LNShapeObjectSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_ShapeObjectSerializeHandler (line 4248) | LNWS_ShapeObjectSerializeHandler()
    method init (line 4263) | bool init(LNShapeObjectSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4273) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4288) | LN_FLAT_API LNResult LNShapeObjectSerializeHandler_Create(LNShapeObjectS...
  class LNWS_ShapeObjectPreUpdateHandler (line 4299) | class LNWS_ShapeObjectPreUpdateHandler : public ShapeObjectPreUpdateHandler
    type LNShapeObjectPreUpdateHandler_OverridePrototypes (line 4303) | struct LNShapeObjectPreUpdateHandler_OverridePrototypes
    method LNShapeObjectPreUpdateHandler_OverridePrototypes (line 4308) | LNShapeObjectPreUpdateHandler_OverridePrototypes* acquireOverrideProto...
    method LNShapeObjectPreUpdateHandler_SubclassRegistrationInfo (line 4310) | static LNShapeObjectPreUpdateHandler_SubclassRegistrationInfo* subclas...
    method LNWS_ShapeObjectPreUpdateHandler (line 4315) | LNWS_ShapeObjectPreUpdateHandler()
    method init (line 4330) | bool init(LNShapeObjectPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4340) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4355) | LN_FLAT_API LNResult LNShapeObjectPreUpdateHandler_Create(LNShapeObjectP...
  class LNWS_ShapeObjectUpdateHandler (line 4366) | class LNWS_ShapeObjectUpdateHandler : public ShapeObjectUpdateHandler
    type LNShapeObjectUpdateHandler_OverridePrototypes (line 4370) | struct LNShapeObjectUpdateHandler_OverridePrototypes
    method LNShapeObjectUpdateHandler_OverridePrototypes (line 4375) | LNShapeObjectUpdateHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNShapeObjectUpdateHandler_SubclassRegistrationInfo (line 4377) | static LNShapeObjectUpdateHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_ShapeObjectUpdateHandler (line 4382) | LNWS_ShapeObjectUpdateHandler()
    method init (line 4397) | bool init(LNShapeObjectUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4407) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4422) | LN_FLAT_API LNResult LNShapeObjectUpdateHandler_Create(LNShapeObjectUpda...
  class LNWS_PlaneMeshSerializeHandler (line 4433) | class LNWS_PlaneMeshSerializeHandler : public PlaneMeshSerializeHandler
    type LNPlaneMeshSerializeHandler_OverridePrototypes (line 4437) | struct LNPlaneMeshSerializeHandler_OverridePrototypes
    method LNPlaneMeshSerializeHandler_OverridePrototypes (line 4442) | LNPlaneMeshSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNPlaneMeshSerializeHandler_SubclassRegistrationInfo (line 4444) | static LNPlaneMeshSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_PlaneMeshSerializeHandler (line 4449) | LNWS_PlaneMeshSerializeHandler()
    method init (line 4464) | bool init(LNPlaneMeshSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4474) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4489) | LN_FLAT_API LNResult LNPlaneMeshSerializeHandler_Create(LNPlaneMeshSeria...
  class LNWS_PlaneMeshPreUpdateHandler (line 4500) | class LNWS_PlaneMeshPreUpdateHandler : public PlaneMeshPreUpdateHandler
    type LNPlaneMeshPreUpdateHandler_OverridePrototypes (line 4504) | struct LNPlaneMeshPreUpdateHandler_OverridePrototypes
    method LNPlaneMeshPreUpdateHandler_OverridePrototypes (line 4509) | LNPlaneMeshPreUpdateHandler_OverridePrototypes* acquireOverridePrototy...
    method LNPlaneMeshPreUpdateHandler_SubclassRegistrationInfo (line 4511) | static LNPlaneMeshPreUpdateHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_PlaneMeshPreUpdateHandler (line 4516) | LNWS_PlaneMeshPreUpdateHandler()
    method init (line 4531) | bool init(LNPlaneMeshPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4541) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4556) | LN_FLAT_API LNResult LNPlaneMeshPreUpdateHandler_Create(LNPlaneMeshPreUp...
  class LNWS_PlaneMeshUpdateHandler (line 4567) | class LNWS_PlaneMeshUpdateHandler : public PlaneMeshUpdateHandler
    type LNPlaneMeshUpdateHandler_OverridePrototypes (line 4571) | struct LNPlaneMeshUpdateHandler_OverridePrototypes
    method LNPlaneMeshUpdateHandler_OverridePrototypes (line 4576) | LNPlaneMeshUpdateHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNPlaneMeshUpdateHandler_SubclassRegistrationInfo (line 4578) | static LNPlaneMeshUpdateHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_PlaneMeshUpdateHandler (line 4583) | LNWS_PlaneMeshUpdateHandler()
    method init (line 4598) | bool init(LNPlaneMeshUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4608) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4623) | LN_FLAT_API LNResult LNPlaneMeshUpdateHandler_Create(LNPlaneMeshUpdateHa...
  class LNWS_StaticMeshSerializeHandler (line 4634) | class LNWS_StaticMeshSerializeHandler : public StaticMeshSerializeHandler
    type LNStaticMeshSerializeHandler_OverridePrototypes (line 4638) | struct LNStaticMeshSerializeHandler_OverridePrototypes
    method LNStaticMeshSerializeHandler_OverridePrototypes (line 4643) | LNStaticMeshSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNStaticMeshSerializeHandler_SubclassRegistrationInfo (line 4645) | static LNStaticMeshSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_StaticMeshSerializeHandler (line 4650) | LNWS_StaticMeshSerializeHandler()
    method init (line 4665) | bool init(LNStaticMeshSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4675) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4690) | LN_FLAT_API LNResult LNStaticMeshSerializeHandler_Create(LNStaticMeshSer...
  class LNWS_StaticMeshPreUpdateHandler (line 4701) | class LNWS_StaticMeshPreUpdateHandler : public StaticMeshPreUpdateHandler
    type LNStaticMeshPreUpdateHandler_OverridePrototypes (line 4705) | struct LNStaticMeshPreUpdateHandler_OverridePrototypes
    method LNStaticMeshPreUpdateHandler_OverridePrototypes (line 4710) | LNStaticMeshPreUpdateHandler_OverridePrototypes* acquireOverrideProtot...
    method LNStaticMeshPreUpdateHandler_SubclassRegistrationInfo (line 4712) | static LNStaticMeshPreUpdateHandler_SubclassRegistrationInfo* subclass...
    method LNWS_StaticMeshPreUpdateHandler (line 4717) | LNWS_StaticMeshPreUpdateHandler()
    method init (line 4732) | bool init(LNStaticMeshPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4742) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4757) | LN_FLAT_API LNResult LNStaticMeshPreUpdateHandler_Create(LNStaticMeshPre...
  class LNWS_StaticMeshUpdateHandler (line 4768) | class LNWS_StaticMeshUpdateHandler : public StaticMeshUpdateHandler
    type LNStaticMeshUpdateHandler_OverridePrototypes (line 4772) | struct LNStaticMeshUpdateHandler_OverridePrototypes
    method LNStaticMeshUpdateHandler_OverridePrototypes (line 4777) | LNStaticMeshUpdateHandler_OverridePrototypes* acquireOverridePrototype...
    method LNStaticMeshUpdateHandler_SubclassRegistrationInfo (line 4779) | static LNStaticMeshUpdateHandler_SubclassRegistrationInfo* subclassInf...
    method LNWS_StaticMeshUpdateHandler (line 4784) | LNWS_StaticMeshUpdateHandler()
    method init (line 4799) | bool init(LNStaticMeshUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 4809) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4824) | LN_FLAT_API LNResult LNStaticMeshUpdateHandler_Create(LNStaticMeshUpdate...
  class LNWS_MeshComponentSerializeHandler (line 4835) | class LNWS_MeshComponentSerializeHandler : public MeshComponentSerialize...
    type LNMeshComponentSerializeHandler_OverridePrototypes (line 4839) | struct LNMeshComponentSerializeHandler_OverridePrototypes
    method LNMeshComponentSerializeHandler_OverridePrototypes (line 4844) | LNMeshComponentSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNMeshComponentSerializeHandler_SubclassRegistrationInfo (line 4846) | static LNMeshComponentSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_MeshComponentSerializeHandler (line 4851) | LNWS_MeshComponentSerializeHandler()
    method init (line 4866) | bool init(LNMeshComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4876) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4891) | LN_FLAT_API LNResult LNMeshComponentSerializeHandler_Create(LNMeshCompon...
  class LNWS_CollisionSerializeHandler (line 4902) | class LNWS_CollisionSerializeHandler : public CollisionSerializeHandler
    type LNCollisionSerializeHandler_OverridePrototypes (line 4906) | struct LNCollisionSerializeHandler_OverridePrototypes
    method LNCollisionSerializeHandler_OverridePrototypes (line 4911) | LNCollisionSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNCollisionSerializeHandler_SubclassRegistrationInfo (line 4913) | static LNCollisionSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_CollisionSerializeHandler (line 4918) | LNWS_CollisionSerializeHandler()
    method init (line 4933) | bool init(LNCollisionSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 4943) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 4958) | LN_FLAT_API LNResult LNCollisionSerializeHandler_Create(LNCollisionSeria...
  class LNWS_TriggerBodyComponentSerializeHandler (line 4969) | class LNWS_TriggerBodyComponentSerializeHandler : public TriggerBodyComp...
    type LNTriggerBodyComponentSerializeHandler_OverridePrototypes (line 4973) | struct LNTriggerBodyComponentSerializeHandler_OverridePrototypes
    method LNTriggerBodyComponentSerializeHandler_OverridePrototypes (line 4978) | LNTriggerBodyComponentSerializeHandler_OverridePrototypes* acquireOver...
    method LNTriggerBodyComponentSerializeHandler_SubclassRegistrationInfo (line 4980) | static LNTriggerBodyComponentSerializeHandler_SubclassRegistrationInfo...
    method LNWS_TriggerBodyComponentSerializeHandler (line 4985) | LNWS_TriggerBodyComponentSerializeHandler()
    method init (line 5000) | bool init(LNTriggerBodyComponentSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5010) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5025) | LN_FLAT_API LNResult LNTriggerBodyComponentSerializeHandler_Create(LNTri...
  class LNWS_ParticleEmitterSerializeHandler (line 5036) | class LNWS_ParticleEmitterSerializeHandler : public ParticleEmitterSeria...
    type LNParticleEmitterSerializeHandler_OverridePrototypes (line 5040) | struct LNParticleEmitterSerializeHandler_OverridePrototypes
    method LNParticleEmitterSerializeHandler_OverridePrototypes (line 5045) | LNParticleEmitterSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNParticleEmitterSerializeHandler_SubclassRegistrationInfo (line 5047) | static LNParticleEmitterSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_ParticleEmitterSerializeHandler (line 5052) | LNWS_ParticleEmitterSerializeHandler()
    method init (line 5067) | bool init(LNParticleEmitterSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5077) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5092) | LN_FLAT_API LNResult LNParticleEmitterSerializeHandler_Create(LNParticle...
  class LNWS_ParticleEmitterPreUpdateHandler (line 5103) | class LNWS_ParticleEmitterPreUpdateHandler : public ParticleEmitterPreUp...
    type LNParticleEmitterPreUpdateHandler_OverridePrototypes (line 5107) | struct LNParticleEmitterPreUpdateHandler_OverridePrototypes
    method LNParticleEmitterPreUpdateHandler_OverridePrototypes (line 5112) | LNParticleEmitterPreUpdateHandler_OverridePrototypes* acquireOverrideP...
    method LNParticleEmitterPreUpdateHandler_SubclassRegistrationInfo (line 5114) | static LNParticleEmitterPreUpdateHandler_SubclassRegistrationInfo* sub...
    method LNWS_ParticleEmitterPreUpdateHandler (line 5119) | LNWS_ParticleEmitterPreUpdateHandler()
    method init (line 5134) | bool init(LNParticleEmitterPreUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 5144) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5159) | LN_FLAT_API LNResult LNParticleEmitterPreUpdateHandler_Create(LNParticle...
  class LNWS_ParticleEmitterUpdateHandler (line 5170) | class LNWS_ParticleEmitterUpdateHandler : public ParticleEmitterUpdateHa...
    type LNParticleEmitterUpdateHandler_OverridePrototypes (line 5174) | struct LNParticleEmitterUpdateHandler_OverridePrototypes
    method LNParticleEmitterUpdateHandler_OverridePrototypes (line 5179) | LNParticleEmitterUpdateHandler_OverridePrototypes* acquireOverrideProt...
    method LNParticleEmitterUpdateHandler_SubclassRegistrationInfo (line 5181) | static LNParticleEmitterUpdateHandler_SubclassRegistrationInfo* subcla...
    method LNWS_ParticleEmitterUpdateHandler (line 5186) | LNWS_ParticleEmitterUpdateHandler()
    method init (line 5201) | bool init(LNParticleEmitterUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 5211) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5226) | LN_FLAT_API LNResult LNParticleEmitterUpdateHandler_Create(LNParticleEmi...
  class LNWS_LevelSerializeHandler (line 5237) | class LNWS_LevelSerializeHandler : public LevelSerializeHandler
    type LNLevelSerializeHandler_OverridePrototypes (line 5241) | struct LNLevelSerializeHandler_OverridePrototypes
    method LNLevelSerializeHandler_OverridePrototypes (line 5246) | LNLevelSerializeHandler_OverridePrototypes* acquireOverridePrototypes(...
    method LNLevelSerializeHandler_SubclassRegistrationInfo (line 5248) | static LNLevelSerializeHandler_SubclassRegistrationInfo* subclassInfo(...
    method LNWS_LevelSerializeHandler (line 5253) | LNWS_LevelSerializeHandler()
    method init (line 5268) | bool init(LNLevelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5278) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5293) | LN_FLAT_API LNResult LNLevelSerializeHandler_Create(LNLevelSerializeHand...
  class LNWS_LevelStartHandler (line 5304) | class LNWS_LevelStartHandler : public LevelStartHandler
    type LNLevelStartHandler_OverridePrototypes (line 5308) | struct LNLevelStartHandler_OverridePrototypes
    method LNLevelStartHandler_OverridePrototypes (line 5313) | LNLevelStartHandler_OverridePrototypes* acquireOverridePrototypes() { ...
    method LNLevelStartHandler_SubclassRegistrationInfo (line 5315) | static LNLevelStartHandler_SubclassRegistrationInfo* subclassInfo() { ...
    method LNWS_LevelStartHandler (line 5320) | LNWS_LevelStartHandler()
    method init (line 5335) | bool init(LNLevelStartHandlerCallback callback)
    method setTypeInfoOverride (line 5345) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5360) | LN_FLAT_API LNResult LNLevelStartHandler_Create(LNLevelStartHandlerCallb...
  class LNWS_LevelStopHandler (line 5371) | class LNWS_LevelStopHandler : public LevelStopHandler
    type LNLevelStopHandler_OverridePrototypes (line 5375) | struct LNLevelStopHandler_OverridePrototypes
    method LNLevelStopHandler_OverridePrototypes (line 5380) | LNLevelStopHandler_OverridePrototypes* acquireOverridePrototypes() { i...
    method LNLevelStopHandler_SubclassRegistrationInfo (line 5382) | static LNLevelStopHandler_SubclassRegistrationInfo* subclassInfo() { s...
    method LNWS_LevelStopHandler (line 5387) | LNWS_LevelStopHandler()
    method init (line 5402) | bool init(LNLevelStopHandlerCallback callback)
    method setTypeInfoOverride (line 5412) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5427) | LN_FLAT_API LNResult LNLevelStopHandler_Create(LNLevelStopHandlerCallbac...
  class LNWS_LevelPauseHandler (line 5438) | class LNWS_LevelPauseHandler : public LevelPauseHandler
    type LNLevelPauseHandler_OverridePrototypes (line 5442) | struct LNLevelPauseHandler_OverridePrototypes
    method LNLevelPauseHandler_OverridePrototypes (line 5447) | LNLevelPauseHandler_OverridePrototypes* acquireOverridePrototypes() { ...
    method LNLevelPauseHandler_SubclassRegistrationInfo (line 5449) | static LNLevelPauseHandler_SubclassRegistrationInfo* subclassInfo() { ...
    method LNWS_LevelPauseHandler (line 5454) | LNWS_LevelPauseHandler()
    method init (line 5469) | bool init(LNLevelPauseHandlerCallback callback)
    method setTypeInfoOverride (line 5479) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5494) | LN_FLAT_API LNResult LNLevelPauseHandler_Create(LNLevelPauseHandlerCallb...
  class LNWS_LevelResumeHandler (line 5505) | class LNWS_LevelResumeHandler : public LevelResumeHandler
    type LNLevelResumeHandler_OverridePrototypes (line 5509) | struct LNLevelResumeHandler_OverridePrototypes
    method LNLevelResumeHandler_OverridePrototypes (line 5514) | LNLevelResumeHandler_OverridePrototypes* acquireOverridePrototypes() {...
    method LNLevelResumeHandler_SubclassRegistrationInfo (line 5516) | static LNLevelResumeHandler_SubclassRegistrationInfo* subclassInfo() {...
    method LNWS_LevelResumeHandler (line 5521) | LNWS_LevelResumeHandler()
    method init (line 5536) | bool init(LNLevelResumeHandlerCallback callback)
    method setTypeInfoOverride (line 5546) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5561) | LN_FLAT_API LNResult LNLevelResumeHandler_Create(LNLevelResumeHandlerCal...
  class LNWS_LevelUpdateHandler (line 5572) | class LNWS_LevelUpdateHandler : public LevelUpdateHandler
    type LNLevelUpdateHandler_OverridePrototypes (line 5576) | struct LNLevelUpdateHandler_OverridePrototypes
    method LNLevelUpdateHandler_OverridePrototypes (line 5581) | LNLevelUpdateHandler_OverridePrototypes* acquireOverridePrototypes() {...
    method LNLevelUpdateHandler_SubclassRegistrationInfo (line 5583) | static LNLevelUpdateHandler_SubclassRegistrationInfo* subclassInfo() {...
    method LNWS_LevelUpdateHandler (line 5588) | LNWS_LevelUpdateHandler()
    method init (line 5603) | bool init(LNLevelUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 5613) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5628) | LN_FLAT_API LNResult LNLevelUpdateHandler_Create(LNLevelUpdateHandlerCal...
  class LNWS_UIEventArgsSerializeHandler (line 5639) | class LNWS_UIEventArgsSerializeHandler : public UIEventArgsSerializeHandler
    type LNUIEventArgsSerializeHandler_OverridePrototypes (line 5643) | struct LNUIEventArgsSerializeHandler_OverridePrototypes
    method LNUIEventArgsSerializeHandler_OverridePrototypes (line 5648) | LNUIEventArgsSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNUIEventArgsSerializeHandler_SubclassRegistrationInfo (line 5650) | static LNUIEventArgsSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_UIEventArgsSerializeHandler (line 5655) | LNWS_UIEventArgsSerializeHandler()
    method init (line 5670) | bool init(LNUIEventArgsSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5680) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5695) | LN_FLAT_API LNResult LNUIEventArgsSerializeHandler_Create(LNUIEventArgsS...
  class LNWS_UILayoutElementSerializeHandler (line 5706) | class LNWS_UILayoutElementSerializeHandler : public UILayoutElementSeria...
    type LNUILayoutElementSerializeHandler_OverridePrototypes (line 5710) | struct LNUILayoutElementSerializeHandler_OverridePrototypes
    method LNUILayoutElementSerializeHandler_OverridePrototypes (line 5715) | LNUILayoutElementSerializeHandler_OverridePrototypes* acquireOverrideP...
    method LNUILayoutElementSerializeHandler_SubclassRegistrationInfo (line 5717) | static LNUILayoutElementSerializeHandler_SubclassRegistrationInfo* sub...
    method LNWS_UILayoutElementSerializeHandler (line 5722) | LNWS_UILayoutElementSerializeHandler()
    method init (line 5737) | bool init(LNUILayoutElementSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5747) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5762) | LN_FLAT_API LNResult LNUILayoutElementSerializeHandler_Create(LNUILayout...
  class LNWS_UIElementSerializeHandler (line 5773) | class LNWS_UIElementSerializeHandler : public UIElementSerializeHandler
    type LNUIElementSerializeHandler_OverridePrototypes (line 5777) | struct LNUIElementSerializeHandler_OverridePrototypes
    method LNUIElementSerializeHandler_OverridePrototypes (line 5782) | LNUIElementSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNUIElementSerializeHandler_SubclassRegistrationInfo (line 5784) | static LNUIElementSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_UIElementSerializeHandler (line 5789) | LNWS_UIElementSerializeHandler()
    method init (line 5804) | bool init(LNUIElementSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5814) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5829) | LN_FLAT_API LNResult LNUIElementSerializeHandler_Create(LNUIElementSeria...
  class LNWS_UITextSerializeHandler (line 5840) | class LNWS_UITextSerializeHandler : public UITextSerializeHandler
    type LNUITextSerializeHandler_OverridePrototypes (line 5844) | struct LNUITextSerializeHandler_OverridePrototypes
    method LNUITextSerializeHandler_OverridePrototypes (line 5849) | LNUITextSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNUITextSerializeHandler_SubclassRegistrationInfo (line 5851) | static LNUITextSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_UITextSerializeHandler (line 5856) | LNWS_UITextSerializeHandler()
    method init (line 5871) | bool init(LNUITextSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5881) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5896) | LN_FLAT_API LNResult LNUITextSerializeHandler_Create(LNUITextSerializeHa...
  class LNWS_UISpriteSerializeHandler (line 5907) | class LNWS_UISpriteSerializeHandler : public UISpriteSerializeHandler
    type LNUISpriteSerializeHandler_OverridePrototypes (line 5911) | struct LNUISpriteSerializeHandler_OverridePrototypes
    method LNUISpriteSerializeHandler_OverridePrototypes (line 5916) | LNUISpriteSerializeHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNUISpriteSerializeHandler_SubclassRegistrationInfo (line 5918) | static LNUISpriteSerializeHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_UISpriteSerializeHandler (line 5923) | LNWS_UISpriteSerializeHandler()
    method init (line 5938) | bool init(LNUISpriteSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 5948) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 5963) | LN_FLAT_API LNResult LNUISpriteSerializeHandler_Create(LNUISpriteSeriali...
  class LNWS_UIIconSerializeHandler (line 5974) | class LNWS_UIIconSerializeHandler : public UIIconSerializeHandler
    type LNUIIconSerializeHandler_OverridePrototypes (line 5978) | struct LNUIIconSerializeHandler_OverridePrototypes
    method LNUIIconSerializeHandler_OverridePrototypes (line 5983) | LNUIIconSerializeHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNUIIconSerializeHandler_SubclassRegistrationInfo (line 5985) | static LNUIIconSerializeHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_UIIconSerializeHandler (line 5990) | LNWS_UIIconSerializeHandler()
    method init (line 6005) | bool init(LNUIIconSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6015) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6030) | LN_FLAT_API LNResult LNUIIconSerializeHandler_Create(LNUIIconSerializeHa...
  class LNWS_UIMessageTextAreaSerializeHandler (line 6041) | class LNWS_UIMessageTextAreaSerializeHandler : public UIMessageTextAreaS...
    type LNUIMessageTextAreaSerializeHandler_OverridePrototypes (line 6045) | struct LNUIMessageTextAreaSerializeHandler_OverridePrototypes
    method LNUIMessageTextAreaSerializeHandler_OverridePrototypes (line 6050) | LNUIMessageTextAreaSerializeHandler_OverridePrototypes* acquireOverrid...
    method LNUIMessageTextAreaSerializeHandler_SubclassRegistrationInfo (line 6052) | static LNUIMessageTextAreaSerializeHandler_SubclassRegistrationInfo* s...
    method LNWS_UIMessageTextAreaSerializeHandler (line 6057) | LNWS_UIMessageTextAreaSerializeHandler()
    method init (line 6072) | bool init(LNUIMessageTextAreaSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6082) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6097) | LN_FLAT_API LNResult LNUIMessageTextAreaSerializeHandler_Create(LNUIMess...
  class LNWS_UILayoutPanelSerializeHandler (line 6108) | class LNWS_UILayoutPanelSerializeHandler : public UILayoutPanelSerialize...
    type LNUILayoutPanelSerializeHandler_OverridePrototypes (line 6112) | struct LNUILayoutPanelSerializeHandler_OverridePrototypes
    method LNUILayoutPanelSerializeHandler_OverridePrototypes (line 6117) | LNUILayoutPanelSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNUILayoutPanelSerializeHandler_SubclassRegistrationInfo (line 6119) | static LNUILayoutPanelSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_UILayoutPanelSerializeHandler (line 6124) | LNWS_UILayoutPanelSerializeHandler()
    method init (line 6139) | bool init(LNUILayoutPanelSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6149) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6164) | LN_FLAT_API LNResult LNUILayoutPanelSerializeHandler_Create(LNUILayoutPa...
  class LNWS_UIBoxLayoutSerializeHandler (line 6175) | class LNWS_UIBoxLayoutSerializeHandler : public UIBoxLayoutSerializeHandler
    type LNUIBoxLayoutSerializeHandler_OverridePrototypes (line 6179) | struct LNUIBoxLayoutSerializeHandler_OverridePrototypes
    method LNUIBoxLayoutSerializeHandler_OverridePrototypes (line 6184) | LNUIBoxLayoutSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNUIBoxLayoutSerializeHandler_SubclassRegistrationInfo (line 6186) | static LNUIBoxLayoutSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_UIBoxLayoutSerializeHandler (line 6191) | LNWS_UIBoxLayoutSerializeHandler()
    method init (line 6206) | bool init(LNUIBoxLayoutSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6216) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6231) | LN_FLAT_API LNResult LNUIBoxLayoutSerializeHandler_Create(LNUIBoxLayoutS...
  class LNWS_UIStackLayoutSerializeHandler (line 6242) | class LNWS_UIStackLayoutSerializeHandler : public UIStackLayoutSerialize...
    type LNUIStackLayoutSerializeHandler_OverridePrototypes (line 6246) | struct LNUIStackLayoutSerializeHandler_OverridePrototypes
    method LNUIStackLayoutSerializeHandler_OverridePrototypes (line 6251) | LNUIStackLayoutSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNUIStackLayoutSerializeHandler_SubclassRegistrationInfo (line 6253) | static LNUIStackLayoutSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_UIStackLayoutSerializeHandler (line 6258) | LNWS_UIStackLayoutSerializeHandler()
    method init (line 6273) | bool init(LNUIStackLayoutSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6283) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6298) | LN_FLAT_API LNResult LNUIStackLayoutSerializeHandler_Create(LNUIStackLay...
  class LNWS_UIGridLayoutSerializeHandler (line 6309) | class LNWS_UIGridLayoutSerializeHandler : public UIGridLayoutSerializeHa...
    type LNUIGridLayoutSerializeHandler_OverridePrototypes (line 6313) | struct LNUIGridLayoutSerializeHandler_OverridePrototypes
    method LNUIGridLayoutSerializeHandler_OverridePrototypes (line 6318) | LNUIGridLayoutSerializeHandler_OverridePrototypes* acquireOverrideProt...
    method LNUIGridLayoutSerializeHandler_SubclassRegistrationInfo (line 6320) | static LNUIGridLayoutSerializeHandler_SubclassRegistrationInfo* subcla...
    method LNWS_UIGridLayoutSerializeHandler (line 6325) | LNWS_UIGridLayoutSerializeHandler()
    method init (line 6340) | bool init(LNUIGridLayoutSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6350) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6365) | LN_FLAT_API LNResult LNUIGridLayoutSerializeHandler_Create(LNUIGridLayou...
  class LNWS_UIControlSerializeHandler (line 6376) | class LNWS_UIControlSerializeHandler : public UIControlSerializeHandler
    type LNUIControlSerializeHandler_OverridePrototypes (line 6380) | struct LNUIControlSerializeHandler_OverridePrototypes
    method LNUIControlSerializeHandler_OverridePrototypes (line 6385) | LNUIControlSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNUIControlSerializeHandler_SubclassRegistrationInfo (line 6387) | static LNUIControlSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_UIControlSerializeHandler (line 6392) | LNWS_UIControlSerializeHandler()
    method init (line 6407) | bool init(LNUIControlSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6417) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6432) | LN_FLAT_API LNResult LNUIControlSerializeHandler_Create(LNUIControlSeria...
  class LNWS_UIButtonBaseSerializeHandler (line 6443) | class LNWS_UIButtonBaseSerializeHandler : public UIButtonBaseSerializeHa...
    type LNUIButtonBaseSerializeHandler_OverridePrototypes (line 6447) | struct LNUIButtonBaseSerializeHandler_OverridePrototypes
    method LNUIButtonBaseSerializeHandler_OverridePrototypes (line 6452) | LNUIButtonBaseSerializeHandler_OverridePrototypes* acquireOverrideProt...
    method LNUIButtonBaseSerializeHandler_SubclassRegistrationInfo (line 6454) | static LNUIButtonBaseSerializeHandler_SubclassRegistrationInfo* subcla...
    method LNWS_UIButtonBaseSerializeHandler (line 6459) | LNWS_UIButtonBaseSerializeHandler()
    method init (line 6474) | bool init(LNUIButtonBaseSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6484) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6499) | LN_FLAT_API LNResult LNUIButtonBaseSerializeHandler_Create(LNUIButtonBas...
  class LNWS_UIButtonSerializeHandler (line 6510) | class LNWS_UIButtonSerializeHandler : public UIButtonSerializeHandler
    type LNUIButtonSerializeHandler_OverridePrototypes (line 6514) | struct LNUIButtonSerializeHandler_OverridePrototypes
    method LNUIButtonSerializeHandler_OverridePrototypes (line 6519) | LNUIButtonSerializeHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNUIButtonSerializeHandler_SubclassRegistrationInfo (line 6521) | static LNUIButtonSerializeHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_UIButtonSerializeHandler (line 6526) | LNWS_UIButtonSerializeHandler()
    method init (line 6541) | bool init(LNUIButtonSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6551) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6566) | LN_FLAT_API LNResult LNUIButtonSerializeHandler_Create(LNUIButtonSeriali...
  class LNWS_UIWindowSerializeHandler (line 6577) | class LNWS_UIWindowSerializeHandler : public UIWindowSerializeHandler
    type LNUIWindowSerializeHandler_OverridePrototypes (line 6581) | struct LNUIWindowSerializeHandler_OverridePrototypes
    method LNUIWindowSerializeHandler_OverridePrototypes (line 6586) | LNUIWindowSerializeHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNUIWindowSerializeHandler_SubclassRegistrationInfo (line 6588) | static LNUIWindowSerializeHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_UIWindowSerializeHandler (line 6593) | LNWS_UIWindowSerializeHandler()
    method init (line 6608) | bool init(LNUIWindowSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6618) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6633) | LN_FLAT_API LNResult LNUIWindowSerializeHandler_Create(LNUIWindowSeriali...
  class LNWS_UIListItemsControlSerializeHandler (line 6644) | class LNWS_UIListItemsControlSerializeHandler : public UIListItemsContro...
    type LNUIListItemsControlSerializeHandler_OverridePrototypes (line 6648) | struct LNUIListItemsControlSerializeHandler_OverridePrototypes
    method LNUIListItemsControlSerializeHandler_OverridePrototypes (line 6653) | LNUIListItemsControlSerializeHandler_OverridePrototypes* acquireOverri...
    method LNUIListItemsControlSerializeHandler_SubclassRegistrationInfo (line 6655) | static LNUIListItemsControlSerializeHandler_SubclassRegistrationInfo* ...
    method LNWS_UIListItemsControlSerializeHandler (line 6660) | LNWS_UIListItemsControlSerializeHandler()
    method init (line 6675) | bool init(LNUIListItemsControlSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6685) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6700) | LN_FLAT_API LNResult LNUIListItemsControlSerializeHandler_Create(LNUILis...
  class LNWS_UIListBoxSerializeHandler (line 6711) | class LNWS_UIListBoxSerializeHandler : public UIListBoxSerializeHandler
    type LNUIListBoxSerializeHandler_OverridePrototypes (line 6715) | struct LNUIListBoxSerializeHandler_OverridePrototypes
    method LNUIListBoxSerializeHandler_OverridePrototypes (line 6720) | LNUIListBoxSerializeHandler_OverridePrototypes* acquireOverridePrototy...
    method LNUIListBoxSerializeHandler_SubclassRegistrationInfo (line 6722) | static LNUIListBoxSerializeHandler_SubclassRegistrationInfo* subclassI...
    method LNWS_UIListBoxSerializeHandler (line 6727) | LNWS_UIListBoxSerializeHandler()
    method init (line 6742) | bool init(LNUIListBoxSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6752) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6767) | LN_FLAT_API LNResult LNUIListBoxSerializeHandler_Create(LNUIListBoxSeria...
  class LNWS_UIListItemSerializeHandler (line 6778) | class LNWS_UIListItemSerializeHandler : public UIListItemSerializeHandler
    type LNUIListItemSerializeHandler_OverridePrototypes (line 6782) | struct LNUIListItemSerializeHandler_OverridePrototypes
    method LNUIListItemSerializeHandler_OverridePrototypes (line 6787) | LNUIListItemSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNUIListItemSerializeHandler_SubclassRegistrationInfo (line 6789) | static LNUIListItemSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_UIListItemSerializeHandler (line 6794) | LNWS_UIListItemSerializeHandler()
    method init (line 6809) | bool init(LNUIListItemSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6819) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6834) | LN_FLAT_API LNResult LNUIListItemSerializeHandler_Create(LNUIListItemSer...
  class LNWS_UIListBoxItemSerializeHandler (line 6845) | class LNWS_UIListBoxItemSerializeHandler : public UIListBoxItemSerialize...
    type LNUIListBoxItemSerializeHandler_OverridePrototypes (line 6849) | struct LNUIListBoxItemSerializeHandler_OverridePrototypes
    method LNUIListBoxItemSerializeHandler_OverridePrototypes (line 6854) | LNUIListBoxItemSerializeHandler_OverridePrototypes* acquireOverridePro...
    method LNUIListBoxItemSerializeHandler_SubclassRegistrationInfo (line 6856) | static LNUIListBoxItemSerializeHandler_SubclassRegistrationInfo* subcl...
    method LNWS_UIListBoxItemSerializeHandler (line 6861) | LNWS_UIListBoxItemSerializeHandler()
    method init (line 6876) | bool init(LNUIListBoxItemSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6886) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6901) | LN_FLAT_API LNResult LNUIListBoxItemSerializeHandler_Create(LNUIListBoxI...
  class LNWS_InputGestureSerializeHandler (line 6912) | class LNWS_InputGestureSerializeHandler : public InputGestureSerializeHa...
    type LNInputGestureSerializeHandler_OverridePrototypes (line 6916) | struct LNInputGestureSerializeHandler_OverridePrototypes
    method LNInputGestureSerializeHandler_OverridePrototypes (line 6921) | LNInputGestureSerializeHandler_OverridePrototypes* acquireOverrideProt...
    method LNInputGestureSerializeHandler_SubclassRegistrationInfo (line 6923) | static LNInputGestureSerializeHandler_SubclassRegistrationInfo* subcla...
    method LNWS_InputGestureSerializeHandler (line 6928) | LNWS_InputGestureSerializeHandler()
    method init (line 6943) | bool init(LNInputGestureSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 6953) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 6968) | LN_FLAT_API LNResult LNInputGestureSerializeHandler_Create(LNInputGestur...
  class LNWS_KeyGestureSerializeHandler (line 6979) | class LNWS_KeyGestureSerializeHandler : public KeyGestureSerializeHandler
    type LNKeyGestureSerializeHandler_OverridePrototypes (line 6983) | struct LNKeyGestureSerializeHandler_OverridePrototypes
    method LNKeyGestureSerializeHandler_OverridePrototypes (line 6988) | LNKeyGestureSerializeHandler_OverridePrototypes* acquireOverrideProtot...
    method LNKeyGestureSerializeHandler_SubclassRegistrationInfo (line 6990) | static LNKeyGestureSerializeHandler_SubclassRegistrationInfo* subclass...
    method LNWS_KeyGestureSerializeHandler (line 6995) | LNWS_KeyGestureSerializeHandler()
    method init (line 7010) | bool init(LNKeyGestureSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 7020) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7035) | LN_FLAT_API LNResult LNKeyGestureSerializeHandler_Create(LNKeyGestureSer...
  class LNWS_InterpreterCommandSerializeHandler (line 7046) | class LNWS_InterpreterCommandSerializeHandler : public InterpreterComman...
    type LNInterpreterCommandSerializeHandler_OverridePrototypes (line 7050) | struct LNInterpreterCommandSerializeHandler_OverridePrototypes
    method LNInterpreterCommandSerializeHandler_OverridePrototypes (line 7055) | LNInterpreterCommandSerializeHandler_OverridePrototypes* acquireOverri...
    method LNInterpreterCommandSerializeHandler_SubclassRegistrationInfo (line 7057) | static LNInterpreterCommandSerializeHandler_SubclassRegistrationInfo* ...
    method LNWS_InterpreterCommandSerializeHandler (line 7062) | LNWS_InterpreterCommandSerializeHandler()
    method init (line 7077) | bool init(LNInterpreterCommandSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 7087) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7102) | LN_FLAT_API LNResult LNInterpreterCommandSerializeHandler_Create(LNInter...
  class LNWS_InterpreterCommandListSerializeHandler (line 7113) | class LNWS_InterpreterCommandListSerializeHandler : public InterpreterCo...
    type LNInterpreterCommandListSerializeHandler_OverridePrototypes (line 7117) | struct LNInterpreterCommandListSerializeHandler_OverridePrototypes
    method LNInterpreterCommandListSerializeHandler_OverridePrototypes (line 7122) | LNInterpreterCommandListSerializeHandler_OverridePrototypes* acquireOv...
    method LNInterpreterCommandListSerializeHandler_SubclassRegistrationInfo (line 7124) | static LNInterpreterCommandListSerializeHandler_SubclassRegistrationIn...
    method LNWS_InterpreterCommandListSerializeHandler (line 7129) | LNWS_InterpreterCommandListSerializeHandler()
    method init (line 7144) | bool init(LNInterpreterCommandListSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 7154) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7169) | LN_FLAT_API LNResult LNInterpreterCommandListSerializeHandler_Create(LNI...
  class LNWS_InterpreterSerializeHandler (line 7180) | class LNWS_InterpreterSerializeHandler : public InterpreterSerializeHandler
    type LNInterpreterSerializeHandler_OverridePrototypes (line 7184) | struct LNInterpreterSerializeHandler_OverridePrototypes
    method LNInterpreterSerializeHandler_OverridePrototypes (line 7189) | LNInterpreterSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNInterpreterSerializeHandler_SubclassRegistrationInfo (line 7191) | static LNInterpreterSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_InterpreterSerializeHandler (line 7196) | LNWS_InterpreterSerializeHandler()
    method init (line 7211) | bool init(LNInterpreterSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 7221) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7236) | LN_FLAT_API LNResult LNInterpreterSerializeHandler_Create(LNInterpreterS...
  class LNWS_InterpreterUpdateWaitHandler (line 7247) | class LNWS_InterpreterUpdateWaitHandler : public InterpreterUpdateWaitHa...
    type LNInterpreterUpdateWaitHandler_OverridePrototypes (line 7251) | struct LNInterpreterUpdateWaitHandler_OverridePrototypes
    method LNInterpreterUpdateWaitHandler_OverridePrototypes (line 7256) | LNInterpreterUpdateWaitHandler_OverridePrototypes* acquireOverrideProt...
    method LNInterpreterUpdateWaitHandler_SubclassRegistrationInfo (line 7258) | static LNInterpreterUpdateWaitHandler_SubclassRegistrationInfo* subcla...
    method LNWS_InterpreterUpdateWaitHandler (line 7263) | LNWS_InterpreterUpdateWaitHandler()
    method init (line 7280) | bool init(LNInterpreterUpdateWaitHandlerCallback callback)
    method setTypeInfoOverride (line 7290) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7305) | LN_FLAT_API LNResult LNInterpreterUpdateWaitHandler_Create(LNInterpreter...
  class LNWS_ApplicationSerializeHandler (line 7316) | class LNWS_ApplicationSerializeHandler : public ApplicationSerializeHandler
    type LNApplicationSerializeHandler_OverridePrototypes (line 7320) | struct LNApplicationSerializeHandler_OverridePrototypes
    method LNApplicationSerializeHandler_OverridePrototypes (line 7325) | LNApplicationSerializeHandler_OverridePrototypes* acquireOverrideProto...
    method LNApplicationSerializeHandler_SubclassRegistrationInfo (line 7327) | static LNApplicationSerializeHandler_SubclassRegistrationInfo* subclas...
    method LNWS_ApplicationSerializeHandler (line 7332) | LNWS_ApplicationSerializeHandler()
    method init (line 7347) | bool init(LNApplicationSerializeHandlerCallback callback)
    method setTypeInfoOverride (line 7357) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7372) | LN_FLAT_API LNResult LNApplicationSerializeHandler_Create(LNApplicationS...
  class LNWS_ApplicationInitHandler (line 7383) | class LNWS_ApplicationInitHandler : public ApplicationInitHandler
    type LNApplicationInitHandler_OverridePrototypes (line 7387) | struct LNApplicationInitHandler_OverridePrototypes
    method LNApplicationInitHandler_OverridePrototypes (line 7392) | LNApplicationInitHandler_OverridePrototypes* acquireOverridePrototypes...
    method LNApplicationInitHandler_SubclassRegistrationInfo (line 7394) | static LNApplicationInitHandler_SubclassRegistrationInfo* subclassInfo...
    method LNWS_ApplicationInitHandler (line 7399) | LNWS_ApplicationInitHandler()
    method init (line 7414) | bool init(LNApplicationInitHandlerCallback callback)
    method setTypeInfoOverride (line 7424) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7439) | LN_FLAT_API LNResult LNApplicationInitHandler_Create(LNApplicationInitHa...
  class LNWS_ApplicationUpdateHandler (line 7450) | class LNWS_ApplicationUpdateHandler : public ApplicationUpdateHandler
    type LNApplicationUpdateHandler_OverridePrototypes (line 7454) | struct LNApplicationUpdateHandler_OverridePrototypes
    method LNApplicationUpdateHandler_OverridePrototypes (line 7459) | LNApplicationUpdateHandler_OverridePrototypes* acquireOverridePrototyp...
    method LNApplicationUpdateHandler_SubclassRegistrationInfo (line 7461) | static LNApplicationUpdateHandler_SubclassRegistrationInfo* subclassIn...
    method LNWS_ApplicationUpdateHandler (line 7466) | LNWS_ApplicationUpdateHandler()
    method init (line 7481) | bool init(LNApplicationUpdateHandlerCallback callback)
    method setTypeInfoOverride (line 7491) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7506) | LN_FLAT_API LNResult LNApplicationUpdateHandler_Create(LNApplicationUpda...
  class LNWS_ln_Object (line 7514) | class LNWS_ln_Object : public ln::Object
    type LNObject_OverridePrototypes (line 7518) | struct LNObject_OverridePrototypes
    method LNObject_OverridePrototypes (line 7524) | LNObject_OverridePrototypes* acquireOverridePrototypes() { if (!m_over...
    method LNObject_SubclassRegistrationInfo (line 7526) | static LNObject_SubclassRegistrationInfo* subclassInfo() { static LNOb...
    method LNWS_ln_Object (line 7529) | LNWS_ln_Object()
    method onSerialize_deprecated (line 7541) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 7552) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 7559) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_EventConnection (line 7576) | class LNWS_ln_EventConnection : public ln::EventConnection
    type LNEventConnection_OverridePrototypes (line 7580) | struct LNEventConnection_OverridePrototypes
    method LNEventConnection_OverridePrototypes (line 7586) | LNEventConnection_OverridePrototypes* acquireOverridePrototypes() { if...
    method LNEventConnection_SubclassRegistrationInfo (line 7588) | static LNEventConnection_SubclassRegistrationInfo* subclassInfo() { st...
    method LNWS_ln_EventConnection (line 7591) | LNWS_ln_EventConnection()
    method onSerialize_deprecated (line 7603) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 7614) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 7621) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_PromiseFailureDelegate (line 7638) | class LNWS_ln_PromiseFailureDelegate : public ln::PromiseFailureDelegate
    type LNPromiseFailureDelegate_OverridePrototypes (line 7642) | struct LNPromiseFailureDelegate_OverridePrototypes
    method LNPromiseFailureDelegate_OverridePrototypes (line 7647) | LNPromiseFailureDelegate_OverridePrototypes* acquireOverridePrototypes...
    method LNPromiseFailureDelegate_SubclassRegistrationInfo (line 7649) | static LNPromiseFailureDelegate_SubclassRegistrationInfo* subclassInfo...
    method LNWS_ln_PromiseFailureDelegate (line 7654) | LNWS_ln_PromiseFailureDelegate()
    method init (line 7669) | bool init(LNPromiseFailureDelegateCallback callback)
    method setTypeInfoOverride (line 7679) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7694) | LN_FLAT_API LNResult LNPromiseFailureDelegate_Create(LNPromiseFailureDel...
  class LNWS_ln_Variant (line 7702) | class LNWS_ln_Variant : public ln::Variant
    type LNVariant_OverridePrototypes (line 7706) | struct LNVariant_OverridePrototypes
    method LNVariant_OverridePrototypes (line 7712) | LNVariant_OverridePrototypes* acquireOverridePrototypes() { if (!m_ove...
    method LNVariant_SubclassRegistrationInfo (line 7714) | static LNVariant_SubclassRegistrationInfo* subclassInfo() { static LNV...
    method LNWS_ln_Variant (line 7717) | LNWS_ln_Variant()
    method onSerialize_deprecated (line 7729) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 7740) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 7747) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_ZVTestDelegate1 (line 7764) | class LNWS_ln_ZVTestDelegate1 : public ln::ZVTestDelegate1
    type LNZVTestDelegate1_OverridePrototypes (line 7768) | struct LNZVTestDelegate1_OverridePrototypes
    method LNZVTestDelegate1_OverridePrototypes (line 7773) | LNZVTestDelegate1_OverridePrototypes* acquireOverridePrototypes() { if...
    method LNZVTestDelegate1_SubclassRegistrationInfo (line 7775) | static LNZVTestDelegate1_SubclassRegistrationInfo* subclassInfo() { st...
    method LNWS_ln_ZVTestDelegate1 (line 7780) | LNWS_ln_ZVTestDelegate1()
    method init (line 7795) | bool init(LNZVTestDelegate1Callback callback)
    method setTypeInfoOverride (line 7805) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7820) | LN_FLAT_API LNResult LNZVTestDelegate1_Create(LNZVTestDelegate1Callback ...
  class LNWS_ln_ZVTestDelegate2 (line 7828) | class LNWS_ln_ZVTestDelegate2 : public ln::ZVTestDelegate2
    type LNZVTestDelegate2_OverridePrototypes (line 7832) | struct LNZVTestDelegate2_OverridePrototypes
    method LNZVTestDelegate2_OverridePrototypes (line 7837) | LNZVTestDelegate2_OverridePrototypes* acquireOverridePrototypes() { if...
    method LNZVTestDelegate2_SubclassRegistrationInfo (line 7839) | static LNZVTestDelegate2_SubclassRegistrationInfo* subclassInfo() { st...
    method LNWS_ln_ZVTestDelegate2 (line 7844) | LNWS_ln_ZVTestDelegate2()
    method init (line 7861) | bool init(LNZVTestDelegate2Callback callback)
    method setTypeInfoOverride (line 7871) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7886) | LN_FLAT_API LNResult LNZVTestDelegate2_Create(LNZVTestDelegate2Callback ...
  class LNWS_ln_ZVTestDelegate3 (line 7894) | class LNWS_ln_ZVTestDelegate3 : public ln::ZVTestDelegate3
    type LNZVTestDelegate3_OverridePrototypes (line 7898) | struct LNZVTestDelegate3_OverridePrototypes
    method LNZVTestDelegate3_OverridePrototypes (line 7903) | LNZVTestDelegate3_OverridePrototypes* acquireOverridePrototypes() { if...
    method LNZVTestDelegate3_SubclassRegistrationInfo (line 7905) | static LNZVTestDelegate3_SubclassRegistrationInfo* subclassInfo() { st...
    method LNWS_ln_ZVTestDelegate3 (line 7910) | LNWS_ln_ZVTestDelegate3()
    method init (line 7925) | bool init(LNZVTestDelegate3Callback callback)
    method setTypeInfoOverride (line 7935) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 7950) | LN_FLAT_API LNResult LNZVTestDelegate3_Create(LNZVTestDelegate3Callback ...
  class LNWS_ln_ZVTestEventHandler1 (line 7958) | class LNWS_ln_ZVTestEventHandler1 : public ln::ZVTestEventHandler1
    type LNZVTestEventHandler1_OverridePrototypes (line 7962) | struct LNZVTestEventHandler1_OverridePrototypes
    method LNZVTestEventHandler1_OverridePrototypes (line 7967) | LNZVTestEventHandler1_OverridePrototypes* acquireOverridePrototypes() ...
    method LNZVTestEventHandler1_SubclassRegistrationInfo (line 7969) | static LNZVTestEventHandler1_SubclassRegistrationInfo* subclassInfo() ...
    method LNWS_ln_ZVTestEventHandler1 (line 7974) | LNWS_ln_ZVTestEventHandler1()
    method init (line 7989) | bool init(LNZVTestEventHandler1Callback callback)
    method setTypeInfoOverride (line 7999) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 8014) | LN_FLAT_API LNResult LNZVTestEventHandler1_Create(LNZVTestEventHandler1C...
  class LNWS_ln_ZVTestEventHandler2 (line 8022) | class LNWS_ln_ZVTestEventHandler2 : public ln::ZVTestEventHandler2
    type LNZVTestEventHandler2_OverridePrototypes (line 8026) | struct LNZVTestEventHandler2_OverridePrototypes
    method LNZVTestEventHandler2_OverridePrototypes (line 8031) | LNZVTestEventHandler2_OverridePrototypes* acquireOverridePrototypes() ...
    method LNZVTestEventHandler2_SubclassRegistrationInfo (line 8033) | static LNZVTestEventHandler2_SubclassRegistrationInfo* subclassInfo() ...
    method LNWS_ln_ZVTestEventHandler2 (line 8038) | LNWS_ln_ZVTestEventHandler2()
    method init (line 8053) | bool init(LNZVTestEventHandler2Callback callback)
    method setTypeInfoOverride (line 8063) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 8078) | LN_FLAT_API LNResult LNZVTestEventHandler2_Create(LNZVTestEventHandler2C...
  class LNWS_ln_ZVTestPromise1 (line 8086) | class LNWS_ln_ZVTestPromise1 : public ln::ZVTestPromise1
    type LNZVTestPromise1_OverridePrototypes (line 8090) | struct LNZVTestPromise1_OverridePrototypes
    method LNZVTestPromise1_OverridePrototypes (line 8095) | LNZVTestPromise1_OverridePrototypes* acquireOverridePrototypes() { if ...
    method LNZVTestPromise1_SubclassRegistrationInfo (line 8097) | static LNZVTestPromise1_SubclassRegistrationInfo* subclassInfo() { sta...
    method LNWS_ln_ZVTestPromise1 (line 8100) | LNWS_ln_ZVTestPromise1()
    method setTypeInfoOverride (line 8113) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_ZVTestPromise2 (line 8129) | class LNWS_ln_ZVTestPromise2 : public ln::ZVTestPromise2
    type LNZVTestPromise2_OverridePrototypes (line 8133) | struct LNZVTestPromise2_OverridePrototypes
    method LNZVTestPromise2_OverridePrototypes (line 8138) | LNZVTestPromise2_OverridePrototypes* acquireOverridePrototypes() { if ...
    method LNZVTestPromise2_SubclassRegistrationInfo (line 8140) | static LNZVTestPromise2_SubclassRegistrationInfo* subclassInfo() { sta...
    method LNWS_ln_ZVTestPromise2 (line 8143) | LNWS_ln_ZVTestPromise2()
    method setTypeInfoOverride (line 8156) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_ZVTestClass1 (line 8172) | class LNWS_ln_ZVTestClass1 : public ln::ZVTestClass1
    type LNZVTestClass1_OverridePrototypes (line 8176) | struct LNZVTestClass1_OverridePrototypes
    method LNZVTestClass1_OverridePrototypes (line 8182) | LNZVTestClass1_OverridePrototypes* acquireOverridePrototypes() { if (!...
    method LNZVTestClass1_SubclassRegistrationInfo (line 8184) | static LNZVTestClass1_SubclassRegistrationInfo* subclassInfo() { stati...
    method LNWS_ln_ZVTestClass1 (line 8187) | LNWS_ln_ZVTestClass1()
    method onSerialize_deprecated (line 8199) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8210) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8217) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_ZVTestEventArgs1 (line 8234) | class LNWS_ln_ZVTestEventArgs1 : public ln::ZVTestEventArgs1
    type LNZVTestEventArgs1_OverridePrototypes (line 8238) | struct LNZVTestEventArgs1_OverridePrototypes
    method LNZVTestEventArgs1_OverridePrototypes (line 8244) | LNZVTestEventArgs1_OverridePrototypes* acquireOverridePrototypes() { i...
    method LNZVTestEventArgs1_SubclassRegistrationInfo (line 8246) | static LNZVTestEventArgs1_SubclassRegistrationInfo* subclassInfo() { s...
    method LNWS_ln_ZVTestEventArgs1 (line 8249) | LNWS_ln_ZVTestEventArgs1()
    method onSerialize_deprecated (line 8261) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8272) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8279) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Log (line 8296) | class LNWS_ln_Log : public ln::Log
  class LNWS_ln_Serializer2 (line 8303) | class LNWS_ln_Serializer2 : public ln::Serializer2_deprecated
    type LNSerializer2_OverridePrototypes (line 8307) | struct LNSerializer2_OverridePrototypes
    method LNSerializer2_OverridePrototypes (line 8313) | LNSerializer2_OverridePrototypes* acquireOverridePrototypes() { if (!m...
    method LNSerializer2_SubclassRegistrationInfo (line 8315) | static LNSerializer2_SubclassRegistrationInfo* subclassInfo() { static...
    method LNWS_ln_Serializer2 (line 8318) | LNWS_ln_Serializer2()
    method onSerialize_deprecated (line 8330) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8341) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8348) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_AssetObject (line 8365) | class LNWS_ln_AssetObject : public ln::AssetObject
    type LNAssetObject_OverridePrototypes (line 8369) | struct LNAssetObject_OverridePrototypes
    method LNAssetObject_OverridePrototypes (line 8375) | LNAssetObject_OverridePrototypes* acquireOverridePrototypes() { if (!m...
    method LNAssetObject_SubclassRegistrationInfo (line 8377) | static LNAssetObject_SubclassRegistrationInfo* subclassInfo() { static...
    method LNWS_ln_AssetObject (line 8380) | LNWS_ln_AssetObject()
    method onSerialize_deprecated (line 8392) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8403) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8410) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_AssetImportSettings (line 8427) | class LNWS_ln_AssetImportSettings : public ln::AssetImportSettings
    type LNAssetImportSettings_OverridePrototypes (line 8431) | struct LNAssetImportSettings_OverridePrototypes
    method LNAssetImportSettings_OverridePrototypes (line 8437) | LNAssetImportSettings_OverridePrototypes* acquireOverridePrototypes() ...
    method LNAssetImportSettings_SubclassRegistrationInfo (line 8439) | static LNAssetImportSettings_SubclassRegistrationInfo* subclassInfo() ...
    method LNWS_ln_AssetImportSettings (line 8442) | LNWS_ln_AssetImportSettings()
    method onSerialize_deprecated (line 8454) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8465) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8472) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_AssetModel (line 8489) | class LNWS_ln_AssetModel : public ln::AssetModel
    type LNAssetModel_OverridePrototypes (line 8493) | struct LNAssetModel_OverridePrototypes
    method LNAssetModel_OverridePrototypes (line 8499) | LNAssetModel_OverridePrototypes* acquireOverridePrototypes() { if (!m_...
    method LNAssetModel_SubclassRegistrationInfo (line 8501) | static LNAssetModel_SubclassRegistrationInfo* subclassInfo() { static ...
    method LNWS_ln_AssetModel (line 8504) | LNWS_ln_AssetModel()
    method onSerialize_deprecated (line 8516) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8527) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8534) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Assets (line 8551) | class LNWS_ln_Assets : public ln::Assets
  class LNWS_ln_Texture2DDelegate (line 8558) | class LNWS_ln_Texture2DDelegate : public ln::Texture2DDelegate
    type LNTexture2DDelegate_OverridePrototypes (line 8562) | struct LNTexture2DDelegate_OverridePrototypes
    method LNTexture2DDelegate_OverridePrototypes (line 8567) | LNTexture2DDelegate_OverridePrototypes* acquireOverridePrototypes() { ...
    method LNTexture2DDelegate_SubclassRegistrationInfo (line 8569) | static LNTexture2DDelegate_SubclassRegistrationInfo* subclassInfo() { ...
    method LNWS_ln_Texture2DDelegate (line 8574) | LNWS_ln_Texture2DDelegate()
    method init (line 8589) | bool init(LNTexture2DDelegateCallback callback)
    method setTypeInfoOverride (line 8599) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  function LN_FLAT_API (line 8614) | LN_FLAT_API LNResult LNTexture2DDelegate_Create(LNTexture2DDelegateCallb...
  class LNWS_ln_Texture2DPromise (line 8622) | class LNWS_ln_Texture2DPromise : public ln::Texture2DPromise
    type LNTexture2DPromise_OverridePrototypes (line 8626) | struct LNTexture2DPromise_OverridePrototypes
    method LNTexture2DPromise_OverridePrototypes (line 8631) | LNTexture2DPromise_OverridePrototypes* acquireOverridePrototypes() { i...
    method LNTexture2DPromise_SubclassRegistrationInfo (line 8633) | static LNTexture2DPromise_SubclassRegistrationInfo* subclassInfo() { s...
    method LNWS_ln_Texture2DPromise (line 8636) | LNWS_ln_Texture2DPromise()
    method setTypeInfoOverride (line 8649) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Graphics (line 8665) | class LNWS_ln_Graphics : public ln::Graphics
  class LNWS_ln_Texture (line 8672) | class LNWS_ln_Texture : public ln::Texture
    type LNTexture_OverridePrototypes (line 8676) | struct LNTexture_OverridePrototypes
    method LNTexture_OverridePrototypes (line 8682) | LNTexture_OverridePrototypes* acquireOverridePrototypes() { if (!m_ove...
    method LNTexture_SubclassRegistrationInfo (line 8684) | static LNTexture_SubclassRegistrationInfo* subclassInfo() { static LNT...
    method LNWS_ln_Texture (line 8687) | LNWS_ln_Texture()
    method onSerialize_deprecated (line 8699) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8710) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8717) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Texture2D (line 8734) | class LNWS_ln_Texture2D : public ln::Texture2D
    type LNTexture2D_OverridePrototypes (line 8738) | struct LNTexture2D_OverridePrototypes
    method LNTexture2D_OverridePrototypes (line 8744) | LNTexture2D_OverridePrototypes* acquireOverridePrototypes() { if (!m_o...
    method LNTexture2D_SubclassRegistrationInfo (line 8746) | static LNTexture2D_SubclassRegistrationInfo* subclassInfo() { static L...
    method LNWS_ln_Texture2D (line 8749) | LNWS_ln_Texture2D()
    method onSerialize_deprecated (line 8761) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8772) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8779) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Shader (line 8796) | class LNWS_ln_Shader : public ln::Shader
    type LNShader_OverridePrototypes (line 8800) | struct LNShader_OverridePrototypes
    method LNShader_OverridePrototypes (line 8806) | LNShader_OverridePrototypes* acquireOverridePrototypes() { if (!m_over...
    method LNShader_SubclassRegistrationInfo (line 8808) | static LNShader_SubclassRegistrationInfo* subclassInfo() { static LNSh...
    method LNWS_ln_Shader (line 8811) | LNWS_ln_Shader()
    method onSerialize_deprecated (line 8823) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8834) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8841) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Sound (line 8858) | class LNWS_ln_Sound : public ln::Sound
    type LNSound_OverridePrototypes (line 8862) | struct LNSound_OverridePrototypes
    method LNSound_OverridePrototypes (line 8868) | LNSound_OverridePrototypes* acquireOverridePrototypes() { if (!m_overr...
    method LNSound_SubclassRegistrationInfo (line 8870) | static LNSound_SubclassRegistrationInfo* subclassInfo() { static LNSou...
    method LNWS_ln_Sound (line 8873) | LNWS_ln_Sound()
    method onSerialize_deprecated (line 8885) | virtual void onSerialize_deprecated(ln::Serializer2_deprecated* ar) ov...
    method onSerialize_CallBase (line 8896) | void onSerialize_CallBase(ln::Serializer2_deprecated* ar)
    method setTypeInfoOverride (line 8903) | virtual void setTypeInfoOverride(ln::TypeInfo* value) override
  class LNWS_ln_Audio (line 8920) | class LNWS_ln_Audio : public ln::Audio
  class LNWS_ln_RenderView (line 8927) | class LNWS_ln_RenderView : public ln::RenderView
    type LNRenderView_OverridePrototypes (line 8931) | struct LNRenderView_OverridePrototypes
    method LNRend
Copy disabled (too large) Download .json
Condensed preview — 2394 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (51,340K chars).
[
  {
    "path": ".clang-format",
    "chars": 3104,
    "preview": "---\nLanguage:        Cpp\n# BasedOnStyle:  Mozilla\nAccessModifierOffset: -4\nAlignAfterOpenBracket: AlwaysBreak\nAlignConse"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 630,
    "preview": "Contributing\r\n====================\r\n\r\nReporting Issues\r\n--------------------\r\nバグの報告や機能要求は GitHub の IssuesTracker へお願いします"
  },
  {
    "path": ".github/workflows/build-continuous.yml",
    "chars": 4714,
    "preview": "name: Verification\n\non:\n  pull_request:\n    branches:\n    - main\n\nenv:\n  cache-version: v1\n  LN_BUILD_FROM_CI: 1\n\njobs:\n"
  },
  {
    "path": ".github/workflows/package-continuous.yml",
    "chars": 7964,
    "preview": "name: Package\n\non:\n  push:\n    branches:\n    - main\n\nenv:\n  cache-version: v1\n  LN_BUILD_FROM_CI: 1\n\njobs:\n  #=========="
  },
  {
    "path": ".gitignore",
    "chars": 5941,
    "preview": "build/\r\nbuild_*/\r\nbuild/Lumino-*/\r\nlib/\r\nbuild.sln\r\nReleasePackage-*/\r\n.vscode\r\n.ln\r\ntmp/\r\nlumino.exe\r\nvcpkg/\r\n\r\n\r\n## Ig"
  },
  {
    "path": ".gitmodules",
    "chars": 80,
    "preview": "[submodule \"vcpkg\"]\n\tpath = vcpkg\n\turl = https://github.com/microsoft/vcpkg.git\n"
  },
  {
    "path": ".textlintrc",
    "chars": 210,
    "preview": "{\r\n    \"rules\": {\r\n        \"preset-ja-technical-writing\": true,\r\n        \"textlint-rule-spellcheck-tech-word\": true,\r\n  "
  },
  {
    "path": "CMakeLists.txt",
    "chars": 8206,
    "preview": "\ncmake_minimum_required(VERSION 3.16.0)\nproject(Lumino)\n\nset_property(GLOBAL PROPERTY USE_FOLDERS ON)\nenable_testing()\n"
  },
  {
    "path": "ImportLumino.cmake",
    "chars": 332,
    "preview": "\nset(CMAKE_CXX_STANDARD 17)\nset(CMAKE_MSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Debug>:Debug>\")\nlist(APPEND CMAKE_P"
  },
  {
    "path": "LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2017-2019 lriki\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "README.md",
    "chars": 4036,
    "preview": "Lumino\r\n==========\r\n\r\nLumino is an open source library for building interactive applications such as games and digital "
  },
  {
    "path": "assets/Distributable/assets/LineWave.fx",
    "chars": 957,
    "preview": "\nstruct VS_INPUT\n{\n    float4 Pos : POSITION;\n    float4 TexUV : TEXCOORD;\n};\n \nstruct VS_OUTPUT\n{\n    float4 Pos : SV_P"
  },
  {
    "path": "bootstrap.bat",
    "chars": 34,
    "preview": "@echo off\ndotnet run -- Bootstrap\n"
  },
  {
    "path": "build.csproj",
    "chars": 3427,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <OutputType>Exe</OutputType>\r\n    <TargetFramework>net5.0</T"
  },
  {
    "path": "cmake/LuminoConfig.cmake.in",
    "chars": 640,
    "preview": "@PACKAGE_INIT@\r\n\r\n# Load information for each installed configuration.\r\nget_filename_component(_DIR \"${CMAKE_CURRENT_LIS"
  },
  {
    "path": "docs/APIDesignPolicy.md",
    "chars": 642,
    "preview": "API design policy\r\n==========\r\n\r\nLumino (特に Core モジュール) は現在、フォーマルなプロジェクトで使用するため積極的にリファクタリングを行っています。\r\n\r\nここではリファクタリング作業のガイ"
  },
  {
    "path": "docs/CodingGuideline.md",
    "chars": 914,
    "preview": "Coding guideline\n==========\n\n実装コードについては特に規則は設けません。 [周囲のコードと一貫性を持たせるようにします。](https://google.github.io/styleguide/cppguide"
  },
  {
    "path": "docs/Development-Emscripten.md",
    "chars": 593,
    "preview": "Development on Emscripte\r\n==========\r\n\r\nDebug build\r\n----------\r\n\r\nDefault is a `Release` build. Debug information such "
  },
  {
    "path": "docs/DevelopmentTips.md",
    "chars": 4012,
    "preview": "Development Tips\r\n==========\r\n\r\nmacOS\r\n----------\r\n\r\n```\r\nbrew install git-lfs\r\ngit lfs install\r\n\r\ndotnet run -- BuildEx"
  },
  {
    "path": "docs/Doxygen/.gitignore",
    "chars": 13,
    "preview": "html/\r\nxml/\r\n"
  },
  {
    "path": "docs/Doxygen/Doxyfile",
    "chars": 108623,
    "preview": "# Doxyfile 1.8.13\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org)"
  },
  {
    "path": "docs/Doxygen/build_doc.bat",
    "chars": 134,
    "preview": "\r\ndoxygen Doxyfile\r\nxcopy theme html /s /i /y\r\ncopy ..\\Assets\\icon64.png html\\icon64.png\r\n\r\n: uEUɕ\\\r\n:CommonManual\\html\\"
  },
  {
    "path": "docs/Doxygen/theme/_tabs.css",
    "chars": 1283,
    "preview": ".tabs, .tabs2, .tabs3 {\r\n    background-image: url('tab_b.png');\r\n    width: 100%;\r\n    z-index: 101;\r\n    font-size: 13"
  },
  {
    "path": "docs/Doxygen/theme/customdoxygen.css",
    "chars": 27197,
    "preview": "/* The standard CSS for doxygen 1.8.8 */\r\n\r\n.sm a {\r\n\tcolor: rgb(96, 96, 96);\r\n}\r\n\r\n\r\n.memtitle {\r\n\tpadding: 8px;\r\n\tbord"
  },
  {
    "path": "docs/Doxygen/theme/header.html",
    "chars": 2557,
    "preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\""
  },
  {
    "path": "docs/Doxygen/theme/tab_change.js",
    "chars": 2148,
    "preview": "window.onload = function()\r\n{\r\n\tvar elements = document.getElementsByTagName(\"div\");\r\n\tfor(var i = 0; i < elements.lengt"
  },
  {
    "path": "docs/Doxygen/theme/tab_stylesheet.css",
    "chars": 887,
    "preview": "\r\n.ln_lang_tabs ul.ln_tab_menu\r\n{\r\n    list-style-type : none;\r\n    margin          : 0px;\r\n    padding         : 0px;\r\n"
  },
  {
    "path": "docs/HowToBuild-Ruby.md",
    "chars": 434,
    "preview": "How to build (Ruby package)\r\n========\r\n\r\nInstall required packages\r\n--------\r\n\r\n### Windows\r\n\r\n#### Chocolatey\r\n\r\n```\r\nc"
  },
  {
    "path": "docs/HowToBuild-Web.md",
    "chars": 198,
    "preview": "ビルド方法\r\n========\r\n\r\n```\r\ndotnet run -- BuildExternals wasm32-emscripten\r\ndotnet run -- BuildEngine_Emscripten wasm32-emsc"
  },
  {
    "path": "docs/HowToBuild.md",
    "chars": 1701,
    "preview": "How to build\r\n========\r\n\r\nInstall requirments\r\n--------\r\n\r\n### Windows\r\n\r\n#### Visual Studio\r\n\r\nVisual Studio 2019 をインスト"
  },
  {
    "path": "docs/ReleaseProcess.md",
    "chars": 596,
    "preview": "リリース手順\r\n==========\r\n\r\nバージョン番号の修正\r\n----------\r\n\r\n- src/LuminoCore/NuGet/Lumino.Core.nuspec\r\n- tools/LuminoBuild/LuminoBui"
  },
  {
    "path": "docs/Roadmap.md",
    "chars": 2429,
    "preview": "Roadmap\n====================\n\n1.0.0 の後\n--------------------\n\n- ランタイムで様々なアセットを動的生成する機能\n- 動画再生\n- 各プラットフォームへの正式対応\n- GUI 機能の"
  },
  {
    "path": "examples/Example-WebLibrary/CMakeLists.txt",
    "chars": 1896,
    "preview": "cmake_minimum_required(VERSION 3.4.1)\nproject(LuminoApp)\n\n#find_package(Lumino)\n#set(CMAKE_EXECUTABLE_SUFFIX \".html\")\nse"
  },
  {
    "path": "examples/Example-WebLibrary/PCH.h",
    "chars": 68,
    "preview": "\n#pragma once\n//#include <LuminoEngine.hpp>\n//using namespace ln;\n\n"
  },
  {
    "path": "examples/Example-WebLibrary/README.md",
    "chars": 109,
    "preview": "\n```\n./_build/tools/emsdk/emsdk activate 1.40.1\ncd ./_build/buildtrees/wasm32-emscripten\ncmake --build .\n```\n"
  },
  {
    "path": "examples/Example-WebLibrary/import_funcs.js",
    "chars": 105,
    "preview": "mergeInto(LibraryManager.library, {\n    gogo_test: function() {\n        Module[\"gogo_test\"]();\n    },\n});"
  },
  {
    "path": "examples/Example-WebLibrary/pre.js",
    "chars": 243,
    "preview": "Module['preRun'] = function () {\n/*\n    FS.createFolder(\n        '/',\n        'Assets',\n        true,\n        false);\n  "
  },
  {
    "path": "examples/Example-WebLibrary/shell_minimal.html",
    "chars": 6760,
    "preview": "<!doctype html>\n<html lang=\"en-us\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"Content-Type\" content=\"tex"
  },
  {
    "path": "examples/Example-WebLibrary/src/Main.cpp",
    "chars": 336,
    "preview": "#include <stdio.h>\n#include <emscripten/emscripten.h>\n\n//int main(int argc, char ** argv) {\n//    printf(\"Hello World\\n\""
  },
  {
    "path": "examples/Experimental/Assets/Level1.yml",
    "chars": 581,
    "preview": "object:\n  class.Level:\n    renderParams:\n      class.Object:\n        fogStartDistance: ~\n        fogColor: [0.5, 0.5, 0."
  },
  {
    "path": "examples/Experimental/Assets/Models/Box-Blue.gltf",
    "chars": 4581,
    "preview": "{\n    \"asset\" : {\n        \"generator\" : \"Khronos glTF Blender I/O v1.1.46\",\n        \"version\" : \"2.0\"\n    },\n    \"scene\""
  },
  {
    "path": "examples/Experimental/Assets/Models/Box-Red.gltf",
    "chars": 4581,
    "preview": "{\n    \"asset\" : {\n        \"generator\" : \"Khronos glTF Blender I/O v1.1.46\",\n        \"version\" : \"2.0\"\n    },\n    \"scene\""
  },
  {
    "path": "examples/Experimental/Assets/Models/Box1.yml",
    "chars": 73,
    "preview": "object:\n  class.Object:\n    filePath: asset://Assets/Models/Box-Blue.gltf"
  },
  {
    "path": "examples/Experimental/Assets/Particle.yml",
    "chars": 144,
    "preview": "object:\n  class.AssetObject:\n    emitters:\n      - class.Object:\n          maxParticles: 1000\n          spawnRate: 10000"
  },
  {
    "path": "examples/Experimental/Assets/Shader/Ring.fx",
    "chars": 1362,
    "preview": "\r\n#include <Lumino.fxh>\r\n\r\n//==============================================================================\r\n// Pixel sh"
  },
  {
    "path": "examples/Experimental/Assets/Shader/SpriteTest.hlsl",
    "chars": 990,
    "preview": "\r\n\r\nTexture2D ln_MaterialTexture : register(t0);\r\nSamplerState g_samplerState1 : register(s0);\r\n\r\nstruct VS_INPUT\r\n{\r\n  "
  },
  {
    "path": "examples/Experimental/Assets/Shader/UIShaderTest.fx",
    "chars": 4262,
    "preview": "\n#include <Lumino.fxh>\n\nconst float _Vague = 0.2;   // 0.2 の場合、あるアルファを中央値として、-0.2~0.0 の範囲をぼかす。\nfloat _Factor;\nsampler2D "
  },
  {
    "path": "examples/Experimental/Assets/Shader/simple.frag",
    "chars": 131,
    "preview": "// simple.frag\r\n\r\nuniform vec4 g_color;\r\n\r\nvoid main (void)\r\n{\r\n  gl_FragColor = g_color;//vec4(1.0, 0.0, 0.0, 1.0) + g_"
  },
  {
    "path": "examples/Experimental/Assets/Shader/simple.vert",
    "chars": 86,
    "preview": "// simple.vert\r\n\r\nattribute vec4 pos;\r\n\r\nvoid main(void)\r\n{\r\n  gl_Position = pos;\r\n}\r\n"
  },
  {
    "path": "examples/Experimental/Basic/0-Hello.cpp",
    "chars": 246,
    "preview": "#include <Lumino.hpp>\n\nclass HelloExample : public Application\n{\n    void onInit() override\n    {\n        auto text = U"
  },
  {
    "path": "examples/Experimental/Basic/0-Hello.hsp",
    "chars": 19,
    "preview": "\r\n\r\nclass\r\n{\r\n}\r\n\r\n"
  },
  {
    "path": "examples/Experimental/Basic/0-Hello.rb",
    "chars": 138,
    "preview": "require \"lumino\"\n\nclass App < Application\n  def on_init\n    text = UIText.new(\"Hello, Lumino!\")\n    text.add_into\n  end"
  },
  {
    "path": "examples/Experimental/Basic/1-Graphics.cpp",
    "chars": 316,
    "preview": "#include <Lumino.hpp>\n\nclass GraphicsBasicExample : public Application\n{\n    Ref<BoxMesh> box;\n\n    void onInit() overr"
  },
  {
    "path": "examples/Experimental/Basic/1-Graphics.hsp",
    "chars": 19,
    "preview": "\r\n\r\nclass\r\n{\r\n}\r\n\r\n"
  },
  {
    "path": "examples/Experimental/Basic/1-Graphics.rb",
    "chars": 138,
    "preview": "require \"lumino\"\n\nclass App < Application\n  def on_init\n    text = UIText.new(\"Hello, Lumino!\")\n    text.add_into\n  end"
  },
  {
    "path": "examples/Experimental/Basic/2-Entity.cpp",
    "chars": 562,
    "preview": "#include <Lumino.hpp>\n\nclass EntityBasicExample : public Application\n{\n    void onInit() override\n    {\n        Engine:"
  },
  {
    "path": "examples/Experimental/Basic/2-Entity.hsp",
    "chars": 19,
    "preview": "\r\n\r\nclass\r\n{\r\n}\r\n\r\n"
  },
  {
    "path": "examples/Experimental/Basic/2-Entity.rb",
    "chars": 484,
    "preview": "require \"lumino\"\n\nclass App < Application\n    def on_init\n        Engine.render_view.guide_grid_enabled = true\n        "
  },
  {
    "path": "examples/Experimental/Basic/2-Graphics-1.cpp",
    "chars": 313,
    "preview": "#include <Lumino.hpp>\n\nclass App_Tutorial_Graphics_1 : public Application\n{\n    void onUpdate() override\n    {\n        "
  },
  {
    "path": "examples/Experimental/Basic/2-Graphics-1.hsp",
    "chars": 19,
    "preview": "\r\n\r\nclass\r\n{\r\n}\r\n\r\n"
  },
  {
    "path": "examples/Experimental/Basic/2-Graphics-1.rb",
    "chars": 138,
    "preview": "require \"lumino\"\n\nclass App < Application\n  def on_init\n    text = UIText.new(\"Hello, Lumino!\")\n    text.add_into\n  end"
  },
  {
    "path": "examples/Experimental/Basic/lumino.ini",
    "chars": 105,
    "preview": "assetDirectory = \"C:/Proj/LN/Lumino/examples/Assets\"\r\npriorityGpuName = \"Microsoft Basic Render Driver\"\r\n"
  },
  {
    "path": "examples/Experimental/Basic/x-ObjectClass.cpp",
    "chars": 1223,
    "preview": "#include <Lumino.hpp>\n\nclass ObjectClassBasicExample : public Application\n{\n    void onInit() override\n    {\n        //"
  },
  {
    "path": "examples/Experimental/Basic/x-ObjectClass.hsp",
    "chars": 19,
    "preview": "\r\n\r\nclass\r\n{\r\n}\r\n\r\n"
  },
  {
    "path": "examples/Experimental/Basic/x-ObjectClass.rb",
    "chars": 14,
    "preview": "\n\nclass\n{\n}\n\n"
  },
  {
    "path": "examples/Experimental/CMakeLists.txt",
    "chars": 1294,
    "preview": "cmake_minimum_required (VERSION 3.0.0)\r\nproject(LuminoEngine-examples)\r\n\r\nfile(GLOB LOCAL_SOURCES_Common *.cpp *.hpp)\r\nf"
  },
  {
    "path": "examples/Experimental/Example.PCH.hpp",
    "chars": 378,
    "preview": "#pragma once\n#include <Lumino.hpp>\n\n#undef LUMINO_APP\n\nstruct Example\n{\n    std::function<Ref<Application>()> app;\n    "
  },
  {
    "path": "examples/Experimental/Features/EntityTransform.cpp",
    "chars": 679,
    "preview": "\n#include <Lumino.hpp>\n\nclass Features_EntityTransform : public Application\n{\n    Ref<BoxMesh> box;\n    Ref<TeapotMesh>"
  },
  {
    "path": "examples/Experimental/Features/ShapeEntity.cpp",
    "chars": 783,
    "preview": "\n#include <LuminoExample.hpp>\n\nclass App_ShapeEntity : public Application\n{\npublic:\n\n    void onInit() override\n    {\n "
  },
  {
    "path": "examples/Experimental/Features/Sprite.cpp",
    "chars": 263,
    "preview": "\n#include <LuminoExample.hpp>\n\nclass App_Sprite : public Application\n{\npublic:\n\n    void onInit() override\n    {\n      "
  },
  {
    "path": "examples/Experimental/LuminoExample.hpp",
    "chars": 3,
    "preview": "\r\n"
  },
  {
    "path": "examples/Experimental/Main.cpp",
    "chars": 12801,
    "preview": "/**\n * Example プロジェクトは、ユーザーにプログラムを見せる、というよりは\n * 常にソリューションに含めビルドできる状態にしておくことで、\n * ドキュメントに記載したプログラムのビルドが通らなくなるような変更に備えるのが"
  },
  {
    "path": "examples/Experimental/Tutorial_Sandbox.cpp",
    "chars": 1484,
    "preview": "\n#include \"LuminoExample.hpp\"\n\nclass App_Tutorial_Sandbox : public Application\n{\npublic:\n    App_Tutorial_Sandbox()\n   "
  },
  {
    "path": "examples/FromVcpkg/CMakeLists.txt",
    "chars": 214,
    "preview": "cmake_minimum_required (VERSION 3.20.0)\r\nproject(FromVcpkg)\r\n\r\nfind_package(Lumino CONFIG REQUIRED)\r\n\r\nadd_executable(${"
  },
  {
    "path": "examples/FromVcpkg/Main.cpp",
    "chars": 158,
    "preview": "#include <iostream>\r\n#include <LuminoCore.hpp>\r\n\r\nint main() {\r\n    ln::String str = U\"Hello, World!\";\r\n    std::cout <<"
  },
  {
    "path": "examples/FromVcpkg/README.md",
    "chars": 367,
    "preview": "FromVcpkg\r\n==========\r\n\r\nHere is an example using Lumino installed by vcpkg.\r\n\r\n```sh\r\ngit clone https://github.com/Micr"
  },
  {
    "path": "external/ImportExternalLibraries.cmake",
    "chars": 29512,
    "preview": "\nmessage(\"LN_TARGET_ARCH: ${LN_TARGET_ARCH}\")\n\n# FIXME: Emscripten と Android のビルド時、find_library が sysroot 以外を探せるように強制。\n"
  },
  {
    "path": "external/ThirdPartyLicense",
    "chars": 258,
    "preview": "\r\n### Runtime\r\n\r\n- Box2D\r\n- bullet3\r\n- freetype2\r\n- glad\r\n- glfw\r\n- glslang\r\n- libpng\r\n- noto-emoji\r\n- ogg\r\n- pcre\r\n- SP"
  },
  {
    "path": "external/custom-triplets/toolchain-wasm32-emscripten.cmake",
    "chars": 888,
    "preview": "#set(VCPKG_ENV_PASSTHROUGH EMSDK PATH)\ninclude($ENV{EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake)\n"
  },
  {
    "path": "external/custom-triplets/wasm32-emscripten.cmake",
    "chars": 975,
    "preview": "#\n# -pthread オプションを追加してビルドするための Toolchain.\n# \n# 実装は <vcpkg>/triplet/community/wasm32-emscripten.cmake をベースにしている。\n# ここで V"
  },
  {
    "path": "external/freetype2/CMakeLists.txt",
    "chars": 12566,
    "preview": "# CMakeLists.txt\n#\n# Copyright 2013-2016 by\n# David Turner, Robert Wilhelm, and Werner Lemberg.\n#\n# Written originally b"
  },
  {
    "path": "external/glad/CMakeLists.txt",
    "chars": 466,
    "preview": "cmake_minimum_required(VERSION 3.9)\r\nproject(glad)\r\n\r\nset(CMAKE_DEBUG_POSTFIX \"d\")\r\n\r\nadd_library(${PROJECT_NAME} STATIC"
  },
  {
    "path": "external/glad/Readme.md",
    "chars": 67,
    "preview": "\r\nWFl[^Ő\\[Xt@CɁAƎ CMakelists.txt ‚̂łB\r\n\r\nhttps://glad.dav1d.de/\r\n\r\n"
  },
  {
    "path": "external/glad/include/KHR/khrplatform.h",
    "chars": 10037,
    "preview": "#ifndef __khrplatform_h_\n#define __khrplatform_h_\n\n/*\n** Copyright (c) 2008-2018 The Khronos Group Inc.\n**\n** Permission"
  },
  {
    "path": "external/glad/include/glad/glad.h",
    "chars": 129250,
    "preview": "/*\n\n    OpenGL, OpenGL ES loader generated by glad 0.1.24a0 on Wed Jun 20 10:07:14 2018.\n\n    Language/Generator: C/C++\n"
  },
  {
    "path": "external/glad/src/glad.c",
    "chars": 85851,
    "preview": "/*\n\n    OpenGL, OpenGL ES loader generated by glad 0.1.24a0 on Wed Jun 20 10:07:14 2018.\n\n    Language/Generator: C/C++\n"
  },
  {
    "path": "external/libpng/CMakeLists.txt",
    "chars": 13145,
    "preview": "#================================================================================\n# This file is customized for building"
  },
  {
    "path": "external/lua/CMakeLists.txt",
    "chars": 254,
    "preview": "cmake_minimum_required(VERSION 3.1.0)\nproject(lua)\n\nadd_library(${PROJECT_NAME} onelua.c)\n\ninstall(\n    TARGETS ${PROJEC"
  },
  {
    "path": "external/nanovg/CMakeLists.txt",
    "chars": 512,
    "preview": "cmake_minimum_required(VERSION 3.1.0)\r\n\r\nset(PROJECT_NAME nanovg)\r\n\r\nproject(${PROJECT_NAME})\r\n\r\nset(SRC_DIR \"./src\")\r\nf"
  },
  {
    "path": "external/vcpkg-2021.05.12-ports/box2d/portfile.cmake",
    "chars": 853,
    "preview": "vcpkg_fail_port_install(ON_TARGET \"uwp\")\n\nvcpkg_check_linkage(ONLY_STATIC_LIBRARY)\n\nvcpkg_from_github(\n    OUT_SOURCE_PA"
  },
  {
    "path": "external/zlib/CMakeLists.txt",
    "chars": 6468,
    "preview": "#================================================================================\n# Lumino:\n# This file is customized fo"
  },
  {
    "path": "include/LuminoEditor/Plugin.hpp",
    "chars": 3469,
    "preview": "#pragma once\n\nnamespace lna {\nclass EditorContext;\nclass AssetEditorModel;\n}\n\nnamespace ln {\nclass UIFrame;\nclass Navig"
  },
  {
    "path": "lumino/FFI/CMakeLists.txt",
    "chars": 2082,
    "preview": "project(LuminoFFI)\r\n\r\n#-------------------------------------------------------------------------------\r\n# Files\r\n#------"
  },
  {
    "path": "lumino/FFI/include/LuminoFFI/Common.hpp",
    "chars": 39,
    "preview": "#pragma once\n#include \"FlatCommon.h\"\n\n"
  },
  {
    "path": "lumino/FFI/include/LuminoFFI/FFI.hpp",
    "chars": 840,
    "preview": "#pragma once\n#include \"Common.hpp\"\n\nnamespace ln {\nclass Exception;\nclass Object;\n\nclass FFI\n{\npublic:\n    static LNRes"
  },
  {
    "path": "lumino/FFI/include/LuminoFFI/FlatCommon.h",
    "chars": 6899,
    "preview": "#pragma once\n\n#if !defined(LN_FLAT_API)\n    #if defined(_WIN32) && defined(LUMINO_BUILD_DLL)\n        #define LN_FLAT_AP"
  },
  {
    "path": "lumino/FFI/include/LuminoFFI/Lumino.FlatC.generated.h",
    "chars": 377522,
    "preview": "\n#pragma once\n#include \"FlatCommon.h\"\n\nextern \"C\"\n{\n/**\n    @brief 3次元のベクトルを定義します。\n*/\nstruct LNVector3\n{\n    float x;\n "
  },
  {
    "path": "lumino/FFI/src/FFI.cpp",
    "chars": 11999,
    "preview": "#include \"Internal.hpp\"\n#include <cstdarg>\n#include <LuminoEngine/Engine/Application.hpp>\n#include <LuminoFFI/FFI.hpp>\n"
  },
  {
    "path": "lumino/FFI/src/Internal.hpp",
    "chars": 14,
    "preview": "#pragma once\r\n"
  },
  {
    "path": "lumino/FFI/src/Lumino.FlatC.generated.cpp",
    "chars": 967473,
    "preview": "#include <LuminoFFI/FFI.hpp>\n#include \"../include/LuminoFFI/Lumino.FlatC.generated.h\"\n#include <LuminoEngine/Runtime/det"
  },
  {
    "path": "lumino/FFI/src/pch.hpp",
    "chars": 542,
    "preview": "#pragma once\r\n\r\n// ビルド時間短縮のため、LuminoEngine.dll を作るときは LuminoEngine.lib をリンクして、\r\n// Static-lib 内の関数を Export している。\r\n// ただ"
  },
  {
    "path": "lumino/FFI/test/CMakeLists.txt",
    "chars": 889,
    "preview": "project(LuminoFFI-test)\r\n\r\n#-------------------------------------------------------------------------------\r\n# Files\r\n#"
  },
  {
    "path": "lumino/FFI/test/Common.hpp",
    "chars": 264,
    "preview": "#pragma once\r\n\r\n#include \"TestEnv.hpp\"\r\n\r\n// テストフィクスチャ終了時に World をクリーンアップする\r\nclass LuminoSceneTest : public ::testing::"
  },
  {
    "path": "lumino/FFI/test/Main.cpp",
    "chars": 1086,
    "preview": "\r\n#include <stdio.h>\r\n#include <LuminoPlatform/PlatformSupport.hpp>\r\n#include \"Common.hpp\"\r\n#include \"TestEnv.hpp\"\r\n\r\ni"
  },
  {
    "path": "lumino/FFI/test/PCH.hpp",
    "chars": 240,
    "preview": "#pragma once\n\n#include \"gtest/gtest.h\"\n\n#define LN_MSVC_DISABLE_LIBRARY_LINK\n#include <LuminoEngine.hpp>\n#include <Lumi"
  },
  {
    "path": "lumino/FFI/test/TestEnv.cpp",
    "chars": 4311,
    "preview": "#include \"Common.hpp\"\n#include \"../src/Engine/EngineManager.hpp\"\n#include \"../src/Scene/SceneManager.hpp\"\n#include <Lum"
  },
  {
    "path": "lumino/FFI/test/TestEnv.hpp",
    "chars": 1121,
    "preview": "#pragma once\n#include <LuminoGraphics/Testing/GraphicsTestHelper.hpp>\n\n//#define LN_UNIT_TEST_EXPERIMENTAL\n\nclass TestE"
  },
  {
    "path": "lumino/FFI/test/Test_FlatAPI.cpp",
    "chars": 7049,
    "preview": "#include \"Common.hpp\"\n#include <LuminoFFI/FFI.hpp>\n#include <LuminoFFI/Lumino.FlatC.generated.h>\n#include <LuminoEngine"
  },
  {
    "path": "lumino/Graphics/CMakeLists.txt",
    "chars": 7180,
    "preview": "project(LuminoGraphics)\r\ninclude(cmake/LuminoConfig-LuminoGraphics.cmake)\r\n\r\n#------------------------------------------"
  },
  {
    "path": "lumino/Graphics/cmake/LuminoConfig-LuminoGraphics.cmake",
    "chars": 190,
    "preview": "find_package(ZLIB REQUIRED)\r\nfind_package(libpng CONFIG REQUIRED)\r\nfind_package(nanovg CONFIG REQUIRED)\r\nfind_package(fr"
  },
  {
    "path": "lumino/Graphics/examples/Assets/simple.hlsl",
    "chars": 1286,
    "preview": "//------------------------------------------------------------------------------\n// ConstantBuffer\n//-------------------"
  },
  {
    "path": "lumino/Graphics/examples/CMakeLists.txt",
    "chars": 252,
    "preview": "\r\nset(ASSETS_DIR \"${CMAKE_CURRENT_LIST_DIR}/Assets\")\r\n\r\nadd_subdirectory(HelloTriangle)\r\nadd_subdirectory(ExternalOpenGL"
  },
  {
    "path": "lumino/Graphics/examples/Experimental-Rendering/CMakeLists.txt",
    "chars": 661,
    "preview": "project(Experimental-Rendering)\n\n#-------------------------------------------------------------------------------\n# Conf"
  },
  {
    "path": "lumino/Graphics/examples/Experimental-Rendering/Main.cpp",
    "chars": 9273,
    "preview": "#include <LuminoCore.hpp>\n#include <LuminoEngine/Engine/EngineContext2.hpp>\n#include <LuminoPlatform/PlatformModule.hpp"
  },
  {
    "path": "lumino/Graphics/examples/ExternalOpenGLContext/CMakeLists.txt",
    "chars": 2454,
    "preview": "project(Experimental_Graphics_ExternalOpenGLContext)\n\n\n#----------------------------------------------------------------"
  },
  {
    "path": "lumino/Graphics/examples/ExternalOpenGLContext/Main.cpp",
    "chars": 7712,
    "preview": "#ifdef __EMSCRIPTEN__\n#include <emscripten.h>\n#define GL_GLEXT_PROTOTYPES\n#define EGL_EGLEXT_PROTOTYPES\n#else\n#include "
  },
  {
    "path": "lumino/Graphics/examples/ExternalOpenGLContext/pre.js",
    "chars": 221,
    "preview": "// see: https://emscripten.org/docs/api_reference/Filesystem-API.html\nModule[\"preRun\"] = function () {\n    FS.createPrel"
  },
  {
    "path": "lumino/Graphics/examples/ExternalOpenGLContext/serve.py",
    "chars": 566,
    "preview": "import http.server as SimpleHTTPServer\r\nimport socketserver as SocketServer\r\n\r\nPORT = 8080\r\n\r\nclass GetHandler(\r\n       "
  },
  {
    "path": "lumino/Graphics/examples/HelloTriangle/CMakeLists.txt",
    "chars": 2299,
    "preview": "project(Experimental-Graphics-HelloTriangle)\n\n#-------------------------------------------------------------------------"
  },
  {
    "path": "lumino/Graphics/examples/HelloTriangle/Main.cpp",
    "chars": 3258,
    "preview": "#ifdef __EMSCRIPTEN__\n#include <emscripten.h>\n#endif\n#include <LuminoCore.hpp>\n#include <LuminoEngine/Engine/EngineCont"
  },
  {
    "path": "lumino/Graphics/examples/HelloTriangle/pre.js",
    "chars": 221,
    "preview": "// see: https://emscripten.org/docs/api_reference/Filesystem-API.html\nModule[\"preRun\"] = function () {\n    FS.createPrel"
  },
  {
    "path": "lumino/Graphics/examples/HelloTriangle/serve.py",
    "chars": 566,
    "preview": "import http.server as SimpleHTTPServer\r\nimport socketserver as SocketServer\r\n\r\nPORT = 8080\r\n\r\nclass GetHandler(\r\n       "
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/.gitignore",
    "chars": 22,
    "preview": "dist/\r\nnode_modules/\r\n"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/CMakeLists.txt",
    "chars": 3397,
    "preview": "project(NWJSOverlap_Native)\n\n#-------------------------------------------------------------------------------\n# Configur"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/README.md",
    "chars": 596,
    "preview": "\r\n```\r\nnpm start\r\n```\r\n\r\n\r\n\r\nNOTE\r\n----------\r\n\r\n```\r\n<script type=\"text/javascript\" src=\"dist/NWJSOverlap.js\"></script>"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/index.html",
    "chars": 490,
    "preview": "<!doctype html>\r\n<html lang=\"ja\">\r\n    <meta charset=\"utf-8\">\r\n    <head>\r\n        <title>Hello World!</title>\r\n        "
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/index.js",
    "chars": 3278,
    "preview": "\r\n\r\nlet loaded = false;\r\nlet inited = false\r\nrenderer_lib.initRuntime(\r\n    \"dist/NWJSOverlap_Native.wasm\",\r\n    () => {"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/package.json",
    "chars": 495,
    "preview": "{\n  \"name\": \"ln_nwjs\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.html\",\n  \"chromium-args\": \"--remote-d"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/renderer_lib/import_funcs.js",
    "chars": 105,
    "preview": "mergeInto(LibraryManager.library, {\n    gogo_test: function() {\n        Module[\"gogo_test\"]();\n    },\n});"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/renderer_lib/pre.js",
    "chars": 226,
    "preview": "// see: https://emscripten.org/docs/api_reference/Filesystem-API.html\nModule[\"preRun\"] = function () {\n    FS.createPrel"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/renderer_lib/renderer_lib.cpp",
    "chars": 3636,
    "preview": "#include <stdio.h>\n#include <emscripten/emscripten.h>\n#include <GL/gl.h>\n\n#include <LuminoCore.hpp>\n#include <LuminoEngi"
  },
  {
    "path": "lumino/Graphics/examples/NWJSOverlap/renderer_lib/renderer_lib.js",
    "chars": 1910,
    "preview": "/**\r\n * Emscripte が生成する Module (このプロジェクトでは NWJSOverlap_Native) がサポートするのは、\r\n * - .wasm の読み込み (Module[\"_関数名\"] で C 関数にアクセスで"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/Animation.hpp",
    "chars": 208,
    "preview": "\n#pragma once\n#include \"Common.hpp\"\n//#include \"AnimationController.hpp\"\n//#include \"../Scene/Component.hpp\"\n\nnamespace"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationClip.hpp",
    "chars": 3000,
    "preview": "\n#pragma once\n#include <LuminoEngine/Base/Promise.hpp>\n#include <LuminoEngine/Asset/AssetObject.hpp>\n#include \"Common.h"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationClock.hpp",
    "chars": 841,
    "preview": "\r\n#pragma once\r\n#include \"Common.hpp\"\r\n\r\nnamespace ln {\r\nclass AnimationTrack;\r\n\r\n/**  */\r\n// Context に管理され、経過時間が通知される。"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationContext.hpp",
    "chars": 401,
    "preview": "\r\n#pragma once\r\n#include \"Common.hpp\"\r\n\r\nnamespace ln {\r\nclass AnimationClock;\r\n\r\nclass AnimationContext\r\n\t: public Obj"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationCurve.hpp",
    "chars": 3365,
    "preview": "\r\n#pragma once\r\n#include \"Common.hpp\"\r\n#include \"EasingFunctions.hpp\"\r\n\r\nnamespace ln {\r\n\r\n/** 時間の経過をとおして値を評価します。アニメーショ"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationMixer.hpp",
    "chars": 10440,
    "preview": "\n#pragma once\n#include \"Common.hpp\"\n#include \"AnimationTrack.hpp\"\n#include \"AnimationClip.hpp\"\n\nnamespace ln {\nnamespac"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/AnimationTrack.hpp",
    "chars": 5365,
    "preview": "\r\n#pragma once\r\n#include \"Common.hpp\"\r\n\r\nnamespace ln {\r\nclass AnimationCurve;\r\nclass AnimationState;\r\n\r\n/** 補間されたアニメーシ"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/Animator.hpp",
    "chars": 833,
    "preview": "\n#pragma once\n#include \"Common.hpp\"\n#include \"AnimationMixer.hpp\"\n//#include \"../Scene/Component.hpp\"\n\nnamespace ln {\n\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/Common.hpp",
    "chars": 1540,
    "preview": "\r\n#pragma once\r\n#include \"../Mesh/Common.hpp\"\r\n\r\nnamespace ln {\r\nclass AnimationClip;\r\n\r\n/** アニメーションの繰り返し方法 */\r\nLN_ENUM"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/EasingFunctions.hpp",
    "chars": 11710,
    "preview": "\n#pragma once\n#include <cmath>\n#include \"Common.hpp\"\n\nnamespace ln {\n\ntypedef std::function<float(float, float, float, "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/Tween.hpp",
    "chars": 98,
    "preview": "\n#pragma once\n#include \"Common.hpp\"\n\nnamespace ln {\n\nclass Tween\n{\npublic:\n};\n\n} // namespace ln\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Animation/WeightsAnimationTrack.hpp",
    "chars": 889,
    "preview": "\r\n#pragma once\r\n#include \"AnimationTrack.hpp\"\r\n\r\nnamespace ln {\r\n//\r\n///**  */\r\n//class WeightsAnimationTrack\r\n//\t: pub"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Bitmap/Bitmap.hpp",
    "chars": 6779,
    "preview": "#pragma once\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\n#include \"Common.hpp\"\n\nnamespace ln {\nclass Bitmap2D;\n\nn"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Bitmap/Common.hpp",
    "chars": 336,
    "preview": "\n#pragma once\n\nnamespace ln {\nclass Bitmap2D;\n\n/** ピクセルフォーマット */\nLN_ENUM()\nenum class PixelFormat : uint8_t\n{\n\t/** Unkn"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Bitmap/detail/D3DCompilerAPI.hpp",
    "chars": 904,
    "preview": "// Copyright (c) 2019 lriki. Distributed under the MIT license.\n#pragma once\n#include <d3d12.h>\n#include <dxgi1_6.h>\n#i"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Common.hpp",
    "chars": 90,
    "preview": "#pragma once\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\n#include \"GPU/Common.hpp\"\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Font/Common.hpp",
    "chars": 1110,
    "preview": "#pragma once\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\n\nnamespace ln {\nclass Font;\n\n/** テキストの配置方法 */\nenum class"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Font/Font.hpp",
    "chars": 3063,
    "preview": "#pragma once\r\n#include \"Common.hpp\"\r\n\r\nnamespace ln {\r\nnamespace detail {\r\nclass FontManager;\r\nclass FontCore;\r\nclass F"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Font/detail/FontCore.hpp",
    "chars": 3513,
    "preview": "#pragma once\r\n\r\nnamespace ln {\r\nclass Bitmap2D;\r\nnamespace detail {\r\nclass FontManager;\r\n\r\n// https://www.freetype.org/"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Font/detail/FontManager.hpp",
    "chars": 4679,
    "preview": "#pragma once\r\n#include <list>\r\n#include <LuminoEngine/Engine/EngineContext2.hpp>\r\n#include <LuminoEngine/Engine/Module."
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Font/detail/TextLayoutEngine.hpp",
    "chars": 4128,
    "preview": "#pragma once\r\n#include \"FontCore.hpp\"\r\n\r\nnamespace ln {\r\nclass Font;\r\nnamespace detail {\r\nclass FontCore;\r\nclass FlexTe"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/CommandQueue.hpp",
    "chars": 403,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n\nnamespace ln {\nnamespace detail {\nclass "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/Common.hpp",
    "chars": 1423,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include <LuminoEngine/Base/Promise.hpp>\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/ConstantBuffer.hpp",
    "chars": 952,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include \"GraphicsR"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/DepthBuffer.hpp",
    "chars": 1444,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"GraphicsResource.hpp\"\n\nnamespac"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/Graphics.hpp",
    "chars": 536,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n\n#include \"Common.hpp\"\n\nnamespace ln {\ncl"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/GraphicsCommandBuffer.hpp",
    "chars": 7974,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include <LuminoEngine/Graphics/RenderSta"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/GraphicsContext.hpp",
    "chars": 1022,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\r\n#pragma once\r\n#if 0\r\n#include <LuminoEngine/Graphics/"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/GraphicsExtensionOpenGL.hpp",
    "chars": 301,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n\nnamespace ln {\n\nclass OpenGLIntegration "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/GraphicsResource.hpp",
    "chars": 1631,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n\nnamespace ln {\nnam"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/IndexBuffer.hpp",
    "chars": 3709,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include \"GraphicsR"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/RHI.hpp",
    "chars": 185,
    "preview": "#pragma once\n#include <LuminoEngine/Engine/Module.hpp>\n#include <LuminoPlatform/Common.hpp>\n#include \"Common.hpp\"\n\nname"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/RenderPass.hpp",
    "chars": 4532,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"GraphicsResource.hpp\"\n#include "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/SamplerState.hpp",
    "chars": 2926,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include \"GraphicsR"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/Shader.hpp",
    "chars": 20665,
    "preview": "// Copyright (c) 2019 lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include <LuminoEngi"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/ShaderDescriptor.hpp",
    "chars": 6304,
    "preview": "#pragma once\n#include <LuminoGraphics/Common.hpp>\n#include \"Shader.hpp\"\n\nnamespace ln {\n\nclass ShaderDescriptor : publi"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/ShaderInterfaceFramework.hpp",
    "chars": 11271,
    "preview": "// Copyright (c) 2019 lriki. Distributed under the MIT license.\r\n#pragma once\r\n#include \"Common.hpp\"\r\n#include <LuminoE"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/ShaderParameterValue.hpp",
    "chars": 3102,
    "preview": "#pragma once\n#include \"Common.hpp\"\n#include \"Shader.hpp\"\n\nnamespace ln {\nnamespace detail {\n\n\t\nclass ShaderParameterVal"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/SwapChain.hpp",
    "chars": 2483,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\r\n#pragma once\r\n\r\n#include \"Common.hpp\"\r\n#include \"Grap"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/Texture.hpp",
    "chars": 9811,
    "preview": "#pragma once\r\n#include <LuminoEngine/Asset/AssetObject.hpp>\r\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\r\n#includ"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/VertexBuffer.hpp",
    "chars": 2785,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include \"GraphicsR"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/VertexLayout.hpp",
    "chars": 1620,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n#include \"Common.hpp\"\n#include \"GraphicsR"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/VulkanIntegration.hpp",
    "chars": 536,
    "preview": "// Copyright (c) 2019+ lriki. Distributed under the MIT license.\n#pragma once\n\nnamespace ln {\n\nclass VulkanIntegration\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/GPU/detail/RenderingCommandList.hpp",
    "chars": 14057,
    "preview": "#pragma once\r\n#include <mutex>\r\n//#include \"LinearAllocator.hpp\"\r\n\r\nnamespace ln {\r\nclass GraphicsCommandList;\r\nnamespa"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/AnimationController.hpp",
    "chars": 2496,
    "preview": "\n#pragma once\n#include \"../Animation/AnimationMixer.hpp\"\n\nnamespace ln {\nclass SkinnedMeshModel;\n\n/** スキンメッシュアニメーションにおい"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/Common.hpp",
    "chars": 2298,
    "preview": "#pragma once\n#include <LuminoGraphics/Common.hpp>\n\nnamespace ln {\nclass MeshImportSettings;\nclass MeshPrimitive;\nclass "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/MeshModeEntity.hpp",
    "chars": 4098,
    "preview": "#pragma once\n#include \"SkinnedMeshModel.hpp\"\n\nnamespace ln {\nclass MeshModel;\nnamespace detail {\nclass MeshModelInstanc"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/MeshModel.hpp",
    "chars": 8501,
    "preview": "#pragma once\n#include \"Common.hpp\"\n#include \"MeshPrimitive.hpp\"\n\nnamespace ln {\nclass MeshSkeleton;\nclass MeshModel;\ncl"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/MeshModelFactory.hpp",
    "chars": 668,
    "preview": "#pragma once\n#include \"Common.hpp\"\n\nnamespace ln {\nnamespace detail {\nclass MeshGenerater;\n\nclass MeshModelFactory\n{\npu"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/MeshPrimitive.hpp",
    "chars": 12245,
    "preview": "#pragma once\n#include <LuminoGraphics/Common.hpp>\n#include <LuminoGraphics/Rendering/Vertex.hpp>\n#include \"../Rendering"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/MeshProcessing.hpp",
    "chars": 1539,
    "preview": "#pragma once\n\nnamespace ln {\nnamespace detail {\nclass LinearAllocator;\nclass MeshGenerater;\n}\nclass MeshPrimitive;\n\ncla"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Mesh/SkinnedMeshModel.hpp",
    "chars": 1489,
    "preview": "\n#pragma once\n#include \"../Animation/AnimationMixer.hpp\"\n#include \"Common.hpp\"\n#include \"MeshModel.hpp\"\n\nnamespace ln {"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/RHIModule.hpp",
    "chars": 640,
    "preview": "#pragma once\n#include <LuminoEngine/Engine/Module.hpp>\n#include <LuminoPlatform/Common.hpp>\n#include \"GPU/Common.hpp\"\n\n"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/CanvasContext.hpp",
    "chars": 182,
    "preview": "#pragma once\n#include \"Common.hpp\"\n\nnamespace ln {\n\nclass CanvasContext\n\t: public Object\n{\npublic:\n\nLN_PROTECTED_INTERN"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/CommandList.hpp",
    "chars": 8248,
    "preview": "#pragma once\r\n#include <LuminoEngine/Graphics/RenderState.hpp>\r\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\r\n#inc"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/Common.hpp",
    "chars": 15842,
    "preview": "#pragma once\r\n#include \"../GPU/Common.hpp\"\r\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\r\n#include <LuminoEngine/G"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/Drawing.hpp",
    "chars": 967,
    "preview": "\n#pragma once\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\n#include \"Common.hpp\"\n\nnamespace ln {\nclass Texture;\n\ne"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/FrameRectRenderer.hpp",
    "chars": 428,
    "preview": "#pragma once\n#include \"../Common.hpp\"\n#include \"../Drawing.hpp\"\n\nnamespace ln {\n\nclass FrameRectRenderer : public Objec"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/MeshRenderer.hpp",
    "chars": 696,
    "preview": "#pragma once\n#include \"../Kanata/KBatchProxy.hpp\"\n#include \"../../Mesh/Common.hpp\"\n#include \"../Common.hpp\"\n\nnamespace "
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/PrimitiveMeshRenderer.hpp",
    "chars": 2185,
    "preview": "#pragma once\n#include \"../Common.hpp\"\n\nnamespace ln {\n\nclass PrimitiveMeshRenderer : public Object {\npublic:\n    static"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/ScreenRectangleRenderer.hpp",
    "chars": 486,
    "preview": "#pragma once\n#include \"../Common.hpp\"\n\nnamespace ln {\nnamespace kanata {\n\nclass ScreenRectangleRenderFeature : public U"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/ShapesRenderer.hpp",
    "chars": 639,
    "preview": "#pragma once\n#include \"../Common.hpp\"\n#include \"../../../../../src/Rendering/RenderFeature/ShapesRenderFeature.hpp\"\n\nna"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/SpriteRenderer.hpp",
    "chars": 1302,
    "preview": "\n#pragma once\n#include \"../Common.hpp\"\n\nnamespace ln {\n//namespace detail {\n//class DrawSpriteSFBatchProxy;\n//}\n\n/**\n *"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/FeatureRenderer/SpriteTextRenderer.hpp",
    "chars": 2132,
    "preview": "#pragma once\n#include <LuminoGraphics/Font/Font.hpp>\n#include \"../../../../../../Font/src/TextLayoutEngine.hpp\"\n#includ"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/InstancedMeshesModel.hpp",
    "chars": 1339,
    "preview": "\r\n#pragma once\r\n#include <LuminoEngine/Graphics/ColorStructs.hpp>\r\n#include <LuminoGraphics/Common.hpp>\r\n#include \"../M"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/Kanata/Common.hpp",
    "chars": 749,
    "preview": "#pragma once\n#include <LuminoGraphics/Common.hpp>\n#include \"../Common.hpp\"\n\nnamespace ln {\nclass Material;\n\nnamespace k"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/Kanata/KBatch.hpp",
    "chars": 1507,
    "preview": "#pragma once\n#include \"Common.hpp\"\n#include \"KPipelineState.hpp\"\n\nnamespace ln {\nnamespace kanata {\n\nstruct BatchElemen"
  },
  {
    "path": "lumino/Graphics/include/LuminoGraphics/Rendering/Kanata/KBatchList.hpp",
    "chars": 4609,
    "preview": "#pragma once\n#include <LuminoCore/Base/LinearAllocator.hpp>\n#include <LuminoGraphics/GPU/ShaderInterfaceFramework.hpp>\n"
  }
]

// ... and 2194 more files (download for full content)

About this extraction

This page contains the full source code of the LuminoEngine/Lumino GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2394 files (46.8 MB), approximately 12.4M tokens, and a symbol index with 21602 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!