Browse Source

* Made cucul_blit() handle-aware. Added a blit test for that.

tags/v0.99.beta14
Sam Hocevar sam 18 years ago
parent
commit
8c5342b263
3 changed files with 80 additions and 1 deletions
  1. +3
    -0
      cucul/canvas.c
  2. +4
    -1
      test/Makefile.am
  3. +73
    -0
      test/blit.c

+ 3
- 0
cucul/canvas.c View File

@@ -390,6 +390,9 @@ int cucul_blit(cucul_canvas_t *dst, int x, int y,
return -1;
}

x -= src->frames[src->frame].handlex;
y -= src->frames[src->frame].handley;

starti = x < 0 ? -x : 0;
startj = y < 0 ? -y : 0;
endi = (x + src->width >= dst->width) ? dst->width - x : src->width;


+ 4
- 1
test/Makefile.am View File

@@ -2,7 +2,10 @@

AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/cucul -I$(top_srcdir)/caca -DDATADIR=\"$(pkgdatadir)\"

noinst_PROGRAMS = colors demo demo0 dithering event export font frames fullwidth gamma hsv input spritedit font2tga text transform truecolor unicode import
noinst_PROGRAMS = blit colors demo demo0 dithering event export font frames fullwidth gamma hsv input spritedit font2tga text transform truecolor unicode import

blit_SOURCES = blit.c
blit_LDADD = ../caca/libcaca.la ../cucul/libcucul.la

colors_SOURCES = colors.c
colors_LDADD = ../caca/libcaca.la ../cucul/libcucul.la


+ 73
- 0
test/blit.c View File

@@ -0,0 +1,73 @@
/*
* unicode libcaca Unicode rendering test program
* Copyright (c) 2006 Sam Hocevar <sam@zoy.org>
* All Rights Reserved
*
* $Id$
*
* This program 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
* http://sam.zoy.org/wtfpl/COPYING for more details.
*/

#include "config.h"
#include "common.h"
#if !defined(__KERNEL__)
# if defined(HAVE_INTTYPES_H)
# include <inttypes.h>
# endif
# include <stdio.h>
# include <string.h>
#endif

#include "cucul.h"
#include "caca.h"

static char const pig[] =
" ,__ __,\n"
" \\)`\\_..._/`(/\n"
" .' _ _ '.\n"
" / o\\ /o \\\n"
" | .-.-. | _\n"
" | /() ()\\ | (,`)\n"
" / \\ '-----' / \\ .'\n"
"| '-..___..-' |\n"
"| |\n"
"| |\n"
"; ;\n"
" \\ / \\ /\n"
" \\-..-/'-'\\-..-/\n"
"jgs\\/\\/ \\/\\/\n";

int main(int argc, char *argv[])
{
cucul_canvas_t *cv, *sprite;
caca_display_t *dp;

cv = cucul_create_canvas(0, 0);
dp = caca_create_display(cv);

sprite = cucul_create_canvas(0, 0);
cucul_set_color_ansi(sprite, CUCUL_LIGHTRED, CUCUL_BLACK);
cucul_import_memory(sprite, pig, strlen(pig), "text");
cucul_set_canvas_handle(sprite, cucul_get_canvas_width(sprite) / 2,
cucul_get_canvas_height(sprite) / 2);

cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
cucul_putstr(cv, 0, 0, "Centered sprite");

cucul_blit(cv, cucul_get_canvas_width(cv) / 2,
cucul_get_canvas_height(cv) / 2, sprite, NULL);

caca_refresh_display(dp);

caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1);

caca_free_display(dp);
cucul_free_canvas(sprite);
cucul_free_canvas(cv);

return 0;
}


Loading…
Cancel
Save