Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
skgpu::graphite::UniformDataBlock Class Reference

#include <PipelineData.h>

Public Member Functions

 UniformDataBlock (SkSpan< const char > data)
 
 UniformDataBlock ()=default
 
const char * data () const
 
size_t size () const
 
uint32_t hash () const
 
bool operator== (const UniformDataBlock &that) const
 
bool operator!= (const UniformDataBlock &that) const
 

Static Public Member Functions

static UniformDataBlockMake (const UniformDataBlock &, SkArenaAlloc *)
 

Detailed Description

Definition at line 30 of file PipelineData.h.

Constructor & Destructor Documentation

◆ UniformDataBlock() [1/2]

skgpu::graphite::UniformDataBlock::UniformDataBlock ( SkSpan< const char >  data)
inline

Definition at line 34 of file PipelineData.h.

34: fData(data) {}

◆ UniformDataBlock() [2/2]

skgpu::graphite::UniformDataBlock::UniformDataBlock ( )
default

Member Function Documentation

◆ data()

const char * skgpu::graphite::UniformDataBlock::data ( ) const
inline

Definition at line 37 of file PipelineData.h.

37{ return fData.data(); }
constexpr T * data() const
Definition SkSpan_impl.h:94

◆ hash()

uint32_t skgpu::graphite::UniformDataBlock::hash ( ) const

Definition at line 44 of file PipelineData.cpp.

44 {
45 return SkChecksum::Hash32(fData.data(), fData.size());
46}
constexpr size_t size() const
Definition SkSpan_impl.h:95
uint32_t Hash32(const void *data, size_t bytes, uint32_t seed)

◆ Make()

UniformDataBlock * skgpu::graphite::UniformDataBlock::Make ( const UniformDataBlock other,
SkArenaAlloc arena 
)
static

Definition at line 34 of file PipelineData.cpp.

34 {
35 static constexpr size_t kUniformAlignment = alignof(void*);
36 char* mem = static_cast<char*>(arena->makeBytesAlignedTo(other.size(), kUniformAlignment));
37 memcpy(mem, other.data(), other.size());
38
39 return arena->make([&](void* ptr) {
40 return new (ptr) UniformDataBlock(SkSpan<const char>(mem, other.size()));
41 });
42}
void * makeBytesAlignedTo(size_t size, size_t align)
auto make(Ctor &&ctor) -> decltype(ctor(nullptr))

◆ operator!=()

bool skgpu::graphite::UniformDataBlock::operator!= ( const UniformDataBlock that) const
inline

Definition at line 46 of file PipelineData.h.

46{ return !(*this == that); }

◆ operator==()

bool skgpu::graphite::UniformDataBlock::operator== ( const UniformDataBlock that) const
inline

Definition at line 42 of file PipelineData.h.

42 {
43 return fData.size() == that.fData.size() &&
44 !memcmp(fData.data(), that.fData.data(), fData.size());
45 }

◆ size()

size_t skgpu::graphite::UniformDataBlock::size ( ) const
inline

Definition at line 38 of file PipelineData.h.

38{ return fData.size(); }

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