2 #ifndef __EFFEKSEERRENDERER_GL_BASE_PRE_H__ 3 #define __EFFEKSEERRENDERER_GL_BASE_PRE_H__ 8 #if __EFFEKSEER_RENDERER_GLES2_ONLY__ 15 #endif // #if __EFFEKSEER_RENDERER_GLES2_ONLY__ 17 #if defined(__EFFEKSEER_RENDERER_GLES2__) 19 #if defined(__APPLE__) 20 #include <OpenGLES/ES2/gl.h> 21 #include <OpenGLES/ES2/glext.h> 23 #include <GLES2/gl2.h> 24 #include <GLES2/gl2ext.h> 27 #elif defined(__EFFEKSEER_RENDERER_GLES3__) 29 #if defined(__APPLE__) 30 #include <OpenGLES/ES3/gl.h> 32 #define GL_GLEXT_PROTOTYPES 33 #include <GLES3/gl3.h> 36 #elif defined(__EFFEKSEER_RENDERER_GL2__) 40 #elif defined(__APPLE__) 41 #define GL_SILENCE_DEPRECATION 42 #include <OpenGL/gl.h> 51 #elif defined(__APPLE__) 52 #define GL_SILENCE_DEPRECATION 53 #include <OpenGL/gl3.h> 55 #define GL_GLEXT_PROTOTYPES 61 #if __EFFEKSEER_RENDERER_GLES2_ONLY__ 65 #pragma comment(lib, "gdiplus.lib") 66 #pragma comment(lib, "opengl32.lib") 69 #endif // #if __EFFEKSEER_RENDERER_GLES2_ONLY__ 87 #endif // __EFFEKSEERRENDERER_GL_BASE_PRE_H__ 89 #ifndef __EFFEKSEERRENDERER_GL_DEVICEOBJECT_COLLECTION_H__ 90 #define __EFFEKSEERRENDERER_GL_DEVICEOBJECT_COLLECTION_H__ 105 std::set<DeviceObject*> deviceObjects_;
139 #endif // __EFFEKSEERRENDERER_GL_DEVICEOBJECT_H__ 140 #ifndef __EFFEKSEERRENDERER_RENDERER_H__ 141 #define __EFFEKSEERRENDERER_RENDERER_H__ 160 class DistortingCallback
232 Impl*
impl =
nullptr;
352 virtual void SetCameraParameter(const ::Effekseer::Vector3D& front, const ::Effekseer::Vector3D& position);
494 virtual void SetTime(
float time);
535 #endif // __EFFEKSEERRENDERER_RENDERER_H__ 537 #ifndef __EFFEKSEERRENDERER_GL_RENDERER_H__ 538 #define __EFFEKSEERRENDERER_GL_RENDERER_H__ 554 class DeviceObjectCollection;
688 #endif // __EFFEKSEERRENDERER_GL_RENDERER_H__ virtual void ResetDrawCallCount()
Reset draw call count.
virtual void ResetDrawVertexCount()
Reset the number of vertex drawn.
friend class DeviceObject
virtual OpenGLDeviceType GetDeviceType() const =0
get a device type
virtual void SetCameraMatrix(const ::Effekseer::Matrix44 &mat)
Set a camera matrix.
virtual void SetTime(float time)
Set a current time (s)
virtual bool OnDistorting()
virtual ~GraphicsDevice()=default
virtual ::Effekseer::TrackRenderer * CreateTrackRenderer()=0
軌跡レンダラーを生成する。
virtual ~SingleFrameMemoryPool()=default
virtual int32_t GetSquareMaxCount() const =0
最大描画スプライト数を取得する。
virtual void SetBackground(GLuint background, bool hasMipmap=false)=0
Specify a background.
virtual float GetTime() const
Get a current time (s)
GLuint GLuint GLsizei count
virtual ::Effekseer::MaterialLoader * CreateMaterialLoader(::Effekseer::FileInterface *fileInterface=nullptr)=0
Create default material loader.
virtual void SetCommandList(CommandList *commandList)
specify a command list to render. This function is available except DirectX9, DirectX11 and OpenGL.
virtual void SetSquareMaxCount(int32_t count)=0
最大描画スプライト数を設定する。
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
virtual void SetLightColor(const ::Effekseer::Color &color)
Specify the color of light.
DeviceObjectCollection()=default
virtual UVStyle GetTextureUVStyle() const
Get an UV Style of texture when particles are rendered.
virtual void SetBackgroundTextureUVStyle(UVStyle style)
Set an UV Style of background when particles are rendered.
virtual void DeleteProxyTexture(Effekseer::TextureData *data)
Delete a proxy texture.
virtual ::Effekseer::RingRenderer * CreateRingRenderer()=0
リングレンダラーを生成する。
virtual ~CommandList()=default
std::vector< uint8_t > delayIndexBuffer
static Renderer * Create(int32_t squareMaxCount, OpenGLDeviceType deviceType=OpenGLDeviceType::OpenGL2, DeviceObjectCollection *deviceObjectCollection=nullptr)
Create an instance the number of maximum sprites device type of opengl for a middleware....
virtual void SetCameraParameter(const ::Effekseer::Vector3D &front, const ::Effekseer::Vector3D &position)
Set a front direction and position of camera manually.
virtual void SetRenderMode(Effekseer::RenderMode renderMode)
Specify a render mode.
virtual bool BeginRendering()=0
描画を開始する時に実行する。
virtual int32_t GetSquareMaxCount() const =0
最大描画スプライト数を取得する。
~DeviceObjectCollection()=default
virtual ::Effekseer::Vector3D GetCameraFrontDirection() const
Get a front direction of camera.
virtual void SetLightDirection(const ::Effekseer::Vector3D &direction)
Specifiy the direction of light.
virtual ::Effekseer::SpriteRenderer * CreateSpriteRenderer()=0
スプライトレンダラーを生成する。
virtual void SetProjectionMatrix(const ::Effekseer::Matrix44 &mat)
Set a projection matrix.
virtual Effekseer::RenderMode GetRenderMode() const
Get a render mode.
virtual void NewFrame()
notify that new frame is started.
::Effekseer::TextureLoader * CreateTextureLoader(::Effekseer::FileInterface *fileInterface=nullptr, ::Effekseer::ColorSpaceType colorSpaceType=::Effekseer::ColorSpaceType::Gamma)
テクスチャ読込クラスを生成する。
virtual ::Effekseer::Matrix44 GetCameraProjectionMatrix() const
Get a camera projection matrix.
virtual ::Effekseer::ModelRenderer * CreateModelRenderer()=0
モデルレンダラーを生成する。
virtual int32_t GetDrawCallCount() const
Get draw call count.
virtual void ResetRenderState()=0
レンダーステートを強制的にリセットする。
virtual void SetRestorationOfStatesFlag(bool flag)=0
ステートを復帰するかどうかのフラグを設定する。
virtual void OnLostDevice()=0
デバイスロストが発生した時に実行する。
Model(void *data, int32_t size)
void OnResetDevice()
Call when device reset causes.
virtual ::Effekseer::TextureLoader * CreateTextureLoader(::Effekseer::FileInterface *fileInterface=NULL)=0
標準のテクスチャ読込クラスを生成する。
virtual ::Effekseer::Vector3D GetCameraPosition() const
Get a position of camera.
ProxyTextureType
A type of texture which is rendered when textures are not assigned.
Impl * GetImpl()
only for Effekseer backend developer. Effekseer User doesn't need it.
virtual void SetBackgroundTexture(::Effekseer::TextureData *textureData)
Specify a background texture. Specified texture is not deleted by the renderer. This function is avai...
virtual bool IsVertexArrayObjectSupported() const =0
get whether VAO is supported
virtual ::Effekseer::ModelLoader * CreateModelLoader(::Effekseer::FileInterface *fileInterface=NULL)=0
標準のモデル読込クラスを生成する。
virtual void SetDistortingCallback(DistortingCallback *callback)=0
背景を歪ませるエフェクトが描画される前に呼ばれるコールバックを設定する。
virtual void Destroy()=0
このインスタンスを破棄する。
virtual Effekseer::TextureData * GetBackground()=0
Get a background.
SingleFrameMemoryPool()=default
virtual ~DistortingCallback()
UVStyle
A status of UV when particles are rendered.
GLuint GLuint GLsizei GLenum type
virtual const ::Effekseer::Color & GetLightColor() const
Get the color of light.
virtual ::Effekseer::Matrix44 GetProjectionMatrix() const
Get a projection matrix.
virtual DistortingCallback * GetDistortingCallback()=0
背景を歪ませるエフェクトが描画される前に呼ばれるコールバックを取得する。
virtual ::Effekseer::Vector3D GetLightDirection() const
Get the direction of light.
virtual UVStyle GetBackgroundTextureUVStyle() const
Get an UV Style of background when particles are rendered.
virtual int32_t GetDrawVertexCount() const
Get the number of vertex drawn.
virtual void SetLightAmbientColor(const ::Effekseer::Color &color)
Specify the color of ambient.
virtual Effekseer::TextureData * CreateProxyTexture(ProxyTextureType type)
Create a proxy texture.
InternalModel * InternalModels
::Effekseer::ModelLoader * CreateModelLoader(::Effekseer::FileInterface *fileInterface=NULL)
モデル読込クラスを生成する。
virtual ::Effekseer::Matrix44 GetCameraMatrix() const
Get a camera matrix.
virtual void SetTextureUVStyle(UVStyle style)
Set an UV Style of texture when particles are rendered.
virtual bool EndRendering()=0
描画を終了する時に実行する。
virtual ::Effekseer::RibbonRenderer * CreateRibbonRenderer()=0
リボンレンダラーを生成する。
virtual void OnResetDevice()=0
デバイスがリセットされた時に実行する。
std::vector< uint8_t > delayVertexBuffer
virtual const ::Effekseer::Color & GetLightAmbientColor() const
Get the color of ambient.
void OnLostDevice()
Call when device lost causes.