Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Texture Class Reference

Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-d texture image, or the six 2-d faces of a cube map texture. More...

Inheritance diagram for Texture:
TypedWritableReferenceCount Namable TypedWritable ReferenceCount TypedObject DynamicTextPage MovieTexture VideoTexture

Public Types

enum  ComponentType {
  T_unsigned_byte = 0, T_unsigned_short = 1, T_float = 2, T_unsigned_int_24_8 = 3,
  T_int = 4, T_byte = 5, T_short = 6, T_half_float = 7,
  T_unsigned_int = 8
}
 
enum  CompressionMode {
  CM_default = 0, CM_off = 1, CM_on = 2, CM_fxt1 = 3,
  CM_dxt1 = 4, CM_dxt2 = 5, CM_dxt3 = 6, CM_dxt4 = 7,
  CM_dxt5 = 8, CM_pvr1_2bpp = 9, CM_pvr1_4bpp = 10, CM_rgtc = 11,
  CM_etc1 = 12, CM_etc2 = 13, CM_eac = 14
}
 
enum  DeprecatedFilterType {
  FT_nearest = 0, FT_linear = 1, FT_nearest_mipmap_nearest = 2, FT_linear_mipmap_nearest = 3,
  FT_nearest_mipmap_linear = 4, FT_linear_mipmap_linear = 5, FT_shadow = 6, FT_default = 7,
  FT_invalid = 8
}
 
enum  DeprecatedWrapMode {
  WM_clamp = 0, WM_repeat = 1, WM_mirror = 2, WM_mirror_once = 3,
  WM_border_color = 4, WM_invalid = 5
}
 
enum  Format {
  F_depth_stencil = 1, F_color_index = 2, F_red = 3, F_green = 4,
  F_blue = 5, F_alpha = 6, F_rgb = 7, F_rgb5 = 8,
  F_rgb8 = 9, F_rgb12 = 10, F_rgb332 = 11, F_rgba = 12,
  F_rgbm = 13, F_rgba4 = 14, F_rgba5 = 15, F_rgba8 = 16,
  F_rgba12 = 17, F_luminance = 18, F_luminance_alpha = 19, F_luminance_alphamask = 20,
  F_rgba16 = 21, F_rgba32 = 22, F_depth_component = 23, F_depth_component16 = 24,
  F_depth_component24 = 25, F_depth_component32 = 26, F_r16 = 27, F_rg16 = 28,
  F_rgb16 = 29, F_srgb = 30, F_srgb_alpha = 31, F_sluminance = 32,
  F_sluminance_alpha = 33, F_r32i = 34, F_r32 = 35, F_rg32 = 36,
  F_rgb32 = 37, F_r8i = 38, F_rg8i = 39, F_rgb8i = 40,
  F_rgba8i = 41, F_r11_g11_b10 = 42, F_rgb9_e5 = 43, F_rgb10_a2 = 44,
  F_rg = 45, F_r16i = 46
}
 
enum  QualityLevel { QL_default = 0, QL_fastest = 1, QL_normal = 2, QL_best = 3 }
 
enum  TextureType {
  TT_1d_texture = 0, TT_2d_texture = 1, TT_3d_texture = 2, TT_2d_texture_array = 3,
  TT_cube_map = 4, TT_buffer_texture = 5, TT_cube_map_array = 6, TT_1d_texture_array = 7
}
 

Public Member Functions

 __init__ (str name)
 Constructs an empty texture. More...
 
 clear ()
 Reinitializes the texture to its default, empty state (except for the name). More...
 
 clearAlphaFilename ()
 Removes the alpha filename, if it was previously set. More...
 
 clearAlphaFullpath ()
 Removes the alpha fullpath, if it was previously set. More...
 
 clearAuxData (str key)
 Removes a record previously recorded via set_aux_data(). More...
 
 clearClearColor ()
 The opposite of set_clear_color. More...
 
 clearFilename ()
 Removes the alpha filename, if it was previously set. More...
 
 clearFullpath ()
 Removes the alpha fullpath, if it was previously set. More...
 
 clearImage ()
 Clears the texture data without changing its format or resolution. More...
 
 clearRamImage ()
 Discards the current system-RAM image. More...
 
 clearRamMipmapImage (int n)
 Discards the current system-RAM image for the nth mipmap level. More...
 
 clearRamMipmapImages ()
 Discards the current system-RAM image for all mipmap levels, except level 0 (the base image). More...
 
 clearSimpleRamImage ()
 Discards the current "simple" image. More...
 
bool compressRamImage (Texture::CompressionMode compression, Texture::QualityLevel quality_level, GraphicsStateGuardianBase gsg)
 Attempts to compress the texture's RAM image internally, to a format supported by the indicated GSG. More...
 
 considerRescale (PNMImage pnmimage)
 Asks the PNMImage to change its scale when it reads the image, according to the whims of the Config.prc file. More...
 
int estimateTextureMemory ()
 Estimates the amount of texture memory that will be consumed by loading this texture. More...
 
 generateAlphaScaleMap ()
 Generates a special 256x1 1-d texture that can be used to apply an arbitrary alpha scale to objects by judicious use of texture matrix. More...
 
 generateNormalizationCubeMap (int size)
 Generates a special cube map image in the texture that can be used to apply bump mapping effects: for each texel in the cube map that is indexed by the 3-d texture coordinates (x, y, z), the resulting value is the normalized vector (x, y, z) (compressed from -1..1 into 0..1). More...
 
 generateRamMipmapImages ()
 Automatically fills in the n mipmap levels of the Texture, based on the texture's source image. More...
 
 generateSimpleRamImage ()
 Computes the "simple" ram image by loading the main RAM image, if it is not already available, and reducing it to 16x16 or smaller. More...
 
bool getActive (PreparedGraphicsObjects prepared_objects)
 Returns true if this Texture was rendered in the most recent frame within the indicated GSG. More...
 
const Filename getAlphaFilename ()
 Returns the alpha_filename that has been set. More...
 
const Filename getAlphaFullpath ()
 Returns the alpha_fullpath that has been set. More...
 
int getAnisotropicDegree ()
 Returns the degree of anisotropic filtering that should be applied to the texture. More...
 
AutoTextureScale getAutoTextureScale ()
 Returns the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk. More...
 
TypedReferenceCount getAuxData (str key)
 Returns a record previously recorded via set_aux_data(). More...
 
LColor getBorderColor ()
 Returns the solid color of the texture's border. More...
 
LColor getClearColor ()
 Returns the color that was previously set using set_clear_color. More...
 
VectorUchar getClearData ()
 Returns the raw image data for a single pixel if it were set to the clear color. More...
 
Texture::ComponentType getComponentType ()
 Returns the numeric interpretation of each component of the texture. More...
 
int getComponentWidth ()
 Returns the number of bytes stored for each color component of a texel. More...
 
Texture::CompressionMode getCompression ()
 Returns the compression mode requested for this particular texture, or CM_off if the texture is not to be compressed. More...
 
int getDataSizeBytes (PreparedGraphicsObjects prepared_objects)
 Returns the number of bytes which the texture is reported to consume within graphics memory, for the indicated GSG. More...
 
const SamplerState getDefaultSampler ()
 This returns the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level. More...
 
int getEffectiveAnisotropicDegree ()
 Returns the degree of anisotropic filtering that should be applied to the texture. More...
 
SamplerState::FilterType getEffectiveMagfilter ()
 Returns the filter mode of the texture for magnification, with special treatment for FT_default. More...
 
SamplerState::FilterType getEffectiveMinfilter ()
 Returns the filter mode of the texture for minification, with special treatment for FT_default. More...
 
Texture::QualityLevel getEffectiveQualityLevel ()
 Returns the current quality_level hint, or the global default quality_level if this texture doesn't specify a quality level. More...
 
int getExpectedMipmapNumPages (int n)
 Returns the total number of pages that the nth mipmap level should have, based on the texture's size. More...
 
int getExpectedMipmapXSize (int n)
 Returns the x_size that the nth mipmap level should have, based on the texture's size. More...
 
int getExpectedMipmapYSize (int n)
 Returns the y_size that the nth mipmap level should have, based on the texture's size. More...
 
int getExpectedMipmapZSize (int n)
 Returns the z_size that the nth mipmap level should have, based on the texture's size. More...
 
int getExpectedNumMipmapLevels ()
 Returns the number of mipmap levels that should be defined for this texture, given the texture's size. More...
 
int getExpectedRamImageSize ()
 Returns the number of bytes that ought to be used by the in-memory image, based on the texture parameters. More...
 
int getExpectedRamMipmapImageSize (int n)
 Returns the number of bytes that ought to be used by the in-memory image for mipmap level n, based on the texture parameters. More...
 
int getExpectedRamMipmapPageSize (int n)
 Returns the number of bytes that should be used per each Z page of the 3-d texture, for mipmap level n. More...
 
int getExpectedRamMipmapViewSize (int n)
 Returns the number of bytes that ought to be used by each view of the in- memory image for mipmap level n, based on the texture parameters. More...
 
int getExpectedRamPageSize ()
 Returns the number of bytes that should be used per each Z page of the 3-d texture. More...
 
const Filename getFilename ()
 Returns the filename that has been set. More...
 
Texture::Format getFormat ()
 Returns the format of the texture, which represents both the semantic meaning of the texels and, to some extent, their storage information. More...
 
const Filename getFullpath ()
 Returns the fullpath that has been set. More...
 
UpdateSeq getImageModified ()
 Returns a sequence number which is guaranteed to change at least every time the texture image data (including mipmap levels) are modified. More...
 
bool getKeepRamImage ()
 Returns the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering. More...
 
bool getLoadedFromImage ()
 Returns the flag that indicates the texture has been loaded from a disk file or PNMImage. More...
 
bool getLoadedFromTxo ()
 Returns the flag that indicates the texture has been loaded from a txo file. More...
 
SamplerState::FilterType getMagfilter ()
 Returns the filter mode of the texture for magnification. More...
 
bool getMatchFramebufferFormat ()
 Returns true if the special flag was set that indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa). More...
 
SamplerState::FilterType getMinfilter ()
 Returns the filter mode of the texture for minification. More...
 
int getNumComponents ()
 Returns the number of color components for each texel of the texture image. More...
 
int getNumLoadableRamMipmapImages ()
 Returns the number of contiguous mipmap levels that exist in RAM, up until the first gap in the sequence. More...
 
int getNumPages ()
 Returns the total number of pages in the texture. More...
 
int getNumRamMipmapImages ()
 Returns the maximum number of mipmap level images available in system memory. More...
 
int getNumViews ()
 Returns the number of "views" in the texture. More...
 
int getOrigFileXSize ()
 Returns the X size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
int getOrigFileYSize ()
 Returns the Y size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
int getOrigFileZSize ()
 Returns the Z size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
int getPadXSize ()
 Returns size of the pad region. More...
 
int getPadYSize ()
 Returns size of the pad region. More...
 
int getPadZSize ()
 Returns size of the pad region. More...
 
bool getPostLoadStoreCache ()
 Returns the setting of the post_load_store_cache flag. More...
 
UpdateSeq getPropertiesModified ()
 Returns a sequence number which is guaranteed to change at least every time the texture properties (unrelated to the image) are modified. More...
 
Texture::QualityLevel getQualityLevel ()
 Returns the current quality_level hint. More...
 
CPTAUchar getRamImage ()
 Returns the system-RAM image data associated with the texture. More...
 
CPTAUchar getRamImageAs (str requested_format)
 Returns the uncompressed system-RAM image data associated with the texture. More...
 
Texture::CompressionMode getRamImageCompression ()
 Returns the compression mode in which the ram image is already stored pre- compressed. More...
 
int getRamImageSize ()
 Returns the total number of bytes used by the in-memory image, across all pages and views, or 0 if there is no in-memory image. More...
 
CPTAUchar getRamMipmapImage (int n)
 Returns the system-RAM image data associated with the nth mipmap level, if present. More...
 
int getRamMipmapImageSize (int n)
 Returns the number of bytes used by the in-memory image for mipmap level n, or 0 if there is no in-memory image for this mipmap level. More...
 
int getRamMipmapPageSize (int n)
 Returns the number of bytes used by the in-memory image per page for mipmap level n, or 0 if there is no in-memory image for this mipmap level. More...
 
 getRamMipmapPointer (int n)
 Similiar to get_ram_mipmap_image(), however, in this case the void pointer for the given ram image is returned. More...
 
int getRamMipmapViewSize (int n)
 Returns the number of bytes used by the in-memory image per view for mipmap level n, or 0 if there is no in-memory image for this mipmap level. More...
 
int getRamPageSize ()
 Returns the number of bytes used by the in-memory image per page, or 0 if there is no in-memory image. More...
 
int getRamViewSize ()
 Returns the number of bytes used by the in-memory image per view, or 0 if there is no in-memory image. More...
 
bool getRenderToTexture ()
 Returns a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture. More...
 
bool getResident (PreparedGraphicsObjects prepared_objects)
 Returns true if this Texture is reported to be resident within graphics memory for the indicated GSG. More...
 
