Accelerated 2D vector drawing? #468
-
I'm completely new to bare-metal development for the Pi but I've spent some time browsing the Circle documentation and it sounds like just the thing I've been looking for. I'd like to build a very basic proof-of-concept mapping appliance that can display a 2D vector map with pan & zoom support. Target platform is the Pi3B+, so OpenVG is an option, but I'm worried that I'd be wasting my time learning what appears to be a deprecated API. Eventually the Pi3 and Videocore IV will be extinct, and OpenVG along with it. So before I even start collecting notes for this project, I'd like to hear which API experienced bare-metal devs would suggest for this application? Edit: I've built a couple of your examples (fractal, screenanimations and usbmouse) and tested them on a Pi3B+; absolutely 100% amazing. I am very excited by the possibilities this opens up! |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 17 replies
-
Having scratched a tiny bit deeper it seems like the best option, at least to start with, is to go with It's a shame there's no way to write to the SD card from a computer connected via USB - so fiddly to extract the card and insert in a card reader and then back every time you want to test a code change. QEMU will be essential for testing to prevent RSI :) Perhaps a bootloader could be written in Circle that allows the kernel to be updated via USB? E.g. pulling a GPIO low triggers an interrupt that exits main and enters a bootloader mode, where the Pi becomes a USB widget and exposes the SD card. Crazy idea, I know, but when I do Atmel stuff I set up my Makefile so I can build & flash with one command, which saves a lot of time when you're in the early stages of a project. |
Beta Was this translation helpful? Give feedback.
-
I'm not an expert for accelerated graphics, but perhaps OpenVG 1.1 is still an option. The specification is still on the Khronos website as is a Quick Reference Card. I tried to make access to OpenVG easier in libgraphics, but came not very far. But perhaps There is serial bootloader support in Circle. Please see the file doc/bootloader.txt for more info. A complete rewrite of the Flashy bootloader tool in C (cFlashy) is on the develop branch, as is support for an USB mass-storage gadget mode, which allows to write to the SD card directly from a connected PC. Unfortunately this does not work with the RPi 3 B+. QEMU is also working. See doc/qemu.txt for this. A network bootloader (via HTTP and TFTP) can be found in sample/38-bootloader. |
Beta Was this translation helpful? Give feedback.
-
I've built the "tiger" VC4 demo and I'm astonished by the performance - 17k vectors with fills & gradients transformed at 75fps with XGA resolution without a hint of glitching. Wow! This is very promising indeed. |
Beta Was this translation helpful? Give feedback.
-
Confused by the directory structure when it comes to "make"; I copied "hello_tiger" to circle/app/ and edited
This follows the "hello world" instructions: https://circle-rpi.readthedocs.io/en/47.0/hello-world.html and I've verified that kernel.h has |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
I'm not an expert for accelerated graphics, but perhaps OpenVG 1.1 is still an option. The specification is still on the Khronos website as is a Quick Reference Card. I tried to make access to OpenVG easier in libgraphics, but came not very far. But perhaps
C2DGraphics
is also an option.There is serial bootloader support in Circle. Please see the file doc/bootloader.txt for more info. A complete rewrite of the Flashy bootloader tool in C (cFlashy) is on the develop branch, as is support for an USB mass-storage gadget mode, which allows to write to the SD card directly from a connected PC. Unfortunately this does not work with the RPi 3 B+. QEMU is also working. See doc/qemu.txt for this.…