#include "config.h"
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdarg.h>
#include "afterbase.h"
#include "asvisual.h"
#include "scanline.h"
#include "blender.h"
#include "asimage.h"
#include "ascmap.h"
Go to the source code of this file.
#define LOCAL_DEBUG |
Definition at line 74 of file asimage.c.
References __as_default_asvisual, and __as_dummy_asvisual.
Referenced by create_asvisual_for_id(), and destroy_asvisual().
static void alloc_asimage_channels | ( | ASImage * | im | ) | [static] |
Definition at line 172 of file asimage.c.
References ASImage::alpha, ASImage::blue, ASImage::channels, ASImage::green, ASImage::height, IC_ALPHA, IC_BLUE, IC_GREEN, IC_RED, LOCAL_DEBUG_OUT, NULL, ASImage::red, safecalloc, show_error, and ASImage::width.
Referenced by asimage_start().
Definition at line 816 of file asimage.c.
References AS_ASSERT, ASStorage_32Bit, ASStorage_RLEDiffCompress, ASImage::channels, forget_data(), ASImage::height, IC_NUM_CHANNELS, NULL, store_data(), and ASImage::width.
Referenced by bitmap2asimage(), DIB2ASImage(), encode_image_scanline_asim(), encode_image_scanline_xim(), picture_ximage2asimage(), ppm2ASImage(), read_bmp_image(), and read_xcf_hierarchy().
Definition at line 829 of file asimage.c.
References AS_ASSERT, ASStorage_16BitShift, ASStorage_24BitShift, ASStorage_32Bit, ASStorage_8BitShift, ASStorage_Masked, ASStorage_RLEDiffCompress, ASImage::channels, forget_data(), ASImage::height, IC_ALPHA, IC_BLUE, IC_GREEN, IC_RED, NULL, store_data(), and ASImage::width.
Referenced by picture_ximage2asimage().
Definition at line 802 of file asimage.c.
References AS_ASSERT, ASImage::channels, forget_data(), ASImage::height, IC_NUM_CHANNELS, NULL, store_data(), and ASImage::width.
Referenced by encode_image_scanline_asim().
Bool asimage_compare_line | ( | ASImage * | im, | |
ColorPart | color, | |||
CARD32 * | to_buf, | |||
CARD32 * | tmp, | |||
unsigned int | y, | |||
Bool | verbose | |||
) |
Definition at line 996 of file asimage.c.
References asimage_decode_line(), False, i, show_error, True, and ASImage::width.
Referenced by picture_ximage2asimage().
int asimage_decode_line | ( | ASImage * | im, | |
ColorPart | color, | |||
CARD32 * | to_buf, | |||
unsigned int | y, | |||
unsigned int | skip, | |||
unsigned int | out_width | |||
) |
Definition at line 892 of file asimage.c.
References ASImage::channels, fetch_data32(), fprintf(), i, LOCAL_DEBUG_CALLER_OUT, LOCAL_DEBUG_OUT, NULL, and ASImage::width.
Referenced by asimage2alpha_ximage(), asimage2ximage_ext(), asimage_compare_line(), check_asimage_alpha(), and subimage2ximage().
static void asimage_destroy | ( | ASHashableValue | value, | |
void * | data | |||
) | [static] |
Definition at line 387 of file asimage.c.
References AS_ASSERT_NOTVAL, destroy_asimage(), free(), ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, and NULL.
Referenced by create_image_manager().
Definition at line 123 of file asimage.c.
References ASImage::alt, ASImage::ASImageAlternative::argb32, ARGB32_DEFAULT_BACK_COLOR, ASImage::back_color, forget_data(), free(), ASImage::height, i, ASImage::magic, MAGIC_ASIMAGE, ASImage::ASImageAlternative::mask_ximage, ASImage::name, NULL, ASImage::red, ASImage::ASImageAlternative::vector, and ASImage::ASImageAlternative::ximage.
Referenced by asimage_replace(), asimage_start(), and destroy_asimage().
unsigned int asimage_print_line | ( | ASImage * | im, | |
ColorPart | color, | |||
unsigned int | y, | |||
unsigned long | verbosity | |||
) |
Definition at line 859 of file asimage.c.
References AS_ASSERT, ASImage::channels, ASImage::height, IC_NUM_CHANNELS, NULL, and print_storage_slot().
Referenced by copy_asimage_lines(), get_asimage_channel_rects(), and print_asimage().
Definition at line 209 of file asimage.c.
References ASIM_NAME_IS_FILENAME, ASIM_NO_COMPRESSION, asimage_init(), False, ASImage::flags, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, name, NULL, ASImage::ref_count, set_flags, and True.
Referenced by reload_asimage_manager().
void asimage_start | ( | ASImage * | im, | |
unsigned int | width, | |||
unsigned int | height, | |||
unsigned int | compression | |||
) |
Definition at line 193 of file asimage.c.
References alloc_asimage_channels(), ASIM_NO_COMPRESSION, asimage_init(), set_flags, and True.
Referenced by create_asimage().
Definition at line 1032 of file asimage.c.
References ARGB32_ALPHA8, asimage_decode_line(), ASImage::back_color, ASVisual::BGR_mode, buf, get_default_asvisual(), ASImage::height, i, IC_ALPHA, NULL, prepare_scanline(), SCL_DO_ALPHA, and ASImage::width.
static ASImage* check_created_asimage | ( | ASImage * | im, | |
unsigned int | width, | |||
unsigned int | height | |||
) | [static] |
Definition at line 238 of file asimage.c.
References add_hash_item, AS_HASHABLE, ASIM_NO_COMPRESSION, create_ashash, ASImage::flags, free(), get_flags, ASImage::height, NULL, pointer_hash_value, show_error, show_progress, and ASImage::width.
Referenced by create_asimage().
ASImage* clone_asimage | ( | ASImage * | src, | |
ASFlagType | filter | |||
) |
Definition at line 1172 of file asimage.c.
References AS_ASSERT, ASIM_DATA_NOT_USEFUL, create_asimage(), dup_data(), get_flags, i, IC_NUM_CHANNELS, NULL, set_flags, SHOW_TIME, START_TIME, and x01.
Referenced by TASImage::Clone(), commit_xml_image_built(), file2ASImage_extra(), TASImage::FromPad(), handle_asxml_tag_background(), TASImage::operator=(), pad_asimage(), and TASImage::TASImage().
Definition at line 938 of file asimage.c.
References AS_ASSERT, dup_data(), forget_data(), i, IC_NUM_CHANNELS, LOCAL_DEBUG_OUT, MIN, and NULL.
void copy_asimage_lines | ( | ASImage * | dst, | |
unsigned int | offset_dst, | |||
ASImage * | src, | |||
unsigned int | offset_src, | |||
unsigned int | nlines, | |||
ASFlagType | filter | |||
) |
Definition at line 957 of file asimage.c.
References AS_ASSERT, asimage_print_line(), dup_data(), forget_data(), get_flags, height, i, IC_ALPHA, IC_NUM_CHANNELS, LOCAL_DEBUG_OUT, NULL, VRB_EVERYTHING, VRB_LINE_SUMMARY, and x01.
Referenced by pad_asimage().
ASImage* create_asimage | ( | unsigned int | width, | |
unsigned int | height, | |||
unsigned int | compression | |||
) |
Definition at line 261 of file asimage.c.
References asimage_start(), check_created_asimage(), and safecalloc.
Referenced by TASImage::Bevel(), bitmap2asimage(), TASImage::Blur(), clone_asimage(), convert_argb2ASImage(), create_destination_image(), create_xpm_image(), TASImage::Crop(), DIB2ASImage(), draw_text_internal(), TASImage::DrawBox(), TASImage::DrawRectangle(), TASImage::DrawText(), TASImage::FillRectangle(), gif2ASImage(), TASImage::Gray(), handle_asxml_tag_text(), TASImage::HSV(), jpeg2ASImage(), TASImage::Pad(), picture_ximage2asimage(), pixmap2ximage(), png2ASImage_int(), ppm2ASImage(), read_bmp_image(), read_xcf_hierarchy(), subimage2ximage(), TASImage::TASImage(), tga2ASImage(), tiff2ASImage(), and TASImage::Vectorize().
ASImageLayer* create_image_layers | ( | int | count | ) |
ASImageManager* create_image_manager | ( | struct ASImageManager * | reusable_memory, | |
double | gamma, | |||
... | ||||
) |
Definition at line 405 of file asimage.c.
References asimage_destroy(), create_ashash, ASImageManager::gamma, i, ASImageManager::image_hash, MAX_SEARCH_PATHS, mystrdup, NULL, safecalloc, ASImageManager::search_path, string_compare, and string_hash_value.
Referenced by create_generic_imageman().
void destroy_asgradient | ( | ASGradient ** | pgrad | ) |
void destroy_asimage | ( | ASImage ** | im | ) |
Definition at line 269 of file asimage.c.
References AS_ASSERT_NOTVAL, AS_HASHABLE, asimage_init(), False, free(), NULL, print_asimage_func(), remove_hash_item, show_error, show_progress, True, and ASImage::width.
Referenced by adjust_asimage_hsv(), asimage_destroy(), TASImage::Bevel(), blur_asimage_gauss(), ClassImp(), color2alpha_asimage(), convert_argb2ASImage(), copyshade_drawable_area(), TASImage::CreateThumbnail(), TASImage::Crop(), cut_pixmap(), destroy_image_layers(), direntry2ASImageListEntry(), TASImage::DrawText(), file2pixmap(), fill_with_darkened_background(), fill_with_pixmapped_background(), flip_asimage(), free_xcf_hierarchy(), get_thumbnail_asimage(), TASImage::Gradient(), TASImage::Image2Drawable(), make_gradient(), mirror_asimage(), pad_asimage(), TASImage::Paint(), TASPaletteEditor::PaintPalette::Paint(), pixelize_asimage(), release_asimage(), reload_asimage_manager(), safe_asimage_destroy(), scale_asimage(), scale_asimage2(), scale_pixmap(), slice_asimage2(), subimage2ximage(), tga2ASImage(), tiff2ASImage(), and tile_asimage().
void destroy_image_layers | ( | register ASImageLayer * | l, | |
int | count, | |||
Bool | reusable | |||
) |
Definition at line 772 of file asimage.c.
References destroy_asimage(), free(), i, and release_asimage().
void destroy_image_manager | ( | struct ASImageManager * | imman, | |
Bool | reusable | |||
) |
Definition at line 435 of file asimage.c.
References destroy_ashash, free(), i, ASImageManager::image_hash, MAX_SEARCH_PATHS, and ASImageManager::search_path.
Referenced by compose_asimage_xml_from_doc().
Definition at line 514 of file asimage.c.
References AS_ASSERT, AS_ASSERT_NOTVAL, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, NULL, ASImage::ref_count, show_debug, and show_error.
Referenced by commit_xml_image_built(), and get_thumbnail_asimage().
ASImage* fetch_asimage | ( | ASImageManager * | imageman, | |
const char * | name | |||
) |
Definition at line 502 of file asimage.c.
References query_asimage(), and ASImage::ref_count.
Referenced by build_image_from_xml(), get_asimage(), get_thumbnail_asimage(), handle_asxml_tag_recall(), and handle_asxml_tag_text().
ASGradient* flip_gradient | ( | ASGradient * | orig, | |
int | flip | |||
) |
Definition at line 682 of file asimage.c.
References ASGradient::color, False, FLIP_MASK, FLIP_UPSIDEDOWN, FLIP_VERTICAL, get_flags, GRADIENT_BottomLeft2TopRight, GRADIENT_Left2Right, GRADIENT_Top2Bottom, GRADIENT_TopLeft2BottomRight, i, k, ASGradient::npoints, NULL, ASGradient::offset, safecalloc, safemalloc, True, type, and ASGradient::type.
void flush_asimage_cache | ( | ASImage * | im | ) |
Definition at line 155 of file asimage.c.
References ASImage::alt, ASImage::ASImageAlternative::mask_ximage, NULL, and ASImage::ASImageAlternative::ximage.
void forget_asimage | ( | ASImage * | im | ) |
Definition at line 557 of file asimage.c.
References AS_ASSERT, False, ASImageManager::image_hash, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, NULL, ASImage::ref_count, and remove_hash_item.
Referenced by compose_asimage_xml_from_doc(), and file2ASImage_extra().
void forget_asimage_name | ( | ASImageManager * | imman, | |
const char * | name | |||
) |
Definition at line 600 of file asimage.c.
References AS_ASSERT, AS_HASHABLE, False, ASImageManager::image_hash, NULL, and remove_hash_item.
ASFlagType get_asimage_chanmask | ( | ASImage * | im | ) |
Definition at line 1011 of file asimage.c.
References AS_ASSERT, ASImage::channels, ASImage::height, height, IC_NUM_CHANNELS, mask, set_flags, x01, and y.
Referenced by ASImage2gif(), ASImage2png_int(), ASImage2tiff(), file2pixmap(), and flip_asimage().
XRectangle* get_asimage_channel_rects | ( | ASImage * | src, | |
int | channel, | |||
unsigned int | threshold, | |||
unsigned int * | rects_count_ret | |||
) |
Definition at line 1203 of file asimage.c.
References ARGB32_CHAN8, AS_ASSERT, asimage_print_line(), fprintf(), height, i, IC_NUM_CHANNELS, k, l, NULL, realloc(), safemalloc, start, START_TIME, threshold_stored_data(), VRB_LINE_CONTENT, and y.
static CARD8* get_compression_buffer | ( | size_t | size | ) | [inline, static] |
Definition at line 97 of file asimage.c.
References __as_compression_buffer, __as_compression_buffer_len, and realloc().
ASVisual* get_default_asvisual | ( | ) |
Definition at line 87 of file asimage.c.
References __as_default_asvisual, and __as_dummy_asvisual.
Referenced by asim_asxml_var_init(), asim_get_drawable_size(), asim_parse_argb_color(), ASImage2bmp(), center_pixmap(), CenterPixmap(), check_asimage_alpha(), CopyAndShadeArea(), copyshade_drawable_area(), cut_pixmap(), CutPixmap(), CutWinPixmap(), destroy_asvisual(), fill_with_darkened_background(), FillPixmapWithTile(), GetRootDimensions(), GetRootPixmap(), GetWinPosition(), grow_pixmap(), GrowPixmap(), ScalePixmap(), ShadePixmap(), ShadeTiledPixmap(), start_image_decoding(), start_image_output(), and ValidatePixmap().
void init_image_layers | ( | register ASImageLayer * | l, | |
int | count | |||
) |
Definition at line 748 of file asimage.c.
References alphablend_scanlines().
Referenced by TASImage::Bevel(), create_image_layers(), TASImage::CreateThumbnail(), TASImage::DrawText(), fill_with_pixmapped_background(), TASImage::Gradient(), handle_asxml_tag_bevel(), handle_asxml_tag_text(), and TASImage::Merge().
Definition at line 918 of file asimage.c.
References AS_ASSERT, forget_data(), i, IC_NUM_CHANNELS, MIN, and NULL.
Referenced by TASImage::DrawText(), and handle_asxml_tag_text().
void print_asimage | ( | ASImage * | im, | |
int | flags, | |||
char * | func, | |||
int | line | |||
) |
Definition at line 869 of file asimage.c.
References asimage_print_line(), fprintf(), ASImage::height, IC_ALPHA, IC_BLUE, IC_GREEN, IC_RED, k, and ASImage::width.
Referenced by colormap_asimage().
void print_asimage_func | ( | ASHashableValue | value | ) |
Definition at line 293 of file asimage.c.
References ASImage::alt, ASImage::ASImageAlternative::argb32, ASImage::back_color, ASImage::blue, ASImage::flags, fprintf(), ASImage::green, ASImage::height, ASImage::imageman, k, ASImage::magic, MAGIC_ASIMAGE, ASImage::ASImageAlternative::mask_ximage, ASImage::name, NULL, query_storage_slot(), ASImage::red, ASImage::ref_count, ASStorageSlot::size, ASImage::ASImageAlternative::vector, ASImage::width, and ASImage::ASImageAlternative::ximage.
Referenced by destroy_asimage(), and print_asimage_registry().
void print_asimage_manager | ( | ASImageManager * | imageman | ) |
void print_asimage_registry | ( | ) |
void print_component | ( | register CARD32 * | data, | |
int | nonsense, | |||
int | len | |||
) |
void purge_asimage_registry | ( | ) |
ASImage* query_asimage | ( | ASImageManager * | imageman, | |
const char * | name | |||
) | [inline] |
Definition at line 485 of file asimage.c.
References AS_ASSERT, AS_HASHABLE, ASH_Success, get_hash_item, ASImageManager::image_hash, ASImage::magic, MAGIC_ASIMAGE, NULL, and ASHashData::vptr.
Referenced by fetch_asimage(), and get_thumbnail_asimage().
void raw2scanline | ( | register CARD8 * | row, | |
ASScanline * | buf, | |||
CARD8 * | gamma_table, | |||
unsigned int | width, | |||
Bool | grayscale, | |||
Bool | do_alpha | |||
) |
Definition at line 1451 of file asimage.c.
Referenced by bitmap2asimage(), jpeg2ASImage(), png2ASImage_int(), and ppm2ASImage().
int release_asimage | ( | ASImage * | im | ) | [inline] |
Definition at line 536 of file asimage.c.
References AS_ASSERT, ASH_Success, destroy_asimage(), ASImageManager::image_hash, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, NULL, ASImage::ref_count, remove_hash_item, and True.
Referenced by build_image_from_xml(), destroy_image_layers(), file2ASImage_extra(), handle_asxml_tag_text(), and release_asimage_by_name().
int release_asimage_by_name | ( | ASImageManager * | imageman, | |
char * | name | |||
) |
Definition at line 633 of file asimage.c.
References AS_ASSERT, AS_HASHABLE, ASH_Success, get_hash_item, ASImageManager::image_hash, NULL, release_asimage(), and ASHashData::vptr.
Referenced by handle_asxml_tag_release().
static void release_compression_buffer | ( | CARD8 * | ptr | ) | [inline, static] |
void relocate_asimage | ( | ASImageManager * | to_imageman, | |
ASImage * | im | |||
) |
Definition at line 573 of file asimage.c.
References add_hash_item, AS_ASSERT, AS_HASHABLE, ASH_Success, False, ASImageManager::image_hash, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, NULL, ASImage::ref_count, and remove_hash_item.
int safe_asimage_destroy | ( | ASImage * | im | ) | [inline] |
Definition at line 609 of file asimage.c.
References AS_ASSERT, destroy_asimage(), ASImageManager::image_hash, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, ASImage::name, NULL, ASImage::ref_count, remove_hash_item, and True.
Referenced by build_image_from_xml(), commit_xml_image_built(), compose_asimage_xml_from_doc(), handle_asxml_tag_img(), handle_asxml_tag_text(), and unref_asimage_list_entry().
Definition at line 1085 of file asimage.c.
References ASImage::alt, False, ASImage::height, i, NULL, safemalloc, True, ASImage::ASImageAlternative::vector, and ASImage::width.
Referenced by create_asimage_from_vector().
Bool store_asimage | ( | ASImageManager * | imageman, | |
ASImage * | im, | |||
const char * | name | |||
) |
Definition at line 453 of file asimage.c.
References add_hash_item, AS_ASSERT, AS_ASSERT_NOTVAL, AS_HASHABLE, ASH_Success, False, free(), ASImageManager::image_hash, ASImage::imageman, ASImage::magic, MAGIC_ASIMAGE, mystrdup, ASImage::name, NULL, and ASImage::ref_count.
Referenced by commit_xml_image_built(), get_asimage(), and get_thumbnail_asimage().
ASVectorPalette* vectorize_asimage | ( | ASImage * | im, | |
unsigned int | max_colors, | |||
unsigned int | dither, | |||
int | opaque_threshold | |||
) |
Definition at line 1104 of file asimage.c.
References ASImage::alt, b, ASColormapEntry::blue, ASVectorPalette::channels, colormap_asimage(), ASColormap::count, destroy_colormap(), ASColormap::entries, free(), g, ASColormapEntry::green, ASImage::height, i, IC_ALPHA, IC_BLUE, IC_GREEN, IC_RED, INDEX_SHIFT_BLUE, INDEX_SHIFT_GREEN, INDEX_SHIFT_RED, j, MAKE_INDEXED_COLOR24, ASVectorPalette::npoints, NULL, ASVectorPalette::points, QUANT_ERR_BITS, ASColormapEntry::red, safecalloc, safemalloc, True, ASImage::ASImageAlternative::vector, ASImage::width, x, and y.
CARD8* __as_compression_buffer = NULL [static] |
size_t __as_compression_buffer_len = 0 [static] |
ASVisual* __as_default_asvisual = &__as_dummy_asvisual [static] |
Definition at line 71 of file asimage.c.
Referenced by _set_default_asvisual(), and get_default_asvisual().
ASVisual __as_dummy_asvisual = {0} [static] |
Definition at line 70 of file asimage.c.
Referenced by _set_default_asvisual(), and get_default_asvisual().
Bool asimage_use_mmx = True |