FLTK 1.3.0
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
Fl_Shared_Image.H
Go to the documentation of this file.
1
//
2
// "$Id: Fl_Shared_Image.H 8306 2011-01-24 17:04:22Z matt $"
3
//
4
// Shared image header file for the Fast Light Tool Kit (FLTK).
5
//
6
// Copyright 1998-2010 by Bill Spitzak and others.
7
//
8
// This library is free software; you can redistribute it and/or
9
// modify it under the terms of the GNU Library General Public
10
// License as published by the Free Software Foundation; either
11
// version 2 of the License, or (at your option) any later version.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Library General Public License for more details.
17
//
18
// You should have received a copy of the GNU Library General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21
// USA.
22
//
23
// Please report all bugs and problems on the following page:
24
//
25
// http://www.fltk.org/str.php
26
//
27
31
#ifndef Fl_Shared_Image_H
32
# define Fl_Shared_Image_H
33
34
# include "Fl_Image.H"
35
36
37
// Test function for adding new formats
38
typedef
Fl_Image
*(*Fl_Shared_Handler)(
const
char
*name,
uchar
*header,
39
int
headerlen);
40
41
// Shared images class.
49
class
FL_EXPORT
Fl_Shared_Image
:
public
Fl_Image
{
50
51
friend
class
Fl_JPEG_Image
;
52
friend
class
Fl_PNG_Image
;
53
54
protected
:
55
56
static
Fl_Shared_Image
**images_;
// Shared images
57
static
int
num_images_;
// Number of shared images
58
static
int
alloc_images_;
// Allocated shared images
59
static
Fl_Shared_Handler *handlers_;
// Additional format handlers
60
static
int
num_handlers_;
// Number of format handlers
61
static
int
alloc_handlers_;
// Allocated format handlers
62
63
const
char
*name_;
// Name of image file
64
int
original_;
// Original image?
65
int
refcount_;
// Number of times this image has been used
66
Fl_Image
*image_;
// The image that is shared
67
int
alloc_image_;
// Was the image allocated?
68
69
static
int
compare(
Fl_Shared_Image
**i0,
Fl_Shared_Image
**i1);
70
71
// Use get() and release() to load/delete images in memory...
72
Fl_Shared_Image
();
73
Fl_Shared_Image
(
const
char
*n,
Fl_Image
*img = 0);
74
virtual
~
Fl_Shared_Image
();
75
void
add();
76
void
update();
77
78
public
:
80
const
char
*
name
() {
return
name_; }
82
int
refcount
() {
return
refcount_; }
83
void
release();
84
void
reload();
85
86
virtual
Fl_Image
*
copy
(
int
W,
int
H);
87
Fl_Image
*
copy
() {
return
copy
(
w
(),
h
()); }
88
virtual
void
color_average
(
Fl_Color
c,
float
i);
89
virtual
void
desaturate
();
90
virtual
void
draw
(
int
X,
int
Y,
int
W,
int
H,
int
cx,
int
cy);
91
void
draw
(
int
X,
int
Y) {
draw
(X, Y,
w
(),
h
(), 0, 0); }
92
virtual
void
uncache
();
93
94
static
Fl_Shared_Image
*find(
const
char
*n,
int
W = 0,
int
H = 0);
95
static
Fl_Shared_Image
*
get
(
const
char
*n,
int
W = 0,
int
H = 0);
96
static
Fl_Shared_Image
**images();
97
static
int
num_images();
98
static
void
add_handler(Fl_Shared_Handler f);
99
static
void
remove_handler(Fl_Shared_Handler f);
100
};
101
102
//
103
// The following function is provided in the fltk_images library and
104
// registers all of the "extra" image file formats that are not part
105
// of the core FLTK library...
106
//
107
108
FL_EXPORT
extern
void
fl_register_images
();
109
110
#endif // !Fl_Shared_Image_H
111
112
//
113
// End of "$Id: Fl_Shared_Image.H 8306 2011-01-24 17:04:22Z matt $"
114
//
© 1998-2011 by Bill Spitzak and others.
© 1998-2011 by Bill Spitzak and others. Permission is granted to reproduce this manual or any portion for any purpose, provided this copyright and permission notice are preserved.