Flutter Impeller
IMPELLER_HPP_NAMESPACE::Texture Class Reference

#include <impeller.hpp>

Inheritance diagram for IMPELLER_HPP_NAMESPACE::Texture:
IMPELLER_HPP_NAMESPACE::Object< ImpellerTexture, ImpellerTextureTraits >

Public Member Functions

 Texture (ImpellerTexture texture, AdoptTag adopt)
 
uint64_t GetOpenGLHandle () const
 
- Public Member Functions inherited from IMPELLER_HPP_NAMESPACE::Object< ImpellerTexture, ImpellerTextureTraits >
 Object ()=default
 
 Object (ImpellerTexture object)
 
 Object (ImpellerTexture object, AdoptTag)
 
 Object (Object &&other)
 
 Object (const Object &other)
 
 ~Object ()
 
Objectoperator= (Object &&other)
 
Objectoperator= (const Object &other)
 
ImpellerTexture Get () const
 
 operator bool () const
 

Static Public Member Functions

static Texture WithContents (const Context &context, const ImpellerTextureDescriptor &descriptor, std::unique_ptr< Mapping > mapping=nullptr)
 
static Texture WithOpenGLTexture (const Context &context, const ImpellerTextureDescriptor &descriptor, uint64_t handle)
 

Detailed Description

See also
ImpellerTexture

Definition at line 404 of file impeller.hpp.

Constructor & Destructor Documentation

◆ Texture()

IMPELLER_HPP_NAMESPACE::Texture::Texture ( ImpellerTexture  texture,
AdoptTag  adopt 
)
inline

Definition at line 406 of file impeller.hpp.

Referenced by WithContents(), and WithOpenGLTexture().

Member Function Documentation

◆ GetOpenGLHandle()

uint64_t IMPELLER_HPP_NAMESPACE::Texture::GetOpenGLHandle ( ) const
inline

◆ WithContents()

static Texture IMPELLER_HPP_NAMESPACE::Texture::WithContents ( const Context context,
const ImpellerTextureDescriptor descriptor,
std::unique_ptr< Mapping mapping = nullptr 
)
inlinestatic
See also
ImpellerTextureCreateWithContentsNew

Definition at line 411 of file impeller.hpp.

413  {
414  if (mapping == nullptr) {
415  mapping = std::make_unique<Mapping>(nullptr, 0u, nullptr);
416  }
417  ImpellerMapping c_mapping = {};
418  c_mapping.data = mapping->GetMapping();
419  c_mapping.length = mapping->GetSize();
420  c_mapping.on_release = [](void* user_data) -> void {
421  delete reinterpret_cast<Mapping*>(user_data);
422  };
423  return Texture(gGlobalProcTable.ImpellerTextureCreateWithContentsNew(
424  context.Get(), //
425  &descriptor, //
426  &c_mapping, //
427  mapping.release() //
428  ),
430  }
Texture(ImpellerTexture texture, AdoptTag adopt)
Definition: impeller.hpp:406
ImpellerCallback IMPELLER_NULLABLE on_release
Definition: impeller.h:629
uint64_t length
Definition: impeller.h:628
const uint8_t *IMPELLER_NONNULL data
Definition: impeller.h:627

References ImpellerMapping::data, IMPELLER_HPP_NAMESPACE::Object< T, Traits >::Get(), IMPELLER_HPP_NAMESPACE::gGlobalProcTable, IMPELLER_HPP_NAMESPACE::kAdopt, ImpellerMapping::length, ImpellerMapping::on_release, and Texture().

◆ WithOpenGLTexture()

static Texture IMPELLER_HPP_NAMESPACE::Texture::WithOpenGLTexture ( const Context context,
const ImpellerTextureDescriptor descriptor,
uint64_t  handle 
)
inlinestatic
See also
ImpellerTextureCreateWithOpenGLTextureHandleNew

Definition at line 435 of file impeller.hpp.

437  {
438  return Texture(
439  gGlobalProcTable.ImpellerTextureCreateWithOpenGLTextureHandleNew(
440  context.Get(), //
441  &descriptor, //
442  handle //
443  ),
445  }

References IMPELLER_HPP_NAMESPACE::Object< T, Traits >::Get(), IMPELLER_HPP_NAMESPACE::gGlobalProcTable, IMPELLER_HPP_NAMESPACE::kAdopt, and Texture().


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