⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectbuffer.html

📁 计算机图形学~想必是很多人需要的~在此共享一下
💻 HTML
字号:
<HTML><BODY><PRE>     <STRONG>NAME</STRONG>	  <STRONG>glSelectBuffer</STRONG> - establish a buffer for selection mode	  values     <STRONG>C</STRONG> <STRONG>SPECIFICATION</STRONG>	  void <STRONG>glSelectBuffer</STRONG>( GLsizei <EM>size</EM>,			       GLuint *<EM>buffer</EM> )     <STRONG>PARAMETERS</STRONG>	  <EM>size</EM>	  Specifies the	size of	<EM>buffer</EM>.	  <EM>buffer</EM>  Returns the selection	data.     <STRONG>DESCRIPTION</STRONG>	  <STRONG>glSelectBuffer</STRONG> has two arguments:  <EM>buffer</EM> is a pointer to an	  array	of unsigned integers, and <EM>size</EM> indicates the size of	  the array.  <EM>buffer</EM> returns values from the name stack	(see	  <STRONG>glInitNames</STRONG>, <STRONG>glLoadName</STRONG>, <STRONG>glPushName</STRONG>) when the	rendering mode	  is <STRONG>GL_SELECT</STRONG> (see <STRONG>glRenderMode</STRONG>).  <STRONG>glSelectBuffer</STRONG> must	be	  issued before	selection mode is enabled, and it must not be	  issued while the rendering mode is <STRONG>GL_SELECT</STRONG>.	  A programmer can use selection to determine which primitives	  are drawn into some region of	a window.  The region is	  defined by the current modelview and perspective matrices.	  In selection mode, no	pixel fragments	are produced from	  rasterization.  Instead, if a	primitive or a raster position	  intersects the clipping volume defined by the	viewing	  frustum and the user-defined clipping	planes,	this primitive	  causes a selection hit.  (With polygons, no hit occurs if	  the polygon is culled.)  When	a change is made to the	name	  stack, or when <STRONG>glRenderMode</STRONG> is called, a hit record is	  copied to <EM>buffer</EM> if any hits have occurred since the last	  such event (name stack change	or <STRONG>glRenderMode</STRONG>	call).	The	  hit record consists of the number of names in	the name stack	  at the time of the event, followed by	the minimum and	  maximum depth	values of all vertices that hit	since the	  previous event, followed by the name stack contents, bottom	  name first.	  Depth	values (which are in the range [0,1]) are multiplied	  by 2^32 - 1, before being placed in the hit record.	  An internal index into <EM>buffer</EM>	is reset to 0 whenever	  selection mode is entered.  Each time	a hit record is	copied	  into <EM>buffer</EM>, the index is incremented	to point to the	cell	  just past the	end of the block of names - that is, to	the	  next available cell.	If the hit record is larger than the	  number of remaining locations	in <EM>buffer</EM>, as much data	as can	  fit is copied, and the overflow flag is set.	If the name	  stack	is empty when a	hit record is copied, that record	  consists of 0	followed by the	minimum	and maximum depth	  values.	  To exit selection mode, call <STRONG>glRenderMode</STRONG> with an argument	  other	than <STRONG>GL_SELECT</STRONG>.	 Whenever <STRONG>glRenderMode</STRONG> is called while	  the render mode is <STRONG>GL_SELECT</STRONG>,	it returns the number of hit	  records copied to <EM>buffer</EM>, resets the overflow	flag and the	  selection buffer pointer, and	initializes the	name stack to	  be empty.  If	the overflow bit was set when <STRONG>glRenderMode</STRONG> was	  called, a negative hit record	count is returned.     <STRONG>NOTES</STRONG>	  The contents of <EM>buffer</EM> is undefined until <STRONG>glRenderMode</STRONG> is	  called with an argument other	than <STRONG>GL_SELECT</STRONG>.	  <STRONG>glBegin</STRONG>/<STRONG>glEnd</STRONG>	primitives and calls to	<STRONG>glRasterPos</STRONG> can	result	  in hits.     <STRONG>ERRORS</STRONG>	  <STRONG>GL_INVALID_VALUE</STRONG> is generated	if <EM>size</EM>	is negative.	  <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <STRONG>glSelectBuffer</STRONG> is	  called while the render mode is <STRONG>GL_SELECT</STRONG>, or	if	  <STRONG>glRenderMode</STRONG> is called with argument <STRONG>GL_SELECT</STRONG> before	  <STRONG>glSelectBuffer</STRONG> is called at least once.	  <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <STRONG>glSelectBuffer</STRONG> is	  executed between the execution of <STRONG>glBegin</STRONG> and	the	  corresponding	execution of <STRONG>glEnd</STRONG>.     <STRONG>ASSOCIATED</STRONG>	<STRONG>GETS</STRONG>	  <STRONG>glGet</STRONG>	with argument <STRONG>GL_NAME_STACK_DEPTH</STRONG>     <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG>	  <STRONG>glFeedbackBuffer</STRONG>, <STRONG>glInitNames</STRONG>, <STRONG>glLoadName</STRONG>, <STRONG>glPushName</STRONG>,	  <STRONG>glRenderMode</STRONG></PRE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -