#ifndef __EFFEKSEERRENDERER_GL_RENDERER_H__ #define __EFFEKSEERRENDERER_GL_RENDERER_H__ //---------------------------------------------------------------------------------- // Include //---------------------------------------------------------------------------------- #include "../../EffekseerRendererCommon/EffekseerRenderer.Renderer.h" #include "EffekseerRendererGL.Base.h" //---------------------------------------------------------------------------------- // Lib //---------------------------------------------------------------------------------- //---------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------- namespace EffekseerRendererGL { ::Effekseer::Backend::GraphicsDeviceRef CreateGraphicsDevice(OpenGLDeviceType deviceType, bool isExtensionsEnabled = true); ::Effekseer::MaterialLoaderRef CreateMaterialLoader(Effekseer::Backend::GraphicsDeviceRef graphicsDevice, ::Effekseer::FileInterfaceRef fileInterface = nullptr); Effekseer::Backend::TextureRef CreateTexture(Effekseer::Backend::GraphicsDeviceRef graphicsDevice, GLuint buffer, bool hasMipmap, const std::function& onDisposed); /** @brief \~English Properties in a texture \~Japanese テクスチャ内のプロパティ */ struct TextureProperty { GLuint Buffer = 0; }; TextureProperty GetTextureProperty(::Effekseer::Backend::TextureRef texture); class Renderer; using RendererRef = ::Effekseer::RefPtr; class Renderer : public ::EffekseerRenderer::Renderer { protected: Renderer() { } virtual ~Renderer() { } public: /** @brief \~english Create an instance \~japanese インスタンスを生成する。 @param squareMaxCount \~english the number of maximum sprites \~japanese 最大描画スプライト数 @param deviceType \~english device type of opengl \~japanese デバイスの種類 @param isExtensionsEnabled \~english whether does make extensions enabled. \~japanese 拡張を有効にするかどうか @return \~english instance \~japanese インスタンス */ static RendererRef Create(int32_t squareMaxCount, OpenGLDeviceType deviceType = OpenGLDeviceType::OpenGL2, bool isExtensionsEnabled = true); static RendererRef Create(Effekseer::Backend::GraphicsDeviceRef graphicsDevice, int32_t squareMaxCount); /** @brief 最大描画スプライト数を取得する。 */ virtual int32_t GetSquareMaxCount() const = 0; /** @brief 最大描画スプライト数を設定する。 @note 描画している時は使用できない。 */ virtual void SetSquareMaxCount(int32_t count) = 0; /** @brief \~english Specify a background. \~japanese 背景を設定する。 */ virtual void SetBackground(GLuint background, bool hasMipmap = false) = 0; /** @brief \~english get a device type \~japanese デバイスの種類を取得する。 */ virtual OpenGLDeviceType GetDeviceType() const = 0; /** @brief \~english get whether VAO is supported \~japanese VAOがサポートされているか取得する。 */ virtual bool IsVertexArrayObjectSupported() const = 0; }; } // namespace EffekseerRendererGL //---------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------- #endif // __EFFEKSEERRENDERER_GL_RENDERER_H__