GithubHelp home page GithubHelp logo

ttvd / erlang-houdini-engine-nif Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 1.1 MB

Erlang NIF bindings for Houdini Engine. DEPRECATED.

C 75.14% Erlang 8.31% C++ 5.87% Elixir 10.68%
erlang houdini houdini-engine deprecated

erlang-houdini-engine-nif's Introduction

Erlang NIF bindings for Houdini Engine.

Goals of this project.

  • To be able to run Houdini Engine instance (and be able to perform asset instantiation, cooking, etc.) on an Erlang (as well as Elixir) node.

Status.

  • Generation of HAPI enum c translation stubs.
  • Generation of Erlang enum mappings. Not required?
  • Generation of HAPI struct c translation stubs.
  • Generation of Erlang records corresponding to HAPI structs.
  • Generation of HAPI function c stubs.
  • Generation of Erlang function stubs.
  • Generation of NIF Export c table.
  • Adding tests - Work in progress.
  • Working Mac OS X port.
  • Working Linux port.
  • Working Windows port.
  • Adding full Elixir / Mix support.

Generated documentation.

Documentation generated by erldocs is available here.

Before building, required steps.

  • Will build only on Mac OS X right now.
    • If you want to build on another platform you will need to patch rebar.config .
    • Stubs will theoretically generate on Windows. However rebar.config is missing Windows compilation instructions. So nothing will happen.
    • Same with Linux.
  • Install latest build of Houdini 14 .
    • If you choose to install to a custom location, you may need to patch rebar.config .
  • Install Erlang (build it yourself or install pre-built).
    • This NIF library relies on enif_schedule_nif, which requires a fairly recent Erlang OTP, for example OTP 17.5 .
    • If you choose to install to a custom location, you may need to patch rebar.config .
  • Install Rebar (build it yourself or install through something like Homebrew).
  • Install Elixir (build it yourself or install through Homebrew or install pre-packaged).

Building.

Use Rebar:

rebar get-deps
rebar compile

To clean:

rebar clean

To run tests:

rebar eunit

Running.

Run erl:

> code:add_path("ebin").
true

Known bugs.

  • Binary / String incompatibilities. Need to figure out which parameters are strings and which are byte arrays.

License.

  • Distributed under the MS-RL License.
  • To further explain the license:
    • You cannot re-license any files in this project.
    • That is, they must remain under the MS-RL license.
    • Any other files you add to this project can be under any license you want.
    • You cannot use any of this code in a GPL project.
    • Otherwise you are free to do pretty much anything you want with this code.

Notes.

  • This is a personal project. Use at your own risk. No warranties.
  • A lot of code is autogenerated and will be cleaned up.
  • Please report bugs.

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.