@@ -1,4 +1,4 @@ | |||
/* $Id$ */ /** \page libcaca-authors Libcaca authors | |||
/** \page libcaca-authors Libcaca authors | |||
Sam Hocevar <sam@hocevar.net> | |||
- main programmer | |||
@@ -1,6 +1,26 @@ | |||
Commit: UNSUBMITTED | |||
Author: Sam | |||
Date: Sun Feb 7 22:30:20 2010 +0000 | |||
Commit: 4332 | |||
Author: sam | |||
Date: Mon Feb 8 00:40:21 2010 +0000 | |||
Nicer make check output for our custom tests. | |||
test/check-doxygen | 10 +++++++--- | |||
test/check-source | 20 +++++++++++++------- | |||
test/check-win32 | 11 +++++++---- | |||
3 files changed, 27 insertions(+), 14 deletions(-) | |||
Commit: 4331 | |||
Author: sam | |||
Date: Sun Feb 7 23:44:38 2010 +0000 | |||
Add missing ruby/test file to the distributed tarball. | |||
ruby/Makefile.am | 1 + | |||
1 files changed, 1 insertions(+), 0 deletions(-) | |||
Commit: 4330 | |||
Author: sam | |||
Date: Sun Feb 7 22:37:18 2010 +0000 | |||
Improve changelog generation. | |||
@@ -1,4 +1,3 @@ | |||
# $Id$ | |||
SUBDIRS = kernel caca src examples tools \ | |||
cxx caca-sharp python ruby java \ | |||
@@ -1,33 +1,34 @@ | |||
/* $Id$ */ /** \page libcaca-news Libcaca news | |||
/** \page libcaca-news Libcaca news | |||
\section news0_99_beta17 Changes between 0.9.beta17 and 0.99.beta16 | |||
\section news0_99_beta17 Changes between 0.99.beta17 and 0.99.beta16 | |||
- new dirty rectangle framework for accelerated rendering | |||
- new <conio.h> compatible header for old DOS software porting | |||
- XCode and Visual Studio build improvements | |||
- improved HTML output | |||
- new troff output | |||
- improved Ruby and .NET bindings | |||
- new comprehensive PHP bindings | |||
- Cocoa driver enhancements | |||
- documentation updates | |||
- minor improvements and bugfixes | |||
- numerous improvements and bugfixes | |||
\section news0_99_beta16 Changes between 0.9.beta16 and 0.99.beta15 | |||
\section news0_99_beta16 Changes between 0.99.beta16 and 0.99.beta15 | |||
- many build fixes, especially for nonstandard platforms | |||
\section news0_99_beta15 Changes between 0.9.beta15 and 0.99.beta14 | |||
\section news0_99_beta15 Changes between 0.99.beta15 and 0.99.beta14 | |||
- libcucul was merged back into libcaca for more clarity | |||
\section news0_99_beta14 Changes between 0.9.beta14 and 0.99.beta13 | |||
\section news0_99_beta14 Changes between 0.99.beta14 and 0.99.beta13 | |||
- internal FIGlet font support | |||
- use C99 types in public headers | |||
- runtime support for output drivers | |||
- BBcode export support | |||
\section news0_99_beta13 Changes between 0.9.beta13 and 0.99.beta12 | |||
\section news0_99_beta13 Changes between 0.99.beta13 and 0.99.beta12 | |||
- device-dependent cursor support | |||
- event API rewrite | |||
@@ -38,7 +39,7 @@ | |||
- Python sample code | |||
- Visual Studio build solution | |||
\section news0_99_beta12 Changes between 0.9.beta12 and 0.99.beta11 | |||
\section news0_99_beta12 Changes between 0.99.beta12 and 0.99.beta11 | |||
- support for 90-degree canvas rotation | |||
- better behaviour when trying to output Unicode on an ASCII terminal | |||
@@ -49,14 +50,14 @@ | |||
- preliminary .NET bindings | |||
- many bugfixes and documentation changes | |||
\section news0_99_beta11 Changes between 0.9.beta11 and 0.99.beta10 | |||
\section news0_99_beta11 Changes between 0.99.beta11 and 0.99.beta10 | |||
- fixed compilation of the C++ bindings | |||
- fixed bugs in cucul_import_memory(), cucul_set_canvas_size() | |||
- implemented caca_set_display_title() for ncurses and S-Lang | |||
- minor bugfixes | |||
\section news0_99_beta10 Changes between 0.9.beta10 and 0.99.beta9 | |||
\section news0_99_beta10 Changes between 0.99.beta10 and 0.99.beta9 | |||
- new debug mode | |||
- blitting canvases now makes use of the canvas' handle coordinates | |||
@@ -65,7 +66,7 @@ | |||
- added katakana and hiragana glyphs to the built-in font | |||
- many bugfixes and documentation changes | |||
\section news0_99_beta9 Changes between 0.9.beta9 and 0.99.beta8 | |||
\section news0_99_beta9 Changes between 0.99.beta9 and 0.99.beta8 | |||
- support for blink, bold, italics and underline attributes | |||
- allow to import and export zero-sized canvases | |||
@@ -73,26 +74,26 @@ | |||
- fixed buffer overlows in the file importer | |||
- big documentation updates | |||
\section news0_99_beta8 Changes between 0.9.beta8 and 0.99.beta7 | |||
\section news0_99_beta8 Changes between 0.99.beta8 and 0.99.beta7 | |||
- allow to build the X11 and GL drivers as separate plugins | |||
- support for fullwidth Unicode characters | |||
- improved cucul_flip() and cucul_rotate() | |||
- minor bugfixes and documentation updates | |||
\section news0_99_beta7 Changes between 0.9.beta7 and 0.99.beta6 | |||
\section news0_99_beta7 Changes between 0.99.beta7 and 0.99.beta6 | |||
- transparency support in the UTF-8 importer and exporter | |||
- optimised triangle fill routine | |||
- updated C++ bindings | |||
\section news0_99_beta6 Changes between 0.9.beta6 and 0.99.beta5 | |||
\section news0_99_beta6 Changes between 0.99.beta6 and 0.99.beta5 | |||
- ANSI importer now handles transparency and UTF-8 | |||
- Unicode support was broken for about 10% of the set | |||
- various memory leaks were fixed | |||
\section news0_99_beta5 Changes between 0.9.beta5 and 0.99.beta4 | |||
\section news0_99_beta5 Changes between 0.99.beta5 and 0.99.beta4 | |||
- implemented cucul_getchar() and cucul_get_color() | |||
- handle transparency in the IRC export | |||
@@ -101,19 +102,19 @@ | |||
- portability fixes for 64-bit architectures, Win32 and MS-DOS | |||
- all demos except cacafire were merged into cacademo | |||
\section news0_99_beta4 Changes between 0.9.beta4 and 0.99.beta3 | |||
\section news0_99_beta4 Changes between 0.99.beta4 and 0.99.beta3 | |||
- added a compatibility layer for pre-1.x libcaca applications | |||
- fixed manpage generation | |||
- minor bugfixes and documentation updates | |||
\section news0_99_beta3 Changes between 0.9.beta3 and 0.99.beta2 | |||
\section news0_99_beta3 Changes between 0.99.beta3 and 0.99.beta2 | |||
- libcaca functions use errno for error reporting | |||
- updated C++ bindings | |||
- minor improvements, bugfixes and documentation updates | |||
\section news0_99_beta2 Changes between 0.9.beta2 and 0.99.beta1 | |||
\section news0_99_beta2 Changes between 0.99.beta2 and 0.99.beta1 | |||
- ANSI importer | |||
- functions use errno for error reporting | |||
@@ -1,4 +1,3 @@ | |||
$Id$ | |||
o Colour does not work with all backends and all terminals. I tested | |||
many terminal emulators and tried to summarise which combinations | |||
@@ -1,5 +1,4 @@ | |||
$Id$ | |||
Building libcaca | |||
o Run configure then make. Useful configure flags are: | |||
@@ -17,7 +16,7 @@ Building libcaca | |||
--disable-doc: do not build documentation | |||
o Cross-compilation examples: | |||
./configure --disable-imlib2 --host=i386-pc-msdosdjgpp | |||
./configure --disable-imlib2 --host=i586-mingw32msvc | |||
@@ -31,4 +30,4 @@ Using libcaca | |||
gcc -c foobar.c -o foobar.o `pkg-config --cflags caca` | |||
gcc foobar.o -o foobar `pkg-config --libs caca` | |||
@@ -1,4 +1,4 @@ | |||
/* $Id$ */ /** \page libcaca-thanks Libcaca thanks | |||
/** \page libcaca-thanks Libcaca thanks | |||
\section thanks1 Bugfixes and improvements | |||
@@ -1,5 +1,4 @@ | |||
#! /bin/sh | |||
# $Id$ | |||
# bootstrap: generic bootstrap/autogen.sh script for autotools projects | |||
# | |||
@@ -1,7 +1,6 @@ | |||
#! /bin/sh | |||
## DOS cross-compilation for libcaca -- Sam Hocevar <sam@hocevar.net> | |||
## $Id$ | |||
set -x | |||
set -e | |||
@@ -1,7 +1,6 @@ | |||
#! /bin/sh | |||
## Kernel-mode libcaca compilation script -- Sam Hocevar <sam@zoy.org> | |||
## $Id$ | |||
## Kernel-mode libcaca compilation script -- Sam Hocevar <sam@hocevar.net> | |||
set -x | |||
set -e | |||
@@ -1,7 +1,6 @@ | |||
#! /bin/sh | |||
## Win32 cross-compilation for libcaca -- Sam Hocevar <sam@hocevar.net> | |||
## $Id$ | |||
set -x | |||
set -e | |||
@@ -1,7 +1,6 @@ | |||
#! /bin/sh | |||
## config script for libcaca -- Sam Hocevar <sam@hocevar.net> | |||
## $Id$ | |||
prefix=@prefix@ | |||
exec_prefix=@exec_prefix@ | |||
@@ -19,36 +19,36 @@ function just_for_fun() { | |||
$moo = <<<EOT | |||
(__) | |||
(oo) | |||
/------\/ | |||
/ | || | |||
* /\---/\ | |||
~~ ~~ | |||
/------\/ | |||
/ | || | |||
* /\---/\ | |||
~~ ~~ | |||
EOT; | |||
$cv = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE, CACA_DEFAULT); | |||
caca_import_string($cv, $moo, "text"); | |||
$cv = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE, CACA_DEFAULT); | |||
caca_import_string($cv, $moo, "text"); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, (caca_rand(1, 10) > 5 ? CACA_LIGHTBLUE : CACA_WHITE), CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
caca_set_canvas_size($cv, 18, 6); | |||
caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT); | |||
caca_put_str($cv, 14, 0, "Moo!"); | |||
caca_set_color_ansi($cv, CACA_LIGHTRED, CACA_DEFAULT); | |||
caca_put_char($cv, 14, 1, hexdec("2765")); //U+2765 | |||
caca_put_char($cv, 16, 1, hexdec("2764")); //U+2764 | |||
echo caca_export_string($cv, "utf8"); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, (caca_rand(1, 10) > 5 ? CACA_LIGHTBLUE : CACA_WHITE), CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
caca_set_canvas_size($cv, 18, 6); | |||
caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT); | |||
caca_put_str($cv, 14, 0, "Moo!"); | |||
caca_set_color_ansi($cv, CACA_LIGHTRED, CACA_DEFAULT); | |||
caca_put_char($cv, 14, 1, hexdec("2765")); //U+2765 | |||
caca_put_char($cv, 16, 1, hexdec("2764")); //U+2764 | |||
echo caca_export_string($cv, "utf8"); | |||
} | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
just_for_fun(); | |||
@@ -59,25 +59,25 @@ echo "libcaca version: ".caca_get_version()."\n\n"; | |||
echo "Available drivers:\n"; | |||
$list = caca_get_display_driver_list(); | |||
foreach($list as $type => $name) | |||
echo "* $name ($type)\n"; | |||
echo "* $name ($type)\n"; | |||
echo "\n"; | |||
echo "Available import formats:\n"; | |||
$list = caca_get_import_list(); | |||
foreach($list as $format => $name) | |||
echo "* $name ($format)\n"; | |||
echo "* $name ($format)\n"; | |||
echo "\n"; | |||
echo "Available export formats:\n"; | |||
$list = caca_get_export_list(); | |||
foreach($list as $format => $name) | |||
echo "* $name ($format)\n"; | |||
echo "* $name ($format)\n"; | |||
echo "\n"; | |||
echo "Available caca fonts:\n"; | |||
$list = caca_get_font_list(); | |||
foreach($list as $name) | |||
echo "* $name\n"; | |||
echo "* $name\n"; | |||
echo "\n"; | |||
?> |
@@ -5,7 +5,7 @@ | |||
* Copyright (c) 2008 Nicolas Vion <nico@yojik.eu> | |||
* | |||
* This file is a Php port of "cxx/cxxtest.cpp" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
@@ -17,41 +17,41 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
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 /,_| | /,_/ / | |||
/,_/ '`-' | |||
_._ _..._ .-', _.._(`)) | |||
'-. ` ' /-._.-' ',/ | |||
) \ '. | |||
/ _ _ | \ | |||
| a a / PHP | | |||
\ .-. ; | |||
'-('' ).-' ,' ; | |||
'-; | .' | |||
\ \ / | |||
| 7 .__ _.-\ \ | |||
| | | ``/ /` / | |||
jgs /,_| | /,_/ / | |||
/,_/ '`-' | |||
EOT; | |||
$canvas = new Canvas(); | |||
if (!$canvas) { | |||
die("Error while creating main canvas\n"); | |||
die("Error while creating main canvas\n"); | |||
} | |||
$pig = new Canvas(); | |||
if (!$pig) { | |||
die("Error while creating canvas pig\n"); | |||
die("Error while creating canvas pig\n"); | |||
} | |||
$display = new Display($canvas); | |||
if (!$display) { | |||
die("Error while attaching canvas to display\n"); | |||
die("Error while attaching canvas to display\n"); | |||
} | |||
@@ -63,28 +63,28 @@ $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; | |||
// 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; | |||
} | |||
?> |
@@ -8,8 +8,6 @@ | |||
* Copyright (c) 2003-2004 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -18,33 +16,33 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$cv = caca_create_canvas(80, 24); | |||
if(!$cv) | |||
{ | |||
die("Failed to create canvas\n"); | |||
die("Failed to create canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(!$dp) | |||
{ | |||
die("Failed to create display\n"); | |||
die("Failed to create display\n"); | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
for($i = 0; $i < 16; $i++) | |||
{ | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, 3, $i + ($i >= 8 ? 3 : 2), "ANSI " . $i); | |||
for($j = 0; $j < 16; $j++) | |||
{ | |||
caca_set_color_ansi($cv, $i, $j); | |||
caca_put_str($cv, ($j >= 8 ? 13 : 12) + $j * 4, $i + ($i >= 8 ? 3 : 2), | |||
"Aaホ"); | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, 3, $i + ($i >= 8 ? 3 : 2), "ANSI " . $i); | |||
for($j = 0; $j < 16; $j++) | |||
{ | |||
caca_set_color_ansi($cv, $i, $j); | |||
caca_put_str($cv, ($j >= 8 ? 13 : 12) + $j * 4, $i + ($i >= 8 ? 3 : 2), | |||
"Aaホ"); | |||
} | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
@@ -4,8 +4,8 @@ | |||
* demo.php demo for libcaca php binding | |||
* Copyright (c) 2008 Nicolas Vion <nico@yojik.eu> | |||
* | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* Copyright (c) 2003 Sam Hocevar <sam@hocevar.net> | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
@@ -16,345 +16,345 @@ | |||
*/ | |||
function main() { | |||
$cv = caca_create_canvas(0, 0); | |||
if (!$cv) { | |||
die("Error while creating canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if (!$dp) { | |||
die("Error while attaching canvas to display\n"); | |||
} | |||
caca_set_display_time($dp, 40000); | |||
/* Disable X cursor */ | |||
caca_set_mouse($dp, 0); | |||
/* Main menu */ | |||
$bounds = $outline = $dithering = 0; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
/* Go ! */ | |||
$need_refresh = false; | |||
$quit = 0; | |||
while(!$quit) { | |||
while ($ev = caca_get_event($dp, CACA_EVENT_ANY, 1000)) { | |||
if (caca_get_event_type($ev) & CACA_EVENT_KEY_PRESS) { | |||
switch (caca_get_event_key_ch($ev)) { | |||
case ord('q'): | |||
case ord('Q'): | |||
case CACA_KEY_ESCAPE: | |||
$demo = false; | |||
$quit = 1; | |||
break; | |||
case ord('o'): | |||
case ord('O'): | |||
$outline = ($outline + 1) % 3; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('b'): | |||
case ord('B'): | |||
$bounds = ($bounds + 1) % 2; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('d'): | |||
case ord('D'): | |||
$dithering = ($dithering + 1) % 5; | |||
caca_set_feature($cv, $dithering); | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('f'): | |||
case ord('F'): | |||
demo_go($dp, "demo_all", $cv, $bounds, $outline); | |||
break; | |||
case ord('1'): | |||
demo_go($dp, "demo_dots", $cv, $bounds, $outline); | |||
break; | |||
case ord('2'): | |||
demo_go($dp, "demo_lines", $cv, $bounds, $outline); | |||
break; | |||
case ord('3'): | |||
demo_go($dp, "demo_boxes", $cv, $bounds, $outline); | |||
break; | |||
case ord('4'): | |||
demo_go($dp, "demo_triangles", $cv, $bounds, $outline); | |||
break; | |||
case ord('5'): | |||
demo_go($dp, "demo_ellipses", $cv, $bounds, $outline); | |||
break; | |||
case ord('s'): | |||
case ord('S'): | |||
demo_go($dp, "demo_sprites", $cv, $bounds, $outline); | |||
break; | |||
case ord('r'): | |||
case ord('R'): | |||
demo_go($dp, "demo_render", $cv, $bounds, $outline); | |||
break; | |||
} | |||
} | |||
else if(caca_get_event_type($ev) & CACA_EVENT_MOUSE_MOTION) { | |||
$x = caca_get_event_mouse_x($ev); | |||
$y = caca_get_event_mouse_y($ev); | |||
display_menu($cv, $dp, $bounds, $outline, false); | |||
caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); | |||
caca_put_str($cv, $x, $y, "."); | |||
caca_put_str($cv, $x, $y + 1, "|\\"); | |||
$need_refresh = true; | |||
} | |||
else if(caca_get_event_type($ev) & CACA_EVENT_RESIZE) { | |||
display_menu($cv, $dp, $bounds, $outline); | |||
} | |||
} | |||
if ($need_refresh) { | |||
caca_refresh_display($dp); | |||
$need_refresh = false; | |||
} | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if (!$cv) { | |||
die("Error while creating canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if (!$dp) { | |||
die("Error while attaching canvas to display\n"); | |||
} | |||
caca_set_display_time($dp, 40000); | |||
/* Disable X cursor */ | |||
caca_set_mouse($dp, 0); | |||
/* Main menu */ | |||
$bounds = $outline = $dithering = 0; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
/* Go ! */ | |||
$need_refresh = false; | |||
$quit = 0; | |||
while(!$quit) { | |||
while ($ev = caca_get_event($dp, CACA_EVENT_ANY, 1000)) { | |||
if (caca_get_event_type($ev) & CACA_EVENT_KEY_PRESS) { | |||
switch (caca_get_event_key_ch($ev)) { | |||
case ord('q'): | |||
case ord('Q'): | |||
case CACA_KEY_ESCAPE: | |||
$demo = false; | |||
$quit = 1; | |||
break; | |||
case ord('o'): | |||
case ord('O'): | |||
$outline = ($outline + 1) % 3; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('b'): | |||
case ord('B'): | |||
$bounds = ($bounds + 1) % 2; | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('d'): | |||
case ord('D'): | |||
$dithering = ($dithering + 1) % 5; | |||
caca_set_feature($cv, $dithering); | |||
display_menu($cv, $dp, $bounds, $outline); | |||
break; | |||
case ord('f'): | |||
case ord('F'): | |||
demo_go($dp, "demo_all", $cv, $bounds, $outline); | |||
break; | |||
case ord('1'): | |||
demo_go($dp, "demo_dots", $cv, $bounds, $outline); | |||
break; | |||
case ord('2'): | |||
demo_go($dp, "demo_lines", $cv, $bounds, $outline); | |||
break; | |||
case ord('3'): | |||
demo_go($dp, "demo_boxes", $cv, $bounds, $outline); | |||
break; | |||
case ord('4'): | |||
demo_go($dp, "demo_triangles", $cv, $bounds, $outline); | |||
break; | |||
case ord('5'): | |||
demo_go($dp, "demo_ellipses", $cv, $bounds, $outline); | |||
break; | |||
case ord('s'): | |||
case ord('S'): | |||
demo_go($dp, "demo_sprites", $cv, $bounds, $outline); | |||
break; | |||
case ord('r'): | |||
case ord('R'): | |||
demo_go($dp, "demo_render", $cv, $bounds, $outline); | |||
break; | |||
} | |||
} | |||
else if(caca_get_event_type($ev) & CACA_EVENT_MOUSE_MOTION) { | |||
$x = caca_get_event_mouse_x($ev); | |||
$y = caca_get_event_mouse_y($ev); | |||
display_menu($cv, $dp, $bounds, $outline, false); | |||
caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); | |||
caca_put_str($cv, $x, $y, "."); | |||
caca_put_str($cv, $x, $y + 1, "|\\"); | |||
$need_refresh = true; | |||
} | |||
else if(caca_get_event_type($ev) & CACA_EVENT_RESIZE) { | |||
display_menu($cv, $dp, $bounds, $outline); | |||
} | |||
} | |||
if ($need_refresh) { | |||
caca_refresh_display($dp); | |||
$need_refresh = false; | |||
} | |||
} | |||
} | |||
function display_menu($cv, $dp, $bounds, $outline, $refresh = true) { | |||
$xo = caca_get_canvas_width($cv) - 2; | |||
$yo = caca_get_canvas_height($cv) - 2; | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
caca_draw_thin_box($cv, 1, 1, $xo, $yo); | |||
caca_put_str($cv, ($xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); | |||
caca_put_str($cv, ($xo - strlen("==============")) / 2, 4, "=============="); | |||
caca_put_str($cv, 4, 6, "demos:"); | |||
caca_put_str($cv, 4, 7, "'f': full"); | |||
caca_put_str($cv, 4, 8, "'1': dots"); | |||
caca_put_str($cv, 4, 9, "'2': lines"); | |||
caca_put_str($cv, 4, 10, "'3': boxes"); | |||
caca_put_str($cv, 4, 11, "'4': triangles"); | |||
caca_put_str($cv, 4, 12, "'5': ellipses"); | |||
// caca_put_str($cv, 4, 13, "'c': colour"); | |||
// caca_put_str($cv, 4, 14, "'r': render"); | |||
// caca_put_str($cv, 4, 15, "'s': sprites"); | |||
caca_put_str($cv, 4, 16, "settings:"); | |||
caca_put_str($cv, 4, 17, "'o': outline: ".(($outline == 0) ? "none" : (($outline == 1) ? "solid" : "thin"))); | |||
caca_put_str($cv, 4, 18, "'b': drawing boundaries: ".(($bounds == 0) ? "screen" : "infinite")); | |||
caca_put_str($cv, 4, $yo - 2, "'q': quit"); | |||
if ($refresh) | |||
caca_refresh_display($dp); | |||
$xo = caca_get_canvas_width($cv) - 2; | |||
$yo = caca_get_canvas_height($cv) - 2; | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
caca_draw_thin_box($cv, 1, 1, $xo, $yo); | |||
caca_put_str($cv, ($xo - strlen("libcaca demo")) / 2, 3, "libcaca demo"); | |||
caca_put_str($cv, ($xo - strlen("==============")) / 2, 4, "=============="); | |||
caca_put_str($cv, 4, 6, "demos:"); | |||
caca_put_str($cv, 4, 7, "'f': full"); | |||
caca_put_str($cv, 4, 8, "'1': dots"); | |||
caca_put_str($cv, 4, 9, "'2': lines"); | |||
caca_put_str($cv, 4, 10, "'3': boxes"); | |||
caca_put_str($cv, 4, 11, "'4': triangles"); | |||
caca_put_str($cv, 4, 12, "'5': ellipses"); | |||
// caca_put_str($cv, 4, 13, "'c': colour"); | |||
// caca_put_str($cv, 4, 14, "'r': render"); | |||
// caca_put_str($cv, 4, 15, "'s': sprites"); | |||
caca_put_str($cv, 4, 16, "settings:"); | |||
caca_put_str($cv, 4, 17, "'o': outline: ".(($outline == 0) ? "none" : (($outline == 1) ? "solid" : "thin"))); | |||
caca_put_str($cv, 4, 18, "'b': drawing boundaries: ".(($bounds == 0) ? "screen" : "infinite")); | |||
caca_put_str($cv, 4, $yo - 2, "'q': quit"); | |||
if ($refresh) | |||
caca_refresh_display($dp); | |||
} | |||
function demo_go($dp, $demo, $cv, $bounds, $outline) { | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
while (!caca_get_event($dp, CACA_EVENT_KEY_PRESS)) { | |||
if (function_exists($demo)) | |||
$demo($cv, $bounds, $outline); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_draw_thin_box($cv, 1, 1, caca_get_canvas_width($cv) - 2, caca_get_canvas_height($cv) - 2); | |||
$rate = sprintf("%01.2f", 1000000 / caca_get_display_time($dp)); | |||
caca_put_str($cv, 4, 1, "[$rate fps]----"); | |||
caca_refresh_display($dp); | |||
} | |||
display_menu($cv, $dp, $bounds, $outline); | |||
caca_refresh_display($dp); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
while (!caca_get_event($dp, CACA_EVENT_KEY_PRESS)) { | |||
if (function_exists($demo)) | |||
$demo($cv, $bounds, $outline); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_draw_thin_box($cv, 1, 1, caca_get_canvas_width($cv) - 2, caca_get_canvas_height($cv) - 2); | |||
$rate = sprintf("%01.2f", 1000000 / caca_get_display_time($dp)); | |||
caca_put_str($cv, 4, 1, "[$rate fps]----"); | |||
caca_refresh_display($dp); | |||
} | |||
display_menu($cv, $dp, $bounds, $outline); | |||
caca_refresh_display($dp); | |||
} | |||
function demo_all($cv, $bounds, $outline) { | |||
global $i; | |||
$i++; | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
/* Draw the sun */ | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
$xo = caca_get_canvas_width($cv) / 4; | |||
$yo = caca_get_canvas_height($cv) / 4 + 5 * sin(0.03 * $i); | |||
for ($j = 0; $j < 16; $j++) { | |||
$xa = $xo - (30 + sin(0.03 * $i) * 8) * sin(0.03 * $i + M_PI * $j / 8); | |||
$ya = $yo + (15 + sin(0.03 * $i) * 4) * cos(0.03 * $i + M_PI * $j / 8); | |||
caca_draw_thin_line($cv, $xo, $yo, $xa, $ya); | |||
} | |||
$j = 15 + sin(0.03 * $i) * 8; | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); | |||
/* Draw the pyramid */ | |||
$xo = caca_get_canvas_width($cv) * 5 / 8; | |||
$yo = 2; | |||
$xa = caca_get_canvas_width($cv) / 8 + sin(0.03 * $i) * 5; | |||
$ya = caca_get_canvas_height($cv) / 2 + cos(0.03 * $i) * 5; | |||
$xb = caca_get_canvas_width($cv) - 10 - cos(0.02 * $i) * 10; | |||
$yb = caca_get_canvas_height($cv) * 3 / 4 - 5 + sin(0.02 * $i) * 5; | |||
$xc = caca_get_canvas_width($cv) / 4 - sin(0.02 * $i) * 5; | |||
$yc = caca_get_canvas_height($cv) * 3 / 4 + cos(0.02 * $i) * 5; | |||
caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK); | |||
caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, ord('%')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya); | |||
caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); | |||
caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK); | |||
caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, ord('%')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc); | |||
/* Draw a background triangle */ | |||
$xa = 2; | |||
$ya = 2; | |||
$xb = caca_get_canvas_width($cv) - 3; | |||
$yb = caca_get_canvas_height($cv) / 2; | |||
$xc = caca_get_canvas_width($cv) / 3; | |||
$yc = caca_get_canvas_height($cv) - 3; | |||
caca_set_color_ansi($cv, CACA_CYAN, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
$xo = caca_get_canvas_width($cv) / 2 + cos(0.027 * $i) * caca_get_canvas_width($cv) / 3; | |||
$yo = caca_get_canvas_height($cv) / 2 - sin(0.027 * $i) * caca_get_canvas_height($cv) / 2; | |||
caca_draw_thin_line($cv, $xa, $ya, $xo, $yo); | |||
caca_draw_thin_line($cv, $xb, $yb, $xo, $yo); | |||
caca_draw_thin_line($cv, $xc, $yc, $xo, $yo); | |||
/* Draw a trail behind the foreground sprite */ | |||
for($j = $i - 60; $j < $i; $j++) { | |||
$delta = caca_rand(-5, 6); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_put_char($cv, | |||
caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4), | |||
caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3), | |||
ord('#')); | |||
} | |||
global $i; | |||
$i++; | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
/* Draw the sun */ | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
$xo = caca_get_canvas_width($cv) / 4; | |||
$yo = caca_get_canvas_height($cv) / 4 + 5 * sin(0.03 * $i); | |||
for ($j = 0; $j < 16; $j++) { | |||
$xa = $xo - (30 + sin(0.03 * $i) * 8) * sin(0.03 * $i + M_PI * $j / 8); | |||
$ya = $yo + (15 + sin(0.03 * $i) * 4) * cos(0.03 * $i + M_PI * $j / 8); | |||
caca_draw_thin_line($cv, $xo, $yo, $xa, $ya); | |||
} | |||
$j = 15 + sin(0.03 * $i) * 8; | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#')); | |||
/* Draw the pyramid */ | |||
$xo = caca_get_canvas_width($cv) * 5 / 8; | |||
$yo = 2; | |||
$xa = caca_get_canvas_width($cv) / 8 + sin(0.03 * $i) * 5; | |||
$ya = caca_get_canvas_height($cv) / 2 + cos(0.03 * $i) * 5; | |||
$xb = caca_get_canvas_width($cv) - 10 - cos(0.02 * $i) * 10; | |||
$yb = caca_get_canvas_height($cv) * 3 / 4 - 5 + sin(0.02 * $i) * 5; | |||
$xc = caca_get_canvas_width($cv) / 4 - sin(0.02 * $i) * 5; | |||
$yc = caca_get_canvas_height($cv) * 3 / 4 + cos(0.02 * $i) * 5; | |||
caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK); | |||
caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, ord('%')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya); | |||
caca_set_color_ansi($cv, CACA_RED, CACA_BLACK); | |||
caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK); | |||
caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, ord('%')); | |||
caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc); | |||
/* Draw a background triangle */ | |||
$xa = 2; | |||
$ya = 2; | |||
$xb = caca_get_canvas_width($cv) - 3; | |||
$yb = caca_get_canvas_height($cv) / 2; | |||
$xc = caca_get_canvas_width($cv) / 3; | |||
$yc = caca_get_canvas_height($cv) - 3; | |||
caca_set_color_ansi($cv, CACA_CYAN, CACA_BLACK); | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
$xo = caca_get_canvas_width($cv) / 2 + cos(0.027 * $i) * caca_get_canvas_width($cv) / 3; | |||
$yo = caca_get_canvas_height($cv) / 2 - sin(0.027 * $i) * caca_get_canvas_height($cv) / 2; | |||
caca_draw_thin_line($cv, $xa, $ya, $xo, $yo); | |||
caca_draw_thin_line($cv, $xb, $yb, $xo, $yo); | |||
caca_draw_thin_line($cv, $xc, $yc, $xo, $yo); | |||
/* Draw a trail behind the foreground sprite */ | |||
for($j = $i - 60; $j < $i; $j++) { | |||
$delta = caca_rand(-5, 6); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_put_char($cv, | |||
caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4), | |||
caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3), | |||
ord('#')); | |||
} | |||
} | |||
function demo_dots($cv, $bounds, $outline) { | |||
$xmax = caca_get_canvas_width($cv); | |||
$ymax = caca_get_canvas_height($cv); | |||
$xmax = caca_get_canvas_width($cv); | |||
$ymax = caca_get_canvas_height($cv); | |||
$chars = array('+', '-', '*', '#', 'X', '@', '%', '$', 'M', 'W'); | |||
$chars = array('+', '-', '*', '#', 'X', '@', '%', '$', 'M', 'W'); | |||
for ($i = 1000; $i--;) { | |||
/* Putpixel */ | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_put_char($cv, caca_rand(0, $xmax), caca_rand(0, $ymax), ord($chars[caca_rand(0, 9)])); | |||
} | |||
for ($i = 1000; $i--;) { | |||
/* Putpixel */ | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_put_char($cv, caca_rand(0, $xmax), caca_rand(0, $ymax), ord($chars[caca_rand(0, 9)])); | |||
} | |||
} | |||
function demo_lines($cv, $bounds, $outline) { | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline > 1) | |||
caca_draw_thin_line($cv, $xa, $ya, $xb, $yb); | |||
else | |||
caca_draw_line($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline > 1) | |||
caca_draw_thin_line($cv, $xa, $ya, $xb, $yb); | |||
else | |||
caca_draw_line($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
} | |||
function demo_boxes($cv, $bounds, $outline) { | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_box($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if($outline == 2) | |||
caca_draw_thin_box($cv, $xa, $ya, $xb, $yb); | |||
else if($outline == 1) | |||
caca_draw_box($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_box($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if($outline == 2) | |||
caca_draw_thin_box($cv, $xa, $ya, $xb, $yb); | |||
else if($outline == 1) | |||
caca_draw_box($cv, $xa, $ya, $xb, $yb, ord('#')); | |||
} | |||
function demo_ellipses($cv, $bounds, $outline) { | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$x = caca_rand(- $w, 2 * $w); $y = caca_rand(- $h, 2 * $h); | |||
$a = caca_rand(0, $w); $b = caca_rand(0, $h); | |||
} | |||
else { | |||
do { | |||
$x = caca_rand(0, $w); $y = caca_rand(0, $h); | |||
$a = caca_rand(0, $w); $b = caca_rand(0, $h); | |||
} while ($x - $a < 0 || $x + $a >= $w || $y - $b < 0 || $y + $b >= $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_ellipse($cv, $x, $y, $a, $b, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline == 2) | |||
caca_draw_thin_ellipse($cv, $x, $y, $a, $b); | |||
else if ($outline == 1) | |||
caca_draw_ellipse($cv, $x, $y, $a, $b, ord('#')); | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$x = caca_rand(- $w, 2 * $w); $y = caca_rand(- $h, 2 * $h); | |||
$a = caca_rand(0, $w); $b = caca_rand(0, $h); | |||
} | |||
else { | |||
do { | |||
$x = caca_rand(0, $w); $y = caca_rand(0, $h); | |||
$a = caca_rand(0, $w); $b = caca_rand(0, $h); | |||
} while ($x - $a < 0 || $x + $a >= $w || $y - $b < 0 || $y + $b >= $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_ellipse($cv, $x, $y, $a, $b, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline == 2) | |||
caca_draw_thin_ellipse($cv, $x, $y, $a, $b); | |||
else if ($outline == 1) | |||
caca_draw_ellipse($cv, $x, $y, $a, $b, ord('#')); | |||
} | |||
function demo_triangles($cv, $bounds, $outline) { | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
$xc = caca_rand(- $w, 2 * $w); $yc = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
$xc = caca_rand(0, $w); $yc = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline == 2) | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
else if ($outline == 1) | |||
caca_draw_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
$w = caca_get_canvas_width($cv); | |||
$h = caca_get_canvas_height($cv); | |||
if ($bounds) { | |||
$xa = caca_rand(- $w, 2 * $w); $ya = caca_rand(- $h, 2 * $h); | |||
$xb = caca_rand(- $w, 2 * $w); $yb = caca_rand(- $h, 2 * $h); | |||
$xc = caca_rand(- $w, 2 * $w); $yc = caca_rand(- $h, 2 * $h); | |||
} | |||
else { | |||
$xa = caca_rand(0, $w); $ya = caca_rand(0, $h); | |||
$xb = caca_rand(0, $w); $yb = caca_rand(0, $h); | |||
$xc = caca_rand(0, $w); $yc = caca_rand(0, $h); | |||
} | |||
caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16)); | |||
caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK); | |||
if ($outline == 2) | |||
caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc); | |||
else if ($outline == 1) | |||
caca_draw_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#')); | |||
} | |||
function demo_render($cv, $bounds, $outline) { | |||
@@ -362,7 +362,7 @@ function demo_render($cv, $bounds, $outline) { | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
main(); | |||
@@ -12,23 +12,23 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$img = imagecreatefrompng(dirname(__FILE__)."/logo-caca.png"); | |||
if (!$img) { | |||
die("Can not open image.\n"); | |||
die("Can not open image.\n"); | |||
} | |||
$dither = caca_create_dither($img); | |||
if (!$dither) { | |||
die("Can not create dither. Maybe you compiled caca-php without gd support.\n"); | |||
die("Can not create dither. Maybe you compiled caca-php without gd support.\n"); | |||
} | |||
$canvas = caca_create_canvas(0, 0); | |||
$display = caca_create_display($canvas); | |||
if (!$display) { | |||
die("Can not create display.\n"); | |||
die("Can not create display.\n"); | |||
} | |||
caca_dither_bitmap($canvas, 0, 0, caca_get_canvas_width($canvas), caca_get_canvas_height($canvas), $dither, $img); | |||
@@ -5,12 +5,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/export.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,7 +17,7 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
define('WIDTH', 80); | |||
@@ -31,104 +29,104 @@ $exports = caca_get_export_list(); | |||
if($argc < 2 || $argc > 3) | |||
{ | |||
$msg = ($argv[0] . ": wrong argument count\n" . | |||
"usage: " . $argv[0] . " [file] <format>\n" . | |||
"where <format> is one of:\n"); | |||
foreach($exports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
$msg = ($argv[0] . ": wrong argument count\n" . | |||
"usage: " . $argv[0] . " [file] <format>\n" . | |||
"where <format> is one of:\n"); | |||
foreach($exports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
} | |||
if($argc == 2) | |||
{ | |||
$file = NULL; | |||
$format = $argv[1]; | |||
$file = NULL; | |||
$format = $argv[1]; | |||
} | |||
else | |||
{ | |||
$file = $argv[1]; | |||
$format = $argv[2]; | |||
$file = $argv[1]; | |||
$format = $argv[2]; | |||
} | |||
if(! array_key_exists($format, $exports)) | |||
{ | |||
$msg = ($argv[0] . ": unknown format `" . $format . "'\n" . | |||
"please use one of:\n"); | |||
foreach($exports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
$msg = ($argv[0] . ": unknown format `" . $format . "'\n" . | |||
"please use one of:\n"); | |||
foreach($exports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
} | |||
if($file) | |||
{ | |||
$cv = caca_create_canvas(0, 0); | |||
if(caca_import_file($cv, $file, "") < 0) | |||
{ | |||
die($argv[0] . ": `" . $file . "' has unknown format\n"); | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(caca_import_file($cv, $file, "") < 0) | |||
{ | |||
die($argv[0] . ": `" . $file . "' has unknown format\n"); | |||
} | |||
} | |||
else | |||
{ | |||
$cv = caca_create_canvas(WIDTH, HEIGHT); | |||
for($y = 0; $y < 256; $y++) | |||
{ | |||
for($x = 0; $x < 256; $x++) | |||
{ | |||
$r = $x; | |||
$g = (255 - $y + $x) / 2; | |||
$b = $y * (255 - $x) / 256; | |||
imagesetpixel($pixels, $x, $y, imagecolorallocate($pixels, $r, $g, $b)); | |||
} | |||
} | |||
$dither = caca_create_dither($pixels); | |||
if(($format == "ansi") || ($format == "utf8")) | |||
caca_set_dither_charset($dither, "shades"); | |||
caca_dither_bitmap($cv, 0, 0, caca_get_canvas_width($cv), | |||
caca_get_canvas_height($cv), $dither, $pixels); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_draw_thin_box($cv, 0, 0, WIDTH - 1, HEIGHT - 1); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_fill_ellipse($cv, WIDTH / 2, HEIGHT / 2, | |||
WIDTH / 4, HEIGHT / 4, ord(' ')); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, | |||
" lightgray on black "); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, | |||
" default on transparent "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, | |||
" black on white "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); | |||
caca_put_str($cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); | |||
caca_set_attr($cv, CACA_BOLD); | |||
caca_put_str($cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); | |||
caca_set_attr($cv, CACA_BLINK); | |||
caca_put_str($cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); | |||
caca_set_attr($cv, CACA_ITALICS); | |||
caca_put_str($cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); | |||
caca_set_attr($cv, CACA_UNDERLINE); | |||
caca_put_str($cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); | |||
caca_set_attr($cv, 0); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
caca_set_color_argb($cv, 0xff00 | $x, 0xf00f | ($x << 4)); | |||
caca_put_char($cv, WIDTH / 2 - 7 + $x, HEIGHT / 2 + 6, ord('#')); | |||
} | |||
$cv = caca_create_canvas(WIDTH, HEIGHT); | |||
for($y = 0; $y < 256; $y++) | |||
{ | |||
for($x = 0; $x < 256; $x++) | |||
{ | |||
$r = $x; | |||
$g = (255 - $y + $x) / 2; | |||
$b = $y * (255 - $x) / 256; | |||
imagesetpixel($pixels, $x, $y, imagecolorallocate($pixels, $r, $g, $b)); | |||
} | |||
} | |||
$dither = caca_create_dither($pixels); | |||
if(($format == "ansi") || ($format == "utf8")) | |||
caca_set_dither_charset($dither, "shades"); | |||
caca_dither_bitmap($cv, 0, 0, caca_get_canvas_width($cv), | |||
caca_get_canvas_height($cv), $dither, $pixels); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_draw_thin_box($cv, 0, 0, WIDTH - 1, HEIGHT - 1); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_fill_ellipse($cv, WIDTH / 2, HEIGHT / 2, | |||
WIDTH / 4, HEIGHT / 4, ord(' ')); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, | |||
" lightgray on black "); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, | |||
" default on transparent "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, | |||
" black on white "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); | |||
caca_put_str($cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); | |||
caca_set_attr($cv, CACA_BOLD); | |||
caca_put_str($cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); | |||
caca_set_attr($cv, CACA_BLINK); | |||
caca_put_str($cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); | |||
caca_set_attr($cv, CACA_ITALICS); | |||
caca_put_str($cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); | |||
caca_set_attr($cv, CACA_UNDERLINE); | |||
caca_put_str($cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); | |||
caca_set_attr($cv, 0); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
caca_set_color_argb($cv, 0xff00 | $x, 0xf00f | ($x << 4)); | |||
caca_put_char($cv, WIDTH / 2 - 7 + $x, HEIGHT / 2 + 6, ord('#')); | |||
} | |||
} | |||
echo caca_export_string($cv, $format); | |||
@@ -11,37 +11,37 @@ | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
function unistr_to_ords($str, $encoding = 'UTF-8'){ | |||
$str = mb_convert_encoding($str, "UCS-4BE", $encoding); | |||
$result = array(); | |||
for ($i = 0; $i < mb_strlen($str, "UCS-4BE"); $i++){ | |||
$c = mb_substr($str, $i, 1, "UCS-4BE"); | |||
$val = unpack("N", $c); | |||
$result[] = $val[1]; | |||
} | |||
return $result; | |||
function unistr_to_ords($str, $encoding = 'UTF-8'){ | |||
$str = mb_convert_encoding($str, "UCS-4BE", $encoding); | |||
$result = array(); | |||
for ($i = 0; $i < mb_strlen($str, "UCS-4BE"); $i++){ | |||
$c = mb_substr($str, $i, 1, "UCS-4BE"); | |||
$val = unpack("N", $c); | |||
$result[] = $val[1]; | |||
} | |||
return $result; | |||
} | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
if ($argc < 3) { | |||
die("Too few arguments.\nUsage: cmd <path of font> <utf8 string>\n"); | |||
die("Too few arguments.\nUsage: cmd <path of font> <utf8 string>\n"); | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if (!caca_canvas_set_figfont($cv, $argv[1])) { | |||
die("Could not open font\n"); | |||
die("Could not open font\n"); | |||
} | |||
$chars = unistr_to_ords($argv[2]); | |||
$color = 0; | |||
foreach ($chars as $c) { | |||
caca_set_color_ansi($cv, 1 + (($color += 4) % 15), CACA_TRANSPARENT); | |||
caca_put_figchar($cv, $c); | |||
caca_set_color_ansi($cv, 1 + (($color += 4) % 15), CACA_TRANSPARENT); | |||
caca_put_figchar($cv, $c); | |||
} | |||
echo caca_export_string($cv, "utf8"); | |||
@@ -5,12 +5,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/fullwidth.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,7 +17,7 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
define('CACA', "쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊"); | |||
@@ -27,12 +25,12 @@ define('CACA', "쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊"); | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(! $dp) | |||
{ | |||
die("Can't create display\n"); | |||
die("Can't create display\n"); | |||
} | |||
$caca = caca_create_canvas(6, 10); | |||
@@ -41,10 +39,10 @@ $line = caca_create_canvas(2, 1); | |||
/* Line of x's */ | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_RED); | |||
caca_put_char($caca, $i - 2, $i, ord('x')); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_RED); | |||
caca_put_char($caca, $i - 2, $i, ord('x')); | |||
} | |||
caca_blit($cv, 1, 1, $caca); | |||
@@ -52,10 +50,10 @@ caca_blit($cv, 1, 1, $caca); | |||
/* Line of ホ's */ | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_GREEN); | |||
caca_put_str($caca, $i - 2, $i, "ホ"); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_GREEN); | |||
caca_put_str($caca, $i - 2, $i, "ホ"); | |||
} | |||
caca_blit($cv, 15, 1, $caca); | |||
@@ -65,9 +63,9 @@ caca_set_color_ansi($line, CACA_WHITE, CACA_MAGENTA); | |||
caca_put_str($line, 0, 0, "ほ"); | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_blit($caca, $i - 2, $i, $line); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_blit($caca, $i - 2, $i, $line); | |||
} | |||
caca_blit($cv, 29, 1, $caca); | |||
@@ -5,13 +5,11 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "src/img2txt.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* 2007 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -20,7 +18,7 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
class MygetoptException extends Exception | |||
@@ -31,368 +29,368 @@ $myoptind = 0; | |||
function mygetopt($shortopts, $longopts) | |||
{ | |||
global $argc, $argv, $myoptind; | |||
if($myoptind < 0) | |||
{ | |||
$myoptind = 0; | |||
} | |||
if(($myoptind + 1) >= $argc) | |||
{ | |||
return NULL; | |||
} | |||
$myoptind ++; | |||
$nextarg = $argv[$myoptind]; | |||
$ret = NULL; | |||
if((substr($nextarg, 0, 1) != '-') | |||
|| | |||
($nextarg == '-')) | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$skipopt = $myoptind; | |||
$skipopts = 1; | |||
if($nextarg == '--') | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$opt = NULL; | |||
$arg = NULL; | |||
foreach($longopts as $longopt) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
if(($longopt != '::') && substr($longopt, -2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -2); | |||
} | |||
else if(($longopt != ':') && substr($longopt, -1) == ':') | |||
{ | |||
$optional = false; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -1); | |||
} | |||
if($nextarg == ('--' . $longopt)) | |||
{ | |||
$opt = '--' . $longopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('--' . $longopt . '=')) | |||
== | |||
('--' . $longopt . '=')) | |||
{ | |||
$opt = '--' . $longopt; | |||
$arg = substr($nextarg, strlen($opt . '=')); | |||
if(! $hasarg) | |||
{ | |||
throw new MygetoptException("option \"$opt\" does not allow an argument"); | |||
} | |||
break; | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
for($i = 0; $i < strlen($shortopts); $i ++) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
$shortopt = substr($shortopts, $i, 1); | |||
if(substr($shortopts, $i + 1, 2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$i += 2; | |||
} | |||
else if(substr($shortopts, $i + 1, 1) == ':') | |||
{ | |||
$hasarg = true; | |||
} | |||
if($nextarg | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('-' . $shortopt)) | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg) | |||
{ | |||
$arg = substr($nextarg, strlen($opt)); | |||
} | |||
else | |||
{ | |||
$argv[$myoptind] = '-' . substr($nextarg, strlen($opt)); | |||
$myoptind --; | |||
$skipopts = 0; | |||
} | |||
} | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
if(substr($nextarg, 0, strlen('--')) == '--') | |||
{ | |||
$longopt = substr($nextarg, strlen('--')); | |||
if(strpos($longopt, '=') !== false) | |||
{ | |||
$longopt = substr($longopt, 0, strpos($longopt, '=')); | |||
} | |||
throw new MygetoptException("option \"--$longopt\" is not recognized"); | |||
} | |||
$shortopt = substr($nextarg, strlen('-'), 1); | |||
throw new MygetoptException("option \"-$shortopt\" is not recognized"); | |||
} | |||
$ret = array($opt, $arg); | |||
} | |||
if ($skipopts > 0) | |||
{ | |||
for($i = 0; $i < $argc; $i ++) | |||
{ | |||
if(($i < $skipopt) || ($i >= ($skipopt + $skipopts))) | |||
{ | |||
$new_argv[] = $argv[$i]; | |||
} | |||
} | |||
if($myoptind >= $skipopt) | |||
{ | |||
$myoptind -= $skipopts; | |||
} | |||
$argv = $new_argv; | |||
$argc = count($argv); | |||
} | |||
} | |||
return $ret; | |||
global $argc, $argv, $myoptind; | |||
if($myoptind < 0) | |||
{ | |||
$myoptind = 0; | |||
} | |||
if(($myoptind + 1) >= $argc) | |||
{ | |||
return NULL; | |||
} | |||
$myoptind ++; | |||
$nextarg = $argv[$myoptind]; | |||
$ret = NULL; | |||
if((substr($nextarg, 0, 1) != '-') | |||
|| | |||
($nextarg == '-')) | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$skipopt = $myoptind; | |||
$skipopts = 1; | |||
if($nextarg == '--') | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$opt = NULL; | |||
$arg = NULL; | |||
foreach($longopts as $longopt) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
if(($longopt != '::') && substr($longopt, -2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -2); | |||
} | |||
else if(($longopt != ':') && substr($longopt, -1) == ':') | |||
{ | |||
$optional = false; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -1); | |||
} | |||
if($nextarg == ('--' . $longopt)) | |||
{ | |||
$opt = '--' . $longopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('--' . $longopt . '=')) | |||
== | |||
('--' . $longopt . '=')) | |||
{ | |||
$opt = '--' . $longopt; | |||
$arg = substr($nextarg, strlen($opt . '=')); | |||
if(! $hasarg) | |||
{ | |||
throw new MygetoptException("option \"$opt\" does not allow an argument"); | |||
} | |||
break; | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
for($i = 0; $i < strlen($shortopts); $i ++) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
$shortopt = substr($shortopts, $i, 1); | |||
if(substr($shortopts, $i + 1, 2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$i += 2; | |||
} | |||
else if(substr($shortopts, $i + 1, 1) == ':') | |||
{ | |||
$hasarg = true; | |||
} | |||
if($nextarg | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('-' . $shortopt)) | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg) | |||
{ | |||
$arg = substr($nextarg, strlen($opt)); | |||
} | |||
else | |||
{ | |||
$argv[$myoptind] = '-' . substr($nextarg, strlen($opt)); | |||
$myoptind --; | |||
$skipopts = 0; | |||
} | |||
} | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
if(substr($nextarg, 0, strlen('--')) == '--') | |||
{ | |||
$longopt = substr($nextarg, strlen('--')); | |||
if(strpos($longopt, '=') !== false) | |||
{ | |||
$longopt = substr($longopt, 0, strpos($longopt, '=')); | |||
} | |||
throw new MygetoptException("option \"--$longopt\" is not recognized"); | |||
} | |||
$shortopt = substr($nextarg, strlen('-'), 1); | |||
throw new MygetoptException("option \"-$shortopt\" is not recognized"); | |||
} | |||
$ret = array($opt, $arg); | |||
} | |||
if ($skipopts > 0) | |||
{ | |||
for($i = 0; $i < $argc; $i ++) | |||
{ | |||
if(($i < $skipopt) || ($i >= ($skipopt + $skipopts))) | |||
{ | |||
$new_argv[] = $argv[$i]; | |||
} | |||
} | |||
if($myoptind >= $skipopt) | |||
{ | |||
$myoptind -= $skipopts; | |||
} | |||
$argv = $new_argv; | |||
$argc = count($argv); | |||
} | |||
} | |||
return $ret; | |||
} | |||
function usage($argc, $argv) | |||
{ | |||
fprintf(STDERR, "Usage: %s [OPTIONS]... <IMAGE>\n", $argv[0]); | |||
fprintf(STDERR, "Convert IMAGE to any text based available format.\n"); | |||
fprintf(STDERR, "Example : %s -W 80 -f ansi ./caca.png\n\n", $argv[0]); | |||
fprintf(STDERR, "Options:\n"); | |||
fprintf(STDERR, " -h, --help\t\t\tThis help\n"); | |||
fprintf(STDERR, " -v, --version\t\t\tVersion of the program\n"); | |||
fprintf(STDERR, " -W, --width=WIDTH\t\tWidth of resulting image\n"); | |||
fprintf(STDERR, " -H, --height=HEIGHT\t\tHeight of resulting image\n"); | |||
fprintf(STDERR, " -x, --font-width=WIDTH\t\tWidth of output font\n"); | |||
fprintf(STDERR, " -y, --font-height=HEIGHT\t\tHeight of output font\n"); | |||
fprintf(STDERR, " -b, --brightness=BRIGHTNESS\tBrightness of resulting image\n"); | |||
fprintf(STDERR, " -c, --contrast=CONTRAST\tContrast of resulting image\n"); | |||
fprintf(STDERR, " -g, --gamma=GAMMA\t\tGamma of resulting image\n"); | |||
fprintf(STDERR, " -d, --dither=DITHER\t\tDithering algorithm to use :\n"); | |||
$list = caca_get_dither_algorithm_list(caca_create_dither(imagecreate(1, 1))); | |||
foreach($list as $type => $name) | |||
{ | |||
fprintf(STDERR, "\t\t\t%s: %s\n", $type, $name); | |||
} | |||
fprintf(STDERR, "Usage: %s [OPTIONS]... <IMAGE>\n", $argv[0]); | |||
fprintf(STDERR, "Convert IMAGE to any text based available format.\n"); | |||
fprintf(STDERR, "Example : %s -W 80 -f ansi ./caca.png\n\n", $argv[0]); | |||
fprintf(STDERR, "Options:\n"); | |||
fprintf(STDERR, " -h, --help\t\t\tThis help\n"); | |||
fprintf(STDERR, " -v, --version\t\t\tVersion of the program\n"); | |||
fprintf(STDERR, " -W, --width=WIDTH\t\tWidth of resulting image\n"); | |||
fprintf(STDERR, " -H, --height=HEIGHT\t\tHeight of resulting image\n"); | |||
fprintf(STDERR, " -x, --font-width=WIDTH\t\tWidth of output font\n"); | |||
fprintf(STDERR, " -y, --font-height=HEIGHT\t\tHeight of output font\n"); | |||
fprintf(STDERR, " -b, --brightness=BRIGHTNESS\tBrightness of resulting image\n"); | |||
fprintf(STDERR, " -c, --contrast=CONTRAST\tContrast of resulting image\n"); | |||
fprintf(STDERR, " -g, --gamma=GAMMA\t\tGamma of resulting image\n"); | |||
fprintf(STDERR, " -d, --dither=DITHER\t\tDithering algorithm to use :\n"); | |||
$list = caca_get_dither_algorithm_list(caca_create_dither(imagecreate(1, 1))); | |||
foreach($list as $type => $name) | |||
{ | |||
fprintf(STDERR, "\t\t\t%s: %s\n", $type, $name); | |||
} | |||
fprintf(STDERR, " -f, --format=FORMAT\t\tFormat of the resulting image :\n"); | |||
$list = caca_get_export_list(); | |||
foreach($list as $type => $name) | |||
{ | |||
fprintf(STDERR, "\t\t\t%s: %s\n", $type, $name); | |||
} | |||
fprintf(STDERR, " -f, --format=FORMAT\t\tFormat of the resulting image :\n"); | |||
$list = caca_get_export_list(); | |||
foreach($list as $type => $name) | |||
{ | |||
fprintf(STDERR, "\t\t\t%s: %s\n", $type, $name); | |||
} | |||
} | |||
function version() | |||
{ | |||
printf( | |||
"img2txt Copyright 2006-2007 Sam Hocevar and Jean-Yves Lamoureux\n" . | |||
" Copyright 2008 Benjamin C. Wiley Sittler\n" . | |||
"Internet: <sam@hocevar.net> <jylam@lnxscene.org>\n" . | |||
" <bsittler@gmail.com> Version: %s\n" . | |||
"\n" . | |||
"img2txt, along with its documentation, may be freely copied and distributed.\n" . | |||
"\n" . | |||
"The latest version of img2txt is available from the web site,\n" . | |||
" http://caca.zoy.org/wiki/libcaca in the libcaca package.\n" . | |||
"\n", | |||
caca_get_version()); | |||
printf( | |||
"img2txt Copyright 2006-2007 Sam Hocevar and Jean-Yves Lamoureux\n" . | |||
" Copyright 2008 Benjamin C. Wiley Sittler\n" . | |||
"Internet: <sam@hocevar.net> <jylam@lnxscene.org>\n" . | |||
" <bsittler@gmail.com> Version: %s\n" . | |||
"\n" . | |||
"img2txt, along with its documentation, may be freely copied and distributed.\n" . | |||
"\n" . | |||
"The latest version of img2txt is available from the web site,\n" . | |||
" http://caca.zoy.org/wiki/libcaca in the libcaca package.\n" . | |||
"\n", | |||
caca_get_version()); | |||
} | |||
function main() | |||
{ | |||
global $argc, $argv; | |||
$cols = 0; | |||
$lines = 0; | |||
$font_width = 6; | |||
$font_height = 10; | |||
$format = NULL; | |||
$dither = NULL; | |||
$gamma = $brightness = $contrast = -1.0; | |||
global $argc, $argv; | |||
$cols = 0; | |||
$lines = 0; | |||
$font_width = 6; | |||
$font_height = 10; | |||
$format = NULL; | |||
$dither = NULL; | |||
$gamma = $brightness = $contrast = -1.0; | |||
$long_options = array( | |||
"width:" => 'W', | |||
"height:" => 'H', | |||
"font-width:" => 'x', | |||
"font-height:" => 'y', | |||
"format:" => 'f', | |||
"dither:" => 'd', | |||
"gamma:" => 'g', | |||
"brightness:" => 'b', | |||
"contrast:" => 'c', | |||
"help" => 'h', | |||
"version" => 'v' | |||
); | |||
$long_options = array( | |||
"width:" => 'W', | |||
"height:" => 'H', | |||
"font-width:" => 'x', | |||
"font-height:" => 'y', | |||
"format:" => 'f', | |||
"dither:" => 'd', | |||
"gamma:" => 'g', | |||
"brightness:" => 'b', | |||
"contrast:" => 'c', | |||
"help" => 'h', | |||
"version" => 'v' | |||
); | |||
try { | |||
while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options))) | |||
{ | |||
$opt = $opt_and_arg[0]; | |||
$arg = $opt_and_arg[1]; | |||
if((substr($opt, 0, 2) == '--') | |||
&& | |||
array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options)) | |||
{ | |||
$opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')]; | |||
} | |||
switch($opt) | |||
{ | |||
case '-W': /* --width */ | |||
$cols = intval($arg); | |||
break; | |||
case '-H': /* --height */ | |||
$lines = intval($arg); | |||
break; | |||
case '-x': /* --width */ | |||
$font_width = intval($arg); | |||
break; | |||
case '-y': /* --height */ | |||
$font_height = intval($arg); | |||
break; | |||
case '-f': /* --format */ | |||
$format = $arg; | |||
break; | |||
case '-d': /* --dither */ | |||
$dither = $arg; | |||
break; | |||
case '-g': /* --gamma */ | |||
$gamma = floatval($arg); | |||
break; | |||
case '-b': /* --brightness */ | |||
$brightness = floatval($arg); | |||
break; | |||
case '-c': /* --contrast */ | |||
$contrast = floatval($arg); | |||
break; | |||
case '-h': /* --help */ | |||
usage($argc, $argv); | |||
return 0; | |||
case '-v': /* --version */ | |||
version(); | |||
return 0; | |||
default: | |||
return 1; | |||
} | |||
} | |||
} | |||
catch (MygetoptException $e) | |||
{ | |||
fprintf(STDERR, "%s", $argv[0] . ": " . $e->getMessage() . "\n"); | |||
usage($argc, $argv); | |||
return 2; | |||
} | |||
try { | |||
while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options))) | |||
{ | |||
$opt = $opt_and_arg[0]; | |||
$arg = $opt_and_arg[1]; | |||
if((substr($opt, 0, 2) == '--') | |||
&& | |||
array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options)) | |||
{ | |||
$opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')]; | |||
} | |||
switch($opt) | |||
{ | |||
case '-W': /* --width */ | |||
$cols = intval($arg); | |||
break; | |||
case '-H': /* --height */ | |||
$lines = intval($arg); | |||
break; | |||
case '-x': /* --width */ | |||
$font_width = intval($arg); | |||
break; | |||
case '-y': /* --height */ | |||
$font_height = intval($arg); | |||
break; | |||
case '-f': /* --format */ | |||
$format = $arg; | |||
break; | |||
case '-d': /* --dither */ | |||
$dither = $arg; | |||
break; | |||
case '-g': /* --gamma */ | |||
$gamma = floatval($arg); | |||
break; | |||
case '-b': /* --brightness */ | |||
$brightness = floatval($arg); | |||
break; | |||
case '-c': /* --contrast */ | |||
$contrast = floatval($arg); | |||
break; | |||
case '-h': /* --help */ | |||
usage($argc, $argv); | |||
return 0; | |||
case '-v': /* --version */ | |||
version(); | |||
return 0; | |||
default: | |||
return 1; | |||
} | |||
} | |||
} | |||
catch (MygetoptException $e) | |||
{ | |||
fprintf(STDERR, "%s", $argv[0] . ": " . $e->getMessage() . "\n"); | |||
usage($argc, $argv); | |||
return 2; | |||
} | |||
if($argc != 2) | |||
{ | |||
fprintf(STDERR, "%s: wrong argument count\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
if($argc != 2) | |||
{ | |||
fprintf(STDERR, "%s: wrong argument count\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(!$cv) | |||
{ | |||
fprintf(STDERR, "%s: unable to initialise libcaca\n", $argv[0]); | |||
return 1; | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(!$cv) | |||
{ | |||
fprintf(STDERR, "%s: unable to initialise libcaca\n", $argv[0]); | |||
return 1; | |||
} | |||
$i_str = file_get_contents($argv[$argc-1]); | |||
$i = $i_str ? imagecreatefromstring($i_str) : NULL; | |||
if(!$i) | |||
{ | |||
fprintf(STDERR, "%s: unable to load %s\n", $argv[0], $argv[$argc-1]); | |||
return 1; | |||
} | |||
$i_str = file_get_contents($argv[$argc-1]); | |||
$i = $i_str ? imagecreatefromstring($i_str) : NULL; | |||
if(!$i) | |||
{ | |||
fprintf(STDERR, "%s: unable to load %s\n", $argv[0], $argv[$argc-1]); | |||
return 1; | |||
} | |||
/* Assume a 6×10 font */ | |||
if(!$cols && !$lines) | |||
{ | |||
$cols = 60; | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if($cols && !$lines) | |||
{ | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if(!$cols && $lines) | |||
{ | |||
$cols = $lines * imagesx($i) * $font_height / imagesy($i) / $font_width; | |||
} | |||
/* Assume a 6×10 font */ | |||
if(!$cols && !$lines) | |||
{ | |||
$cols = 60; | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if($cols && !$lines) | |||
{ | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if(!$cols && $lines) | |||
{ | |||
$cols = $lines * imagesx($i) * $font_height / imagesy($i) / $font_width; | |||
} | |||
caca_set_canvas_size($cv, $cols, $lines); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_clear_canvas($cv); | |||
$i_dither = caca_create_dither($i); | |||
if(! caca_set_dither_algorithm($i_dither, $dither?$dither:"fstein")) | |||
{ | |||
fprintf(STDERR, "%s: Can't dither image with algorithm '%s'\n", $argv[0], $dither?$dither:"fstein"); | |||
return -1; | |||
} | |||
caca_set_canvas_size($cv, $cols, $lines); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_clear_canvas($cv); | |||
$i_dither = caca_create_dither($i); | |||
if(! caca_set_dither_algorithm($i_dither, $dither?$dither:"fstein")) | |||
{ | |||
fprintf(STDERR, "%s: Can't dither image with algorithm '%s'\n", $argv[0], $dither?$dither:"fstein"); | |||
return -1; | |||
} | |||
if($brightness!=-1) caca_set_dither_brightness ($i_dither, $brightness); | |||
if($contrast!=-1) caca_set_dither_contrast ($i_dither, $contrast); | |||
if($gamma!=-1) caca_set_dither_gamma ($i_dither, $gamma); | |||
if($brightness!=-1) caca_set_dither_brightness ($i_dither, $brightness); | |||
if($contrast!=-1) caca_set_dither_contrast ($i_dither, $contrast); | |||
if($gamma!=-1) caca_set_dither_gamma ($i_dither, $gamma); | |||
caca_dither_bitmap($cv, 0, 0, $cols, $lines, $i_dither, $i); | |||
caca_dither_bitmap($cv, 0, 0, $cols, $lines, $i_dither, $i); | |||
$export = caca_export_string($cv, $format?$format:"ansi"); | |||
if(!$export) | |||
{ | |||
fprintf(STDERR, "%s: Can't export to format '%s'\n", $argv[0], $format?$format:"ansi"); | |||
return -1; | |||
} | |||
else | |||
{ | |||
echo $export; | |||
} | |||
$export = caca_export_string($cv, $format?$format:"ansi"); | |||
if(!$export) | |||
{ | |||
fprintf(STDERR, "%s: Can't export to format '%s'\n", $argv[0], $format?$format:"ansi"); | |||
return -1; | |||
} | |||
else | |||
{ | |||
echo $export; | |||
} | |||
return 0; | |||
return 0; | |||
} | |||
exit(main()); | |||
?> |
@@ -5,12 +5,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/import.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,36 +17,36 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$imports = caca_get_import_list(); | |||
if($argc < 2 || $argc > 3) | |||
{ | |||
$msg = ($argv[0] . ": wrong argument count\n" . | |||
"usage: " . $argv[0] . " file [<format>]\n" . | |||
"where <format> is one of:\n"); | |||
foreach($imports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
$msg = ($argv[0] . ": wrong argument count\n" . | |||
"usage: " . $argv[0] . " file [<format>]\n" . | |||
"where <format> is one of:\n"); | |||
foreach($imports as $format => $name) | |||
$msg .= " \"" . $name . "\" (" . $format . ")\n"; | |||
die($msg); | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't create canvas\n"); | |||
die("Can't create canvas\n"); | |||
} | |||
if(caca_import_file($cv, $argv[1], $argc >= 3 ? $argv[2] : "") < 0) | |||
{ | |||
die($argv[0] . ": could not open `" . $argv[1] . "'.\n"); | |||
die($argv[0] . ": could not open `" . $argv[1] . "'.\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(! $dp) | |||
{ | |||
die("Can't create display\n"); | |||
die("Can't create display\n"); | |||
} | |||
caca_refresh_display($dp); | |||
@@ -12,42 +12,42 @@ | |||
*/ | |||
function transform($tbl, $tx, $ty, $sx, $sy) { | |||
$result = array(); | |||
foreach($tbl as $pt) | |||
$result[] = array($pt[0] * $sx + $tx, $pt[1] * $sy + $ty); | |||
return $result; | |||
$result = array(); | |||
foreach($tbl as $pt) | |||
$result[] = array($pt[0] * $sx + $tx, $pt[1] * $sy + $ty); | |||
return $result; | |||
} | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$canvas = caca_create_canvas(0, 0); | |||
$display = caca_create_display($canvas); | |||
if (!$display) { | |||
die("Error while attaching canvas to display\n"); | |||
die("Error while attaching canvas to display\n"); | |||
} | |||
$tbl = array( | |||
array(5, 2), | |||
array(15, 2), | |||
array(20, 4), | |||
array(25, 2), | |||
array(34, 2), | |||
array(37, 4), | |||
array(36, 9), | |||
array(20, 16), | |||
array(3, 9), | |||
array(2, 4), | |||
array(5, 2) | |||
array(5, 2), | |||
array(15, 2), | |||
array(20, 4), | |||
array(25, 2), | |||
array(34, 2), | |||
array(37, 4), | |||
array(36, 9), | |||
array(20, 16), | |||
array(3, 9), | |||
array(2, 4), | |||
array(5, 2) | |||
); | |||
for ($i = 0; $i < 10; $i++) { | |||
caca_set_color_ansi($canvas, 1 + (($color += 4) % 15), CACA_TRANSPARENT); | |||
$scale = caca_rand(4, 10) / 10; | |||
$translate = array(caca_rand(-5, 55), caca_rand(-2, 25)); | |||
$pts = transform($tbl, $translate[0], $translate[1], $scale, $scale); | |||
caca_draw_thin_polyline($canvas, $pts); | |||
caca_set_color_ansi($canvas, 1 + (($color += 4) % 15), CACA_TRANSPARENT); | |||
$scale = caca_rand(4, 10) / 10; | |||
$translate = array(caca_rand(-5, 55), caca_rand(-2, 25)); | |||
$pts = transform($tbl, $translate[0], $translate[1], $scale, $scale); | |||
caca_draw_thin_polyline($canvas, $pts); | |||
} | |||
caca_put_str($canvas, 1, 1, "Caca forever..."); | |||
@@ -2,24 +2,24 @@ | |||
<? | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$pig_str = <<<EOT | |||
_._ _..._ .-', _.._(`)) | |||
'-. ` ' /-._.-' ',/ | |||
) \ '. | |||
/ _ _ | \ | |||
| a a / PHP | | |||
\ .-. ; | |||
'-('' ).-' ,' ; | |||
'-; | .' | |||
\ \ / | |||
| 7 .__ _.-\ \ | |||
| | | ``/ /` / | |||
jgs /,_| | /,_/ / | |||
/,_/ '`-' | |||
_._ _..._ .-', _.._(`)) | |||
'-. ` ' /-._.-' ',/ | |||
) \ '. | |||
/ _ _ | \ | |||
| a a / PHP | | |||
\ .-. ; | |||
'-('' ).-' ,' ; | |||
'-; | .' | |||
\ \ / | |||
| 7 .__ _.-\ \ | |||
| | | ``/ /` / | |||
jgs /,_| | /,_/ / | |||
/,_/ '`-' | |||
EOT; | |||
$canvas = caca_create_canvas(0, 0); | |||
@@ -10,8 +10,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -20,127 +18,127 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
include dirname($argv[0]) . '/../caca.php'; | |||
class DemoCanvas extends Canvas | |||
{ | |||
private $image; | |||
private $startTime; | |||
private $d; | |||
private $scroll; | |||
function __construct() | |||
{ | |||
parent::__construct(); | |||
$this->startTime = gettimeofday(true); | |||
$message = " --- POWERED BY LIBCACA --- OLDSCHOOL TEXT EFFECTS ARE 100% PURE WIN"; | |||
$this->scroll = new Canvas(strlen($message), 1); | |||
$this->scroll->setColorAnsi(AnsiColor::WHITE, AnsiColor::TRANSPARENT); | |||
$this->scroll->putStr(0, 0, $message); | |||
$fontList = Font::getList(); | |||
$f = new Font($fontList[1]); | |||
$w = $f->getWidth() * strlen($message); | |||
$h = $f->getHeight(); | |||
$this->image = imagecreatetruecolor($w, $h); | |||
imagealphablending($this->image, false); | |||
imagesavealpha($this->image, true); | |||
$this->d = new Dither($this->image); | |||
$f->Render($this->scroll, $this->image); | |||
} | |||
function Draw() | |||
{ | |||
$barCount = 6; | |||
$t = (gettimeofday(true) - $this->startTime) * 1000; | |||
$this->Clear(); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLACK); | |||
for($i = 0; $i < $barCount; $i++) | |||
{ | |||
$v = ((sin(($t / 500.0) | |||
+ (1.0 * $i / $barCount)) + 1) / 2) * $this->getHeight(); | |||
$p1_x = 0; $p1_y = intval($v); | |||
$p2_x = $this->getWidth() - 1; $p2_y = intval($v); | |||
$this->setColorAnsi(($i + 9), AnsiColor::BLACK); | |||
/* drawLine is already clipped, we don't care about overflows */ | |||
$this->drawLine($p1_x + 0, $p1_y - 2, $p2_x + 0, $p2_y - 2, ord('-')); | |||
$this->drawLine($p1_x + 0, $p1_y - 1, $p2_x + 0, $p2_y - 1, ord('*')); | |||
$this->drawLine($p1_x, $p1_y, $p2_x, $p2_y, ord('#')); | |||
$this->drawLine($p1_x + 0, $p1_y + 1, $p2_x + 0, $p2_y + 1, ord('*')); | |||
$this->drawLine($p1_x + 0, $p1_y + 2, $p2_x + 0, $p2_y + 2, ord('-')); | |||
} | |||
$w = $this->getWidth(); | |||
$h = $this->getHeight(); | |||
$x = intval(($t / 10) % (12 * $w)); | |||
$y = intval($h * (2.0 + sin($t / 200.0)) / 4); | |||
$this->d->bitmap($this, - $x, $h / 2 - $y, $w * 12, $y * 2); | |||
$this->d->bitmap($this, 12 * $w - $x, $h / 2 - $y, $w * 12, $y * 2); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLUE); | |||
$this->putStr($this->getWidth() - 30, $this->getHeight() - 2, " -=[ Powered by libcaca ]=- "); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLACK); | |||
} | |||
private $image; | |||
private $startTime; | |||
private $d; | |||
private $scroll; | |||
function __construct() | |||
{ | |||
parent::__construct(); | |||
$this->startTime = gettimeofday(true); | |||
$message = " --- POWERED BY LIBCACA --- OLDSCHOOL TEXT EFFECTS ARE 100% PURE WIN"; | |||
$this->scroll = new Canvas(strlen($message), 1); | |||
$this->scroll->setColorAnsi(AnsiColor::WHITE, AnsiColor::TRANSPARENT); | |||
$this->scroll->putStr(0, 0, $message); | |||
$fontList = Font::getList(); | |||
$f = new Font($fontList[1]); | |||
$w = $f->getWidth() * strlen($message); | |||
$h = $f->getHeight(); | |||
$this->image = imagecreatetruecolor($w, $h); | |||
imagealphablending($this->image, false); | |||
imagesavealpha($this->image, true); | |||
$this->d = new Dither($this->image); | |||
$f->Render($this->scroll, $this->image); | |||
} | |||
function Draw() | |||
{ | |||
$barCount = 6; | |||
$t = (gettimeofday(true) - $this->startTime) * 1000; | |||
$this->Clear(); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLACK); | |||
for($i = 0; $i < $barCount; $i++) | |||
{ | |||
$v = ((sin(($t / 500.0) | |||
+ (1.0 * $i / $barCount)) + 1) / 2) * $this->getHeight(); | |||
$p1_x = 0; $p1_y = intval($v); | |||
$p2_x = $this->getWidth() - 1; $p2_y = intval($v); | |||
$this->setColorAnsi(($i + 9), AnsiColor::BLACK); | |||
/* drawLine is already clipped, we don't care about overflows */ | |||
$this->drawLine($p1_x + 0, $p1_y - 2, $p2_x + 0, $p2_y - 2, ord('-')); | |||
$this->drawLine($p1_x + 0, $p1_y - 1, $p2_x + 0, $p2_y - 1, ord('*')); | |||
$this->drawLine($p1_x, $p1_y, $p2_x, $p2_y, ord('#')); | |||
$this->drawLine($p1_x + 0, $p1_y + 1, $p2_x + 0, $p2_y + 1, ord('*')); | |||
$this->drawLine($p1_x + 0, $p1_y + 2, $p2_x + 0, $p2_y + 2, ord('-')); | |||
} | |||
$w = $this->getWidth(); | |||
$h = $this->getHeight(); | |||
$x = intval(($t / 10) % (12 * $w)); | |||
$y = intval($h * (2.0 + sin($t / 200.0)) / 4); | |||
$this->d->bitmap($this, - $x, $h / 2 - $y, $w * 12, $y * 2); | |||
$this->d->bitmap($this, 12 * $w - $x, $h / 2 - $y, $w * 12, $y * 2); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLUE); | |||
$this->putStr($this->getWidth() - 30, $this->getHeight() - 2, " -=[ Powered by libcaca ]=- "); | |||
$this->setColorAnsi(AnsiColor::WHITE, AnsiColor::BLACK); | |||
} | |||
} | |||
class DemoDisplay extends Display | |||
{ | |||
private $cv; | |||
function __construct(DemoCanvas $_cv) | |||
{ | |||
parent::__construct($_cv); | |||
$this->setTitle("libcaca PHP Bindings test suite"); | |||
$this->setDisplayTime(20000); // Refresh every 20 ms | |||
$this->cv = $_cv; | |||
} | |||
function EventLoop() | |||
{ | |||
while(! ($ev = $this->getEvent(EventType::KEY_RELEASE, 10))) | |||
{ | |||
$this->cv->Draw(); | |||
$this->Refresh(); | |||
} | |||
if($ev->getKeyCh() > 0x20 && $ev->getKeyCh() < 0x7f) | |||
printf("Key pressed: %c\n", $ev->getKeyCh()); | |||
else | |||
printf("Key pressed: 0x%x\n", $ev->getKeyCh()); | |||
} | |||
private $cv; | |||
function __construct(DemoCanvas $_cv) | |||
{ | |||
parent::__construct($_cv); | |||
$this->setTitle("libcaca PHP Bindings test suite"); | |||
$this->setDisplayTime(20000); // Refresh every 20 ms | |||
$this->cv = $_cv; | |||
} | |||
function EventLoop() | |||
{ | |||
while(! ($ev = $this->getEvent(EventType::KEY_RELEASE, 10))) | |||
{ | |||
$this->cv->Draw(); | |||
$this->Refresh(); | |||
} | |||
if($ev->getKeyCh() > 0x20 && $ev->getKeyCh() < 0x7f) | |||
printf("Key pressed: %c\n", $ev->getKeyCh()); | |||
else | |||
printf("Key pressed: 0x%x\n", $ev->getKeyCh()); | |||
} | |||
} | |||
class Test | |||
{ | |||
static function Main() | |||
{ | |||
printf("libcaca %s PHP test\n", Libcaca::getVersion()); | |||
printf("(c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org>\n"); | |||
printf("(c) 2007 Sam Hocevar <sam@hocevar.net>\n"); | |||
printf("(c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com>\n"); | |||
static function Main() | |||
{ | |||
printf("libcaca %s PHP test\n", Libcaca::getVersion()); | |||
printf("(c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org>\n"); | |||
printf("(c) 2007 Sam Hocevar <sam@hocevar.net>\n"); | |||
printf("(c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com>\n"); | |||
/* Instanciate a caca canvas */ | |||
$cv = new DemoCanvas(); | |||
/* Instanciate a caca canvas */ | |||
$cv = new DemoCanvas(); | |||
/* We have a proper canvas, let's display it using Caca */ | |||
$dp = new DemoDisplay($cv); | |||
/* We have a proper canvas, let's display it using Caca */ | |||
$dp = new DemoDisplay($cv); | |||
/* Random number. This is a static method, | |||
not to be used with previous instance */ | |||
printf("A random number: %d\n", Libcaca::Rand(0, 1337)); | |||
/* Random number. This is a static method, | |||
not to be used with previous instance */ | |||
printf("A random number: %d\n", Libcaca::Rand(0, 1337)); | |||
$dp->EventLoop(); | |||
} | |||
$dp->EventLoop(); | |||
} | |||
} | |||
Test::Main(); | |||
@@ -4,8 +4,8 @@ | |||
* demo.php demo for libcaca php binding | |||
* Copyright (c) 2008 Nicolas Vion <nico@yojik.eu> | |||
* | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* Copyright (c) 2003 Sam Hocevar <sam@hocevar.net> | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
@@ -16,27 +16,27 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$string = <<<EOT | |||
|_| | |||
_,----._ | | | |||
(/ @ @ \) __ | |||
| OO | |_ | |||
\ `--' / |__ | |||
`----' | |||
|_| | |||
Hello world! | | |||
|_| | |||
_,----._ | | | |||
(/ @ @ \) __ | |||
| OO | |_ | |||
\ `--' / |__ | |||
`----' | |||
|_| | |||
Hello world! | | |||
EOT; | |||
$pig = caca_create_canvas(0, 0); | |||
caca_import_string($pig, $string, "text"); | |||
$cv = caca_create_canvas(caca_get_canvas_width($pig) * 2, caca_get_canvas_height($pig) * 2); | |||
if (!$cv or !$pig) { | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
caca_blit($cv, 0, 0, $pig); | |||
@@ -50,12 +50,12 @@ caca_rotate_180($pig); | |||
caca_blit($cv, caca_get_canvas_width($pig), caca_get_canvas_height($pig), $pig); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE + ($i + $j) % 6, CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE + ($i + $j) % 6, CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
echo caca_export_string($cv, "utf8"); | |||
@@ -5,12 +5,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/transform.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,33 +17,33 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$pig = ( | |||
",--. ,--.\n" . | |||
"\\ /-~-\\ /\n" . | |||
" )' o O `(\n" . | |||
"( ,---. )\n" . | |||
" `(_o_o_)'\n" . | |||
" )`-'(\n"); | |||
",--. ,--.\n" . | |||
"\\ /-~-\\ /\n" . | |||
" )' o O `(\n" . | |||
"( ,---. )\n" . | |||
" `(_o_o_)'\n" . | |||
" )`-'(\n"); | |||
$duck = ( | |||
" ,~~.\n" . | |||
" __ , ( O )>\n" . | |||
"___( o)> )`~~' (\n" . | |||
"\\ <_. ) ( .__) )\n" . | |||
" `---' `-.____,'\n"); | |||
" ,~~.\n" . | |||
" __ , ( O )>\n" . | |||
"___( o)> )`~~' (\n" . | |||
"\\ <_. ) ( .__) )\n" . | |||
" `---' `-.____,'\n"); | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(! $dp) | |||
{ | |||
die("Can't create display\n"); | |||
die("Can't create display\n"); | |||
} | |||
$image = caca_create_canvas(70, 6); | |||
@@ -1,15 +1,13 @@ | |||
#!/usr/bin/php5 | |||
<?php | |||
/* | |||
* truecolor truecolor canvas features | |||
* truecolor truecolor canvas features | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/truecolor.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* All Rights Reserved | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
@@ -19,28 +17,28 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$cv = caca_create_canvas(32, 16); | |||
if(!$cv) { | |||
die("Failed to create canvas\n"); | |||
die("Failed to create canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(!$dp) { | |||
die("Failed to create display\n"); | |||
die("Failed to create display\n"); | |||
} | |||
for($y = 0; $y < 16; $y++) | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
$bgcolor = 0xff00 | ($y << 4) | $x; | |||
$fgcolor = 0xf000 | ((15 - $y) << 4) | ((15 - $x) << 8); | |||
caca_set_color_argb($cv, $fgcolor, $bgcolor); | |||
caca_put_str($cv, $x * 2, $y, "CA"); | |||
} | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
$bgcolor = 0xff00 | ($y << 4) | $x; | |||
$fgcolor = 0xf000 | ((15 - $y) << 4) | ((15 - $x) << 8); | |||
caca_set_color_argb($cv, $fgcolor, $bgcolor); | |||
caca_put_str($cv, $x * 2, $y, "CA"); | |||
} | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, 2, 1, " truecolor libcaca "); | |||
@@ -5,12 +5,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/unicode.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,18 +17,18 @@ | |||
*/ | |||
if (php_sapi_name() != "cli") { | |||
die("You have to run this program with php-cli!\n"); | |||
die("You have to run this program with php-cli!\n"); | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
$dp = caca_create_display($cv); | |||
if(! $dp) | |||
{ | |||
die("Can't create display\n"); | |||
die("Can't create display\n"); | |||
} | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($cv, 1, 1, "Basic Unicode support"); | |||
@@ -31,33 +31,33 @@ function just_for_fun() { | |||
$moo = <<<EOT | |||
(__) | |||
(oo) | |||
/------\/ | |||
/ | || | |||
* /\---/\ | |||
~~ ~~ | |||
/------\/ | |||
/ | || | |||
* /\---/\ | |||
~~ ~~ | |||
EOT; | |||
$cv = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE, CACA_DEFAULT); | |||
caca_import_string($cv, $moo, "text"); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, (caca_rand(1, 10) > 5 ? CACA_LIGHTBLUE : CACA_WHITE), CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
caca_set_canvas_size($cv, 18, 6); | |||
caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT); | |||
caca_put_str($cv, 14, 0, "Moo!"); | |||
caca_set_color_ansi($cv, CACA_LIGHTRED, CACA_DEFAULT); | |||
caca_put_char($cv, 14, 1, hexdec("2765")); //U+2765 | |||
caca_put_char($cv, 16, 1, hexdec("2764")); //U+2764 | |||
echo caca_export_string($cv, "html3"); | |||
$cv = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE, CACA_DEFAULT); | |||
caca_import_string($cv, $moo, "text"); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, (caca_rand(1, 10) > 5 ? CACA_LIGHTBLUE : CACA_WHITE), CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
caca_set_canvas_size($cv, 18, 6); | |||
caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT); | |||
caca_put_str($cv, 14, 0, "Moo!"); | |||
caca_set_color_ansi($cv, CACA_LIGHTRED, CACA_DEFAULT); | |||
caca_put_char($cv, 14, 1, hexdec("2765")); //U+2765 | |||
caca_put_char($cv, 16, 1, hexdec("2764")); //U+2764 | |||
echo caca_export_string($cv, "html3"); | |||
} | |||
just_for_fun(); | |||
@@ -74,7 +74,7 @@ just_for_fun(); | |||
<?php | |||
$list = caca_get_display_driver_list(); | |||
foreach($list as $type => $name) | |||
echo '<li>' . htmlspecialchars("$name ($type)") . '</li>'; | |||
echo '<li>' . htmlspecialchars("$name ($type)") . '</li>'; | |||
?> | |||
</ul> | |||
@@ -83,7 +83,7 @@ foreach($list as $type => $name) | |||
<?php | |||
$list = caca_get_import_list(); | |||
foreach($list as $format => $name) | |||
echo '<li>' . htmlspecialchars("$name ($format)") . '</li>'; | |||
echo '<li>' . htmlspecialchars("$name ($format)") . '</li>'; | |||
?> | |||
</ul> | |||
@@ -92,7 +92,7 @@ foreach($list as $format => $name) | |||
<?php | |||
$list = caca_get_export_list(); | |||
foreach($list as $format => $name) | |||
echo '<li>' . htmlspecialchars("$name ($format)") . '</li>'; | |||
echo '<li>' . htmlspecialchars("$name ($format)") . '</li>'; | |||
?> | |||
</ul> | |||
@@ -101,7 +101,7 @@ foreach($list as $format => $name) | |||
<?php | |||
$list = caca_get_font_list(); | |||
foreach($list as $name) | |||
echo '<li>' . htmlspecialchars("$name") . '</li>'; | |||
echo '<li>' . htmlspecialchars("$name") . '</li>'; | |||
?> | |||
</ul> | |||
@@ -14,8 +14,6 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* Copyright (c) 2003-2004 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -33,21 +31,21 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
$cv = caca_create_canvas(80, 24); | |||
if(!$cv) | |||
{ | |||
die("Failed to create canvas\n"); | |||
die("Failed to create canvas\n"); | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_clear_canvas($cv); | |||
for($i = 0; $i < 16; $i++) | |||
{ | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, 3, $i + ($i >= 8 ? 3 : 2), "ANSI " . $i); | |||
for($j = 0; $j < 16; $j++) | |||
{ | |||
caca_set_color_ansi($cv, $i, $j); | |||
caca_put_str($cv, ($j >= 8 ? 13 : 12) + $j * 4, $i + ($i >= 8 ? 3 : 2), | |||
"Aaホ"); | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, 3, $i + ($i >= 8 ? 3 : 2), "ANSI " . $i); | |||
for($j = 0; $j < 16; $j++) | |||
{ | |||
caca_set_color_ansi($cv, $i, $j); | |||
caca_put_str($cv, ($j >= 8 ? 13 : 12) + $j * 4, $i + ($i >= 8 ? 3 : 2), | |||
"Aaホ"); | |||
} | |||
} | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
@@ -25,12 +25,12 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
$src = "logo-caca.png"; | |||
$img = imagecreatefrompng(dirname(__FILE__)."/".$src); | |||
if (!$img) { | |||
die("Can not open image.\n"); | |||
die("Can not open image.\n"); | |||
} | |||
$dither = caca_create_dither($img); | |||
if (!$dither) { | |||
die("Can not create dither. Maybe you compiled caca-php without gd support.\n"); | |||
die("Can not create dither. Maybe you compiled caca-php without gd support.\n"); | |||
} | |||
$canvas = caca_create_canvas(100, 40); | |||
@@ -4,12 +4,10 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/export.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -30,7 +28,7 @@ $format = isset($_REQUEST['format']) ? $_REQUEST['format'] : NULL; | |||
if((! $format) || (! array_key_exists($format, $exports))) | |||
{ | |||
header("Content-type: text/html; charset=UTF-8"); | |||
header("Content-type: text/html; charset=UTF-8"); | |||
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||
@@ -43,33 +41,33 @@ if((! $format) || (! array_key_exists($format, $exports))) | |||
/*<![CDATA[*/ | |||
update_preview = function (select) | |||
{ | |||
var iframe_map = { | |||
'html': true, | |||
'html3': true, | |||
'bbfr': true | |||
}; | |||
if (self.opera | |||
|| | |||
(('' + navigator.userAgent).match(/.*(WebKit|Gecko).*/))) | |||
{ | |||
iframe_map['svg'] = true; | |||
} | |||
var e; | |||
try | |||
{ | |||
var format = select.options[select.selectedIndex].value; | |||
var newLocation = 'about:blank'; | |||
if (iframe_map[format]) | |||
{ | |||
newLocation = self.location.pathname + '?format=' + encodeURIComponent(format); | |||
} | |||
self.frames[0].location.replace(newLocation, true); | |||
} | |||
catch (e) | |||
{ | |||
alert('e' + e); | |||
} | |||
return true; | |||
var iframe_map = { | |||
'html': true, | |||
'html3': true, | |||
'bbfr': true | |||
}; | |||
if (self.opera | |||
|| | |||
(('' + navigator.userAgent).match(/.*(WebKit|Gecko).*/))) | |||
{ | |||
iframe_map['svg'] = true; | |||
} | |||
var e; | |||
try | |||
{ | |||
var format = select.options[select.selectedIndex].value; | |||
var newLocation = 'about:blank'; | |||
if (iframe_map[format]) | |||
{ | |||
newLocation = self.location.pathname + '?format=' + encodeURIComponent(format); | |||
} | |||
self.frames[0].location.replace(newLocation, true); | |||
} | |||
catch (e) | |||
{ | |||
alert('e' + e); | |||
} | |||
return true; | |||
}; | |||
/*]]>*/ | |||
</script> | |||
@@ -84,138 +82,138 @@ update_preview = function (select) | |||
<label for="format">as</label> | |||
<select name="format" id="format" onchange="update_preview(this);"> | |||
<?php | |||
foreach($exports as $format => $name) | |||
{ | |||
?><option value="<?= htmlspecialchars($format) ?>"<?= | |||
($format == 'html') ? ' selected="selected"' : '' ?>><?= | |||
htmlspecialchars($name . " (" . $format . ")") ?></option><?php | |||
} | |||
foreach($exports as $format => $name) | |||
{ | |||
?><option value="<?= htmlspecialchars($format) ?>"<?= | |||
($format == 'html') ? ' selected="selected"' : '' ?>><?= | |||
htmlspecialchars($name . " (" . $format . ")") ?></option><?php | |||
} | |||
?> | |||
</select> | |||
</form> | |||
<?php | |||
$export_php = isset($_SERVER['SCRIPT_NAME']) | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'export.php'; | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'export.php'; | |||
?><iframe frameborder="0" name="preview" id="preview" width="820" height="620" style="margin: 0; padding: 0; border: none; width: 100%"></iframe> | |||
</body> | |||
</html> | |||
<?php | |||
exit(0); | |||
exit(0); | |||
} | |||
if($file) | |||
{ | |||
$cv = caca_create_canvas(0, 0); | |||
if(caca_import_file($cv, $file, "") < 0) | |||
{ | |||
die("`" . htmlspecialchars($filename) . "' has unknown format\n"); | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(caca_import_file($cv, $file, "") < 0) | |||
{ | |||
die("`" . htmlspecialchars($filename) . "' has unknown format\n"); | |||
} | |||
} | |||
else | |||
{ | |||
$cv = caca_create_canvas(WIDTH, HEIGHT); | |||
for($y = 0; $y < 256; $y++) | |||
{ | |||
for($x = 0; $x < 256; $x++) | |||
{ | |||
$r = $x; | |||
$g = (255 - $y + $x) / 2; | |||
$b = $y * (255 - $x) / 256; | |||
imagesetpixel($pixels, $x, $y, imagecolorallocate($pixels, $r, $g, $b)); | |||
} | |||
} | |||
$dither = caca_create_dither($pixels); | |||
if(($format == "ansi") || ($format == "utf8")) | |||
caca_set_dither_charset($dither, "shades"); | |||
caca_dither_bitmap($cv, 0, 0, caca_get_canvas_width($cv), | |||
caca_get_canvas_height($cv), $dither, $pixels); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_draw_thin_box($cv, 0, 0, WIDTH - 1, HEIGHT - 1); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_fill_ellipse($cv, WIDTH / 2, HEIGHT / 2, | |||
WIDTH / 4, HEIGHT / 4, ord(' ')); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, | |||
" lightgray on black "); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, | |||
" default on transparent "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, | |||
" black on white "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); | |||
caca_put_str($cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); | |||
caca_set_attr($cv, CACA_BOLD); | |||
caca_put_str($cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); | |||
caca_set_attr($cv, CACA_BLINK); | |||
caca_put_str($cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); | |||
caca_set_attr($cv, CACA_ITALICS); | |||
caca_put_str($cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); | |||
caca_set_attr($cv, CACA_UNDERLINE); | |||
caca_put_str($cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); | |||
caca_set_attr($cv, 0); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
caca_set_color_argb($cv, 0xff00 | $x, 0xf00f | ($x << 4)); | |||
caca_put_char($cv, WIDTH / 2 - 7 + $x, HEIGHT / 2 + 6, ord('#')); | |||
} | |||
$cv = caca_create_canvas(WIDTH, HEIGHT); | |||
for($y = 0; $y < 256; $y++) | |||
{ | |||
for($x = 0; $x < 256; $x++) | |||
{ | |||
$r = $x; | |||
$g = (255 - $y + $x) / 2; | |||
$b = $y * (255 - $x) / 256; | |||
imagesetpixel($pixels, $x, $y, imagecolorallocate($pixels, $r, $g, $b)); | |||
} | |||
} | |||
$dither = caca_create_dither($pixels); | |||
if(($format == "ansi") || ($format == "utf8")) | |||
caca_set_dither_charset($dither, "shades"); | |||
caca_dither_bitmap($cv, 0, 0, caca_get_canvas_width($cv), | |||
caca_get_canvas_height($cv), $dither, $pixels); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK); | |||
caca_draw_thin_box($cv, 0, 0, WIDTH - 1, HEIGHT - 1); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_fill_ellipse($cv, WIDTH / 2, HEIGHT / 2, | |||
WIDTH / 4, HEIGHT / 4, ord(' ')); | |||
caca_set_color_ansi($cv, CACA_LIGHTGRAY, CACA_BLACK); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 6, | |||
" lightgray on black "); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 5, | |||
" default on transparent "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 12, HEIGHT / 2 - 4, | |||
" black on white "); | |||
caca_set_color_ansi($cv, CACA_BLACK, CACA_WHITE); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 3, "[<><><><> <>--<>]"); | |||
caca_put_str($cv, WIDTH / 2 - 8, HEIGHT / 2 - 2, "[ドラゴン ボーレ]"); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2 + 2, "äβç ░▒▓█▓▒░ ΔЗҒ"); | |||
caca_put_str($cv, WIDTH / 2 - 5, HEIGHT / 2 + 4, "(\") \\o/ <&>"); | |||
caca_set_attr($cv, CACA_BOLD); | |||
caca_put_str($cv, WIDTH / 2 - 16, HEIGHT / 2 + 3, "Bold"); | |||
caca_set_attr($cv, CACA_BLINK); | |||
caca_put_str($cv, WIDTH / 2 - 9, HEIGHT / 2 + 3, "Blink"); | |||
caca_set_attr($cv, CACA_ITALICS); | |||
caca_put_str($cv, WIDTH / 2 - 1, HEIGHT / 2 + 3, "Italics"); | |||
caca_set_attr($cv, CACA_UNDERLINE); | |||
caca_put_str($cv, WIDTH / 2 + 8, HEIGHT / 2 + 3, "Underline"); | |||
caca_set_attr($cv, 0); | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, WIDTH / 2 - 7, HEIGHT / 2, " LIBCACA "); | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
caca_set_color_argb($cv, 0xff00 | $x, 0xf00f | ($x << 4)); | |||
caca_put_char($cv, WIDTH / 2 - 7 + $x, HEIGHT / 2 + 6, ord('#')); | |||
} | |||
} | |||
$content_type_map = array( | |||
'ansi' => 'text/plain; charset=CP437', | |||
'utf8' => 'text/plain; charset=UTF-8', | |||
'utf8cr' => 'text/plain; charset=UTF-8', | |||
'html' => 'text/html; charset=UTF-8', | |||
'html3' => 'text/html; charset=UTF-8', | |||
'bbfr' => 'text/plain; charset=UTF-8', | |||
'irc' => 'text/plain; charset=UTF-8', | |||
'ps' => 'application/postscript', | |||
'svg' => 'image/svg+xml', | |||
'tga' => 'image/x-targa' | |||
); | |||
'ansi' => 'text/plain; charset=CP437', | |||
'utf8' => 'text/plain; charset=UTF-8', | |||
'utf8cr' => 'text/plain; charset=UTF-8', | |||
'html' => 'text/html; charset=UTF-8', | |||
'html3' => 'text/html; charset=UTF-8', | |||
'bbfr' => 'text/plain; charset=UTF-8', | |||
'irc' => 'text/plain; charset=UTF-8', | |||
'ps' => 'application/postscript', | |||
'svg' => 'image/svg+xml', | |||
'tga' => 'image/x-targa' | |||
); | |||
$download_extension_map = array( | |||
'caca' => 'caca', | |||
'ansi' => 'txt', | |||
'utf8' => 'txt', | |||
'utf8cr' => 'txt', | |||
'irc' => 'txt', | |||
'tga' => 'tga' | |||
); | |||
'caca' => 'caca', | |||
'ansi' => 'txt', | |||
'utf8' => 'txt', | |||
'utf8cr' => 'txt', | |||
'irc' => 'txt', | |||
'tga' => 'tga' | |||
); | |||
$inline_extension_map = array( | |||
'bbfr' => 'txt', | |||
'ps' => 'ps', | |||
'svg' => 'svg' | |||
); | |||
'bbfr' => 'txt', | |||
'ps' => 'ps', | |||
'svg' => 'svg' | |||
); | |||
if (! array_key_exists($format, $content_type_map)) | |||
$content_type = 'application/octet-stream'; | |||
$content_type = 'application/octet-stream'; | |||
else | |||
$content_type = $content_type_map[$format]; | |||
$content_type = $content_type_map[$format]; | |||
header('Content-Type: ' . $content_type); | |||
if (array_key_exists($format, $download_extension_map)) | |||
header('Content-Disposition: attachment; filename=export.' . $download_extension_map[$format]); | |||
header('Content-Disposition: attachment; filename=export.' . $download_extension_map[$format]); | |||
else if (array_key_exists($format, $inline_extension_map)) | |||
header('Content-Disposition: inline; filename=export.' . $inline_extension_map[$format]); | |||
header('Content-Disposition: inline; filename=export.' . $inline_extension_map[$format]); | |||
echo caca_export_string($cv, $format); | |||
@@ -22,46 +22,46 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
function unistr_to_ords($str, $encoding = 'UTF-8'){ | |||
$str = mb_convert_encoding($str, "UCS-4BE", $encoding); | |||
$result = array(); | |||
function unistr_to_ords($str, $encoding = 'UTF-8'){ | |||
$str = mb_convert_encoding($str, "UCS-4BE", $encoding); | |||
$result = array(); | |||
for ($i = 0; $i < mb_strlen($str, "UCS-4BE"); $i++){ | |||
$c = mb_substr($str, $i, 1, "UCS-4BE"); | |||
$val = unpack("N", $c); | |||
$result[] = $val[1]; | |||
} | |||
return $result; | |||
for ($i = 0; $i < mb_strlen($str, "UCS-4BE"); $i++){ | |||
$c = mb_substr($str, $i, 1, "UCS-4BE"); | |||
$val = unpack("N", $c); | |||
$result[] = $val[1]; | |||
} | |||
return $result; | |||
} | |||
function show_figlet($str, $font) { | |||
$cv = caca_create_canvas(0, 0); | |||
$cv = caca_create_canvas(0, 0); | |||
if (!caca_canvas_set_figfont($cv, $font)) { | |||
return false; | |||
} | |||
$chars = unistr_to_ords($str); | |||
$color = 0; | |||
foreach ($chars as $c) { | |||
caca_set_color_ansi($cv, 1 + (($color += 1) % 13), CACA_WHITE); | |||
caca_put_figchar($cv, $c); | |||
} | |||
if (!caca_canvas_set_figfont($cv, $font)) { | |||
return false; | |||
} | |||
echo caca_export_string($cv, "html3"); | |||
$chars = unistr_to_ords($str); | |||
$color = 0; | |||
foreach ($chars as $c) { | |||
caca_set_color_ansi($cv, 1 + (($color += 1) % 13), CACA_WHITE); | |||
caca_put_figchar($cv, $c); | |||
} | |||
echo caca_export_string($cv, "html3"); | |||
} | |||
$path = "/usr/share/figlet/"; | |||
if (!is_dir($path)) { | |||
die("can not open directory $path.\n"); | |||
die("can not open directory $path.\n"); | |||
} | |||
$dir = opendir($path); | |||
while (($it = readdir($dir)) != false) { | |||
if (is_file($path.$it) and ereg("\.[tf]lf$", $it)) { | |||
echo "<b>font : $it</b>\n"; | |||
show_figlet(isset($_GET["str"]) ? $_GET["str"] : "Libcaca", $path.$it); | |||
} | |||
if (is_file($path.$it) and ereg("\.[tf]lf$", $it)) { | |||
echo "<b>font : $it</b>\n"; | |||
show_figlet(isset($_GET["str"]) ? $_GET["str"] : "Libcaca", $path.$it); | |||
} | |||
} | |||
?> | |||
</body> | |||
@@ -11,12 +11,10 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/fullwidth.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -36,7 +34,7 @@ define('CACA', "쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊쫊"); | |||
$cv = caca_create_canvas(36, 12); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
$caca = caca_create_canvas(6, 10); | |||
@@ -45,10 +43,10 @@ $line = caca_create_canvas(2, 1); | |||
/* Line of x's */ | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_RED); | |||
caca_put_char($caca, $i - 2, $i, ord('x')); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_RED); | |||
caca_put_char($caca, $i - 2, $i, ord('x')); | |||
} | |||
caca_blit($cv, 1, 1, $caca); | |||
@@ -56,10 +54,10 @@ caca_blit($cv, 1, 1, $caca); | |||
/* Line of ホ's */ | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_GREEN); | |||
caca_put_str($caca, $i - 2, $i, "ホ"); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_GREEN); | |||
caca_put_str($caca, $i - 2, $i, "ホ"); | |||
} | |||
caca_blit($cv, 15, 1, $caca); | |||
@@ -69,9 +67,9 @@ caca_set_color_ansi($line, CACA_WHITE, CACA_MAGENTA); | |||
caca_put_str($line, 0, 0, "ほ"); | |||
for($i = 0; $i < 10; $i++) | |||
{ | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_blit($caca, $i - 2, $i, $line); | |||
caca_set_color_ansi($caca, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($caca, 0, $i, CACA); | |||
caca_blit($caca, $i - 2, $i, $line); | |||
} | |||
caca_blit($cv, 29, 1, $caca); | |||
@@ -4,13 +4,11 @@ | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "src/img2txt.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* 2007 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -19,10 +17,10 @@ | |||
*/ | |||
$img2txt_php = isset($_SERVER['SCRIPT_NAME']) | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'img2txt.php'; | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'img2txt.php'; | |||
$argv = array(basename($img2txt_php)); | |||
$file = isset($_FILES['file']) ? $_FILES['file']['tmp_name'] : NULL; | |||
@@ -30,14 +28,14 @@ $filename = isset($_FILES['file']) ? $_FILES['file']['name'] : NULL; | |||
$args = NULL; | |||
if(isset($_REQUEST['args'])) | |||
{ | |||
$args = trim($_REQUEST['args']); | |||
if(strlen($args)) | |||
{ | |||
foreach(explode(' ', $args) as $arg) | |||
{ | |||
$argv[] = $arg; | |||
} | |||
} | |||
$args = trim($_REQUEST['args']); | |||
if(strlen($args)) | |||
{ | |||
foreach(explode(' ', $args) as $arg) | |||
{ | |||
$argv[] = $arg; | |||
} | |||
} | |||
} | |||
$argc = count($argv); | |||
$stderr = ''; | |||
@@ -51,448 +49,448 @@ $myoptind = 0; | |||
function mygetopt($shortopts, $longopts) | |||
{ | |||
global $argc, $argv, $myoptind; | |||
if($myoptind < 0) | |||
{ | |||
$myoptind = 0; | |||
} | |||
if(($myoptind + 1) >= $argc) | |||
{ | |||
return NULL; | |||
} | |||
$myoptind ++; | |||
$nextarg = $argv[$myoptind]; | |||
$ret = NULL; | |||
if((substr($nextarg, 0, 1) != '-') | |||
|| | |||
($nextarg == '-')) | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$skipopt = $myoptind; | |||
$skipopts = 1; | |||
if($nextarg == '--') | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$opt = NULL; | |||
$arg = NULL; | |||
foreach($longopts as $longopt) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
if(($longopt != '::') && substr($longopt, -2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -2); | |||
} | |||
else if(($longopt != ':') && substr($longopt, -1) == ':') | |||
{ | |||
$optional = false; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -1); | |||
} | |||
if($nextarg == ('--' . $longopt)) | |||
{ | |||
$opt = '--' . $longopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('--' . $longopt . '=')) | |||
== | |||
('--' . $longopt . '=')) | |||
{ | |||
$opt = '--' . $longopt; | |||
$arg = substr($nextarg, strlen($opt . '=')); | |||
if(! $hasarg) | |||
{ | |||
throw new MygetoptException("option \"$opt\" does not allow an argument"); | |||
} | |||
break; | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
for($i = 0; $i < strlen($shortopts); $i ++) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
$shortopt = substr($shortopts, $i, 1); | |||
if(substr($shortopts, $i + 1, 2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$i += 2; | |||
} | |||
else if(substr($shortopts, $i + 1, 1) == ':') | |||
{ | |||
$hasarg = true; | |||
} | |||
if($nextarg | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('-' . $shortopt)) | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg) | |||
{ | |||
$arg = substr($nextarg, strlen($opt)); | |||
} | |||
else | |||
{ | |||
$argv[$myoptind] = '-' . substr($nextarg, strlen($opt)); | |||
$myoptind --; | |||
$skipopts = 0; | |||
} | |||
} | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
if(substr($nextarg, 0, strlen('--')) == '--') | |||
{ | |||
$longopt = substr($nextarg, strlen('--')); | |||
if(strpos($longopt, '=') !== false) | |||
{ | |||
$longopt = substr($longopt, 0, strpos($longopt, '=')); | |||
} | |||
throw new MygetoptException("option \"--$longopt\" is not recognized"); | |||
} | |||
$shortopt = substr($nextarg, strlen('-'), 1); | |||
throw new MygetoptException("option \"-$shortopt\" is not recognized"); | |||
} | |||
$ret = array($opt, $arg); | |||
} | |||
if ($skipopts > 0) | |||
{ | |||
for($i = 0; $i < $argc; $i ++) | |||
{ | |||
if(($i < $skipopt) || ($i >= ($skipopt + $skipopts))) | |||
{ | |||
$new_argv[] = $argv[$i]; | |||
} | |||
} | |||
if($myoptind >= $skipopt) | |||
{ | |||
$myoptind -= $skipopts; | |||
} | |||
$argv = $new_argv; | |||
$argc = count($argv); | |||
} | |||
} | |||
return $ret; | |||
global $argc, $argv, $myoptind; | |||
if($myoptind < 0) | |||
{ | |||
$myoptind = 0; | |||
} | |||
if(($myoptind + 1) >= $argc) | |||
{ | |||
return NULL; | |||
} | |||
$myoptind ++; | |||
$nextarg = $argv[$myoptind]; | |||
$ret = NULL; | |||
if((substr($nextarg, 0, 1) != '-') | |||
|| | |||
($nextarg == '-')) | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$skipopt = $myoptind; | |||
$skipopts = 1; | |||
if($nextarg == '--') | |||
{ | |||
$myoptind = $argc - 1; | |||
} | |||
else | |||
{ | |||
$opt = NULL; | |||
$arg = NULL; | |||
foreach($longopts as $longopt) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
if(($longopt != '::') && substr($longopt, -2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -2); | |||
} | |||
else if(($longopt != ':') && substr($longopt, -1) == ':') | |||
{ | |||
$optional = false; | |||
$hasarg = true; | |||
$longopt = substr($longopt, 0, -1); | |||
} | |||
if($nextarg == ('--' . $longopt)) | |||
{ | |||
$opt = '--' . $longopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('--' . $longopt . '=')) | |||
== | |||
('--' . $longopt . '=')) | |||
{ | |||
$opt = '--' . $longopt; | |||
$arg = substr($nextarg, strlen($opt . '=')); | |||
if(! $hasarg) | |||
{ | |||
throw new MygetoptException("option \"$opt\" does not allow an argument"); | |||
} | |||
break; | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
for($i = 0; $i < strlen($shortopts); $i ++) | |||
{ | |||
$optional = false; | |||
$hasarg = false; | |||
$shortopt = substr($shortopts, $i, 1); | |||
if(substr($shortopts, $i + 1, 2) == '::') | |||
{ | |||
$optional = true; | |||
$hasarg = true; | |||
$i += 2; | |||
} | |||
else if(substr($shortopts, $i + 1, 1) == ':') | |||
{ | |||
$hasarg = true; | |||
} | |||
if($nextarg | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg && ! $optional) | |||
{ | |||
if(($myoptind + 1) < $argc) | |||
{ | |||
$myoptind ++; | |||
$skipopts ++; | |||
$arg = $argv[$myoptind]; | |||
} | |||
else | |||
{ | |||
throw new MygetoptException("option \"$opt\" requires an argument"); | |||
} | |||
} | |||
break; | |||
} | |||
else if(substr($nextarg, 0, strlen('-' . $shortopt)) | |||
== | |||
('-' . $shortopt)) | |||
{ | |||
$opt = '-' . $shortopt; | |||
if($hasarg) | |||
{ | |||
$arg = substr($nextarg, strlen($opt)); | |||
} | |||
else | |||
{ | |||
$argv[$myoptind] = '-' . substr($nextarg, strlen($opt)); | |||
$myoptind --; | |||
$skipopts = 0; | |||
} | |||
} | |||
} | |||
} | |||
if($opt === NULL) | |||
{ | |||
if(substr($nextarg, 0, strlen('--')) == '--') | |||
{ | |||
$longopt = substr($nextarg, strlen('--')); | |||
if(strpos($longopt, '=') !== false) | |||
{ | |||
$longopt = substr($longopt, 0, strpos($longopt, '=')); | |||
} | |||
throw new MygetoptException("option \"--$longopt\" is not recognized"); | |||
} | |||
$shortopt = substr($nextarg, strlen('-'), 1); | |||
throw new MygetoptException("option \"-$shortopt\" is not recognized"); | |||
} | |||
$ret = array($opt, $arg); | |||
} | |||
if ($skipopts > 0) | |||
{ | |||
for($i = 0; $i < $argc; $i ++) | |||
{ | |||
if(($i < $skipopt) || ($i >= ($skipopt + $skipopts))) | |||
{ | |||
$new_argv[] = $argv[$i]; | |||
} | |||
} | |||
if($myoptind >= $skipopt) | |||
{ | |||
$myoptind -= $skipopts; | |||
} | |||
$argv = $new_argv; | |||
$argc = count($argv); | |||
} | |||
} | |||
return $ret; | |||
} | |||
function usage($argc, $argv) | |||
{ | |||
global $stdout; | |||
$stdout .= sprintf("Usage: %s [OPTIONS]... <IMAGE>\n", $argv[0]); | |||
$stdout .= sprintf("Convert IMAGE to any text based available format.\n"); | |||
$stdout .= sprintf("Example : -W 80 -f html logo-caca.png\n\n", $argv[0]); | |||
$stdout .= sprintf("Options:\n"); | |||
$stdout .= sprintf(" -h, --help\t\t\tThis help\n"); | |||
$stdout .= sprintf(" -v, --version\t\t\tVersion of the program\n"); | |||
$stdout .= sprintf(" -W, --width=WIDTH\t\tWidth of resulting image\n"); | |||
$stdout .= sprintf(" -H, --height=HEIGHT\t\tHeight of resulting image\n"); | |||
$stdout .= sprintf(" -x, --font-width=WIDTH\t\tWidth of output font\n"); | |||
$stdout .= sprintf(" -y, --font-height=HEIGHT\t\tHeight of output font\n"); | |||
$stdout .= sprintf(" -b, --brightness=BRIGHTNESS\tBrightness of resulting image\n"); | |||
$stdout .= sprintf(" -c, --contrast=CONTRAST\tContrast of resulting image\n"); | |||
$stdout .= sprintf(" -g, --gamma=GAMMA\t\tGamma of resulting image\n"); | |||
$stdout .= sprintf(" -d, --dither=DITHER\t\tDithering algorithm to use :\n"); | |||
$list = caca_get_dither_algorithm_list(caca_create_dither(imagecreate(1, 1))); | |||
foreach($list as $type => $name) | |||
{ | |||
$stdout .= sprintf("\t\t\t%s: %s\n", $type, $name); | |||
} | |||
global $stdout; | |||
$stdout .= sprintf("Usage: %s [OPTIONS]... <IMAGE>\n", $argv[0]); | |||
$stdout .= sprintf("Convert IMAGE to any text based available format.\n"); | |||
$stdout .= sprintf("Example : -W 80 -f html logo-caca.png\n\n", $argv[0]); | |||
$stdout .= sprintf("Options:\n"); | |||
$stdout .= sprintf(" -h, --help\t\t\tThis help\n"); | |||
$stdout .= sprintf(" -v, --version\t\t\tVersion of the program\n"); | |||
$stdout .= sprintf(" -W, --width=WIDTH\t\tWidth of resulting image\n"); | |||
$stdout .= sprintf(" -H, --height=HEIGHT\t\tHeight of resulting image\n"); | |||
$stdout .= sprintf(" -x, --font-width=WIDTH\t\tWidth of output font\n"); | |||
$stdout .= sprintf(" -y, --font-height=HEIGHT\t\tHeight of output font\n"); | |||
$stdout .= sprintf(" -b, --brightness=BRIGHTNESS\tBrightness of resulting image\n"); | |||
$stdout .= sprintf(" -c, --contrast=CONTRAST\tContrast of resulting image\n"); | |||
$stdout .= sprintf(" -g, --gamma=GAMMA\t\tGamma of resulting image\n"); | |||
$stdout .= sprintf(" -d, --dither=DITHER\t\tDithering algorithm to use :\n"); | |||
$list = caca_get_dither_algorithm_list(caca_create_dither(imagecreate(1, 1))); | |||
foreach($list as $type => $name) | |||
{ | |||
$stdout .= sprintf("\t\t\t%s: %s\n", $type, $name); | |||
} | |||
$stdout .= sprintf(" -f, --format=FORMAT\t\tFormat of the resulting image :\n"); | |||
$list = caca_get_export_list(); | |||
foreach($list as $type => $name) | |||
{ | |||
$stdout .= sprintf("\t\t\t%s: %s\n", $type, $name); | |||
} | |||
$stdout .= sprintf(" -f, --format=FORMAT\t\tFormat of the resulting image :\n"); | |||
$list = caca_get_export_list(); | |||
foreach($list as $type => $name) | |||
{ | |||
$stdout .= sprintf("\t\t\t%s: %s\n", $type, $name); | |||
} | |||
} | |||
function version() | |||
{ | |||
global $stdout; | |||
$stdout .= sprintf( | |||
"img2txt Copyright 2006-2007 Sam Hocevar and Jean-Yves Lamoureux\n" . | |||
" Copyright 2008 Benjamin C. Wiley Sittler\n" . | |||
"Internet: <sam@hocevar.net> <jylam@lnxscene.org>\n" . | |||
" <bsittler@gmail.com> Version: %s\n" . | |||
"\n" . | |||
"img2txt, along with its documentation, may be freely copied and distributed.\n" . | |||
"\n" . | |||
"The latest version of img2txt is available from the web site,\n" . | |||
" http://caca.zoy.org/wiki/libcaca in the libcaca package.\n" . | |||
"\n", | |||
caca_get_version()); | |||
global $stdout; | |||
$stdout .= sprintf( | |||
"img2txt Copyright 2006-2007 Sam Hocevar and Jean-Yves Lamoureux\n" . | |||
" Copyright 2008 Benjamin C. Wiley Sittler\n" . | |||
"Internet: <sam@hocevar.net> <jylam@lnxscene.org>\n" . | |||
" <bsittler@gmail.com> Version: %s\n" . | |||
"\n" . | |||
"img2txt, along with its documentation, may be freely copied and distributed.\n" . | |||
"\n" . | |||
"The latest version of img2txt is available from the web site,\n" . | |||
" http://caca.zoy.org/wiki/libcaca in the libcaca package.\n" . | |||
"\n", | |||
caca_get_version()); | |||
} | |||
function main() | |||
{ | |||
global $file, $filename; | |||
global $argc, $argv; | |||
global $stderr; | |||
$cols = 0; | |||
$lines = 0; | |||
$font_width = 6; | |||
$font_height = 10; | |||
$format = NULL; | |||
$dither = NULL; | |||
$gamma = $brightness = $contrast = -1.0; | |||
global $file, $filename; | |||
global $argc, $argv; | |||
global $stderr; | |||
$cols = 0; | |||
$lines = 0; | |||
$font_width = 6; | |||
$font_height = 10; | |||
$format = NULL; | |||
$dither = NULL; | |||
$gamma = $brightness = $contrast = -1.0; | |||
$long_options = array( | |||
"width:" => 'W', | |||
"height:" => 'H', | |||
"font-width:" => 'x', | |||
"font-height:" => 'y', | |||
"format:" => 'f', | |||
"dither:" => 'd', | |||
"gamma:" => 'g', | |||
"brightness:" => 'b', | |||
"contrast:" => 'c', | |||
"help" => 'h', | |||
"version" => 'v' | |||
); | |||
$long_options = array( | |||
"width:" => 'W', | |||
"height:" => 'H', | |||
"font-width:" => 'x', | |||
"font-height:" => 'y', | |||
"format:" => 'f', | |||
"dither:" => 'd', | |||
"gamma:" => 'g', | |||
"brightness:" => 'b', | |||
"contrast:" => 'c', | |||
"help" => 'h', | |||
"version" => 'v' | |||
); | |||
try { | |||
while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options))) | |||
{ | |||
$opt = $opt_and_arg[0]; | |||
$arg = $opt_and_arg[1]; | |||
if((substr($opt, 0, 2) == '--') | |||
&& | |||
array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options)) | |||
{ | |||
$opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')]; | |||
} | |||
switch($opt) | |||
{ | |||
case '-W': /* --width */ | |||
$cols = intval($arg); | |||
break; | |||
case '-H': /* --height */ | |||
$lines = intval($arg); | |||
break; | |||
case '-x': /* --width */ | |||
$font_width = intval($arg); | |||
break; | |||
case '-y': /* --height */ | |||
$font_height = intval($arg); | |||
break; | |||
case '-f': /* --format */ | |||
$format = $arg; | |||
break; | |||
case '-d': /* --dither */ | |||
$dither = $arg; | |||
break; | |||
case '-g': /* --gamma */ | |||
$gamma = floatval($arg); | |||
break; | |||
case '-b': /* --brightness */ | |||
$brightness = floatval($arg); | |||
break; | |||
case '-c': /* --contrast */ | |||
$contrast = floatval($arg); | |||
break; | |||
case '-h': /* --help */ | |||
usage($argc, $argv); | |||
return 0; | |||
case '-v': /* --version */ | |||
version(); | |||
return 0; | |||
default: | |||
return 1; | |||
} | |||
} | |||
} | |||
catch (MygetoptException $e) | |||
{ | |||
$stderr .= $argv[0] . ": " . $e->getMessage() . "\n"; | |||
usage($argc, $argv); | |||
return 2; | |||
} | |||
try { | |||
while($opt_and_arg = mygetopt("W:H:f:d:g:b:c:hvx:y:", array_keys($long_options))) | |||
{ | |||
$opt = $opt_and_arg[0]; | |||
$arg = $opt_and_arg[1]; | |||
if((substr($opt, 0, 2) == '--') | |||
&& | |||
array_key_exists(substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : ''), $long_options)) | |||
{ | |||
$opt = '-' . $long_options[substr($opt, strlen('--')) . (($arg !== NULL) ? ':' : '')]; | |||
} | |||
switch($opt) | |||
{ | |||
case '-W': /* --width */ | |||
$cols = intval($arg); | |||
break; | |||
case '-H': /* --height */ | |||
$lines = intval($arg); | |||
break; | |||
case '-x': /* --width */ | |||
$font_width = intval($arg); | |||
break; | |||
case '-y': /* --height */ | |||
$font_height = intval($arg); | |||
break; | |||
case '-f': /* --format */ | |||
$format = $arg; | |||
break; | |||
case '-d': /* --dither */ | |||
$dither = $arg; | |||
break; | |||
case '-g': /* --gamma */ | |||
$gamma = floatval($arg); | |||
break; | |||
case '-b': /* --brightness */ | |||
$brightness = floatval($arg); | |||
break; | |||
case '-c': /* --contrast */ | |||
$contrast = floatval($arg); | |||
break; | |||
case '-h': /* --help */ | |||
usage($argc, $argv); | |||
return 0; | |||
case '-v': /* --version */ | |||
version(); | |||
return 0; | |||
default: | |||
return 1; | |||
} | |||
} | |||
} | |||
catch (MygetoptException $e) | |||
{ | |||
$stderr .= $argv[0] . ": " . $e->getMessage() . "\n"; | |||
usage($argc, $argv); | |||
return 2; | |||
} | |||
if((! $file) && ($argc == 2) && ($argv[1] == 'logo-caca.png')) | |||
{ | |||
$file = 'logo-caca.png'; | |||
$argc = 1; | |||
} | |||
else if($filename && $file && ($argc == 2) | |||
&& | |||
(strtolower(basename($argv[1])) == strtolower(basename($filename)))) | |||
{ | |||
$argc = 1; | |||
} | |||
if((! $file) && ($argc == 2) && ($argv[1] == 'logo-caca.png')) | |||
{ | |||
$file = 'logo-caca.png'; | |||
$argc = 1; | |||
} | |||
else if($filename && $file && ($argc == 2) | |||
&& | |||
(strtolower(basename($argv[1])) == strtolower(basename($filename)))) | |||
{ | |||
$argc = 1; | |||
} | |||
if($argc == 2) | |||
{ | |||
$stderr .= sprintf("%s: image not found\n", $argv[1]); | |||
return 1; | |||
} | |||
if($argc == 2) | |||
{ | |||
$stderr .= sprintf("%s: image not found\n", $argv[1]); | |||
return 1; | |||
} | |||
if($argc > 2) | |||
{ | |||
$stderr .= sprintf("%s: too many arguments\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
if($argc > 2) | |||
{ | |||
$stderr .= sprintf("%s: too many arguments\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
if(! $file) | |||
{ | |||
$stderr .= sprintf("%s: no image was provided\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
if(! $file) | |||
{ | |||
$stderr .= sprintf("%s: no image was provided\n", $argv[0]); | |||
usage($argc, $argv); | |||
return 1; | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(!$cv) | |||
{ | |||
$stderr .= sprintf("%s: unable to initialise libcaca\n", $argv[0]); | |||
return 1; | |||
} | |||
$cv = caca_create_canvas(0, 0); | |||
if(!$cv) | |||
{ | |||
$stderr .= sprintf("%s: unable to initialise libcaca\n", $argv[0]); | |||
return 1; | |||
} | |||
$i_str = $file ? file_get_contents($file) : NULL; | |||
$i = $i_str ? imagecreatefromstring($i_str) : NULL; | |||
if(!$i) | |||
{ | |||
$stderr .= sprintf("%s: unable to load %s\n", $argv[0], $filename); | |||
return 1; | |||
} | |||
$i_str = $file ? file_get_contents($file) : NULL; | |||
$i = $i_str ? imagecreatefromstring($i_str) : NULL; | |||
if(!$i) | |||
{ | |||
$stderr .= sprintf("%s: unable to load %s\n", $argv[0], $filename); | |||
return 1; | |||
} | |||
/* Assume a 6×10 font */ | |||
if(!$cols && !$lines) | |||
{ | |||
$cols = 60; | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if($cols && !$lines) | |||
{ | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if(!$cols && $lines) | |||
{ | |||
$cols = $lines * imagesx($i) * $font_height / imagesy($i) / $font_width; | |||
} | |||
/* Assume a 6×10 font */ | |||
if(!$cols && !$lines) | |||
{ | |||
$cols = 60; | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if($cols && !$lines) | |||
{ | |||
$lines = $cols * imagesy($i) * $font_width / imagesx($i) / $font_height; | |||
} | |||
else if(!$cols && $lines) | |||
{ | |||
$cols = $lines * imagesx($i) * $font_height / imagesy($i) / $font_width; | |||
} | |||
caca_set_canvas_size($cv, $cols, $lines); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_clear_canvas($cv); | |||
$i_dither = caca_create_dither($i); | |||
if(! caca_set_dither_algorithm($i_dither, $dither?$dither:"fstein")) | |||
{ | |||
$stderr .= sprintf("%s: Can't dither image with algorithm '%s'\n", $argv[0], $dither?$dither:"fstein"); | |||
return -1; | |||
} | |||
caca_set_canvas_size($cv, $cols, $lines); | |||
caca_set_color_ansi($cv, CACA_DEFAULT, CACA_TRANSPARENT); | |||
caca_clear_canvas($cv); | |||
$i_dither = caca_create_dither($i); | |||
if(! caca_set_dither_algorithm($i_dither, $dither?$dither:"fstein")) | |||
{ | |||
$stderr .= sprintf("%s: Can't dither image with algorithm '%s'\n", $argv[0], $dither?$dither:"fstein"); | |||
return -1; | |||
} | |||
if($brightness!=-1) caca_set_dither_brightness ($i_dither, $brightness); | |||
if($contrast!=-1) caca_set_dither_contrast ($i_dither, $contrast); | |||
if($gamma!=-1) caca_set_dither_gamma ($i_dither, $gamma); | |||
if($brightness!=-1) caca_set_dither_brightness ($i_dither, $brightness); | |||
if($contrast!=-1) caca_set_dither_contrast ($i_dither, $contrast); | |||
if($gamma!=-1) caca_set_dither_gamma ($i_dither, $gamma); | |||
caca_dither_bitmap($cv, 0, 0, $cols, $lines, $i_dither, $i); | |||
caca_dither_bitmap($cv, 0, 0, $cols, $lines, $i_dither, $i); | |||
$format = $format ? $format : 'html'; | |||
$format = $format ? $format : 'html'; | |||
$export = caca_export_string($cv, $format); | |||
if(!$export) | |||
{ | |||
$stderr .= sprintf("%s: Can't export to format '%s'\n", $argv[0], $format); | |||
return -1; | |||
} | |||
else | |||
{ | |||
$content_type_map = array( | |||
'ansi' => 'text/plain; charset=CP437', | |||
'utf8' => 'text/plain; charset=UTF-8', | |||
'utf8cr' => 'text/plain; charset=UTF-8', | |||
'html' => 'text/html; charset=UTF-8', | |||
'html3' => 'text/html; charset=UTF-8', | |||
'bbfr' => 'text/plain; charset=UTF-8', | |||
'irc' => 'text/plain; charset=UTF-8', | |||
'ps' => 'application/postscript', | |||
'svg' => 'image/svg+xml', | |||
'tga' => 'image/x-targa' | |||
); | |||
$export = caca_export_string($cv, $format); | |||
if(!$export) | |||
{ | |||
$stderr .= sprintf("%s: Can't export to format '%s'\n", $argv[0], $format); | |||
return -1; | |||
} | |||
else | |||
{ | |||
$content_type_map = array( | |||
'ansi' => 'text/plain; charset=CP437', | |||
'utf8' => 'text/plain; charset=UTF-8', | |||
'utf8cr' => 'text/plain; charset=UTF-8', | |||
'html' => 'text/html; charset=UTF-8', | |||
'html3' => 'text/html; charset=UTF-8', | |||
'bbfr' => 'text/plain; charset=UTF-8', | |||
'irc' => 'text/plain; charset=UTF-8', | |||
'ps' => 'application/postscript', | |||
'svg' => 'image/svg+xml', | |||
'tga' => 'image/x-targa' | |||
); | |||
$download_extension_map = array( | |||
'caca' => 'caca', | |||
'ansi' => 'txt', | |||
'utf8' => 'txt', | |||
'utf8cr' => 'txt', | |||
'irc' => 'txt', | |||
'tga' => 'tga' | |||
); | |||
$download_extension_map = array( | |||
'caca' => 'caca', | |||
'ansi' => 'txt', | |||
'utf8' => 'txt', | |||
'utf8cr' => 'txt', | |||
'irc' => 'txt', | |||
'tga' => 'tga' | |||
); | |||
$inline_extension_map = array( | |||
'bbfr' => 'txt', | |||
'ps' => 'ps', | |||
'svg' => 'svg' | |||
); | |||
$inline_extension_map = array( | |||
'bbfr' => 'txt', | |||
'ps' => 'ps', | |||
'svg' => 'svg' | |||
); | |||
if (! array_key_exists($format, $content_type_map)) | |||
$content_type = 'application/octet-stream'; | |||
else | |||
$content_type = $content_type_map[$format]; | |||
if (! array_key_exists($format, $content_type_map)) | |||
$content_type = 'application/octet-stream'; | |||
else | |||
$content_type = $content_type_map[$format]; | |||
header('Content-Type: ' . $content_type); | |||
if (array_key_exists($format, $download_extension_map)) | |||
header('Content-Disposition: attachment; filename=export.' . $download_extension_map[$format]); | |||
else if (array_key_exists($format, $inline_extension_map)) | |||
header('Content-Disposition: inline; filename=export.' . $inline_extension_map[$format]); | |||
header('Content-Type: ' . $content_type); | |||
if (array_key_exists($format, $download_extension_map)) | |||
header('Content-Disposition: attachment; filename=export.' . $download_extension_map[$format]); | |||
else if (array_key_exists($format, $inline_extension_map)) | |||
header('Content-Disposition: inline; filename=export.' . $inline_extension_map[$format]); | |||
echo $export; | |||
} | |||
echo $export; | |||
} | |||
return 0; | |||
return 0; | |||
} | |||
$ret = 1; | |||
if(isset($_REQUEST['args']) || $file) | |||
{ | |||
$ret = main(); | |||
$ret = main(); | |||
} | |||
if($ret || strlen($stdout) || strlen($stderr)) | |||
{ | |||
header('Content-Type: text/html; charset=UTF-8'); | |||
?> | |||
header('Content-Type: text/html; charset=UTF-8'); | |||
?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||
@@ -512,21 +510,21 @@ if($ret || strlen($stdout) || strlen($stderr)) | |||
<input type="submit" /> <input type="reset" /> | |||
</form> | |||
<?php | |||
; | |||
if(strlen($stderr)) | |||
{ | |||
?><pre xml:space="preserve"><strong><?= htmlspecialchars($stderr) ?></strong></pre><?php | |||
; | |||
} | |||
if(strlen($stdout)) | |||
{ | |||
?><pre xml:space="preserve"><?= preg_replace('!([&]lt;)([.a-zA-Z0-9]+[@])([-.a-zA-Z0-9]+)([&]gt;)!', '$1<a href="mailto:$2$3">$2...</a>$4', preg_replace('!(\s|^)(https?://[-.:_/0-9a-zA-Z%?=&;#]+)(\s|$)!', '$1<a href="$2">$2</a>$3', htmlspecialchars($stdout))) ?></pre><?php | |||
; | |||
} | |||
?> | |||
; | |||
if(strlen($stderr)) | |||
{ | |||
?><pre xml:space="preserve"><strong><?= htmlspecialchars($stderr) ?></strong></pre><?php | |||
; | |||
} | |||
if(strlen($stdout)) | |||
{ | |||
?><pre xml:space="preserve"><?= preg_replace('!([&]lt;)([.a-zA-Z0-9]+[@])([-.a-zA-Z0-9]+)([&]gt;)!', '$1<a href="mailto:$2$3">$2...</a>$4', preg_replace('!(\s|^)(https?://[-.:_/0-9a-zA-Z%?=&;#]+)(\s|$)!', '$1<a href="$2">$2</a>$3', htmlspecialchars($stdout))) ?></pre><?php | |||
; | |||
} | |||
?> | |||
</body> | |||
</html> | |||
<?php | |||
; | |||
; | |||
} | |||
?> |
@@ -11,12 +11,10 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/import.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -49,12 +47,12 @@ if ($file == NULL) | |||
<label for="format">as</label> | |||
<select name="format" id="format" onchange="update_preview(this);"> | |||
<?php | |||
foreach($imports as $import_format => $name) | |||
{ | |||
?><option value="<?= htmlspecialchars($import_format) ?>"<?= | |||
($format == $import_format) ? ' selected="selected"' : '' ?>><?= | |||
htmlspecialchars($name . " (" . $import_format . ")") ?></option><?php | |||
} | |||
foreach($imports as $import_format => $name) | |||
{ | |||
?><option value="<?= htmlspecialchars($import_format) ?>"<?= | |||
($format == $import_format) ? ' selected="selected"' : '' ?>><?= | |||
htmlspecialchars($name . " (" . $import_format . ")") ?></option><?php | |||
} | |||
?> | |||
</select> | |||
</form> | |||
@@ -64,22 +62,22 @@ if ($file == NULL) | |||
if($file) | |||
{ | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't create canvas\n"); | |||
} | |||
if(caca_import_file($cv, $file, ($format == NULL) ? "" : $format) < 0) | |||
{ | |||
die("could not import `" . htmlspecialchars($filename) . "'.\n"); | |||
} | |||
echo caca_export_string($cv, "html3"); | |||
$cv = caca_create_canvas(0, 0); | |||
if(! $cv) | |||
{ | |||
die("Can't create canvas\n"); | |||
} | |||
if(caca_import_file($cv, $file, ($format == NULL) ? "" : $format) < 0) | |||
{ | |||
die("could not import `" . htmlspecialchars($filename) . "'.\n"); | |||
} | |||
echo caca_export_string($cv, "html3"); | |||
} | |||
else | |||
{ | |||
?>See the <a href="export.php">libcaca export test program</a> for an <a | |||
?>See the <a href="export.php">libcaca export test program</a> for an <a | |||
href="export.php?format=caca">example file</a>.<?php | |||
} | |||
@@ -2,48 +2,48 @@ | |||
function pig() { | |||
$pig_str = <<<EOT | |||
_._ _..._ .-', _.._(`)) | |||
'-. ` ' /-._.-' ',/ | |||
) \ '. | |||
/ _ _ | \ | |||
| a a / PHP | | |||
\ .-. ; | |||
'-('' ).-' ,' ; | |||
'-; | .' | |||
\ \ / | |||
| 7 .__ _.-\ \ | |||
| | | ``/ /` / | |||
jgs /,_| | /,_/ / | |||
/,_/ '`-' | |||
_._ _..._ .-', _.._(`)) | |||
'-. ` ' /-._.-' ',/ | |||
) \ '. | |||
/ _ _ | \ | |||
| a a / PHP | | |||
\ .-. ; | |||
'-('' ).-' ,' ; | |||
'-; | .' | |||
\ \ / | |||
| 7 .__ _.-\ \ | |||
| | | ``/ /` / | |||
jgs /,_| | /,_/ / | |||
/,_/ '`-' | |||
EOT; | |||
$canvas = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($canvas, CACA_RED, CACA_WHITE); | |||
caca_import_string($canvas, $pig_str, "text"); | |||
caca_set_color_ansi($canvas, CACA_BLUE, CACA_LIGHTGRAY); | |||
caca_put_str($canvas, 0, 0, "Я люблю Либкаку"); | |||
return $canvas; | |||
$canvas = caca_create_canvas(0, 0); | |||
caca_set_color_ansi($canvas, CACA_RED, CACA_WHITE); | |||
caca_import_string($canvas, $pig_str, "text"); | |||
caca_set_color_ansi($canvas, CACA_BLUE, CACA_LIGHTGRAY); | |||
caca_put_str($canvas, 0, 0, "Я люблю Либкаку"); | |||
return $canvas; | |||
} | |||
if (isset($_GET["png"])) { | |||
$canvas = pig(); | |||
$font = caca_load_builtin_font("Monospace Bold 12"); | |||
$width = caca_get_canvas_width($canvas) * caca_get_font_width($font); | |||
$height = caca_get_canvas_height($canvas) * caca_get_font_height($font); | |||
$img = imagecreatetruecolor($width, $height); | |||
caca_render_canvas($canvas, $font, $img); | |||
header("Content-type: image/png"); | |||
imagepng($img); | |||
$canvas = pig(); | |||
$font = caca_load_builtin_font("Monospace Bold 12"); | |||
$width = caca_get_canvas_width($canvas) * caca_get_font_width($font); | |||
$height = caca_get_canvas_height($canvas) * caca_get_font_height($font); | |||
$img = imagecreatetruecolor($width, $height); | |||
caca_render_canvas($canvas, $font, $img); | |||
header("Content-type: image/png"); | |||
imagepng($img); | |||
} | |||
else { | |||
$render_php = isset($_SERVER['SCRIPT_NAME']) | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'render.php'; | |||
? | |||
$_SERVER['SCRIPT_NAME'] | |||
: | |||
'render.php'; | |||
header("Content-type: text/html; charset=UTF-8"); | |||
@@ -62,7 +62,7 @@ header("Content-type: text/html; charset=UTF-8"); | |||
<h1>Generated image:</h1> | |||
<a href="<?= htmlspecialchars($render_php) ?>?png=1"><img alt="[PNG]" | |||
src="<?= htmlspecialchars($render_php) ?>?png=1" border="0" /></a> | |||
src="<?= htmlspecialchars($render_php) ?>?png=1" border="0" /></a> | |||
</body> | |||
</html> | |||
@@ -10,8 +10,8 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* demo.php demo for libcaca php binding | |||
* Copyright (c) 2008 Nicolas Vion <nico@yojik.eu> | |||
* | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* This file is a Php port of the official libcaca's sample program "demo.c" | |||
* which is: | |||
* Copyright (c) 2003 Sam Hocevar <sam@hocevar.net> | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
@@ -29,23 +29,23 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
<?php | |||
$string = <<<EOT | |||
|_| | |||
_,----._ | | | |||
(/ @ @ \) __ | |||
| OO | |_ | |||
\ `--' / |__ | |||
`----' | |||
|_| | |||
Hello world! | | |||
|_| | |||
_,----._ | | | |||
(/ @ @ \) __ | |||
| OO | |_ | |||
\ `--' / |__ | |||
`----' | |||
|_| | |||
Hello world! | | |||
EOT; | |||
$pig = caca_create_canvas(0, 0); | |||
caca_import_string($pig, $string, "text"); | |||
$cv = caca_create_canvas(caca_get_canvas_width($pig) * 2, caca_get_canvas_height($pig) * 2); | |||
if (!$cv or !$pig) { | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
caca_blit($cv, 0, 0, $pig); | |||
@@ -59,12 +59,12 @@ caca_rotate_180($pig); | |||
caca_blit($cv, caca_get_canvas_width($pig), caca_get_canvas_height($pig), $pig); | |||
for($j = 0; $j < caca_get_canvas_height($cv); $j++) { | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE + ($i + $j) % 6, CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) { | |||
caca_set_color_ansi($cv, CACA_LIGHTBLUE + ($i + $j) % 6, CACA_DEFAULT); | |||
$a = caca_get_attr($cv, -1, -1); | |||
caca_put_attr($cv, $i, $j, $a); | |||
caca_put_attr($cv, $i + 1, $j, $a); | |||
} | |||
} | |||
echo caca_export_string($cv, "html3"); | |||
@@ -11,12 +11,10 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/transform.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -32,24 +30,24 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
<?php | |||
$pig = ( | |||
",--. ,--.\n" . | |||
"\\ /-~-\\ /\n" . | |||
" )' o O `(\n" . | |||
"( ,---. )\n" . | |||
" `(_o_o_)'\n" . | |||
" )`-'(\n"); | |||
",--. ,--.\n" . | |||
"\\ /-~-\\ /\n" . | |||
" )' o O `(\n" . | |||
"( ,---. )\n" . | |||
" `(_o_o_)'\n" . | |||
" )`-'(\n"); | |||
$duck = ( | |||
" ,~~.\n" . | |||
" __ , ( O )>\n" . | |||
"___( o)> )`~~' (\n" . | |||
"\\ <_. ) ( .__) )\n" . | |||
" `---' `-.____,'\n"); | |||
" ,~~.\n" . | |||
" __ , ( O )>\n" . | |||
"___( o)> )`~~' (\n" . | |||
"\\ <_. ) ( .__) )\n" . | |||
" `---' `-.____,'\n"); | |||
$cv = caca_create_canvas(80, 25); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
$image = caca_create_canvas(70, 6); | |||
@@ -7,15 +7,13 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |||
<?php | |||
/* | |||
* truecolor truecolor canvas features | |||
* truecolor truecolor canvas features | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/truecolor.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* All Rights Reserved | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
@@ -33,18 +31,18 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
$cv = caca_create_canvas(32, 16); | |||
if(!$cv) { | |||
die("Failed to create canvas\n"); | |||
die("Failed to create canvas\n"); | |||
} | |||
for($y = 0; $y < 16; $y++) | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
$bgcolor = 0xff00 | ($y << 4) | $x; | |||
$fgcolor = 0xf000 | ((15 - $y) << 4) | ((15 - $x) << 8); | |||
caca_set_color_argb($cv, $fgcolor, $bgcolor); | |||
caca_put_str($cv, $x * 2, $y, "CA"); | |||
} | |||
for($x = 0; $x < 16; $x++) | |||
{ | |||
$bgcolor = 0xff00 | ($y << 4) | $x; | |||
$fgcolor = 0xf000 | ((15 - $y) << 4) | ((15 - $x) << 8); | |||
caca_set_color_argb($cv, $fgcolor, $bgcolor); | |||
caca_put_str($cv, $x * 2, $y, "CA"); | |||
} | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_LIGHTBLUE); | |||
caca_put_str($cv, 2, 1, " truecolor libcaca "); | |||
@@ -11,12 +11,10 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
* Copyright (c) 2008 Benjamin C. Wiley Sittler <bsittler@gmail.com> | |||
* | |||
* This file is a Php port of "examples/unicode.c" | |||
* which is: | |||
* which is: | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -34,7 +32,7 @@ header('Content-Type: text/html; charset=UTF-8'); | |||
$cv = caca_create_canvas(80, 25); | |||
if(! $cv) | |||
{ | |||
die("Can't created canvas\n"); | |||
die("Can't created canvas\n"); | |||
} | |||
caca_set_color_ansi($cv, CACA_WHITE, CACA_BLUE); | |||
caca_put_str($cv, 1, 1, "Basic Unicode support"); | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -1,4 +1,3 @@ | |||
# $Id: $ | |||
# We need to install the .config file ourselves because of a gacutil | |||
# bug (https://bugzilla.novell.com/show_bug.cgi?id=363341) | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* 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 | |||
@@ -1,4 +1,3 @@ | |||
# $Id$ | |||
EXTRA_DIST = caca_types.h.in caca.pc.in \ | |||
mono9.data monobold12.data \ | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2006-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2010 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -13,7 +11,6 @@ | |||
*/ | |||
/** \file caca.h | |||
* \version \$Id$ | |||
* \author Sam Hocevar <sam@hocevar.net> | |||
* \brief The \e libcaca public header. | |||
* | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2010 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,11 +3,10 @@ | |||
* Copyright (c) 2006-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software; 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 | |||
* This library 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://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,11 +3,10 @@ | |||
* Copyright (c) 2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software; 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 | |||
* This library 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://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
@@ -3,11 +3,10 @@ | |||
* Copyright (c) 2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software; 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 | |||
* This library 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://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
@@ -4,11 +4,10 @@ | |||
* Copyright (c) 2008 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library is free software; 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 | |||
* This library 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://sam.zoy.org/wtfpl/COPYING for more details. | |||
*/ | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Ben Wiley Sittler <bsittler@gmail.com> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2006 Jean-Yves Lamoureux <jylam@lnxscene.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2006 Colin Delacroix <colin@zoy.org> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -5,8 +5,6 @@ | |||
* 2007 Ben Wiley Sittler <bsittler@gmail.com> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Ben Wiley Sittler <bsittler@gmail.com> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -4,8 +4,6 @@ | |||
* 2007 Ben Wiley Sittler <bsittler@gmail.com> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2006-2007 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -3,8 +3,6 @@ | |||
* Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||
* All Rights Reserved | |||
* | |||
* $Id$ | |||
* | |||
* This library 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 | |||
@@ -1,4 +1,3 @@ | |||
# $Id$ | |||
AC_INIT(libcaca, 0.99.beta17) | |||
AC_PREREQ(2.50) | |||
@@ -1,4 +1,3 @@ | |||
# $Id: Makefile.am 552 2006-04-13 16:10:16Z jylam $ | |||
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/caca -I../caca | |||