{"id":18834378,"url":"https://github.com/pzl/libovg","last_synced_at":"2025-07-15T04:38:13.728Z","repository":{"id":23103686,"uuid":"26457912","full_name":"pzl/libovg","owner":"pzl","description":"Drawing library based on OpenVG and OpenGL to draw on either X11 or Raspberry Pi's DispmanX","archived":false,"fork":false,"pushed_at":"2017-07-05T20:17:35.000Z","size":127,"stargazers_count":8,"open_issues_count":21,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T05:17:36.668Z","etag":null,"topics":["drawing-library","embedded-devices","openvg","raspberry-pi"],"latest_commit_sha":null,"homepage":null,"language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pzl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-10T22:00:56.000Z","updated_at":"2021-07-29T04:34:29.000Z","dependencies_parsed_at":"2022-08-21T20:10:39.867Z","dependency_job_id":null,"html_url":"https://github.com/pzl/libovg","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pzl/libovg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Flibovg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Flibovg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Flibovg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Flibovg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pzl","download_url":"https://codeload.github.com/pzl/libovg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pzl%2Flibovg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265402833,"owners_count":23759237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drawing-library","embedded-devices","openvg","raspberry-pi"],"created_at":"2024-11-08T02:12:11.197Z","updated_at":"2025-07-15T04:38:13.504Z","avatar_url":"https://github.com/pzl.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"LibOVG\n======\n\nLibOVG is a thin drawing library on top of OpenVG. It is designed to allow unified drawing commands between platforms (Raspberry Pi, BeagleBone, pcDuino, ...) and allowing for development on a desktop or laptop of choice. It can be run on these embedded devices without an X11 environment, greatly improving speed of your application. On your development machine, you can debug and preview your graphics with X running!\n\n\nRequirements\n-------------\n**OpenVG**\n\nOn embedded devices like the Raspberry Pi, this should come pre-installed. For development environments (e.g. your laptop), support is provided through the [ShivaVG](https://github.com/ileben/ShivaVG) project, which implements OpenVG API on top of OpenGL.\n\n\nInstallation\n------------\n\n```sh\nmake\nsudo make install\n```\n\n\nUsage\n-----\n\nSimple example usage is provided below. You can compile with `gcc -o ovg_demo temp.c -l ovg` and run with `./ovg_demo`. You should get a yellowish rectangle at the bottom of the screen that appears.\n\n```c\n#include \u003cstdio.h\u003e\n#include \u003covg.h\u003e\n\nint main(int argc, char **argv) {\n    Path rect;\n\n    ovg_init(); //initialize OpenGL contexts, etc\n\n    ovg_open(0,0,400,400); //open a 400x400 window at 0,0 on your monitor\n\n    ovg_fill(255,200,128,255);     //R,G,B,A\n    rect = ovg_rect(76,50,200,90); //X,Y,W,H\n\n    //perform the drawing commands\n    ovg_draw_path(rect, FILL_PATH);\n    ovg_draw();\n\n\n    getchar(); //quick way to pause and wait for user input. press enter to close\n\n    ovg_cleanup(); //properly destroy windows and release memory\n\n    return 0;\n}\n```\n\n\nFilename Conventions\n--------------------\n\nany filename ending in `_pi.c` or `_x11.c` will only get compiled on their target platforms. all other filenames get compiled for all targets.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzl%2Flibovg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpzl%2Flibovg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpzl%2Flibovg/lists"}