STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank > Class Template Reference

#include <amp_graphics.h>

Inheritance diagram for Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >:
Concurrency::graphics::texture< _Value_type, _Rank > Concurrency::graphics::texture_view< _Value_type, _Rank > Concurrency::graphics::texture_view< const _Value_type, _Rank >

Public Types

typedef _Value_type value_type
 
typedef _Short_vector_type_traits< _Value_type >::_Scalar_type scalar_type
 

Public Member Functions

__declspec(property(get=get_extent)) Concurrency Concurrency::extent< _Rank > get_extent () const __GPU
 Returns the extent that defines the shape of this texture or texture view. More...
 
Concurrency::extent< _Rank > get_mipmap_extent (unsigned int _Mipmap_level) const __CPU_ONLY
 Returns the extent for specific mipmap level of this texture or texture view. More...
 
Concurrency::extent< _Rank > get_mipmap_extent (unsigned int _Mipmap_level) const __GPU_ONLY
 Returns the extent for specific mipmap level of this texture or texture view. More...
 
__declspec(property(get=get_accelerator_view)) Concurrency Concurrency::accelerator_view get_accelerator_view () const __CPU_ONLY
 Returns the accelerator_view where this texture or texture view is located. More...
 
 __declspec (property(get=get_bits_per_scalar_element)) unsigned int bits_per_scalar_element
 Returns the number of bits per scalar element More...
 
unsigned int get_bits_per_scalar_element () const __CPU_ONLY
 
 __declspec (property(get=get_mipmap_levels)) unsigned int mipmap_levels
 Query how many mipmap levels are accessible by this texture (or texture view). More...
 
unsigned int get_mipmap_levels () const __GPU
 
 __declspec (property(get=get_data_length)) unsigned int data_length
 Returns the physical data length (in bytes) that is required in order to represent the texture on the host side with its native format. If the texture contains multiple mipmap levels the value represents the sum of physical data length for each accessible mipmap level by this texture (or texture view). More...
 
unsigned int get_data_length () const __CPU_ONLY
 

Static Public Attributes

static const int rank = _Rank
 

Protected Types

typedef Concurrency::details::_Texture_descriptor _Texture_descriptor
 

Protected Member Functions

 _Texture_base () __CPU_ONLY
 
 _Texture_base (const Concurrency::extent< _Rank > &_Ext, unsigned int _Mipmap_levels=1) __CPU_ONLY
 
 _Texture_base (const _Texture_base &_Src) __GPU
 
 _Texture_base (const _Texture_base &_Src, unsigned int _Most_detailed_mipmap_level, unsigned int _View_mipmap_levels) __CPU_ONLY
 
 _Texture_base (const _Texture_base &_Src, bool _Flatten_mipmap_levels) __GPU_ONLY
 
 _Texture_base (const Concurrency::extent< _Rank > &_Ext, const _Texture_descriptor &_Desc) __CPU_ONLY
 
void _Copy_to (const _Texture_base &_Dest) const __CPU_ONLY
 
bool operator== (const _Texture_base &_Other) const __CPU_ONLY
 
 ~_Texture_base () __GPU
 
_Ret_ _Texture_Get_texture () const __CPU_ONLY
 
unsigned int _Get_most_detailed_mipmap_level () const __GPU
 
bool _Are_mipmap_levels_overlapping (const _Texture_base &_Other) const __CPU_ONLY
 

Protected Attributes

Concurrency::extent< _Rank > _M_extent
 
_Texture_descriptor _M_texture_descriptor
 

Friends

template<typename _T >
const _Texture_descriptorConcurrency::details::_Get_texture_descriptor (const _T &_Tex) __GPU
 
template<typename _T >
_Ret_ _TextureConcurrency::details::_Get_texture (const _T &_Tex) __CPU_ONLY
 
template<typename _Value_type , int _Rank>
_Event _Copy_async_impl (const _Texture_base< _Value_type, _Rank > &_Src, const index< _Rank > &_Src_offset, const _Texture_base< _Value_type, _Rank > &_Dst, const index< _Rank > &_Dst_offset, const extent< _Rank > &_Copy_extent) __CPU_ONLY
 

Member Typedef Documentation

