From 374491ee63807147a8333ee415428303f99aa466 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 4 Apr 2022 19:44:25 +0200 Subject: progress --- src/render/OpenGL.hpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/render/OpenGL.hpp (limited to 'src/render/OpenGL.hpp') diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp new file mode 100644 index 00000000..ad6f8d95 --- /dev/null +++ b/src/render/OpenGL.hpp @@ -0,0 +1,48 @@ +#pragma once + +#include "../defines.hpp" +#include "../helpers/Monitor.hpp" +#include "../helpers/Color.hpp" +#include +#include + +#include "Shaders.hpp" +#include "Shader.hpp" + +struct SCurrentRenderData { + SMonitor* pMonitor = nullptr; + float projection[9]; +}; + +class CHyprOpenGLImpl { +public: + + CHyprOpenGLImpl(); + + void begin(SMonitor*); + void end(); + + void clear(const CColor&); + void scissor(const wlr_box*); + + SCurrentRenderData m_RenderData; + +private: + std::list m_lBuffers; + std::list m_lTextures; + + int m_iDRMFD; + std::string m_szExtensions; + + // Shaders + SQuad m_qShaderQuad; + CShader m_shRGBA; + CShader m_shRGBX; + CShader m_shEXT; + // + + GLuint createProgram(const std::string&, const std::string&); + GLuint compileShader(const GLuint&, std::string); +}; + +inline std::unique_ptr g_pHyprOpenGL; \ No newline at end of file -- cgit v1.2.3 From 334f5a59b07c890418ec28630e428e1e02e5f51e Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 4 Apr 2022 21:45:35 +0200 Subject: added broken rect renderer --- src/render/OpenGL.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/render/OpenGL.hpp') diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index ad6f8d95..dd380658 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -9,6 +9,18 @@ #include "Shaders.hpp" #include "Shader.hpp" +inline const float matrixFlip180[] = { + 1.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + 0.0f, 0.0f, 1.0f, +}; +inline const float fullVerts[] = { + 1, 0, // top right + 0, 0, // top left + 1, 1, // bottom right + 0, 1, // bottom left +}; + struct SCurrentRenderData { SMonitor* pMonitor = nullptr; float projection[9]; @@ -22,6 +34,8 @@ public: void begin(SMonitor*); void end(); + void renderRect(wlr_box*, const CColor&); + void clear(const CColor&); void scissor(const wlr_box*); @@ -35,7 +49,7 @@ private: std::string m_szExtensions; // Shaders - SQuad m_qShaderQuad; + SQuad m_shQUAD; CShader m_shRGBA; CShader m_shRGBX; CShader m_shEXT; -- cgit v1.2.3 From 19d946504239e3df1b8afb26d2053fb80dfff19e Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Tue, 5 Apr 2022 14:33:54 +0200 Subject: Rendering textures --- src/render/OpenGL.hpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/render/OpenGL.hpp') diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp index dd380658..c3e1b987 100644 --- a/src/render/OpenGL.hpp +++ b/src/render/OpenGL.hpp @@ -8,6 +8,7 @@ #include "Shaders.hpp" #include "Shader.hpp" +#include "Texture.hpp" inline const float matrixFlip180[] = { 1.0f, 0.0f, 0.0f, @@ -35,6 +36,8 @@ public: void end(); void renderRect(wlr_box*, const CColor&); + void renderTexture(wlr_texture*, float matrix[9], float a); + void renderTexture(const CTexture&, float matrix[9], float a); void clear(const CColor&); void scissor(const wlr_box*); -- cgit v1.2.3