11#ifndef INCGUARD_MGL_TEXTURE_STORAGE_H_1607583805
12#define INCGUARD_MGL_TEXTURE_STORAGE_H_1607583805
21#include <condition_variable>
42 return TextureKey{MGL::Hash::FNV1a(key, seed)};
84 _defaultLoaderKey = loaderKey;
94 void WaitLoading() noexcept;
101 std::atomic<uint32_t> _loadingCount;
102 std::condition_variable _loadingCondition;
103 std::mutex _loadingMutex;
105 std::mutex _tableMutex;
テクスチャ生成クラス
Definition mgl_texture_generator.h:20
テクスチャローダー
Definition mgl_texture_loader.h:43
テクスチャリソース
Definition mgl_texture_resource.h:25
テクスチャストレージ
Definition mgl_texture_storage.h:48
~TextureStorage() noexcept
デストラクタ
Definition mgl_texture_storage.cc:49
bool Destroy(TextureKey key) noexcept
テクスチャリソースを破棄
Definition mgl_texture_storage.cc:586
TextureStorage(STL::unique_ptr< TextureGenerator > generator) noexcept
コンストラクタ
Definition mgl_texture_storage.cc:36
static constexpr TextureLoaderKey kDefaultLoaderKey
デフォルトのテクスチャローダーを表すキー
Definition mgl_texture_storage.h:51
SharedTextureResource Create(TextureKey key, const void *pixelData, PixelFormat pixelFormat, uint32_t width, uint32_t height) noexcept
テクスチャリソースの生成
Definition mgl_texture_storage.cc:429
SharedTextureResource Load(const void *imageData, size_t dataSize, TextureLoaderKey loaderKey=kDefaultLoaderKey) noexcept
テクスチャをメモリ上のイメージデータから読み込み
Definition mgl_texture_storage.cc:67
SharedTextureResource LoadAsync(const void *imageData, size_t dataSize, TextureLoaderKey loaderKey=kDefaultLoaderKey) noexcept
テクスチャをメモリ上のイメージデータから非同期で読み込み
Definition mgl_texture_storage.cc:104
SharedTextureResource Get(TextureKey key) noexcept
テクスチャリソースの取得
Definition mgl_texture_storage.cc:567
SharedTextureResource CreateRenderTarget(TextureKey key, uint32_t width, uint32_t height) noexcept
レンダーターゲットの生成
Definition mgl_texture_storage.cc:497
bool RegisterLoader(TextureLoaderKey loaderKey, UniqueTextureLoader loader) noexcept
テクスチャローダーの登録
Definition mgl_texture_storage.cc:603
constexpr void SetDefaultLoader(TextureLoaderKey loaderKey) noexcept
デフォルトで使用するローダーを設定
Definition mgl_texture_storage.h:82
PixelFormat
ピクセルフォーマット
Definition mgl_render_types.h:37
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
uint32_t TextureLoaderKey
テクスチャローダーのキー
Definition mgl_texture_loader.h:23
STL::unique_ptr< TextureLoader > UniqueTextureLoader
テクスチャローダーのユニークポインタ
Definition mgl_texture_loader.h:72
constexpr TextureLoaderKey MakeTextureLoaderKey(const char *key, uint32_t seed=kDefaultTextureLoaderKeySeed) noexcept
テクスチャローダーのキーを生成
Definition mgl_texture_loader.h:36
std::shared_ptr< MGL::Render::TextureResource > SharedTextureResource
共有するテクスチャリソースの型
Definition mgl_texture_resource.h:145
TextureKey
テクスチャにアクセスするキーの型
Definition mgl_texture_storage.h:27
constexpr uint32_t kDefaultTextureKeySeed
テクスチャキーを生成する際のハッシュのシード値
Definition mgl_texture_storage.h:30
constexpr TextureKey MakeTextureKey(const char *key, uint32_t seed=kDefaultTextureKeySeed) noexcept
テクスチャキーを生成
Definition mgl_texture_storage.h:40