15 #include "txaFileFilter.h"
16 #include "palettizer.h"
18 #include "textureImage.h"
19 #include "sourceTextureImage.h"
20 #include "texturePool.h"
22 #include "configVariableFilename.h"
23 #include "virtualFileSystem.h"
24 #include "config_util.h"
26 NotifyCategoryDeclNoExport(txafile);
27 NotifyCategoryDef(txafile,
"");
31 Configure(config_txaFileFilter);
32 ConfigureFn(config_txaFileFilter) {
33 TxaFileFilter::init_type();
39 TxaFile *TxaFileFilter::_txa_file;
40 bool TxaFileFilter::_got_txa_file;
61 tex_image.set_name(name);
64 (tex->get_fullpath(), tex->get_alpha_fullpath(), 0);
66 tex->store(pnm_image);
72 bool matched = _txa_file->match_texture(&tex_image);
73 if (txafile_cat.is_debug()) {
76 <<
"Not matched: " << name <<
"\n";
79 <<
"Matched: " << name <<
"\n";
96 PT_EggTexture egg_tex =
new EggTexture(tex->get_name(), tex->get_fullpath());
100 egg_tex->set_format(props._format);
101 egg_tex->set_minfilter(props._minfilter);
102 egg_tex->set_minfilter(props._magfilter);
103 egg_tex->set_anisotropic_degree(props._anisotropic_degree);
105 tex->set_aux_data(
"egg", egg_tex);
127 _got_txa_file =
true;
130 (
"txa-file",
Filename(
"textures.txa"),
131 PRC_DESC(
"Specify the name of the txa file to load when the txafile texture filter"
137 if (!vfs->
exists(filename)) {
138 txafile_cat.warning()
139 <<
"Filename " << filename <<
" not found.\n";
143 if (ifile == (istream *)NULL) {
144 txafile_cat.warning()
145 <<
"Filename " << filename <<
" cannot be read.\n";
147 if (!_txa_file->
read(*ifile, filename)) {
148 txafile_cat.warning()
149 <<
"Syntax errors in " << filename <<
"\n";
152 <<
"Read " << filename <<
"\n";
The name of this class derives from the fact that we originally implemented it as a layer on top of t...
void pre_txa_file()
Updates any internal state prior to reading the .txa file.
This is the main engine behind egg-palettize.
This is a convenience class to specialize ConfigVariable as a Filename type.
A hierarchy of directories and files that appears to be one continuous file system, even though the files may originate from several different sources that may not be related to the actual OS's file system.
int get_num_channels() const
Returns the number of channels of the image.
SourceTextureImage * get_source(const Filename &filename, const Filename &alpha_filename, int alpha_file_channel)
Returns the SourceTextureImage corresponding to the given filename(s).
Defines a texture map that may be applied to geometry.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
void set_text()
Indicates that the filename represents a text file.
void register_filter(TexturePoolFilter *filter)
Records a TexturePoolFilter object that may operate on texture images as they are loaded from disk...
int get_y_size() const
Returns the size of the image file in pixels in the Y direction.
static void close_read_file(istream *stream)
Closes a file opened by a previous call to open_read_file().
void quick_filter_from(const PNMImage ©, int xborder=0, int yborder=0)
Resizes from the given image, with a fixed radius of 0.5.
This is an abstract base class, a placeholder for any number of different classes that may wish to im...
The name of a file, such as a texture file or an Egg file.
const Filename & get_filename() const
Returns the primary filename of the image file.
void set_header(const PNMImageHeader &header)
Sets the header information associated with this image, as if it were loaded from the disk...
static VirtualFileSystem * get_global_ptr()
Returns the default global VirtualFileSystem.
bool resolve_filename(Filename &filename, const DSearchPath &searchpath, const string &default_extension=string()) const
Searches the given search path for the filename.
This is a texture image reference as it appears in an egg file: the source image of the texture...
EggRenderMode::AlphaMode get_alpha_mode() const
Returns the alpha mode that should be used to render objects with this texture, as specified by the u...
istream * open_read_file(const Filename &filename, bool auto_unwrap) const
Convenience function; returns a newly allocated istream if the file exists and can be read...
int get_x_size() const
Returns the size of the image file in pixels in the X direction.
static TexturePool * get_global_ptr()
Initializes and/or returns the global pointer to the one TexturePool object in the system...
bool exists(const Filename &filename) const
Convenience function; returns true if the named file exists.
string get_basename_wo_extension() const
Returns the basename part of the filename, without the file extension.
void set_source_image(const PNMImage &image)
Accepts the indicated source image as if it had been read from disk.
bool read(istream &in, const string &filename)
Reads the indicated stream, and returns true if successful, or false if there is an error...
This represents a single source texture that is referenced by one or more egg files.
void post_txa_file()
Once the .txa file has been read and the TextureImage matched against it, considers applying the requ...
This is the preferred interface for loading textures from image files.
TypeHandle is the identifier used to differentiate C++ class types.
const TextureProperties & get_properties() const
Returns the grouping properties of the image.
This represents the .txa file (usually textures.txa) that contains the user instructions for resizing...
This is the set of characteristics of a texture that, if different from another texture, prevent the two textures from sharing a PaletteImage.