diff options
author | chai <chaifix@163.com> | 2019-06-06 00:11:18 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-06-06 00:11:18 +0800 |
commit | 88b882ed0b432c6aff2063213e2f793a36dd25f7 (patch) | |
tree | 5fe5d5334050e1a1146aa63e61e88aa2f5170727 /source/modules/asura-core/graphics/gl.h | |
parent | f6c0498c9728a286c13980ed3b60763d02e1b3a0 (diff) |
*misc
Diffstat (limited to 'source/modules/asura-core/graphics/gl.h')
-rw-r--r-- | source/modules/asura-core/graphics/gl.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/source/modules/asura-core/graphics/gl.h b/source/modules/asura-core/graphics/gl.h deleted file mode 100644 index 6c6ff30..0000000 --- a/source/modules/asura-core/graphics/gl.h +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef __ASURA_ENGINE_OPENGL_H__ -#define __ASURA_ENGINE_OPENGL_H__ - -#include <stack> - -#include <glad/glad.h> - -#include <asura-utils/scripting/portable.hpp> -#include <asura-utils/math/rect.hpp> -#include <asura-utils/math/matrix44.h> -#include <asura-utils/math/vector4.h> - -#include "color.h" -#include "matrix_stack.h" - -namespace AsuraEngine -{ - namespace Graphics - { - - class Profiler; - class Shader; - - enum MatrixMode - { - MATRIX_MODE_PROJECTION = 0, - MATRIX_MODE_MODEL = 1, - MATRIX_MODE_VIEW = 2, - }; - - enum GLParams - { - GL_PARAM_MAX_TEXTURE_UNIT = 1, - }; - - /// - /// OpenGLģһЩopengl״̬١ڱ༭രڻ£һڶӦһhwnd - /// һhdcԼopengl contextʹwglMakeCurrent(hdc, glc)ָǰ̶߳ - /// Ⱦhdcopenglglcglм¼ľһ̵߳һڵһOpenGL - /// ĵ״ֶ̬֧Ⱦ - /// - class OpenGL : public AEScripting::Portable<OpenGL> - { - public: - - OpenGL(); - ~OpenGL(); - - /// - /// óֵ - /// - int GetParam(GLParams param); - - /// - /// ʼOpenGLIJڴOpenGL֮˺עOpenGLĵַ - /// - bool Init(const AEMath::Recti& viewport); - bool Inited(); - - void SetViewport(const AEMath::Recti viewport); - const AEMath::Recti& GetViewport(); - - void UseShader(Shader* shader); - void UnuseShader(); - Shader* GetShader(); - - /// - /// ͳdrawcall - /// - void DrawArrays(GLenum mode, GLint first, GLsizei count); - - /// - /// Matrix stackز - /// - void SetMatrixMode(MatrixMode mode); - MatrixMode GetMatrixMode(); - void PushMatrix(); - void PopMatrix(); - void LoadIdentity(); - void Rotate(float angle); - void Translate(float x, float y); - void Scale(float x, float y); - void Ortho(float l, float r, float b, float t, float n, float f); - AEMath::Matrix44& GetMatrix(MatrixMode mode); - AEMath::Matrix44 GetMVPMatrix(); - uint GetMatrixDepth(); - uint GetMatrixIndex(); - - void SetDrawColor(float r, float g, float b, float a); - Color& GetDrawColor(); - - /// - /// ʾ - /// - void WipeError(); - bool HasError(); - GLenum GetError(); - - /// - /// OpenGL3.0Ժû任ӿڡshaderȲﱣһЩOpenGL״̬ע - /// ƺȫ̵ģҲ˵Asuraֶ֧߳ȾOpenGLĵĴʹһ - /// İһHDC\ϣڴض̴߳ģOpenGLҲһ - /// ض̡߳ͬһ̵߳IJͬHDC\ڿԹͬһOpenGLġΪ - /// дtextuer\shaderhandle - /// - struct - { - Shader* shader; ///< ǰʹõshader - AEMath::Recti viewport; ///< ǰлHDC߱ڴСı߲ˢʱ䶯 - MatrixStack matrix[3]; ///< model, view, projection - MatrixMode matrixMode; ///< ǰľ - AEMath::Matrix44 mvpMatrix; ///< mvp matrix - Color drawColor; ///< Ƶɫ - } state; - -#if ASURA_GL_PROFILE - struct - { - uint drawCall; ///< ͳdrawcall - uint canvasSwitch; ///< лtextureĴ - uint shaderSwitch; ///< лshaderĴ - } stats; -#endif - - private: - - friend class Profiler; - - //----------------------------------------------------------------------------// - - LUAX_DECL_SINGLETON(OpenGL); - - LUAX_DECL_ENUM(MatrixMode, 1); - LUAX_DECL_ENUM(GLParams, 1); - - LUAX_DECL_METHOD(_SetMatrixMode); - LUAX_DECL_METHOD(_GetMatrixMode); - LUAX_DECL_METHOD(_PushMatrix); - LUAX_DECL_METHOD(_PopMatrix); - LUAX_DECL_METHOD(_LoadIdentity); - LUAX_DECL_METHOD(_Rotate); - LUAX_DECL_METHOD(_Translate); - LUAX_DECL_METHOD(_Scale); - LUAX_DECL_METHOD(_Ortho); - LUAX_DECL_METHOD(_GetMatrixDepth); - LUAX_DECL_METHOD(_GetMatrixIndex); - - LUAX_DECL_METHOD(_UseShader); - LUAX_DECL_METHOD(_UnuseShader); - - //----------------------------------------------------------------------------// - - bool mUpdateMVPMatrix; - - }; - - /// - /// OpenGL - /// - extern OpenGL gl; - - } -} - -#endif
\ No newline at end of file |