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

📄 fglselectbuffer.html

📁 计算机图形学~想必是很多人需要的~在此共享一下
💻 HTML
字号:
<HTML><BODY><PRE>     <STRONG>NAME</STRONG>	  <STRONG>fglSelectBuffer</STRONG> - establish a	buffer for selection mode	  values     <STRONG>FORTRAN</STRONG> <STRONG>SPECIFICATION</STRONG>	  SUBROUTINE <STRONG>fglSelectBuffer</STRONG>( INTEGER*4	<EM>size</EM>,				      CHARACTER*8 <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>fglSelectBuffer</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>fglInitNames</STRONG>, <STRONG>fglLoadName</STRONG>, <STRONG>fglPushName</STRONG>) when the	  rendering mode is <STRONG>GL_SELECT</STRONG> (see <STRONG>fglRenderMode</STRONG>).	  <STRONG>fglSelectBuffer</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>fglRenderMode</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>fglRenderMode</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>fglRenderMode</STRONG> with an argument	  other	than <STRONG>GL_SELECT</STRONG>.	 Whenever <STRONG>fglRenderMode</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>fglRenderMode</STRONG>	  was called, a	negative hit record count is returned.     <STRONG>NOTES</STRONG>	  The contents of <EM>buffer</EM> is undefined until <STRONG>fglRenderMode</STRONG> is	  called with an argument other	than <STRONG>GL_SELECT</STRONG>.	  <STRONG>fglBegin</STRONG>/<STRONG>fglEnd</STRONG> primitives and calls to <STRONG>fglRasterPos</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>fglSelectBuffer</STRONG> is	  called while the render mode is <STRONG>GL_SELECT</STRONG>, or	if	  <STRONG>fglRenderMode</STRONG>	is called with argument	<STRONG>GL_SELECT</STRONG> before	  <STRONG>fglSelectBuffer</STRONG> is called at least once.	  <STRONG>GL_INVALID_OPERATION</STRONG> is generated if <STRONG>fglSelectBuffer</STRONG> is	  executed between the execution of <STRONG>fglBegin</STRONG> and the	  corresponding	execution of <STRONG>fglEnd</STRONG>.     <STRONG>ASSOCIATED</STRONG>	<STRONG>GETS</STRONG>	  <STRONG>fglGet</STRONG> with argument <STRONG>GL_NAME_STACK_DEPTH</STRONG>     <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG>	  <STRONG>fglFeedbackBuffer</STRONG>, <STRONG>fglInitNames</STRONG>, <STRONG>fglLoadName</STRONG>,	<STRONG>fglPushName</STRONG>,	  <STRONG>fglRenderMode</STRONG></PRE></BODY></HTML>

⌨️ 快捷键说明

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