Commit f5a4ccec7fbd222bce0455384b043fbf04a0ed5c

Authored by Seungho BAEK
Committed by Gerrit Code Review
2 parents 6cf19576 c7d73766

Merge "Use ShaderDefinitionFactory to ShaderManager" into devel/master

examples/scene3d-light/scene3d-light-example.cpp
... ... @@ -15,11 +15,10 @@
15 15 *
16 16 */
17 17  
  18 +#include <dali-scene3d/dali-scene3d.h>
  19 +#include <dali-scene3d/public-api/light/light.h>
18 20 #include <dali-toolkit/dali-toolkit.h>
19   -#include <dali-scene3d/public-api/controls/scene-view/scene-view.h>
20   -#include <dali-scene3d/public-api/controls/model/model.h>
21 21 #include <dali/devel-api/actors/actor-devel.h>
22   -#include <dali-scene3d/public-api/light/light.h>
23 22  
24 23 #include <dali/integration-api/debug.h>
25 24  
... ... @@ -152,7 +151,7 @@ public:
152 151 sceneView.SetImageBasedLightSource("", "", 1.0f);
153 152 light1.Enable(true);
154 153 light2.Enable(true);
155   - light6.Enable(false); // to reset state of lights
  154 + light6.Enable(false); // to reset state of lights
156 155 light6.Enable(true);
157 156 light3.Enable(true);
158 157 }
... ... @@ -194,19 +193,19 @@ public:
194 193 }
195 194  
196 195 private:
197   - Application& mApplication;
198   - Scene3D::Light light1;
199   - Scene3D::Light light2;
200   - Scene3D::Light light3;
201   - Scene3D::Light light4;
202   - Scene3D::Light light5;
203   - Scene3D::Light light6;
  196 + Application& mApplication;
  197 + Scene3D::Light light1;
  198 + Scene3D::Light light2;
  199 + Scene3D::Light light3;
  200 + Scene3D::Light light4;
  201 + Scene3D::Light light5;
  202 + Scene3D::Light light6;
