Commit Graph

37 Commits

Author SHA1 Message Date
Tim Evans
64e32ffb6e swrast: fix incorrect specular highlights on backfaces
See bug 28577 for details.
NOTE: this is a candidate for the 7.8 branch.

Signed-off-by: Brian Paul <brianp@vmware.com>
2010-06-21 17:19:59 -06:00
Ian Romanick
e650c07f47 swrast_setup: Remove more color-index rendering support
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-03-03 12:37:04 -08:00
Michal Krol
355e9bb45c swrast: Silence compiler warnings, give better structure to the code as a result. 2009-03-19 10:39:57 +01:00
Brian Paul
bbd287103d mesa: prefix a bunch of #include lines with "main/".
This is another step toward removing a whole bunch of -I flags from
the cc commands.  Still need to address driver code...
2008-09-18 12:26:54 -06:00
Brian
256115bd5e simplify update two-side lighting test (follow-on to previous front/back-face changes) 2007-12-18 16:24:19 -07:00
Brian
fcd7c37fd3 fix broken two-sided stencil 2007-11-30 13:01:57 -07:00
Brian
9e8a961dd7 Overhaul/simplify SWvertex and SWspan attribute handling.
Instead of separate fog/specular/texcoord/varying code, just treat all of
them as generic attributes.  Simplifies the point/line/triangle functions.
2007-05-20 12:27:39 -06:00
Brian
10b5895597 Implement gl_FrontFacing for fragment shaders.
For the time being, we put the gl_FrontFacing value in the FOGC.Y input
register.  Combining FOGC and FrontFacing in one register is a bit of a
hack and may need to be changed someday.
2007-03-10 11:30:19 -07:00
Brian Paul
42c34efd23 OpenGL 2.0's two-sided stencil feature wasn't implemented correctly.
See comment near top of stencil.c for info about OpenGL 2.0 vs.
GL_EXT_stencil_two_side.
2005-09-13 02:59:53 +00:00
Keith Whitwell
3d38361b71 Rename the various function types in t_context.h to include a tnl_ prefix. 2004-07-01 13:14:05 +00:00
Brian Paul
bdd15b5749 Fix minor warnings found with g++. 2004-05-04 15:11:06 +00:00
Brian Paul
6d460af6af Added ctx->Vertex/FragmentProgram._Enable flags. Set when vertex/fragment
program is enabled AND the currently bound program is valid.
Check _Enable instead of Enable to prevent things from blowing up
when someone calls glEnable(GL_VERTEX_PROGRAM_ARB) without actually
defining a program.
2004-04-23 14:16:46 +00:00
Brian Paul
867fa0b572 another tweak to two-sided detection test 2004-02-04 03:34:30 +00:00
Brian Paul
609f35274c fix two-sided lighting / vertex program bug (#887330) 2004-02-04 03:00:42 +00:00
Keith Whitwell
ae0eaf93e0 Merge vtx-0-2-branch 2003-11-24 15:23:18 +00:00
Brian Paul
29b4076f9a Move away from using the ctx->_TriangleCaps bitfield.
New macros in context.h for testing state: NEED_SECONDARY_COLOR
and NEED_TWO_SIDED_LIGHTING.
2003-09-18 23:21:08 +00:00
Ian Romanick
9ac51f57ef Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00
Brian Paul
46b3f97654 fix culling problem (bug 630649) 2002-10-29 22:25:57 +00:00
Brian Paul
05a4b37707 updated email addresses 2002-10-29 20:28:36 +00:00
Brian Paul
f782b8189e multiple GL_POINTS can now be rendered together into one fragment span 2002-10-04 17:37:45 +00:00
Brian Paul
be99e845bd finished up GL_EXT_stencil_two_side 2002-10-02 23:24:04 +00:00
Brian Paul
641b2307ec removed ctx->Polygon._OffsetAny - not really needed 2002-10-02 21:44:08 +00:00
Keith Whitwell
5356031129 Lighting now emits colors as CHAN_TYPE, as it used to. This will require
minor adjustments in the dri drivers for twosided lighting to work again.
2001-07-17 19:39:32 +00:00
Keith Whitwell
1182ffeec3 Rename some of the tnl->Driver.* functions to tnl->Driver.Render.*, to make it
clear that these are owned by t_vb_render.c.

Make swrast_setup opaque - it now hooks itself directly into
tnl->Driver.Render.*.  Add a _swsetup_Wakeup() call that does this.

Update X11 (tested), osmesa and FX drivers for this change.

FX compiles but is probably broken as the changes there are large.  It was the
only remaining driver that used the internal _swsetup_ functions for
interp and copy_pv.  This usage has been replaced with code from the DRI
tdfx driver.
2001-07-12 22:09:21 +00:00
Keith Whitwell
51c0c71811 Support for floating point color representation in tnl module. 2001-04-28 08:39:17 +00:00
Gareth Hughes
22144ab755 Consistent copyright info (version number, date) across all files. 2001-03-12 00:48:37 +00:00
Brian Paul
01915e90e6 More g++ warning fixes. Fixes for CHAN_BITS==16, it seems to work. 2001-03-08 15:23:46 +00:00
Brian Paul
b51b0a847d fixed a bunch of g++ warnings/errors. Compiling with g++ can help find lots of potential problems 2001-03-07 05:06:11 +00:00
Brian Paul
b6bcae5698 Replaced struct gl_visual with struct __GLcontextModesRec from glcore.h.
Replace "RGBAMode" with "rgbMode", etc.
Other minor clean-ups.
2001-01-23 23:39:36 +00:00
Keith Whitwell
d43a5943d8 Fix several conformance problems. Hack solution to line stipple problem. 2001-01-16 05:29:42 +00:00
Keith Whitwell
3fd01320f1 Fixed conform feedback and drawelements tests.
Use correct pv when rasterizing unfilled polys.
2001-01-14 06:14:21 +00:00
Keith Whitwell
58e9917053 Remove 'pv' parameter from Line/Tri/Point funcs. The provoking vertex
is always the last vertex parameter.
Modify clipping to preserve pv colors.
Modify swrast and X11 driver to expect the pv in the last vertex
(was looking in the first vertex previously).
Remove all handling of flatshading from swrast_setup.

Allow drivers to override the unclipped render tabs in tnl_render_stage
directly.  (Like in 3.4).  Removed fxsimplerender stage.

Modified t_vb_rendertmp.h to remove the need for 'parity' arguments
in RENDER_TRI macros.
2001-01-05 02:26:48 +00:00
Keith Whitwell
cab974cf6c Major rework of tnl module
New array_cache module
Support 8 texture units in core mesa (now support 8 everywhere)
Rework core mesa statechange operations to avoid flushing on many
noop statechanges.
2000-12-26 05:09:27 +00:00
Jouk Jansen
5e3bc0c2a2 Committing in .
Modified Files:
 	Mesa/macos/gli_api/gliapi1.h Mesa/macos/gli_api/gliapi2.h
 	Mesa/macos/gli_api/gliapiext.h Mesa/macos/src-gli/fxgli.c
 	Mesa/macos/src-gli/fxgli.h Mesa/macos/src-gli/fxgli2.c
 	Mesa/macos/src-gli/fxgli_tridebug.c Mesa/src/accum.c
 	Mesa/src/accum.h Mesa/src/all.h Mesa/src/alpha.c
 	Mesa/src/alpha.h Mesa/src/attrib.c Mesa/src/attrib.h
 	Mesa/src/bitmap.c Mesa/src/bitmap.h Mesa/src/blend.c
 	Mesa/src/blend.h Mesa/src/buffers.c Mesa/src/buffers.h
 	Mesa/src/clip.c Mesa/src/clip.h Mesa/src/colortab.h
 	Mesa/src/config.c Mesa/src/context.c Mesa/src/context.h
 	Mesa/src/convolve.c Mesa/src/convolve.h Mesa/src/copypix.c
 	Mesa/src/copypix.h Mesa/src/debug.c Mesa/src/depth.c
 	Mesa/src/depth.h Mesa/src/dlist.c Mesa/src/dlist.h
 	Mesa/src/drawpix.c Mesa/src/drawpix.h Mesa/src/enable.c
 	Mesa/src/enable.h Mesa/src/eval.c Mesa/src/eval.h
 	Mesa/src/extensions.c Mesa/src/extensions.h
 	Mesa/src/feedback.c Mesa/src/feedback.h Mesa/src/fog.c
 	Mesa/src/fog.h Mesa/src/get.c Mesa/src/get.h Mesa/src/glapi.c
 	Mesa/src/glthread.h Mesa/src/highpc.c Mesa/src/hint.h
 	Mesa/src/histogram.h Mesa/src/image.c Mesa/src/image.h
 	Mesa/src/imports.c Mesa/src/light.c Mesa/src/light.h
 	Mesa/src/lines.c Mesa/src/lines.h Mesa/src/logic.c
 	Mesa/src/logic.h Mesa/src/masking.c Mesa/src/masking.h
 	Mesa/src/matrix.c Mesa/src/matrix.h Mesa/src/pixel.c
 	Mesa/src/pixel.h Mesa/src/points.c Mesa/src/points.h
 	Mesa/src/polygon.c Mesa/src/polygon.h Mesa/src/rastpos.c
 	Mesa/src/readpix.c Mesa/src/scissor.c Mesa/src/scissor.h
 	Mesa/src/state.c Mesa/src/state.h Mesa/src/stencil.c
 	Mesa/src/stencil.h Mesa/src/teximage.c Mesa/src/teximage.h
 	Mesa/src/texobj.c Mesa/src/texobj.h Mesa/src/texstate.c
 	Mesa/src/texstate.h Mesa/src/texture.c Mesa/src/texture.h
 	Mesa/src/texutil.c Mesa/src/texutil.h Mesa/src/varray.c
 	Mesa/src/varray.h Mesa/src/X/fakeglx.c Mesa/src/X/xm_api.c
 	Mesa/src/X/xm_dd.c Mesa/src/X/xm_line.c Mesa/src/X/xm_span.c
 	Mesa/src/X/xm_tri.c Mesa/src/swrast/s_aaline.c
 	Mesa/src/swrast/s_aaline.h Mesa/src/swrast/s_aatriangle.h
 	Mesa/src/swrast/s_accum.h Mesa/src/swrast/s_alpha.h
 	Mesa/src/swrast/s_alphabuf.h Mesa/src/swrast/s_blend.h
 	Mesa/src/swrast/s_context.c Mesa/src/swrast/s_context.h
 	Mesa/src/swrast/s_depth.h Mesa/src/swrast/s_drawpix.h
 	Mesa/src/swrast/s_feedback.h Mesa/src/swrast/s_fog.h
 	Mesa/src/swrast/s_histogram.h Mesa/src/swrast/s_lines.h
 	Mesa/src/swrast/s_logic.h Mesa/src/swrast/s_masking.h
 	Mesa/src/swrast/s_pb.h Mesa/src/swrast/s_pixeltex.h
 	Mesa/src/swrast/s_points.h Mesa/src/swrast/s_quads.c
 	Mesa/src/swrast/s_quads.h Mesa/src/swrast/s_scissor.h
 	Mesa/src/swrast/s_span.h Mesa/src/swrast/s_stencil.h
 	Mesa/src/swrast/s_texture.h Mesa/src/swrast/s_triangle.h
 	Mesa/src/swrast/s_zoom.h Mesa/src/swrast/swrast.h
 	Mesa/src/swrast_setup/ss_context.h
 	Mesa/src/swrast_setup/ss_triangle.c
 	Mesa/src/swrast_setup/ss_triangle.h
 	Mesa/src/swrast_setup/ss_vb.h Mesa/src/tnl/t_clip.c
 	Mesa/src/tnl/t_clip.h Mesa/src/tnl/t_context.c
 	Mesa/src/tnl/t_context.h Mesa/src/tnl/t_cva.c
 	Mesa/src/tnl/t_cva.h Mesa/src/tnl/t_debug.c
 	Mesa/src/tnl/t_debug.h Mesa/src/tnl/t_dlist.h
 	Mesa/src/tnl/t_eval.c Mesa/src/tnl/t_eval.h
 	Mesa/src/tnl/t_fog.c Mesa/src/tnl/t_fog.h
 	Mesa/src/tnl/t_light.c Mesa/src/tnl/t_light.h
 	Mesa/src/tnl/t_pipeline.c Mesa/src/tnl/t_pipeline.h
 	Mesa/src/tnl/t_shade.c Mesa/src/tnl/t_shade.h
 	Mesa/src/tnl/t_stages.c Mesa/src/tnl/t_stages.h
 	Mesa/src/tnl/t_texture.c Mesa/src/tnl/t_texture.h
 	Mesa/src/tnl/t_trans_elt.c Mesa/src/tnl/t_trans_elt.h
 	Mesa/src/tnl/t_varray.c Mesa/src/tnl/t_varray.h
 	Mesa/src/tnl/t_vb.c Mesa/src/tnl/t_vb.h
 	Mesa/src/tnl/t_vbcull.c Mesa/src/tnl/t_vbcull.h
 	Mesa/src/tnl/t_vbfill.c Mesa/src/tnl/t_vbfill.h
 	Mesa/src/tnl/t_vbindirect.c Mesa/src/tnl/t_vbindirect.h
 	Mesa/src/tnl/t_vbrender.c Mesa/src/tnl/t_vbrender.h
 	Mesa/src/tnl/t_vbxform.c Mesa/src/tnl/t_vbxform.h
 	Mesa/src/tnl/tnl.h
 Added Files:
 	Mesa/src/mtypes.h
 Removed Files:
 	Mesa/src/types.h

 Changed Mesa/src/types to Mesa/src/mtypes.h to avoid conflicts while
compiling on a VMS system.

----------------------------------------------------------------------
2000-11-22 07:32:16 +00:00
Keith Whitwell
23caf20169 Move the transform and lighting code to two new directories
math:  Provides basic matrix and vector functionality that
               might be useful to multiple software t&l
	       implementations, and is used by core mesa to
	       manage the Model, Project, etc matrices.

	tnl:   The real transform & lighting code from core mesa,
	       including everything from glVertex3f through vertex
	       buffer handling, transformation, clipping, lighting
	       and handoff to a driver for rasterization.

The interfaces of these can be further tightened up, but the basic
splitting up of state and code move is done.
2000-11-16 21:05:34 +00:00
Keith Whitwell
1e1aac034c Cleanup of derived state calculation prior to seperating software T&L
into a new directory.  Specifically the handling of changes to lighting
lighting space (light in model vs. light in eye) have been revamped.

Moved several derived values used only by swrast into that directory.

Removed direct calls to swrast_flush() from vbrender.c -- pushed into
ctx->Driver.RenderFinish.

Optimized flat-shading case in swrast_setup.
2000-11-13 20:02:56 +00:00
Keith Whitwell
7c20642b10 A new module to provide RasterSetup and advanced triangle/line/point
functionality layered on top of the software rasterizer.

An example entrypoint:
	void _swsetup_Triangle( GLcontext, GLuint, GLuint, GLuint, GLuint )

will coerce the software rasterizer to draw flat, twoside-lit,
unfilled and offset triangles (including decomposition to points or lines).
2000-11-05 18:20:18 +00:00