2017-06-22 14:53:49 -04:00
|
|
|
/*
|
|
|
|
|
* MVKExample.cpp
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2016-2017 The Brenwill Workshop Ltd.
|
|
|
|
|
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
|
|
|
|
|
*/
|
|
|
|
|
|
2021-09-12 02:34:38 -04:00
|
|
|
#include <Carbon/Carbon.h>
|
2017-06-22 14:53:49 -04:00
|
|
|
|
|
|
|
|
#include "MVKExample.h"
|
|
|
|
|
#include "examples.h"
|
|
|
|
|
|
2021-09-12 02:34:38 -04:00
|
|
|
/*
|
|
|
|
|
void MVKExample::renderFrame() { // SRS - don't need to expose VulkanExampleBase::renderFrame() to DemoViewController
|
2017-06-22 14:53:49 -04:00
|
|
|
_vulkanExample->renderFrame();
|
|
|
|
|
}
|
2021-09-12 02:34:38 -04:00
|
|
|
*/
|
2017-06-22 14:53:49 -04:00
|
|
|
|
2021-09-11 11:36:27 -04:00
|
|
|
void MVKExample::displayLinkOutputCb() { // SRS - expose VulkanExampleBase::displayLinkOutputCb() to DemoViewController
|
|
|
|
|
_vulkanExample->displayLinkOutputCb();
|
2021-09-10 01:23:49 -04:00
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::windowWillResize(float x, float y) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->windowWillResize(x, y);
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::windowDidResize() {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->windowDidResize();
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::keyPressed(uint32_t keyCode) {
|
|
|
|
|
_vulkanExample->keyPressed(keyCode);
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-12 02:34:38 -04:00
|
|
|
void MVKExample::keyDown(uint32_t keyCode) {
|
|
|
|
|
switch (keyCode)
|
|
|
|
|
{
|
|
|
|
|
case kVK_ANSI_P:
|
|
|
|
|
_vulkanExample->paused = !_vulkanExample->paused;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_W:
|
|
|
|
|
_vulkanExample->camera.keys.up = true;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_S:
|
|
|
|
|
_vulkanExample->camera.keys.down = true;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_A:
|
|
|
|
|
_vulkanExample->camera.keys.left = true;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_D:
|
|
|
|
|
_vulkanExample->camera.keys.right = true;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MVKExample::keyUp(uint32_t keyCode) {
|
|
|
|
|
switch (keyCode)
|
|
|
|
|
{
|
|
|
|
|
case kVK_ANSI_W:
|
|
|
|
|
_vulkanExample->camera.keys.up = false;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_S:
|
|
|
|
|
_vulkanExample->camera.keys.down = false;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_A:
|
|
|
|
|
_vulkanExample->camera.keys.left = false;
|
|
|
|
|
break;
|
|
|
|
|
case kVK_ANSI_D:
|
|
|
|
|
_vulkanExample->camera.keys.right = false;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::mouseDown(double x, double y) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mousePos = glm::vec2(x, y);
|
|
|
|
|
_vulkanExample->mouseButtons.left = true;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::mouseUp(double x, double y) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mousePos = glm::vec2(x, y);
|
|
|
|
|
_vulkanExample->mouseButtons.left = false;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::otherMouseDown() {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mouseButtons.right = true;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::otherMouseUp() {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mouseButtons.right = false;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::mouseDragged(double x, double y) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mouseDragged(x, y);
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::mouseMoved(double x, double y) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->mouseDragged(x, y);
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-13 01:51:30 -04:00
|
|
|
void MVKExample::scrollWheel(short wheelDelta) {
|
2021-09-12 02:34:38 -04:00
|
|
|
_vulkanExample->camera.translate(glm::vec3(0.0f, 0.0f, wheelDelta * 0.05f * _vulkanExample->camera.movementSpeed));
|
2017-06-22 14:53:49 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MVKExample::MVKExample(void* view) {
|
|
|
|
|
_vulkanExample = new VulkanExample();
|
|
|
|
|
_vulkanExample->initVulkan();
|
|
|
|
|
_vulkanExample->setupWindow(view);
|
2021-09-10 01:23:49 -04:00
|
|
|
// _vulkanExample->initSwapchain(); // SRS - initSwapchain() is now part of VulkanExampleBase::prepare()
|
2017-06-22 14:53:49 -04:00
|
|
|
_vulkanExample->prepare();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MVKExample::~MVKExample() {
|
|
|
|
|
delete _vulkanExample;
|
|
|
|
|
}
|