204 203 Scene3D::SceneView sceneView;
205 204 };
206 205  
207 206 int DALI_EXPORT_API main(int argc, char** argv)
208 207 {
209   - Application application = Application::New(&argc, &argv);
  208 + Application application = Application::New(&argc, &argv);
210 209 Scene3dLightController test(application);
211 210 application.MainLoop();
212 211 return 0;
... ...
examples/scene3d/scene3d-example.cpp
... ... @@ -15,23 +15,10 @@
15 15 *
16 16 */
17 17 #include "scene3d-example.h"
18   -#include <dali-toolkit/dali-toolkit.h>
19 18 #include <dirent.h>
20 19 #include <cstring>
  20 +#include <filesystem>
21 21 #include <string_view>
22   -#include "dali-scene3d/public-api/loader/model-loader.h"
23   -#include "dali-scene3d/public-api/loader/light-parameters.h"
24   -#include "dali-scene3d/public-api/loader/load-result.h"
25   -#include "dali-scene3d/public-api/loader/shader-definition-factory.h"
26   -#include "dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h"
27   -#include "dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h"
28   -#include "dali-toolkit/public-api/controls/text-controls/text-label.h"
29   -#include "dali-toolkit/public-api/visuals/gradient-visual-properties.h"
30   -#include "dali/public-api/actors/layer.h"
31   -#include "dali/public-api/adaptor-framework/key.h"
32   -#include "dali/public-api/events/key-event.h"
33   -#include "dali/public-api/object/property-array.h"
34   -#include "dali/public-api/render-tasks/render-task-list.h"
35 22 #include "scene3d-extension.h"
36 23  
37 24 using namespace Dali;
... ... @@ -59,7 +46,8 @@ const std::string RESOURCE_TYPE_DIRS[]{
59 46 using StringVector = std::vector<std::string>;
60 47  
61 48 StringVector ListFiles(
62   - const std::string& path, bool (*predicate)(const char*) = [](const char*) { return true; })
  49 + const std::string& path, bool (*predicate)(const char*) = [](const char*)
  50 + { return true; })
63 51 {
64 52 StringVector results;
65 53  
... ... @@ -127,7 +115,8 @@ Actor CreateErrorMessage(std::string msg)
127 115 void ConfigureBlendShapeShaders(ResourceBundle& resources, const SceneDefinition& scene, Actor root, std::vector<BlendshapeShaderConfigurationRequest>&& requests)
128 116 {
129 117 std::vector<std::string> errors;
130   - auto onError = [&errors](const std::string& msg) {
  118 + auto onError = [&errors](const std::string& msg)
  119 + {
131 120 errors.push_back(msg);
132 121 };
133 122 if(!scene.ConfigureBlendshapeShaders(resources, root, std::move(requests), onError))
... ... @@ -142,7 +131,8 @@ void ConfigureBlendShapeShaders(ResourceBundle&amp; resources, const SceneDefinition
142 131  
143 132 Actor LoadScene(std::string sceneName, CameraActor camera, std::vector<Dali::Animation>& generatedAnimations, Animation& animation)
144 133 {
145   - ResourceBundle::PathProvider pathProvider = [](ResourceType::Value type) {
  134 + ResourceBundle::PathProvider pathProvider = [](ResourceType::Value type)
  135 + {
146 136 return Application::GetResourcePath() + RESOURCE_TYPE_DIRS[type];
147 137 };
148 138  
... ... @@ -178,13 +168,19 @@ Actor LoadScene(std::string sceneName, CameraActor camera, std::vector&lt;Dali::Ani
178 168 cameraParameters[0].ConfigureCamera(camera);
179 169 SetActorCentered(camera);
180 170  
181   - ViewProjection viewProjection = cameraParameters[0].GetViewProjection();
182   - Transforms xforms{
  171 + std::filesystem::path modelPath(path);
  172 + std::string extension = modelPath.extension();
  173 + std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
  174 +
  175 + Scene3D::Loader::ShaderManagerPtr shaderManager = (extension == GLTF_EXTENSION) ? new Scene3D::Loader::ShaderManager() : nullptr;
  176 + ViewProjection viewProjection = cameraParameters[0].GetViewProjection();
  177 + Transforms xforms{
183 178 MatrixStack{},
184 179 viewProjection};
185 180 NodeDefinition::CreateParams nodeParams{
186 181 resources,
187 182 xforms,
  183 + shaderManager,
188 184 {},
189 185 {},
190 186 {}};
... ... @@ -267,11 +263,11 @@ void Scene3DExample::OnInit(Application&amp; app)
267 263 // get scenes
268 264 auto resPath = Application::GetResourcePath();
269 265 auto scenePath = resPath + RESOURCE_TYPE_DIRS[ResourceType::Mesh];
270   - auto sceneNames = ListFiles(scenePath, [](const char* name) {
  266 + auto sceneNames = ListFiles(scenePath, [](const char* name)
  267 + {
271 268 auto len = strlen(name);
272 269 return (len > DLI_EXTENSION.size() && DLI_EXTENSION.compare(name + (len - DLI_EXTENSION.size())) == 0) ||
273   - (len > GLTF_EXTENSION.size() && GLTF_EXTENSION.compare(name + (len - GLTF_EXTENSION.size())) == 0);
274   - });
  270 + (len > GLTF_EXTENSION.size() && GLTF_EXTENSION.compare(name + (len - GLTF_EXTENSION.size())) == 0); });
275 271 mSceneNames = sceneNames;
276 272  
277 273 // create Dali objects
... ...
examples/scene3d/scene3d-example.h
... ... @@ -17,21 +17,11 @@
17 17 *
18 18 */
19 19  
  20 +#include <dali-scene3d/dali-scene3d.h>
  21 +#include <dali-toolkit/dali-toolkit.h>
  22 +#include <dali-toolkit/devel-api/controls/navigation-view/navigation-view.h>
  23 +#include <dali/dali.h>
20 24 #include <memory>
21   -#include "dali-scene3d/public-api/loader/animation-definition.h"
22   -#include "dali-scene3d/public-api/loader/camera-parameters.h"
23   -#include "dali-scene3d/public-api/loader/node-definition.h"
24   -#include "dali-scene3d/public-api/loader/scene-definition.h"
25   -#include "dali-toolkit/devel-api/controls/navigation-view/navigation-view.h"
26   -#include "dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h"
27   -#include "dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h"
28   -#include "dali-toolkit/public-api/controls/scrollable/item-view/item-view.h"
29   -#include "dali/public-api/actors/camera-actor.h"
30   -#include "dali/public-api/adaptor-framework/application.h"
31   -#include "dali/public-api/common/vector-wrapper.h"
32   -#include "dali/public-api/events/pan-gesture-detector.h"
33   -#include "dali/public-api/render-tasks/render-task.h"
34   -#include "dali/public-api/signals/connection-tracker.h"
35 25  
36 26 class Scene3DExtension;
37 27  
... ... @@ -83,4 +73,4 @@ private: // methods
83 73 void OnKeyboardFocusChanged(Dali::Actor originalFocusedActor, Dali::Actor currentFocusedActor);
84 74 };
85 75  
86   -#endif //SCENE_LAUNCHER_H_
  76 +#endif // SCENE_LAUNCHER_H_
... ...