mirror of https://github.com/axmolengine/axmol.git
112 lines
3.3 KiB
C++
112 lines
3.3 KiB
C++
|
|
#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<void()>& 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<Renderer>;
|
|
|
|
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__
|