| 1 | /* |
|---|
| 2 | * libcucul Canvas for ultrafast compositing of Unicode letters |
|---|
| 3 | * Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org> |
|---|
| 4 | * All Rights Reserved |
|---|
| 5 | * |
|---|
| 6 | * $Id$ |
|---|
| 7 | * |
|---|
| 8 | * This library is free software; you can redistribute it and/or |
|---|
| 9 | * modify it under the terms of the Do What The Fuck You Want To |
|---|
| 10 | * Public License, Version 2, as published by Sam Hocevar. See |
|---|
| 11 | * http://sam.zoy.org/wtfpl/COPYING for more details. |
|---|
| 12 | */ |
|---|
| 13 | |
|---|
| 14 | #ifndef __CUCUL_INTERNALS_H__ |
|---|
| 15 | #define __CUCUL_INTERNALS_H__ |
|---|
| 16 | |
|---|
| 17 | #if defined(HAVE_INTTYPES_H) && !defined(__KERNEL__) |
|---|
| 18 | # include <inttypes.h> |
|---|
| 19 | #endif |
|---|
| 20 | |
|---|
| 21 | struct cucul_frame |
|---|
| 22 | { |
|---|
| 23 | /* Frame size */ |
|---|
| 24 | unsigned int width, height; |
|---|
| 25 | |
|---|
| 26 | /* Cell information */ |
|---|
| 27 | uint32_t *chars; |
|---|
| 28 | uint32_t *attrs; |
|---|
| 29 | |
|---|
| 30 | /* Painting context */ |
|---|
| 31 | int x, y; |
|---|
| 32 | int handlex, handley; |
|---|
| 33 | uint32_t curattr; |
|---|
| 34 | }; |
|---|
| 35 | |
|---|
| 36 | struct cucul_canvas |
|---|
| 37 | { |
|---|
| 38 | /* Frame information */ |
|---|
| 39 | unsigned int frame, framecount; |
|---|
| 40 | struct cucul_frame *frames; |
|---|
| 41 | |
|---|
| 42 | unsigned int refcount; |
|---|
| 43 | |
|---|
| 44 | /* Shortcut to the active frame information */ |
|---|
| 45 | unsigned int width, height; |
|---|
| 46 | uint32_t *chars; |
|---|
| 47 | uint32_t *attrs; |
|---|
| 48 | uint32_t curattr; |
|---|
| 49 | }; |
|---|
| 50 | |
|---|
| 51 | struct cucul_buffer |
|---|
| 52 | { |
|---|
| 53 | unsigned long int size; |
|---|
| 54 | char *data; |
|---|
| 55 | int user_data; |
|---|
| 56 | }; |
|---|
| 57 | |
|---|
| 58 | /* Canvas functions */ |
|---|
| 59 | extern int _cucul_set_canvas_size(cucul_canvas_t *, unsigned int, unsigned int); |
|---|
| 60 | |
|---|
| 61 | /* Colour functions */ |
|---|
| 62 | extern uint16_t _cucul_attr_to_rgb12fg(uint32_t); |
|---|
| 63 | extern uint16_t _cucul_attr_to_rgb12bg(uint32_t); |
|---|
| 64 | extern uint32_t _cucul_attr_to_rgb24fg(uint32_t); |
|---|
| 65 | extern uint32_t _cucul_attr_to_rgb24bg(uint32_t); |
|---|
| 66 | extern void _cucul_attr_to_argb4(uint32_t, uint8_t[8]); |
|---|
| 67 | |
|---|
| 68 | /* Frames functions */ |
|---|
| 69 | extern void _cucul_save_frame_info(cucul_canvas_t *); |
|---|
| 70 | extern void _cucul_load_frame_info(cucul_canvas_t *); |
|---|
| 71 | |
|---|
| 72 | #endif /* __CUCUL_INTERNALS_H__ */ |
|---|