Freeciv-3.1
|
#include "log.h"
#include "mem.h"
#include "shared.h"
#include "colors.h"
#include "mapview.h"
#include "sprite.h"
Go to the source code of this file.
Macros | |
#define | MAX_FILE_EXTENSIONS 50 |
#define | MULTI_UNc(a, b) ((a * b - (b / 2)) / 0xFF) |
#define | DIV_UNc(a, b) (((guint16) (a) * 0xFF + ((b) / 2)) / (b)) |
Functions | |
struct sprite * | crop_sprite (struct sprite *source, int x, int y, int width, int height, struct sprite *mask, int mask_offset_x, int mask_offset_y, float scale, bool smooth) |
struct sprite * | create_sprite (int width, int height, struct color *pcolor) |
void | get_sprite_dimensions (struct sprite *sprite, int *width, int *height) |
const char ** | gfx_fileextensions (void) |
static void | surf_destroy_callback (void *data) |
struct sprite * | load_gfxfile (const char *filename) |
void | free_sprite (struct sprite *s) |
struct sprite * | sprite_scale (struct sprite *src, int new_w, int new_h) |
void | sprite_get_bounding_box (struct sprite *sprite, int *start_x, int *start_y, int *end_x, int *end_y) |
struct sprite * | crop_blankspace (struct sprite *s) |
GdkPixbuf * | sprite_get_pixbuf (struct sprite *sprite) |
GdkPixbuf * | surface_get_pixbuf (cairo_surface_t *surf, int width, int height) |
GdkPixbuf * | create_extra_pixbuf (const struct extra_type *pextra) |
struct sprite * | load_gfxnumber (int num) |
#define DIV_UNc | ( | a, | |
b | |||
) | (((guint16) (a) * 0xFF + ((b) / 2)) / (b)) |
#define MULTI_UNc | ( | a, | |
b | |||
) | ((a * b - (b / 2)) / 0xFF) |
GdkPixbuf * create_extra_pixbuf | ( | const struct extra_type * | pextra | ) |
struct sprite * crop_sprite | ( | struct sprite * | source, |
int | x, | ||
int | y, | ||
int | width, | ||
int | height, | ||
struct sprite * | mask, | ||
int | mask_offset_x, | ||
int | mask_offset_y, | ||
float | scale, | ||
bool | smooth | ||
) |
Create a new sprite by cropping and taking only the given portion of the image.
source gives the sprite that is to be cropped.
x,y, width, height gives the rectangle to be cropped. The pixel at position of the source sprite will be at (0,0) in the new sprite, and the new sprite will have dimensions (width, height).
mask gives an additional mask to be used for clipping the new sprite.
mask_offset_x, mask_offset_y is the offset of the mask relative to the origin of the source image. The pixel at (mask_offset_x,mask_offset_y) in the mask image will be used to clip pixel (0,0) in the source image which is pixel (-x,-y) in the new image.
scale gives scale of new tileset smooth means if scaling might be bilinear, if set to false use nearest neighbor
void free_sprite | ( | struct sprite * | s | ) |
void get_sprite_dimensions | ( | struct sprite * | sprite, |
int * | width, | ||
int * | height | ||
) |
const char ** gfx_fileextensions | ( | void | ) |
struct sprite * load_gfxfile | ( | const char * | filename | ) |
Load the given graphics file into a sprite. This function loads an entire image file, which may later be broken up into individual sprites with crop_sprite().
struct sprite * load_gfxnumber | ( | int | num | ) |
void sprite_get_bounding_box | ( | struct sprite * | sprite, |
int * | start_x, | ||
int * | start_y, | ||
int * | end_x, | ||
int * | end_y | ||
) |
GdkPixbuf * sprite_get_pixbuf | ( | struct sprite * | sprite | ) |
|
static |