perl 6 bindings to graffiks
Other
Switch branches/tags
Nothing to show
Latest commit ec89125 Jun 15, 2017 @wentam rename META.info
Permalink
Failed to load latest commit information.
lib add more primitive types Jun 11, 2015
LICENSE Initial commit May 18, 2015
META6.json rename META.info Jun 15, 2017
README.md Update README.md Jun 10, 2015

README.md

P6-Graffiks

perl 6 bindings to Graffiks

Example usage

The following will create a spinning cube:

use v6;
use Graffiks;
use Graffiks::Camera;
use Graffiks::PointLight;
use Graffiks::Mesh;
use Graffiks::Material;
use Graffiks::Object;

Graffiks.new(init => &init,
             update => &update);

my $object;

sub init ($gfks, $window_width, $window_height) {
  # enable the deferred renderer
  $gfks.enable-renderers(:deferred);

  # create, position, and make our camera the active one
  my $camera = Graffiks::Camera.new();
  $camera.make-active();
  $camera.set-location(0,0,7);

  # create and position a point light (without light, you won't see anything!)
  my $light = Graffiks::PointLight.new();
  $light.set-location(0,0,5);

  # create a cube mesh
  my $mesh = Graffiks::Mesh.new-cube(5);

  # create a material
  my $material = Graffiks::Material.new(:deferred);

  # create an object with the previously created mesh and material
  $object = Graffiks::Object.new(Array.new($mesh), Array.new($material));
  $object.set-location(0,0,-10);
}

sub update ($gfks, $time_step) {
  # rotate our object based on $time_step
  my $a = $object.angle-w();
  $object.set-rotation(angle => $a+(0.05*$time_step),
                       x => 0,
                       y => 1,
                       z => 1);
}