#ifndef FLUTTER_PLUGIN_POLYVOX_FILAMENT_PLUGIN_H_ #define FLUTTER_PLUGIN_POLYVOX_FILAMENT_PLUGIN_H_ #include #include #include #include "PolyvoxFilamentApi.h" namespace polyvox_filament { class PolyvoxFilamentPlugin : public flutter::Plugin { public: static void RegisterWithRegistrar(flutter::PluginRegistrarWindows *registrar); PolyvoxFilamentPlugin( flutter::TextureRegistrar* textureRegistrar, flutter::PluginRegistrarWindows *registrar ); virtual ~PolyvoxFilamentPlugin(); // Disallow copy and assign. PolyvoxFilamentPlugin(const PolyvoxFilamentPlugin&) = delete; PolyvoxFilamentPlugin& operator=(const PolyvoxFilamentPlugin&) = delete; // Called when a method is called on this plugin's channel from Dart. void HandleMethodCall( const flutter::MethodCall &method_call, std::unique_ptr> result); flutter::PluginRegistrarWindows* _pluginRegistrar; flutter::TextureRegistrar* _textureRegistrar; std::unique_ptr _texture = nullptr; std::unique_ptr _pixelBuffer = nullptr; std::unique_ptr _pixelData = nullptr; int64_t _flutterTextureId; int _glTextureId; void* _viewer = nullptr; void CreateFilamentViewer( const flutter::MethodCall &methodCall, std::unique_ptr> result); void CreateTexture( const flutter::MethodCall &methodCall, std::unique_ptr> result); void Render( const flutter::MethodCall &methodCall, std::unique_ptr> result); }; } // namespace polyvox_filament #endif // FLUTTER_PLUGIN_POLYVOX_FILAMENT_PLUGIN_H_