From dba6724915eff161a4c70ac67fca01eb0ee2418d Mon Sep 17 00:00:00 2001 From: mcc Date: Sat, 27 Oct 2018 23:11:11 -0400 Subject: [PATCH] Framebuffer and depthbuffer should also be passed into the canvas create-from-handle --- src/graphics/canvas.h | 2 +- src/graphics/opengl.c | 6 ++++-- src/headset/oculus_mobile.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/graphics/canvas.h b/src/graphics/canvas.h index 05577fdb..c6dac7bc 100644 --- a/src/graphics/canvas.h +++ b/src/graphics/canvas.h @@ -24,7 +24,7 @@ typedef struct { typedef struct Canvas Canvas; Canvas* lovrCanvasCreate(int width, int height, CanvasFlags flags); -Canvas* lovrCanvasCreateFromHandle(int width, int height, CanvasFlags flags, uint32_t handle, int attachmentCount, bool immortal); +Canvas* lovrCanvasCreateFromHandle(int width, int height, CanvasFlags flags, uint32_t framebuffer, uint32_t depthBuffer, uint32_t resolveBuffer, int attachmentCount, bool immortal); void lovrCanvasDestroy(void* ref); const Attachment* lovrCanvasGetAttachments(Canvas* canvas, int* count); void lovrCanvasSetAttachments(Canvas* canvas, Attachment* attachments, int count); diff --git a/src/graphics/opengl.c b/src/graphics/opengl.c index 8e89b80e..17e15892 100644 --- a/src/graphics/opengl.c +++ b/src/graphics/opengl.c @@ -1233,11 +1233,13 @@ Canvas* lovrCanvasCreate(int width, int height, CanvasFlags flags) { return canvas; } -Canvas* lovrCanvasCreateFromHandle(int width, int height, CanvasFlags flags, uint32_t handle, int attachmentCount, bool immortal) { +Canvas* lovrCanvasCreateFromHandle(int width, int height, CanvasFlags flags, uint32_t framebuffer, uint32_t depthBuffer, uint32_t resolveBuffer, int attachmentCount, bool immortal) { Canvas* canvas = lovrAlloc(Canvas, lovrCanvasDestroy); if (!canvas) return NULL; - canvas->framebuffer = handle; + canvas->framebuffer = framebuffer; + canvas->depthBuffer = depthBuffer; + canvas->resolveBuffer = resolveBuffer; canvas->attachmentCount = attachmentCount; canvas->width = width; canvas->height = height; diff --git a/src/headset/oculus_mobile.c b/src/headset/oculus_mobile.c index dae201ef..6f06791e 100644 --- a/src/headset/oculus_mobile.c +++ b/src/headset/oculus_mobile.c @@ -13,7 +13,7 @@ void lovrOculusMobileDraw(int framebuffer, int width, int height, float *eyeView lovrGpuDirtyTexture(); CanvasFlags flags = {0}; - Canvas *canvas = lovrCanvasCreateFromHandle(width, height, flags, framebuffer, 1, true); + Canvas *canvas = lovrCanvasCreateFromHandle(width, height, flags, framebuffer, 0, 0, 1, true); Camera camera = { .canvas = canvas, .stereo = false }; memcpy(camera.viewMatrix[0], eyeViewMatrix, sizeof(camera.viewMatrix[0]));