core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

feedback.c File Reference


Detailed Description

Selection and feedback modes functions.

#include "glheader.h"
#include "colormac.h"
#include "context.h"
#include "enums.h"
#include "feedback.h"
#include "macros.h"
#include "mtypes.h"

Defines

#define FB_3D   0x01
#define FB_4D   0x02
#define FB_INDEX   0x04
#define FB_COLOR   0x08
#define FB_TEXTURE   0X10

Functions

void GLAPIENTRY _mesa_FeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer)
void GLAPIENTRY _mesa_PassThrough (GLfloat token)
void _mesa_feedback_vertex (GLcontext *ctx, const GLfloat win[4], const GLfloat color[4], GLfloat index, const GLfloat texcoord[4])
 Put a vertex into the feedback buffer.
Selection
void GLAPIENTRY _mesa_SelectBuffer (GLsizei size, GLuint *buffer)
 Establish a buffer for selection mode values.
static INLINE void write_record (GLcontext *ctx, GLuint value)
 Write a value of a record into the selection buffer.
void _mesa_update_hitflag (GLcontext *ctx, GLfloat z)
 Update the hit flag and the maximum and minimum depth values.
static void write_hit_record (GLcontext *ctx)
 Write the hit record.
void GLAPIENTRY _mesa_InitNames (void)
 Initialize the name stack.
void GLAPIENTRY _mesa_LoadName (GLuint name)
 Load the top-most name of the name stack.
void GLAPIENTRY _mesa_PushName (GLuint name)
 Push a name into the name stack.
void GLAPIENTRY _mesa_PopName (void)
 Pop a name into the name stack.
Render Mode
GLint GLAPIENTRY _mesa_RenderMode (GLenum mode)
 Set rasterization mode.
Initialization
void _mesa_init_feedback (GLcontext *ctx)
 Initialize context feedback data.


Define Documentation

#define FB_3D   0x01

#define FB_4D   0x02

#define FB_COLOR   0x08

#define FB_INDEX   0x04

#define FB_TEXTURE   0X10


Function Documentation

void _mesa_feedback_vertex ( GLcontext ctx,
const GLfloat  win[4],
const GLfloat  color[4],
GLfloat  index,
const GLfloat  texcoord[4] 
)

Put a vertex into the feedback buffer.

void GLAPIENTRY _mesa_FeedbackBuffer ( GLsizei  size,
GLenum  type,
GLfloat *  buffer 
)

void _mesa_init_feedback ( GLcontext ctx  ) 

Initialize context feedback data.

void GLAPIENTRY _mesa_InitNames ( void   ) 

Initialize the name stack.

Verifies we are in select mode and resets the name stack depth and resets the hit record data in gl_selection. Marks new render mode in __GLcontextRec::NewState.

void GLAPIENTRY _mesa_LoadName ( GLuint  name  ) 

Load the top-most name of the name stack.

Parameters:
name name.
Verifies we are in selection mode and that the name stack is not empty. Flushes vertices. If there is a hit flag writes it (via write_hit_record()), and replace the top-most name in the stack.

sa __GLcontextRec::Select.

void GLAPIENTRY _mesa_PassThrough ( GLfloat  token  ) 

void GLAPIENTRY _mesa_PopName ( void   ) 

Pop a name into the name stack.

Verifies we are in selection mode and that the name stack is not empty. Flushes vertices. If there is a hit flag writes it (via write_hit_record()), and removes top-most name in the name stack.

sa __GLcontextRec::Select.

void GLAPIENTRY _mesa_PushName ( GLuint  name  ) 

Push a name into the name stack.

Parameters:
name name.
Verifies we are in selection mode and that the name stack is not full. Flushes vertices. If there is a hit flag writes it (via write_hit_record()), and adds the name to the top of the name stack.

sa __GLcontextRec::Select.

GLint GLAPIENTRY _mesa_RenderMode ( GLenum  mode  ) 

Set rasterization mode.

Parameters:
mode rasterization mode.
Note:
this function can't be put in a display list.
See also:
glRenderMode().
Flushes the vertices and do the necessary cleanup according to the previous rasterization mode, such as writing the hit record or resent the select buffer index when exiting the select mode. Updates __GLcontextRec::RenderMode and notifies the driver via the dd_function_table::RenderMode callback.

void GLAPIENTRY _mesa_SelectBuffer ( GLsizei  size,
GLuint *  buffer 
)

Establish a buffer for selection mode values.

Parameters:
size buffer size.
buffer buffer.
See also:
glSelectBuffer().
Note:
this function can't be put in a display list.
Verifies we're not in selection mode, flushes the vertices and initialize the fields in __GLcontextRec::Select with the given buffer.

void _mesa_update_hitflag ( GLcontext ctx,
GLfloat  z 
)

Update the hit flag and the maximum and minimum depth values.

Parameters:
ctx GL context.
z depth.
Sets gl_selection::HitFlag and updates gl_selection::HitMinZ and gl_selection::HitMaxZ.

static void write_hit_record ( GLcontext ctx  )  [static]

Write the hit record.

Parameters:
ctx GL context.
Write the hit record, i.e., the number of names in the stack, the minimum and maximum depth values and the number of names in the name stack at the time of the event. Resets the hit flag.

See also:
gl_selection.

static INLINE void write_record ( GLcontext ctx,
GLuint  value 
) [static]

Write a value of a record into the selection buffer.

Parameters:
ctx GL context.
value value.
Verifies there is free space in the buffer to write the value and increments the pointer.


Generated on Sun Sep 27 06:47:45 2009 for Mesa Main by  doxygen 1.5.4