Go to the documentation of this file.
14 #ifndef TEXTUREIMAGE_H
15 #define TEXTUREIMAGE_H
78 int alpha_file_channel);
104 void consider_grayscale();
105 void consider_alpha();
107 void remove_old_dests(
const Dests &a,
const Dests &b);
108 void copy_new_dests(
const Dests &a,
const Dests &b);
110 std::string get_source_key(
const Filename &filename,
112 int alpha_file_channel);
117 EggRenderMode::AlphaMode _pre_txa_alpha_mode;
121 bool _ever_read_image;
122 bool _forced_grayscale;
133 double _mid_pixel_ratio;
135 EggRenderMode::AlphaMode _alpha_mode;
136 EggTexture::WrapMode _txa_wrap_u, _txa_wrap_v;
149 bool _read_source_image;
150 bool _allow_release_source_image;
178 static void init_type() {
179 ImageFile::init_type();
180 Namable::init_type();
182 ImageFile::get_class_type(),
183 Namable::get_class_type());
186 return get_class_type();
bool got_txa_file() const
Returns true if this TextureImage has been looked up in the .txa file this session,...
SourceTextureImage * get_source(const Filename &filename, const Filename &alpha_filename, int alpha_file_channel)
Returns the SourceTextureImage corresponding to the given filename(s).
void assign_groups()
Assigns the texture to all of the PaletteGroups the various egg files that use it need.
void read_header()
Causes the header part of the image to be reread, usually to confirm that its image properties (size,...
This is the highest level of grouping for TextureImages.
This represents a single egg file known to the palettizer.
double get_coverage_threshold() const
Returns the appropriate coverage threshold for this texture.
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Called after the object is otherwise completely read from a Bam file, this function's job is to store...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A class to retrieve the individual data elements previously stored in a Datagram.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
void mark_eggs_stale()
Marks all the egg files that reference this texture stale.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
void pre_txa_file()
Updates any internal state prior to reading the .txa file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
const PNMImage & read_source_image()
Reads in the original image, if it has not already been read, and returns it.
Base class for objects that can be written to and read from Bam files.
The name of this class derives from the fact that we originally implemented it as a layer on top of t...
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
This is a texture image reference as it appears in an egg file: the source image of the texture.
void post_txa_file()
Once the .txa file has been read and the TextureImage matched against it, considers applying the requ...
bool get_omit() const
Returns true if the user specifically requested to omit this texture via the "omit" keyword in the ....
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.
This is a single matching line in the .txa file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
These are the things that a user might explicitly request to adjust on a texture via a line in the ....
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
bool is_surprise() const
Returns true if this particular texture is a 'surprise', i.e.
void note_egg_file(EggFile *egg_file)
Records that a particular egg file references this texture.
const PaletteGroups & get_groups() const
Once assign_groups() has been called, this returns the actual set of groups the TextureImage has been...
void release_source_image()
Frees the memory that was allocated by a previous call to read_source_image().
void set_source_image(const PNMImage &image)
Accepts the indicated source image as if it had been read from disk.
bool is_used() const
Returns true if this particular texture has been placed somewhere, anywhere, or false if it is not us...
void clear_source_basic_properties()
Calls clear_basic_properties() on each source texture image used by this texture, to reset the proper...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void force_replace()
Removes the texture from any PaletteImages it is assigned to, but does not remove it from the groups.
bool is_newer_than(const Filename &reference_filename)
Returns true if the source image is newer than the indicated file, false otherwise.
This is the base class of both TextureImage and PaletteImage.
This is the set of characteristics of a texture that, if different from another texture,...
void write_scale_info(std::ostream &out, int indent_level=0)
Writes the information about the texture's size and placement.
This corresponds to a particular assignment of a TextureImage with a PaletteGroup,...
virtual void write_datagram(BamWriter *writer, Datagram &datagram)
Fills the indicated datagram up with a binary representation of the current object,...
EggTexture::WrapMode get_txa_wrap_u() const
Returns the wrap mode specified in the u direction in the txa file, or WM_unspecified.
A base class for all things which can have a name.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TexturePlacement * get_placement(PaletteGroup *group) const
Gets the TexturePlacement object which represents the assignment of this texture to the indicated gro...
EggTexture::WrapMode get_txa_wrap_v() const
Returns the wrap mode specified in the v direction in the txa file, or WM_unspecified.
void copy_unplaced(bool redo_all)
Copies the texture to whichever destination directories are appropriate for the groups in which it ha...
void determine_placement_size()
Calls determine_size() on each TexturePlacement for the texture, to ensure that each TexturePlacement...
static void register_with_read_factory()
Registers the current object as something that can be read from a Bam file.
int get_margin() const
Returns the appropriate margin for this texture.
This represents a texture filename as it has been resized and copied to the map directory (e....
void write_source_pathnames(std::ostream &out, int indent_level=0) const
Writes the list of source pathnames that might contribute to this texture to the indicated output str...
SourceTextureImage * get_preferred_source()
Determines the preferred source image for examining size and reading pixels, etc.
void mark_texture_named()
Indicates that this particular texture has been named by the user for processing this session,...
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...
bool is_texture_named() const
Returns true if this particular texture has been named by the user for procession this session,...
This represents a single source texture that is referenced by one or more egg files.
The name of a file, such as a texture file or an Egg file.