mirror of
https://github.com/bailwillharr/engine.git
synced 2024-09-21 04:51:18 +00:00
Limit to vsync by default
This commit is contained in:
parent
c56e9fcdee
commit
68d54667ec
@ -16,6 +16,7 @@ set(SRC_FILES
|
||||
|
||||
src/systems/transform.cpp
|
||||
src/systems/render.cpp
|
||||
src/systems/ui.cpp
|
||||
src/systems/collisions.cpp
|
||||
|
||||
src/resources/shader.cpp
|
||||
@ -46,6 +47,7 @@ set(INCLUDE_FILES
|
||||
|
||||
include/systems/transform.hpp
|
||||
include/systems/render.hpp
|
||||
include/systems/ui.hpp
|
||||
include/systems/collisions.hpp
|
||||
|
||||
include/resources/shader.hpp
|
||||
@ -73,6 +75,7 @@ set(INCLUDE_FILES
|
||||
include/components/transform.hpp
|
||||
include/components/renderable.hpp
|
||||
include/components/collider.hpp
|
||||
include/components/ui_element.hpp
|
||||
)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
|
9
include/components/ui_element.hpp
Normal file
9
include/components/ui_element.hpp
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
namespace engine {
|
||||
|
||||
struct UIElementComponent {
|
||||
int n;
|
||||
};
|
||||
|
||||
}
|
@ -20,11 +20,13 @@ namespace engine::gfx {
|
||||
GraphicsSettings()
|
||||
{
|
||||
// sane defaults
|
||||
vsync = false;
|
||||
vsync = true;
|
||||
waitForPresent = true; // not all GPUs/drivers support immediate present with V-sync enabled
|
||||
msaaLevel = MSAALevel::MSAA_OFF;
|
||||
}
|
||||
|
||||
bool vsync;
|
||||
bool waitForPresent; // idle CPU after render until the frame has been presented (no affect with V-sync disabled)
|
||||
MSAALevel msaaLevel;
|
||||
|
||||
};
|
||||
|
19
include/systems/ui.hpp
Normal file
19
include/systems/ui.hpp
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "ecs_system.hpp"
|
||||
|
||||
namespace engine {
|
||||
|
||||
class UISystem : public System {
|
||||
|
||||
public:
|
||||
UISystem(Scene* scene);
|
||||
|
||||
void onUpdate(float ts) override;
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -598,11 +598,13 @@ namespace engine {
|
||||
|
||||
swapchain->presentMode = VK_PRESENT_MODE_FIFO_KHR; // This mode is always available
|
||||
if (settings.vsync == true) {
|
||||
if (settings.waitForPresent == false) {
|
||||
for (const auto& presMode : presentModes) {
|
||||
if (presMode == VK_PRESENT_MODE_MAILBOX_KHR) {
|
||||
swapchain->presentMode = presMode; // this mode allows V-sync without fixing FPS to refresh rate
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (const auto& presMode : presentModes) {
|
||||
if (presMode == VK_PRESENT_MODE_IMMEDIATE_KHR) {
|
||||
|
21
src/systems/ui.cpp
Normal file
21
src/systems/ui.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "systems/ui.hpp"
|
||||
|
||||
#include "components/ui_element.hpp"
|
||||
|
||||
#include <typeinfo>
|
||||
|
||||
namespace engine {
|
||||
|
||||
UISystem::UISystem(Scene* scene)
|
||||
: System(scene, { typeid(UIElementComponent).hash_code() })
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void UISystem::onUpdate(float ts)
|
||||
{
|
||||
(void)ts;
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -43,7 +43,7 @@ void playGame(bool enableFrameLimiter)
|
||||
INFO("FPS limiter: {}", enableFrameLimiter ? "ON" : "OFF");
|
||||
|
||||
engine::gfx::GraphicsSettings graphicsSettings{};
|
||||
graphicsSettings.vsync = false;
|
||||
graphicsSettings.vsync = true;
|
||||
graphicsSettings.msaaLevel = engine::gfx::MSAALevel::MSAA_OFF;
|
||||
engine::Application app(PROJECT_NAME, PROJECT_VERSION, graphicsSettings);
|
||||
|
||||
@ -62,7 +62,7 @@ void playGame(bool enableFrameLimiter)
|
||||
myScene->registerSystem<CameraControllerSystem>();
|
||||
|
||||
auto camera = myScene->createEntity("camera");
|
||||
myScene->getComponent<engine::TransformComponent>(camera)->position.y = 8.0f;
|
||||
myScene->getComponent<engine::TransformComponent>(camera)->position = { 0.0f, 10.0f, 0.0f };
|
||||
auto cameraCollider = myScene->addComponent<engine::ColliderComponent>(camera);
|
||||
cameraCollider->isStatic = false;
|
||||
cameraCollider->isTrigger = true;
|
||||
@ -146,7 +146,7 @@ void playGame(bool enableFrameLimiter)
|
||||
}
|
||||
|
||||
// cubes!
|
||||
{
|
||||
if (false) { // disabled
|
||||
constexpr int SIZE = 10;
|
||||
|
||||
const uint32_t cubeParent = myScene->createEntity("cubeParent");
|
||||
|
Loading…
Reference in New Issue
Block a user