summaryrefslogtreecommitdiff
path: root/source/modules/asura-core/graphics/gl.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-06-06 00:11:18 +0800
committerchai <chaifix@163.com>2019-06-06 00:11:18 +0800
commit88b882ed0b432c6aff2063213e2f793a36dd25f7 (patch)
tree5fe5d5334050e1a1146aa63e61e88aa2f5170727 /source/modules/asura-core/graphics/gl.h
parentf6c0498c9728a286c13980ed3b60763d02e1b3a0 (diff)
*misc
Diffstat (limited to 'source/modules/asura-core/graphics/gl.h')
-rw-r--r--source/modules/asura-core/graphics/gl.h165
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