Fix unset audio device; Force never cursor lock; Cleanup

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2021-10-18 02:57:42 +01:00
parent d11db41c43
commit 16be4fcabb
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
4 changed files with 17 additions and 51 deletions

View file

@ -75,7 +75,6 @@ struct Window::Internal {
std::string lastWindowTitle;
int frame = 0;
bool ignoreNextMouseDelta = false;
int frameSwapInterval = 1;
double monitorRefreshRate = 60.0; // FIXME
double frameTime = 0.0;
@ -150,19 +149,12 @@ void Window::step() {
internal->frameTime = frameTime;
internal->lastFrameDuration = frameTime - lastFrameTime;
// DEBUG("%.2lf Hz", 1.0 / internal->lastFrameDuration);
double t1 = 0.0, t2 = 0.0, t3 = 0.0, t4 = 0.0, t5 = 0.0;
// Make event handlers and step() have a clean NanoVG context
// nvgReset(vg);
bndSetFont(uiFont->handle);
// Poll events
// Save and restore context because event handler set their own context based on which window they originate from.
// Context* context = contextGet();
// glfwPollEvents();
// contextSet(context);
// Set window title
std::string windowTitle = APP_NAME + " " + APP_EDITION_NAME + " " + APP_VERSION;
if (APP->patch->path != "") {
@ -189,7 +181,6 @@ void Window::step() {
int fbWidth = winWidth;// * newPixelRatio;
int fbHeight = winHeight;// * newPixelRatio;
windowRatio = (float)fbWidth / winWidth;
t1 = system::getTime();
if (APP->scene) {
// DEBUG("%f %f %d %d", pixelRatio, windowRatio, fbWidth, winWidth);
@ -198,40 +189,22 @@ void Window::step() {
// Step scene
APP->scene->step();
t2 = system::getTime();
// Render scene
bool visible = true;
if (visible) {
// Update and render
// nvgBeginFrame(vg, fbWidth, fbHeight, pixelRatio);
nvgScale(vg, pixelRatio, pixelRatio);
// Update and render
nvgScale(vg, pixelRatio, pixelRatio);
// Draw scene
widget::Widget::DrawArgs args;
args.vg = vg;
args.clipBox = APP->scene->box.zeroPos();
APP->scene->draw(args);
t3 = system::getTime();
// Draw scene
widget::Widget::DrawArgs args;
args.vg = vg;
args.clipBox = APP->scene->box.zeroPos();
APP->scene->draw(args);
glViewport(0, 0, fbWidth, fbHeight);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
// nvgEndFrame(vg);
t4 = system::getTime();
}
glViewport(0, 0, fbWidth, fbHeight);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
}
t5 = system::getTime();
// DEBUG("pre-step %6.1f step %6.1f draw %6.1f nvgEndFrame %6.1f glfwSwapBuffers %6.1f total %6.1f",
// (t1 - frameTime) * 1e3f,
// (t2 - t1) * 1e3f,
// (t3 - t2) * 1e3f,
// (t4 - t2) * 1e3f,
// (t5 - t4) * 1e3f,
// (t5 - frameTime) * 1e3f
// );
internal->frame++;
}
@ -250,23 +223,15 @@ void Window::close() {
void Window::cursorLock() {
if (!settings::allowCursorLock)
return;
internal->ignoreNextMouseDelta = true;
}
void Window::cursorUnlock() {
if (!settings::allowCursorLock)
return;
internal->ignoreNextMouseDelta = true;
}
bool Window::isCursorLocked() {
return internal->ignoreNextMouseDelta;
return false;
}