MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_d3d11_wic_texture_loader.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_D3D11_WIC_TEXTURE_LOADER_H_1616869172
12#define INCGUARD_MGL_D3D11_WIC_TEXTURE_LOADER_H_1616869172
13
14#include <mgl/mgl_environment.h>
15#if defined(MGL_RENDERER_ENABLE_D3D11)
16
19#include <wincodec.h>
20#include <atlbase.h>
21
22namespace MGL::Render::D3D11
23{
26{
27public:
29 static constexpr TextureLoaderKey kLoaderKey = MakeTextureLoaderKey("MGL-WICTextureLoader");
30
32 using DecodeFunction = bool(*) (Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept;
33
34 WICTextureLoader() noexcept;
35
36 virtual bool Load(Render::TextureResource &textureResource, const File::PathView &path) noexcept override;
37 virtual bool Load(Render::TextureResource &textureResource, const void *imageData, size_t dataSize) noexcept override;
38
39 static bool Load32bppRGBA(Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept;
40 static bool Load32bppBGRA(Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept;
41
42private:
43 bool Initialize() noexcept;
44
45 Win32::ComUsing _comUsing;
46 bool _isAvailable;
47 CComPtr<IWICImagingFactory> _factory;
48};
49
50} // MGL::Render::D3D11
51
52#endif // MGL_RENDERER_ENABLE_D3D11
53#endif // INCGUARD_MGL_D3D11_WIC_TEXTURE_LOADER_H_1616869172
54
55// vim: et ts=4 sw=4 sts=4
MGL Direct3D11用テクスチャリソース
Definition mgl_d3d11_texture_resource.h:26
WICによるテクスチャローダー
Definition mgl_d3d11_wic_texture_loader.h:26
bool(*)(Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept DecodeFunction
デコード用の関数の型
Definition mgl_d3d11_wic_texture_loader.h:32
static bool Load32bppBGRA(Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept
32bitBGRAフォーマットの読み込み
Definition mgl_d3d11_wic_texture_loader.cc:232
virtual bool Load(Render::TextureResource &textureResource, const File::PathView &path) noexcept override
ファイルから読み込み
Definition mgl_d3d11_wic_texture_loader.cc:85
static bool Load32bppRGBA(Render::TextureResource &textureResource, IWICBitmapFrameDecode *frame) noexcept
32bitRGBAフォーマットの読み込み
Definition mgl_d3d11_wic_texture_loader.cc:197
WICTextureLoader() noexcept
コンストラクタ
Definition mgl_d3d11_wic_texture_loader.cc:44
static constexpr TextureLoaderKey kLoaderKey
このテクスチャローダーを表すキー
Definition mgl_d3d11_wic_texture_loader.h:29
テクスチャローダー
Definition mgl_texture_loader.h:43
テクスチャリソース
Definition mgl_texture_resource.h:25
MGL 環境定義
MGL テクスチャローダー
uint32_t TextureLoaderKey
テクスチャローダーのキー
Definition mgl_texture_loader.h:23
constexpr TextureLoaderKey MakeTextureLoaderKey(const char *key, uint32_t seed=kDefaultTextureLoaderKeySeed) noexcept
テクスチャローダーのキーを生成
Definition mgl_texture_loader.h:36
MGL COMを使用するためのオブジェクト