Crossfire Client, Trunk  R18666
Defines | Functions | Variables
/home/leaf/crossfire/client/trunk/gtk-v2/src/image.c File Reference
#include <config.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <png.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
#include "client-types.h"
#include "client.h"
#include "image.h"
#include "main.h"
#include "mapdata.h"
#include "gtk2proto.h"
#include "../../pixmaps/question.xpm"
Include dependency graph for image.c:

Go to the source code of this file.

Defines

#define BPP   4
#define MAX_ICON_SPACES   10
#define ROTATE_RIGHT(c)   if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1;

Functions

int create_and_rescale_image_from_data (Cache_Entry *ce, int pixmap_num, uint8 *rgba_data, int width, int height)
void addsmooth (uint16 face, uint16 smooth_face)
int associate_cache_entry (Cache_Entry *ce, int pixnum)
void reset_image_data (void)
void image_update_download_status (int start, int end, int total)
void get_map_image_size (int face, uint8 *w, uint8 *h)
void init_image_cache_data (void)

Variables

const char *const rcsid_gtk2_image_c = "$Id: image.c 12987 2010-04-27 03:50:58Z kbulgrien $"
GtkWidget * window_root
int image_size = DEFAULT_IMAGE_SIZE
struct {
   char *   name
   uint32   checksum
   uint8 *   png_data
   uint32   width
   uint32   height
private_cache [MAXPIXMAPNUM]
PixmapInfopixmaps [MAXPIXMAPNUM]
int last_face_num = 0
int have_new_image = 0

Detailed Description

Contains highlevel image related functions and mostly deals with the image caching, processing the image commands from the server, etc. It is gtk-specific as it returns gtk pixmaps.

Definition in file image.c.


Define Documentation

#define BPP   4

Definition at line 72 of file image.c.

#define MAX_ICON_SPACES   10

Definition at line 95 of file image.c.

#define ROTATE_RIGHT (   c)    if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1;

Definition at line 119 of file image.c.


Function Documentation

void addsmooth ( uint16  face,
uint16  smooth_face 
)

Referenced from common/commands.c

Parameters:
face
smooth_face

Definition at line 426 of file image.c.

Here is the caller graph for this function:

int associate_cache_entry ( Cache_Entry ce,
int  pixnum 
)

This functions associates image_data in the cache entry with the specific pixmap number. Currently, there is no failure condition, but there is the potential that in the future, we want to more closely look at the data and if it isn't valid, return the failure code.

Returns:
0 on success, -1 on failure.

Definition at line 439 of file image.c.

Here is the caller graph for this function:

int create_and_rescale_image_from_data ( Cache_Entry ce,
int  pixmap_num,
uint8 rgba_data,
int  width,
int  height 
)

Takes the pixmap to put the data into, as well as the rgba data (ie, already loaded with png_to_data). Scales and stores the relevant data into the pixmap structure.

Parameters:
cecan be NULL
pixmap_num
rgba_data
width
height
Returns:
1 on failure.

Definition at line 297 of file image.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void get_map_image_size ( int  face,
uint8 w,
uint8 h 
)
Parameters:
face
w
h

Definition at line 533 of file image.c.

void image_update_download_status ( int  start,
int  end,
int  total 
)

Draws a status bar showing where we our in terms of downloading all the image data. A few hacks: If start is 1, this is the first batch, so it means we need to create the appropriate status window. If start = end = total, it means were finished, so destroy the gui element.

Parameters:
startThe start value just sent to the server.
end
totalThe total number of images.

Definition at line 486 of file image.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void init_image_cache_data ( void  )

Initializes the data for image caching Create question mark to display in each supported rendering mode when an image is not cached. When image caching is enabled, if a needed image is not yet in the cache, a question mark image is displayed instead. The image displayed is unique to the display mode. This function creates the image to use when OpenGL mode is in effect.

Definition at line 566 of file image.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void reset_image_data ( void  )

Connecting to different servers, try to clear out any old images. Try to free the data to prevent memory leaks. This could be more clever, ie, if we're caching images and go to a new server and get a name, we should try to re-arrange our cache or the like.

Definition at line 451 of file image.c.

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

Definition at line 67 of file image.c.

int have_new_image = 0

Definition at line 79 of file image.c.

Definition at line 69 of file image.c.

Definition at line 63 of file image.c.

int last_face_num = 0

Definition at line 76 of file image.c.

char* name

Definition at line 66 of file image.c.

Definition at line 74 of file image.c.

Definition at line 68 of file image.c.

struct { ... } private_cache[MAXPIXMAPNUM]
const char* const rcsid_gtk2_image_c = "$Id: image.c 12987 2010-04-27 03:50:58Z kbulgrien $"

Definition at line 1 of file image.c.

Definition at line 69 of file image.c.

GtkWidget* window_root

In main.c

Definition at line 56 of file main.c.