perl 6 bindings to graffiks
Perl6
Switch branches/tags
Nothing to show
Latest commit 95a5a22 Oct 28, 2016 @wentam committed on GitHub Merge pull request #3 from zoffixznet/patch-1
Add mandatory "perl" META field
Permalink
Failed to load latest commit information.
lib add more primitive types Jun 11, 2015
LICENSE Initial commit May 18, 2015
META.info Add mandatory "perl" META field Oct 26, 2016
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);
}