@@ -0,0 +1,66 @@ | |||
#!/usr/bin/env python | |||
# -*- coding: utf-8 -*- | |||
# | |||
# figfont libcaca blit test program | |||
# Copyright (c) 2010 Alex Foulon <alxf@lavabit.com> | |||
# | |||
# This file is a Python port of "examples/blit.c" | |||
# which is: | |||
# Copyright (c) 2006-2010 Sam Hocevar <sam@hocevar.net> | |||
# All Rights Reserverd | |||
# | |||
# 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. | |||
# | |||
import sys | |||
import caca | |||
from caca.canvas import Canvas, CanvasError, NullCanvas | |||
from caca.display import Display, DisplayError, Event | |||
THE_PIG="""\ | |||
,__ __, | |||
\\)`\\_..._/`(/ | |||
.' _ _ '. | |||
/ o\\ /o \\ | |||
| .-.-. | _ | |||
| /() ()\\ | (,`) | |||
/ \\ '-----' / \\ .' | |||
| '-..___..-' | | |||
| | | |||
| | | |||
; ; | |||
\\ / \\ / | |||
\\-..-/'-'\\-..-/ | |||
jgs\\/\\/ \\/\\/""" | |||
def main(): | |||
""" Main function. """ | |||
try: | |||
cv = Canvas(0, 0) | |||
dp = Display(cv) | |||
except (CanvasError, DisplayError), err: | |||
sys.stderr.write("%s\n" % err) | |||
sys.exit(2) | |||
sprite = Canvas(0, 0) | |||
sprite.set_color_ansi(caca.COLOR_LIGHTRED, caca.COLOR_BLACK) | |||
sprite.import_from_memory(THE_PIG, "text") | |||
sprite.set_handle(sprite.get_width()/2, sprite.get_height()/2) | |||
cv.set_color_ansi(caca.COLOR_WHITE, caca.COLOR_BLUE) | |||
cv.put_str(0, 0, "Centered sprite") | |||
cv.blit(cv.get_width()/2, cv.get_height()/2, sprite, NullCanvas()) | |||
dp.refresh() | |||
dp.get_event(caca.EVENT_KEY_PRESS, Event(), -1) | |||
sys.exit(0) | |||
if __name__ == "__main__": | |||
main() | |||
@@ -0,0 +1,74 @@ | |||
#!/usr/bin/env python | |||
# -*- coding: utf-8 -*- | |||
# | |||
# frames canvas frame switching features | |||
# Copyright (c) 2010 Alex Foulon <alxf@lavabit.com> | |||
# | |||
# This file is a Python port of "examples/frames.c" | |||
# which is: | |||
# Copyright (c) 2006-2010 Sam Hocevar <sam@hocevar.net> | |||
# All Rights Reserverd | |||
# | |||
# 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. | |||
# | |||
import sys | |||
import caca | |||
from caca.canvas import Canvas, CanvasError | |||
from caca.display import Display, DisplayError, Event | |||
def main(): | |||
""" Main function. """ | |||
try: | |||
cv = Canvas(0, 0) | |||
except CanvasError, err: | |||
sys.stderr.write("%s\n" % err) | |||
sys.exit(2) | |||
for idx in range(1, 200): | |||
cv.create_frame(idx) | |||
sys.stderr.write("canvas created, size is %dx%d\n" \ | |||
% (cv.get_width(), cv.get_height())) | |||
cv.set_size(150, 80) | |||
sys.stderr.write("canvas expanded, size is %dx%d\n" \ | |||
% (cv.get_width(), cv.get_height())) | |||
for idx in range(0, 16): | |||
cv.set_frame(idx) | |||
cv.set_color_ansi(caca.COLOR_WHITE, idx) | |||
cv.fill_box(0, 0, 40, 15, ':') | |||
cv.set_color_ansi(caca.COLOR_WHITE, caca.COLOR_BLUE) | |||
cv.put_str(idx * 5 / 2, idx, "カカ") | |||
cv.set_color_ansi(caca.COLOR_DEFAULT, caca.COLOR_TRANSPARENT) | |||
cv.set_size(41, 16) | |||
sys.stderr.write("canvas shrinked, size is %dx%d\n" \ | |||
% (cv.get_width(), cv.get_height())) | |||
try: | |||
dp = Display(cv) | |||
except DisplayError, err: | |||
sys.stderr.write("%s\n" % err) | |||
sys.exit(2) | |||
dp.set_time(50000) | |||
sys.stderr.write("display attached, size is %dx%d\n" \ | |||
% (cv.get_width(), cv.get_height())) | |||
n = 0 | |||
while not dp.get_event(caca.EVENT_KEY_PRESS, Event(), 0): | |||
cv.set_frame(n % 16) | |||
dp.refresh() | |||
n += 1 | |||
if __name__ == "__main__": | |||
main() | |||
@@ -0,0 +1,73 @@ | |||
#!/usr/bin/env python | |||
# -*- coding: utf-8 -*- | |||
# | |||
# text canvas text import/export | |||
# Copyright (c) 2010 Alex Foulon <alxf@lavabit.com> | |||
# | |||
# This file is a Python port of "examples/text.c" | |||
# which is: | |||
# Copyright (c) 2006-2010 Sam Hocevar <sam@hocevar.net> | |||
# All Rights Reserverd | |||
# | |||
# 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. | |||
# | |||
import sys | |||
import caca | |||
from caca.canvas import Canvas, CanvasError, NullCanvas | |||
from caca.display import Display, DisplayError, Event | |||
STRING="""\ | |||
|_| | |||
_,----._ | | | |||
(/ @ @ \\) __ | |||
| OO | |_ | |||
\\ `--' / |__ | |||
`----' | |||
|_| | |||
Hello world! | | |||
""" | |||
def main(): | |||
""" Main function. """ | |||
try: | |||
pig = Canvas(0, 0) | |||
pig.import_from_memory(STRING, "text") | |||
cv = Canvas(pig.get_width() * 2, pig.get_height() * 2) | |||
except CanvasError, err: | |||
sys.stderr.write("%s\n" % err) | |||
sys.exit(2) | |||
cv.blit(0, 0, pig, NullCanvas()) | |||
pig.flip() | |||
cv.blit(pig.get_width(), 0, pig, NullCanvas()) | |||
pig.flip() | |||
pig.flop() | |||
cv.blit(0, pig.get_height(), pig, NullCanvas()) | |||
pig.flop() | |||
pig.rotate_180() | |||
cv.blit(pig.get_width(), pig.get_height(), pig, NullCanvas()) | |||
for j in xrange(0, cv.get_height()): | |||
for i in xrange(0, cv.get_width(), 2): | |||
cv.set_color_ansi(caca.COLOR_LIGHTBLUE + (i + j) % 6, | |||
caca.COLOR_DEFAULT) | |||
a = cv.get_attr(-1, -1) | |||
cv.put_attr(i, j, a) | |||
cv.put_attr(i+1, j, a) | |||
sys.stdout.write(cv.export_to_memory("utf8")) | |||
cv.rotate_left() | |||
sys.stdout.write(cv.export_to_memory("utf8")) | |||
if __name__ == "__main__": | |||
main() | |||