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);
66 tex->
store(pnm_image);
73 if (txafile_cat.is_debug()) {
76 <<
"Not matched: " << name <<
"\n";
79 <<
"Matched: " << name <<
"\n";
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);
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";
const Filename & get_fullpath() const
Returns the fullpath that has been set.
bool resolve_filename(Filename &filename, const DSearchPath &searchpath, const string &default_extension=string()) const
Searches the given search path for the filename.
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.
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...
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.
int get_y_size() const
Returns the size of the image file in pixels in the Y direction.
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.
bool store(PNMImage &pnmimage) const
Saves the texture to the indicated PNMImage, but does not write it to disk.
const Filename & get_alpha_fullpath() const
Returns the alpha_fullpath that has been set.
void register_filter(TexturePoolFilter *filter)
Records a TexturePoolFilter object that may operate on texture images as they are loaded from disk...
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...
const TextureProperties & get_properties() const
Returns the grouping properties of the image.
bool exists(const Filename &filename) const
Convenience function; returns true if the named file exists.
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...
The name of a file, such as a texture file or an Egg file.
int get_x_size() const
Returns the size of the image file in pixels in the X direction.
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.
int get_num_channels() const
Returns the number of channels of the image.
void set_aux_data(const string &key, TypedReferenceCount *aux_data)
Records an arbitrary object in the Texture, associated with a specified key.
This is a texture image reference as it appears in an egg file: the source image of the texture...
string get_basename_wo_extension() const
Returns the basename part of the filename, without the file extension.
static TexturePool * get_global_ptr()
Initializes and/or returns the global pointer to the one TexturePool object in the system...
bool load(const PNMImage &pnmimage, const LoaderOptions &options=LoaderOptions())
Replaces the texture with the indicated image.
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.
This represents the .txa file (usually textures.txa) that contains the user instructions for resizing...
bool match_texture(TextureImage *texture) const
Searches for a matching line in the .txa file for the given texture and applies its specifications...
const Filename & get_filename() const
Returns the filename that has been set.
This is the set of characteristics of a texture that, if different from another texture, prevent the two textures from sharing a PaletteImage.