From dcfd4534b3cc652aa589a247cb9160e7a7c6ed4d Mon Sep 17 00:00:00 2001 From: Jaakko Holster Date: Sun, 18 Sep 2016 13:36:57 +0300 Subject: [PATCH 1/2] Enable transparent background by default (instead of clearing to black) This is useful e.g. for OSD functionality (drawing on top of video layer). The demos work same as before, because they explicitly paint the background. The code is mostly taken from: https://github.com/ajstarks/openvg/issues/11 --- examples/modules/util.js | 2 +- src/egl.cc | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/modules/util.js b/examples/modules/util.js index 45dbb92..d14cd04 100755 --- a/examples/modules/util.js +++ b/examples/modules/util.js @@ -13,7 +13,7 @@ var serifTypeface = util.serifTypeface = undefined; var sansMonoTypeface = util.sansMonoTypeface = undefined; var start = util.start = function() { - var color = new Float32Array([255, 255, 255, 1]); + var color = new Float32Array([255, 255, 255, 0]); openVG.setFVOL(openVG.VGParamType.VG_CLEAR_COLOR, color, 0, 4); openVG.clear(0, 0, openVG.screen.width, openVG.screen.height); color[0] = 0, color[1] = 0, color[2] = 0; diff --git a/src/egl.cc b/src/egl.cc index 68ab896..6ea7f06 100755 --- a/src/egl.cc +++ b/src/egl.cc @@ -50,6 +50,11 @@ extern void egl::Init() { static EGL_DISPMANX_WINDOW_T nativewindow; + static VC_DISPMANX_ALPHA_T alpha = { + DISPMANX_FLAGS_ALPHA_FROM_SOURCE, + 255, 0 + }; + // bcm_host_init() must be called before anything else bcm_host_init(); @@ -91,10 +96,10 @@ extern void egl::Init() { dispman_update = vc_dispmanx_update_start(0); dispman_element = - vc_dispmanx_element_add(dispman_update, dispman_display, 0 /*layer */ , + vc_dispmanx_element_add(dispman_update, dispman_display, 1 /*layer */ , &dst_rect, 0 /*src */ , &src_rect, DISPMANX_PROTECTION_NONE, - 0 /*alpha */ , 0 /*clamp */ , + &alpha /*alpha */ , 0 /*clamp */ , DISPMANX_NO_ROTATE /*transform */); nativewindow.element = dispman_element; From f32e54b1123167b131a41b2264a4f3346fa2393b Mon Sep 17 00:00:00 2001 From: Jaakko Holster Date: Sun, 18 Sep 2016 13:44:10 +0300 Subject: [PATCH 2/2] Use __dirname when loading default fonts to make util.js requirable from elsewhere --- examples/modules/util.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/modules/util.js b/examples/modules/util.js index d14cd04..9aa8f9a 100755 --- a/examples/modules/util.js +++ b/examples/modules/util.js @@ -36,9 +36,9 @@ var init = util.init = function(options) { openVG.init(); if(options.loadFonts) { - util.sansTypeface = text.loadFont("examples/fonts/sans.json"); - util.serifTypeface = text.loadFont("examples/fonts/serif.json"); - util.sansMonoTypeface = text.loadFont("examples/fonts/sans-mono.json"); + util.sansTypeface = text.loadFont(__dirname + "/../fonts/sans.json"); + util.serifTypeface = text.loadFont(__dirname + "/../fonts/serif.json"); + util.sansMonoTypeface = text.loadFont(__dirname + "/../fonts/sans-mono.json"); } }