2016-08-05 10:51:56 +03:00
|
|
|
/*
|
2019-01-14 04:13:25 +03:00
|
|
|
* Copyright 2011-2019 Branimir Karadzic. All rights reserved.
|
2016-08-05 10:51:56 +03:00
|
|
|
* License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef NANOVG_BGFX_H_HEADER_GUARD
|
|
|
|
#define NANOVG_BGFX_H_HEADER_GUARD
|
|
|
|
|
2017-11-28 19:44:47 +03:00
|
|
|
#include <bgfx/bgfx.h>
|
2016-08-08 18:33:37 +03:00
|
|
|
|
2016-08-05 10:51:56 +03:00
|
|
|
namespace bx { struct AllocatorI; }
|
|
|
|
|
|
|
|
struct NVGcontext;
|
|
|
|
|
2017-11-28 19:44:47 +03:00
|
|
|
struct NVGLUframebuffer
|
|
|
|
{
|
2016-08-08 18:33:37 +03:00
|
|
|
NVGcontext* ctx;
|
|
|
|
bgfx::FrameBufferHandle handle;
|
|
|
|
int image;
|
2017-11-28 19:44:47 +03:00
|
|
|
bgfx::ViewId viewId;
|
2016-08-08 18:33:37 +03:00
|
|
|
};
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
NVGcontext* nvgCreate(int32_t _edgeaa, bgfx::ViewId _viewId, bx::AllocatorI* _allocator);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
NVGcontext* nvgCreate(int32_t _edgeaa, bgfx::ViewId _viewId);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2018-03-01 20:05:54 +03:00
|
|
|
void nvgDelete(NVGcontext* _ctx);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2018-03-01 20:05:54 +03:00
|
|
|
void nvgSetViewId(NVGcontext* _ctx, bgfx::ViewId _viewId);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
uint16_t nvgGetViewId(struct NVGcontext* _ctx);
|
2016-08-08 18:33:37 +03:00
|
|
|
|
|
|
|
// Helper functions to create bgfx framebuffer to render to.
|
|
|
|
// Example:
|
|
|
|
// float scale = 2;
|
|
|
|
// NVGLUframebuffer* fb = nvgluCreateFramebuffer(ctx, 100 * scale, 100 * scale, 0);
|
2017-03-26 06:03:52 +03:00
|
|
|
// nvgluSetViewFramebuffer(VIEW_ID, fb);
|
2016-08-08 18:33:37 +03:00
|
|
|
// 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);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
NVGLUframebuffer* nvgluCreateFramebuffer(NVGcontext* _ctx, int32_t _width, int32_t _height, int32_t _imageFlags, bgfx::ViewId _viewId);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
NVGLUframebuffer* nvgluCreateFramebuffer(NVGcontext* _ctx, int32_t _width, int32_t _height, int32_t _imageFlags);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
void nvgluBindFramebuffer(NVGLUframebuffer* _framebuffer);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
void nvgluDeleteFramebuffer(NVGLUframebuffer* _framebuffer);
|
2017-11-28 06:44:27 +03:00
|
|
|
|
|
|
|
///
|
2017-11-28 19:44:47 +03:00
|
|
|
void nvgluSetViewFramebuffer(bgfx::ViewId _viewId, NVGLUframebuffer* _framebuffer);
|
2016-08-05 10:51:56 +03:00
|
|
|
|
|
|
|
#endif // NANOVG_BGFX_H_HEADER_GUARD
|