| Flutter Impeller |

Public Member Functions | Static Public Member Functions | List of all members
IMPELLER_HPP_NAMESPACE::Texture Class Referencefinal

`#include <impeller.hpp>`

Inheritance diagram for IMPELLER_HPP_NAMESPACE::Texture:

## 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 ()
Object & | operator= (Object &&other)
Object & | operator= (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 343 of file impeller.hpp.

## Constructor & Destructor Documentation

## ◆ Texture()

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

Definition at line 345 of file impeller.hpp.

345 : Object(texture, adopt) {}

Referenced by WithContents(), and WithOpenGLTexture().

## Member Function Documentation

## ◆ GetOpenGLHandle()

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

Definition at line 386 of file impeller.hpp.

386 {
387 return gGlobalProcTable.ImpellerTextureGetOpenGLHandle(Get());
388 }

References IMPELLER_HPP_NAMESPACE::Object< ImpellerTexture, ImpellerTextureTraits >::Get(), and IMPELLER_HPP_NAMESPACE::gGlobalProcTable.

## ◆ WithContents()

static Texture IMPELLER_HPP_NAMESPACE::Texture::WithContents | ( | const Context & | context,
|  | const ImpellerTextureDescriptor & | descriptor,
|  | std::unique_ptr< Mapping > | mapping = `nullptr`
| ) |  |
| inline static

See also
  ImpellerTextureCreateWithContentsNew

Definition at line 350 of file impeller.hpp.

352 {
353 if (mapping == nullptr) {
354 mapping = std::make_unique<Mapping>(nullptr, 0u, nullptr);
355 }
356 ImpellerMapping c_mapping = {};
357 c_mapping.data = mapping->GetMapping();
358 c_mapping.length = mapping->GetSize();
359 c_mapping.on_release = [](void* user_data) -> void {
360 delete reinterpret_cast<Mapping*>(user_data);
361 };
362 return Texture(gGlobalProcTable.ImpellerTextureCreateWithContentsNew(
363 context.Get(), //
364 &descriptor, //
365 &c_mapping, //
366 mapping.release() //
367 ),
368 AdoptTag::kAdopt);
369 }

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
| ) |  |
| inline static

See also
  ImpellerTextureCreateWithOpenGLTextureHandleNew

Definition at line 374 of file impeller.hpp.

376 {
377 return Texture(
378 gGlobalProcTable.ImpellerTextureCreateWithOpenGLTextureHandleNew(
379 context.Get(), //
380 &descriptor, //
381 handle //
382 ),
383 AdoptTag::kAdopt);
384 }

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:

- impeller/toolkit/interop/impeller.hpp

IMPELLER_HPP_NAMESPACE::gGlobalProcTable
ProcTable gGlobalProcTable
Definition: playground_test.cc:10
ImpellerMapping::length
uint64_t length
Definition: impeller.h:561
ImpellerMapping::on_release
ImpellerCallback IMPELLER_NULLABLE on_release
Definition: impeller.h:562
ImpellerMapping
Definition: impeller.h:559
IMPELLER_HPP_NAMESPACE::AdoptTag::kAdopt
@ kAdopt
IMPELLER_HPP_NAMESPACE::Object< ImpellerTexture, ImpellerTextureTraits >::Get
ImpellerTexture Get() const
Definition: impeller.hpp:234
IMPELLER_HPP_NAMESPACE::Object< ImpellerTexture, ImpellerTextureTraits >::Object
Object()=default
ImpellerMapping::data
const uint8_t *IMPELLER_NONNULL data
Definition: impeller.h:560
IMPELLER_HPP_NAMESPACE::Texture::Texture
Texture(ImpellerTexture texture, AdoptTag adopt)
Definition: impeller.hpp:345