The Vish Visualization Shell 0.3
Vish
Public Member Functions | Public Attributes | List of all members
Wizt::RenderBasin::TextureTentacle Class Referenceabstract

Base class for textures, child classes are implemented by Renderers. More...

#include <ocean/Anemonia/RenderBasin.hpp>

Inheritance diagram for Wizt::RenderBasin::TextureTentacle:
Wizt::Anemone::SpecializedTentacle< Anemone::Texture > Wizt::Anemone::Tentacle MemCore::ReferenceBase< Tentacle > Wizt::GLTextureTentacle Wizt::GLTextureTentacle

Public Member Functions

virtual bool load (const MemCore::RefPtr< MemCore::ChunkBase > &TextureData, TextureFormat TF, int rank, const size_t *Dimensions, int TextureUnit=0, TextureStorageFormat TSF=AutomaticTexture(), int level=0, bool GenerateDoMipMap=false)=0
 
virtual bool setTextureParameter (const std::string &name, const std::type_info &T, const void *dataptr, int multiplicity=1)=0
 Set a texture parameter.
 
template<class Type >
bool setTextureParameter (const std::string &name, const Type &Data)
 Set a texture parameter consisting of a single element.
 
- Public Member Functions inherited from Wizt::Anemone::Tentacle
virtual bool activate (const Anemone &)=0
 Activate this tentacle.
 
virtual bool deactivate (const Anemone &)=0
 Deactivate this tentacle.
 
virtual const char * getSamplerType () const
 If this tentacle refers to some texture sampler in a shader, then hereby return the type of this sampler is it occurs in the code.
 
virtual int getTextureUnit () const
 Get the texture unit number which was specified during construction, if positive then it refers to some texture unit that is used in an associated shader.
 
virtual size_t memsize () const
 Return the memory occupied by this buffer if it occupies memory at all. Otherwise, returns 0 (default).
 
virtual size_t NumberOfElements () const
 Returns the number of elements provided and used by this object, if it refers to countable elements.
 
virtual bool updateValue (VRenderContext &Context)
 Possibly update a tentacle from settings in a context.
 
- Public Member Functions inherited from MemCore::ReferenceBase< Tentacle >
auto getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain.
 
bool isIdentical (const WeakPtr< Tentacle, Tentacle > &PossibleSelf) const noexcept
 Check if this object is identical to the one used by the given pointer.
 
void mkAutoDestructive ()
 Marks this object as being automatically destructed, e.g.
 
refcount_t refcount () const noexcept
 The strong reference count.
 
 ReferenceBase (Tentacle *that) noexcept
 Constructor, initializes reference counter to zero.
 
const auto & self () const
 Return weak pointer to the object self.
 
refcount_t wrefcount () const noexcept
 The weak reference count.
 

Public Attributes

glsl GLSLSamplerName
 Suggested type of the corresponding variable declaration in a corresponding GLSL code.
 
glsl GLSLSamplerValueType
 Suggested type of the corresponding variable type when reading the texture.
 
TextureStorageFormat myTextureStorageFormat
 Associated texture format.
 
- Public Attributes inherited from Wizt::Anemone::Tentacle
Activity_t Activity
 A bit mask telling whether this tentacle should participate in the waving of an Anemone.
 

Additional Inherited Members

- Public Types inherited from MemCore::ReferenceBase< Tentacle >
using reference_domain_t = Tentacle
 The type of the base class.
 
using SelfPtr_t = WeakPtr< Tentacle, Tentacle >
 Type for a pointer to this object itself.
 
- Protected Member Functions inherited from MemCore::ReferenceBase< Tentacle >
virtual void extremeUnction ()
 A virtual function that will be called just before the object is destroyed.
 
ReferenceBaseoperator= (const ReferenceBase &R)
 Protected assignment operator (should not be called).
 
void suicide ()
 Delete this.
 
virtual ~ReferenceBase ()
 Virtual destructor.
 

Detailed Description

Base class for textures, child classes are implemented by Renderers.

Member Function Documentation

◆ load()

virtual bool Wizt::RenderBasin::TextureTentacle::load ( const MemCore::RefPtr< MemCore::ChunkBase > &  TextureData,
TextureFormat  TF,
int  rank,
const size_t *  Dimensions,
int  TextureUnit = 0,
TextureStorageFormat  TSF = AutomaticTexture(),
int  level = 0,
bool  GenerateDoMipMap = false 
)
pure virtual
Parameters
TextureDataactual data to be loaded
TFThe type of the texture
rankThe dimensionality of the data
DimensionsThe extension of the data in each dimension, must match the provided TextureData
TextureUnitThe OpenGL texture unit in which to load these data
TSFThe internal storage format of the texture, affects memory utilization.

Implemented in Wizt::GLTextureTentacle.

◆ setTextureParameter()

virtual bool Wizt::RenderBasin::TextureTentacle::setTextureParameter ( const std::string &  name,
const std::type_info &  T,
const void *  dataptr,
int  multiplicity = 1 
)
pure virtual

Set a texture parameter.

Note that this call will not immediately issue any OpenGL calls. Rather it prepares the TextureTentacle such that the right texture parameters will be set at the right time.

Parameters
nameA textual specification of the render parameter from the list in http://www.opengl.org/sdk/docs/man4/xhtml/glTexParameter.xml or as otherwise documented in the implementation of some RenderContext.
Returns
true if the texture parameter could be set, false otherwise, for instance when the given name is an unknown keyword and/or not supported by the underlaying render context implementation.

Implemented in Wizt::GLTextureTentacle.