UpdateSeq getSimpleImageModified ()
 Returns a sequence number which is guaranteed to change at least every time the texture's "simple" image data is modified. More...
 
CPTAUchar getSimpleRamImage ()
 Returns the image data associated with the "simple" texture image. More...
 
int getSimpleRamImageSize ()
 Returns the number of bytes used by the "simple" image, or 0 if there is no simple image. More...
 
int getSimpleXSize ()
 Returns the width of the "simple" image in texels. More...
 
int getSimpleYSize ()
 Returns the height of the "simple" image in texels. More...
 
LVecBase2 getTexScale ()
 Returns a scale pair that is suitable for applying to geometry via NodePath::set_tex_scale(), which will convert texture coordinates on the geometry from the range 0..1 into the appropriate range to render the video part of the texture. More...
 
Texture::TextureType getTextureType ()
 Returns the overall interpretation of the texture. More...
 
CPTAUchar getUncompressedRamImage ()
 Returns the system-RAM image associated with the texture, in an uncompressed form if at all possible. More...
 
GeomEnums::UsageHint getUsageHint ()
 Returns the usage hint specified for buffer textures, or UH_unspecified for all other texture types. More...
 
SamplerState::WrapMode getWrapU ()
 Returns the wrap mode of the texture in the U direction. More...
 
SamplerState::WrapMode getWrapV ()
 Returns the wrap mode of the texture in the V direction. More...
 
SamplerState::WrapMode getWrapW ()
 Returns the wrap mode of the texture in the W direction. More...
 
int getXSize ()
 Returns the width of the texture image in texels. More...
 
int getYSize ()
 Returns the height of the texture image in texels. More...
 
int getZSize ()
 Returns the depth of the texture image in texels. More...
 
bool hasAllRamMipmapImages ()
 Returns true if all expected mipmap levels have been defined and exist in the system RAM, or false if even one mipmap level is missing. More...
 
bool hasAlphaFilename ()
 Returns true if the alpha_filename has been set and is available. More...
 
bool hasAlphaFullpath ()
 Returns true if the alpha_fullpath has been set and is available. More...
 
bool hasAutoTextureScale ()
 Returns true if set_auto_texture_scale() has been set to something other than ATS_unspecified for this particular texture. More...
 
bool hasClearColor ()
 Returns true if a color was previously set using set_clear_color. More...
 
bool hasCompression ()
 Returns true if the texture indicates it wants to be compressed, either with CM_on or higher, or CM_default and compressed-textures is true. More...
 
bool hasFilename ()
 Returns true if the filename has been set and is available. More...
 
bool hasFullpath ()
 Returns true if the fullpath has been set and is available. More...
 
bool hasRamImage ()
 Returns true if the Texture has its image contents available in main RAM, false if it exists only in texture memory or in the prepared GSG context. More...
 
bool hasRamMipmapImage (int n)
 Returns true if the Texture has the nth mipmap level available in system memory, false otherwise. More...
 
bool hasSimpleRamImage ()
 Returns true if the Texture has a "simple" image available in main RAM. More...
 
bool hasUncompressedRamImage ()
 Returns true if the Texture has its image contents available in main RAM and is uncompressed, false otherwise. More...
 
bool isCacheable ()
 Returns true if there is enough information in this Texture object to write it to the bam cache successfully, false otherwise. More...
 
bool isPrepared (PreparedGraphicsObjects prepared_objects)
 Returns true if the texture has already been prepared or enqueued for preparation on the indicated GSG, false otherwise. More...
 
bool load (const PNMImage pnmimage, const LoaderOptions options)
 Replaces the texture with the indicated image. More...
 
bool load (const PNMImage pnmimage, int z, int n, const LoaderOptions options)
 Stores the indicated image in the given page and mipmap level. More...
 
bool load (const PfmFile pfm, const LoaderOptions options)
 Replaces the texture with the indicated image. More...
 
bool load (const PfmFile pfm, int z, int n, const LoaderOptions options)
 Stores the indicated image in the given page and mipmap level. More...
 
Texture loadRelated (const InternalName suffix)
 Loads a texture whose filename is derived by concatenating a suffix to the filename of this texture. More...
 
bool loadSubImage (const PNMImage pnmimage, int x, int y, int z, int n)
 Stores the indicated image in a region of the texture. More...
 
Texture makeCopy ()
 Returns a new copy of the same Texture. More...
 
PTAUchar makeRamImage ()
 Discards the current system-RAM image for the texture, if any, and allocates a new buffer of the appropriate size. More...
 
PTAUchar makeRamMipmapImage (int n)
 Discards the current system-RAM image for the nth mipmap level, if any, and allocates a new buffer of the appropriate size. More...
 
bool mightHaveRamImage ()
 Returns true if the texture's image contents are currently available in main RAM, or there is reason to believe it can be loaded on demand. More...
 
PTAUchar modifyRamImage ()
 Returns a modifiable pointer to the system-RAM image. More...
 
PTAUchar modifyRamMipmapImage (int n)
 Returns a modifiable pointer to the system-RAM image for the nth mipmap level. More...
 
PTAUchar modifySimpleRamImage ()
 Returns a modifiable pointer to the internal "simple" texture image. More...
 
PTAUchar newSimpleRamImage (int x_size, int y_size)
 Creates an empty array for the simple ram image of the indicated size, and returns a modifiable pointer to the new array. More...
 
TexturePeeker peek ()
 Returns a TexturePeeker object that can be used to examine the individual texels stored within this Texture by (u, v) coordinate. More...
 
AsyncFuture prepare (PreparedGraphicsObjects prepared_objects)
 Indicates that the texture should be enqueued to be prepared in the indicated prepared_objects at the beginning of the next frame. More...
 
TextureContext prepareNow (int view, PreparedGraphicsObjects prepared_objects, GraphicsStateGuardianBase gsg)
 Creates a context for the texture on the particular GSG, if it does not already exist. More...
 
bool read (const Filename fullpath, const Filename alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, const LoaderOptions options)
 Combine a 3-component image with a grayscale image to get a 4-component image. More...
 
bool read (const Filename fullpath, const Filename alpha_fullpath, int primary_file_num_channels, int alpha_file_channel, int z, int n, bool read_pages, bool read_mipmaps, BamCacheRecord record, const LoaderOptions options)
 Reads the texture from the indicated filename. More...
 
bool read (const Filename fullpath, const LoaderOptions options)
 Reads the named filename into the texture. More...
 
bool read (const Filename fullpath, int z, int n, bool read_pages, bool read_mipmaps, const LoaderOptions options)
 Reads a single file into a single page or mipmap level, or automatically reads a series of files into a series of pages and/or mipmap levels. More...
 
bool readDds (Istream in, str filename, bool header_only)
 Reads the texture from a DDS file object. More...
 
bool readKtx (Istream in, str filename, bool header_only)
 Reads the texture from a KTX file object. More...
 
bool readTxo (Istream in, str filename)
 Reads the texture from a Panda texture object. More...
 
bool release (PreparedGraphicsObjects prepared_objects)
 Frees the texture context only on the indicated object, if it exists there. More...
 
int releaseAll ()
 Frees the context allocated on all objects for which the texture has been declared. More...
 
bool reload ()
 Re-reads the Texture from its disk file. More...
 
