// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "scene/SceneList.hpp" #include "component/display/Camera.hpp" #include "prefab/SimpleSpinningCube.hpp" #include "display/font/TrueTypeTexture.hpp" #include "component/display/material/SimpleTexturedMaterial.hpp" #include "display/mesh/QuadMesh.hpp" #include #include FT_FREETYPE_H using namespace Dawn; std::shared_ptr texture; void Dawn::helloWorldScene(Scene &s) { texture = s.getGame()->assetManager.get("ysabeau_regular", 32); while(!s.getGame()->assetManager.isLoaded("ysabeau_regular")) { s.getGame()->assetManager.update(); } auto cameraItem = s.createSceneItem(); auto camera = cameraItem->addComponent(); cameraItem->lookAt({ 120, 120, 120 }, { 0, 0, 0 }, { 0, 1, 0 }); auto quad = s.createSceneItem(); auto quadMesh = std::make_shared(); glm::vec2 position = { 0, 0 }; glm::vec2 size = texture->bufferStringToMesh( quadMesh, L"Hello World!", position, true ); auto quadRenderer = quad->addComponent(); quadRenderer->mesh = quadMesh; auto quadMaterial = quad->addComponent(); quadMaterial->setTexture(texture->texture); }