lumino 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +7 -0
  2. data/Tools/EngineResources/NotoColorEmoji.ttf +0 -0
  3. data/Tools/EngineResources/README.md +4 -0
  4. data/Tools/ProjectTemplates/cpp-cmake/CMakeLists.txt +14 -0
  5. data/Tools/ProjectTemplates/cpp-cmake/assets/LineWave.fx +57 -0
  6. data/Tools/ProjectTemplates/cpp-cmake/assets/icon256.png +0 -0
  7. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/CMakeLists.txt +20 -0
  8. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/Common.h +4 -0
  9. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/EditorMain.cpp +10 -0
  10. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/EditorMain.h +16 -0
  11. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/PCH.cpp +1 -0
  12. data/Tools/ProjectTemplates/cpp-cmake/projects/Editor/PCH.h +9 -0
  13. data/Tools/ProjectTemplates/cpp-cmake/projects/Game/CMakeLists.txt +16 -0
  14. data/Tools/ProjectTemplates/cpp-cmake/projects/Game/PCH.cpp +1 -0
  15. data/Tools/ProjectTemplates/cpp-cmake/projects/Game/PCH.h +8 -0
  16. data/Tools/ProjectTemplates/cpp-cmake/projects/Runtime/CMakeLists.txt +15 -0
  17. data/Tools/ProjectTemplates/cpp-cmake/projects/Runtime/Main.Windows.cpp +29 -0
  18. data/Tools/ProjectTemplates/cpp-cmake/projects/Runtime/PCH.cpp +1 -0
  19. data/Tools/ProjectTemplates/cpp-cmake/projects/Runtime/PCH.h +9 -0
  20. data/Tools/ProjectTemplates/cpp-cmake/src/App.cpp +18 -0
  21. data/Tools/ProjectTemplates/cpp-cmake/src/App.h +12 -0
  22. data/Tools/ProjectTemplates/cpp-default/LuminoApp.sln +25 -0
  23. data/Tools/ProjectTemplates/cpp-default/assets/LineWave.fx +57 -0
  24. data/Tools/ProjectTemplates/cpp-default/assets/icon256.png +0 -0
  25. data/Tools/ProjectTemplates/cpp-default/assets/picture1.jpg +0 -0
  26. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/CMakeLists.txt +64 -0
  27. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/build.gradle +43 -0
  28. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/proguard-rules.pro +21 -0
  29. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/AndroidManifest.xml +24 -0
  30. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/cpp/PCH.cpp +1 -0
  31. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/cpp/PCH.h +4 -0
  32. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/cpp/native-lib.cpp +114 -0
  33. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
  34. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  35. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/layout/activity_main.xml +19 -0
  36. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  37. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  38. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  39. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  40. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  41. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  42. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  43. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  44. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  45. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  46. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  47. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  48. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/values/colors.xml +6 -0
  49. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/values/strings.xml +3 -0
  50. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/app/src/main/res/values/styles.xml +11 -0
  51. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/build.gradle +27 -0
  52. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/gradle.properties +13 -0
  53. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/gradle/wrapper/gradle-wrapper.jar +0 -0
  54. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/gradle/wrapper/gradle-wrapper.properties +6 -0
  55. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/gradlew +172 -0
  56. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/gradlew.bat +84 -0
  57. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Android/settings.gradle +1 -0
  58. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Web/CMakeLists.txt +27 -0
  59. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Web/PCH.cpp +1 -0
  60. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Web/PCH.h +5 -0
  61. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Web/pre.js +13 -0
  62. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/Launch.cpp +30 -0
  63. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/LuminoApp.ico +0 -0
  64. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/LuminoApp.rc +0 -0
  65. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/LuminoApp.vcxproj +117 -0
  66. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/LuminoApp.vcxproj.filters +41 -0
  67. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/PCH.cpp +1 -0
  68. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/PCH.h +6 -0
  69. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/Resource.h +30 -0
  70. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/Resource.rc +0 -0
  71. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/app.ico +0 -0
  72. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/small.ico +0 -0
  73. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.Windows/targetver.h +6 -0
  74. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS.xcodeproj/project.pbxproj +450 -0
  75. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  76. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  77. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/AppDelegate.h +11 -0
  78. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/AppDelegate.mm +70 -0
  79. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json +221 -0
  80. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Assets.xcassets/ColorMap.textureset/Contents.json +17 -0
  81. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Assets.xcassets/ColorMap.textureset/Universal.mipmapset/ColorMap.png +0 -0
  82. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Assets.xcassets/ColorMap.textureset/Universal.mipmapset/Contents.json +12 -0
  83. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Assets.xcassets/Contents.json +6 -0
  84. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Base.lproj/LaunchScreen.storyboard +25 -0
  85. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Base.lproj/Main.storyboard +28 -0
  86. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/GameViewController.h +6 -0
  87. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/GameViewController.mm +26 -0
  88. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Info.plist +50 -0
  89. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Prefix.pch +7 -0
  90. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Renderer.h +9 -0
  91. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/Renderer.mm +52 -0
  92. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/RootGLKView.h +13 -0
  93. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/RootGLKView.mm +10 -0
  94. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.iOS/LuminoApp.iOS/main.mm +9 -0
  95. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS.xcodeproj/project.pbxproj +454 -0
  96. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  97. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  98. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Assets.xcassets/AppIcon.appiconset/Contents.json +58 -0
  99. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Assets.xcassets/ColorMap.textureset/Contents.json +17 -0
  100. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Assets.xcassets/ColorMap.textureset/Universal.mipmapset/ColorMap.png +0 -0
  101. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Assets.xcassets/ColorMap.textureset/Universal.mipmapset/Contents.json +12 -0
  102. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Assets.xcassets/Contents.json +6 -0
  103. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Info.plist +32 -0
  104. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/LuminoApp_macOS.entitlements +10 -0
  105. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/Prefix.pch +8 -0
  106. data/Tools/ProjectTemplates/cpp-default/projects/LuminoApp.macOS/LuminoApp.macOS/main.mm +22 -0
  107. data/Tools/ProjectTemplates/cpp-default/src/App.cpp +16 -0
  108. data/Tools/ProjectTemplates/ruby-default/assets/icon256.png +0 -0
  109. data/Tools/ProjectTemplates/ruby-default/assets/picture1.jpg +0 -0
  110. data/Tools/ProjectTemplates/ruby-default/main.rb +12 -0
  111. data/Tools/lumino-rb.exe +0 -0
  112. data/Tools/vswhere.exe +0 -0
  113. data/bin/console +14 -0
  114. data/bin/setup +8 -0
  115. data/exe/lumino-rb +11 -0
  116. data/ext/FlatC.generated.h +2239 -0
  117. data/ext/FlatCommon.h +176 -0
  118. data/ext/Lumino.RubyExt.generated.cpp +8833 -0
  119. data/ext/LuminoEngine.dll +0 -0
  120. data/ext/LuminoRubyRuntimeManager.cpp +439 -0
  121. data/ext/LuminoRubyRuntimeManager.h +92 -0
  122. data/ext/extconf.rb +9 -0
  123. data/lib/lumino.rb +41 -0
  124. data/lib/lumino/cli.rb +10 -0
  125. data/lib/lumino/version.rb +3 -0
  126. data/test/test_engine.rb +93 -0
  127. data/test/test_struct.rb +44 -0
  128. metadata +214 -0
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:LuminoApp.macOS.xcodeproj">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
@@ -0,0 +1,58 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "idiom" : "mac",
5
+ "size" : "16x16",
6
+ "scale" : "1x"
7
+ },
8
+ {
9
+ "idiom" : "mac",
10
+ "size" : "16x16",
11
+ "scale" : "2x"
12
+ },
13
+ {
14
+ "idiom" : "mac",
15
+ "size" : "32x32",
16
+ "scale" : "1x"
17
+ },
18
+ {
19
+ "idiom" : "mac",
20
+ "size" : "32x32",
21
+ "scale" : "2x"
22
+ },
23
+ {
24
+ "idiom" : "mac",
25
+ "size" : "128x128",
26
+ "scale" : "1x"
27
+ },
28
+ {
29
+ "idiom" : "mac",
30
+ "size" : "128x128",
31
+ "scale" : "2x"
32
+ },
33
+ {
34
+ "idiom" : "mac",
35
+ "size" : "256x256",
36
+ "scale" : "1x"
37
+ },
38
+ {
39
+ "idiom" : "mac",
40
+ "size" : "256x256",
41
+ "scale" : "2x"
42
+ },
43
+ {
44
+ "idiom" : "mac",
45
+ "size" : "512x512",
46
+ "scale" : "1x"
47
+ },
48
+ {
49
+ "idiom" : "mac",
50
+ "size" : "512x512",
51
+ "scale" : "2x"
52
+ }
53
+ ],
54
+ "info" : {
55
+ "version" : 1,
56
+ "author" : "xcode"
57
+ }
58
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "info" : {
3
+ "version" : 1,
4
+ "author" : "xcode"
5
+ },
6
+ "properties" : {
7
+ "origin" : "bottom-left",
8
+ "interpretation" : "non-premultiplied-colors"
9
+ },
10
+ "textures" : [
11
+ {
12
+ "idiom" : "universal",
13
+ "filename" : "Universal.mipmapset"
14
+ }
15
+ ]
16
+ }
17
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "info" : {
3
+ "version" : 1,
4
+ "author" : "xcode"
5
+ },
6
+ "levels" : [
7
+ {
8
+ "filename" : "ColorMap.png",
9
+ "mipmap-level" : "base"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>$(EXECUTABLE_NAME)</string>
9
+ <key>CFBundleIconFile</key>
10
+ <string></string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1</string>
23
+ <key>LSMinimumSystemVersion</key>
24
+ <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
25
+ <key>NSHumanReadableCopyright</key>
26
+ <string>Copyright © 2019 Lumino. All rights reserved.</string>
27
+ <key>NSMainStoryboardFile</key>
28
+ <string>Main</string>
29
+ <key>NSPrincipalClass</key>
30
+ <string>NSApplication</string>
31
+ </dict>
32
+ </plist>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>com.apple.security.app-sandbox</key>
6
+ <true/>
7
+ <key>com.apple.security.files.user-selected.read-only</key>
8
+ <true/>
9
+ </dict>
10
+ </plist>
@@ -0,0 +1,8 @@
1
+ #pragma once
2
+ #include <LuminoEngine.hpp>
3
+
4
+ #ifndef __OBJC__
5
+ using namespace ln;
6
+ #endif
7
+
8
+
@@ -0,0 +1,22 @@
1
+
2
+ #include <LuminoEngine.hpp>
3
+ #include <LuminoEngine/Platform/CocoaPlatformInterface.hpp>
4
+ #import <AppKit/AppKit.h>
5
+
6
+ int main(int argc, const char * argv[])
7
+ {
8
+ ln::GlobalLogger::addStdErrAdapter();
9
+
10
+ #if defined(LN_DEBUG) && defined(LN_XCODE_PROJECT_DIR)
11
+ auto projectRoot = ln::Path(ln::String::fromCString(LN_XCODE_PROJECT_DIR)).parent().parent();
12
+ ln::EngineSettings::addAssetDirectory(ln::Path::combine(projectRoot, u"Assets"));
13
+ ln::EngineSettings::addAssetDirectory(ln::Path::combine(projectRoot, u".ln", u"Assets"));
14
+ #endif
15
+
16
+ NSBundle* bundle = [NSBundle mainBundle];
17
+ NSString* assetsPath = [bundle pathForResource:@"Assets" ofType:@"lca"];
18
+ ln::EngineSettings::addAssetArchive(
19
+ ln::String::fromStdString(std::string([assetsPath UTF8String])));
20
+
21
+ return ln::CocoaPlatformInterface::Main();
22
+ }
@@ -0,0 +1,16 @@
1
+ #include <Lumino.hpp>
2
+
3
+ class HelloApp : public Application
4
+ {
5
+ void onStart() override
6
+ {
7
+ auto text = UITextBlock::create(u"Hello, Lumino!");
8
+ }
9
+
10
+ void onUpdate() override
11
+ {
12
+ }
13
+ };
14
+
15
+ LUMINO_APP(HelloApp);
16
+
@@ -0,0 +1,12 @@
1
+ require "lumino"
2
+
3
+ class App < Application
4
+ def on_init
5
+ text = UITextBlock.new("Hello, Lumino!")
6
+ end
7
+
8
+ def on_update
9
+ end
10
+ end
11
+
12
+ App.new.run
Binary file
Binary file
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "lumino"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # exe は gemspec の spec.executables に直接指定することはできない。
4
+ # ここに指定できるのは ruby script file だけで、もし exe を指定してしまうと、拡張子が .exe である起動用の ruby script file が、
5
+ # ruby の bin フォルダ内に生成されてしまう。
6
+ #(その結果、windows で "lumino-rb" と打つと中身がテキストの lumino-rb.exe を実行ファイルとして起動してしまい、エラーになる)
7
+ # 回避として、exe は普通のファイルとしてパッケージに含めておいて、それを起動するスクリプト (このファイル) を中継して起動するようにしてみる。
8
+
9
+ cmd = __dir__ + "/../Tools/lumino-rb.exe"
10
+ system(cmd + ' ' + ARGV.join(' '))
11
+
@@ -0,0 +1,2239 @@
1
+ 
2
+ #pragma once
3
+ #include "FlatCommon.h"
4
+
5
+ extern "C"
6
+ {
7
+ /**
8
+ @brief 3次元のベクトルを定義します。
9
+ */
10
+ struct LnVector3
11
+ {
12
+ float x;
13
+ float y;
14
+ float z;
15
+ };
16
+
17
+ /**
18
+ @brief 4次元のベクトルを定義します。
19
+ */
20
+ struct LnVector4
21
+ {
22
+ float x;
23
+ float y;
24
+ float z;
25
+ float w;
26
+ };
27
+
28
+ /**
29
+ @brief クォータニオンを定義します。
30
+ @details このクォータニオンクラスの乗算の順番は左から右です。つまり、q1 * q2 は、先に q1、次に q2 の回転を適用する事と同じです。
31
+ この乗算順序は数学的な四元数の定義からは逆行している点に注意してください。
32
+ */
33
+ struct LnQuaternion
34
+ {
35
+ float x;
36
+ float y;
37
+ float z;
38
+ float w;
39
+ };
40
+
41
+ /**
42
+ @brief 4x4 の行列を定義します。
43
+ @details 行列は数学的な定義とメモリレイアウト共に行優先 (column-major) です。
44
+ このクラスは似た機能の static 関数とインスタンス関数があります。例えば makeRotationX(static 関数) と rotateX(インスタンス関数) です。前者は新しい行列を作成して返すのに対し、後者は現在の行列を変更します。例えば、以下の m1 と m2 は同じ結果になります。
45
+ ~~~Matrix m1 = Matrix::makeRotationX(0.1) * Matrix::makeRotationY(0.2) * Matrix::makeRotationZ(0.3);
46
+ Matrix m2;m2.rotateX(0.1);m2.rotateY(0.2);m2.rotateZ(0.3);~~~
47
+ なお、後者は行列の生成と乗算をまとめて行うように最適化されており、高速に動作します。
48
+ */
49
+ struct LnMatrix
50
+ {
51
+ LnVector4 row0;
52
+ LnVector4 row1;
53
+ LnVector4 row2;
54
+ LnVector4 row3;
55
+ };
56
+
57
+ /**
58
+ @brief 各要素を 0.0~1.0 の範囲で表す RGBA カラーを定義します。
59
+ */
60
+ struct LnColor
61
+ {
62
+ float r;
63
+ float g;
64
+ float b;
65
+ float a;
66
+ };
67
+
68
+ /**
69
+ @brief 2次元上の点を表します。
70
+ */
71
+ struct LnPoint
72
+ {
73
+ float x;
74
+ float y;
75
+ };
76
+
77
+ /**
78
+ @brief 2次元上のオブジェクトサイズを表します。
79
+ */
80
+ struct LnSize
81
+ {
82
+ float width;
83
+ float height;
84
+ };
85
+
86
+ /**
87
+ @brief 2次元の矩形を表すクラスです。
88
+ */
89
+ struct LnRect
90
+ {
91
+ float x;
92
+ float y;
93
+ float width;
94
+ float height;
95
+ };
96
+
97
+ /**
98
+ @brief 四角形の枠の太さを表すクラスです。
99
+ */
100
+ struct LnThickness
101
+ {
102
+ float left;
103
+ float top;
104
+ float right;
105
+ float bottom;
106
+ };
107
+
108
+
109
+
110
+ /**
111
+ @brief マウスボタン
112
+ */
113
+ typedef enum tagLnMouseButtons
114
+ {
115
+ /**
116
+ @brief 無効または押されていないことを示す
117
+ */
118
+ LN_MOUSE_BUTTONS_NONE = 0,
119
+
120
+ /**
121
+ @brief 左ボタン
122
+ */
123
+ LN_MOUSE_BUTTONS_LEFT = 1,
124
+
125
+ /**
126
+ @brief 右ボタン
127
+ */
128
+ LN_MOUSE_BUTTONS_RIGHT = 2,
129
+
130
+ /**
131
+ @brief 中央ボタン
132
+ */
133
+ LN_MOUSE_BUTTONS_MIDDLE = 3,
134
+
135
+ /**
136
+ @brief 拡張ボタン1
137
+ */
138
+ LN_MOUSE_BUTTONS_X1 = 4,
139
+
140
+ /**
141
+ @brief 拡張ボタン2
142
+ */
143
+ LN_MOUSE_BUTTONS_X2 = 5,
144
+
145
+ } LnMouseButtons;
146
+
147
+ /**
148
+ @brief ピクセルフォーマット
149
+ */
150
+ typedef enum tagLnPixelFormat
151
+ {
152
+ /**
153
+ @brief Unknown
154
+ */
155
+ LN_PIXEL_FORMAT_UNKNOWN = 0,
156
+
157
+ /**
158
+ @brief 8bit アルファ値のみのフォーマット
159
+ */
160
+ LN_PIXEL_FORMAT_A8 = 1,
161
+
162
+ /**
163
+ @brief RGBA オーダーの各要素 8bit フォーマット
164
+ */
165
+ LN_PIXEL_FORMAT_RGBA8 = 2,
166
+
167
+ /**
168
+ @brief RGB オーダーの各要素 8bit フォーマット
169
+ */
170
+ LN_PIXEL_FORMAT_RGB8 = 3,
171
+
172
+ /**
173
+ @brief RGBA オーダーの各要素 32bit 浮動小数点フォーマット
174
+ */
175
+ LN_PIXEL_FORMAT_RGBA32F = 4,
176
+
177
+ } LnPixelFormat;
178
+
179
+ /**
180
+ @brief テクスチャのピクセルフォーマット
181
+ */
182
+ typedef enum tagLnTextureFormat
183
+ {
184
+ /**
185
+ @brief Unknown
186
+ */
187
+ LN_TEXTURE_FORMAT_UNKNOWN = 0,
188
+
189
+ /**
190
+ @brief RGBA オーダーの各要素 8bit フォーマット
191
+ */
192
+ LN_TEXTURE_FORMAT_RGBA8 = 1,
193
+
194
+ /**
195
+ @brief RGB オーダーの各要素 8bit フォーマット
196
+ */
197
+ LN_TEXTURE_FORMAT_RGB8 = 2,
198
+
199
+ /**
200
+ @brief RGBA オーダーの各要素 16bit 浮動小数点フォーマット
201
+ */
202
+ LN_TEXTURE_FORMAT_RGBA16F = 3,
203
+
204
+ /**
205
+ @brief RGBA オーダーの各要素 32bit 浮動小数点フォーマット
206
+ */
207
+ LN_TEXTURE_FORMAT_RGBA32F = 4,
208
+
209
+ /**
210
+ @brief 16bit 浮動小数点フォーマット
211
+ */
212
+ LN_TEXTURE_FORMAT_R16F = 5,
213
+
214
+ /**
215
+ @brief 32bit 浮動小数点フォーマット
216
+ */
217
+ LN_TEXTURE_FORMAT_R32F = 6,
218
+
219
+ /**
220
+ @brief 32bit の符号なし整数フォーマット
221
+ */
222
+ LN_TEXTURE_FORMAT_R32U = 7,
223
+
224
+ } LnTextureFormat;
225
+
226
+ /**
227
+ @brief 深度バッファのフォーマット
228
+ */
229
+ typedef enum tagLnDepthBufferFormat
230
+ {
231
+ /**
232
+ @brief S8 32 ビット
233
+ */
234
+ LN_DEPTH_BUFFER_FORMAT_D24S8 = 0,
235
+
236
+ } LnDepthBufferFormat;
237
+
238
+ /**
239
+ @brief 縦方向の表示位置を示します。
240
+ */
241
+ typedef enum tagLnVAlignment
242
+ {
243
+ /**
244
+ @brief 子要素を、親のレイアウト スロットの上端に揃えて配置します。
245
+ */
246
+ LN_VALIGNMENT_TOP = 0,
247
+
248
+ /**
249
+ @brief 子要素を、親のレイアウト スロットの中央に揃えて配置します。
250
+ */
251
+ LN_VALIGNMENT_CENTER = 1,
252
+
253
+ /**
254
+ @brief 子要素を、親のレイアウト スロットの下端に揃えて配置します。
255
+ */
256
+ LN_VALIGNMENT_BOTTOM = 2,
257
+
258
+ /**
259
+ @brief 子要素を、親のレイアウト スロット全体に引き伸ばします。
260
+ */
261
+ LN_VALIGNMENT_STRETCH = 3,
262
+
263
+ } LnVAlignment;
264
+
265
+ /**
266
+ @brief 横方向の表示位置を示します。
267
+ */
268
+ typedef enum tagLnHAlignment
269
+ {
270
+ /**
271
+ @brief 子要素を、親のレイアウト スロットの左側に揃えて配置します。
272
+ */
273
+ LN_HALIGNMENT_LEFT = 0,
274
+
275
+ /**
276
+ @brief 子要素を、親のレイアウト スロットの中央に揃えて配置します。
277
+ */
278
+ LN_HALIGNMENT_CENTER = 1,
279
+
280
+ /**
281
+ @brief 子要素を、親のレイアウト スロットの右側に揃えて配置します。
282
+ */
283
+ LN_HALIGNMENT_RIGHT = 2,
284
+
285
+ /**
286
+ @brief 子要素を、親のレイアウト スロット全体に引き伸ばします。
287
+ */
288
+ LN_HALIGNMENT_STRETCH = 3,
289
+
290
+ } LnHAlignment;
291
+
292
+
293
+ typedef LnResult(*LnPromiseFailureDelegateCallback)(LnHandle promisefailuredelegate);
294
+ typedef LnResult(*LnZVTestDelegate1Callback)(LnHandle zvtestdelegate1, int p1);
295
+ typedef LnResult(*LnZVTestDelegate2Callback)(LnHandle zvtestdelegate2, int p1, int p2, int* outReturn);
296
+ typedef LnResult(*LnZVTestDelegate3Callback)(LnHandle zvtestdelegate3, LnHandle p1);
297
+ typedef LnResult(*LnZVTestEventHandler1Callback)(LnHandle zvtesteventhandler1);
298
+ typedef LnResult(*LnZVTestEventHandler2Callback)(LnHandle zvtesteventhandler2, LnHandle p1);
299
+ typedef LnResult(*LnTestDelegateCallback)(LnHandle testdelegate, int p1, int* outReturn);
300
+ typedef LnResult(*LnUIGeneralEventHandlerCallback)(LnHandle uigeneraleventhandler, LnHandle p1);
301
+ typedef LnResult(*LnUIEventHandlerCallback)(LnHandle uieventhandler);
302
+
303
+
304
+ //==============================================================================
305
+ // ln::Vector3
306
+
307
+ /**
308
+ @brief すべての要素を 0.0 に設定してインスタンスを初期化します。
309
+ @param[in] vector3 : instance
310
+ */
311
+ LN_FLAT_API LnResult LnVector3_SetZeros(LnVector3* vector3);
312
+
313
+
314
+ /**
315
+ @brief 指定した値を使用してインスタンスを初期化します。
316
+ @param[in] vector3 : instance
317
+ */
318
+ LN_FLAT_API LnResult LnVector3_Set(LnVector3* vector3, float x, float y, float z);
319
+
320
+
321
+ /**
322
+ @brief ベクトルの長さを返します。
323
+ @param[in] vector3 : instance
324
+ @param[out] outReturn : instance.
325
+ */
326
+ LN_FLAT_API LnResult LnVector3_Length(const LnVector3* vector3, float* outReturn);
327
+
328
+
329
+ /**
330
+ @brief ベクトルの長さの 2 乗を返します。
331
+ @param[in] vector3 : instance
332
+ @param[out] outReturn : instance.
333
+ */
334
+ LN_FLAT_API LnResult LnVector3_LengthSquared(const LnVector3* vector3, float* outReturn);
335
+
336
+
337
+ /**
338
+ @brief このベクトルを正規化します。
339
+ @param[in] vector3 : instance
340
+ @details ベクトルの長さが 0 の場合は正規化を行いません。
341
+ */
342
+ LN_FLAT_API LnResult LnVector3_MutatingNormalize(LnVector3* vector3);
343
+
344
+
345
+ /**
346
+ @brief 指定ベクトルを正規化したベクトルを返します。
347
+ @param[in] x : 処理の基になるベクトルの X 要
348
+ @param[in] y : 処理の基になるベクトルの Y 要
349
+ @param[in] z : 処理の基になるベクトルの Z 要
350
+ @param[out] outReturn : instance.
351
+ @return 正規化されたベクトル
352
+ */
353
+ LN_FLAT_API LnResult LnVector3_NormalizeXYZ(float x, float y, float z, LnVector3* outReturn);
354
+
355
+
356
+ /**
357
+ @brief 指定ベクトルを正規化したベクトルを返します。
358
+ @param[in] vec : 処理の基になるベクトル
359
+ @param[out] outReturn : instance.
360
+ @return 正規化されたベクトル
361
+ */
362
+ LN_FLAT_API LnResult LnVector3_Normalize(const LnVector3* vec, LnVector3* outReturn);
363
+
364
+
365
+ //==============================================================================
366
+ // ln::Vector4
367
+
368
+ /**
369
+ @brief すべての要素を 0.0 に設定してインスタンスを初期化します。
370
+ @param[in] vector4 : instance
371
+ */
372
+ LN_FLAT_API LnResult LnVector4_SetZeros(LnVector4* vector4);
373
+
374
+
375
+ /**
376
+ @brief 指定した値を使用してインスタンスを初期化します。
377
+ @param[in] vector4 : instance
378
+ */
379
+ LN_FLAT_API LnResult LnVector4_Set(LnVector4* vector4, float x, float y, float z, float w);
380
+
381
+
382
+ //==============================================================================
383
+ // ln::Quaternion
384
+
385
+ /**
386
+ @brief 単位クォータニオンを設定してインスタンスを初期化します。
387
+ @param[in] quaternion : instance
388
+ */
389
+ LN_FLAT_API LnResult LnQuaternion_SetZeros(LnQuaternion* quaternion);
390
+
391
+
392
+ /**
393
+ @brief 指定した値を使用してインスタンスを初期化します。
394
+ @param[in] quaternion : instance
395
+ */
396
+ LN_FLAT_API LnResult LnQuaternion_Set(LnQuaternion* quaternion, float x, float y, float z, float w);
397
+
398
+
399
+ /**
400
+ @brief 回転軸と回転角度を指定してインスタンスを初期化します。
401
+ @param[in] quaternion : instance
402
+ @param[in] axis : 回転軸
403
+ @param[in] r : 回転角度 (ラジアン単位)
404
+ @details axis が単位ベクトルでなければ正規化してから計算を行います。
405
+ */
406
+ LN_FLAT_API LnResult LnQuaternion_SetFromAxis(LnQuaternion* quaternion, const LnVector3* axis, float r);
407
+
408
+
409
+ //==============================================================================
410
+ // ln::Matrix
411
+
412
+ /**
413
+ @brief 単位行列を設定してインスタンスを初期化します。
414
+ @param[in] matrix : instance
415
+ */
416
+ LN_FLAT_API LnResult LnMatrix_SetZeros(LnMatrix* matrix);
417
+
418
+
419
+ /**
420
+ @brief 各要素を指定してインスタンスを初期化します。
421
+ @param[in] matrix : instance
422
+ */
423
+ LN_FLAT_API LnResult LnMatrix_Set(LnMatrix* matrix, float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44);
424
+
425
+
426
+ //==============================================================================
427
+ // ln::Color
428
+
429
+ /**
430
+ @brief すべての要素を 0.0 で初期化します。
431
+ @param[in] color : instance
432
+ */
433
+ LN_FLAT_API LnResult LnColor_SetZeros(LnColor* color);
434
+
435
+
436
+ /**
437
+ @brief 各要素を指定して初期化します。
438
+ @param[in] color : instance
439
+ */
440
+ LN_FLAT_API LnResult LnColor_Set(LnColor* color, float r_, float g_, float b_, float a_);
441
+
442
+
443
+ //==============================================================================
444
+ // ln::Point
445
+
446
+ /**
447
+ @brief すべての要素を 0 で初期化します。
448
+ @param[in] point : instance
449
+ */
450
+ LN_FLAT_API LnResult LnPoint_SetZeros(LnPoint* point);
451
+
452
+
453
+ /**
454
+ @brief 位置を指定して初期化します。
455
+ @param[in] point : instance
456
+ */
457
+ LN_FLAT_API LnResult LnPoint_Set(LnPoint* point, float x_, float y_);
458
+
459
+
460
+ //==============================================================================
461
+ // ln::Size
462
+
463
+ /**
464
+ @brief すべての要素を 0 で初期化します。
465
+ @param[in] size : instance
466
+ */
467
+ LN_FLAT_API LnResult LnSize_SetZeros(LnSize* size);
468
+
469
+
470
+ /**
471
+ @brief 幅と高さを指定して初期化します。
472
+ @param[in] size : instance
473
+ */
474
+ LN_FLAT_API LnResult LnSize_Set(LnSize* size, float w, float h);
475
+
476
+
477
+ //==============================================================================
478
+ // ln::Rect
479
+
480
+ /**
481
+ @brief すべての要素を 0 で初期化します。
482
+ @param[in] rect : instance
483
+ */
484
+ LN_FLAT_API LnResult LnRect_SetZeros(LnRect* rect);
485
+
486
+
487
+ /**
488
+ @brief 位置とサイズを指定して初期化します。
489
+ @param[in] rect : instance
490
+ */
491
+ LN_FLAT_API LnResult LnRect_Set(LnRect* rect, float x, float y, float width, float height);
492
+
493
+
494
+ /**
495
+ @brief 左辺の x 軸の値を取得します。
496
+ @param[in] rect : instance
497
+ @param[out] outReturn : instance.
498
+ */
499
+ LN_FLAT_API LnResult LnRect_GetLeft(const LnRect* rect, float* outReturn);
500
+
501
+
502
+ /**
503
+ @brief 幅と高さを設定します。
504
+ @param[in] rect : instance
505
+ */
506
+ LN_FLAT_API LnResult LnRect_SetSize(LnRect* rect, const LnSize* size);
507
+
508
+
509
+ /**
510
+ @brief 幅と高さを取得します。
511
+ @param[in] rect : instance
512
+ @param[out] outReturn : instance.
513
+ */
514
+ LN_FLAT_API LnResult LnRect_GetSize(const LnRect* rect, LnSize* outReturn);
515
+
516
+
517
+ //==============================================================================
518
+ // ln::Thickness
519
+
520
+ /**
521
+ @brief すべての要素を 0 で初期化します。
522
+ @param[in] thickness : instance
523
+ */
524
+ LN_FLAT_API LnResult LnThickness_SetZeros(LnThickness* thickness);
525
+
526
+
527
+ /**
528
+ @brief 各辺の幅を指定して初期化します。
529
+ @param[in] thickness : instance
530
+ */
531
+ LN_FLAT_API LnResult LnThickness_Set(LnThickness* thickness, float left_, float top_, float right_, float bottom_);
532
+
533
+
534
+
535
+
536
+ //==============================================================================
537
+ // ln::Object
538
+
539
+ typedef LnResult(*LnObject_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
540
+ LN_FLAT_API LnResult LnObject_OnSerialize_SetOverrideCallback(LnObject_OnSerialize_OverrideCallback callback);
541
+ LN_FLAT_API LnResult LnObject_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
542
+
543
+ extern LN_FLAT_API int LnObject_GetTypeInfoId();
544
+ LN_FLAT_API void LnObject_SetManagedTypeInfoId(int64_t id);
545
+
546
+ //==============================================================================
547
+ // ln::EventConnection
548
+
549
+ typedef LnResult(*LnEventConnection_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
550
+ LN_FLAT_API LnResult LnEventConnection_OnSerialize_SetOverrideCallback(LnEventConnection_OnSerialize_OverrideCallback callback);
551
+ LN_FLAT_API LnResult LnEventConnection_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
552
+
553
+ extern LN_FLAT_API int LnEventConnection_GetTypeInfoId();
554
+ LN_FLAT_API void LnEventConnection_SetManagedTypeInfoId(int64_t id);
555
+
556
+ //==============================================================================
557
+ // ln::PromiseFailureDelegate
558
+
559
+ LN_FLAT_API LnResult LnPromiseFailureDelegate_Create(LnPromiseFailureDelegateCallback callback, LnHandle* outDelegate);
560
+ LN_FLAT_API void LnPromiseFailureDelegate_SetManagedTypeInfoId(int64_t id);
561
+
562
+ //==============================================================================
563
+ // ln::ZVTestDelegate1
564
+
565
+ LN_FLAT_API LnResult LnZVTestDelegate1_Create(LnZVTestDelegate1Callback callback, LnHandle* outDelegate);
566
+ LN_FLAT_API void LnZVTestDelegate1_SetManagedTypeInfoId(int64_t id);
567
+
568
+ //==============================================================================
569
+ // ln::ZVTestDelegate2
570
+
571
+ LN_FLAT_API LnResult LnZVTestDelegate2_Create(LnZVTestDelegate2Callback callback, LnHandle* outDelegate);
572
+ LN_FLAT_API void LnZVTestDelegate2_SetManagedTypeInfoId(int64_t id);
573
+
574
+ //==============================================================================
575
+ // ln::ZVTestDelegate3
576
+
577
+ LN_FLAT_API LnResult LnZVTestDelegate3_Create(LnZVTestDelegate3Callback callback, LnHandle* outDelegate);
578
+ LN_FLAT_API void LnZVTestDelegate3_SetManagedTypeInfoId(int64_t id);
579
+
580
+ //==============================================================================
581
+ // ln::ZVTestEventHandler1
582
+
583
+ LN_FLAT_API LnResult LnZVTestEventHandler1_Create(LnZVTestEventHandler1Callback callback, LnHandle* outDelegate);
584
+ LN_FLAT_API void LnZVTestEventHandler1_SetManagedTypeInfoId(int64_t id);
585
+
586
+ //==============================================================================
587
+ // ln::ZVTestEventHandler2
588
+
589
+ LN_FLAT_API LnResult LnZVTestEventHandler2_Create(LnZVTestEventHandler2Callback callback, LnHandle* outDelegate);
590
+ LN_FLAT_API void LnZVTestEventHandler2_SetManagedTypeInfoId(int64_t id);
591
+
592
+ //==============================================================================
593
+ // ln::ZVTestPromise1
594
+
595
+ /**
596
+ @brief
597
+ @param[in] zvtestpromise1 : instance
598
+ */
599
+ LN_FLAT_API LnResult LnZVTestPromise1_ThenWith(LnHandle zvtestpromise1, LnHandle callback);
600
+
601
+ /**
602
+ @brief
603
+ @param[in] zvtestpromise1 : instance
604
+ */
605
+ LN_FLAT_API LnResult LnZVTestPromise1_CatchWith(LnHandle zvtestpromise1, LnHandle callback);
606
+
607
+ extern LN_FLAT_API int LnZVTestPromise1_GetTypeInfoId();
608
+ LN_FLAT_API void LnZVTestPromise1_SetManagedTypeInfoId(int64_t id);
609
+
610
+ //==============================================================================
611
+ // ln::ZVTestPromise2
612
+
613
+ /**
614
+ @brief
615
+ @param[in] zvtestpromise2 : instance
616
+ */
617
+ LN_FLAT_API LnResult LnZVTestPromise2_ThenWith(LnHandle zvtestpromise2, LnHandle callback);
618
+
619
+ /**
620
+ @brief
621
+ @param[in] zvtestpromise2 : instance
622
+ */
623
+ LN_FLAT_API LnResult LnZVTestPromise2_CatchWith(LnHandle zvtestpromise2, LnHandle callback);
624
+
625
+ extern LN_FLAT_API int LnZVTestPromise2_GetTypeInfoId();
626
+ LN_FLAT_API void LnZVTestPromise2_SetManagedTypeInfoId(int64_t id);
627
+
628
+ //==============================================================================
629
+ // ln::ZVTestClass1
630
+
631
+ /**
632
+ @brief setTestDelegate1 method.
633
+ @param[in] zvtestclass1 : instance
634
+ */
635
+ LN_FLAT_API LnResult LnZVTestClass1_SetTestDelegate1(LnHandle zvtestclass1, LnHandle value);
636
+
637
+ /**
638
+ @brief setTestDelegate2 method.
639
+ @param[in] zvtestclass1 : instance
640
+ */
641
+ LN_FLAT_API LnResult LnZVTestClass1_SetTestDelegate2(LnHandle zvtestclass1, LnHandle value);
642
+
643
+ /**
644
+ @brief setTestDelegate3 method.
645
+ @param[in] zvtestclass1 : instance
646
+ */
647
+ LN_FLAT_API LnResult LnZVTestClass1_SetTestDelegate3(LnHandle zvtestclass1, LnHandle value);
648
+
649
+ /**
650
+ @brief callTestDelegate1 method.
651
+ @param[in] zvtestclass1 : instance
652
+ */
653
+ LN_FLAT_API LnResult LnZVTestClass1_CallTestDelegate1(LnHandle zvtestclass1, int a);
654
+
655
+ /**
656
+ @brief callTestDelegate2 method.
657
+ @param[in] zvtestclass1 : instance
658
+ @param[out] outReturn : instance.
659
+ */
660
+ LN_FLAT_API LnResult LnZVTestClass1_CallTestDelegate2(LnHandle zvtestclass1, int a, int b, int* outReturn);
661
+
662
+ /**
663
+ @brief callTestDelegate3 method. (create object in internal)
664
+ @param[in] zvtestclass1 : instance
665
+ */
666
+ LN_FLAT_API LnResult LnZVTestClass1_CallTestDelegate3(LnHandle zvtestclass1);
667
+
668
+ /**
669
+ @brief Promise test method. (static)
670
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
671
+ */
672
+ LN_FLAT_API LnResult LnZVTestClass1_LoadAsync(const LnChar* filePath, LnHandle* outReturn);
673
+ LN_FLAT_API LnResult LnZVTestClass1_LoadAsyncA(const char* filePath, LnHandle* outReturn);
674
+
675
+ /**
676
+ @brief Promise test method. (instance)
677
+ @param[in] zvtestclass1 : instance
678
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
679
+ */
680
+ LN_FLAT_API LnResult LnZVTestClass1_ExecuteAsync(LnHandle zvtestclass1, LnHandle* outReturn);
681
+
682
+ /**
683
+ @brief Promise test method.
684
+ @param[in] zvtestclass1 : instance
685
+ @param[out] outReturn : instance.
686
+ */
687
+ LN_FLAT_API LnResult LnZVTestClass1_GetFilePath(LnHandle zvtestclass1, const LnChar** outReturn);
688
+ LN_FLAT_API LnResult LnZVTestClass1_GetFilePathA(LnHandle zvtestclass1, const char** outReturn);
689
+
690
+ /**
691
+ @brief connectOnEvent1 method.
692
+ @param[in] zvtestclass1 : instance
693
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
694
+ */
695
+ LN_FLAT_API LnResult LnZVTestClass1_ConnectOnEvent1(LnHandle zvtestclass1, LnHandle handler, LnHandle* outReturn);
696
+
697
+ /**
698
+ @brief raiseEvent1 method.
699
+ @param[in] zvtestclass1 : instance
700
+ */
701
+ LN_FLAT_API LnResult LnZVTestClass1_RaiseEvent1(LnHandle zvtestclass1);
702
+
703
+ /**
704
+ @brief connectOnEvent2 method.
705
+ @param[in] zvtestclass1 : instance
706
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
707
+ */
708
+ LN_FLAT_API LnResult LnZVTestClass1_ConnectOnEvent2(LnHandle zvtestclass1, LnHandle handler, LnHandle* outReturn);
709
+
710
+ /**
711
+ @brief raiseEvent2 method.
712
+ @param[in] zvtestclass1 : instance
713
+ */
714
+ LN_FLAT_API LnResult LnZVTestClass1_RaiseEvent2(LnHandle zvtestclass1);
715
+
716
+ /**
717
+ @brief init method.
718
+ @param[out] outZVTestClass1 : instance.
719
+ */
720
+ LN_FLAT_API LnResult LnZVTestClass1_Create(LnHandle* outZVTestClass1);
721
+
722
+ typedef LnResult(*LnZVTestClass1_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
723
+ LN_FLAT_API LnResult LnZVTestClass1_OnSerialize_SetOverrideCallback(LnZVTestClass1_OnSerialize_OverrideCallback callback);
724
+ LN_FLAT_API LnResult LnZVTestClass1_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
725
+
726
+ extern LN_FLAT_API int LnZVTestClass1_GetTypeInfoId();
727
+ LN_FLAT_API void LnZVTestClass1_SetManagedTypeInfoId(int64_t id);
728
+
729
+ //==============================================================================
730
+ // ln::ZVTestEventArgs1
731
+
732
+ /**
733
+ @brief value method.
734
+ @param[in] zvtesteventargs1 : instance
735
+ @param[out] outReturn : instance.
736
+ */
737
+ LN_FLAT_API LnResult LnZVTestEventArgs1_GetValue(LnHandle zvtesteventargs1, int* outReturn);
738
+
739
+ /**
740
+ @brief init method.
741
+ @param[out] outZVTestEventArgs1 : instance.
742
+ */
743
+ LN_FLAT_API LnResult LnZVTestEventArgs1_Create(LnHandle* outZVTestEventArgs1);
744
+
745
+ /**
746
+ @brief init method.
747
+ @param[out] outZVTestEventArgs1 : instance.
748
+ */
749
+ LN_FLAT_API LnResult LnZVTestEventArgs1_CreateWithValue(int v, LnHandle* outZVTestEventArgs1);
750
+
751
+ typedef LnResult(*LnZVTestEventArgs1_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
752
+ LN_FLAT_API LnResult LnZVTestEventArgs1_OnSerialize_SetOverrideCallback(LnZVTestEventArgs1_OnSerialize_OverrideCallback callback);
753
+ LN_FLAT_API LnResult LnZVTestEventArgs1_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
754
+
755
+ extern LN_FLAT_API int LnZVTestEventArgs1_GetTypeInfoId();
756
+ LN_FLAT_API void LnZVTestEventArgs1_SetManagedTypeInfoId(int64_t id);
757
+
758
+ //==============================================================================
759
+ // ln::Serializer
760
+
761
+ /**
762
+ @brief write
763
+ @param[in] serializer : instance
764
+ */
765
+ LN_FLAT_API LnResult LnSerializer_WriteBool(LnHandle serializer, const LnChar* name, LnBool value);
766
+ LN_FLAT_API LnResult LnSerializer_WriteBoolA(LnHandle serializer, const char* name, LnBool value);
767
+
768
+ /**
769
+ @brief write
770
+ @param[in] serializer : instance
771
+ */
772
+ LN_FLAT_API LnResult LnSerializer_WriteInt(LnHandle serializer, const LnChar* name, int value);
773
+ LN_FLAT_API LnResult LnSerializer_WriteIntA(LnHandle serializer, const char* name, int value);
774
+
775
+ /**
776
+ @brief write
777
+ @param[in] serializer : instance
778
+ */
779
+ LN_FLAT_API LnResult LnSerializer_WriteFloat(LnHandle serializer, const LnChar* name, float value);
780
+ LN_FLAT_API LnResult LnSerializer_WriteFloatA(LnHandle serializer, const char* name, float value);
781
+
782
+ /**
783
+ @brief write
784
+ @param[in] serializer : instance
785
+ */
786
+ LN_FLAT_API LnResult LnSerializer_WriteString(LnHandle serializer, const LnChar* name, const LnChar* value);
787
+ LN_FLAT_API LnResult LnSerializer_WriteStringA(LnHandle serializer, const char* name, const char* value);
788
+
789
+ /**
790
+ @brief write
791
+ @param[in] serializer : instance
792
+ */
793
+ LN_FLAT_API LnResult LnSerializer_WriteObject(LnHandle serializer, const LnChar* name, LnHandle value);
794
+ LN_FLAT_API LnResult LnSerializer_WriteObjectA(LnHandle serializer, const char* name, LnHandle value);
795
+
796
+ /**
797
+ @brief read
798
+ @param[in] serializer : instance
799
+ @param[out] outReturn : instance.
800
+ */
801
+ LN_FLAT_API LnResult LnSerializer_ReadBool(LnHandle serializer, const LnChar* name, LnBool* outReturn);
802
+ LN_FLAT_API LnResult LnSerializer_ReadBoolA(LnHandle serializer, const char* name, LnBool* outReturn);
803
+
804
+ /**
805
+ @brief read
806
+ @param[in] serializer : instance
807
+ @param[out] outReturn : instance.
808
+ */
809
+ LN_FLAT_API LnResult LnSerializer_ReadInt(LnHandle serializer, const LnChar* name, int* outReturn);
810
+ LN_FLAT_API LnResult LnSerializer_ReadIntA(LnHandle serializer, const char* name, int* outReturn);
811
+
812
+ /**
813
+ @brief read
814
+ @param[in] serializer : instance
815
+ @param[out] outReturn : instance.
816
+ */
817
+ LN_FLAT_API LnResult LnSerializer_ReadFloat(LnHandle serializer, const LnChar* name, float* outReturn);
818
+ LN_FLAT_API LnResult LnSerializer_ReadFloatA(LnHandle serializer, const char* name, float* outReturn);
819
+
820
+ /**
821
+ @brief read
822
+ @param[in] serializer : instance
823
+ @param[out] outReturn : instance.
824
+ */
825
+ LN_FLAT_API LnResult LnSerializer_ReadString(LnHandle serializer, const LnChar* name, const LnChar** outReturn);
826
+ LN_FLAT_API LnResult LnSerializer_ReadStringA(LnHandle serializer, const char* name, const char** outReturn);
827
+
828
+ /**
829
+ @brief read
830
+ @param[in] serializer : instance
831
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
832
+ */
833
+ LN_FLAT_API LnResult LnSerializer_ReadObject(LnHandle serializer, const LnChar* name, LnHandle* outReturn);
834
+ LN_FLAT_API LnResult LnSerializer_ReadObjectA(LnHandle serializer, const char* name, LnHandle* outReturn);
835
+
836
+ /**
837
+ @brief serialize
838
+ @param[out] outReturn : instance.
839
+ */
840
+ LN_FLAT_API LnResult LnSerializer_Serialize(LnHandle value, const LnChar* basePath, const LnChar** outReturn);
841
+ LN_FLAT_API LnResult LnSerializer_SerializeA(LnHandle value, const char* basePath, const char** outReturn);
842
+
843
+ /**
844
+ @brief serialize
845
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
846
+ */
847
+ LN_FLAT_API LnResult LnSerializer_Deserialize(const LnChar* str, const LnChar* basePath, LnHandle* outReturn);
848
+ LN_FLAT_API LnResult LnSerializer_DeserializeA(const char* str, const char* basePath, LnHandle* outReturn);
849
+
850
+ typedef LnResult(*LnSerializer_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
851
+ LN_FLAT_API LnResult LnSerializer_OnSerialize_SetOverrideCallback(LnSerializer_OnSerialize_OverrideCallback callback);
852
+ LN_FLAT_API LnResult LnSerializer_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
853
+
854
+ extern LN_FLAT_API int LnSerializer_GetTypeInfoId();
855
+ LN_FLAT_API void LnSerializer_SetManagedTypeInfoId(int64_t id);
856
+
857
+ //==============================================================================
858
+ // ln::AssetModel
859
+
860
+ /**
861
+ @brief target
862
+ @param[in] assetmodel : instance
863
+ @param[out] outReturn : instance.
864
+ */
865
+ LN_FLAT_API LnResult LnAssetModel_Target(LnHandle assetmodel, LnHandle* outReturn);
866
+
867
+ /**
868
+ @brief init
869
+ @param[out] outAssetModel : instance.
870
+ */
871
+ LN_FLAT_API LnResult LnAssetModel_Create(LnHandle target, LnHandle* outAssetModel);
872
+
873
+ typedef LnResult(*LnAssetModel_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
874
+ LN_FLAT_API LnResult LnAssetModel_OnSerialize_SetOverrideCallback(LnAssetModel_OnSerialize_OverrideCallback callback);
875
+ LN_FLAT_API LnResult LnAssetModel_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
876
+
877
+ extern LN_FLAT_API int LnAssetModel_GetTypeInfoId();
878
+ LN_FLAT_API void LnAssetModel_SetManagedTypeInfoId(int64_t id);
879
+
880
+ //==============================================================================
881
+ // ln::Assets
882
+
883
+ /**
884
+ @brief Internal
885
+ */
886
+ LN_FLAT_API LnResult LnAssets_SaveAssetToLocalFile(LnHandle asset, const LnChar* filePath);
887
+ LN_FLAT_API LnResult LnAssets_SaveAssetToLocalFileA(LnHandle asset, const char* filePath);
888
+
889
+ /**
890
+ @brief Internal
891
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
892
+ */
893
+ LN_FLAT_API LnResult LnAssets_LoadAssetFromLocalFile(const LnChar* filePath, LnHandle* outReturn);
894
+ LN_FLAT_API LnResult LnAssets_LoadAssetFromLocalFileA(const char* filePath, LnHandle* outReturn);
895
+
896
+ /**
897
+ @brief 指定したアセットファイルを読み込み、オブジェクト生成します。
898
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
899
+ @details ファイルの拡張子は .lnasset です。ただし、filePath に指定する値は拡張子を省略可能です。
900
+ */
901
+ LN_FLAT_API LnResult LnAssets_LoadAsset(const LnChar* filePath, LnHandle* outReturn);
902
+ LN_FLAT_API LnResult LnAssets_LoadAssetA(const char* filePath, LnHandle* outReturn);
903
+
904
+
905
+ //==============================================================================
906
+ // ln::GraphicsResource
907
+
908
+ typedef LnResult(*LnGraphicsResource_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
909
+ LN_FLAT_API LnResult LnGraphicsResource_OnSerialize_SetOverrideCallback(LnGraphicsResource_OnSerialize_OverrideCallback callback);
910
+ LN_FLAT_API LnResult LnGraphicsResource_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
911
+
912
+ extern LN_FLAT_API int LnGraphicsResource_GetTypeInfoId();
913
+ LN_FLAT_API void LnGraphicsResource_SetManagedTypeInfoId(int64_t id);
914
+
915
+ //==============================================================================
916
+ // ln::Texture
917
+
918
+ typedef LnResult(*LnTexture_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
919
+ LN_FLAT_API LnResult LnTexture_OnSerialize_SetOverrideCallback(LnTexture_OnSerialize_OverrideCallback callback);
920
+ LN_FLAT_API LnResult LnTexture_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
921
+
922
+ extern LN_FLAT_API int LnTexture_GetTypeInfoId();
923
+ LN_FLAT_API void LnTexture_SetManagedTypeInfoId(int64_t id);
924
+
925
+ //==============================================================================
926
+ // ln::Texture2D
927
+
928
+ /**
929
+ @brief アセットからテクスチャを読み込みます。
930
+ @param[in] filePath : 読み込むファイルのパス
931
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
932
+ @details サポートしているフォーマットは次の通りです。PNG(.png), JPG(.jpg), TGA(.tga), BMP(.bmp), GIF(.gif)
933
+ */
934
+ LN_FLAT_API LnResult LnTexture2D_Load(const LnChar* filePath, LnHandle* outReturn);
935
+ LN_FLAT_API LnResult LnTexture2D_LoadA(const char* filePath, LnHandle* outReturn);
936
+
937
+ /**
938
+ @brief loadEmoji
939
+ @param[in] code : xxxx
940
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
941
+ */
942
+ LN_FLAT_API LnResult LnTexture2D_LoadEmoji(const LnChar* code, LnHandle* outReturn);
943
+ LN_FLAT_API LnResult LnTexture2D_LoadEmojiA(const char* code, LnHandle* outReturn);
944
+
945
+ /**
946
+ @brief テクスチャを作成します。ピクセルフォーマットは RGBA8 です。
947
+ @param[in] width : 幅 (px 単位)
948
+ @param[in] height : 高さ (px 単位)
949
+ @param[out] outTexture2D : instance.
950
+ @return 作成されたテクスチャ
951
+ */
952
+ LN_FLAT_API LnResult LnTexture2D_Create(int width, int height, LnHandle* outTexture2D);
953
+
954
+ /**
955
+ @brief テクスチャを作成します。
956
+ @param[in] width : 幅 (px 単位)
957
+ @param[in] height : 高さ (px 単位)
958
+ @param[in] format : ピクセルフォーマット
959
+ @param[out] outTexture2D : instance.
960
+ */
961
+ LN_FLAT_API LnResult LnTexture2D_CreateWithFormat(int width, int height, LnTextureFormat format, LnHandle* outTexture2D);
962
+
963
+ /**
964
+ @brief ローカルのファイルを読み込み、テクスチャを作成します。
965
+ @param[in] filePath : 読み込むファイルのパス
966
+ @param[in] format : ピクセルフォーマット
967
+ @param[out] outTexture2D : instance.
968
+ @details このメソッドは TextureImporter のユーティリティです。
969
+ */
970
+ LN_FLAT_API LnResult LnTexture2D_CreateFromFile(const LnChar* filePath, LnTextureFormat format, LnHandle* outTexture2D);
971
+ LN_FLAT_API LnResult LnTexture2D_CreateFromFileA(const char* filePath, LnTextureFormat format, LnHandle* outTexture2D);
972
+
973
+ typedef LnResult(*LnTexture2D_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
974
+ LN_FLAT_API LnResult LnTexture2D_OnSerialize_SetOverrideCallback(LnTexture2D_OnSerialize_OverrideCallback callback);
975
+ LN_FLAT_API LnResult LnTexture2D_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
976
+
977
+ extern LN_FLAT_API int LnTexture2D_GetTypeInfoId();
978
+ LN_FLAT_API void LnTexture2D_SetManagedTypeInfoId(int64_t id);
979
+
980
+ //==============================================================================
981
+ // ln::RenderView
982
+
983
+ typedef LnResult(*LnRenderView_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
984
+ LN_FLAT_API LnResult LnRenderView_OnSerialize_SetOverrideCallback(LnRenderView_OnSerialize_OverrideCallback callback);
985
+ LN_FLAT_API LnResult LnRenderView_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
986
+
987
+ extern LN_FLAT_API int LnRenderView_GetTypeInfoId();
988
+ LN_FLAT_API void LnRenderView_SetManagedTypeInfoId(int64_t id);
989
+
990
+ //==============================================================================
991
+ // ln::Component
992
+
993
+ typedef LnResult(*LnComponent_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
994
+ LN_FLAT_API LnResult LnComponent_OnSerialize_SetOverrideCallback(LnComponent_OnSerialize_OverrideCallback callback);
995
+ LN_FLAT_API LnResult LnComponent_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
996
+
997
+ extern LN_FLAT_API int LnComponent_GetTypeInfoId();
998
+ LN_FLAT_API void LnComponent_SetManagedTypeInfoId(int64_t id);
999
+
1000
+ //==============================================================================
1001
+ // ln::VisualComponent
1002
+
1003
+ /**
1004
+ @brief 可視状態を設定します。false の場合、コンポーネントの描画は行われません。(default: true)
1005
+ @param[in] visualcomponent : instance
1006
+ */
1007
+ LN_FLAT_API LnResult LnVisualComponent_SetVisible(LnHandle visualcomponent, LnBool value);
1008
+
1009
+ /**
1010
+ @brief 可視状態を取得します。
1011
+ @param[in] visualcomponent : instance
1012
+ @param[out] outReturn : instance.
1013
+ */
1014
+ LN_FLAT_API LnResult LnVisualComponent_IsVisible(LnHandle visualcomponent, LnBool* outReturn);
1015
+
1016
+ typedef LnResult(*LnVisualComponent_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1017
+ LN_FLAT_API LnResult LnVisualComponent_OnSerialize_SetOverrideCallback(LnVisualComponent_OnSerialize_OverrideCallback callback);
1018
+ LN_FLAT_API LnResult LnVisualComponent_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1019
+
1020
+ extern LN_FLAT_API int LnVisualComponent_GetTypeInfoId();
1021
+ LN_FLAT_API void LnVisualComponent_SetManagedTypeInfoId(int64_t id);
1022
+
1023
+ //==============================================================================
1024
+ // ln::SpriteComponent
1025
+
1026
+ /**
1027
+ @brief スプライトが表示するテクスチャを設定します。
1028
+ @param[in] spritecomponent : instance
1029
+ */
1030
+ LN_FLAT_API LnResult LnSpriteComponent_SetTexture(LnHandle spritecomponent, LnHandle texture);
1031
+
1032
+ typedef LnResult(*LnSpriteComponent_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1033
+ LN_FLAT_API LnResult LnSpriteComponent_OnSerialize_SetOverrideCallback(LnSpriteComponent_OnSerialize_OverrideCallback callback);
1034
+ LN_FLAT_API LnResult LnSpriteComponent_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1035
+
1036
+ extern LN_FLAT_API int LnSpriteComponent_GetTypeInfoId();
1037
+ LN_FLAT_API void LnSpriteComponent_SetManagedTypeInfoId(int64_t id);
1038
+
1039
+ //==============================================================================
1040
+ // ln::World
1041
+
1042
+ /**
1043
+ @brief オブジェクトを World に追加します。
1044
+ @param[in] world : instance
1045
+ */
1046
+ LN_FLAT_API LnResult LnWorld_Add(LnHandle world, LnHandle obj);
1047
+
1048
+ typedef LnResult(*LnWorld_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1049
+ LN_FLAT_API LnResult LnWorld_OnSerialize_SetOverrideCallback(LnWorld_OnSerialize_OverrideCallback callback);
1050
+ LN_FLAT_API LnResult LnWorld_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1051
+
1052
+ extern LN_FLAT_API int LnWorld_GetTypeInfoId();
1053
+ LN_FLAT_API void LnWorld_SetManagedTypeInfoId(int64_t id);
1054
+
1055
+ //==============================================================================
1056
+ // ln::ComponentList
1057
+
1058
+ /**
1059
+ @brief
1060
+ @param[in] componentlist : instance
1061
+ @param[out] outReturn : instance.
1062
+ */
1063
+ LN_FLAT_API LnResult LnComponentList_GetLength(LnHandle componentlist, int* outReturn);
1064
+
1065
+ /**
1066
+ @brief
1067
+ @param[in] componentlist : instance
1068
+ @param[out] outReturn : instance.
1069
+ */
1070
+ LN_FLAT_API LnResult LnComponentList_GetItem(LnHandle componentlist, int index, LnHandle* outReturn);
1071
+
1072
+ typedef LnResult(*LnComponentList_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1073
+ LN_FLAT_API LnResult LnComponentList_OnSerialize_SetOverrideCallback(LnComponentList_OnSerialize_OverrideCallback callback);
1074
+ LN_FLAT_API LnResult LnComponentList_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1075
+
1076
+ extern LN_FLAT_API int LnComponentList_GetTypeInfoId();
1077
+ LN_FLAT_API void LnComponentList_SetManagedTypeInfoId(int64_t id);
1078
+
1079
+ //==============================================================================
1080
+ // ln::WorldObject
1081
+
1082
+ /**
1083
+ @brief このオブジェクトの位置を設定します。
1084
+ @param[in] worldobject : instance
1085
+ */
1086
+ LN_FLAT_API LnResult LnWorldObject_SetPosition(LnHandle worldobject, const LnVector3* pos);
1087
+
1088
+ /**
1089
+ @brief このオブジェクトの位置を設定します。
1090
+ @param[in] worldobject : instance
1091
+ */
1092
+ LN_FLAT_API LnResult LnWorldObject_SetPositionXYZ(LnHandle worldobject, float x, float y, float z);
1093
+
1094
+ /**
1095
+ @brief このオブジェクトの位置を位置を取得します。
1096
+ @param[in] worldobject : instance
1097
+ @param[out] outReturn : instance.
1098
+ */
1099
+ LN_FLAT_API LnResult LnWorldObject_GetPosition(LnHandle worldobject, LnVector3* outReturn);
1100
+
1101
+ /**
1102
+ @brief このオブジェクトの回転を設定します。
1103
+ @param[in] worldobject : instance
1104
+ */
1105
+ LN_FLAT_API LnResult LnWorldObject_SetRotationQuaternion(LnHandle worldobject, const LnQuaternion* rot);
1106
+
1107
+ /**
1108
+ @brief このオブジェクトの回転をオイラー角から設定します。(radian)
1109
+ @param[in] worldobject : instance
1110
+ */
1111
+ LN_FLAT_API LnResult LnWorldObject_SetRotation(LnHandle worldobject, float x, float y, float z);
1112
+
1113
+ /**
1114
+ @brief このオブジェクトの回転を取得します。
1115
+ @param[in] worldobject : instance
1116
+ @param[out] outReturn : instance.
1117
+ */
1118
+ LN_FLAT_API LnResult LnWorldObject_GetRotation(LnHandle worldobject, LnQuaternion* outReturn);
1119
+
1120
+ /**
1121
+ @brief このオブジェクトの拡大率を設定します。
1122
+ @param[in] worldobject : instance
1123
+ */
1124
+ LN_FLAT_API LnResult LnWorldObject_SetScale(LnHandle worldobject, const LnVector3* scale);
1125
+
1126
+ /**
1127
+ @brief このオブジェクトの拡大率を設定します。
1128
+ @param[in] worldobject : instance
1129
+ */
1130
+ LN_FLAT_API LnResult LnWorldObject_SetScaleS(LnHandle worldobject, float xyz);
1131
+
1132
+ /**
1133
+ @brief このオブジェクトの拡大率を設定します。
1134
+ @param[in] worldobject : instance
1135
+ */
1136
+ LN_FLAT_API LnResult LnWorldObject_SetScaleXYZ(LnHandle worldobject, float x, float y, float z);
1137
+
1138
+ /**
1139
+ @brief このオブジェクトの拡大率を取得します。
1140
+ @param[in] worldobject : instance
1141
+ @param[out] outReturn : instance.
1142
+ */
1143
+ LN_FLAT_API LnResult LnWorldObject_GetScale(LnHandle worldobject, LnVector3* outReturn);
1144
+
1145
+ /**
1146
+ @brief このオブジェクトのローカルの中心位置を設定します。
1147
+ @param[in] worldobject : instance
1148
+ */
1149
+ LN_FLAT_API LnResult LnWorldObject_SetCenterPoint(LnHandle worldobject, const LnVector3* value);
1150
+
1151
+ /**
1152
+ @brief このオブジェクトのローカルの中心位置を設定します。
1153
+ @param[in] worldobject : instance
1154
+ */
1155
+ LN_FLAT_API LnResult LnWorldObject_SetCenterPointXYZ(LnHandle worldobject, float x, float y, float z);
1156
+
1157
+ /**
1158
+ @brief このオブジェクトのローカルの中心位置を取得します。
1159
+ @param[in] worldobject : instance
1160
+ @param[out] outReturn : instance.
1161
+ */
1162
+ LN_FLAT_API LnResult LnWorldObject_GetCenterPoint(LnHandle worldobject, LnVector3* outReturn);
1163
+
1164
+ /**
1165
+ @brief 指定した座標を向くように、オブジェクトを回転させます。
1166
+ @param[in] worldobject : instance
1167
+ */
1168
+ LN_FLAT_API LnResult LnWorldObject_LookAt(LnHandle worldobject, const LnVector3* target);
1169
+
1170
+ /**
1171
+ @brief 指定した座標を向くように、オブジェクトを回転させます。
1172
+ @param[in] worldobject : instance
1173
+ */
1174
+ LN_FLAT_API LnResult LnWorldObject_LookAtXYZ(LnHandle worldobject, float x, float y, float z);
1175
+
1176
+ /**
1177
+ @brief Component を追加します。
1178
+ @param[in] worldobject : instance
1179
+ */
1180
+ LN_FLAT_API LnResult LnWorldObject_AddComponent(LnHandle worldobject, LnHandle component);
1181
+
1182
+ /**
1183
+ @brief
1184
+ @param[in] worldobject : instance
1185
+ @param[out] outReturn : instance.
1186
+ */
1187
+ LN_FLAT_API LnResult LnWorldObject_GetComponents(LnHandle worldobject, LnHandle* outReturn);
1188
+
1189
+ typedef LnResult(*LnWorldObject_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1190
+ LN_FLAT_API LnResult LnWorldObject_OnSerialize_SetOverrideCallback(LnWorldObject_OnSerialize_OverrideCallback callback);
1191
+ LN_FLAT_API LnResult LnWorldObject_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1192
+ typedef LnResult(*LnWorldObject_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1193
+ LN_FLAT_API LnResult LnWorldObject_OnUpdate_SetOverrideCallback(LnWorldObject_OnUpdate_OverrideCallback callback);
1194
+ LN_FLAT_API LnResult LnWorldObject_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1195
+
1196
+ extern LN_FLAT_API int LnWorldObject_GetTypeInfoId();
1197
+ LN_FLAT_API void LnWorldObject_SetManagedTypeInfoId(int64_t id);
1198
+
1199
+ //==============================================================================
1200
+ // ln::VisualObject
1201
+
1202
+ /**
1203
+ @brief 可視状態を設定します。false の場合、コンポーネントの描画は行われません。(default: true)
1204
+ @param[in] visualobject : instance
1205
+ */
1206
+ LN_FLAT_API LnResult LnVisualObject_SetVisible(LnHandle visualobject, LnBool value);
1207
+
1208
+ /**
1209
+ @brief 可視状態を取得します。
1210
+ @param[in] visualobject : instance
1211
+ @param[out] outReturn : instance.
1212
+ */
1213
+ LN_FLAT_API LnResult LnVisualObject_IsVisible(LnHandle visualobject, LnBool* outReturn);
1214
+
1215
+ typedef LnResult(*LnVisualObject_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1216
+ LN_FLAT_API LnResult LnVisualObject_OnSerialize_SetOverrideCallback(LnVisualObject_OnSerialize_OverrideCallback callback);
1217
+ LN_FLAT_API LnResult LnVisualObject_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1218
+ typedef LnResult(*LnVisualObject_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1219
+ LN_FLAT_API LnResult LnVisualObject_OnUpdate_SetOverrideCallback(LnVisualObject_OnUpdate_OverrideCallback callback);
1220
+ LN_FLAT_API LnResult LnVisualObject_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1221
+
1222
+ extern LN_FLAT_API int LnVisualObject_GetTypeInfoId();
1223
+ LN_FLAT_API void LnVisualObject_SetManagedTypeInfoId(int64_t id);
1224
+
1225
+ //==============================================================================
1226
+ // ln::Camera
1227
+
1228
+ typedef LnResult(*LnCamera_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1229
+ LN_FLAT_API LnResult LnCamera_OnSerialize_SetOverrideCallback(LnCamera_OnSerialize_OverrideCallback callback);
1230
+ LN_FLAT_API LnResult LnCamera_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1231
+ typedef LnResult(*LnCamera_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1232
+ LN_FLAT_API LnResult LnCamera_OnUpdate_SetOverrideCallback(LnCamera_OnUpdate_OverrideCallback callback);
1233
+ LN_FLAT_API LnResult LnCamera_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1234
+
1235
+ extern LN_FLAT_API int LnCamera_GetTypeInfoId();
1236
+ LN_FLAT_API void LnCamera_SetManagedTypeInfoId(int64_t id);
1237
+
1238
+ //==============================================================================
1239
+ // ln::DirectionalLight
1240
+
1241
+ /**
1242
+ @brief ライトの有効状態を設定します。false の場合、ライトはシーンに影響しません。(default: true)
1243
+ @param[in] directionallight : instance
1244
+ */
1245
+ LN_FLAT_API LnResult LnDirectionalLight_SetEnabled(LnHandle directionallight, LnBool enabled);
1246
+
1247
+ /**
1248
+ @brief ライトの有効状態を取得します。
1249
+ @param[in] directionallight : instance
1250
+ @param[out] outReturn : instance.
1251
+ */
1252
+ LN_FLAT_API LnResult LnDirectionalLight_IsEnabled(LnHandle directionallight, LnBool* outReturn);
1253
+
1254
+ /**
1255
+ @brief ライトカラーを設定します。(default: White)
1256
+ @param[in] directionallight : instance
1257
+ */
1258
+ LN_FLAT_API LnResult LnDirectionalLight_SetColor(LnHandle directionallight, const LnColor* color);
1259
+
1260
+ /**
1261
+ @brief ライトカラーを取得します。
1262
+ @param[in] directionallight : instance
1263
+ @param[out] outReturn : instance.
1264
+ */
1265
+ LN_FLAT_API LnResult LnDirectionalLight_GetColor(LnHandle directionallight, LnColor* outReturn);
1266
+
1267
+ /**
1268
+ @brief ライトの明るさを設定します。(default: 0.5)
1269
+ @param[in] directionallight : instance
1270
+ */
1271
+ LN_FLAT_API LnResult LnDirectionalLight_SetIntensity(LnHandle directionallight, float intensity);
1272
+
1273
+ /**
1274
+ @brief ライトの明るさを取得します。
1275
+ @param[in] directionallight : instance
1276
+ @param[out] outReturn : instance.
1277
+ */
1278
+ LN_FLAT_API LnResult LnDirectionalLight_GetIntensity(LnHandle directionallight, float* outReturn);
1279
+
1280
+ /**
1281
+ @brief 既定の設定でディレクショナルライトを作成します。
1282
+ @param[out] outDirectionalLight : instance.
1283
+ */
1284
+ LN_FLAT_API LnResult LnDirectionalLight_Create(LnHandle* outDirectionalLight);
1285
+
1286
+ /**
1287
+ @brief 色を指定してディレクショナルライトを作成します。
1288
+ @param[out] outDirectionalLight : instance.
1289
+ */
1290
+ LN_FLAT_API LnResult LnDirectionalLight_CreateWithColor(const LnColor* color, LnHandle* outDirectionalLight);
1291
+
1292
+ typedef LnResult(*LnDirectionalLight_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1293
+ LN_FLAT_API LnResult LnDirectionalLight_OnSerialize_SetOverrideCallback(LnDirectionalLight_OnSerialize_OverrideCallback callback);
1294
+ LN_FLAT_API LnResult LnDirectionalLight_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1295
+ typedef LnResult(*LnDirectionalLight_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1296
+ LN_FLAT_API LnResult LnDirectionalLight_OnUpdate_SetOverrideCallback(LnDirectionalLight_OnUpdate_OverrideCallback callback);
1297
+ LN_FLAT_API LnResult LnDirectionalLight_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1298
+
1299
+ extern LN_FLAT_API int LnDirectionalLight_GetTypeInfoId();
1300
+ LN_FLAT_API void LnDirectionalLight_SetManagedTypeInfoId(int64_t id);
1301
+
1302
+ //==============================================================================
1303
+ // ln::PointLight
1304
+
1305
+ /**
1306
+ @brief ライトの有効状態を設定します。false の場合、ライトはシーンに影響しません。(default: true)
1307
+ @param[in] pointlight : instance
1308
+ */
1309
+ LN_FLAT_API LnResult LnPointLight_SetEnabled(LnHandle pointlight, LnBool enabled);
1310
+
1311
+ /**
1312
+ @brief ライトの有効状態を取得します。
1313
+ @param[in] pointlight : instance
1314
+ @param[out] outReturn : instance.
1315
+ */
1316
+ LN_FLAT_API LnResult LnPointLight_IsEnabled(LnHandle pointlight, LnBool* outReturn);
1317
+
1318
+ /**
1319
+ @brief ライトカラーを設定します。(default: White)
1320
+ @param[in] pointlight : instance
1321
+ */
1322
+ LN_FLAT_API LnResult LnPointLight_SetColor(LnHandle pointlight, const LnColor* color);
1323
+
1324
+ /**
1325
+ @brief ライトカラーを取得します。
1326
+ @param[in] pointlight : instance
1327
+ @param[out] outReturn : instance.
1328
+ */
1329
+ LN_FLAT_API LnResult LnPointLight_GetColor(LnHandle pointlight, LnColor* outReturn);
1330
+
1331
+ /**
1332
+ @brief ライトの明るさを設定します。(default: 1.0)
1333
+ @param[in] pointlight : instance
1334
+ */
1335
+ LN_FLAT_API LnResult LnPointLight_SetIntensity(LnHandle pointlight, float intensity);
1336
+
1337
+ /**
1338
+ @brief ライトの明るさを取得します。
1339
+ @param[in] pointlight : instance
1340
+ @param[out] outReturn : instance.
1341
+ */
1342
+ LN_FLAT_API LnResult LnPointLight_GetIntensity(LnHandle pointlight, float* outReturn);
1343
+
1344
+ /**
1345
+ @brief ライトの影響範囲を設定します。(default: 10.0)
1346
+ @param[in] pointlight : instance
1347
+ */
1348
+ LN_FLAT_API LnResult LnPointLight_SetRange(LnHandle pointlight, float range);
1349
+
1350
+ /**
1351
+ @brief ライトの影響範囲を取得します。
1352
+ @param[in] pointlight : instance
1353
+ @param[out] outReturn : instance.
1354
+ */
1355
+ LN_FLAT_API LnResult LnPointLight_GetRange(LnHandle pointlight, float* outReturn);
1356
+
1357
+ /**
1358
+ @brief ライトの減衰を設定します。(default: 1.0)
1359
+ @param[in] pointlight : instance
1360
+ */
1361
+ LN_FLAT_API LnResult LnPointLight_SetAttenuation(LnHandle pointlight, float attenuation);
1362
+
1363
+ /**
1364
+ @brief ライトの減衰を取得します。
1365
+ @param[in] pointlight : instance
1366
+ @param[out] outReturn : instance.
1367
+ */
1368
+ LN_FLAT_API LnResult LnPointLight_GetAttenuation(LnHandle pointlight, float* outReturn);
1369
+
1370
+ /**
1371
+ @brief 既定の設定でポイントライトを作成します。
1372
+ @param[out] outPointLight : instance.
1373
+ */
1374
+ LN_FLAT_API LnResult LnPointLight_Create(LnHandle* outPointLight);
1375
+
1376
+ /**
1377
+ @brief 色と範囲を指定してポイントライトを作成します。
1378
+ @param[out] outPointLight : instance.
1379
+ */
1380
+ LN_FLAT_API LnResult LnPointLight_CreateWithColorAndRange(const LnColor* color, float range, LnHandle* outPointLight);
1381
+
1382
+ typedef LnResult(*LnPointLight_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1383
+ LN_FLAT_API LnResult LnPointLight_OnSerialize_SetOverrideCallback(LnPointLight_OnSerialize_OverrideCallback callback);
1384
+ LN_FLAT_API LnResult LnPointLight_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1385
+ typedef LnResult(*LnPointLight_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1386
+ LN_FLAT_API LnResult LnPointLight_OnUpdate_SetOverrideCallback(LnPointLight_OnUpdate_OverrideCallback callback);
1387
+ LN_FLAT_API LnResult LnPointLight_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1388
+
1389
+ extern LN_FLAT_API int LnPointLight_GetTypeInfoId();
1390
+ LN_FLAT_API void LnPointLight_SetManagedTypeInfoId(int64_t id);
1391
+
1392
+ //==============================================================================
1393
+ // ln::SpotLight
1394
+
1395
+ /**
1396
+ @brief ライトの有効状態を設定します。false の場合、ライトはシーンに影響しません。(default: true)
1397
+ @param[in] spotlight : instance
1398
+ */
1399
+ LN_FLAT_API LnResult LnSpotLight_SetEnabled(LnHandle spotlight, LnBool enabled);
1400
+
1401
+ /**
1402
+ @brief ライトの有効状態を取得します。
1403
+ @param[in] spotlight : instance
1404
+ @param[out] outReturn : instance.
1405
+ */
1406
+ LN_FLAT_API LnResult LnSpotLight_IsEnabled(LnHandle spotlight, LnBool* outReturn);
1407
+
1408
+ /**
1409
+ @brief ライトカラーを設定します。(default: White)
1410
+ @param[in] spotlight : instance
1411
+ */
1412
+ LN_FLAT_API LnResult LnSpotLight_SetColor(LnHandle spotlight, const LnColor* color);
1413
+
1414
+ /**
1415
+ @brief ライトカラーを取得します。
1416
+ @param[in] spotlight : instance
1417
+ @param[out] outReturn : instance.
1418
+ */
1419
+ LN_FLAT_API LnResult LnSpotLight_GetColor(LnHandle spotlight, LnColor* outReturn);
1420
+
1421
+ /**
1422
+ @brief ライトの明るさを設定します。(default: 1.0)
1423
+ @param[in] spotlight : instance
1424
+ */
1425
+ LN_FLAT_API LnResult LnSpotLight_SetIntensity(LnHandle spotlight, float intensity);
1426
+
1427
+ /**
1428
+ @brief ライトの明るさを取得します。
1429
+ @param[in] spotlight : instance
1430
+ @param[out] outReturn : instance.
1431
+ */
1432
+ LN_FLAT_API LnResult LnSpotLight_GetIntensity(LnHandle spotlight, float* outReturn);
1433
+
1434
+ /**
1435
+ @brief ライトの影響範囲を設定します。(default: 10.0)
1436
+ @param[in] spotlight : instance
1437
+ */
1438
+ LN_FLAT_API LnResult LnSpotLight_SetRange(LnHandle spotlight, float range);
1439
+
1440
+ /**
1441
+ @brief ライトの影響範囲を取得します。
1442
+ @param[in] spotlight : instance
1443
+ @param[out] outReturn : instance.
1444
+ */
1445
+ LN_FLAT_API LnResult LnSpotLight_GetRange(LnHandle spotlight, float* outReturn);
1446
+
1447
+ /**
1448
+ @brief ライトの減衰を設定します。(default: 1.0)
1449
+ @param[in] spotlight : instance
1450
+ */
1451
+ LN_FLAT_API LnResult LnSpotLight_SetAttenuation(LnHandle spotlight, float attenuation);
1452
+
1453
+ /**
1454
+ @brief ライトの減衰を取得します。
1455
+ @param[in] spotlight : instance
1456
+ @param[out] outReturn : instance.
1457
+ */
1458
+ LN_FLAT_API LnResult LnSpotLight_GetAttenuation(LnHandle spotlight, float* outReturn);
1459
+
1460
+ /**
1461
+ @brief スポットライトのコーン角度を設定します。(ラジアン単位、default: PI / 3)
1462
+ @param[in] spotlight : instance
1463
+ */
1464
+ LN_FLAT_API LnResult LnSpotLight_SetAngle(LnHandle spotlight, float angle);
1465
+
1466
+ /**
1467
+ @brief スポットライトのコーン角度を取得します。(ラジアン単位)
1468
+ @param[in] spotlight : instance
1469
+ @param[out] outReturn : instance.
1470
+ */
1471
+ LN_FLAT_API LnResult LnSpotLight_GetAngle(LnHandle spotlight, float* outReturn);
1472
+
1473
+ /**
1474
+ @brief スポットライトのコーン角度に対する減衰率を設定します。(0..1, default: 0)
1475
+ @param[in] spotlight : instance
1476
+ */
1477
+ LN_FLAT_API LnResult LnSpotLight_SetPenumbra(LnHandle spotlight, float penumbra);
1478
+
1479
+ /**
1480
+ @brief スポットライトのコーン角度に対する減衰率を設定します。
1481
+ @param[in] spotlight : instance
1482
+ @param[out] outReturn : instance.
1483
+ */
1484
+ LN_FLAT_API LnResult LnSpotLight_GetPenumbra(LnHandle spotlight, float* outReturn);
1485
+
1486
+ /**
1487
+ @brief 既定の設定でスポットライトを作成します。
1488
+ @param[out] outSpotLight : instance.
1489
+ */
1490
+ LN_FLAT_API LnResult LnSpotLight_Create(LnHandle* outSpotLight);
1491
+
1492
+ /**
1493
+ @brief 色と範囲を指定してスポットライトを作成します。
1494
+ @param[out] outSpotLight : instance.
1495
+ */
1496
+ LN_FLAT_API LnResult LnSpotLight_CreateWithColorAndRange(const LnColor* color, float range, float angle, LnHandle* outSpotLight);
1497
+
1498
+ typedef LnResult(*LnSpotLight_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1499
+ LN_FLAT_API LnResult LnSpotLight_OnSerialize_SetOverrideCallback(LnSpotLight_OnSerialize_OverrideCallback callback);
1500
+ LN_FLAT_API LnResult LnSpotLight_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1501
+ typedef LnResult(*LnSpotLight_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1502
+ LN_FLAT_API LnResult LnSpotLight_OnUpdate_SetOverrideCallback(LnSpotLight_OnUpdate_OverrideCallback callback);
1503
+ LN_FLAT_API LnResult LnSpotLight_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1504
+
1505
+ extern LN_FLAT_API int LnSpotLight_GetTypeInfoId();
1506
+ LN_FLAT_API void LnSpotLight_SetManagedTypeInfoId(int64_t id);
1507
+
1508
+ //==============================================================================
1509
+ // ln::TestDelegate
1510
+
1511
+ LN_FLAT_API LnResult LnTestDelegate_Create(LnTestDelegateCallback callback, LnHandle* outDelegate);
1512
+ LN_FLAT_API void LnTestDelegate_SetManagedTypeInfoId(int64_t id);
1513
+
1514
+ //==============================================================================
1515
+ // ln::Sprite
1516
+
1517
+ /**
1518
+ @brief スプライトが表示するテクスチャを設定します。
1519
+ @param[in] sprite : instance
1520
+ */
1521
+ LN_FLAT_API LnResult LnSprite_SetTexture(LnHandle sprite, LnHandle value);
1522
+
1523
+ /**
1524
+ @brief スプライトの大きさを設定します。
1525
+ @param[in] sprite : instance
1526
+ */
1527
+ LN_FLAT_API LnResult LnSprite_SetSize(LnHandle sprite, const LnSize* value);
1528
+
1529
+ /**
1530
+ @brief スプライトの大きさを設定します。
1531
+ @param[in] sprite : instance
1532
+ */
1533
+ LN_FLAT_API LnResult LnSprite_SetSizeWH(LnHandle sprite, float width, float height);
1534
+
1535
+ /**
1536
+ @brief
1537
+ @param[in] sprite : instance
1538
+ */
1539
+ LN_FLAT_API LnResult LnSprite_SetSourceRectXYWH(LnHandle sprite, float x, float y, float width, float height);
1540
+
1541
+ /**
1542
+ @brief test
1543
+ @param[in] sprite : instance
1544
+ */
1545
+ LN_FLAT_API LnResult LnSprite_SetCallerTest(LnHandle sprite, LnHandle callback);
1546
+
1547
+ /**
1548
+ @brief init
1549
+ @param[out] outSprite : instance.
1550
+ */
1551
+ LN_FLAT_API LnResult LnSprite_Create(LnHandle* outSprite);
1552
+
1553
+ /**
1554
+ @brief init
1555
+ @param[out] outSprite : instance.
1556
+ */
1557
+ LN_FLAT_API LnResult LnSprite_CreateWithTexture(LnHandle texture, LnHandle* outSprite);
1558
+
1559
+ /**
1560
+ @brief init
1561
+ @param[out] outSprite : instance.
1562
+ */
1563
+ LN_FLAT_API LnResult LnSprite_CreateWithTextureAndSize(LnHandle texture, float width, float height, LnHandle* outSprite);
1564
+
1565
+ typedef LnResult(*LnSprite_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1566
+ LN_FLAT_API LnResult LnSprite_OnSerialize_SetOverrideCallback(LnSprite_OnSerialize_OverrideCallback callback);
1567
+ LN_FLAT_API LnResult LnSprite_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1568
+ typedef LnResult(*LnSprite_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1569
+ LN_FLAT_API LnResult LnSprite_OnUpdate_SetOverrideCallback(LnSprite_OnUpdate_OverrideCallback callback);
1570
+ LN_FLAT_API LnResult LnSprite_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1571
+
1572
+ extern LN_FLAT_API int LnSprite_GetTypeInfoId();
1573
+ LN_FLAT_API void LnSprite_SetManagedTypeInfoId(int64_t id);
1574
+
1575
+ //==============================================================================
1576
+ // ln::CameraOrbitControlComponent
1577
+
1578
+ /**
1579
+ @brief CameraOrbitControlComponent を作成します。
1580
+ @param[out] outCameraOrbitControlComponent : instance.
1581
+ */
1582
+ LN_FLAT_API LnResult LnCameraOrbitControlComponent_Create(LnHandle* outCameraOrbitControlComponent);
1583
+
1584
+ typedef LnResult(*LnCameraOrbitControlComponent_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1585
+ LN_FLAT_API LnResult LnCameraOrbitControlComponent_OnSerialize_SetOverrideCallback(LnCameraOrbitControlComponent_OnSerialize_OverrideCallback callback);
1586
+ LN_FLAT_API LnResult LnCameraOrbitControlComponent_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1587
+
1588
+ extern LN_FLAT_API int LnCameraOrbitControlComponent_GetTypeInfoId();
1589
+ LN_FLAT_API void LnCameraOrbitControlComponent_SetManagedTypeInfoId(int64_t id);
1590
+
1591
+ //==============================================================================
1592
+ // ln::Raycaster
1593
+
1594
+ /**
1595
+ @brief メインのカメラを使用して、指定したスクリーン座標から正面に向かうレイを定義した Raycaster を取得します。
1596
+ @param[out] outReturn : instance.
1597
+ */
1598
+ LN_FLAT_API LnResult LnRaycaster_FromScreen(const LnPoint* point, LnHandle* outReturn);
1599
+
1600
+ /**
1601
+ @brief 指定した向きの平面との交差判定を行います。
1602
+ @param[in] raycaster : instance
1603
+ @param[out] outReturn : instance.
1604
+ */
1605
+ LN_FLAT_API LnResult LnRaycaster_IntersectPlane(LnHandle raycaster, float normalX, float normalY, float normalZ, LnHandle* outReturn);
1606
+
1607
+ typedef LnResult(*LnRaycaster_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1608
+ LN_FLAT_API LnResult LnRaycaster_OnSerialize_SetOverrideCallback(LnRaycaster_OnSerialize_OverrideCallback callback);
1609
+ LN_FLAT_API LnResult LnRaycaster_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1610
+
1611
+ extern LN_FLAT_API int LnRaycaster_GetTypeInfoId();
1612
+ LN_FLAT_API void LnRaycaster_SetManagedTypeInfoId(int64_t id);
1613
+
1614
+ //==============================================================================
1615
+ // ln::RaycastResult
1616
+
1617
+ /**
1618
+ @brief ワールド座標上の交差点
1619
+ @param[in] raycastresult : instance
1620
+ @param[out] outReturn : instance.
1621
+ */
1622
+ LN_FLAT_API LnResult LnRaycastResult_GetPoint(LnHandle raycastresult, LnVector3* outReturn);
1623
+
1624
+ typedef LnResult(*LnRaycastResult_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1625
+ LN_FLAT_API LnResult LnRaycastResult_OnSerialize_SetOverrideCallback(LnRaycastResult_OnSerialize_OverrideCallback callback);
1626
+ LN_FLAT_API LnResult LnRaycastResult_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1627
+
1628
+ extern LN_FLAT_API int LnRaycastResult_GetTypeInfoId();
1629
+ LN_FLAT_API void LnRaycastResult_SetManagedTypeInfoId(int64_t id);
1630
+
1631
+ //==============================================================================
1632
+ // ln::WorldRenderView
1633
+
1634
+ /**
1635
+ @brief この WorldRenderView が描画する 3D シーン上に、グリッドを表示するかどうかを設定します。
1636
+ @param[in] worldrenderview : instance
1637
+ */
1638
+ LN_FLAT_API LnResult LnWorldRenderView_SetGuideGridEnabled(LnHandle worldrenderview, LnBool value);
1639
+
1640
+ /**
1641
+ @brief この WorldRenderView が描画する 3D シーン上に、グリッドを表示するかどうかを取得します。
1642
+ @param[in] worldrenderview : instance
1643
+ @param[out] outReturn : instance.
1644
+ */
1645
+ LN_FLAT_API LnResult LnWorldRenderView_GetGuideGridEnabled(LnHandle worldrenderview, LnBool* outReturn);
1646
+
1647
+ typedef LnResult(*LnWorldRenderView_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1648
+ LN_FLAT_API LnResult LnWorldRenderView_OnSerialize_SetOverrideCallback(LnWorldRenderView_OnSerialize_OverrideCallback callback);
1649
+ LN_FLAT_API LnResult LnWorldRenderView_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1650
+
1651
+ extern LN_FLAT_API int LnWorldRenderView_GetTypeInfoId();
1652
+ LN_FLAT_API void LnWorldRenderView_SetManagedTypeInfoId(int64_t id);
1653
+
1654
+ //==============================================================================
1655
+ // ln::BoxMesh
1656
+
1657
+ /**
1658
+ @brief 各軸のサイズが 1 である BoxMesh を作成します。
1659
+ @param[out] outBoxMesh : instance.
1660
+ */
1661
+ LN_FLAT_API LnResult LnBoxMesh_Create(LnHandle* outBoxMesh);
1662
+
1663
+ typedef LnResult(*LnBoxMesh_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1664
+ LN_FLAT_API LnResult LnBoxMesh_OnSerialize_SetOverrideCallback(LnBoxMesh_OnSerialize_OverrideCallback callback);
1665
+ LN_FLAT_API LnResult LnBoxMesh_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1666
+ typedef LnResult(*LnBoxMesh_OnUpdate_OverrideCallback)(LnHandle worldobject, float elapsedSeconds);
1667
+ LN_FLAT_API LnResult LnBoxMesh_OnUpdate_SetOverrideCallback(LnBoxMesh_OnUpdate_OverrideCallback callback);
1668
+ LN_FLAT_API LnResult LnBoxMesh_OnUpdate_CallOverrideBase(LnHandle worldobject, float elapsedSeconds);
1669
+
1670
+ extern LN_FLAT_API int LnBoxMesh_GetTypeInfoId();
1671
+ LN_FLAT_API void LnBoxMesh_SetManagedTypeInfoId(int64_t id);
1672
+
1673
+ //==============================================================================
1674
+ // ln::UIEventArgs
1675
+
1676
+ /**
1677
+ @brief イベントの発生元となった要素を取得します。
1678
+ @param[in] uieventargs : instance
1679
+ @param[out] outReturn : instance.
1680
+ */
1681
+ LN_FLAT_API LnResult LnUIEventArgs_Sender(LnHandle uieventargs, LnHandle* outReturn);
1682
+
1683
+ typedef LnResult(*LnUIEventArgs_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1684
+ LN_FLAT_API LnResult LnUIEventArgs_OnSerialize_SetOverrideCallback(LnUIEventArgs_OnSerialize_OverrideCallback callback);
1685
+ LN_FLAT_API LnResult LnUIEventArgs_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1686
+
1687
+ extern LN_FLAT_API int LnUIEventArgs_GetTypeInfoId();
1688
+ LN_FLAT_API void LnUIEventArgs_SetManagedTypeInfoId(int64_t id);
1689
+
1690
+ //==============================================================================
1691
+ // ln::UIGeneralEventHandler
1692
+
1693
+ LN_FLAT_API LnResult LnUIGeneralEventHandler_Create(LnUIGeneralEventHandlerCallback callback, LnHandle* outDelegate);
1694
+ LN_FLAT_API void LnUIGeneralEventHandler_SetManagedTypeInfoId(int64_t id);
1695
+
1696
+ //==============================================================================
1697
+ // ln::UIEventHandler
1698
+
1699
+ LN_FLAT_API LnResult LnUIEventHandler_Create(LnUIEventHandlerCallback callback, LnHandle* outDelegate);
1700
+ LN_FLAT_API void LnUIEventHandler_SetManagedTypeInfoId(int64_t id);
1701
+
1702
+ //==============================================================================
1703
+ // ln::UILayoutElement
1704
+
1705
+ typedef LnResult(*LnUILayoutElement_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1706
+ LN_FLAT_API LnResult LnUILayoutElement_OnSerialize_SetOverrideCallback(LnUILayoutElement_OnSerialize_OverrideCallback callback);
1707
+ LN_FLAT_API LnResult LnUILayoutElement_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1708
+
1709
+ extern LN_FLAT_API int LnUILayoutElement_GetTypeInfoId();
1710
+ LN_FLAT_API void LnUILayoutElement_SetManagedTypeInfoId(int64_t id);
1711
+
1712
+ //==============================================================================
1713
+ // ln::UIElement
1714
+
1715
+ /**
1716
+ @brief 要素の margin 値 (外側の余白) を設定します。
1717
+ @param[in] uielement : instance
1718
+ */
1719
+ LN_FLAT_API LnResult LnUIElement_SetMargin(LnHandle uielement, const LnThickness* margin);
1720
+
1721
+ /**
1722
+ @brief 要素の margin 値 (外側の余白) を取得します。
1723
+ @param[in] uielement : instance
1724
+ @param[out] outReturn : instance.
1725
+ */
1726
+ LN_FLAT_API LnResult LnUIElement_GetMargin(LnHandle uielement, LnThickness* outReturn);
1727
+
1728
+ /**
1729
+ @brief 要素の padding 値 (内側の余白) を設定します。この余白は論理ツリーの子要素のレイアウトに影響します。
1730
+ @param[in] uielement : instance
1731
+ */
1732
+ LN_FLAT_API LnResult LnUIElement_SetPadding(LnHandle uielement, const LnThickness* padding);
1733
+
1734
+ /**
1735
+ @brief 要素の padding 値 (内側の余白) を取得します。この余白は論理ツリーの子要素のレイアウトに影響します。
1736
+ @param[in] uielement : instance
1737
+ @param[out] outReturn : instance.
1738
+ */
1739
+ LN_FLAT_API LnResult LnUIElement_GetPadding(LnHandle uielement, LnThickness* outReturn);
1740
+
1741
+ /**
1742
+ @brief 要素の横方向の配置方法を設定します。
1743
+ @param[in] uielement : instance
1744
+ */
1745
+ LN_FLAT_API LnResult LnUIElement_SetHAlignment(LnHandle uielement, LnHAlignment value);
1746
+
1747
+ /**
1748
+ @brief 要素の横方向の配置方法を取得します。
1749
+ @param[in] uielement : instance
1750
+ @param[out] outReturn : instance.
1751
+ */
1752
+ LN_FLAT_API LnResult LnUIElement_GetHAlignment(LnHandle uielement, LnHAlignment* outReturn);
1753
+
1754
+ /**
1755
+ @brief 要素の縦方向の配置方法を設定します。
1756
+ @param[in] uielement : instance
1757
+ */
1758
+ LN_FLAT_API LnResult LnUIElement_SetVAlignment(LnHandle uielement, LnVAlignment value);
1759
+
1760
+ /**
1761
+ @brief 要素の縦方向の配置方法を取得します。
1762
+ @param[in] uielement : instance
1763
+ @param[out] outReturn : instance.
1764
+ */
1765
+ LN_FLAT_API LnResult LnUIElement_GetVAlignment(LnHandle uielement, LnVAlignment* outReturn);
1766
+
1767
+ /**
1768
+ @brief 要素の配置方法を設定します。
1769
+ @param[in] uielement : instance
1770
+ */
1771
+ LN_FLAT_API LnResult LnUIElement_SetAlignments(LnHandle uielement, LnHAlignment halign, LnVAlignment valign);
1772
+
1773
+ /**
1774
+ @brief このオブジェクトの位置を設定します。
1775
+ @param[in] uielement : instance
1776
+ */
1777
+ LN_FLAT_API LnResult LnUIElement_SetPosition(LnHandle uielement, const LnVector3* pos);
1778
+
1779
+ /**
1780
+ @brief このオブジェクトの位置を設定します。
1781
+ @param[in] uielement : instance
1782
+ */
1783
+ LN_FLAT_API LnResult LnUIElement_SetPositionXYZ(LnHandle uielement, float x, float y, float z);
1784
+
1785
+ /**
1786
+ @brief このオブジェクトの位置を位置を取得します。
1787
+ @param[in] uielement : instance
1788
+ @param[out] outReturn : instance.
1789
+ */
1790
+ LN_FLAT_API LnResult LnUIElement_GetPosition(LnHandle uielement, LnVector3* outReturn);
1791
+
1792
+ /**
1793
+ @brief このオブジェクトの回転を設定します。
1794
+ @param[in] uielement : instance
1795
+ */
1796
+ LN_FLAT_API LnResult LnUIElement_SetRotation(LnHandle uielement, const LnQuaternion* rot);
1797
+
1798
+ /**
1799
+ @brief このオブジェクトの回転をオイラー角から設定します。(radian)
1800
+ @param[in] uielement : instance
1801
+ */
1802
+ LN_FLAT_API LnResult LnUIElement_SetEulerAngles(LnHandle uielement, float x, float y, float z);
1803
+
1804
+ /**
1805
+ @brief このオブジェクトの回転を取得します。
1806
+ @param[in] uielement : instance
1807
+ @param[out] outReturn : instance.
1808
+ */
1809
+ LN_FLAT_API LnResult LnUIElement_GetRotation(LnHandle uielement, LnQuaternion* outReturn);
1810
+
1811
+ /**
1812
+ @brief このオブジェクトの拡大率を設定します。
1813
+ @param[in] uielement : instance
1814
+ */
1815
+ LN_FLAT_API LnResult LnUIElement_SetScale(LnHandle uielement, const LnVector3* scale);
1816
+
1817
+ /**
1818
+ @brief このオブジェクトの拡大率を設定します。
1819
+ @param[in] uielement : instance
1820
+ */
1821
+ LN_FLAT_API LnResult LnUIElement_SetScaleS(LnHandle uielement, float xyz);
1822
+
1823
+ /**
1824
+ @brief このオブジェクトの拡大率を設定します。
1825
+ @param[in] uielement : instance
1826
+ */
1827
+ LN_FLAT_API LnResult LnUIElement_SetScaleXY(LnHandle uielement, float x, float y);
1828
+
1829
+ /**
1830
+ @brief このオブジェクトの拡大率を取得します。
1831
+ @param[in] uielement : instance
1832
+ @param[out] outReturn : instance.
1833
+ */
1834
+ LN_FLAT_API LnResult LnUIElement_GetScale(LnHandle uielement, LnVector3* outReturn);
1835
+
1836
+ /**
1837
+ @brief このオブジェクトのローカルの中心位置を設定します。
1838
+ @param[in] uielement : instance
1839
+ */
1840
+ LN_FLAT_API LnResult LnUIElement_SetCenterPoint(LnHandle uielement, const LnVector3* value);
1841
+
1842
+ /**
1843
+ @brief このオブジェクトのローカルの中心位置を設定します。
1844
+ @param[in] uielement : instance
1845
+ */
1846
+ LN_FLAT_API LnResult LnUIElement_SetCenterPointXYZ(LnHandle uielement, float x, float y, float z);
1847
+
1848
+ /**
1849
+ @brief このオブジェクトのローカルの中心位置を取得します。
1850
+ @param[in] uielement : instance
1851
+ @param[out] outReturn : instance.
1852
+ */
1853
+ LN_FLAT_API LnResult LnUIElement_GetCenterPoint(LnHandle uielement, LnVector3* outReturn);
1854
+
1855
+ /**
1856
+ @brief Add element to container.
1857
+ @param[in] uielement : instance
1858
+ */
1859
+ LN_FLAT_API LnResult LnUIElement_AddChild(LnHandle uielement, LnHandle child);
1860
+
1861
+ typedef LnResult(*LnUIElement_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1862
+ LN_FLAT_API LnResult LnUIElement_OnSerialize_SetOverrideCallback(LnUIElement_OnSerialize_OverrideCallback callback);
1863
+ LN_FLAT_API LnResult LnUIElement_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1864
+
1865
+ extern LN_FLAT_API int LnUIElement_GetTypeInfoId();
1866
+ LN_FLAT_API void LnUIElement_SetManagedTypeInfoId(int64_t id);
1867
+
1868
+ //==============================================================================
1869
+ // ln::UIControl
1870
+
1871
+ typedef LnResult(*LnUIControl_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1872
+ LN_FLAT_API LnResult LnUIControl_OnSerialize_SetOverrideCallback(LnUIControl_OnSerialize_OverrideCallback callback);
1873
+ LN_FLAT_API LnResult LnUIControl_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1874
+
1875
+ extern LN_FLAT_API int LnUIControl_GetTypeInfoId();
1876
+ LN_FLAT_API void LnUIControl_SetManagedTypeInfoId(int64_t id);
1877
+
1878
+ //==============================================================================
1879
+ // ln::UIButtonBase
1880
+
1881
+ /**
1882
+ @brief set text.
1883
+ @param[in] uibuttonbase : instance
1884
+ */
1885
+ LN_FLAT_API LnResult LnUIButtonBase_SetText(LnHandle uibuttonbase, const LnChar* text);
1886
+ LN_FLAT_API LnResult LnUIButtonBase_SetTextA(LnHandle uibuttonbase, const char* text);
1887
+
1888
+ typedef LnResult(*LnUIButtonBase_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1889
+ LN_FLAT_API LnResult LnUIButtonBase_OnSerialize_SetOverrideCallback(LnUIButtonBase_OnSerialize_OverrideCallback callback);
1890
+ LN_FLAT_API LnResult LnUIButtonBase_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1891
+
1892
+ extern LN_FLAT_API int LnUIButtonBase_GetTypeInfoId();
1893
+ LN_FLAT_API void LnUIButtonBase_SetManagedTypeInfoId(int64_t id);
1894
+
1895
+ //==============================================================================
1896
+ // ln::UIButton
1897
+
1898
+ /**
1899
+ @brief init.
1900
+ @param[out] outUIButton : instance.
1901
+ */
1902
+ LN_FLAT_API LnResult LnUIButton_Create(LnHandle* outUIButton);
1903
+
1904
+ /**
1905
+ @brief 表示文字列を指定して UIButton を作成します。
1906
+ @param[out] outUIButton : instance.
1907
+ */
1908
+ LN_FLAT_API LnResult LnUIButton_CreateWithText(const LnChar* text, LnHandle* outUIButton);
1909
+ LN_FLAT_API LnResult LnUIButton_CreateWithTextA(const char* text, LnHandle* outUIButton);
1910
+
1911
+ /**
1912
+ @brief Clicked イベントの通知を受け取るコールバックを登録します。
1913
+ @param[in] uibutton : instance
1914
+ @param[out] outReturn : instance. (このオブジェクトは不要になったら LnObject_Release で参照を開放する必要があります)
1915
+ */
1916
+ LN_FLAT_API LnResult LnUIButton_ConnectOnClicked(LnHandle uibutton, LnHandle handler, LnHandle* outReturn);
1917
+
1918
+ typedef LnResult(*LnUIButton_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1919
+ LN_FLAT_API LnResult LnUIButton_OnSerialize_SetOverrideCallback(LnUIButton_OnSerialize_OverrideCallback callback);
1920
+ LN_FLAT_API LnResult LnUIButton_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1921
+
1922
+ extern LN_FLAT_API int LnUIButton_GetTypeInfoId();
1923
+ LN_FLAT_API void LnUIButton_SetManagedTypeInfoId(int64_t id);
1924
+
1925
+ //==============================================================================
1926
+ // ln::UITextBlock
1927
+
1928
+ /**
1929
+ @brief UITextBlock を作成します。
1930
+ @param[out] outUITextBlock : instance.
1931
+ */
1932
+ LN_FLAT_API LnResult LnUITextBlock_Create(LnHandle* outUITextBlock);
1933
+
1934
+ /**
1935
+ @brief 表示文字列を指定して、UITextBlock を作成します。
1936
+ @param[in] text : 表示文字列
1937
+ @param[out] outUITextBlock : instance.
1938
+ */
1939
+ LN_FLAT_API LnResult LnUITextBlock_CreateWithText(const LnChar* text, LnHandle* outUITextBlock);
1940
+ LN_FLAT_API LnResult LnUITextBlock_CreateWithTextA(const char* text, LnHandle* outUITextBlock);
1941
+
1942
+ typedef LnResult(*LnUITextBlock_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1943
+ LN_FLAT_API LnResult LnUITextBlock_OnSerialize_SetOverrideCallback(LnUITextBlock_OnSerialize_OverrideCallback callback);
1944
+ LN_FLAT_API LnResult LnUITextBlock_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1945
+
1946
+ extern LN_FLAT_API int LnUITextBlock_GetTypeInfoId();
1947
+ LN_FLAT_API void LnUITextBlock_SetManagedTypeInfoId(int64_t id);
1948
+
1949
+ //==============================================================================
1950
+ // ln::UISprite
1951
+
1952
+ /**
1953
+ @brief スプライトが表示するテクスチャを設定します。
1954
+ @param[in] uisprite : instance
1955
+ */
1956
+ LN_FLAT_API LnResult LnUISprite_SetTexture(LnHandle uisprite, LnHandle texture);
1957
+
1958
+ /**
1959
+ @brief テクスチャのどの部分を表示するかを示す転送矩形を設定します。(ピクセル単位) デフォルトは Rect::Empty で、テクスチャ全体を転送することを示します。
1960
+ @param[in] uisprite : instance
1961
+ */
1962
+ LN_FLAT_API LnResult LnUISprite_SetSourceRect(LnHandle uisprite, const LnRect* rect);
1963
+
1964
+ /**
1965
+ @brief
1966
+ @param[in] uisprite : instance
1967
+ */
1968
+ LN_FLAT_API LnResult LnUISprite_SetSourceRectXYWH(LnHandle uisprite, float x, float y, float width, float height);
1969
+
1970
+ /**
1971
+ @brief テクスチャのどの部分を表示するかを示す転送矩形を取得します。(ピクセル単位)
1972
+ @param[in] uisprite : instance
1973
+ @param[out] outReturn : instance.
1974
+ */
1975
+ LN_FLAT_API LnResult LnUISprite_GetSourceRect(LnHandle uisprite, LnRect* outReturn);
1976
+
1977
+ /**
1978
+ @brief UISprite を作成します。
1979
+ @param[out] outUISprite : instance.
1980
+ */
1981
+ LN_FLAT_API LnResult LnUISprite_Create(LnHandle* outUISprite);
1982
+
1983
+ /**
1984
+ @brief テクスチャを指定して UISprite を作成します。
1985
+ @param[out] outUISprite : instance.
1986
+ */
1987
+ LN_FLAT_API LnResult LnUISprite_CreateWithTexture(LnHandle texture, LnHandle* outUISprite);
1988
+
1989
+ typedef LnResult(*LnUISprite_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
1990
+ LN_FLAT_API LnResult LnUISprite_OnSerialize_SetOverrideCallback(LnUISprite_OnSerialize_OverrideCallback callback);
1991
+ LN_FLAT_API LnResult LnUISprite_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
1992
+
1993
+ extern LN_FLAT_API int LnUISprite_GetTypeInfoId();
1994
+ LN_FLAT_API void LnUISprite_SetManagedTypeInfoId(int64_t id);
1995
+
1996
+ //==============================================================================
1997
+ // ln::Input
1998
+
1999
+ /**
2000
+ @brief ボタンが現在押されているかを判定します。
2001
+ @param[out] outReturn : instance.
2002
+ */
2003
+ LN_FLAT_API LnResult LnInput_Pressed(const LnChar* buttonName, LnBool* outReturn);
2004
+ LN_FLAT_API LnResult LnInput_PressedA(const char* buttonName, LnBool* outReturn);
2005
+
2006
+ /**
2007
+ @brief ボタンが新しく押された瞬間を判定します。
2008
+ @param[out] outReturn : instance.
2009
+ */
2010
+ LN_FLAT_API LnResult LnInput_Triggered(const LnChar* buttonName, LnBool* outReturn);
2011
+ LN_FLAT_API LnResult LnInput_TriggeredA(const char* buttonName, LnBool* outReturn);
2012
+
2013
+ /**
2014
+ @brief ボタンが離された瞬間を判定します。
2015
+ @param[out] outReturn : instance.
2016
+ */
2017
+ LN_FLAT_API LnResult LnInput_TriggeredOff(const LnChar* buttonName, LnBool* outReturn);
2018
+ LN_FLAT_API LnResult LnInput_TriggeredOffA(const char* buttonName, LnBool* outReturn);
2019
+
2020
+ /**
2021
+ @brief ボタンが新しく押された瞬間とリピート状態を判定します。
2022
+ @param[out] outReturn : instance.
2023
+ */
2024
+ LN_FLAT_API LnResult LnInput_Repeated(const LnChar* buttonName, LnBool* outReturn);
2025
+ LN_FLAT_API LnResult LnInput_RepeatedA(const char* buttonName, LnBool* outReturn);
2026
+
2027
+ /**
2028
+ @brief 指定した軸のアナログ値を取得します。
2029
+ @param[out] outReturn : instance.
2030
+ */
2031
+ LN_FLAT_API LnResult LnInput_GetAxisValue(const LnChar* buttonName, float* outReturn);
2032
+ LN_FLAT_API LnResult LnInput_GetAxisValueA(const char* buttonName, float* outReturn);
2033
+
2034
+ /**
2035
+ @brief 全てのアクションマッピングを削除します。
2036
+ */
2037
+ LN_FLAT_API LnResult LnInput_ClearAllBindings();
2038
+
2039
+
2040
+ //==============================================================================
2041
+ // ln::Mouse
2042
+
2043
+ /**
2044
+ @brief ボタンが現在押されているかを判定します。
2045
+ @param[out] outReturn : instance.
2046
+ */
2047
+ LN_FLAT_API LnResult LnMouse_Pressed(LnMouseButtons button, LnBool* outReturn);
2048
+
2049
+ /**
2050
+ @brief ボタンが新しく押された瞬間を判定します。
2051
+ @param[out] outReturn : instance.
2052
+ */
2053
+ LN_FLAT_API LnResult LnMouse_Triggered(LnMouseButtons button, LnBool* outReturn);
2054
+
2055
+ /**
2056
+ @brief ボタンが離された瞬間を判定します。
2057
+ @param[out] outReturn : instance.
2058
+ */
2059
+ LN_FLAT_API LnResult LnMouse_TriggeredOff(LnMouseButtons button, LnBool* outReturn);
2060
+
2061
+ /**
2062
+ @brief ボタンが新しく押された瞬間とリピート状態を判定します。
2063
+ @param[out] outReturn : instance.
2064
+ */
2065
+ LN_FLAT_API LnResult LnMouse_Repeated(LnMouseButtons button, LnBool* outReturn);
2066
+
2067
+ /**
2068
+ @brief マウスポインタの位置を取得します。
2069
+ @param[out] outReturn : instance.
2070
+ */
2071
+ LN_FLAT_API LnResult LnMouse_Position(LnPoint* outReturn);
2072
+
2073
+
2074
+ //==============================================================================
2075
+ // ln::EngineSettings
2076
+
2077
+ /**
2078
+ @brief メインウィンドウのクライアント領域の幅と高さを設定します。(default: 640x480)
2079
+ */
2080
+ LN_FLAT_API LnResult LnEngineSettings_SetMainWindowSize(int width, int height);
2081
+
2082
+ /**
2083
+ @brief メインウィンドウに対して作成される WorldView のサイズを設定します。(default: クライアント領域のサイズと同等)
2084
+ */
2085
+ LN_FLAT_API LnResult LnEngineSettings_SetMainWorldViewSize(int width, int height);
2086
+
2087
+ /**
2088
+ @brief メインウィンドウのタイトル文字列を設定します。
2089
+ */
2090
+ LN_FLAT_API LnResult LnEngineSettings_SetMainWindowTitle(const LnChar* title);
2091
+ LN_FLAT_API LnResult LnEngineSettings_SetMainWindowTitleA(const char* title);
2092
+
2093
+ /**
2094
+ @brief アセットが保存されているディレクトリを登録します。
2095
+ */
2096
+ LN_FLAT_API LnResult LnEngineSettings_AddAssetDirectory(const LnChar* path);
2097
+ LN_FLAT_API LnResult LnEngineSettings_AddAssetDirectoryA(const char* path);
2098
+
2099
+ /**
2100
+ @brief アセットファイルを登録します。
2101
+ */
2102
+ LN_FLAT_API LnResult LnEngineSettings_AddAssetArchive(const LnChar* fileFullPath, const LnChar* password);
2103
+ LN_FLAT_API LnResult LnEngineSettings_AddAssetArchiveA(const char* fileFullPath, const char* password);
2104
+
2105
+ /**
2106
+ @brief (default: Debug ビルドの場合true、それ以外は false)
2107
+ */
2108
+ LN_FLAT_API LnResult LnEngineSettings_SetDebugToolEnabled(LnBool enabled);
2109
+
2110
+ /**
2111
+ @brief デバッグ用のログファイルの出力有無を設定します。(default: Debug ビルドの場合true、それ以外は false)
2112
+ */
2113
+ LN_FLAT_API LnResult LnEngineSettings_SetEngineLogEnabled(LnBool enabled);
2114
+
2115
+ /**
2116
+ @brief デバッグ用のログファイルの出力先ファイルパスを設定します。(default: Empty(実行ファイルのディレクトリへ出力))
2117
+ */
2118
+ LN_FLAT_API LnResult LnEngineSettings_SetEngineLogFilePath(const LnChar* filePath);
2119
+ LN_FLAT_API LnResult LnEngineSettings_SetEngineLogFilePathA(const char* filePath);
2120
+
2121
+
2122
+ //==============================================================================
2123
+ // ln::Engine
2124
+
2125
+ /**
2126
+ @brief エンジンの初期化処理を行います。
2127
+ */
2128
+ LN_FLAT_API LnResult LnEngine_Initialize();
2129
+
2130
+ /**
2131
+ @brief エンジンの終了処理を行います。
2132
+ */
2133
+ LN_FLAT_API LnResult LnEngine_Finalize();
2134
+
2135
+ /**
2136
+ @brief
2137
+ @param[out] outReturn : instance.
2138
+ @return アプリケーションの終了が要求されている場合は false を返します。
2139
+ */
2140
+ LN_FLAT_API LnResult LnEngine_Update(LnBool* outReturn);
2141
+
2142
+ /**
2143
+ @brief アプリケーション開始からの経過時間を取得します。この値はタイムスケールの影響を受けます。
2144
+ @param[out] outReturn : instance.
2145
+ */
2146
+ LN_FLAT_API LnResult LnEngine_Time(double* outReturn);
2147
+
2148
+ /**
2149
+ @brief デフォルトで作成されるメインの Camera です。
2150
+ @param[out] outReturn : instance.
2151
+ */
2152
+ LN_FLAT_API LnResult LnEngine_GetCamera(LnHandle* outReturn);
2153
+
2154
+ /**
2155
+ @brief デフォルトで作成されるメインの DirectionalLight です。
2156
+ @param[out] outReturn : instance.
2157
+ */
2158
+ LN_FLAT_API LnResult LnEngine_GetLight(LnHandle* outReturn);
2159
+
2160
+ /**
2161
+ @brief デフォルトで作成されるメインの RenderView です。
2162
+ @param[out] outReturn : instance.
2163
+ */
2164
+ LN_FLAT_API LnResult LnEngine_GetRenderView(LnHandle* outReturn);
2165
+
2166
+
2167
+ //==============================================================================
2168
+ // ln::Application
2169
+
2170
+ /**
2171
+ @brief エンジンの初期化処理が完了した後に呼び出されます。
2172
+ @param[in] application : instance
2173
+ */
2174
+ LN_FLAT_API LnResult LnApplication_OnInit(LnHandle application);
2175
+
2176
+ /**
2177
+ @brief 毎フレーム呼び出されます。
2178
+ @param[in] application : instance
2179
+ */
2180
+ LN_FLAT_API LnResult LnApplication_OnUpdate(LnHandle application);
2181
+
2182
+ /**
2183
+ @brief デフォルトで作成されるメインの World を取得します。
2184
+ @param[in] application : instance
2185
+ @param[out] outReturn : instance.
2186
+ */
2187
+ LN_FLAT_API LnResult LnApplication_World(LnHandle application, LnHandle* outReturn);
2188
+
2189
+ /**
2190
+ @brief
2191
+ @param[out] outApplication : instance.
2192
+ */
2193
+ LN_FLAT_API LnResult LnApplication_Create(LnHandle* outApplication);
2194
+
2195
+ typedef LnResult(*LnApplication_OnSerialize_OverrideCallback)(LnHandle object, LnHandle ar);
2196
+ LN_FLAT_API LnResult LnApplication_OnSerialize_SetOverrideCallback(LnApplication_OnSerialize_OverrideCallback callback);
2197
+ LN_FLAT_API LnResult LnApplication_OnSerialize_CallOverrideBase(LnHandle object, LnHandle ar);
2198
+ typedef LnResult(*LnApplication_OnInit_OverrideCallback)(LnHandle application);
2199
+ LN_FLAT_API LnResult LnApplication_OnInit_SetOverrideCallback(LnApplication_OnInit_OverrideCallback callback);
2200
+ LN_FLAT_API LnResult LnApplication_OnInit_CallOverrideBase(LnHandle application);
2201
+ typedef LnResult(*LnApplication_OnUpdate_OverrideCallback)(LnHandle application);
2202
+ LN_FLAT_API LnResult LnApplication_OnUpdate_SetOverrideCallback(LnApplication_OnUpdate_OverrideCallback callback);
2203
+ LN_FLAT_API LnResult LnApplication_OnUpdate_CallOverrideBase(LnHandle application);
2204
+
2205
+ extern LN_FLAT_API int LnApplication_GetTypeInfoId();
2206
+ LN_FLAT_API void LnApplication_SetManagedTypeInfoId(int64_t id);
2207
+
2208
+ //==============================================================================
2209
+ // ln::Debug
2210
+
2211
+ /**
2212
+ @brief ウィンドウ上にデバッグ文字列を表示します。
2213
+ @param[in] str : 表示文字列
2214
+ */
2215
+ LN_FLAT_API LnResult LnDebug_Print(const LnChar* str);
2216
+ LN_FLAT_API LnResult LnDebug_PrintA(const char* str);
2217
+
2218
+ /**
2219
+ @brief 表示時間を指定して、ウィンドウ上にデバッグ文字列を表示します。
2220
+ @param[in] time : 表示時間 (s)
2221
+ @param[in] str : 表示文字列
2222
+ */
2223
+ LN_FLAT_API LnResult LnDebug_PrintWithTime(float time, const LnChar* str);
2224
+ LN_FLAT_API LnResult LnDebug_PrintWithTimeA(float time, const char* str);
2225
+
2226
+ /**
2227
+ @brief 表示時間と文字色を指定して、ウィンドウ上にデバッグ文字列を表示します。
2228
+ @param[in] time : 表示時間 (s)
2229
+ @param[in] color : 文字色
2230
+ @param[in] str : 表示文字列
2231
+ */
2232
+ LN_FLAT_API LnResult LnDebug_PrintWithTimeAndColor(float time, const LnColor* color, const LnChar* str);
2233
+ LN_FLAT_API LnResult LnDebug_PrintWithTimeAndColorA(float time, const LnColor* color, const char* str);
2234
+
2235
+
2236
+
2237
+
2238
+ } // extern "C"
2239
+