Freeciv-3.3
Loading...
Searching...
No Matches
Functions
canvas.cpp File Reference
#include <QFontMetrics>
#include <QPainter>
#include <QPainterPath>
#include "canvas.h"
#include "colors.h"
#include "fc_client.h"
#include "fonts.h"
#include "qtg_cxxside.h"
#include "sprite.h"

Go to the source code of this file.

Functions

static QFontget_font (enum client_font font)
 
struct canvasqtg_canvas_create (int width, int height)
 
void qtg_canvas_free (struct canvas *store)
 
void qtg_canvas_set_zoom (struct canvas *store, float zoom)
 
bool qtg_has_zoom_support ()
 
void qtg_canvas_mapview_init (struct canvas *store)
 
void qtg_canvas_copy (struct canvas *dest, struct canvas *src, int src_x, int src_y, int dest_x, int dest_y, int width, int height)
 
void pixmap_copy (QPixmap *dest, QPixmap *src, int src_x, int src_y, int dest_x, int dest_y, int width, int height)
 
void image_copy (QImage *dest, QImage *src, int src_x, int src_y, int dest_x, int dest_y, int width, int height)
 
void qtg_canvas_put_sprite (struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *sprite, int offset_x, int offset_y, int width, int height)
 
void qtg_canvas_put_sprite_full (struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *sprite)
 
void qtg_canvas_put_sprite_full_scaled (struct canvas *pcanvas, int canvas_x, int canvas_y, int canvas_w, int canvas_h, struct sprite *sprite)
 
void qtg_canvas_put_sprite_fogged (struct canvas *pcanvas, int canvas_x, int canvas_y, struct sprite *psprite, bool fog, int fog_x, int fog_y)
 
void qtg_canvas_put_rectangle (struct canvas *pcanvas, struct color *pcolor, int canvas_x, int canvas_y, int width, int height)
 
void qtg_canvas_fill_sprite_area (struct canvas *pcanvas, struct sprite *psprite, struct color *pcolor, int canvas_x, int canvas_y)
 
void qtg_canvas_put_line (struct canvas *pcanvas, struct color *pcolor, enum line_type ltype, int start_x, int start_y, int dx, int dy)
 
void qtg_canvas_put_curved_line (struct canvas *pcanvas, struct color *pcolor, enum line_type ltype, int start_x, int start_y, int dx, int dy)
 
void qtg_get_text_size (int *width, int *height, enum client_font font, const char *text)
 
void qtg_canvas_put_text (struct canvas *pcanvas, int canvas_x, int canvas_y, enum client_font font, struct color *pcolor, const char *text)
 
QRect zealous_crop_rect (QImage &p)
 

Function Documentation

◆ get_font()

QFont * get_font ( client_font  font)
static

◆ image_copy()

void image_copy ( QImage dest,
QImage src,
int  src_x,
int  src_y,
int  dest_x,
int  dest_y,
int  width,
int  height 
)

Copies an area from the source image to the destination image.

Definition at line 120 of file canvas.cpp.

Referenced by minimap_thread::run().

◆ pixmap_copy()

void pixmap_copy ( QPixmap dest,
QPixmap src,
int  src_x,
int  src_y,
int  dest_x,
int  dest_y,
int  width,
int  height 
)

Copies an area from the source pixmap to the destination pixmap.

Definition at line 101 of file canvas.cpp.

Referenced by impr_item::enterEvent(), impr_item::impr_item(), impr_item::leaveEvent(), minimap_thread::run(), progress_bar::set_pixmap(), and progress_bar::set_pixmap().

◆ qtg_canvas_copy()

void qtg_canvas_copy ( struct canvas dest,
struct canvas src,
int  src_x,
int  src_y,
int  dest_x,
int  dest_y,
int  width,
int  height 
)

Copies an area from the source canvas to the destination canvas.

Definition at line 79 of file canvas.cpp.

Referenced by city_map::set_pixmap(), and setup_gui_funcs().

◆ qtg_canvas_create()

struct canvas * qtg_canvas_create ( int  width,
int  height 
)

