aboutsummaryrefslogtreecommitdiffstatsci
path: root/tests/test1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test1.cpp')
-rw-r--r--tests/test1.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/test1.cpp b/tests/test1.cpp
new file mode 100644
index 0000000..efd6090
--- /dev/null
+++ b/tests/test1.cpp
@@ -0,0 +1,75 @@
+#include "vke.h"
+#include "camera.hpp"
+#include "phyInfos.h"
+#include "pbrrenderer2.h"
+#include "VulkanSwapChain.hpp"
+
+class Test : public vke::engine_t
+{
+public:
+ pbrRenderer* sceneRenderer = nullptr;
+ vkglTF::Model* mod;
+
+ Test() : engine_t(1024, 768, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
+ {
+ title = "Vulkan Chess glTf 2.0 PBR";
+ camera->type = vke::Camera::CameraType::firstperson;
+ camera->movementSpeed = 8.0f;
+ camera->rotationSpeed = 0.25f;
+ camera->setPerspective(50.0f, (float)width / (float)height, 0.1f, 50.0f);
+ camera->setRotation({ 42.0f, 0.0f, 0.0f });
+ camera->setPosition({ .0f, -12.f, -15.f });
+
+ settings.validation = true;
+
+ phyInfos->enabledFeatures.samplerAnisotropy
+ = phyInfos->features.samplerAnisotropy;
+ phyInfos->selectQueue (phyInfos->pQueue);
+ }
+
+ ~Test()
+ {
+ delete(sceneRenderer);
+ }
+
+ virtual void prepare() {
+ sceneRenderer = new pbrRenderer();
+
+ sceneRenderer->create(device, renderTarget, sharedUBOs);
+
+ sceneRenderer->models.resize(1);
+ mod = &sceneRenderer->models[0];
+
+ mod->loadFromFile ("data/models/chess.gltf", device, true);
+
+ mod->addInstance("frame", glm::translate(glm::mat4(1.0), glm::vec3( 0,0,0)));
+
+ sceneRenderer->prepareModels();
+ sceneRenderer->buildCommandBuffer();
+ }
+
+ void render () {
+ if (!prepared)
+ return;
+
+ prepareFrame();
+
+ sceneRenderer->submit(device->queue, &swapChain->presentCompleteSemaphore, 1);
+ VK_CHECK_RESULT(swapChain->queuePresent(device->queue, sceneRenderer->drawComplete));
+
+ //update();
+ }
+};
+
+Test *test;
+
+
+int main(const int argc, const char *argv[])
+{
+
+ for (size_t i = 0; i < argc; i++) { Test::args.push_back(argv[i]); };
+ test = new Test();
+ test->start();
+ delete(test);
+ return 0;
+}