47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
// 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 <ft2build.h>
|
|
#include FT_FREETYPE_H
|
|
|
|
using namespace Dawn;
|
|
|
|
std::shared_ptr<TrueTypeTexture> texture;
|
|
|
|
void Dawn::helloWorldScene(Scene &s) {
|
|
texture = s.getGame()->assetManager.get<TrueTypeTexture>("ysabeau_regular", 32);
|
|
|
|
while(!s.getGame()->assetManager.isLoaded("ysabeau_regular")) {
|
|
s.getGame()->assetManager.update();
|
|
}
|
|
|
|
auto cameraItem = s.createSceneItem();
|
|
auto camera = cameraItem->addComponent<Camera>();
|
|
cameraItem->lookAt({ 120, 120, 120 }, { 0, 0, 0 }, { 0, 1, 0 });
|
|
|
|
auto quad = s.createSceneItem();
|
|
auto quadMesh = std::make_shared<Mesh>();
|
|
|
|
glm::vec2 position = { 0, 0 };
|
|
glm::vec2 size = texture->bufferStringToMesh(
|
|
quadMesh,
|
|
L"Hello World!",
|
|
position,
|
|
true
|
|
);
|
|
|
|
auto quadRenderer = quad->addComponent<MeshRenderer>();
|
|
quadRenderer->mesh = quadMesh;
|
|
|
|
auto quadMaterial = quad->addComponent<SimpleTexturedMaterial>();
|
|
quadMaterial->setTexture(texture->texture);
|
|
} |