Freeciv-3.3
Loading...
Searching...
No Matches
Macros | Functions
sprite.c File Reference
#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 spritecrop_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 spritecreate_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 spriteload_gfxfile (const char *filename, bool svgflag)
 
void free_sprite (struct sprite *s)
 
struct spritesprite_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 spritecrop_blankspace (struct sprite *s)
 
GdkPixbufsprite_get_pixbuf (struct sprite *sprite)
 
GdkPixbufsurface_get_pixbuf (cairo_surface_t *surf, int width, int height)
 
GdkPixbufcreate_extra_pixbuf (const struct extra_type *pextra)
 
GtkWidgetpicture_new_from_surface (cairo_surface_t *surf)
 
void picture_set_from_surface (GtkPicture *pic, cairo_surface_t *surf)
 
struct spriteload_gfxnumber (int num)
 

Macro Definition Documentation

◆ DIV_UNc

#define DIV_UNc (   a,
 
)    (((guint16) (a) * 0xFF + ((b) / 2)) / (b))

◆ MAX_FILE_EXTENSIONS

#define MAX_FILE_EXTENSIONS   50

Definition at line 29 of file sprite.c.

◆ MULTI_UNc

#define MULTI_UNc (   a,
 
)    ((a * b - (b / 2)) / 0xFF)

Function Documentation

◆ create_extra_pixbuf()

GdkPixbuf * create_extra_pixbuf ( const struct extra_type pextra)

Create a pixbuf containing a representative image for the given extra type, to be used as an icon in the GUI.

May return NULL on error.

NB: You must call g_object_unref on the non-NULL return value when you no longer need it.

Definition at line 494 of file sprite.c.

◆ create_sprite()

struct sprite * create_sprite ( int  width,
int  height,
struct color pcolor 
)

Create a sprite with the given height, width and color.

Definition at line 84 of file sprite.c.

◆ crop_blankspace()

struct sprite * crop_blankspace ( struct sprite s)

Crops all blankspace from a sprite (insofar as is possible as a rectangle)

Definition at line 386 of file sprite.c.

◆ crop_sprite()

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

Definition at line 52 of file sprite.c.

◆ free_sprite()

void free_sprite ( struct sprite s)

Free a sprite and all associated image data.

Definition at line 278 of file sprite.c.

◆ get_sprite_dimensions()

void get_sprite_dimensions ( struct sprite sprite,
int width,
int height 
)

Find the dimensions of the sprite.

Definition at line 107 of file sprite.c.

◆ gfx_fileextensions()

const char ** gfx_fileextensions ( void  )

Returns the filename extensions the client supports Order is important.

Definition at line 117 of file sprite.c.

◆ load_gfxfile()

struct sprite * load_gfxfile ( const char filename,
bool  svgflag 
)

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().

Definition at line 170 of file sprite.c.

◆ load_gfxnumber()

struct sprite * load_gfxnumber ( int  num)

Return a sprite image of a number.

Definition at line 568 of file sprite.c.

◆ picture_new_from_surface()

GtkWidget * picture_new_from_surface ( cairo_surface_t surf)

Create a GtkPicture from cairo surface.

Definition at line 526 of file sprite.c.

◆ picture_set_from_surface()

void picture_set_from_surface ( GtkPicture pic,
cairo_surface_t surf 
)

Set a GtkPicture from cairo surface.

Definition at line 544 of file sprite.c.

◆ sprite_get_bounding_box()

void sprite_get_bounding_box ( struct sprite sprite,
int start_x,
int start_y,
int end_x,
int end_y 
)

Method returns the bounding box of a sprite. It assumes a rectangular object/mask. The bounding box contains the border (pixel which have unset pixel as neighbors) pixel.

Definition at line 321 of file sprite.c.

◆ sprite_get_pixbuf()

GdkPixbuf * sprite_get_pixbuf ( struct sprite sprite)

Render a pixbuf from the sprite.

NOTE: the pixmap and mask of a sprite must not change after this function is called!

Definition at line 402 of file sprite.c.

◆ sprite_scale()

struct sprite * sprite_scale ( struct sprite src,
int  new_w,
int  new_h 
)

Scales a sprite. If the sprite contains a mask, the mask is scaled as as well.

Definition at line 291 of file sprite.c.

◆ surf_destroy_callback()

static void surf_destroy_callback ( void data)
static

Called when the cairo surface with freeciv allocated data is destroyed.

Definition at line 160 of file sprite.c.

◆ surface_get_pixbuf()

GdkPixbuf * surface_get_pixbuf ( cairo_surface_t surf,
int  width,
int  height 
)

Render a pixbuf from the cairo surface

Definition at line 418 of file sprite.c.