diff --git a/include/Nazara/Renderer/OpenGL.hpp b/include/Nazara/Renderer/OpenGL.hpp index 55dc1c2ca..b346d3cc0 100644 --- a/include/Nazara/Renderer/OpenGL.hpp +++ b/include/Nazara/Renderer/OpenGL.hpp @@ -169,6 +169,7 @@ NAZARA_API extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv; NAZARA_API extern PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv; NAZARA_API extern PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv; NAZARA_API extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; +NAZARA_API extern PFNGLLINEWIDTHPROC glLineWidth; NAZARA_API extern PFNGLLINKPROGRAMPROC glLinkProgram; NAZARA_API extern PFNGLMAPBUFFERPROC glMapBuffer; NAZARA_API extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange; diff --git a/include/Nazara/Renderer/Renderer.hpp b/include/Nazara/Renderer/Renderer.hpp index 23f1964f9..10c4bfc3a 100644 --- a/include/Nazara/Renderer/Renderer.hpp +++ b/include/Nazara/Renderer/Renderer.hpp @@ -36,6 +36,7 @@ class NAZARA_API NzRenderer static void Enable(nzRendererParameter parameter, bool enable); + float GetLineWidth(); //static NzMatrix4f GetMatrix(nzMatrixCombination combination); static NzMatrix4f GetMatrix(nzMatrixType type); static unsigned int GetMaxAnisotropyLevel(); @@ -60,6 +61,7 @@ class NAZARA_API NzRenderer static void SetFaceCulling(nzFaceCulling cullingMode); static void SetFaceFilling(nzFaceFilling fillingMode); static bool SetIndexBuffer(const NzIndexBuffer* indexBuffer); + static void SetLineWidth(float size); static void SetMatrix(nzMatrixType type, const NzMatrix4f& matrix); static void SetPointSize(float size); static bool SetShader(NzShader* shader); diff --git a/src/Nazara/Renderer/OpenGL.cpp b/src/Nazara/Renderer/OpenGL.cpp index bb4f99a4b..c7486d946 100644 --- a/src/Nazara/Renderer/OpenGL.cpp +++ b/src/Nazara/Renderer/OpenGL.cpp @@ -278,6 +278,7 @@ namespace NzOpenGL glGetTexParameterfv = reinterpret_cast(LoadEntry("glGetTexParameterfv")); glGetTexParameteriv = reinterpret_cast(LoadEntry("glGetTexParameteriv")); glGetUniformLocation = reinterpret_cast(LoadEntry("glGetUniformLocation")); + glLineWidth = reinterpret_cast(LoadEntry("glLineWidth")); glLinkProgram = reinterpret_cast(LoadEntry("glLinkProgram")); glMapBuffer = reinterpret_cast(LoadEntry("glMapBuffer")); glPixelStorei = reinterpret_cast(LoadEntry("glPixelStorei")); @@ -956,6 +957,7 @@ PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv = nullptr; PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv = nullptr; PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv = nullptr; PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation = nullptr; +PFNGLLINEWIDTHPROC glLineWidth = nullptr; PFNGLLINKPROGRAMPROC glLinkProgram = nullptr; PFNGLMAPBUFFERPROC glMapBuffer = nullptr; PFNGLMAPBUFFERRANGEPROC glMapBufferRange = nullptr; diff --git a/src/Nazara/Renderer/Renderer.cpp b/src/Nazara/Renderer/Renderer.cpp index b3d1e68fe..2e78d6600 100644 --- a/src/Nazara/Renderer/Renderer.cpp +++ b/src/Nazara/Renderer/Renderer.cpp @@ -196,6 +196,14 @@ void NzRenderer::Enable(nzRendererParameter parameter, bool enable) break; } } + +float NzRenderer::GetLineWidth() +{ + float lineWidth; + glGetFloatv(GL_LINE_WIDTH, &lineWidth); + + return lineWidth; +} /* NzMatrix4f NzRenderer::GetMatrix(nzMatrixCombination combination) { @@ -505,6 +513,19 @@ bool NzRenderer::SetIndexBuffer(const NzIndexBuffer* indexBuffer) return true; } +void NzRenderer::SetLineWidth(float width) +{ + #if NAZARA_RENDERER_SAFE + if (width <= 0.f) + { + NazaraError("Width must be over zero"); + return; + } + #endif + + glLineWidth(width); +} + void NzRenderer::SetMatrix(nzMatrixType type, const NzMatrix4f& matrix) { s_matrix[type] = matrix;