Skip to content
This repository has been archived by the owner on Jul 18, 2018. It is now read-only.

ttvd/erlang-houdini-engine-nif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.