コード例 #1
0
ファイル: s_feedback.c プロジェクト: xSIMx/Mesa-3D
void
_swrast_select_triangle(struct gl_context *ctx, const SWvertex *v0,
                        const SWvertex *v1, const SWvertex *v2)
{
   if (!_swrast_culltriangle(ctx, v0, v1, v2)) {
      const GLfloat zs = 1.0F / ctx->DrawBuffer->_DepthMaxF;

      _mesa_update_hitflag( ctx, v0->attrib[VARYING_SLOT_POS][2] * zs );
      _mesa_update_hitflag( ctx, v1->attrib[VARYING_SLOT_POS][2] * zs );
      _mesa_update_hitflag( ctx, v2->attrib[VARYING_SLOT_POS][2] * zs );
   }
}
コード例 #2
0
void
_swrast_select_triangle(GLcontext *ctx, const SWvertex *v0,
                        const SWvertex *v1, const SWvertex *v2)
{
   if (_swrast_culltriangle(ctx, v0, v1, v2)) {
      const GLfloat zs = 1.0F / ctx->DrawBuffer->_DepthMaxF;

      _mesa_update_hitflag( ctx, v0->attrib[FRAG_ATTRIB_WPOS][2] * zs );
      _mesa_update_hitflag( ctx, v1->attrib[FRAG_ATTRIB_WPOS][2] * zs );
      _mesa_update_hitflag( ctx, v2->attrib[FRAG_ATTRIB_WPOS][2] * zs );
   }
}
コード例 #3
0
void _swrast_select_triangle( GLcontext *ctx,
                              const SWvertex *v0,
                              const SWvertex *v1,
                              const SWvertex *v2)
{
    if (_swrast_culltriangle( ctx, v0, v1, v2 )) {
        const GLfloat zs = 1.0F / ctx->DepthMaxF;

        _mesa_update_hitflag( ctx, v0->win[2] * zs );
        _mesa_update_hitflag( ctx, v1->win[2] * zs );
        _mesa_update_hitflag( ctx, v2->win[2] * zs );
    }
}
コード例 #4
0
ファイル: s_feedback.c プロジェクト: xSIMx/Mesa-3D
/*
 * Put triangle in feedback buffer.
 */
void
_swrast_feedback_triangle(struct gl_context *ctx, const SWvertex *v0,
                          const SWvertex *v1, const SWvertex *v2)
{
   if (!_swrast_culltriangle(ctx, v0, v1, v2)) {
      _mesa_feedback_token(ctx, (GLfloat) (GLint) GL_POLYGON_TOKEN);
      _mesa_feedback_token(ctx, (GLfloat) 3); /* three vertices */

      if (ctx->Light.ShadeModel == GL_SMOOTH) {
         feedback_vertex(ctx, v0, v0);
         feedback_vertex(ctx, v1, v1);
         feedback_vertex(ctx, v2, v2);
      }
      else {
         feedback_vertex(ctx, v0, v2);
         feedback_vertex(ctx, v1, v2);
         feedback_vertex(ctx, v2, v2);
      }
   }
}
コード例 #5
0
/*
 * Put triangle in feedback buffer.
 */
void
_swrast_feedback_triangle(GLcontext *ctx, const SWvertex *v0,
                          const SWvertex *v1, const SWvertex *v2)
{
   if (_swrast_culltriangle(ctx, v0, v1, v2)) {
      FEEDBACK_TOKEN(ctx, (GLfloat) (GLint) GL_POLYGON_TOKEN);
      FEEDBACK_TOKEN(ctx, (GLfloat) 3); /* three vertices */

      if (ctx->Light.ShadeModel == GL_SMOOTH) {
         feedback_vertex(ctx, v0, v0);
         feedback_vertex(ctx, v1, v1);
         feedback_vertex(ctx, v2, v2);
      }
      else {
         feedback_vertex(ctx, v0, v2);
         feedback_vertex(ctx, v1, v2);
         feedback_vertex(ctx, v2, v2);
      }
   }
}