#!/usr/bin/php5 <?php /* * cacapig.php sample program for libcaca php binding * Copyright (c) 2008 Nicolas Vion <nico@yojik.eu> * * This file is a Php port of "cxx/cxxtest.cpp" * which is: * Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> * All Rights Reserved * * This program is free software. It comes without any warranty, to * the extent permitted by applicable law. You can redistribute it * and/or modify it under the terms of the Do What the Fuck You Want * to Public License, Version 2, as published by Sam Hocevar. See * http://www.wtfpl.net/ for more details. */ if (php_sapi_name() != "cli") { die("You have to run this program with php-cli!\n"); } include dirname($argv[0]) . '/../caca.php'; $pig_str = <<<EOT _._ _..._ .-', _.._(`)) '-. ` ' /-._.-' ',/ ) \ '. / _ _ | \ | a a / PHP | \ .-. ; '-('' ).-' ,' ; '-; | .' \ \ / | 7 .__ _.-\ \ | | | ``/ /` / jgs /,_| | /,_/ / /,_/ '`-' EOT; $canvas = new Canvas(); if (!$canvas) { die("Error while creating main canvas\n"); } $pig = new Canvas(); if (!$pig) { die("Error while creating canvas pig\n"); } $display = new Display($canvas); if (!$display) { die("Error while attaching canvas to display\n"); } $pig->setColorANSI(AnsiColor::LIGHTMAGENTA, AnsiColor::TRANSPARENT); $pig->importString($pig_str, "text"); $display->setDisplayTime(20000); $x = $y = 0; $ix = $iy = 1; while (! $display->getEvent(EventType::KEY_PRESS)) { // In case of resize ... if ($x + $pig->getWidth() - 1 >= $canvas->getWidth() || $x < 0 ) $x = 0; if ($y + $pig->getHeight() - 1 >= $canvas->getHeight() || $y < 0 ) $y = 0; $canvas->Clear(); // Draw $canvas->Blit($x, $y, $pig, NULL); $canvas->setColorANSI(AnsiColor::LIGHTBLUE, AnsiColor::BLACK); $canvas->putStr($canvas->getWidth() / 2 - 10, $canvas->getHeight() / 2, "Powered by libcaca ".Libcaca::getVersion()); $display->refresh(); // Move cursor $x += $ix; $y += $iy; if ($x + $pig->getWidth() >= $canvas->getWidth() || $x < 0 ) $ix = -$ix; if ($y + $pig->getHeight() >= $canvas->getHeight() || $y < 0 ) $iy = -$iy; } ?>