#pragma once #include "import.h" #include #include #include #include #include #include #include #include namespace thermion::windows::d3d { class EMSCRIPTEN_KEEPALIVE D3DTexture { public: D3DTexture( Microsoft::WRL::ComPtr d3dTexture2D, HANDLE d3dTexture2DHandle, uint32_t width, uint32_t height ); ~D3DTexture(); void Flush(); HANDLE GetTextureHandle(); void SaveToBMP(const char* filename); uint32_t GetWidth() { return _width; } uint32_t GetHeight() { return _height; } private: uint32_t _width = 0; uint32_t _height = 0; Microsoft::WRL::ComPtr _d3dTexture2D; HANDLE _d3dTexture2DHandle = nullptr; bool SaveTextureAsBMP(ID3D11Texture2D* texture, const char* filename); }; }