92 lines
2.1 KiB
C
92 lines
2.1 KiB
C
/*
|
|
* spritedit sprite editor for libcaca
|
|
* Copyright (c) 2003-2012 Sam Hocevar <sam@hocevar.net>
|
|
* All Rights Reserved
|
|
*
|
|
* This program is free software. It comes without any warranty, to
|
|
* the extent permitted by applicable law. You can redistribute it
|
|
* and/or modify it under the terms of the Do What the Fuck You Want
|
|
* to Public License, Version 2, as published by Sam Hocevar. See
|
|
* http://www.wtfpl.net/ for more details.
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#if !defined(__KERNEL__)
|
|
# include <stdio.h>
|
|
# include <string.h>
|
|
# include <stdlib.h>
|
|
#endif
|
|
|
|
#include "caca.h"
|
|
|
|
/* Courtesy of Zashi */
|
|
char *guy[] = {
|
|
" O_,= \n"
|
|
" | \n"
|
|
" /\\ \n"
|
|
" / / \n",
|
|
|
|
" O_,= \n"
|
|
" | \n"
|
|
" /| \n"
|
|
" / | \n",
|
|
|
|
" O_,= \n"
|
|
" | \n"
|
|
" |\\ \n"
|
|
" |/ \n",
|
|
|
|
" O_,= \n"
|
|
" | \n"
|
|
" |\\ \n"
|
|
" | \\ \n",
|
|
};
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
caca_canvas_t *sprite;
|
|
size_t len;
|
|
void *buffer;
|
|
int i;
|
|
|
|
/* Create a canvas with 4 frames */
|
|
sprite = caca_create_canvas(0, 0);
|
|
for(i = 0; i < 3; i++)
|
|
caca_create_frame(sprite, 0);
|
|
|
|
/* Load stuff in all 4 frames */
|
|
for(i = 0; i < 4; i++)
|
|
{
|
|
caca_set_frame(sprite, i);
|
|
caca_import_canvas_from_memory(sprite, guy[i], strlen(guy[i]), "utf8");
|
|
}
|
|
|
|
/* Export our sprite in a memory buffer. We could save this to
|
|
* disk afterwards. */
|
|
buffer = caca_export_canvas_to_memory(sprite, "caca", &len);
|
|
|
|
/* Free our sprite and reload it from the memory buffer. We could
|
|
* load this from disk, too. */
|
|
caca_free_canvas(sprite);
|
|
sprite = caca_create_canvas(0, 0);
|
|
caca_import_canvas_from_memory(sprite, buffer, len, "caca");
|
|
free(buffer);
|
|
|
|
/* Print each sprite frame to stdout */
|
|
for(i = 0; i < 4; i++)
|
|
{
|
|
caca_set_frame(sprite, i);
|
|
printf("Frame #%i\n", i);
|
|
buffer = caca_export_canvas_to_memory(sprite, "utf8", &len);
|
|
fwrite(buffer, len, 1, stdout);
|
|
free(buffer);
|
|
}
|
|
|
|
/* Free our sprite */
|
|
caca_free_canvas(sprite);
|
|
|
|
return 0;
|
|
}
|
|
|