summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h')
-rw-r--r--3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h b/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h
index d24ee4fa72f..2268e900f99 100644
--- a/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h
+++ b/3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.h
@@ -6,13 +6,47 @@
#ifndef NANOVG_BGFX_H_HEADER_GUARD
#define NANOVG_BGFX_H_HEADER_GUARD
+#include "bgfx/bgfx.h"
+
namespace bx { struct AllocatorI; }
struct NVGcontext;
+struct NVGLUframebuffer {
+ NVGcontext* ctx;
+ bgfx::FrameBufferHandle handle;
+ int image;
+ uint8_t viewId;
+};
+typedef struct NVGLUframebuffer NVGLUframebuffer;
+
NVGcontext* nvgCreate(int edgeaa, unsigned char _viewId, bx::AllocatorI* _allocator);
NVGcontext* nvgCreate(int edgeaa, unsigned char _viewId);
-void nvgViewId(struct NVGcontext* ctx, unsigned char _viewId);
void nvgDelete(struct NVGcontext* ctx);
+void nvgState(struct NVGcontext* ctx, uint64_t state);
+uint8_t nvgViewId(struct NVGcontext* ctx);
+void nvgViewId(struct NVGcontext* ctx, unsigned char _viewId);
+
+// Helper functions to create bgfx framebuffer to render to.
+// Example:
+// float scale = 2;
+// NVGLUframebuffer* fb = nvgluCreateFramebuffer(ctx, 100 * scale, 100 * scale, 0);
+// nvgluBindFramebuffer(fb);
+// nvgBeginFrame(ctx, 100, 100, scale);
+// // renders anything offscreen
+// nvgEndFrame(ctx);
+// nvgluBindFramebuffer(NULL);
+//
+// // Pastes the framebuffer rendering.
+// nvgBeginFrame(ctx, 1024, 768, scale);
+// NVGpaint paint = nvgImagePattern(ctx, 0, 0, 100, 100, 0, fb->image, 1);
+// nvgBeginPath(ctx);
+// nvgRect(ctx, 0, 0, 100, 100);
+// nvgFillPaint(ctx, paint);
+// nvgFill(ctx);
+// nvgEndFrame(ctx);
+NVGLUframebuffer* nvgluCreateFramebuffer(NVGcontext* ctx, int width, int height, int imageFlags);
+void nvgluBindFramebuffer(NVGLUframebuffer* framebuffer);
+void nvgluDeleteFramebuffer(NVGLUframebuffer* framebuffer);
#endif // NANOVG_BGFX_H_HEADER_GUARD