X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Flines.c;h=dc7195d4ebf7389600c0b54c1cab5bdd8bb892b0;hb=f9ac01eac511aa9ea0b8b48774022a08d0fc2f3b;hp=821b17e0b556df83256427c2df28657cdc285bc7;hpb=27558a160a9fe91745728d7626995cd88f8fe339;p=mesa.git diff --git a/src/mesa/main/lines.c b/src/mesa/main/lines.c index 821b17e0b55..dc7195d4ebf 100644 --- a/src/mesa/main/lines.c +++ b/src/mesa/main/lines.c @@ -1,10 +1,8 @@ -/* $Id: lines.c,v 1.31 2003/03/01 01:50:21 brianp Exp $ */ - /* * Mesa 3-D graphics library - * Version: 5.1 + * Version: 6.5.3 * - * Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,7 +32,14 @@ #include "mtypes.h" -void +/** + * Set the line width. + * + * \param width line width in pixels. + * + * \sa glLineWidth(). + */ +void GLAPIENTRY _mesa_LineWidth( GLfloat width ) { GET_CURRENT_CONTEXT(ctx); @@ -54,19 +59,24 @@ _mesa_LineWidth( GLfloat width ) ctx->Const.MinLineWidth, ctx->Const.MaxLineWidth); - - if (width != 1.0) - ctx->_TriangleCaps |= DD_LINE_WIDTH; - else - ctx->_TriangleCaps &= ~DD_LINE_WIDTH; - if (ctx->Driver.LineWidth) - (*ctx->Driver.LineWidth)(ctx, width); + ctx->Driver.LineWidth(ctx, width); } - -void +/** + * Set the line stipple pattern. + * + * \param factor pattern scale factor. + * \param pattern bit pattern. + * + * \sa glLineStipple(). + * + * Updates gl_line_attrib::StippleFactor and gl_line_attrib::StipplePattern. On + * change flushes the vertices and notifies the driver via + * the dd_function_table::LineStipple callback. + */ +void GLAPIENTRY _mesa_LineStipple( GLint factor, GLushort pattern ) { GET_CURRENT_CONTEXT(ctx); @@ -85,3 +95,23 @@ _mesa_LineStipple( GLint factor, GLushort pattern ) if (ctx->Driver.LineStipple) ctx->Driver.LineStipple( ctx, factor, pattern ); } + + +/** + * Initialize the context line state. + * + * \param ctx GL context. + * + * Initializes __GLcontextRec::Line and line related constants in + * __GLcontextRec::Const. + */ +void GLAPIENTRY _mesa_init_line( GLcontext * ctx ) +{ + /* Line group */ + ctx->Line.SmoothFlag = GL_FALSE; + ctx->Line.StippleFlag = GL_FALSE; + ctx->Line.Width = 1.0; + ctx->Line._Width = 1.0; + ctx->Line.StipplePattern = 0xffff; + ctx->Line.StippleFactor = 1; +}