159 lines
5.5 KiB
Plaintext
159 lines
5.5 KiB
Plaintext
// Filename: paramTexture.I
|
|
// Created by: rdb (11Dec14)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
//
|
|
// All use of this software is subject to the terms of the revised BSD
|
|
// license. You should have received a copy of this license along
|
|
// with this source code in a file named "LICENSE."
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureSampler::Constructor
|
|
// Access: Published
|
|
// Description: Creates a new ParamTextureSampler storing the given
|
|
// texture and sampler objects.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE ParamTextureSampler::
|
|
ParamTextureSampler(Texture *tex, const SamplerState &sampler) :
|
|
_texture(tex),
|
|
_sampler(sampler)
|
|
{
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureSampler::get_value_type
|
|
// Access: Published, Virtual
|
|
// Description: Returns Texture::get_class_type(), even though it
|
|
// technically stores more than just a Texture.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE TypeHandle ParamTextureSampler::
|
|
get_value_type() const {
|
|
return Texture::get_class_type();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureSampler::get_texture
|
|
// Access: Published
|
|
// Description: Retrieves the texture stored in the parameter.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE Texture *ParamTextureSampler::
|
|
get_texture() const {
|
|
return _texture;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureSampler::get_sampler
|
|
// Access: Published
|
|
// Description: Retrieves the sampler state stored in the parameter.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE const SamplerState &ParamTextureSampler::
|
|
get_sampler() const {
|
|
return _sampler;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::Constructor
|
|
// Access: Published
|
|
// Description: Creates a new ParamTextureImage storing the given
|
|
// texture and image binding parameters.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE ParamTextureImage::
|
|
ParamTextureImage(Texture *tex, bool read, bool write, int z, int n) :
|
|
_texture(tex),
|
|
_access(0),
|
|
_bind_level(min(n, 127)),
|
|
_bind_layer(z)
|
|
{
|
|
if (read) {
|
|
_access |= A_read;
|
|
}
|
|
if (write) {
|
|
_access |= A_write;
|
|
}
|
|
if (z < 0) {
|
|
_bind_layer = 0;
|
|
_access |= A_layered;
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::get_value_type
|
|
// Access: Published, Virtual
|
|
// Description: Returns Texture::get_class_type(), even though it
|
|
// technically stores more than just a Texture.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE TypeHandle ParamTextureImage::
|
|
get_value_type() const {
|
|
return Texture::get_class_type();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::get_texture
|
|
// Access: Published
|
|
// Description: Retrieves the texture stored in the parameter.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE Texture *ParamTextureImage::
|
|
get_texture() const {
|
|
return _texture;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::has_read_access
|
|
// Access: Published
|
|
// Description: Returns true if this image should be bound with
|
|
// read access enabled.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool ParamTextureImage::
|
|
has_read_access() const {
|
|
return (_access & A_read) != 0;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::has_write_access
|
|
// Access: Published
|
|
// Description: Returns true if this image should be bound with
|
|
// write access enabled.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool ParamTextureImage::
|
|
has_write_access() const {
|
|
return (_access & A_write) != 0;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::get_bind_layered
|
|
// Access: Published
|
|
// Description: Returns true if all layers of this image should be
|
|
// bound simultaneously.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE bool ParamTextureImage::
|
|
get_bind_layered() const {
|
|
return (_access & A_layered) != 0;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::get_bind_level
|
|
// Access: Published
|
|
// Description: Returns the image level that should be bound.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE int ParamTextureImage::
|
|
get_bind_level() const {
|
|
return _bind_level;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: ParamTextureImage::get_bind_layer
|
|
// Access: Published
|
|
// Description: Returns the image layer that should be bound. This
|
|
// is undefined if get_bind_layered() returns false.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE int ParamTextureImage::
|
|
get_bind_layer() const {
|
|
return _bind_layer;
|
|
}
|