template<typename _Value_type, int _Rank>
typedef Concurrency::details::_Texture_descriptor Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_descriptor
protected
template<typename _Value_type, int _Rank>
typedef _Short_vector_type_traits<_Value_type>::_Scalar_type Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::scalar_type
template<typename _Value_type, int _Rank>
typedef _Value_type Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::value_type

Constructor & Destructor Documentation

template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( )
inlineprotected
503  {
504  // This default ctor is required to enable move ctor for a derived types,
505  // empty _Texture_base is later initialized by move assigment operator
506  }
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Mipmap_levels = 1 
)
inlineprotected
509  : _M_extent(_Ext), _M_texture_descriptor(/*_Most_detailed_mipmap_level=*/0, _Mipmap_levels)
510  {
512  _Are_valid_mipmap_parameters(/*_Most_detailed_mipmap_level=*/0, _Mipmap_levels);
513 
514  // Validate if we can generate _Mipmap_levels number of mipmap levels given the dimensionality of the texture
515  unsigned int _Max_mipmap_levels = _Get_max_mipmap_levels(_M_extent);
516  if (_Mipmap_levels > _Max_mipmap_levels)
517  {
518  std::stringstream _Err_msg;
519  _Err_msg << "The texture extent is too small to generate (" << _Mipmap_levels << ") mipmap levels, the maximum allowed is (" << _Max_mipmap_levels << ")";
520  throw runtime_exception(_Err_msg.str().c_str(), E_INVALIDARG);
521  }
522  else if (_Mipmap_levels == 0)
523  {
524  // Generate full range of all mipmaps
525  // e.g. 2D 10x2 texture would have: 10x2, 5x1, 2x1, 1x1 (4 mipmap levels)
526  _Mipmap_levels = _Max_mipmap_levels;
527  }
529  }
static void _Is_valid_extent(const _T< _Rank > &_Tuple) __CPU_ONLY
Definition: xxamp.h:1203
void _Are_valid_mipmap_parameters(unsigned int _Most_detailed_mipmap_level, unsigned int _Mipmap_levels=0)
Definition: xxamp.h:1255
unsigned int _Get_max_mipmap_levels(const extent< _Rank > &_Extent)
Definition: xxamp.h:1234
void _Set_view_mipmap_levels(unsigned int _View_mipmap_levels) __CPU_ONLY
Definition: amprt.h:663
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
basic_stringstream< char, char_traits< char >, allocator< char > > stringstream
Definition: iosfwd:687
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( const _Texture_base< _Value_type, _Rank > &  _Src)
inlineprotected
533  : _M_extent(_Src._M_extent), _M_texture_descriptor(_Src._M_texture_descriptor)
534  {
535  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( const _Texture_base< _Value_type, _Rank > &  _Src,
unsigned int  _Most_detailed_mipmap_level,
unsigned int  _View_mipmap_levels 
)
inlineprotected
539  : _M_extent(_Get_extent_at_level(_Src.extent, _Most_detailed_mipmap_level)), _M_texture_descriptor(_Src._M_texture_descriptor, _Src._Get_most_detailed_mipmap_level() + _Most_detailed_mipmap_level, _View_mipmap_levels)
540  {
541  Concurrency::details::_Is_valid_mipmap_range(_Src.get_mipmap_levels(), _Most_detailed_mipmap_level, _View_mipmap_levels);
542  }
extent< _Rank > _Get_extent_at_level(const extent< _Rank > &_Base_extent, unsigned int _Level)
Definition: xxamp_inl.h:141
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
void _Is_valid_mipmap_range(unsigned int _Src_view_mipmap_levels, unsigned int _Dst_most_detailed_level, unsigned int _Dst_view_mipmap_levels)
Definition: xxamp.h:1275
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( const _Texture_base< _Value_type, _Rank > &  _Src,
bool  _Flatten_mipmap_levels 
)
inlineprotected
547  : _M_extent(_Src.extent), _M_texture_descriptor(_Src._M_texture_descriptor, /*_Most_detailed_mipmap_level=*/0, _Flatten_mipmap_levels ? /*_View_mipmap_levels=*/1 : _Src.get_mipmap_levels())
548  {
549  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Texture_base ( const Concurrency::extent< _Rank > &  _Ext,
const _Texture_descriptor _Desc 
)
inlineprotected
553  : _M_extent(_Ext), _M_texture_descriptor(_Desc)
554  {
556  }
static void _Is_valid_extent(const _T< _Rank > &_Tuple) __CPU_ONLY
Definition: xxamp.h:1203
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::~_Texture_base ( )
inlineprotected
573  {
574  }

Member Function Documentation

template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::__declspec ( property(get=get_bits_per_scalar_element )

Returns the number of bits per scalar element

template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::__declspec ( property(get=get_mipmap_levels )

Query how many mipmap levels are accessible by this texture (or texture view).

Returns
Returns number of mipmap levels accessible by this texture (or texture view).
template<typename _Value_type, int _Rank>
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::__declspec ( property(get=get_data_length )

Returns the physical data length (in bytes) that is required in order to represent the texture on the host side with its native format. If the texture contains multiple mipmap levels the value represents the sum of physical data length for each accessible mipmap level by this texture (or texture view).

template<typename _Value_type, int _Rank>
bool Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Are_mipmap_levels_overlapping ( const _Texture_base< _Value_type, _Rank > &  _Other) const
inlineprotected
587  {
588  return _M_texture_descriptor._Are_mipmap_levels_overlapping(&_Other._M_texture_descriptor);
589  }
bool _Are_mipmap_levels_overlapping(const _Texture_descriptor *_Other) const __CPU_ONLY
Definition: amprt.h:694
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
template<typename _Value_type, int _Rank>
void Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Copy_to ( const _Texture_base< _Value_type, _Rank > &  _Dest) const
inlineprotected
559  {
560  if (!(*this == _Dest))
561  {
562  _ASSERTE(this->extent == _Dest.extent);
563  details::_Copy_async_impl(*this, index<_Rank>(), _Dest, index<_Rank>(), _Dest.extent)._Get();
564  }
565  }
_AMPIMP void _Get()
Wait until the _Event completes and throw any exceptions that occur.
#define _ASSERTE(expr)
Definition: crtdbg.h:216
_Event _Copy_async_impl(const void *_Src, unsigned int _Src_byte_size, const _Texture_base< _Value_type, _Rank > &_Dst, const index< _Rank > &_Offset, const Concurrency::extent< _Rank > &_Copy_extent)
Definition: amp_graphics.h:3922
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Get_most_detailed_mipmap_level ( ) const
inlineprotected
582  {
584  }
unsigned int _Get_most_detailed_mipmap_level() const __GPU
Definition: amprt.h:653
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
template<typename _Value_type, int _Rank>
_Ret_ _Texture* Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_Get_texture ( ) const
inlineprotected
577  {
579  }
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
_Ret_ _Texture * _Get_texture_ptr() const __CPU_ONLY
Definition: amprt.h:647
template<typename _Value_type, int _Rank>
__declspec (property(get=get_accelerator_view)) Concurrency Concurrency::accelerator_view Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_accelerator_view ( ) const
inline

Returns the accelerator_view where this texture or texture view is located.

461  {
463  }
_AMPIMP accelerator_view _Get_access_on_accelerator_view() const
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_bits_per_scalar_element ( ) const
inline
470  {
471  unsigned int _Bits_per_channel = _Get_texture()->_Get_bits_per_channel();
472  return _Short_vector_type_traits<_Value_type>::_Format_base_type_id == _Double_type ? _Bits_per_channel * (sizeof(double)/sizeof(int)) : _Bits_per_channel;
473  }
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
Definition: amprt.h:292
unsigned int _Get_bits_per_channel() const
Definition: amprt.h:2321
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_data_length ( ) const
inline
494  {
496  }
unsigned int get_mipmap_levels() const __GPU
Definition: amp_graphics.h:482
unsigned int _Get_most_detailed_mipmap_level() const __GPU
Definition: amp_graphics.h:581
unsigned int _Get_data_length(unsigned int _Most_detailed_mipmap_level, unsigned int _View_mipmap_levels, const size_t *_Extents=nullptr) const
Definition: amprt.h:2332
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
__declspec (property(get=get_extent)) Concurrency Concurrency::extent<_Rank> Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_extent ( ) const
inline

Returns the extent that defines the shape of this texture or texture view.

421  {
422  return _M_extent;
423  }
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
Concurrency::extent<_Rank> Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_mipmap_extent ( unsigned int  _Mipmap_level) const
inline

Returns the extent for specific mipmap level of this texture or texture view.

Mipmap level for which extent should be calculated.

432  {
433  if (_Mipmap_level >= this->get_mipmap_levels())
434  {
435  std::stringstream _Err_msg;
436  _Err_msg << "Value for _Mipmap_level parameter (" << _Mipmap_level
437  << ") cannot be greater than or equal to number of mipmap levels ("
438  << this->get_mipmap_levels() << ") on the texture or texture view";
439 
440  throw runtime_exception(_Err_msg.str().c_str(), E_INVALIDARG);
441  }
443  }
extent< _Rank > _Get_extent_at_level(const extent< _Rank > &_Base_extent, unsigned int _Level)
Definition: xxamp_inl.h:141
unsigned int get_mipmap_levels() const __GPU
Definition: amp_graphics.h:482
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
basic_stringstream< char, char_traits< char >, allocator< char > > stringstream
Definition: iosfwd:687
template<typename _Value_type, int _Rank>
Concurrency::extent<_Rank> Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_mipmap_extent ( unsigned int  _Mipmap_level) const
inline

Returns the extent for specific mipmap level of this texture or texture view.

Mipmap level for which extent should be calculated.

452  {
454  }
extent< _Rank > _Get_extent_at_level_unsafe(const extent< _Rank > &_Base_extent, unsigned int _Level) __GPU
Definition: xxamp_inl.h:95
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::get_mipmap_levels ( ) const
inline
483  {
485  }
unsigned int _Get_view_mipmap_levels() const __GPU
Definition: amprt.h:658
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
template<typename _Value_type, int _Rank>
bool Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::operator== ( const _Texture_base< _Value_type, _Rank > &  _Other) const
inlineprotected
568  {
569  return _Other._M_extent == _M_extent && _Other._M_texture_descriptor == _M_texture_descriptor;
570  }
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592

Friends And Related Function Documentation

template<typename _Value_type, int _Rank>
template<typename _Value_type , int _Rank>
_Event _Copy_async_impl ( const _Texture_base< _Value_type, _Rank > &  _Src,
const index< _Rank > &  _Src_offset,
const _Texture_base< _Value_type, _Rank > &  _Dst,
const index< _Rank > &  _Dst_offset,
const extent< _Rank > &  _Copy_extent 
)
friend
4025 {
4026  _Is_valid_section(_Src.extent, _Src_offset, _Copy_extent);
4027  _Is_valid_section(_Dst.extent, _Dst_offset, _Copy_extent);
4028 
4030  _Texture_descriptor _Dst_tex_desc = _Get_texture_descriptor(_Dst);
4031 
4032  if (_Src_tex_desc._Get_view_mipmap_levels() != _Dst_tex_desc._Get_view_mipmap_levels())
4033  {
4034  throw runtime_exception("The source and destination textures must have the exactly the same number of mipmap levels for texture copy.", E_INVALIDARG);
4035  }
4036 
4037  bool _Is_whole_texture_copy = (_Src_offset == _Dst_offset && _Src_offset == index<_Rank>() && _Src.extent == _Dst.extent && _Src.extent == _Copy_extent);
4038 
4039  if (_Src_tex_desc._Get_view_mipmap_levels() > 1 && !_Is_whole_texture_copy)
4040  {
4041  throw runtime_exception("Sections are not allowed when copy involves multiple mipmap levels", E_INVALIDARG);
4042  }
4043 
4044  if (_Src_tex_desc._Are_mipmap_levels_overlapping(&_Dst_tex_desc))
4045  {
4046  throw runtime_exception("The source and destination are overlapping areas on the same texture", E_INVALIDARG);
4047  }
4048 
4049  _Texture* _Src_tex = _Get_texture(_Src);
4050  _Texture* _Dst_tex = _Get_texture(_Dst);
4051 
4052  // Formats must be identical for non-adopted textures. Textures created through D3D interop are not subject to this test
4053  // to allow copy between related, but not identical, formats. Attempting to copy between unrelated formats through interop
4054  // will result in exceptions in debug mode and undefined behavior in release mode.
4055  if (!_Src_tex->_Is_adopted() && !_Dst_tex->_Is_adopted() && (_Src_tex->_Get_texture_format() != _Dst_tex->_Get_texture_format()))
4056  {
4057  throw runtime_exception("The source and destination textures are not compatible.", E_INVALIDARG);
4058  }
4059 
4060  std::array<size_t, 3> _Src_offset_arr = _Get_indices(_Src_offset);
4061  std::array<size_t, 3> _Dst_offset_arr = _Get_indices(_Dst_offset);
4062 
4063  _Event _Copy_event;
4064 
4065  unsigned int _Src_most_detailed_mipmap_level = _Src_tex_desc._Get_most_detailed_mipmap_level();
4066  unsigned int _Dst_most_detailed_mipmap_level = _Dst_tex_desc._Get_most_detailed_mipmap_level();
4067 
4068  // Copy all mipmap levels from source to destination one by one.
4069  // Note that the offsets are not allowed therefore only dimensions need to be updated for subsequent mipmap levels
4070  for (unsigned int _Mip_offset = 0; _Mip_offset < _Src_tex_desc._Get_view_mipmap_levels(); ++_Mip_offset)
4071  {
4072  std::array<size_t, 3> _Copy_extent_arr = _Get_dimensions(_Copy_extent, _Mip_offset);
4073 
4074  auto _Step_event = _Copy_async_impl(_Src_tex, _Src_offset_arr.data(), _Src_most_detailed_mipmap_level + _Mip_offset,
4075  _Dst_tex, _Dst_offset_arr.data(), _Dst_most_detailed_mipmap_level + _Mip_offset,
4076  _Copy_extent_arr.data());
4077 
4078  _Copy_event = _Copy_event._Add_event(_Step_event);
4079  }
4080 
4081  return _Copy_event;
4082 }
unsigned int _Get_texture_format() const
Definition: amprt.h:2306
std::array< size_t, 3 > _Get_dimensions(const Concurrency::extent< _Rank > &_Ext, unsigned int _Mip_offset)
Definition: amp_graphics.h:298
Definition: amprt.h:2228
bool _Is_adopted() const
Definition: amprt.h:2157
unsigned int _Get_most_detailed_mipmap_level() const __GPU
Definition: amprt.h:653
friend _Event _Copy_async_impl(const _Texture_base< _Value_type, _Rank > &_Src, const index< _Rank > &_Src_offset, const _Texture_base< _Value_type, _Rank > &_Dst, const index< _Rank > &_Dst_offset, const extent< _Rank > &_Copy_extent) __CPU_ONLY
Definition: amp_graphics.h:4022
static void _Is_valid_section(const _T2< _Rank > &_Base_extent, const _T1< _Rank > &_Section_origin, const _T2< _Rank > &_Section_extent) __CPU_ONLY
Definition: xxamp.h:1107
_AMPIMP _Event _Add_event(_Event _Ev)
Creates an event which is an ordered collection of this and _Ev
std::array< size_t, 3 > _Get_indices(const index< _Rank > &_Idx)
Definition: amp_graphics.h:329
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
unsigned int _Get_view_mipmap_levels() const __GPU
Definition: amprt.h:658
bool _Are_mipmap_levels_overlapping(const _Texture_descriptor *_Other) const __CPU_ONLY
Definition: amprt.h:694
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
Definition: amprt.h:312
const _Texture_descriptor & _Get_texture_descriptor(const _Texture_type &_Tex) __GPU
Definition: xxamp.h:1095
template<typename _Value_type, int _Rank>
template<typename _T >
_Ret_ _Texture* Concurrency::details::_Get_texture ( const _T _Tex)
friend
template<typename _Value_type, int _Rank>
template<typename _T >
const _Texture_descriptor& Concurrency::details::_Get_texture_descriptor ( const _T _Tex)
friend

Member Data Documentation

template<typename _Value_type, int _Rank>
Concurrency::extent<_Rank> Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_M_extent
protected
template<typename _Value_type, int _Rank>
_Texture_descriptor Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::_M_texture_descriptor
protected
template<typename _Value_type, int _Rank>
const int Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >::rank = _Rank
static

The documentation for this class was generated from the following file: