Coder Social home page Coder Social logo

caomw / gopro-lib-node.gl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gopro/gopro-lib-node.gl

0.0 0.0 27.0 470 KB

OpenGL engine for building and rendering graph-based scenes

License: Apache License 2.0

Makefile 2.38% Java 0.30% C 77.82% Assembly 0.41% Python 18.23% Objective-C 0.81% Smarty 0.05%

gopro-lib-node.gl's Introduction

node.gl

node.gl is a GoPro OpenGL engine for building and rendering graph-based scenes. It is designed to run on both desktop (Linux, OSX, Windows) and mobile (Android, iOS).

The node.gl project is split in 3 parts:

  • libnodegl: the core of the project, an OpenGL engine in C
  • ngl-tools: a set of program tools using libnodegl
  • pynodegl: a Python binding for libnodegl (with the help of Cython)
  • pynodegl-utils: various Python utilities and examples such as a Qt5 viewer

Warning: note that node.gl is still highly experimental. This means the ABI and API can change at any time.

Dependencies

  • libnodegl requires a standard C toolchain (C compiler, linker, GNU/Make). It also depends on sxplayer library for media (video and images) playback. Graphviz is optional but can be used to render and preview graphs obtained from the API.
  • ngl-tools needs GLFW3 and libnodegl installed.
  • pynodegl needs Python and Cython, and libnodegl installed.
  • pynodegl-utils needs Python and pynodegl. The viewer depends on PyQt5 (which is the main reason why this package is separated from the pynodegl package). It is also recommended to install Graphviz in order to render graph in the viewer.

Installation of libnodegl (the core library)

Build

make is enough to build libnodegl.a.

If you prefer a dynamic library, you can use the variable SHARED, such as make SHARED=yes.

If you need symbol debugging, you can use make DEBUG=yes.

Make allow options to be combinable, so make SHARED=yes DEBUG=yes is valid.

Additionally, PYTHON and PKG_CONFIG which respectively allows to customize python and pkg-config executable paths.

Installation

make install will install the library in PREFIX, which you can override, for example using make install PREFIX=/tmp/local.

You can check the installed version of libnodegl using pkg-config --modversion libnodegl

Installation of ngl-tools

The node.gl tools located in the ngl-tools/ directory are to be built and installed exactly the same way as libnodegl.

Installation of pynodegl (the Python binding)

pip install ./pynodegl

Installation of pynodegl-utils (the Python utilities and examples)

pip install -r ./pynodegl-utils/requirements.txt
pip install ./pynodegl-utils

License

node.gl is licensed under the Apache License, Version 2.0. Read the LICENSE and NOTICE files for details.

Warning: pynodegl-utils has an optional dependency on PyQt5 which is licensed under the GPL and thus restrict the pynodegl-utils module distribution.

Using the API

All the API is defined in the installed header nodegl.h. You can consult the nodes parameters in the nodes.specs file installed in the data root dir (usually something along the lines /usr/share/nodegl/nodes.specs).

Contributing

See DEVELOPERS.md file.

gopro-lib-node.gl's People

Contributors

cboesch-gpsw avatar mbouron avatar ubitux avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.