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

Referenced by editbar_reload_tileset(), get_tool_value_pixbuf(), and select_tgt_extra().

◆ 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.

Referenced by create_frame(), create_line(), create_plr_sprite(), load_gfxnumber(), and pixmap_put_overlay_tile_draw().

◆ 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.

Referenced by create_races_dialog().

◆ 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)

◆ 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.

Referenced by load_gfx_file(), load_sdl2_gfx_file(), load_sdl3_gfx_file(), ordered_gfx_fextensions(), themespec_gfx_filename(), and tilespec_gfx_filename().

◆ 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.

Referenced by create_main_page(), load_gfx_file(), load_sdl2_gfx_file(), and load_sdl3_gfx_file().

◆ load_gfxnumber()

struct sprite * load_gfxnumber ( int  num)

Return a sprite image of a number.

Definition at line 526 of file sprite.c.

Referenced by fill_sprite_array().

◆ 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.

Referenced by crop_blankspace(), get_flag(), meswin_dialog_refresh(), and update_max_unit_size().

◆ sprite_get_pixbuf()

GdkPixbuf * sprite_get_pixbuf ( struct sprite sprite)

◆ 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.

Referenced by cell_render_func(), create_main_page(), drag_begin(), and load_sprite().

◆ 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.

Referenced by load_gfxfile().

◆ surface_get_pixbuf()

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