diff --git a/src/graphics/graphics.c b/src/graphics/graphics.c index 90ec1735..4171402c 100644 --- a/src/graphics/graphics.c +++ b/src/graphics/graphics.c @@ -1199,6 +1199,11 @@ void lovrGraphicsPushDisplay(int framebuffer, mat4 projection, int* viewport) { state.displays[state.display].framebuffer = framebuffer; memcpy(state.displays[state.display].projection, projection, 16 * sizeof(float)); memcpy(state.displays[state.display].viewport, viewport, 4 * sizeof(int)); + + if (state.canvasCount == 0) { + lovrGraphicsBindFramebuffer(framebuffer); + lovrGraphicsSetViewport(viewport[0], viewport[1], viewport[2], viewport[3]); + } } void lovrGraphicsPopDisplay() { diff --git a/src/headset/openvr.c b/src/headset/openvr.c index f26580a5..df992882 100644 --- a/src/headset/openvr.c +++ b/src/headset/openvr.c @@ -764,7 +764,7 @@ static void openvrRenderTo(headsetRenderCallback callback, void* userdata) { lovrGraphicsPushDisplay(state.canvas->texture.id, projection, viewport); lovrGraphicsPush(); lovrGraphicsMatrixTransform(MATRIX_VIEW, transform); - lovrGraphicsClear(true, true, false, (Color) { 0, 0, 0, 0 }, 1., 0); + lovrGraphicsClear(true, true, false, lovrGraphicsGetBackgroundColor(), 1., 0); callback(eye, userdata); lovrGraphicsPop(); lovrGraphicsPopDisplay(); diff --git a/src/headset/webvr.c b/src/headset/webvr.c index 7cdc5d5b..742de448 100644 --- a/src/headset/webvr.c +++ b/src/headset/webvr.c @@ -15,7 +15,7 @@ typedef struct { static HeadsetState state; static void onRequestAnimationFrame(void* userdata) { - lovrGraphicsClear(true, true, true); + lovrGraphicsClear(true, true, true, lovrGraphicsGetBackgroundColor(), 1., 0); int width = emscripten_vr_get_display_width(); int height = emscripten_vr_get_display_height();