bool rescaleTexture ()
 This method is similar to consider_rescale(), but instead of scaling a separate PNMImage, it will ask the Texture to rescale its own internal image to a power of 2, according to the config file requirements. More...
 
 setAlphaFilename (const Filename alpha_filename)
 Sets the name of the file that contains the image's alpha channel contents. More...
 
 setAlphaFullpath (const Filename alpha_fullpath)
 Sets the full pathname to the file that contains the image's alpha channel contents, as found along the search path. More...
 
 setAnisotropicDegree (int anisotropic_degree)
 Specifies the level of anisotropic filtering to apply to the texture. More...
 
 setAutoTextureScale (AutoTextureScale scale)
 Specifies the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk. More...
 
 setAuxData (str key, TypedReferenceCount aux_data)
 Records an arbitrary object in the Texture, associated with a specified key. More...
 
 setBorderColor (const LColor color)
 Specifies the solid color of the texture's border. More...
 
 setClearColor (const LColor color)
 Sets the color that will be used to fill the texture image in absence of any image data. More...
 
 setComponentType (Texture::ComponentType component_type)
 Changes the data value for the texture components. More...
 
 setCompression (Texture::CompressionMode compression)
 Requests that this particular Texture be compressed when it is loaded into texture memory. More...
 
 setDefaultSampler (const SamplerState sampler)
 This sets the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level. More...
 
 setFilename (const Filename filename)
 Sets the name of the file that contains the image's contents. More...
 
 setFormat (Texture::Format format)
 Changes the format value for the texture components. More...
 
 setFullpath (const Filename fullpath)
 Sets the full pathname to the file that contains the image's contents, as found along the search path. More...
 
 setKeepRamImage (bool keep_ram_image)
 Sets the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering. More...
 
 setLoadedFromImage (bool flag)
 Sets the flag that indicates the texture has been loaded from a disk file or PNMImage. More...
 
 setLoadedFromTxo (bool flag)
 Sets the flag that indicates the texture has been loaded from a txo file. More...
 
 setMagfilter (Texture::FilterType filter)
 
 setMatchFramebufferFormat (bool flag)
 Sets the special flag that, if true, indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa). More...
 
 setMinfilter (Texture::FilterType filter)
 
 setNumViews (int num_views)
 Sets the number of "views" within a texture. More...
 
 setOrigFileSize (int x, int y, int z)
 Specifies the size of the texture as it exists in its original disk file, before any Panda scaling. More...
 
 setPadSize (int x, int y, int z)
 Sets the size of the pad region. More...
 
 setPostLoadStoreCache (bool flag)
 Sets the post_load_store_cache flag. More...
 
 setQualityLevel (Texture::QualityLevel quality_level)
 Sets a hint to the renderer about the desired performance / quality tradeoff for this particular texture. More...
 
 setRamImage (object image, Texture::CompressionMode compression, int page_size)
 
 setRamImageAs (object image, str provided_format)
 
 setRamMipmapImage (int n, CPTAUchar image, int page_size)
 Replaces the current system-RAM image for the indicated mipmap level with the new data. More...
 
 setRamMipmapPointerFromInt (long pointer, int n, int page_size)
 Accepts a raw pointer cast as an int, which is then passed to set_ram_mipmap_pointer(); see the documentation for that method. More...
 
 setRenderToTexture (bool render_to_texture)
 Sets a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture. More...
 
 setSimpleRamImage (CPTAUchar image, int x_size, int y_size)
 Replaces the internal "simple" texture image. More...
 
 setSizePadded (int x, int y, int z)
 Changes the size of the texture, padding if necessary, and setting the pad region as well. More...
 
 setup1dTexture ()
 Sets the texture as an empty 1-d texture with no dimensions. More...
 
 setup1dTexture (int x_size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as an empty 1-d texture with the specified dimensions and properties. More...
 
 setup2dTexture ()
 Sets the texture as an empty 2-d texture with no dimensions. More...
 
 setup2dTexture (int x_size, int y_size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as an empty 2-d texture with the specified dimensions and properties. More...
 
 setup2dTextureArray (int z_size)
 Sets the texture as an empty 2-d texture array with no dimensions (though if you know the depth ahead of time, it saves a bit of reallocation later). More...
 
 setup2dTextureArray (int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as an empty 2-d texture array with the specified dimensions and properties. More...
 
 setup3dTexture (int z_size)
 Sets the texture as an empty 3-d texture with no dimensions (though if you know the depth ahead of time, it saves a bit of reallocation later). More...
 
 setup3dTexture (int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as an empty 3-d texture with the specified dimensions and properties. More...
 
 setupBufferTexture (int size, Texture::ComponentType component_type, Texture::Format format, GeomEnums::UsageHint usage)
 Sets the texture as an empty buffer texture with the specified size and properties. More...
 
 setupCubeMap ()
 Sets the texture as an empty cube map texture with no dimensions. More...
 
 setupCubeMap (int size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as an empty cube map texture with the specified dimensions and properties. More...
 
 setupCubeMapArray (int num_cube_maps)
 Sets the texture as cube map array with N cube maps. More...
 
 setupCubeMapArray (int size, int num_cube_maps, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture as cube map array with N cube maps with the specified dimensions and format. More...
 
 setupTexture (Texture::TextureType texture_type, int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format)
 Sets the texture to the indicated type and dimensions, presumably in preparation for calling read() or load(), or set_ram_image() or modify_ram_image(), or use set_clear_color to let the texture be cleared to a solid color. More...
 
 setWrapU (Texture::WrapMode wrap)
 
 setWrapV (Texture::WrapMode wrap)
 
 setWrapW (Texture::WrapMode wrap)
 
 setXSize (int x_size)
 Changes the x size indicated for the texture. More...
 
 setYSize (int y_size)
 Changes the y size indicated for the texture. More...
 
 setZSize (int z_size)
 Changes the z size indicated for the texture. More...
 
bool store (PNMImage pnmimage)
 Saves the texture to the indicated PNMImage, but does not write it to disk. More...
 
bool store (PNMImage pnmimage, int z, int n)
 Saves the indicated page and mipmap level of the texture to the PNMImage. More...
 
bool store (PfmFile pfm)
 Saves the texture to the indicated PfmFile, but does not write it to disk. More...
 
bool store (PfmFile pfm, int z, int n)
 Saves the indicated page and mipmap level of the texture to the PfmFile. More...
 
bool uncompressRamImage ()
 Attempts to uncompress the texture's RAM image internally. More...
 
bool usesMipmaps ()
 Returns true if the minfilter settings on this texture indicate the use of mipmapping, false otherwise. More...
 
bool wasImageModified (PreparedGraphicsObjects prepared_objects)
 Returns true if the texture needs to be re-loaded onto the indicated GSG, either because its image data is out-of-date, or because it's not fully prepared now. More...
 
bool write (const Filename fullpath)
 Writes the texture to the named filename. More...
 
bool write (const Filename fullpath, int z, int n, bool write_pages, bool write_mipmaps)
 Writes a single page or mipmap level to a single file, or automatically writes a series of pages and/or mipmap levels to a numbered series of files. More...
 
 write (Ostream out, int indent_level)
 Not to be confused with write(Filename), this method simply describes the texture properties. More...
 
bool writeTxo (Ostream out, str filename)
 Writes the texture to a Panda texture object. More...
 
- Public Member Functions inherited from TypedWritable
object __reduce__ ()
 
object __reduce_persist__ (object pickler)
 
VectorUchar encodeToBamStream ()
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encodeToBamStream (VectorUchar data, BamWriter writer)
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
 fillin (DatagramIterator scan, BamReader manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More...
 
UpdateSeq getBamModified ()
 Returns the current bam_modified counter. More...
 
 markBamModified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 
- Public Member Functions inherited from Namable
 __init__ (const Namable)
 
 __init__ (str initial_name)
 
 clearName ()
 Resets the Namable's name to empty. More...
 
str getName ()
 
bool hasName ()
 Returns true if the Namable has a nonempty name set, false if the name is empty. More...
 
 output (Ostream out)
 Outputs the Namable. More...
 
 setName (str name)
 

Static Public Member Functions

static considerRescale (PNMImage pnmimage, str name, AutoTextureScale auto_texture_scale)
 Asks the PNMImage to change its scale when it reads the image, according to the whims of the Config.prc file. More...
 
static int downToPower2 (int value)
 Returns the largest power of 2 less than or equal to value. More...
 
static str formatComponentType (Texture::ComponentType ct)
 Returns the indicated ComponentType converted to a string word. More...
 
static str formatCompressionMode (Texture::CompressionMode cm)
 Returns the indicated CompressionMode converted to a string word. More...
 
static str formatFormat (Texture::Format f)
 Returns the indicated Format converted to a string word. More...
 
static str formatQualityLevel (Texture::QualityLevel tql)
 Returns the indicated QualityLevel converted to a string word. More...
 
static str formatTextureType (Texture::TextureType tt)
 Returns the indicated TextureType converted to a string word. More...
 
static TypeHandle getClassType ()
 
static AutoTextureScale getTexturesPower2 ()
 This flag returns ATS_none, ATS_up, or ATS_down and controls the scaling of textures in general. More...
 
static bool hasTexturesPower2 ()
 If true, then get_textures_power_2 has been set using set_textures_power_2. More...
 
static Texture makeFromTxo (Istream in, str filename)
 Constructs a new Texture object from the txo file. More...
 
static setTexturesPower2 (AutoTextureScale scale)
 Set this flag to ATS_none, ATS_up, ATS_down, or ATS_pad to control the scaling of textures in general, if a particular texture does not override this. More...
 
static Texture::ComponentType stringComponentType (str str)
 Returns the ComponentType corresponding to the indicated string word. More...
 
static Texture::CompressionMode stringCompressionMode (str str)
 Returns the CompressionMode value associated with the given string representation. More...
 
static Texture::Format stringFormat (str str)
 Returns the Format corresponding to the indicated string word. More...
 
static Texture::QualityLevel stringQualityLevel (str str)
 Returns the QualityLevel value associated with the given string representation. More...
 
static Texture::TextureType stringTextureType (str str)
 Returns the TextureType corresponding to the indicated string word. More...
 
static int upToPower2 (int value)
 Returns the smallest power of 2 greater than or equal to value. More...
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypedWritableReferenceCount decodeFromBamStream (VectorUchar data, BamReader reader)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More...
 
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritable
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from Namable
static TypeHandle getClassType ()
 

Public Attributes

const Filename alpha_filename
 Returns the alpha_filename that has been set. More...
 
const Filename alpha_fullpath
 Returns the alpha_fullpath that has been set. More...
 
int anisotropic_degree
 Returns the degree of anisotropic filtering that should be applied to the texture. More...
 
AutoTextureScale auto_texture_scale
 Returns the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk. More...
 
TypedReferenceCount aux_data []
 
LColor border_color
 Returns the solid color of the texture's border. More...
 
bool cacheable
 Returns true if there is enough information in this Texture object to write it to the bam cache successfully, false otherwise. More...
 
LColor clear_color
 Returns the color that was previously set using set_clear_color. More...
 
Texture::ComponentType component_type
 Returns the numeric interpretation of each component of the texture. More...
 
int component_width
 Returns the number of bytes stored for each color component of a texel. More...
 
Texture::CompressionMode compression
 Could maybe use has_compression here, too. More...
 
const SamplerState default_sampler
 This returns the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level. More...
 
int effective_anisotropic_degree
 Returns the degree of anisotropic filtering that should be applied to the texture. More...
 
SamplerState::FilterType effective_magfilter
 Returns the filter mode of the texture for magnification, with special treatment for FT_default. More...
 
SamplerState::FilterType effective_minfilter
 Returns the filter mode of the texture for minification, with special treatment for FT_default. More...
 
Texture::QualityLevel effective_quality_level
 Returns the current quality_level hint, or the global default quality_level if this texture doesn't specify a quality level. More...
 
int expected_num_mipmap_levels
 Returns the number of mipmap levels that should be defined for this texture, given the texture's size. More...
 
int expected_ram_image_size
 Returns the number of bytes that ought to be used by the in-memory image, based on the texture parameters. More...
 
int expected_ram_page_size
 Returns the number of bytes that should be used per each Z page of the 3-d texture. More...
 
const Filename filename
 Returns the filename that has been set. More...
 
Texture::Format format
 Returns the format of the texture, which represents both the semantic meaning of the texels and, to some extent, their storage information. More...
 
const Filename fullpath
 Returns the fullpath that has been set. More...
 
UpdateSeq image_modified
 Returns a sequence number which is guaranteed to change at least every time the texture image data (including mipmap levels) are modified. More...
 
bool keep_ram_image
 Returns the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering. More...
 
bool loaded_from_image
 Returns the flag that indicates the texture has been loaded from a disk file or PNMImage. More...
 
bool loaded_from_txo
 Returns the flag that indicates the texture has been loaded from a txo file. More...
 
SamplerState::FilterType magfilter
 Returns the filter mode of the texture for magnification. More...
 
bool match_framebuffer_format
 Returns true if the special flag was set that indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa). More...
 
SamplerState::FilterType minfilter
 Returns the filter mode of the texture for minification. More...
 
int num_components
 Returns the number of color components for each texel of the texture image. More...
 
int num_loadable_ram_mipmap_images
 Returns the number of contiguous mipmap levels that exist in RAM, up until the first gap in the sequence. More...
 
int num_pages
 Returns the total number of pages in the texture. More...
 
int num_ram_mipmap_images
 Returns the maximum number of mipmap level images available in system memory. More...
 
int num_views
 Returns the number of "views" in the texture. More...
 
int orig_file_x_size
 Returns the X size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
int orig_file_y_size
 Returns the Y size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
int orig_file_z_size
 Returns the Z size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda. More...
 
bool post_load_store_cache
 Returns the setting of the post_load_store_cache flag. More...
 
UpdateSeq properties_modified
 Returns a sequence number which is guaranteed to change at least every time the texture properties (unrelated to the image) are modified. More...
 
Texture::QualityLevel quality_level
 Returns the current quality_level hint. More...
 
Texture::CompressionMode ram_image_compression
 Returns the compression mode in which the ram image is already stored pre- compressed. More...
 
int ram_image_size
 Returns the total number of bytes used by the in-memory image, across all pages and views, or 0 if there is no in-memory image. More...
 
int ram_page_size
 Returns the number of bytes used by the in-memory image per page, or 0 if there is no in-memory image. More...
 
int ram_view_size
 Returns the number of bytes used by the in-memory image per view, or 0 if there is no in-memory image. More...
 
bool render_to_texture
 Returns a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture. More...
 
UpdateSeq simple_image_modified
 Returns a sequence number which is guaranteed to change at least every time the texture's "simple" image data is modified. More...
 
CPTAUchar simple_ram_image
 Returns the image data associated with the "simple" texture image. More...
 
int simple_x_size
 Returns the width of the "simple" image in texels. More...
 
int simple_y_size
 Returns the height of the "simple" image in texels. More...
 
Texture::TextureType texture_type
 Returns the overall interpretation of the texture. More...
 
GeomEnums::UsageHint usage_hint
 Returns the usage hint specified for buffer textures, or UH_unspecified for all other texture types. More...
 
SamplerState::WrapMode wrap_u
 Returns the wrap mode of the texture in the U direction. More...
 
SamplerState::WrapMode wrap_v
 Returns the wrap mode of the texture in the V direction. More...
 
SamplerState::WrapMode wrap_w
 Returns the wrap mode of the texture in the W direction. More...
 
int x_size
 Returns the width of the texture image in texels. More...
 
int y_size
 Returns the height of the texture image in texels. More...
 
int z_size
 Returns the depth of the texture image in texels. More...
 
- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 
- Public Attributes inherited from Namable
const String name
 

Detailed Description

Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-d texture image, or the six 2-d faces of a cube map texture.

A texture's image data might be stored in system RAM (see get_ram_image()) or its image may be represented in texture memory on one or more GraphicsStateGuardians (see prepare()), or both. The typical usage pattern is that a texture is loaded from an image file on disk, which copies its image data into system RAM; then the first time the texture is rendered its image data is copied to texture memory (actually, to the graphics API), and the system RAM image is automatically freed.

Member Enumeration Documentation

◆ ComponentType

Enumerator
T_unsigned_byte 
T_unsigned_short 
T_float 
T_unsigned_int_24_8 

Packed.

T_int 
T_byte 
T_short 
T_half_float 
T_unsigned_int 

◆ CompressionMode

Enumerator
CM_default 

on or off, according to compressed-textures

CM_off 

uncompressed image

CM_on 

whatever compression the driver supports

CM_fxt1 

Specific compression modes. Use only when you really want to use a particular compression algorithm. Use with caution; not all drivers support all compression modes. You can use GSG::get_supports_compressed_texture_format() to query the available compression modes for a particular GSG.

CM_dxt1 

BC1: RGB with optional binary alpha.

CM_dxt2 

Like DXT3, but assumes premultiplied alpha.

CM_dxt3 

BC2: RGB with uncompressed 4-bit alpha.

CM_dxt4 

Like DXT5, but assumes premultiplied alpha.

CM_dxt5 

BC3: RGB with separately compressed 8-bit alpha.

CM_pvr1_2bpp 
CM_pvr1_4bpp 
CM_rgtc 

BC4/BC5: 1 or 2 channels, individually compressed.

CM_etc1 
CM_etc2 
CM_eac 

EAC: 1 or 2 channels.

◆ DeprecatedFilterType

Enumerator
FT_nearest 
FT_linear 
FT_nearest_mipmap_nearest 
FT_linear_mipmap_nearest 
FT_nearest_mipmap_linear 
FT_linear_mipmap_linear 
FT_shadow 
FT_default 
FT_invalid 

◆ DeprecatedWrapMode

Enumerator
WM_clamp 
WM_repeat 
WM_mirror 
WM_mirror_once 
WM_border_color 
WM_invalid 

◆ Format

enum Format
Enumerator
F_depth_stencil 
F_color_index 
F_red 
F_green 
F_blue 
F_alpha 
F_rgb 

any suitable RGB mode, whatever the hardware prefers

F_rgb5 

5 bits per R,G,B channel

F_rgb8 

8 bits per R,G,B channel

F_rgb12 

12 bits per R,G,B channel

F_rgb332 

3 bits per R & G, 2 bits for B

F_rgba 

any suitable RGBA mode, whatever the hardware prefers

F_rgbm 

as above, but only requires 1 bit for alpha (i.e. mask)

F_rgba4 

4 bits per R,G,B,A channel

F_rgba5 

5 bits per R,G,B channel, 1 bit alpha

F_rgba8 

8 bits per R,G,B,A channel

F_rgba12 

12 bits per R,G,B,A channel

F_luminance 
F_luminance_alpha 

8 bits luminance, 8 bits alpha

F_luminance_alphamask 

8 bits luminance, only needs 1 bit of alpha

F_rgba16 

16 bits per R,G,B,A channel

F_rgba32 

32 bits per R,G,B,A channel

F_depth_component 
F_depth_component16 
F_depth_component24 
F_depth_component32 
F_r16 
F_rg16 
F_rgb16 
F_srgb 

These formats are in the sRGB color space. RGB is 2.2 gamma corrected, alpha is always linear.

F_srgb_alpha 
F_sluminance 
F_sluminance_alpha 
F_r32i 

32-bit integer, used for atomic access

F_r32 
F_rg32 
F_rgb32 
F_r8i 

8 integer bits per R channel

F_rg8i 

8 integer bits per R,G channel

F_rgb8i 

8 integer bits per R,G,B channel

F_rgba8i 

8 integer bits per R,G,B,A channel

F_r11_g11_b10 

unsigned floating-point, 11 Red, 11 Green, 10 Blue Bits

F_rgb9_e5 
F_rgb10_a2 
F_rg 
F_r16i 

◆ QualityLevel

Enumerator
QL_default 

according to texture-quality-level

QL_fastest 
QL_normal 
QL_best 

◆ TextureType

Enumerator
TT_1d_texture 
TT_2d_texture 
TT_3d_texture 
TT_2d_texture_array 
TT_cube_map 
TT_buffer_texture 
TT_cube_map_array 
TT_1d_texture_array 

Member Function Documentation

◆ __init__()

__init__ ( str  name)

Constructs an empty texture.

The default is to set up the texture as an empty 2-d texture; follow up with one of the variants of setup_texture() if this is not what you want.

◆ clear()

clear ( )

Reinitializes the texture to its default, empty state (except for the name).

◆ clearAlphaFilename()

clearAlphaFilename ( )

Removes the alpha filename, if it was previously set.

See set_alpha_filename().

◆ clearAlphaFullpath()

clearAlphaFullpath ( )

Removes the alpha fullpath, if it was previously set.

See set_alpha_fullpath().

◆ clearAuxData()

clearAuxData ( str  key)

Removes a record previously recorded via set_aux_data().

◆ clearClearColor()

clearClearColor ( )

The opposite of set_clear_color.

If the image is cleared after setting this, its contents may be undefined (or may in fact not be cleared at all).

◆ clearFilename()

clearFilename ( )

Removes the alpha filename, if it was previously set.

See set_filename().

◆ clearFullpath()

clearFullpath ( )

Removes the alpha fullpath, if it was previously set.

See set_fullpath().

◆ clearImage()

clearImage ( )

Clears the texture data without changing its format or resolution.

The texture is cleared on both the graphics hardware and from RAM, unlike clear_ram_image, which only removes the data from RAM.

If a clear color has been specified using set_clear_color, the texture will be cleared using a solid color.

The texture data will be cleared the first time in which the texture is used after this method is called.

◆ clearRamImage()

clearRamImage ( )

Discards the current system-RAM image.

◆ clearRamMipmapImage()

clearRamMipmapImage ( int  n)

Discards the current system-RAM image for the nth mipmap level.

◆ clearRamMipmapImages()

clearRamMipmapImages ( )

Discards the current system-RAM image for all mipmap levels, except level 0 (the base image).

◆ clearSimpleRamImage()

clearSimpleRamImage ( )

Discards the current "simple" image.

◆ compressRamImage()

bool compressRamImage ( Texture::CompressionMode  compression,
Texture::QualityLevel  quality_level,
GraphicsStateGuardianBase  gsg 
)

Attempts to compress the texture's RAM image internally, to a format supported by the indicated GSG.

In order for this to work, the squish library must have been compiled into Panda.

If compression is CM_on, then an appropriate compression method that is supported by the indicated GSG is automatically chosen. If the GSG pointer is NULL, any of the standard DXT1/3/5 compression methods will be used, regardless of whether it is supported.

If compression is any specific compression method, that method is used regardless of whether the GSG supports it.

quality_level determines the speed/quality tradeoff of the compression. If it is QL_default, the texture's own quality_level parameter is used.

Returns true if successful, false otherwise.

◆ considerRescale() [1/2]

considerRescale ( PNMImage  pnmimage)

Asks the PNMImage to change its scale when it reads the image, according to the whims of the Config.prc file.

For most efficient results, this method should be called after pnmimage.read_header() has been called, but before pnmimage.read(). This method may also be called after pnmimage.read(), i.e. when the pnmimage is already loaded; in this case it will rescale the image on the spot. Also see rescale_texture().

◆ considerRescale() [2/2]

static considerRescale ( PNMImage  pnmimage,
str  name,
AutoTextureScale  auto_texture_scale 
)
static

Asks the PNMImage to change its scale when it reads the image, according to the whims of the Config.prc file.

For most efficient results, this method should be called after pnmimage.read_header() has been called, but before pnmimage.read(). This method may also be called after pnmimage.read(), i.e. when the pnmimage is already loaded; in this case it will rescale the image on the spot. Also see rescale_texture().

◆ downToPower2()

static int downToPower2 ( int  value)
static

Returns the largest power of 2 less than or equal to value.

◆ estimateTextureMemory()

int estimateTextureMemory ( )

Estimates the amount of texture memory that will be consumed by loading this texture.

This returns a value that is not specific to any particular graphics card or driver; it tries to make a reasonable assumption about how a driver will load the texture. It does not account for texture compression or anything fancy. This is mainly useful for debugging and reporting purposes.

Returns a value in bytes.

◆ formatComponentType()

static str formatComponentType ( Texture::ComponentType  ct)
static

Returns the indicated ComponentType converted to a string word.

◆ formatCompressionMode()

static str formatCompressionMode ( Texture::CompressionMode  cm)
static

Returns the indicated CompressionMode converted to a string word.

◆ formatFormat()

static str formatFormat ( Texture::Format  f)
static

Returns the indicated Format converted to a string word.

◆ formatQualityLevel()

static str formatQualityLevel ( Texture::QualityLevel  tql)
static

Returns the indicated QualityLevel converted to a string word.

◆ formatTextureType()

static str formatTextureType ( Texture::TextureType  tt)
static

Returns the indicated TextureType converted to a string word.

◆ generateAlphaScaleMap()

generateAlphaScaleMap ( )

Generates a special 256x1 1-d texture that can be used to apply an arbitrary alpha scale to objects by judicious use of texture matrix.

The texture is a gradient, with an alpha of 0 on the left (U = 0), and 255 on the right (U = 1).

◆ generateNormalizationCubeMap()

generateNormalizationCubeMap ( int  size)

Generates a special cube map image in the texture that can be used to apply bump mapping effects: for each texel in the cube map that is indexed by the 3-d texture coordinates (x, y, z), the resulting value is the normalized vector (x, y, z) (compressed from -1..1 into 0..1).

◆ generateRamMipmapImages()

generateRamMipmapImages ( )

Automatically fills in the n mipmap levels of the Texture, based on the texture's source image.

This requires the texture's uncompressed ram image to be available in system memory. If it is not already, it will be fetched if possible.

This call is not normally necessary, since the mipmap levels will be generated automatically if needed. But there may be certain cases in which you would like to call this explicitly.

◆ generateSimpleRamImage()

generateSimpleRamImage ( )

Computes the "simple" ram image by loading the main RAM image, if it is not already available, and reducing it to 16x16 or smaller.

This may be an expensive operation.

◆ getActive()

bool getActive ( PreparedGraphicsObjects  prepared_objects)

Returns true if this Texture was rendered in the most recent frame within the indicated GSG.

◆ getAlphaFilename()

const Filename getAlphaFilename ( )

Returns the alpha_filename that has been set.

If this is set, it represents the name of the alpha component, which is stored in a separate file. See also get_filename(), and get_alpha_fullpath().

◆ getAlphaFullpath()

const Filename getAlphaFullpath ( )

Returns the alpha_fullpath that has been set.

This is the full path to the alpha part of the image file as it was found along the texture search path.

◆ getAnisotropicDegree()

int getAnisotropicDegree ( )

Returns the degree of anisotropic filtering that should be applied to the texture.

This value may return 0, indicating the default value; see also get_effective_anisotropic_degree.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getAutoTextureScale()

AutoTextureScale getAutoTextureScale ( )

Returns the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk.

See set_textures_power_2().

◆ getAuxData()

TypedReferenceCount getAuxData ( str  key)

Returns a record previously recorded via set_aux_data().

Returns NULL if there was no record associated with the indicated key.

◆ getBorderColor()

LColor getBorderColor ( )

Returns the solid color of the texture's border.

Some OpenGL implementations use a border for tiling textures; in Panda, it is only used for specifying the clamp color.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getClearColor()

LColor getClearColor ( )

Returns the color that was previously set using set_clear_color.

◆ getClearData()

VectorUchar getClearData ( )

Returns the raw image data for a single pixel if it were set to the clear color.

◆ getComponentType()

Texture::ComponentType getComponentType ( )

Returns the numeric interpretation of each component of the texture.

◆ getComponentWidth()

int getComponentWidth ( )

Returns the number of bytes stored for each color component of a texel.

Typically this is 1, but it may be 2 for 16-bit texels.

◆ getCompression()

Texture::CompressionMode getCompression ( )

Returns the compression mode requested for this particular texture, or CM_off if the texture is not to be compressed.

If a value other than CM_off is returned, this is not a guarantee that the texture is actually successfully compressed on the GSG. It may be that the GSG does not support the requested compression mode, in which case the texture may actually be stored uncompressed in texture memory.

◆ getDataSizeBytes()

int getDataSizeBytes ( PreparedGraphicsObjects  prepared_objects)

Returns the number of bytes which the texture is reported to consume within graphics memory, for the indicated GSG.

This may return a nonzero value even if the texture is not currently resident; you should also check get_resident() if you want to know how much space the texture is actually consuming right now.

◆ getDefaultSampler()

const SamplerState getDefaultSampler ( )

This returns the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level.

◆ getEffectiveAnisotropicDegree()

int getEffectiveAnisotropicDegree ( )

Returns the degree of anisotropic filtering that should be applied to the texture.

This value will normally not return 0, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getEffectiveMagfilter()

SamplerState::FilterType getEffectiveMagfilter ( )

Returns the filter mode of the texture for magnification, with special treatment for FT_default.

This will normally not return FT_default, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getEffectiveMinfilter()

SamplerState::FilterType getEffectiveMinfilter ( )

Returns the filter mode of the texture for minification, with special treatment for FT_default.

This will normally not return FT_default, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getEffectiveQualityLevel()

Texture::QualityLevel getEffectiveQualityLevel ( )

Returns the current quality_level hint, or the global default quality_level if this texture doesn't specify a quality level.

This value will not normally return QL_default (unless there is an error in the config file)

◆ getExpectedMipmapNumPages()

int getExpectedMipmapNumPages ( int  n)

Returns the total number of pages that the nth mipmap level should have, based on the texture's size.

This is usually the same as get_expected_mipmap_z_size(), except for a multiview texture, in which case it is get_expected_mipmap_z_size() * get_num_views().

◆ getExpectedMipmapXSize()

int getExpectedMipmapXSize ( int  n)

Returns the x_size that the nth mipmap level should have, based on the texture's size.

◆ getExpectedMipmapYSize()

int getExpectedMipmapYSize ( int  n)

Returns the y_size that the nth mipmap level should have, based on the texture's size.

◆ getExpectedMipmapZSize()

int getExpectedMipmapZSize ( int  n)

Returns the z_size that the nth mipmap level should have, based on the texture's size.

◆ getExpectedNumMipmapLevels()

int getExpectedNumMipmapLevels ( )

Returns the number of mipmap levels that should be defined for this texture, given the texture's size.

Note that this returns a number appropriate for mipmapping, even if the texture does not currently have mipmapping enabled.

◆ getExpectedRamImageSize()

int getExpectedRamImageSize ( )

Returns the number of bytes that ought to be used by the in-memory image, based on the texture parameters.

◆ getExpectedRamMipmapImageSize()

int getExpectedRamMipmapImageSize ( int  n)

Returns the number of bytes that ought to be used by the in-memory image for mipmap level n, based on the texture parameters.

◆ getExpectedRamMipmapPageSize()

int getExpectedRamMipmapPageSize ( int  n)

Returns the number of bytes that should be used per each Z page of the 3-d texture, for mipmap level n.

For a 2-d or 1-d texture, this is the same as get_expected_ram_mipmap_view_size(n).

◆ getExpectedRamMipmapViewSize()

int getExpectedRamMipmapViewSize ( int  n)

Returns the number of bytes that ought to be used by each view of the in- memory image for mipmap level n, based on the texture parameters.

For a normal, non-multiview texture, this is the same as get_expected_ram_mipmap_image_size(n).

◆ getExpectedRamPageSize()

int getExpectedRamPageSize ( )

Returns the number of bytes that should be used per each Z page of the 3-d texture.

For a 2-d or 1-d texture, this is the same as get_expected_ram_image_size().

◆ getFilename()

const Filename getFilename ( )

Returns the filename that has been set.

This is the name of the file as it was requested. Also see get_fullpath().

◆ getFormat()

Texture::Format getFormat ( )

Returns the format of the texture, which represents both the semantic meaning of the texels and, to some extent, their storage information.

◆ getFullpath()

const Filename getFullpath ( )

Returns the fullpath that has been set.

This is the full path to the file as it was found along the texture search path.

◆ getImageModified()

UpdateSeq getImageModified ( )

Returns a sequence number which is guaranteed to change at least every time the texture image data (including mipmap levels) are modified.

◆ getKeepRamImage()

bool getKeepRamImage ( )

Returns the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering.

See set_keep_ram_image().

◆ getLoadedFromImage()

bool getLoadedFromImage ( )

Returns the flag that indicates the texture has been loaded from a disk file or PNMImage.

See set_loaded_from_image().

◆ getLoadedFromTxo()

bool getLoadedFromTxo ( )

Returns the flag that indicates the texture has been loaded from a txo file.

◆ getMagfilter()

SamplerState::FilterType getMagfilter ( )

Returns the filter mode of the texture for magnification.

The mipmap constants are invalid here. This may return FT_default; see also get_effective_minfilter().

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getMatchFramebufferFormat()

bool getMatchFramebufferFormat ( )

Returns true if the special flag was set that indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa).

◆ getMinfilter()

SamplerState::FilterType getMinfilter ( )

Returns the filter mode of the texture for minification.

If this is one of the mipmap constants, then the texture requires mipmaps. This may return FT_default; see also get_effective_minfilter().

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getNumComponents()

int getNumComponents ( )

Returns the number of color components for each texel of the texture image.

This is 3 for an rgb texture or 4 for an rgba texture; it may also be 1 or 2 for a grayscale texture.

◆ getNumLoadableRamMipmapImages()

int getNumLoadableRamMipmapImages ( )

Returns the number of contiguous mipmap levels that exist in RAM, up until the first gap in the sequence.

It is guaranteed that at least mipmap levels [0, get_num_ram_mipmap_images()) exist.

The number returned will never exceed the number of required mipmap images based on the size of the texture and its filter mode.

This method is different from get_num_ram_mipmap_images() in that it returns only the number of mipmap levels that can actually be usefully loaded, regardless of the actual number that may be stored.

◆ getNumPages()

int getNumPages ( )

Returns the total number of pages in the texture.

Each "page" is a 2-d texture image within the larger image–a face of a cube map, or a level of a 3-d texture. Normally, get_num_pages() is the same as get_z_size(). However, in a multiview texture, this returns get_z_size() * get_num_views().

◆ getNumRamMipmapImages()

int getNumRamMipmapImages ( )

Returns the maximum number of mipmap level images available in system memory.

The actual number may be less than this (that is, there might be gaps in the sequence); use has_ram_mipmap_image() to verify each level.

Also see get_num_loadable_ram_mipmap_images().

◆ getNumViews()

int getNumViews ( )

Returns the number of "views" in the texture.

A view is a completely separate image stored within the Texture object. Most textures have only one view, but a stereo texture, for instance, may have two views, a left and a right image. Other uses for multiple views are not yet defined.

If this value is greater than one, the additional views are accessed as additional pages beyond get_z_size().

◆ getOrigFileXSize()

int getOrigFileXSize ( )

Returns the X size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ getOrigFileYSize()

int getOrigFileYSize ( )

Returns the Y size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ getOrigFileZSize()

int getOrigFileZSize ( )

Returns the Z size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ getPadXSize()

int getPadXSize ( )

Returns size of the pad region.

See set_pad_size.

◆ getPadYSize()

int getPadYSize ( )

Returns size of the pad region.

See set_pad_size.

◆ getPadZSize()

int getPadZSize ( )

Returns size of the pad region.

See set_pad_size.

◆ getPostLoadStoreCache()

bool getPostLoadStoreCache ( )

Returns the setting of the post_load_store_cache flag.

See set_post_load_store_cache().

◆ getPropertiesModified()

UpdateSeq getPropertiesModified ( )

Returns a sequence number which is guaranteed to change at least every time the texture properties (unrelated to the image) are modified.

◆ getQualityLevel()

Texture::QualityLevel getQualityLevel ( )

Returns the current quality_level hint.

See set_quality_level(). This value may return QL_default; see get_effective_quality_level().

◆ getRamImage()

CPTAUchar getRamImage ( )

Returns the system-RAM image data associated with the texture.

If the texture does not currently have an associated RAM image, and the texture was generated by loading an image from a disk file (the most common case), this forces the reload of the same texture. This can happen if keep_texture_ram is configured to false, and we have previously prepared this texture with a GSG.

Note that it is not correct to call has_ram_image() first to test whether this function will fail. A false return value from has_ram_image() indicates only that get_ram_image() may need to reload the texture from disk, which it will do automatically. However, you can call might_have_ram_image(), which will return true if the ram image exists, or there is a reasonable reason to believe it can be loaded.

On the other hand, it is possible that the texture cannot be found on disk or is otherwise unavailable. If that happens, this function will return NULL. There is no way to predict with 100% accuracy whether get_ram_image() will return NULL without calling it first; might_have_ram_image() is the closest.

◆ getRamImageAs()

CPTAUchar getRamImageAs ( str  requested_format)

Returns the uncompressed system-RAM image data associated with the texture.

Rather than just returning a pointer to the data, like get_uncompressed_ram_image, this function first processes the data and reorders the components using the specified format string, and places these into a new char array.

The 'format' argument should specify in which order the components of the texture must be. For example, valid format strings are "RGBA", "GA", "ABRG" or "AAA". A component can also be written as "0" or "1", which means an empty/black or a full/white channel, respectively.

This function is particularly useful to copy an image in-memory to a different library (for example, PIL or wxWidgets) that require a different component order than Panda's internal format, BGRA. Note, however, that this conversion can still be too slow if you want to do it every frame, and should thus be avoided for that purpose.

The only requirement for the reordering is that an uncompressed image must be available. If the RAM image is compressed, it will attempt to re-load the texture from disk, if it doesn't find an uncompressed image there, it will return NULL.

◆ getRamImageCompression()

Texture::CompressionMode getRamImageCompression ( )

Returns the compression mode in which the ram image is already stored pre- compressed.

If this is other than CM_off, you cannot rely on the contents of the ram image to be anything predicatable (it will not be an array of x by y pixels, and it probably won't have the same length as get_expected_ram_image_size()).

◆ getRamImageSize()

int getRamImageSize ( )

Returns the total number of bytes used by the in-memory image, across all pages and views, or 0 if there is no in-memory image.

◆ getRamMipmapImage()

CPTAUchar getRamMipmapImage ( int  n)

Returns the system-RAM image data associated with the nth mipmap level, if present.

Returns NULL if the nth mipmap level is not present.

◆ getRamMipmapImageSize()

int getRamMipmapImageSize ( int  n)

Returns the number of bytes used by the in-memory image for mipmap level n, or 0 if there is no in-memory image for this mipmap level.

◆ getRamMipmapPageSize()

int getRamMipmapPageSize ( int  n)

Returns the number of bytes used by the in-memory image per page for mipmap level n, or 0 if there is no in-memory image for this mipmap level.

For a non-compressed texture, this is the same as get_expected_ram_mipmap_page_size(). For a compressed texture, this may be a smaller value. (We do assume that all pages will be the same size on a compressed texture).

◆ getRamMipmapPointer()

getRamMipmapPointer ( int  n)

Similiar to get_ram_mipmap_image(), however, in this case the void pointer for the given ram image is returned.

This will be NULL unless it has been explicitly set.

◆ getRamMipmapViewSize()

int getRamMipmapViewSize ( int  n)

Returns the number of bytes used by the in-memory image per view for mipmap level n, or 0 if there is no in-memory image for this mipmap level.

A "view" is a collection of z_size pages for each mipmap level. Most textures have only one view, except for multiview or stereo textures.

For a non-compressed texture, this is the same as get_expected_ram_mipmap_view_size(). For a compressed texture, this may be a smaller value. (We do assume that all pages will be the same size on a compressed texture).

◆ getRamPageSize()

int getRamPageSize ( )

Returns the number of bytes used by the in-memory image per page, or 0 if there is no in-memory image.

For a non-compressed texture, this is the same as get_expected_ram_page_size(). For a compressed texture, this may be a smaller value. (We do assume that all pages will be the same size on a compressed texture).

◆ getRamViewSize()

int getRamViewSize ( )

Returns the number of bytes used by the in-memory image per view, or 0 if there is no in-memory image.

Since each view is a stack of z_size pages, this is get_z_size() * get_ram_page_size().

◆ getRenderToTexture()

bool getRenderToTexture ( )

Returns a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture.

Normally, a user should not need to set this flag directly; it is set automatically by the low-level display code when a texture is bound to a framebuffer.

◆ getResident()

bool getResident ( PreparedGraphicsObjects  prepared_objects)

Returns true if this Texture is reported to be resident within graphics memory for the indicated GSG.

◆ getSimpleImageModified()

UpdateSeq getSimpleImageModified ( )

Returns a sequence number which is guaranteed to change at least every time the texture's "simple" image data is modified.

◆ getSimpleRamImage()

CPTAUchar getSimpleRamImage ( )

Returns the image data associated with the "simple" texture image.

This is provided for some textures as an option to display while the main texture image is being loaded from disk.

Unlike get_ram_image(), this function will always return immediately. Either the simple image is available, or it is not.

The "simple" image is always 4 components, 1 byte each, regardless of the parameters of the full texture. The simple image is only supported for ordinary 2-d textures.

◆ getSimpleRamImageSize()

int getSimpleRamImageSize ( )

Returns the number of bytes used by the "simple" image, or 0 if there is no simple image.

◆ getSimpleXSize()

int getSimpleXSize ( )

Returns the width of the "simple" image in texels.

◆ getSimpleYSize()

int getSimpleYSize ( )

Returns the height of the "simple" image in texels.

◆ getTexScale()

LVecBase2 getTexScale ( )

Returns a scale pair that is suitable for applying to geometry via NodePath::set_tex_scale(), which will convert texture coordinates on the geometry from the range 0..1 into the appropriate range to render the video part of the texture.

This is necessary only if a padding size has been set via set_pad_size() (or implicitly via something like "textures-power-2 pad" in the config.prc file). In this case, this is a convenient way to generate UV's that reflect the built-in padding size.

◆ getTexturesPower2()

static AutoTextureScale getTexturesPower2 ( )
static

This flag returns ATS_none, ATS_up, or ATS_down and controls the scaling of textures in general.

It is initialized from the config variable of the same name, but it can be subsequently adjusted. See also get_auto_texture_scale().

◆ getTextureType()

Texture::TextureType getTextureType ( )

Returns the overall interpretation of the texture.

◆ getUncompressedRamImage()

CPTAUchar getUncompressedRamImage ( )

Returns the system-RAM image associated with the texture, in an uncompressed form if at all possible.

If get_ram_image_compression() is CM_off, then the system-RAM image is already uncompressed, and this returns the same thing as get_ram_image().

If get_ram_image_compression() is anything else, then the system-RAM image is compressed. In this case, the image will be reloaded from the original file (not from the cache), in the hopes that an uncompressed image will be found there.

If an uncompressed image cannot be found, returns NULL.

◆ getUsageHint()

GeomEnums::UsageHint getUsageHint ( )

Returns the usage hint specified for buffer textures, or UH_unspecified for all other texture types.

◆ getWrapU()

SamplerState::WrapMode getWrapU ( )

Returns the wrap mode of the texture in the U direction.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getWrapV()

SamplerState::WrapMode getWrapV ( )

Returns the wrap mode of the texture in the V direction.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getWrapW()

SamplerState::WrapMode getWrapW ( )

Returns the wrap mode of the texture in the W direction.

This is the depth direction of 3-d textures.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ getXSize()

int getXSize ( )

Returns the width of the texture image in texels.

◆ getYSize()

int getYSize ( )

Returns the height of the texture image in texels.

For a 1-d texture, this will be 1.

◆ getZSize()

int getZSize ( )

Returns the depth of the texture image in texels.

For a 1-d texture or 2-d texture, this will be 1. For a cube map texture, this will be 6.

◆ hasAllRamMipmapImages()

bool hasAllRamMipmapImages ( )

Returns true if all expected mipmap levels have been defined and exist in the system RAM, or false if even one mipmap level is missing.

◆ hasAlphaFilename()

bool hasAlphaFilename ( )

Returns true if the alpha_filename has been set and is available.

See set_alpha_filename().

◆ hasAlphaFullpath()

bool hasAlphaFullpath ( )

Returns true if the alpha_fullpath has been set and is available.

See set_alpha_fullpath().

◆ hasAutoTextureScale()

bool hasAutoTextureScale ( )

Returns true if set_auto_texture_scale() has been set to something other than ATS_unspecified for this particular texture.

◆ hasClearColor()

bool hasClearColor ( )

Returns true if a color was previously set using set_clear_color.

◆ hasCompression()

bool hasCompression ( )

Returns true if the texture indicates it wants to be compressed, either with CM_on or higher, or CM_default and compressed-textures is true.

If true returned, this is not a guarantee that the texture is actually successfully compressed on the GSG. It may be that the GSG does not support the requested compression mode, in which case the texture may actually be stored uncompressed in texture memory.

◆ hasFilename()

bool hasFilename ( )

Returns true if the filename has been set and is available.

See set_filename().

◆ hasFullpath()

bool hasFullpath ( )

Returns true if the fullpath has been set and is available.

See set_fullpath().

◆ hasRamImage()

bool hasRamImage ( )

Returns true if the Texture has its image contents available in main RAM, false if it exists only in texture memory or in the prepared GSG context.

Note that this has nothing to do with whether get_ram_image() will fail or not. Even if has_ram_image() returns false, get_ram_image() may still return a valid RAM image, because get_ram_image() will automatically load the texture from disk if necessary. The only thing has_ram_image() tells you is whether the texture is available right now without hitting the disk first.

Note also that if an application uses only one GSG, it may appear that has_ram_image() returns true if the texture has not yet been loaded by the GSG, but this correlation is not true in general and should not be depended on. Specifically, if an application ever uses multiple GSG's in its lifetime (for instance, by opening more than one window, or by closing its window and opening another one later), then has_ram_image() may well return false on textures that have never been loaded on the current GSG.

◆ hasRamMipmapImage()

bool hasRamMipmapImage ( int  n)

Returns true if the Texture has the nth mipmap level available in system memory, false otherwise.

If the texture's minfilter mode requires mipmapping (see uses_mipmaps()), and all the texture's mipmap levels are not available when the texture is rendered, they will be generated automatically.

◆ hasSimpleRamImage()

bool hasSimpleRamImage ( )

Returns true if the Texture has a "simple" image available in main RAM.

◆ hasTexturesPower2()

static bool hasTexturesPower2 ( )
static

If true, then get_textures_power_2 has been set using set_textures_power_2.

If false, then get_textures_power_2 simply returns the config variable of the same name.

◆ hasUncompressedRamImage()

bool hasUncompressedRamImage ( )

Returns true if the Texture has its image contents available in main RAM and is uncompressed, false otherwise.

See has_ram_image().

◆ isCacheable()

bool isCacheable ( )

Returns true if there is enough information in this Texture object to write it to the bam cache successfully, false otherwise.

For most textures, this is the same as has_ram_image().

◆ isPrepared()

bool isPrepared ( PreparedGraphicsObjects  prepared_objects)

Returns true if the texture has already been prepared or enqueued for preparation on the indicated GSG, false otherwise.

◆ load() [1/4]

bool load ( const PNMImage  pnmimage,
const LoaderOptions  options 
)

Replaces the texture with the indicated image.

◆ load() [2/4]

bool load ( const PNMImage  pnmimage,
int  z,
int  n,
const LoaderOptions  options 
)

Stores the indicated image in the given page and mipmap level.

See read().

◆ load() [3/4]

bool load ( const PfmFile  pfm,
const LoaderOptions  options 
)

Replaces the texture with the indicated image.

◆ load() [4/4]

bool load ( const PfmFile  pfm,
int  z,
int  n,
const LoaderOptions  options 
)

Stores the indicated image in the given page and mipmap level.

See read().

◆ loadRelated()

Texture loadRelated ( const InternalName  suffix)

Loads a texture whose filename is derived by concatenating a suffix to the filename of this texture.

May return NULL, for example, if this texture doesn't have a filename.

◆ loadSubImage()

bool loadSubImage ( const PNMImage  pnmimage,
int  x,
int  y,
int  z,
int  n 
)

Stores the indicated image in a region of the texture.

The texture properties remain unchanged. This can be more efficient than updating an entire texture, but has a few restrictions: for one, you must ensure that the texture is still in RAM (eg. using set_keep_ram_image) and it may not be compressed.

◆ makeCopy()

Texture makeCopy ( )

Returns a new copy of the same Texture.

This copy, if applied to geometry, will be copied into texture as a separate texture from the original, so it will be duplicated in texture memory (and may be independently modified if desired).

If the Texture is a VideoTexture, the resulting duplicate may be animated independently of the original.

◆ makeFromTxo()

static Texture makeFromTxo ( Istream  in,
str  filename 
)
static

Constructs a new Texture object from the txo file.

This is similar to Texture::read_txo(), but it constructs and returns a new object, which allows it to return a subclass of Texture (for instance, a movie texture).

Pass a real filename if it is available, or empty string if it is not.

◆ makeRamImage()

PTAUchar makeRamImage ( )

Discards the current system-RAM image for the texture, if any, and allocates a new buffer of the appropriate size.

Returns the new buffer.

This does not affect keep_ram_image.

◆ makeRamMipmapImage()

PTAUchar makeRamMipmapImage ( int  n)

Discards the current system-RAM image for the nth mipmap level, if any, and allocates a new buffer of the appropriate size.

Returns the new buffer.

This does not affect keep_ram_image.

◆ mightHaveRamImage()

bool mightHaveRamImage ( )

Returns true if the texture's image contents are currently available in main RAM, or there is reason to believe it can be loaded on demand.

That is, this function returns a "best guess" as to whether get_ram_image() will succeed without actually calling it first.

◆ modifyRamImage()

PTAUchar modifyRamImage ( )

Returns a modifiable pointer to the system-RAM image.

This assumes the RAM image should be uncompressed. If the RAM image has been dumped, or is stored compressed, creates a new one.

This does not affect keep_ram_image.

◆ modifyRamMipmapImage()

PTAUchar modifyRamMipmapImage ( int  n)

Returns a modifiable pointer to the system-RAM image for the nth mipmap level.

This assumes the RAM image is uncompressed; if this is not the case, raises an assertion.

This does not affect keep_ram_image.

◆ modifySimpleRamImage()

PTAUchar modifySimpleRamImage ( )

Returns a modifiable pointer to the internal "simple" texture image.

See set_simple_ram_image().

◆ newSimpleRamImage()

PTAUchar newSimpleRamImage ( int  x_size,
int  y_size 
)

Creates an empty array for the simple ram image of the indicated size, and returns a modifiable pointer to the new array.

See set_simple_ram_image().

◆ peek()

TexturePeeker peek ( )

Returns a TexturePeeker object that can be used to examine the individual texels stored within this Texture by (u, v) coordinate.

If the texture has a ram image resident, that image is used. If it does not have a full ram image but does have a simple_ram_image resident, that image is used instead. If neither image is resident the full image is reloaded.

Returns NULL if the texture cannot find an image to load, or the texture format is incompatible.

◆ prepare()

AsyncFuture prepare ( PreparedGraphicsObjects  prepared_objects)

Indicates that the texture should be enqueued to be prepared in the indicated prepared_objects at the beginning of the next frame.

This will ensure the texture is already loaded into texture memory if it is expected to be rendered soon.

Use this function instead of prepare_now() to preload textures from a user interface standpoint.

◆ prepareNow()

TextureContext prepareNow ( int  view,
PreparedGraphicsObjects  prepared_objects,
GraphicsStateGuardianBase  gsg 
)

Creates a context for the texture on the particular GSG, if it does not already exist.

Returns the new (or old) TextureContext. This assumes that the GraphicsStateGuardian is the currently active rendering context and that it is ready to accept new textures. If this is not necessarily the case, you should use prepare() instead.

Normally, this is not called directly except by the GraphicsStateGuardian; a texture does not need to be explicitly prepared by the user before it may be rendered.

◆ read() [1/4]

bool read ( const Filename  fullpath,
const Filename  alpha_fullpath,
int  primary_file_num_channels,
int  alpha_file_channel,
const LoaderOptions  options 
)

Combine a 3-component image with a grayscale image to get a 4-component image.

See the description of the full-parameter read() method for the meaning of the primary_file_num_channels and alpha_file_channel parameters.

◆ read() [2/4]

bool read ( const Filename  fullpath,
const Filename  alpha_fullpath,
int  primary_file_num_channels,
int  alpha_file_channel,
int  z,
int  n,
bool  read_pages,
bool  read_mipmaps,
BamCacheRecord  record,
const LoaderOptions  options 
)

Reads the texture from the indicated filename.

If primary_file_num_channels is not 0, it specifies the number of components to downgrade the image to if it is greater than this number.

If the filename has the extension .txo, this implicitly reads a texture object instead of a filename (which replaces all of the texture properties). In this case, all the rest of the parameters are ignored, and the filename should not contain any hash marks; just the one named file will be read, since a single .txo file can contain all pages and mipmaps necessary to define a texture.

If alpha_fullpath is not empty, it specifies the name of a file from which to retrieve the alpha. In this case, alpha_file_channel represents the numeric channel of this image file to use as the resulting texture's alpha channel; usually, this is 0 to indicate the grayscale combination of r, g, b; or it may be a one-based channel number, e.g. 1 for the red channel, 2 for the green channel, and so on.

If read pages is false, then z indicates the page number into which this image will be assigned. Normally this is 0 for the first (or only) page of the texture. 3-D textures have one page for each level of depth, and cube map textures always have six pages.

If read_pages is true, multiple images will be read at once, one for each page of a cube map or a 3-D texture. In this case, the filename should contain a sequence of one or more hash marks ("#") which will be filled in with the z value of each page, zero-based. In this case, the z parameter indicates the maximum z value that will be loaded, or 0 to load all filenames that exist.

If read_mipmaps is false, then n indicates the mipmap level to which this image will be assigned. Normally this is 0 for the base texture image, but it is possible to load custom mipmap levels into the later images. After the base texture image is loaded (thus defining the size of the texture), you can call get_expected_num_mipmap_levels() to determine the maximum sensible value for n.

If read_mipmaps is true, multiple images will be read as above, but this time the images represent the different mipmap levels of the texture image. In this case, the n parameter indicates the maximum n value that will be loaded, or 0 to load all filenames that exist (up to the expected number of mipmap levels).

If both read_pages and read_mipmaps is true, then both sequences will be read; the filename should contain two sequences of hash marks, separated by some character such as a hyphen, underscore, or dot. The first hash mark sequence will be filled in with the mipmap level, while the second hash mark sequence will be the page index.

This method implicitly sets keep_ram_image to false.

◆ read() [3/4]

bool read ( const Filename  fullpath,
const LoaderOptions  options 
)

Reads the named filename into the texture.

◆ read() [4/4]

bool read ( const Filename  fullpath,
int  z,
int  n,
bool  read_pages,
bool  read_mipmaps,
const LoaderOptions  options 
)

Reads a single file into a single page or mipmap level, or automatically reads a series of files into a series of pages and/or mipmap levels.

See the description of the full-parameter read() method for the meaning of the various parameters.

◆ readDds()

bool readDds ( Istream  in,
str  filename,
bool  header_only 
)

Reads the texture from a DDS file object.

This is a Microsoft-defined file format; it is similar in principle to a txo object, in that it is designed to contain the texture image in a form as similar as possible to its runtime image, and it can contain mipmaps, pre-compressed textures, and so on.

As with read_txo, the filename is just for reference.

◆ readKtx()

bool readKtx ( Istream  in,
str  filename,
bool  header_only 
)

Reads the texture from a KTX file object.

This is a Khronos-defined file format; it is similar in principle to a dds object, in that it is designed to contain the texture image in a form as similar as possible to its runtime image, and it can contain mipmaps, pre-compressed textures, and so on.

As with read_dds, the filename is just for reference.

◆ readTxo()

bool readTxo ( Istream  in,
str  filename 
)

Reads the texture from a Panda texture object.

This defines the complete Texture specification, including the image data as well as all texture properties. This only works if the txo file contains a static Texture image, as opposed to a subclass of Texture such as a movie texture.

Pass a real filename if it is available, or empty string if it is not.

◆ release()

bool release ( PreparedGraphicsObjects  prepared_objects)

Frees the texture context only on the indicated object, if it exists there.

Returns true if it was released, false if it had not been prepared.

◆ releaseAll()

int releaseAll ( )

Frees the context allocated on all objects for which the texture has been declared.

Returns the number of contexts which have been freed.

◆ reload()

bool reload ( )

Re-reads the Texture from its disk file.

Useful when you know the image on disk has recently changed, and you want to update the Texture image.

Returns true on success, false on failure (in which case, the Texture may or may not still be valid).

◆ rescaleTexture()

bool rescaleTexture ( )

This method is similar to consider_rescale(), but instead of scaling a separate PNMImage, it will ask the Texture to rescale its own internal image to a power of 2, according to the config file requirements.

This may be useful after loading a Texture image by hand, instead of reading it from a disk file. Returns true if the texture is changed, false if it was not.

◆ setAlphaFilename()

setAlphaFilename ( const Filename  alpha_filename)

Sets the name of the file that contains the image's alpha channel contents.

Normally, this is set automatically when the image is loaded, for instance via Texture::read().

The Texture's get_filename() function returns the name of the image file that was loaded into the buffer. In the case where a texture specified two separate files to load, a 1- or 3-channel color image and a 1-channel alpha image, this Filename is update to contain the name of the image file that was loaded into the buffer's alpha channel.

◆ setAlphaFullpath()

setAlphaFullpath ( const Filename  alpha_fullpath)

Sets the full pathname to the file that contains the image's alpha channel contents, as found along the search path.

Normally, this is set automatically when the image is loaded, for instance via Texture::read().

◆ setAnisotropicDegree()

setAnisotropicDegree ( int  anisotropic_degree)

Specifies the level of anisotropic filtering to apply to the texture.

Set this 0 to indicate the default value, which is specified in the texture- anisotropic-degree config variable.

To explicitly disable anisotropic filtering, set this value to 1. To explicitly enable anisotropic filtering, set it to a value higher than 1; larger numbers indicate greater degrees of filtering.

This sets the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ setAutoTextureScale()

setAutoTextureScale ( AutoTextureScale  scale)

Specifies the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk.

See set_textures_power_2().

◆ setAuxData()

setAuxData ( str  key,
TypedReferenceCount  aux_data 
)

Records an arbitrary object in the Texture, associated with a specified key.

The object may later be retrieved by calling get_aux_data() with the same key.

These data objects are not recorded to a bam or txo file.

◆ setBorderColor()

setBorderColor ( const LColor  color)

Specifies the solid color of the texture's border.

Some OpenGL implementations use a border for tiling textures; in Panda, it is only used for specifying the clamp color.

This sets the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ setClearColor()

setClearColor ( const LColor  color)

Sets the color that will be used to fill the texture image in absence of any image data.

It is used when any of the setup_texture functions or clear_image is called and image data is not provided using read() or modify_ram_image().

This does not affect a texture that has already been cleared; call clear_image to clear it again.

◆ setComponentType()

setComponentType ( Texture::ComponentType  component_type)

Changes the data value for the texture components.

This implicitly sets component_width as well.

◆ setCompression()

setCompression ( Texture::CompressionMode  compression)

Requests that this particular Texture be compressed when it is loaded into texture memory.

This refers to the internal compression of the texture image within texture memory; it is not related to jpeg or png compression, which are disk file compression formats. The actual disk file that generated this texture may be stored in a compressed or uncompressed format supported by Panda; it will be decompressed on load, and then recompressed by the graphics API if this parameter is not CM_off.

If the GSG does not support this texture compression mode, the texture will silently be loaded uncompressed.

◆ setDefaultSampler()

setDefaultSampler ( const SamplerState  sampler)

This sets the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level.

This encompasses the settings for get_wrap_u, get_minfilter, get_anisotropic_degree, etc.

This makes a copy of the SamplerState object, so future modifications of the same SamplerState will have no effect on this texture unless you call set_default_sampler again.

◆ setFilename()

setFilename ( const Filename  filename)

Sets the name of the file that contains the image's contents.

Normally, this is set automatically when the image is loaded, for instance via Texture::read().

The Texture's get_name() function used to return the filename, but now returns just the basename (without the extension), which is a more useful name for identifying an image in show code.

◆ setFormat()

setFormat ( Texture::Format  format)

Changes the format value for the texture components.

This implicitly sets num_components as well.

◆ setFullpath()

setFullpath ( const Filename  fullpath)

Sets the full pathname to the file that contains the image's contents, as found along the search path.

Normally, this is set automatically when the image is loaded, for instance via Texture::read().

◆ setKeepRamImage()

setKeepRamImage ( bool  keep_ram_image)

Sets the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering.

This will be false for most textures, which can reload their images if needed by rereading the input file. However, textures that were generated dynamically and cannot be easily reloaded will want to set this flag to true, so that the texture will always keep its image copy around.

◆ setLoadedFromImage()

setLoadedFromImage ( bool  flag)

Sets the flag that indicates the texture has been loaded from a disk file or PNMImage.

You should also ensure the filename has been set correctly. When this flag is true, the texture may be automatically reloaded when its ram image needs to be replaced.

◆ setLoadedFromTxo()

setLoadedFromTxo ( bool  flag)

Sets the flag that indicates the texture has been loaded from a txo file.

You probably shouldn't be setting this directly; it is set automatically when a Texture is loaded.

◆ setMagfilter()

setMagfilter ( Texture::FilterType  filter)

◆ setMatchFramebufferFormat()

setMatchFramebufferFormat ( bool  flag)

Sets the special flag that, if true, indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa).

This sets only the graphics card's idea of the texture format; it is not related to the system-memory format.

◆ setMinfilter()

setMinfilter ( Texture::FilterType  filter)

◆ setNumViews()

setNumViews ( int  num_views)

Sets the number of "views" within a texture.

A view is a completely separate image stored within the Texture object. Most textures have only one view, but a stereo texture, for instance, may have two views, a left and a right image. Other uses for multiple views are not yet defined.

If this value is greater than one, the additional views are accessed as additional pages beyond get_z_size().

This also implicitly unloads the texture if it has already been loaded.

◆ setOrigFileSize()

setOrigFileSize ( int  x,
int  y,
int  z 
)

Specifies the size of the texture as it exists in its original disk file, before any Panda scaling.

◆ setPadSize()

setPadSize ( int  x,
int  y,
int  z 
)

Sets the size of the pad region.

Sometimes, when a video card demands power-of-two textures, it is necessary to create a big texture and then only use a portion of it. The pad region indicates which portion of the texture is not really in use. All operations use the texture as a whole, including the pad region, unless they explicitly state that they use only the non-pad region.

Changing the texture's size clears the pad region.

◆ setPostLoadStoreCache()

setPostLoadStoreCache ( bool  flag)

Sets the post_load_store_cache flag.

When this is set, the next time the texture is loaded on a GSG, it will automatically extract its RAM image from the GSG and save it to the global BamCache.

This is used to store compressed RAM images in the BamCache. This flag should not be set explicitly; it is set automatically by the TexturePool when model-cache-compressed-textures is set true.

◆ setQualityLevel()

setQualityLevel ( Texture::QualityLevel  quality_level)

Sets a hint to the renderer about the desired performance / quality tradeoff for this particular texture.

This is most useful for the tinydisplay software renderer; for normal, hardware-accelerated renderers, this may have little or no effect.

◆ setRamImage()

setRamImage ( object  image,
Texture::CompressionMode  compression,
int  page_size 
)

◆ setRamImageAs()

setRamImageAs ( object  image,
str  provided_format 
)

◆ setRamMipmapImage()

setRamMipmapImage ( int  n,
CPTAUchar  image,
int  page_size 
)

Replaces the current system-RAM image for the indicated mipmap level with the new data.

If compression is not CM_off, it indicates that the new data is already pre-compressed in the indicated format.

This does not affect keep_ram_image.

◆ setRamMipmapPointerFromInt()

setRamMipmapPointerFromInt ( long  pointer,
int  n,
int  page_size 
)

Accepts a raw pointer cast as an int, which is then passed to set_ram_mipmap_pointer(); see the documentation for that method.

This variant is particularly useful to set an external pointer from a language like Python, which doesn't support void pointers directly.

◆ setRenderToTexture()

setRenderToTexture ( bool  render_to_texture)

Sets a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture.

This controls some low-level choices made about the texture object itself. For instance, compressed textures are disallowed when this flag is set true.

Normally, a user should not need to set this flag directly; it is set automatically by the low-level display code when a texture is bound to a framebuffer.

◆ setSimpleRamImage()

setSimpleRamImage ( CPTAUchar  image,
int  x_size,
int  y_size 
)

Replaces the internal "simple" texture image.

This can be used as an option to display while the main texture image is being loaded from disk. It is normally a very small image, 16x16 or smaller (and maybe even 1x1), that is designed to give just enough sense of color to serve as a placeholder until the full texture is available.

The "simple" image is always 4 components, 1 byte each, regardless of the parameters of the full texture. The simple image is only supported for ordinary 2-d textures.

Also see generate_simple_ram_image(), modify_simple_ram_image(), and new_simple_ram_image().

◆ setSizePadded()

setSizePadded ( int  x,
int  y,
int  z 
)

Changes the size of the texture, padding if necessary, and setting the pad region as well.

◆ setTexturesPower2()

static setTexturesPower2 ( AutoTextureScale  scale)
static

Set this flag to ATS_none, ATS_up, ATS_down, or ATS_pad to control the scaling of textures in general, if a particular texture does not override this.

See also set_auto_texture_scale() for the per-texture override.

◆ setup1dTexture() [1/2]

setup1dTexture ( )

Sets the texture as an empty 1-d texture with no dimensions.

Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup1dTexture() [2/2]

setup1dTexture ( int  x_size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as an empty 1-d texture with the specified dimensions and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup2dTexture() [1/2]

setup2dTexture ( )

Sets the texture as an empty 2-d texture with no dimensions.

Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup2dTexture() [2/2]

setup2dTexture ( int  x_size,
int  y_size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as an empty 2-d texture with the specified dimensions and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup2dTextureArray() [1/2]

setup2dTextureArray ( int  z_size)

Sets the texture as an empty 2-d texture array with no dimensions (though if you know the depth ahead of time, it saves a bit of reallocation later).

Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup2dTextureArray() [2/2]

setup2dTextureArray ( int  x_size,
int  y_size,
int  z_size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as an empty 2-d texture array with the specified dimensions and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup3dTexture() [1/2]

setup3dTexture ( int  z_size)

Sets the texture as an empty 3-d texture with no dimensions (though if you know the depth ahead of time, it saves a bit of reallocation later).

Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setup3dTexture() [2/2]

setup3dTexture ( int  x_size,
int  y_size,
int  z_size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as an empty 3-d texture with the specified dimensions and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data.

◆ setupBufferTexture()

setupBufferTexture ( int  size,
Texture::ComponentType  component_type,
Texture::Format  format,
GeomEnums::UsageHint  usage 
)

Sets the texture as an empty buffer texture with the specified size and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

Note that a buffer texture's format needs to match the component type.

◆ setupCubeMap() [1/2]

setupCubeMap ( )

Sets the texture as an empty cube map texture with no dimensions.

Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

◆ setupCubeMap() [2/2]

setupCubeMap ( int  size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as an empty cube map texture with the specified dimensions and properties.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

Note that a cube map should always consist of six square images, so x_size and y_size will be the same, and z_size is always 6.

◆ setupCubeMapArray() [1/2]

setupCubeMapArray ( int  num_cube_maps)

Sets the texture as cube map array with N cube maps.

Note that this number is not the same as the z_size. Follow up with read() or load() to fill the texture properties and image data, or use set_clear_color to let the texture be cleared to a solid color.

Since
1.10.0

◆ setupCubeMapArray() [2/2]

setupCubeMapArray ( int  size,
int  num_cube_maps,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture as cube map array with N cube maps with the specified dimensions and format.

Follow up with set_ram_image() or modify_ram_image() to fill the image data, or use set_clear_color to let the texture be cleared to a solid color.

The num_cube_maps given here is multiplied by six to become the z_size of the image.

Since
1.10.0

◆ setupTexture()

setupTexture ( Texture::TextureType  texture_type,
int  x_size,
int  y_size,
int  z_size,
Texture::ComponentType  component_type,
Texture::Format  format 
)

Sets the texture to the indicated type and dimensions, presumably in preparation for calling read() or load(), or set_ram_image() or modify_ram_image(), or use set_clear_color to let the texture be cleared to a solid color.

◆ setWrapU()

setWrapU ( Texture::WrapMode  wrap)

◆ setWrapV()

setWrapV ( Texture::WrapMode  wrap)

◆ setWrapW()

setWrapW ( Texture::WrapMode  wrap)

◆ setXSize()

setXSize ( int  x_size)

Changes the x size indicated for the texture.

This also implicitly unloads the texture if it has already been loaded.

◆ setYSize()

setYSize ( int  y_size)

Changes the y size indicated for the texture.

This also implicitly unloads the texture if it has already been loaded.

◆ setZSize()

setZSize ( int  z_size)

Changes the z size indicated for the texture.

This also implicitly unloads the texture if it has already been loaded.

◆ store() [1/4]

bool store ( PNMImage  pnmimage)

Saves the texture to the indicated PNMImage, but does not write it to disk.

◆ store() [2/4]

bool store ( PNMImage  pnmimage,
int  z,
int  n 
)

Saves the indicated page and mipmap level of the texture to the PNMImage.

◆ store() [3/4]

bool store ( PfmFile  pfm)

Saves the texture to the indicated PfmFile, but does not write it to disk.

◆ store() [4/4]

bool store ( PfmFile  pfm,
int  z,
int  n 
)

Saves the indicated page and mipmap level of the texture to the PfmFile.

◆ stringComponentType()

static Texture::ComponentType stringComponentType ( str  str)
static

Returns the ComponentType corresponding to the indicated string word.

◆ stringCompressionMode()

static Texture::CompressionMode stringCompressionMode ( str  str)
static

Returns the CompressionMode value associated with the given string representation.

◆ stringFormat()

static Texture::Format stringFormat ( str  str)
static

Returns the Format corresponding to the indicated string word.

◆ stringQualityLevel()

static Texture::QualityLevel stringQualityLevel ( str  str)
static

Returns the QualityLevel value associated with the given string representation.

◆ stringTextureType()

static Texture::TextureType stringTextureType ( str  str)
static

Returns the TextureType corresponding to the indicated string word.

◆ uncompressRamImage()

bool uncompressRamImage ( )

Attempts to uncompress the texture's RAM image internally.

In order for this to work, the squish library must have been compiled into Panda, and the ram image must be compressed in a format supported by squish.

Returns true if successful, false otherwise.

◆ upToPower2()

static int upToPower2 ( int  value)
static

Returns the smallest power of 2 greater than or equal to value.

◆ usesMipmaps()

bool usesMipmaps ( )

Returns true if the minfilter settings on this texture indicate the use of mipmapping, false otherwise.

◆ wasImageModified()

bool wasImageModified ( PreparedGraphicsObjects  prepared_objects)

Returns true if the texture needs to be re-loaded onto the indicated GSG, either because its image data is out-of-date, or because it's not fully prepared now.

◆ write() [1/3]

bool write ( const Filename  fullpath)

Writes the texture to the named filename.

◆ write() [2/3]

bool write ( const Filename  fullpath,
int  z,
int  n,
bool  write_pages,
bool  write_mipmaps 
)

Writes a single page or mipmap level to a single file, or automatically writes a series of pages and/or mipmap levels to a numbered series of files.

If the filename ends in the extension .txo, this implicitly writes a Panda texture object (.txo) instead of an image file. In this case, the remaining parameters are ignored, and only one file is written, which will contain all of the pages and resident mipmap levels in the texture.

If write_pages is false, then z indicates the page number to write. 3-D textures have one page number for each level of depth; cube maps have six pages number 0 through 5. Other kinds of textures have only one page, numbered 0. If there are multiple views, the range of z is increased; the total range is [0, get_num_pages()).

If write_pages is true, then all pages of the texture will be written. In this case z is ignored, and the filename should contain a sequence of hash marks ("#") which will be filled in with the page index number.

If write_mipmaps is false, then n indicates the mipmap level number to write. Normally, this is 0, for the base texture image. Normally, the mipmap levels of a texture are not available in RAM (they are generated automatically by the graphics card). However, if you have the mipmap levels available, for instance because you called generate_ram_mipmap_images() to generate them internally, or you called GraphicsEngine::extract_texture_data() to retrieve them from the graphics card, then you may write out each mipmap level with this parameter.

If write_mipmaps is true, then all mipmap levels of the texture will be written. In this case n is ignored, and the filename should contain a sequence of hash marks ("#") which will be filled in with the mipmap level number.

If both write_pages and write_mipmaps is true, then all pages and all mipmap levels will be written. In this case, the filename should contain two different sequences of hash marks, separated by a character such as a hyphen, underscore, or dot. The first hash mark sequence will be filled in with the mipmap level, while the second hash mark sequence will be the page index.

◆ write() [3/3]

write ( Ostream  out,
int  indent_level 
)

Not to be confused with write(Filename), this method simply describes the texture properties.

◆ writeTxo()

bool writeTxo ( Ostream  out,
str  filename 
)

Writes the texture to a Panda texture object.

This defines the complete Texture specification, including the image data as well as all texture properties.

The filename is just for reference.

Member Data Documentation

◆ alpha_filename

const Filename alpha_filename

Returns the alpha_filename that has been set.

If this is set, it represents the name of the alpha component, which is stored in a separate file. See also get_filename(), and get_alpha_fullpath().

◆ alpha_fullpath

const Filename alpha_fullpath

Returns the alpha_fullpath that has been set.

This is the full path to the alpha part of the image file as it was found along the texture search path.

◆ anisotropic_degree

int anisotropic_degree

Returns the degree of anisotropic filtering that should be applied to the texture.

This value may return 0, indicating the default value; see also get_effective_anisotropic_degree.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ auto_texture_scale

AutoTextureScale auto_texture_scale

Returns the power-of-2 texture-scaling mode that will be applied to this particular texture when it is next loaded from disk.

See set_textures_power_2().

◆ aux_data

TypedReferenceCount aux_data[]

◆ border_color

LColor border_color

Returns the solid color of the texture's border.

Some OpenGL implementations use a border for tiling textures; in Panda, it is only used for specifying the clamp color.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ cacheable

bool cacheable

Returns true if there is enough information in this Texture object to write it to the bam cache successfully, false otherwise.

For most textures, this is the same as has_ram_image().

◆ clear_color

LColor clear_color

Returns the color that was previously set using set_clear_color.

◆ component_type

Texture::ComponentType component_type

Returns the numeric interpretation of each component of the texture.

◆ component_width

int component_width

Returns the number of bytes stored for each color component of a texel.

Typically this is 1, but it may be 2 for 16-bit texels.

◆ compression

Could maybe use has_compression here, too.

◆ default_sampler

const SamplerState default_sampler

This returns the default sampler state for this texture, containing the wrap and filter properties specified on the texture level; it may still be overridden by a sampler state specified at a higher level.

◆ effective_anisotropic_degree

int effective_anisotropic_degree

Returns the degree of anisotropic filtering that should be applied to the texture.

This value will normally not return 0, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ effective_magfilter

SamplerState::FilterType effective_magfilter

Returns the filter mode of the texture for magnification, with special treatment for FT_default.

This will normally not return FT_default, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ effective_minfilter

SamplerState::FilterType effective_minfilter

Returns the filter mode of the texture for minification, with special treatment for FT_default.

This will normally not return FT_default, unless there is an error in the config file.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ effective_quality_level

Texture::QualityLevel effective_quality_level

Returns the current quality_level hint, or the global default quality_level if this texture doesn't specify a quality level.

This value will not normally return QL_default (unless there is an error in the config file)

◆ expected_num_mipmap_levels

int expected_num_mipmap_levels

Returns the number of mipmap levels that should be defined for this texture, given the texture's size.

Note that this returns a number appropriate for mipmapping, even if the texture does not currently have mipmapping enabled.

◆ expected_ram_image_size

int expected_ram_image_size

Returns the number of bytes that ought to be used by the in-memory image, based on the texture parameters.

◆ expected_ram_page_size

int expected_ram_page_size

Returns the number of bytes that should be used per each Z page of the 3-d texture.

For a 2-d or 1-d texture, this is the same as get_expected_ram_image_size().

◆ filename

const Filename filename

Returns the filename that has been set.

This is the name of the file as it was requested. Also see get_fullpath().

◆ format

Returns the format of the texture, which represents both the semantic meaning of the texels and, to some extent, their storage information.

◆ fullpath

const Filename fullpath

Returns the fullpath that has been set.

This is the full path to the file as it was found along the texture search path.

◆ image_modified

UpdateSeq image_modified

Returns a sequence number which is guaranteed to change at least every time the texture image data (including mipmap levels) are modified.

◆ keep_ram_image

bool keep_ram_image

Returns the flag that indicates whether this Texture is eligible to have its main RAM copy of the texture memory dumped when the texture is prepared for rendering.

See set_keep_ram_image().

◆ loaded_from_image

bool loaded_from_image

Returns the flag that indicates the texture has been loaded from a disk file or PNMImage.

See set_loaded_from_image().

◆ loaded_from_txo

bool loaded_from_txo

Returns the flag that indicates the texture has been loaded from a txo file.

◆ magfilter

Returns the filter mode of the texture for magnification.

The mipmap constants are invalid here. This may return FT_default; see also get_effective_minfilter().

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ match_framebuffer_format

bool match_framebuffer_format

Returns true if the special flag was set that indicates to the GSG that the Texture's format should be chosen to exactly match the framebuffer's format, presumably because the application intends to copy image data from the framebuffer into the Texture (or vice-versa).

◆ minfilter

Returns the filter mode of the texture for minification.

If this is one of the mipmap constants, then the texture requires mipmaps. This may return FT_default; see also get_effective_minfilter().

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ num_components

int num_components

Returns the number of color components for each texel of the texture image.

This is 3 for an rgb texture or 4 for an rgba texture; it may also be 1 or 2 for a grayscale texture.

◆ num_loadable_ram_mipmap_images

int num_loadable_ram_mipmap_images

Returns the number of contiguous mipmap levels that exist in RAM, up until the first gap in the sequence.

It is guaranteed that at least mipmap levels [0, get_num_ram_mipmap_images()) exist.

The number returned will never exceed the number of required mipmap images based on the size of the texture and its filter mode.

This method is different from get_num_ram_mipmap_images() in that it returns only the number of mipmap levels that can actually be usefully loaded, regardless of the actual number that may be stored.

◆ num_pages

int num_pages

Returns the total number of pages in the texture.

Each "page" is a 2-d texture image within the larger image–a face of a cube map, or a level of a 3-d texture. Normally, get_num_pages() is the same as get_z_size(). However, in a multiview texture, this returns get_z_size() * get_num_views().

◆ num_ram_mipmap_images

int num_ram_mipmap_images

Returns the maximum number of mipmap level images available in system memory.

The actual number may be less than this (that is, there might be gaps in the sequence); use has_ram_mipmap_image() to verify each level.

Also see get_num_loadable_ram_mipmap_images().

◆ num_views

int num_views

Returns the number of "views" in the texture.

A view is a completely separate image stored within the Texture object. Most textures have only one view, but a stereo texture, for instance, may have two views, a left and a right image. Other uses for multiple views are not yet defined.

If this value is greater than one, the additional views are accessed as additional pages beyond get_z_size().

◆ orig_file_x_size

int orig_file_x_size

Returns the X size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ orig_file_y_size

int orig_file_y_size

Returns the Y size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ orig_file_z_size

int orig_file_z_size

Returns the Z size of the original disk image that this Texture was loaded from (if it came from a disk file), before any automatic rescaling by Panda.

◆ post_load_store_cache

bool post_load_store_cache

Returns the setting of the post_load_store_cache flag.

See set_post_load_store_cache().

◆ properties_modified

UpdateSeq properties_modified

Returns a sequence number which is guaranteed to change at least every time the texture properties (unrelated to the image) are modified.

◆ quality_level

Texture::QualityLevel quality_level

Returns the current quality_level hint.

See set_quality_level(). This value may return QL_default; see get_effective_quality_level().

◆ ram_image_compression

Texture::CompressionMode ram_image_compression

Returns the compression mode in which the ram image is already stored pre- compressed.

If this is other than CM_off, you cannot rely on the contents of the ram image to be anything predicatable (it will not be an array of x by y pixels, and it probably won't have the same length as get_expected_ram_image_size()).

◆ ram_image_size

int ram_image_size

Returns the total number of bytes used by the in-memory image, across all pages and views, or 0 if there is no in-memory image.

◆ ram_page_size

int ram_page_size

Returns the number of bytes used by the in-memory image per page, or 0 if there is no in-memory image.

For a non-compressed texture, this is the same as get_expected_ram_page_size(). For a compressed texture, this may be a smaller value. (We do assume that all pages will be the same size on a compressed texture).

◆ ram_view_size

int ram_view_size

Returns the number of bytes used by the in-memory image per view, or 0 if there is no in-memory image.

Since each view is a stack of z_size pages, this is get_z_size() * get_ram_page_size().

◆ render_to_texture

bool render_to_texture

Returns a flag on the texture that indicates whether the texture is intended to be used as a direct-render target, by binding a framebuffer to a texture and rendering directly into the texture.

Normally, a user should not need to set this flag directly; it is set automatically by the low-level display code when a texture is bound to a framebuffer.

◆ simple_image_modified

UpdateSeq simple_image_modified

Returns a sequence number which is guaranteed to change at least every time the texture's "simple" image data is modified.

◆ simple_ram_image

CPTAUchar simple_ram_image

Returns the image data associated with the "simple" texture image.

This is provided for some textures as an option to display while the main texture image is being loaded from disk.

Unlike get_ram_image(), this function will always return immediately. Either the simple image is available, or it is not.

The "simple" image is always 4 components, 1 byte each, regardless of the parameters of the full texture. The simple image is only supported for ordinary 2-d textures.

◆ simple_x_size

int simple_x_size

Returns the width of the "simple" image in texels.

◆ simple_y_size

int simple_y_size

Returns the height of the "simple" image in texels.

◆ texture_type

Texture::TextureType texture_type

Returns the overall interpretation of the texture.

◆ usage_hint

Returns the usage hint specified for buffer textures, or UH_unspecified for all other texture types.

◆ wrap_u

Returns the wrap mode of the texture in the U direction.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ wrap_v

Returns the wrap mode of the texture in the V direction.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ wrap_w

Returns the wrap mode of the texture in the W direction.

This is the depth direction of 3-d textures.

This returns the default sampler state for this texture; it may still be overridden by a sampler state specified at a higher level.

◆ x_size

int x_size

Returns the width of the texture image in texels.

◆ y_size

int y_size

Returns the height of the texture image in texels.

For a 1-d texture, this will be 1.

◆ z_size

int z_size

Returns the depth of the texture image in texels.

For a 1-d texture or 2-d texture, this will be 1. For a cube map texture, this will be 6.