summaryrefslogtreecommitdiff
path: root/source/modules/asura-core/graphics/gfx_device.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-core/graphics/gfx_device.h')
-rw-r--r--source/modules/asura-core/graphics/gfx_device.h139
1 files changed, 0 insertions, 139 deletions
diff --git a/source/modules/asura-core/graphics/gfx_device.h b/source/modules/asura-core/graphics/gfx_device.h
deleted file mode 100644
index fa22dd4..0000000
--- a/source/modules/asura-core/graphics/gfx_device.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef __ASURA_ENGINE_GFX_DEVICE_H__
-#define __ASURA_ENGINE_GFX_DEVICE_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_begin(AsuraEngine)
-namespace_begin(Graphics)
-
-class Profiler;
-class Shader;
-class GPUBuffer;
-class Canvas;
-
-enum MatrixMode
-{
- MATRIX_MODE_PROJECTION = 0,
- MATRIX_MODE_MODEL = 1,
- MATRIX_MODE_VIEW = 2,
-};
-
-enum GLParams
-{
- GL_PARAM_MAX_TEXTURE_UNIT = 1,
-};
-
-class GfxDevice : public AEScripting::Portable<GfxDevice>
-{
-public:
-
- GfxDevice();
- ~GfxDevice();
-
- static GfxDevice& Get();
-
- int GetParam(GLParams param);
-
- bool Init(const AEMath::Recti& viewport);
- bool Inited();
-
- void SetViewport(const AEMath::Recti viewport);
-
- const AEMath::Recti& GetViewport();
-
- 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);
-
- uint GetMatrixDepth();
- uint GetMatrixIndex();
-
- AEMath::Matrix44& GetMatrix(MatrixMode mode);
- AEMath::Matrix44 GetMVPMatrix();
-
- void SetDrawColor(float r, float g, float b, float a);
- Color& GetDrawColor();
-
- void SetActiveCanvas(Canvas* = NULL);
- Canvas* GetActiveCanvas() const;
-
- void SetActiveShader(Shader* = NULL);
- Shader* GetActiveShader() const;
-
- void DrawArrays(GLenum mode, GLint first, GLsizei count);
-
- void WipeError();
- bool HasError();
- GLenum GetError();
-
-private:
-
- friend class Profiler;
-
- struct
- {
- AEMath::Recti viewport; ///< ǰлHDC߱ڴСı߲ˢʱ䶯
- MatrixStack matrix[3]; ///< model, view, projection
- MatrixMode matrixMode; ///< ǰľ
- Color drawColor; ///< Ƶɫ
- Canvas* canvas; ///< ǰcanvas
- Shader* shader; ///< ǰʹõshader
- } state;
-
-#if ASURA_GL_PROFILE
- struct
- {
- uint drawCall; ///< ͳdrawcall
- uint canvasSwitch; ///< лtextureĴ
- uint shaderSwitch; ///< лshaderĴ
- } stats;
-#endif
-
-luaxport:
-
- LUAX_DECL_SINGLETON(GfxDevice);
-
- 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);
-
-};
-
-// ȫ GfxDevice
-extern GfxDevice g_Device;
-
-namespace_end
-namespace_end
-
-#endif \ No newline at end of file