mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:17:34 +00:00
LibGL: Implement glLineWidth
This commit is contained in:
parent
22f8294a57
commit
fbed7a5ba8
5 changed files with 21 additions and 1 deletions
|
@ -467,6 +467,7 @@ GLAPI void glNormal3fv(GLfloat const* v);
|
||||||
GLAPI void glRasterPos2i(GLint x, GLint y);
|
GLAPI void glRasterPos2i(GLint x, GLint y);
|
||||||
GLAPI void glMaterialf(GLenum face, GLenum pname, GLfloat param);
|
GLAPI void glMaterialf(GLenum face, GLenum pname, GLfloat param);
|
||||||
GLAPI void glMaterialfv(GLenum face, GLenum pname, GLfloat const* params);
|
GLAPI void glMaterialfv(GLenum face, GLenum pname, GLfloat const* params);
|
||||||
|
GLAPI void glLineWidth(GLfloat width);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,7 @@ public:
|
||||||
virtual void gl_normal(GLfloat nx, GLfloat ny, GLfloat nz) = 0;
|
virtual void gl_normal(GLfloat nx, GLfloat ny, GLfloat nz) = 0;
|
||||||
virtual void gl_raster_pos(GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
|
virtual void gl_raster_pos(GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
|
||||||
virtual void gl_materialv(GLenum face, GLenum pname, GLfloat const* params) = 0;
|
virtual void gl_materialv(GLenum face, GLenum pname, GLfloat const* params) = 0;
|
||||||
|
virtual void gl_line_width(GLfloat width) = 0;
|
||||||
|
|
||||||
virtual void present() = 0;
|
virtual void present() = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,11 @@
|
||||||
|
|
||||||
extern GL::GLContext* g_gl_context;
|
extern GL::GLContext* g_gl_context;
|
||||||
|
|
||||||
|
void glLineWidth(GLfloat width)
|
||||||
|
{
|
||||||
|
g_gl_context->gl_line_width(width);
|
||||||
|
}
|
||||||
|
|
||||||
void glRasterPos2i(GLint x, GLint y)
|
void glRasterPos2i(GLint x, GLint y)
|
||||||
{
|
{
|
||||||
g_gl_context->gl_raster_pos(static_cast<float>(x), static_cast<float>(y), 0.0f, 1.0f);
|
g_gl_context->gl_raster_pos(static_cast<float>(x), static_cast<float>(y), 0.0f, 1.0f);
|
||||||
|
|
|
@ -2318,6 +2318,15 @@ void SoftwareGLContext::gl_materialv(GLenum face, GLenum pname, GLfloat const* p
|
||||||
dbgln_if(GL_DEBUG, "SoftwareGLContext FIXME: gl_materialv({}, {}, {}, {}, {}, {})", face, pname, x, y, z, w);
|
dbgln_if(GL_DEBUG, "SoftwareGLContext FIXME: gl_materialv({}, {}, {}, {}, {}, {})", face, pname, x, y, z, w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SoftwareGLContext::gl_line_width(GLfloat width)
|
||||||
|
{
|
||||||
|
APPEND_TO_CALL_LIST_AND_RETURN_IF_NEEDED(gl_line_width, width);
|
||||||
|
|
||||||
|
RETURN_WITH_ERROR_IF(width <= 0, GL_INVALID_VALUE);
|
||||||
|
|
||||||
|
m_line_width = width;
|
||||||
|
}
|
||||||
|
|
||||||
void SoftwareGLContext::present()
|
void SoftwareGLContext::present()
|
||||||
{
|
{
|
||||||
m_rasterizer.blit_to(*m_frontbuffer);
|
m_rasterizer.blit_to(*m_frontbuffer);
|
||||||
|
|
|
@ -109,6 +109,7 @@ public:
|
||||||
virtual void gl_normal(GLfloat nx, GLfloat ny, GLfloat nz) override;
|
virtual void gl_normal(GLfloat nx, GLfloat ny, GLfloat nz) override;
|
||||||
virtual void gl_raster_pos(GLfloat x, GLfloat y, GLfloat z, GLfloat w) override;
|
virtual void gl_raster_pos(GLfloat x, GLfloat y, GLfloat z, GLfloat w) override;
|
||||||
virtual void gl_materialv(GLenum face, GLenum pname, GLfloat const* params) override;
|
virtual void gl_materialv(GLenum face, GLenum pname, GLfloat const* params) override;
|
||||||
|
virtual void gl_line_width(GLfloat width) override;
|
||||||
virtual void present() override;
|
virtual void present() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -278,7 +279,8 @@ private:
|
||||||
decltype(&SoftwareGLContext::gl_stencil_op_separate),
|
decltype(&SoftwareGLContext::gl_stencil_op_separate),
|
||||||
decltype(&SoftwareGLContext::gl_normal),
|
decltype(&SoftwareGLContext::gl_normal),
|
||||||
decltype(&SoftwareGLContext::gl_raster_pos),
|
decltype(&SoftwareGLContext::gl_raster_pos),
|
||||||
decltype(&SoftwareGLContext::gl_materialv)>;
|
decltype(&SoftwareGLContext::gl_materialv),
|
||||||
|
decltype(&SoftwareGLContext::gl_line_width)>;
|
||||||
|
|
||||||
using ExtraSavedArguments = Variant<
|
using ExtraSavedArguments = Variant<
|
||||||
FloatMatrix4x4>;
|
FloatMatrix4x4>;
|
||||||
|
@ -325,6 +327,8 @@ private:
|
||||||
FloatVector4 texture_coordinates { 0.0f, 0.0f, 0.0f, 1.0f };
|
FloatVector4 texture_coordinates { 0.0f, 0.0f, 0.0f, 1.0f };
|
||||||
};
|
};
|
||||||
RasterPosition m_current_raster_position;
|
RasterPosition m_current_raster_position;
|
||||||
|
|
||||||
|
float m_line_width { 1.0f };
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue