Flutter Engine
The Flutter Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Namespaces | Macros | Functions
ResourceKey.h File Reference
#include "include/core/SkData.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkAlign.h"
#include "include/private/base/SkAlignedStorage.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkTemplates.h"
#include "include/private/base/SkTo.h"
#include <cstdint>
#include <cstring>
#include <new>
#include <utility>

Go to the source code of this file.

Classes

class  skgpu::ResourceKey
 
class  skgpu::ResourceKey::Builder
 
class  skgpu::ScratchKey
 
class  skgpu::ScratchKey::Builder
 
class  skgpu::UniqueKey
 
class  skgpu::UniqueKey::Builder
 
class  skgpu::UniqueKeyInvalidatedMessage
 
class  skgpu::UniqueKeyInvalidatedMsg_Graphite
 

Namespaces

namespace  skgpu
 

Macros

#define SKGPU_DECLARE_STATIC_UNIQUE_KEY(name)   static SkOnce name##_once
 
#define SKGPU_DEFINE_STATIC_UNIQUE_KEY(name)
 

Functions

uint32_t skgpu::ResourceKeyHash (const uint32_t *data, size_t size)
 
static void skgpu::skgpu_init_static_unique_key_once (SkAlignedSTStorage< 1, UniqueKey > *keyStorage)
 
static bool skgpu::SkShouldPostMessageToBus (const UniqueKeyInvalidatedMessage &msg, uint32_t msgBusUniqueID)
 
static bool skgpu::SkShouldPostMessageToBus (const UniqueKeyInvalidatedMsg_Graphite &msg, uint32_t msgBusUniqueID)
 

Macro Definition Documentation

◆ SKGPU_DECLARE_STATIC_UNIQUE_KEY

#define SKGPU_DECLARE_STATIC_UNIQUE_KEY (   name)    static SkOnce name##_once

It is common to need a frequently reused UniqueKey where the only requirement is that the key is unique. These macros create such a key in a thread safe manner so the key can be truly global and only constructed once. Place outside of function/class definitions.

Definition at line 321 of file ResourceKey.h.

◆ SKGPU_DEFINE_STATIC_UNIQUE_KEY

#define SKGPU_DEFINE_STATIC_UNIQUE_KEY (   name)
Value:
name##_once(skgpu::skgpu_init_static_unique_key_once, &name##_storage); \
static const skgpu::UniqueKey& name = \
*reinterpret_cast<skgpu::UniqueKey*>(name##_storage.get())
DEF_SWITCHES_START aot vmservice shared library name
Definition: switches.h:32
static void skgpu_init_static_unique_key_once(SkAlignedSTStorage< 1, UniqueKey > *keyStorage)
Definition: ResourceKey.h:330

Place inside function where the key is used.

Definition at line 324 of file ResourceKey.h.