Skip to content
perl 6 bindings to graffiks
Other
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
LICENSE
META6.json
README.md

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);
}
You can’t perform that action at this time.