◆ qtg_canvas_fill_sprite_area()

void qtg_canvas_fill_sprite_area ( struct canvas pcanvas,
struct sprite psprite,
struct color pcolor,
int  canvas_x,
int  canvas_y 
)

Fill the area covered by the sprite with the given color.

Definition at line 234 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_free()

void qtg_canvas_free ( struct canvas store)

◆ qtg_canvas_mapview_init()

void qtg_canvas_mapview_init ( struct canvas store)

Initialize canvas as mapview.

Definition at line 72 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_curved_line()

void qtg_canvas_put_curved_line ( struct canvas pcanvas,
struct color pcolor,
enum line_type  ltype,
int  start_x,
int  start_y,
int  dx,
int  dy 
)

Draw a 1-pixel-width colored curved line onto the canvas.

Definition at line 286 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_line()

void qtg_canvas_put_line ( struct canvas pcanvas,
struct color pcolor,
enum line_type  ltype,
int  start_x,
int  start_y,
int  dx,
int  dy 
)

Draw a 1-pixel-width colored line onto the canvas.

Definition at line 247 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_rectangle()

void qtg_canvas_put_rectangle ( struct canvas pcanvas,
struct color pcolor,
int  canvas_x,
int  canvas_y,
int  width,
int  height 
)

Draw a filled-in colored rectangle onto canvas.

Definition at line 205 of file canvas.cpp.

Referenced by qtg_canvas_fill_sprite_area(), and setup_gui_funcs().

◆ qtg_canvas_put_sprite()

void qtg_canvas_put_sprite ( struct canvas pcanvas,
int  canvas_x,
int  canvas_y,
struct sprite sprite,
int  offset_x,
int  offset_y,
int  width,
int  height 
)

Draw some or all of a sprite onto the canvas.

Definition at line 139 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_sprite_fogged()

void qtg_canvas_put_sprite_fogged ( struct canvas pcanvas,
int  canvas_x,
int  canvas_y,
struct sprite psprite,
bool  fog,
int  fog_x,
int  fog_y 
)

Draw a full sprite onto the canvas. If "fog" is specified draw it with fog.

Definition at line 188 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_sprite_full()

void qtg_canvas_put_sprite_full ( struct canvas pcanvas,
int  canvas_x,
int  canvas_y,
struct sprite sprite 
)

Draw a full sprite onto the canvas.

Definition at line 154 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_sprite_full_scaled()

void qtg_canvas_put_sprite_full_scaled ( struct canvas pcanvas,
int  canvas_x,
int  canvas_y,
int  canvas_w,
int  canvas_h,
struct sprite sprite 
)

Draw a full sprite onto the canvas, scaled to the canvas size.

Definition at line 168 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_put_text()

void qtg_canvas_put_text ( struct canvas pcanvas,
int  canvas_x,
int  canvas_y,
enum client_font  font,
struct color pcolor,
const char text 
)

Draw the text onto the canvas in the given color and font. The canvas position does not account for the ascent of the text; this function must take care of this manually. The text will not be nullptr but may be empty.

Definition at line 354 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_canvas_set_zoom()

void qtg_canvas_set_zoom ( struct canvas store,
float  zoom 
)

Set canvas zoom for future drawing operations.

Definition at line 56 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_get_text_size()

void qtg_get_text_size ( int width,
int height,
enum client_font  font,
const char text 
)

Return the size of the given text in the given font. This size should include the ascent and descent of the text. Either of width or height may be nullptr in which case those values simply shouldn't be filled out.

Definition at line 331 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ qtg_has_zoom_support()

bool qtg_has_zoom_support ( )

This gui has zoom support.

Definition at line 64 of file canvas.cpp.

Referenced by setup_gui_funcs().

◆ zealous_crop_rect()

QRect zealous_crop_rect ( QImage p)

Return rectangle containing pure image (crops transparency)

Definition at line 419 of file canvas.cpp.

Referenced by units_select::create_pixmap(), hud_unit_combat::init_images(), progress_bar::set_pixmap(), unit_item::unit_item(), unittype_item::unittype_item(), and hud_units::update_actions().