\hypertarget{a00643}{\section{A\+C\+G\+:\+:G\+L\+State Class Reference}
\label{a00643}\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
}


{\ttfamily \#include $<$A\+C\+G/\+Scenegraph/\+G\+L\+State.\+hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_ace458973a1e27e1551ac70e962825e2d}{\hyperlink{a00643_ace458973a1e27e1551ac70e962825e2d}{G\+L\+State} (bool \+\_\+update\+G\+L=true, bool \+\_\+compatibility\+Profile=true)}\label{a00643_ace458973a1e27e1551ac70e962825e2d}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00643_a126bae8a65d1fc62de208029c26d2036}{\hyperlink{a00643_a126bae8a65d1fc62de208029c26d2036}{$\sim$\+G\+L\+State} ()}\label{a00643_a126bae8a65d1fc62de208029c26d2036}

\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hypertarget{a00643_a107dd55534a1f5eadd5354ef9086f6f0}{void \hyperlink{a00643_a107dd55534a1f5eadd5354ef9086f6f0}{make\+Current} ()}\label{a00643_a107dd55534a1f5eadd5354ef9086f6f0}

\begin{DoxyCompactList}\small\item\em does nothing \end{DoxyCompactList}\item 
\hypertarget{a00643_ac24c86867100b1945b51fef276c5d59a}{void \hyperlink{a00643_ac24c86867100b1945b51fef276c5d59a}{initialize} ()}\label{a00643_ac24c86867100b1945b51fef276c5d59a}

\begin{DoxyCompactList}\small\item\em initialize all state variables (called by constructor) \end{DoxyCompactList}\item 
\hypertarget{a00643_ae40b0b92f6e9cc81593dafc63bd6b591}{bool \hyperlink{a00643_ae40b0b92f6e9cc81593dafc63bd6b591}{update\+G\+L} () const }\label{a00643_ae40b0b92f6e9cc81593dafc63bd6b591}

\begin{DoxyCompactList}\small\item\em should G\+L matrices be updated after each matrix operation \end{DoxyCompactList}\item 
\hypertarget{a00643_a700d4659dced6596d791c49b592620c4}{void \hyperlink{a00643_a700d4659dced6596d791c49b592620c4}{set\+\_\+update\+G\+L} (bool \+\_\+b)}\label{a00643_a700d4659dced6596d791c49b592620c4}

\begin{DoxyCompactList}\small\item\em should G\+L matrices be updated after each matrix operation \end{DoxyCompactList}\item 
\hypertarget{a00643_a253457dac3cfff284631daf8df0901c6}{unsigned int \hyperlink{a00643_a253457dac3cfff284631daf8df0901c6}{ms\+Since\+Last\+Redraw} () const }\label{a00643_a253457dac3cfff284631daf8df0901c6}

\begin{DoxyCompactList}\small\item\em time passed since last redraw in milliseconds \end{DoxyCompactList}\item 
\hypertarget{a00643_a01d352eddfcb3e09c6ea487378ebdab1}{void \hyperlink{a00643_a01d352eddfcb3e09c6ea487378ebdab1}{set\+\_\+ms\+Since\+Last\+Redraw} (unsigned int \+\_\+ms)}\label{a00643_a01d352eddfcb3e09c6ea487378ebdab1}

\begin{DoxyCompactList}\small\item\em set time passed since last redraw in milliseconds \end{DoxyCompactList}\item 
\hypertarget{a00643_a321063c2105070c631af32742f189fca}{void \hyperlink{a00643_a321063c2105070c631af32742f189fca}{set\+State} ()}\label{a00643_a321063c2105070c631af32742f189fca}

\begin{DoxyCompactList}\small\item\em set the whole stored gl state \end{DoxyCompactList}\item 
\hypertarget{a00643_af0c792bccdd3727be745ada47187c69a}{void \hyperlink{a00643_af0c792bccdd3727be745ada47187c69a}{clear\+Buffers} ()}\label{a00643_af0c792bccdd3727be745ada47187c69a}

\begin{DoxyCompactList}\small\item\em clear buffers viewport rectangle \end{DoxyCompactList}\item 
\hypertarget{a00643_a74807e8cb0329dd82a957bf82a6d3c0c}{const G\+Lenum \& \hyperlink{a00643_a74807e8cb0329dd82a957bf82a6d3c0c}{depth\+Func} () const }\label{a00643_a74807e8cb0329dd82a957bf82a6d3c0c}

\begin{DoxyCompactList}\small\item\em get gl\+Depth\+Func() that is supposed to be active \end{DoxyCompactList}\item 
\hypertarget{a00643_a1b6471723ad1da30a952837b4c5828cd}{void \hyperlink{a00643_a1b6471723ad1da30a952837b4c5828cd}{set\+\_\+depth\+Func} (const G\+Lenum \&\+\_\+depth\+\_\+func)}\label{a00643_a1b6471723ad1da30a952837b4c5828cd}

\begin{DoxyCompactList}\small\item\em Call gl\+Depth\+Func() to actually change the depth comparison function, and store the new value in this \hyperlink{a00643}{G\+L\+State}. \end{DoxyCompactList}\item 
\hypertarget{a00643_a65155efd9f1db851c84df26877d8d38d}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_a65155efd9f1db851c84df26877d8d38d}{project} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+point) const }\label{a00643_a65155efd9f1db851c84df26877d8d38d}

\begin{DoxyCompactList}\small\item\em project point in world coordinates to window coordinates \end{DoxyCompactList}\item 
\hypertarget{a00643_a1428ac88c5f94d6a045d4d4d484fefb5}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_a1428ac88c5f94d6a045d4d4d484fefb5}{unproject} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+win\+Point) const }\label{a00643_a1428ac88c5f94d6a045d4d4d484fefb5}

\begin{DoxyCompactList}\small\item\em unproject point in window coordinates \+\_\+win\+Point to world coordinates \end{DoxyCompactList}\item 
\hypertarget{a00643_a9b169ec60dbab7a728e86f37238d381a}{void \hyperlink{a00643_a9b169ec60dbab7a728e86f37238d381a}{set\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_a9b169ec60dbab7a728e86f37238d381a}

\begin{DoxyCompactList}\small\item\em set color \end{DoxyCompactList}\item 
\hypertarget{a00643_ab26bc0e97d0964cefe161b66f7785614}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_ab26bc0e97d0964cefe161b66f7785614}{color} ()}\label{a00643_ab26bc0e97d0964cefe161b66f7785614}

\begin{DoxyCompactList}\small\item\em set color \end{DoxyCompactList}\item 
\hypertarget{a00643_a8e7eed0c5686f9161810f9de413b1f21}{void \hyperlink{a00643_a8e7eed0c5686f9161810f9de413b1f21}{set\+\_\+clear\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_a8e7eed0c5686f9161810f9de413b1f21}

\begin{DoxyCompactList}\small\item\em set background color \end{DoxyCompactList}\item 
\hypertarget{a00643_a0365fd9d64f211032460797e1e29c46f}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_a0365fd9d64f211032460797e1e29c46f}{clear\+\_\+color} () const }\label{a00643_a0365fd9d64f211032460797e1e29c46f}

\begin{DoxyCompactList}\small\item\em get background color \end{DoxyCompactList}\item 
\hypertarget{a00643_acf3b056bd9e9f24f11cf4eb9529d2dbd}{void \hyperlink{a00643_acf3b056bd9e9f24f11cf4eb9529d2dbd}{set\+\_\+base\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_acf3b056bd9e9f24f11cf4eb9529d2dbd}

\begin{DoxyCompactList}\small\item\em set base color (used when lighting is off) \end{DoxyCompactList}\item 
\hypertarget{a00643_a8fd8bae517ce5e01f59da248ca6ae45f}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_a8fd8bae517ce5e01f59da248ca6ae45f}{base\+\_\+color} () const }\label{a00643_a8fd8bae517ce5e01f59da248ca6ae45f}

\begin{DoxyCompactList}\small\item\em get base color (used when lighting is off) \end{DoxyCompactList}\item 
\hypertarget{a00643_a146f85984b4065a388ab3cb01b555634}{void \hyperlink{a00643_a146f85984b4065a388ab3cb01b555634}{set\+\_\+ambient\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_a146f85984b4065a388ab3cb01b555634}

\begin{DoxyCompactList}\small\item\em set ambient color \end{DoxyCompactList}\item 
\hypertarget{a00643_a7282d48a2838b5164bcb29ca0b2be77b}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_a7282d48a2838b5164bcb29ca0b2be77b}{ambient\+\_\+color} () const }\label{a00643_a7282d48a2838b5164bcb29ca0b2be77b}

\begin{DoxyCompactList}\small\item\em get ambient color \end{DoxyCompactList}\item 
\hypertarget{a00643_afa04964fa17bbdeece7224cdd576223c}{void \hyperlink{a00643_afa04964fa17bbdeece7224cdd576223c}{set\+\_\+diffuse\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_afa04964fa17bbdeece7224cdd576223c}

\begin{DoxyCompactList}\small\item\em set diffuse color \end{DoxyCompactList}\item 
\hypertarget{a00643_aee66f5f4cb2a8ee400830f45dbdce84e}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_aee66f5f4cb2a8ee400830f45dbdce84e}{diffuse\+\_\+color} () const }\label{a00643_aee66f5f4cb2a8ee400830f45dbdce84e}

\begin{DoxyCompactList}\small\item\em get diffuse color \end{DoxyCompactList}\item 
\hypertarget{a00643_a04992fe6c1dff974e446bb92a5ec3fe1}{void \hyperlink{a00643_a04992fe6c1dff974e446bb92a5ec3fe1}{set\+\_\+specular\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)}\label{a00643_a04992fe6c1dff974e446bb92a5ec3fe1}

\begin{DoxyCompactList}\small\item\em set specular color \end{DoxyCompactList}\item 
\hypertarget{a00643_a208b81d845db8afc06f73c3b4c6691bb}{const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_a208b81d845db8afc06f73c3b4c6691bb}{specular\+\_\+color} () const }\label{a00643_a208b81d845db8afc06f73c3b4c6691bb}

\begin{DoxyCompactList}\small\item\em get specular color \end{DoxyCompactList}\item 
void \hyperlink{a00643_a84e7be38254190b7f57be5c129a16381}{set\+\_\+overlay\+\_\+color} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \&\+\_\+col)
\begin{DoxyCompactList}\small\item\em set overlay color \end{DoxyCompactList}\item 
const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \& \hyperlink{a00643_a023a4ffc00dac6e1fe4ab1e0b6bbc339}{overlay\+\_\+color} () const 
\begin{DoxyCompactList}\small\item\em Get overlay color. \end{DoxyCompactList}\item 
\hypertarget{a00643_a8f1ed30ac61fd2ab0f31da301e61f9fd}{void \hyperlink{a00643_a8f1ed30ac61fd2ab0f31da301e61f9fd}{set\+\_\+shininess} (float \+\_\+shininess)}\label{a00643_a8f1ed30ac61fd2ab0f31da301e61f9fd}

\begin{DoxyCompactList}\small\item\em set specular shininess (must be in \mbox{[}0, 128\mbox{]}) \end{DoxyCompactList}\item 
\hypertarget{a00643_a08743fe4bfd9b511c37b08128c408d1a}{float \hyperlink{a00643_a08743fe4bfd9b511c37b08128c408d1a}{shininess} () const }\label{a00643_a08743fe4bfd9b511c37b08128c408d1a}

\begin{DoxyCompactList}\small\item\em get specular shininess (must be in \mbox{[}0, 128\mbox{]}) \end{DoxyCompactList}\item 
\hypertarget{a00643_ab05d4e2514546ef812d38fe770714992}{void \hyperlink{a00643_ab05d4e2514546ef812d38fe770714992}{set\+\_\+point\+\_\+size} (float \+\_\+f)}\label{a00643_ab05d4e2514546ef812d38fe770714992}

\begin{DoxyCompactList}\small\item\em set point size \end{DoxyCompactList}\item 
\hypertarget{a00643_aa7465c60c9c4e7e97f234a43b082f466}{float \hyperlink{a00643_aa7465c60c9c4e7e97f234a43b082f466}{point\+\_\+size} () const }\label{a00643_aa7465c60c9c4e7e97f234a43b082f466}

\begin{DoxyCompactList}\small\item\em get point size \end{DoxyCompactList}\item 
\hypertarget{a00643_aac7bc72e56d4bf8de9aa06e0562c7770}{void \hyperlink{a00643_aac7bc72e56d4bf8de9aa06e0562c7770}{set\+\_\+line\+\_\+width} (float \+\_\+f)}\label{a00643_aac7bc72e56d4bf8de9aa06e0562c7770}

\begin{DoxyCompactList}\small\item\em set line width \end{DoxyCompactList}\item 
\hypertarget{a00643_a142bae95d4cda4cc110a55745dc2ad14}{float \hyperlink{a00643_a142bae95d4cda4cc110a55745dc2ad14}{line\+\_\+width} () const }\label{a00643_a142bae95d4cda4cc110a55745dc2ad14}

\begin{DoxyCompactList}\small\item\em get line width \end{DoxyCompactList}\item 
\hypertarget{a00643_a6a8728f8df703fecfa0e95abfb46e309}{void \hyperlink{a00643_a6a8728f8df703fecfa0e95abfb46e309}{set\+\_\+blending} (bool \+\_\+b)}\label{a00643_a6a8728f8df703fecfa0e95abfb46e309}

\begin{DoxyCompactList}\small\item\em set whether transparent or solid objects should be drawn \end{DoxyCompactList}\item 
\hypertarget{a00643_a8c4132e2daf77b230ec04989e08f0b76}{bool \hyperlink{a00643_a8c4132e2daf77b230ec04989e08f0b76}{blending} ()}\label{a00643_a8c4132e2daf77b230ec04989e08f0b76}

\begin{DoxyCompactList}\small\item\em get whether transparenet or solid objects should be drawn \end{DoxyCompactList}\item 
\hypertarget{a00643_a1d6e645672f6b477376e7cc049c43aa7}{void \hyperlink{a00643_a1d6e645672f6b477376e7cc049c43aa7}{set\+\_\+twosided\+\_\+lighting} (bool \+\_\+b)}\label{a00643_a1d6e645672f6b477376e7cc049c43aa7}

\begin{DoxyCompactList}\small\item\em set whether transparent or solid objects should be drawn \end{DoxyCompactList}\item 
\hypertarget{a00643_aca5c6a29a08af2967c9c01411289f563}{bool \hyperlink{a00643_aca5c6a29a08af2967c9c01411289f563}{twosided\+\_\+lighting} ()}\label{a00643_aca5c6a29a08af2967c9c01411289f563}

\begin{DoxyCompactList}\small\item\em get whether transparenet or solid objects should be drawn \end{DoxyCompactList}\item 
\hypertarget{a00643_a2c16cf18a9db96c09e781fad657382ed}{void \hyperlink{a00643_a2c16cf18a9db96c09e781fad657382ed}{set\+\_\+multisampling} (bool \+\_\+b)}\label{a00643_a2c16cf18a9db96c09e781fad657382ed}

\begin{DoxyCompactList}\small\item\em Enable or disable multisampling. \end{DoxyCompactList}\item 
\hypertarget{a00643_ad3bf2570331ff4a43882c191a4420e67}{bool \hyperlink{a00643_ad3bf2570331ff4a43882c191a4420e67}{multisampling} ()}\label{a00643_ad3bf2570331ff4a43882c191a4420e67}

\begin{DoxyCompactList}\small\item\em Get current multisampling state. \end{DoxyCompactList}\item 
\hypertarget{a00643_ae85a22f2cd376097ec18b6c80c86e45a}{void \hyperlink{a00643_ae85a22f2cd376097ec18b6c80c86e45a}{allow\+\_\+multisampling} (bool \+\_\+b)}\label{a00643_ae85a22f2cd376097ec18b6c80c86e45a}

\begin{DoxyCompactList}\small\item\em Disable multisampling globally. \end{DoxyCompactList}\item 
\hypertarget{a00643_a941d15d9da3d23a3c3366779905b2a88}{bool \hyperlink{a00643_a941d15d9da3d23a3c3366779905b2a88}{multisampling\+\_\+allowed} ()}\label{a00643_a941d15d9da3d23a3c3366779905b2a88}

\begin{DoxyCompactList}\small\item\em Check if Multisampling is globally disabled. \end{DoxyCompactList}\item 
\hypertarget{a00643_a6fcf4f8987d3910cd1a7f3cf56f02420}{int \hyperlink{a00643_a6fcf4f8987d3910cd1a7f3cf56f02420}{max\+\_\+texture\+\_\+units} () const }\label{a00643_a6fcf4f8987d3910cd1a7f3cf56f02420}

\begin{DoxyCompactList}\small\item\em Get max number of available texture units. \end{DoxyCompactList}\item 
void \hyperlink{a00643_a5a1b9ecf681fdd6d6eb69b0f99558f30}{allow\+\_\+mipmapping} (bool \+\_\+b)
\begin{DoxyCompactList}\small\item\em Allow mipmapping globally. \end{DoxyCompactList}\item 
\hypertarget{a00643_aed46c0ac659fb8144de3d1f708faf964}{bool \hyperlink{a00643_aed46c0ac659fb8144de3d1f708faf964}{mipmapping\+\_\+allowed} () const }\label{a00643_aed46c0ac659fb8144de3d1f708faf964}

\begin{DoxyCompactList}\small\item\em Get current global mipmapping state. \end{DoxyCompactList}\item 
void \hyperlink{a00643_a2375be5d55867c4e4927d2826c19b6a1}{pick\+\_\+init} (bool \+\_\+color)
\begin{DoxyCompactList}\small\item\em initialize name/color picking stack (like gl\+Init\+Names()) \end{DoxyCompactList}\item 
bool \hyperlink{a00643_a07e196194a18399308533237742d7959}{pick\+\_\+set\+\_\+maximum} (unsigned int \+\_\+idx)
\begin{DoxyCompactList}\small\item\em Set the maximal number of primitives/components of your object. \end{DoxyCompactList}\item 
void \hyperlink{a00643_a814c2fa55d331c58dd1871a0e6db70fc}{pick\+\_\+set\+\_\+name} (unsigned int \+\_\+idx)
\begin{DoxyCompactList}\small\item\em sets the current name/color (like gl\+Load\+Name(\+\_\+idx)) \end{DoxyCompactList}\item 
\hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \hyperlink{a00643_a4c940ccbd7dc768f06973d133ff8bbbd}{pick\+\_\+get\+\_\+name\+\_\+color} (unsigned int \+\_\+idx)
\item 
\hypertarget{a00643_afe17f64406e405a09279cbe9a0f7adb8}{void \hyperlink{a00643_afe17f64406e405a09279cbe9a0f7adb8}{pick\+\_\+push\+\_\+name} (unsigned int \+\_\+idx)}\label{a00643_afe17f64406e405a09279cbe9a0f7adb8}

\begin{DoxyCompactList}\small\item\em creates a new name the stack (like gl\+Push\+Name()) \end{DoxyCompactList}\item 
\hypertarget{a00643_a7af1eef65fde6489287a83407b38296b}{void \hyperlink{a00643_a7af1eef65fde6489287a83407b38296b}{pick\+\_\+pop\+\_\+name} ()}\label{a00643_a7af1eef65fde6489287a83407b38296b}

\begin{DoxyCompactList}\small\item\em pops the current name from the stack (like gl\+Pop\+Name()) \end{DoxyCompactList}\item 
std\+::vector$<$ unsigned int $>$ \hyperlink{a00643_aa3e528c906074a821be147f73bf3798c}{pick\+\_\+color\+\_\+to\+\_\+stack} (\hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} \+\_\+rgba) const 
\item 
\hypertarget{a00643_add751a299724c7caa393c47e67bdb8e5}{unsigned int \hyperlink{a00643_add751a299724c7caa393c47e67bdb8e5}{pick\+\_\+free\+\_\+indicies} () const }\label{a00643_add751a299724c7caa393c47e67bdb8e5}

\begin{DoxyCompactList}\small\item\em returns the number of still available colors during color picking \end{DoxyCompactList}\item 
bool \hyperlink{a00643_aee947e933a4a1d107651d54387eddf7b}{pick\+\_\+error} () const 
\item 
unsigned int \hyperlink{a00643_a81dde5adc9fa8c6dbc6796d0efecc02e}{pick\+\_\+current\+\_\+index} () const 
\begin{DoxyCompactList}\small\item\em Returns the current color picking index (can be used for caching) \end{DoxyCompactList}\item 
\hypertarget{a00643_a4535b3a306233d667b7fece51e0bf3b1}{bool \hyperlink{a00643_a4535b3a306233d667b7fece51e0bf3b1}{color\+\_\+picking} () const }\label{a00643_a4535b3a306233d667b7fece51e0bf3b1}

\begin{DoxyCompactList}\small\item\em Is color picking active? \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf set G\+L projection matrix}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a82a431d496755fcc65820745eb6e3bb2}{void \hyperlink{a00643_a82a431d496755fcc65820745eb6e3bb2}{reset\+\_\+projection} ()}\label{a00643_a82a431d496755fcc65820745eb6e3bb2}

\begin{DoxyCompactList}\small\item\em reset projection matrix (load identity) \end{DoxyCompactList}\item 
\hypertarget{a00643_a5d8214863811ee156abdaf9df8f31846}{void \hyperlink{a00643_a5d8214863811ee156abdaf9df8f31846}{set\+\_\+projection} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+m)}\label{a00643_a5d8214863811ee156abdaf9df8f31846}

\begin{DoxyCompactList}\small\item\em set projection \end{DoxyCompactList}\item 
\hypertarget{a00643_a200408a42ef97054790eab0d3c3a8df5}{void \hyperlink{a00643_a200408a42ef97054790eab0d3c3a8df5}{set\+\_\+projection} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+m, const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+inv\+\_\+m)}\label{a00643_a200408a42ef97054790eab0d3c3a8df5}

\begin{DoxyCompactList}\small\item\em set projection and provide inverse projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a08390169069e7858fe43fef89d84f902}{void \hyperlink{a00643_a08390169069e7858fe43fef89d84f902}{ortho} (double \+\_\+left, double \+\_\+right, double \+\_\+bottom, double \+\_\+top, double \+\_\+near\+\_\+plane, double \+\_\+far\+\_\+plane)}\label{a00643_a08390169069e7858fe43fef89d84f902}

\begin{DoxyCompactList}\small\item\em orthographic projection \end{DoxyCompactList}\item 
\hypertarget{a00643_ab619f8427a9584339bd95cf463ccee40}{void \hyperlink{a00643_ab619f8427a9584339bd95cf463ccee40}{frustum} (double \+\_\+left, double \+\_\+right, double \+\_\+bottom, double \+\_\+top, double \+\_\+near\+\_\+plane, double \+\_\+far\+\_\+plane)}\label{a00643_ab619f8427a9584339bd95cf463ccee40}

\begin{DoxyCompactList}\small\item\em perspective projection \end{DoxyCompactList}\item 
\hypertarget{a00643_a82dbb4c5e545ae07dfd16037b90e3c48}{void \hyperlink{a00643_a82dbb4c5e545ae07dfd16037b90e3c48}{perspective} (double \+\_\+fov\+Y, double \+\_\+aspect, double \+\_\+near\+\_\+plane, double \+\_\+far\+\_\+plane)}\label{a00643_a82dbb4c5e545ae07dfd16037b90e3c48}

\begin{DoxyCompactList}\small\item\em perspective projection \end{DoxyCompactList}\item 
\hypertarget{a00643_afdc02b183ba2570eba5cd4c60e472a1a}{void \hyperlink{a00643_afdc02b183ba2570eba5cd4c60e472a1a}{viewport} (int \+\_\+left, int \+\_\+bottom, int \+\_\+width, int \+\_\+height, int \+\_\+glwidth=0, int \+\_\+glheight=0)}\label{a00643_afdc02b183ba2570eba5cd4c60e472a1a}

\begin{DoxyCompactList}\small\item\em set viewport (lower left corner, width, height, glcontext width, height) \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf set G\+L modelview matrix}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a654c4df9030de92a5b787221383d3e07}{void \hyperlink{a00643_a654c4df9030de92a5b787221383d3e07}{reset\+\_\+modelview} ()}\label{a00643_a654c4df9030de92a5b787221383d3e07}

\begin{DoxyCompactList}\small\item\em reset modelview matrix (load identity) \end{DoxyCompactList}\item 
\hypertarget{a00643_a910522e2a2b544f08fa9b88cff71bdc8}{void \hyperlink{a00643_a910522e2a2b544f08fa9b88cff71bdc8}{set\+\_\+modelview} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+m)}\label{a00643_a910522e2a2b544f08fa9b88cff71bdc8}

\begin{DoxyCompactList}\small\item\em set modelview \end{DoxyCompactList}\item 
\hypertarget{a00643_aa1e08e45f427bc327c3afee29c4f83b0}{void \hyperlink{a00643_aa1e08e45f427bc327c3afee29c4f83b0}{set\+\_\+modelview} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+m, const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+inv\+\_\+m)}\label{a00643_aa1e08e45f427bc327c3afee29c4f83b0}

\begin{DoxyCompactList}\small\item\em set modelview and provide inverse modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a318753bd0d82a8e5642517984d0578cc}{void \hyperlink{a00643_a318753bd0d82a8e5642517984d0578cc}{look\+At} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+eye, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+center, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+up)}\label{a00643_a318753bd0d82a8e5642517984d0578cc}

\begin{DoxyCompactList}\small\item\em set camera by look\+At \end{DoxyCompactList}\item 
\hypertarget{a00643_a81002bad6d1c22e5b4ab3748fc9526fa}{void \hyperlink{a00643_a81002bad6d1c22e5b4ab3748fc9526fa}{translate} (double \+\_\+x, double \+\_\+y, double \+\_\+z, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00643_a81002bad6d1c22e5b4ab3748fc9526fa}

\begin{DoxyCompactList}\small\item\em translate by (\+\_\+x, \+\_\+y, \+\_\+z) \end{DoxyCompactList}\item 
\hypertarget{a00643_a37e03b40bf36b5859ca491300c4ea5b6}{void \hyperlink{a00643_a37e03b40bf36b5859ca491300c4ea5b6}{translate} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \+\_\+vector, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00643_a37e03b40bf36b5859ca491300c4ea5b6}

\begin{DoxyCompactList}\small\item\em translate by \+\_\+vector \end{DoxyCompactList}\item 
\hypertarget{a00643_abd658deea8e246a32b9e7111185b2c87}{void \hyperlink{a00643_abd658deea8e246a32b9e7111185b2c87}{rotate} (double \+\_\+angle, double \+\_\+x, double \+\_\+y, double \+\_\+z, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00643_abd658deea8e246a32b9e7111185b2c87}

\begin{DoxyCompactList}\small\item\em rotate around axis (\+\_\+x, \+\_\+y, \+\_\+z) by \+\_\+angle \end{DoxyCompactList}\item 
\hypertarget{a00643_a7a01303e981b5d3185f028408a5706a6}{void \hyperlink{a00643_a7a01303e981b5d3185f028408a5706a6}{scale} (double \+\_\+s)}\label{a00643_a7a01303e981b5d3185f028408a5706a6}

\begin{DoxyCompactList}\small\item\em scale by (\+\_\+s, \+\_\+s, \+\_\+s) \end{DoxyCompactList}\item 
\hypertarget{a00643_a77b3daf9352e98000f6b3b45f756190e}{void \hyperlink{a00643_a77b3daf9352e98000f6b3b45f756190e}{scale} (double \+\_\+s, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From})}\label{a00643_a77b3daf9352e98000f6b3b45f756190e}

\begin{DoxyCompactList}\small\item\em scale by (\+\_\+s, \+\_\+s, \+\_\+s) \end{DoxyCompactList}\item 
\hypertarget{a00643_a1f74c0aad1ec5529e2e324b8cd53ba88}{void \hyperlink{a00643_a1f74c0aad1ec5529e2e324b8cd53ba88}{scale} (double \+\_\+sx, double \+\_\+sy, double \+\_\+sz, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00643_a1f74c0aad1ec5529e2e324b8cd53ba88}

\begin{DoxyCompactList}\small\item\em scale by (\+\_\+sx, \+\_\+sy, \+\_\+sz) \end{DoxyCompactList}\item 
\hypertarget{a00643_a9d7900157c764ad0c453de093c92e765}{void \hyperlink{a00643_a9d7900157c764ad0c453de093c92e765}{mult\+\_\+matrix} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+m, const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \&\+\_\+inv\+\_\+m, \hyperlink{a03336_adda93d34c3eb7b2c524b28f383009a7c}{Multiply\+From} \+\_\+mult\+\_\+from=M\+U\+L\+T\+\_\+\+F\+R\+O\+M\+\_\+\+R\+I\+G\+H\+T)}\label{a00643_a9d7900157c764ad0c453de093c92e765}

\begin{DoxyCompactList}\small\item\em multiply by a given transformation matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a5ed90302429282128bff0694e290a80a}{void \hyperlink{a00643_a5ed90302429282128bff0694e290a80a}{push\+\_\+projection\+\_\+matrix} ()}\label{a00643_a5ed90302429282128bff0694e290a80a}

\begin{DoxyCompactList}\small\item\em push projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a536c0e48989580a619260d02727a45b1}{void \hyperlink{a00643_a536c0e48989580a619260d02727a45b1}{pop\+\_\+projection\+\_\+matrix} ()}\label{a00643_a536c0e48989580a619260d02727a45b1}

\begin{DoxyCompactList}\small\item\em pop projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_af5b686a27a5007dfddd2b5e231e675fc}{void \hyperlink{a00643_af5b686a27a5007dfddd2b5e231e675fc}{push\+\_\+modelview\+\_\+matrix} ()}\label{a00643_af5b686a27a5007dfddd2b5e231e675fc}

\begin{DoxyCompactList}\small\item\em push modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a14809880833fd79c32b544ae6674ba6d}{void \hyperlink{a00643_a14809880833fd79c32b544ae6674ba6d}{pop\+\_\+modelview\+\_\+matrix} ()}\label{a00643_a14809880833fd79c32b544ae6674ba6d}

\begin{DoxyCompactList}\small\item\em pop modelview matrix \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf get G\+L states, matrices and projection details}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a06a68728ef3919be775763d30654b55a}{const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \& \hyperlink{a00643_a06a68728ef3919be775763d30654b55a}{projection} () const }\label{a00643_a06a68728ef3919be775763d30654b55a}

\begin{DoxyCompactList}\small\item\em get projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_ae27e2005ea57312f70752b0a2608f506}{const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \& \hyperlink{a00643_ae27e2005ea57312f70752b0a2608f506}{modelview} () const }\label{a00643_ae27e2005ea57312f70752b0a2608f506}

\begin{DoxyCompactList}\small\item\em get modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a67cd4b78289538bacb3ed27cdb0599f2}{const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \& \hyperlink{a00643_a67cd4b78289538bacb3ed27cdb0599f2}{viewport} () const }\label{a00643_a67cd4b78289538bacb3ed27cdb0599f2}

\begin{DoxyCompactList}\small\item\em get viewport matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a2932942b96850e7fe15925d38f2faaee}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \hyperlink{a00643_a2932942b96850e7fe15925d38f2faaee}{forward\+\_\+projection} () const }\label{a00643_a2932942b96850e7fe15925d38f2faaee}

\begin{DoxyCompactList}\small\item\em get forward projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_a7e2efbe6172558ae465f1992679da9e0}{const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \& \hyperlink{a00643_a7e2efbe6172558ae465f1992679da9e0}{inverse\+\_\+projection} () const }\label{a00643_a7e2efbe6172558ae465f1992679da9e0}

\begin{DoxyCompactList}\small\item\em get inverse projection matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_ab0e3fd3bdebe25de2c480ac53603cef8}{const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \& \hyperlink{a00643_ab0e3fd3bdebe25de2c480ac53603cef8}{inverse\+\_\+modelview} () const }\label{a00643_ab0e3fd3bdebe25de2c480ac53603cef8}

\begin{DoxyCompactList}\small\item\em get inverse modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00643_ae38e6c6709309010812f4baba14fa0d5}{void \hyperlink{a00643_ae38e6c6709309010812f4baba14fa0d5}{get\+\_\+viewport} (int \&\+\_\+left, int \&\+\_\+bottom, int \&\+\_\+width, int \&\+\_\+height) const }\label{a00643_ae38e6c6709309010812f4baba14fa0d5}

\begin{DoxyCompactList}\small\item\em get viewport \end{DoxyCompactList}\item 
\hypertarget{a00643_aab63840c50c4afe9e24e8cd6e6b48c75}{int \hyperlink{a00643_aab63840c50c4afe9e24e8cd6e6b48c75}{viewport\+\_\+width} () const }\label{a00643_aab63840c50c4afe9e24e8cd6e6b48c75}

\begin{DoxyCompactList}\small\item\em get viewport width \end{DoxyCompactList}\item 
\hypertarget{a00643_ad1ac5911b7494641a8fb12b88ee7681a}{int \hyperlink{a00643_ad1ac5911b7494641a8fb12b88ee7681a}{viewport\+\_\+height} () const }\label{a00643_ad1ac5911b7494641a8fb12b88ee7681a}

\begin{DoxyCompactList}\small\item\em get viewport height \end{DoxyCompactList}\item 
\hypertarget{a00643_a261ab26998444cb88df2101cab5097fc}{int \hyperlink{a00643_a261ab26998444cb88df2101cab5097fc}{context\+\_\+width} () const }\label{a00643_a261ab26998444cb88df2101cab5097fc}

\begin{DoxyCompactList}\small\item\em get gl context width \end{DoxyCompactList}\item 
\hypertarget{a00643_a094312b09a10fffb13559d4e8e2f8403}{int \hyperlink{a00643_a094312b09a10fffb13559d4e8e2f8403}{context\+\_\+height} () const }\label{a00643_a094312b09a10fffb13559d4e8e2f8403}

\begin{DoxyCompactList}\small\item\em get gl context height \end{DoxyCompactList}\item 
\hypertarget{a00643_aadac0c4392a504364c5968fb1ff6f417}{double \hyperlink{a00643_aadac0c4392a504364c5968fb1ff6f417}{near\+\_\+plane} () const }\label{a00643_aadac0c4392a504364c5968fb1ff6f417}

\begin{DoxyCompactList}\small\item\em get near clipping distance \end{DoxyCompactList}\item 
\hypertarget{a00643_a125ac55e1f40b0850fc8e483066a595a}{double \hyperlink{a00643_a125ac55e1f40b0850fc8e483066a595a}{far\+\_\+plane} () const }\label{a00643_a125ac55e1f40b0850fc8e483066a595a}

\begin{DoxyCompactList}\small\item\em get far clipping distance \end{DoxyCompactList}\item 
\hypertarget{a00643_abb34d32bf02fc7f5fbd96d31f7d33ecd}{double \hyperlink{a00643_abb34d32bf02fc7f5fbd96d31f7d33ecd}{fovy} () const }\label{a00643_abb34d32bf02fc7f5fbd96d31f7d33ecd}

\begin{DoxyCompactList}\small\item\em get field of view in y direction \end{DoxyCompactList}\item 
\hypertarget{a00643_a9833ac2dda857f3a3112bf35850ef761}{double \hyperlink{a00643_a9833ac2dda857f3a3112bf35850ef761}{aspect} () const }\label{a00643_a9833ac2dda857f3a3112bf35850ef761}

\begin{DoxyCompactList}\small\item\em get aspect ratio \end{DoxyCompactList}\item 
\hypertarget{a00643_a958b25e544bc76ee8cab8a29a541c75d}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_a958b25e544bc76ee8cab8a29a541c75d}{eye} () const }\label{a00643_a958b25e544bc76ee8cab8a29a541c75d}

\begin{DoxyCompactList}\small\item\em get eye point \end{DoxyCompactList}\item 
\hypertarget{a00643_ade1339e963c3fe7d1d5e13fdbeec40ed}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_ade1339e963c3fe7d1d5e13fdbeec40ed}{viewing\+\_\+direction} () const }\label{a00643_ade1339e963c3fe7d1d5e13fdbeec40ed}

\begin{DoxyCompactList}\small\item\em get viewing ray \end{DoxyCompactList}\item 
\hypertarget{a00643_acfa8e4eb87d74bd0ec4aec0ea2baa64e}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_acfa8e4eb87d74bd0ec4aec0ea2baa64e}{viewing\+\_\+direction} (int \+\_\+x, int \+\_\+y) const }\label{a00643_acfa8e4eb87d74bd0ec4aec0ea2baa64e}

\begin{DoxyCompactList}\small\item\em get viewing ray through pixel (\+\_\+x,\+\_\+y) \end{DoxyCompactList}\item 
\hypertarget{a00643_a4e4448e6874fddaebf0140f754caf983}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_a4e4448e6874fddaebf0140f754caf983}{up} () const }\label{a00643_a4e4448e6874fddaebf0140f754caf983}

\begin{DoxyCompactList}\small\item\em get up-\/vector w.\+r.\+t. camera coordinates \end{DoxyCompactList}\item 
\hypertarget{a00643_ac72a21242623cd2cf34d0d41932815a2}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00643_ac72a21242623cd2cf34d0d41932815a2}{right} () const }\label{a00643_ac72a21242623cd2cf34d0d41932815a2}

\begin{DoxyCompactList}\small\item\em get right-\/vector w.\+r.\+t. camera coordinates \end{DoxyCompactList}\item 
void \hyperlink{a00643_af852f7494b79f462b1a4258f17f9cd0b}{viewing\+\_\+ray} (int \+\_\+x, int \+\_\+y, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+origin, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+direction) const 
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a63cf1855bf7ffac5dcf99691b4cd36dd}{static void \hyperlink{a00643_a63cf1855bf7ffac5dcf99691b4cd36dd}{sync\+From\+G\+L} ()}\label{a00643_a63cf1855bf7ffac5dcf99691b4cd36dd}

\begin{DoxyCompactList}\small\item\em synchronize this class with the Open\+G\+L state machine \end{DoxyCompactList}\item 
\hypertarget{a00643_a0d48802732680743047be6719cd65746}{static void \hyperlink{a00643_a0d48802732680743047be6719cd65746}{depth\+Func} (G\+Lenum \+\_\+depth\+Func)}\label{a00643_a0d48802732680743047be6719cd65746}

\begin{DoxyCompactList}\small\item\em replaces gl\+Depth\+Func, supports locking (called in set\+\_\+depth\+Func too) \end{DoxyCompactList}\item 
\hypertarget{a00643_a43ca2fd4c5262a81bb1be9d89b2e0951}{static void {\bfseries lock\+Depth\+Func} ()}\label{a00643_a43ca2fd4c5262a81bb1be9d89b2e0951}

\item 
\hypertarget{a00643_a4fa0d2c8c9df6ad4260bced9e296082d}{static void {\bfseries unlock\+Depth\+Func} ()}\label{a00643_a4fa0d2c8c9df6ad4260bced9e296082d}

\item 
\hypertarget{a00643_a2864dd0e684f7b6a495d092a48ba1359}{static bool {\bfseries is\+Depth\+Func\+Locked} ()}\label{a00643_a2864dd0e684f7b6a495d092a48ba1359}

\end{DoxyCompactItemize}
\begin{Indent}{\bf gl\+Enable / gl\+Disable functionality}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_aeff246e2ed1820fd490b5feaad6d5d7f}{static void \hyperlink{a00643_aeff246e2ed1820fd490b5feaad6d5d7f}{enable} (G\+Lenum \+\_\+cap)}\label{a00643_aeff246e2ed1820fd490b5feaad6d5d7f}

\begin{DoxyCompactList}\small\item\em replaces gl\+Enable, but supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a6b5d801807e659881ddf262023d0e5ac}{static void \hyperlink{a00643_a6b5d801807e659881ddf262023d0e5ac}{disable} (G\+Lenum \+\_\+cap)}\label{a00643_a6b5d801807e659881ddf262023d0e5ac}

\begin{DoxyCompactList}\small\item\em replaces gl\+Disable, but supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_afdccccf17ce24a66e228a89861eee753}{static void \hyperlink{a00643_afdccccf17ce24a66e228a89861eee753}{lock\+State} (G\+Lenum \+\_\+cap)}\label{a00643_afdccccf17ce24a66e228a89861eee753}

\begin{DoxyCompactList}\small\item\em locks a specific cap state, such that \hyperlink{a00643_aeff246e2ed1820fd490b5feaad6d5d7f}{enable()} or \hyperlink{a00643_a6b5d801807e659881ddf262023d0e5ac}{disable()} has no effect \end{DoxyCompactList}\item 
\hypertarget{a00643_a135c10d5aeaa4ca94d4309bd216f8a94}{static void \hyperlink{a00643_a135c10d5aeaa4ca94d4309bd216f8a94}{unlock\+State} (G\+Lenum \+\_\+cap)}\label{a00643_a135c10d5aeaa4ca94d4309bd216f8a94}

\begin{DoxyCompactList}\small\item\em unlocks a specific cap state \end{DoxyCompactList}\item 
\hypertarget{a00643_a39ac1ed77f0e88fcabd1084bca025fce}{static bool \hyperlink{a00643_a39ac1ed77f0e88fcabd1084bca025fce}{is\+State\+Locked} (G\+Lenum \+\_\+cap)}\label{a00643_a39ac1ed77f0e88fcabd1084bca025fce}

\begin{DoxyCompactList}\small\item\em returns true, if a cap state is locked \end{DoxyCompactList}\item 
\hypertarget{a00643_ae1e64292d249528af14902c31e08cbe0}{static bool \hyperlink{a00643_ae1e64292d249528af14902c31e08cbe0}{is\+State\+Enabled} (G\+Lenum \+\_\+cap)}\label{a00643_ae1e64292d249528af14902c31e08cbe0}

\begin{DoxyCompactList}\small\item\em returns true, if a cpa state is enabled \end{DoxyCompactList}\item 
\hypertarget{a00643_a5b0a9b3320299173eac5b442dd8619a6}{static void \hyperlink{a00643_a5b0a9b3320299173eac5b442dd8619a6}{enable\+Client\+State} (G\+Lenum \+\_\+cap)}\label{a00643_a5b0a9b3320299173eac5b442dd8619a6}

\begin{DoxyCompactList}\small\item\em replaces gl\+Enable\+Client\+State, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a09756d76f53f52672b9f4f95bd2fa9ce}{static void \hyperlink{a00643_a09756d76f53f52672b9f4f95bd2fa9ce}{disable\+Client\+State} (G\+Lenum \+\_\+cap)}\label{a00643_a09756d76f53f52672b9f4f95bd2fa9ce}

\begin{DoxyCompactList}\small\item\em replaces gl\+Disable\+Client\+State, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_affb2e1da63b9e755bf491da782d964a4}{static void \hyperlink{a00643_affb2e1da63b9e755bf491da782d964a4}{lock\+Client\+State} (G\+Lenum \+\_\+cap)}\label{a00643_affb2e1da63b9e755bf491da782d964a4}

\begin{DoxyCompactList}\small\item\em locks a client state \end{DoxyCompactList}\item 
\hypertarget{a00643_a7c5890ba8567407d9cbd6bfce9ecc0bd}{static void \hyperlink{a00643_a7c5890ba8567407d9cbd6bfce9ecc0bd}{unlock\+Client\+State} (G\+Lenum \+\_\+cap)}\label{a00643_a7c5890ba8567407d9cbd6bfce9ecc0bd}

\begin{DoxyCompactList}\small\item\em unlocks a client state \end{DoxyCompactList}\item 
\hypertarget{a00643_a74817e4f112fa6f8efd487547bc6843b}{static bool \hyperlink{a00643_a74817e4f112fa6f8efd487547bc6843b}{is\+Client\+State\+Enabled} (G\+Lenum \+\_\+cap)}\label{a00643_a74817e4f112fa6f8efd487547bc6843b}

\begin{DoxyCompactList}\small\item\em returns true, if a client state is enabled \end{DoxyCompactList}\item 
\hypertarget{a00643_aa2f83639f94eb94e90bdc10a9e8737fc}{static bool \hyperlink{a00643_aa2f83639f94eb94e90bdc10a9e8737fc}{is\+Client\+State\+Locked} (G\+Lenum \+\_\+cap)}\label{a00643_aa2f83639f94eb94e90bdc10a9e8737fc}

\begin{DoxyCompactList}\small\item\em returns true, if a client state is locked \end{DoxyCompactList}\item 
\hypertarget{a00643_a9270e5af917bbddd42603c9d864186d6}{static void \hyperlink{a00643_a9270e5af917bbddd42603c9d864186d6}{blend\+Func} (G\+Lenum \+\_\+sfactor, G\+Lenum \+\_\+dfactor)}\label{a00643_a9270e5af917bbddd42603c9d864186d6}

\begin{DoxyCompactList}\small\item\em replaces gl\+Blend\+Func, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a6f3801e5eb73be51119352e338293ecd}{static void \hyperlink{a00643_a6f3801e5eb73be51119352e338293ecd}{get\+Blend\+Func} (G\+Lenum $\ast$\+\_\+sfactor, G\+Lenum $\ast$\+\_\+dfactor)}\label{a00643_a6f3801e5eb73be51119352e338293ecd}

\begin{DoxyCompactList}\small\item\em get blend function, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_ab4caa75550b776c66b9c006ab236719f}{static void \hyperlink{a00643_ab4caa75550b776c66b9c006ab236719f}{lock\+Blend\+Func} ()}\label{a00643_ab4caa75550b776c66b9c006ab236719f}

\begin{DoxyCompactList}\small\item\em lock blend func \end{DoxyCompactList}\item 
\hypertarget{a00643_a99dc5ed4623c99d1ddb61fced53842e3}{static void \hyperlink{a00643_a99dc5ed4623c99d1ddb61fced53842e3}{unlock\+Blend\+Func} ()}\label{a00643_a99dc5ed4623c99d1ddb61fced53842e3}

\begin{DoxyCompactList}\small\item\em unlock blend func \end{DoxyCompactList}\item 
\hypertarget{a00643_ac22a7bd0f51700ecf943c5c3ffb831cb}{static bool \hyperlink{a00643_ac22a7bd0f51700ecf943c5c3ffb831cb}{is\+Blend\+Func\+Locked} ()}\label{a00643_ac22a7bd0f51700ecf943c5c3ffb831cb}

\begin{DoxyCompactList}\small\item\em get blend func locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_adf8b65a60f92f9710fc1492c66e260d9}{static void \hyperlink{a00643_adf8b65a60f92f9710fc1492c66e260d9}{blend\+Func\+Separate} (G\+Lenum \+\_\+src\+R\+G\+B, G\+Lenum \+\_\+dst\+R\+G\+B, G\+Lenum \+\_\+src\+Alpha, G\+Lenum \+\_\+dst\+Alpha)}\label{a00643_adf8b65a60f92f9710fc1492c66e260d9}

\begin{DoxyCompactList}\small\item\em replaces gl\+Blend\+Func\+Separate, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_afcab75deb36fea6a427a9fa07d6da703}{static void \hyperlink{a00643_afcab75deb36fea6a427a9fa07d6da703}{get\+Blend\+Func\+Separate} (G\+Lenum $\ast$\+\_\+src\+R\+G\+B, G\+Lenum $\ast$\+\_\+dst\+R\+G\+B, G\+Lenum $\ast$\+\_\+src\+Alpha, G\+Lenum $\ast$\+\_\+dst\+Alpha)}\label{a00643_afcab75deb36fea6a427a9fa07d6da703}

\begin{DoxyCompactList}\small\item\em get blend function, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_a6e8cc3b85c08e1836c92d4d64759f9c7}{static void \hyperlink{a00643_a6e8cc3b85c08e1836c92d4d64759f9c7}{lock\+Blend\+Func\+Separate} (bool \+\_\+rgb=true, bool \+\_\+alpha=true)}\label{a00643_a6e8cc3b85c08e1836c92d4d64759f9c7}

\begin{DoxyCompactList}\small\item\em lock blend func \end{DoxyCompactList}\item 
\hypertarget{a00643_a61643a4bb11811beb50c2a747e47da78}{static void \hyperlink{a00643_a61643a4bb11811beb50c2a747e47da78}{unlock\+Blend\+Func\+Separate} ()}\label{a00643_a61643a4bb11811beb50c2a747e47da78}

\begin{DoxyCompactList}\small\item\em unlock blend func \end{DoxyCompactList}\item 
\hypertarget{a00643_af05df59ea740383b8c3f3da63eb01d17}{static bool \hyperlink{a00643_af05df59ea740383b8c3f3da63eb01d17}{is\+Blend\+Func\+Separate\+Locked} ()}\label{a00643_af05df59ea740383b8c3f3da63eb01d17}

\begin{DoxyCompactList}\small\item\em get blend func locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_ac697033b194dec351d5162dfaf1abdc1}{static bool \hyperlink{a00643_ac697033b194dec351d5162dfaf1abdc1}{is\+Blend\+Func\+Separate\+Color\+Locked} ()}\label{a00643_ac697033b194dec351d5162dfaf1abdc1}

\begin{DoxyCompactList}\small\item\em replaces gl\+Enable, but supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_aec202ca44ef5612b0c24e0ddc8282055}{static bool \hyperlink{a00643_aec202ca44ef5612b0c24e0ddc8282055}{is\+Blend\+Func\+Separate\+Alpha\+Locked} ()}\label{a00643_aec202ca44ef5612b0c24e0ddc8282055}

\begin{DoxyCompactList}\small\item\em replaces gl\+Enable, but supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a8f38ac713083777c43832c8c67ef8134}{static void \hyperlink{a00643_a8f38ac713083777c43832c8c67ef8134}{blend\+Equation} (G\+Lenum \+\_\+mode)}\label{a00643_a8f38ac713083777c43832c8c67ef8134}

\begin{DoxyCompactList}\small\item\em replaces gl\+Blend\+Equation, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ac5b8d085827c7ce450b1680c4076b54c}{static G\+Lenum \hyperlink{a00643_ac5b8d085827c7ce450b1680c4076b54c}{get\+Blend\+Equation} ()}\label{a00643_ac5b8d085827c7ce450b1680c4076b54c}

\begin{DoxyCompactList}\small\item\em get blend equation \end{DoxyCompactList}\item 
\hypertarget{a00643_a663447e83a0d742ab4dc8e8162c371a8}{static void \hyperlink{a00643_a663447e83a0d742ab4dc8e8162c371a8}{lock\+Blend\+Equation} ()}\label{a00643_a663447e83a0d742ab4dc8e8162c371a8}

\begin{DoxyCompactList}\small\item\em lock blend equation \end{DoxyCompactList}\item 
\hypertarget{a00643_af0ca4c2ac564c197b1cf968eb81aeef7}{static void \hyperlink{a00643_af0ca4c2ac564c197b1cf968eb81aeef7}{unlock\+Blend\+Equation} ()}\label{a00643_af0ca4c2ac564c197b1cf968eb81aeef7}

\begin{DoxyCompactList}\small\item\em unlock blend equation \end{DoxyCompactList}\item 
\hypertarget{a00643_a7d3c92cf518d5e547a6e7a179e4eb815}{static bool \hyperlink{a00643_a7d3c92cf518d5e547a6e7a179e4eb815}{is\+Blend\+Equation\+Locked} ()}\label{a00643_a7d3c92cf518d5e547a6e7a179e4eb815}

\begin{DoxyCompactList}\small\item\em get blend equation locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_a6d3ba525c81158d4d4d5b47e4c886091}{static void \hyperlink{a00643_a6d3ba525c81158d4d4d5b47e4c886091}{blend\+Color} (G\+Lclampf \+\_\+red, G\+Lclampf \+\_\+green, G\+Lclampf \+\_\+blue, G\+Lclampf \+\_\+alpha)}\label{a00643_a6d3ba525c81158d4d4d5b47e4c886091}

\begin{DoxyCompactList}\small\item\em replaces gl\+Blend\+Color, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_aa14c9039c1320b87122ce6994d5818ff}{static void \hyperlink{a00643_aa14c9039c1320b87122ce6994d5818ff}{get\+Blend\+Color} (G\+Lclampf $\ast$\+\_\+col)}\label{a00643_aa14c9039c1320b87122ce6994d5818ff}

\begin{DoxyCompactList}\small\item\em get blend color, not null-\/ptr safe, 4 element color output\+: R\+G\+B\+A \end{DoxyCompactList}\item 
\hypertarget{a00643_a95130cf7d2159bc6e877e849fb1ea37d}{static void \hyperlink{a00643_a95130cf7d2159bc6e877e849fb1ea37d}{lock\+Blend\+Color} ()}\label{a00643_a95130cf7d2159bc6e877e849fb1ea37d}

\begin{DoxyCompactList}\small\item\em lock blend color \end{DoxyCompactList}\item 
\hypertarget{a00643_a4e2b9783c165651d4000a73c95289869}{static void \hyperlink{a00643_a4e2b9783c165651d4000a73c95289869}{unlock\+Blend\+Color} ()}\label{a00643_a4e2b9783c165651d4000a73c95289869}

\begin{DoxyCompactList}\small\item\em unlock blend color \end{DoxyCompactList}\item 
\hypertarget{a00643_add651f74fe620e99d3af793c5bcb427e}{static bool \hyperlink{a00643_add651f74fe620e99d3af793c5bcb427e}{is\+Blend\+Color\+Locked} ()}\label{a00643_add651f74fe620e99d3af793c5bcb427e}

\begin{DoxyCompactList}\small\item\em get blend color locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_a99a00cc1990d00e90ec30c69bce1ed1f}{static void \hyperlink{a00643_a99a00cc1990d00e90ec30c69bce1ed1f}{alpha\+Func} (G\+Lenum \+\_\+func, G\+Lclampf \+\_\+ref)}\label{a00643_a99a00cc1990d00e90ec30c69bce1ed1f}

\begin{DoxyCompactList}\small\item\em replaces gl\+Alpha\+Func, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a1f9d2eeda821a2368b25deaedf05e52f}{static void \hyperlink{a00643_a1f9d2eeda821a2368b25deaedf05e52f}{get\+Alpha\+Func} (G\+Lenum $\ast$\+\_\+func, G\+Lclampf $\ast$\+\_\+ref)}\label{a00643_a1f9d2eeda821a2368b25deaedf05e52f}

\begin{DoxyCompactList}\small\item\em get alpha function, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_a8bd127c020d5e77e1033c74383d8bb5f}{static void \hyperlink{a00643_a8bd127c020d5e77e1033c74383d8bb5f}{lock\+Alpha\+Func} ()}\label{a00643_a8bd127c020d5e77e1033c74383d8bb5f}

\begin{DoxyCompactList}\small\item\em lock alpha func \end{DoxyCompactList}\item 
\hypertarget{a00643_adcd8d074dd13e4bc3cdaf5a623558bb6}{static void \hyperlink{a00643_adcd8d074dd13e4bc3cdaf5a623558bb6}{unlock\+Alpha\+Func} ()}\label{a00643_adcd8d074dd13e4bc3cdaf5a623558bb6}

\begin{DoxyCompactList}\small\item\em unlock alpha func \end{DoxyCompactList}\item 
\hypertarget{a00643_a9879cef23da7944eabee707415baed78}{static bool \hyperlink{a00643_a9879cef23da7944eabee707415baed78}{is\+Alpha\+Func\+Locked} ()}\label{a00643_a9879cef23da7944eabee707415baed78}

\begin{DoxyCompactList}\small\item\em get alpha func locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_ad79f7b82d0d7e5b92c3c98b0d84da7f1}{static void \hyperlink{a00643_ad79f7b82d0d7e5b92c3c98b0d84da7f1}{shade\+Model} (G\+Lenum \+\_\+mode)}\label{a00643_ad79f7b82d0d7e5b92c3c98b0d84da7f1}

\begin{DoxyCompactList}\small\item\em replaces gl\+Shade\+Model, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a214efedbf9a06b29873e6b4371e4bfa4}{static G\+Lenum \hyperlink{a00643_a214efedbf9a06b29873e6b4371e4bfa4}{get\+Shade\+Model} ()}\label{a00643_a214efedbf9a06b29873e6b4371e4bfa4}

\begin{DoxyCompactList}\small\item\em get current shade model \end{DoxyCompactList}\item 
\hypertarget{a00643_ac56901dfcfb84527c45c8e97d53355b4}{static void \hyperlink{a00643_ac56901dfcfb84527c45c8e97d53355b4}{lock\+Shade\+Model} ()}\label{a00643_ac56901dfcfb84527c45c8e97d53355b4}

\begin{DoxyCompactList}\small\item\em lock shade model \end{DoxyCompactList}\item 
\hypertarget{a00643_a4793038f102a84955a4d04eb8684367c}{static void \hyperlink{a00643_a4793038f102a84955a4d04eb8684367c}{unlock\+Shade\+Model} ()}\label{a00643_a4793038f102a84955a4d04eb8684367c}

\begin{DoxyCompactList}\small\item\em unlock shade model \end{DoxyCompactList}\item 
\hypertarget{a00643_ad1363e6fd8cf988911bc58f080d52a0f}{static bool \hyperlink{a00643_ad1363e6fd8cf988911bc58f080d52a0f}{is\+Shade\+Model\+Locked} ()}\label{a00643_ad1363e6fd8cf988911bc58f080d52a0f}

\begin{DoxyCompactList}\small\item\em get shade model locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_a2220beb47533f235cb14306153ddfd15}{static void \hyperlink{a00643_a2220beb47533f235cb14306153ddfd15}{cull\+Face} (G\+Lenum \+\_\+mode)}\label{a00643_a2220beb47533f235cb14306153ddfd15}

\begin{DoxyCompactList}\small\item\em replaces gl\+Cull\+Face, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ac724a125c8486e23183f84bc83406492}{static G\+Lenum \hyperlink{a00643_ac724a125c8486e23183f84bc83406492}{get\+Cull\+Face} ()}\label{a00643_ac724a125c8486e23183f84bc83406492}

\begin{DoxyCompactList}\small\item\em get current cull face \end{DoxyCompactList}\item 
\hypertarget{a00643_a4e3a027b1cd3beb3944969f674a4082a}{static void \hyperlink{a00643_a4e3a027b1cd3beb3944969f674a4082a}{lock\+Cull\+Face} ()}\label{a00643_a4e3a027b1cd3beb3944969f674a4082a}

\begin{DoxyCompactList}\small\item\em lock cull face \end{DoxyCompactList}\item 
\hypertarget{a00643_a95dcf0745d7fea40ba32807dfb90a79a}{static void \hyperlink{a00643_a95dcf0745d7fea40ba32807dfb90a79a}{unlock\+Cull\+Face} ()}\label{a00643_a95dcf0745d7fea40ba32807dfb90a79a}

\begin{DoxyCompactList}\small\item\em unlock cull face \end{DoxyCompactList}\item 
\hypertarget{a00643_a81dcd55b67f870a05ef8e3751b555e95}{static bool \hyperlink{a00643_a81dcd55b67f870a05ef8e3751b555e95}{is\+Cull\+Face\+Locked} ()}\label{a00643_a81dcd55b67f870a05ef8e3751b555e95}

\begin{DoxyCompactList}\small\item\em get cull face locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_aa2b548f0bd7bddf503751c2bf3ae0030}{static void \hyperlink{a00643_aa2b548f0bd7bddf503751c2bf3ae0030}{depth\+Range} (G\+Lclampd \+\_\+z\+Near, G\+Lclampd \+\_\+z\+Far)}\label{a00643_aa2b548f0bd7bddf503751c2bf3ae0030}

\begin{DoxyCompactList}\small\item\em replaces gl\+Depth\+Range, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a6b8ca0fe470936756cdd33f917e58a39}{static void \hyperlink{a00643_a6b8ca0fe470936756cdd33f917e58a39}{get\+Depth\+Range} (G\+Lclampd $\ast$\+\_\+z\+Near\+Out, G\+Lclampd $\ast$\+\_\+z\+Far\+Out)}\label{a00643_a6b8ca0fe470936756cdd33f917e58a39}

\begin{DoxyCompactList}\small\item\em get current depth range \end{DoxyCompactList}\item 
\hypertarget{a00643_a2cb79d5199333910111db55c964aefca}{static void \hyperlink{a00643_a2cb79d5199333910111db55c964aefca}{lock\+Depth\+Range} ()}\label{a00643_a2cb79d5199333910111db55c964aefca}

\begin{DoxyCompactList}\small\item\em lock depth range \end{DoxyCompactList}\item 
\hypertarget{a00643_ab46f431d5d4ab76b09aad600fc484412}{static void \hyperlink{a00643_ab46f431d5d4ab76b09aad600fc484412}{unlock\+Depth\+Range} ()}\label{a00643_ab46f431d5d4ab76b09aad600fc484412}

\begin{DoxyCompactList}\small\item\em unlock depth range \end{DoxyCompactList}\item 
\hypertarget{a00643_aca3507356f34cc204a1562290522724c}{static bool \hyperlink{a00643_aca3507356f34cc204a1562290522724c}{is\+Depth\+Range\+Locked} ()}\label{a00643_aca3507356f34cc204a1562290522724c}

\begin{DoxyCompactList}\small\item\em get depth range locking state \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf G\+L vertex pointers}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a2f6806f89c6cce539dd119d32ebc1962}{static void \hyperlink{a00643_a2f6806f89c6cce539dd119d32ebc1962}{vertex\+Pointer} (G\+Lint \+\_\+size, G\+Lenum \+\_\+type, G\+Lsizei \+\_\+stride, const G\+Lvoid $\ast$\+\_\+pointer)}\label{a00643_a2f6806f89c6cce539dd119d32ebc1962}

\begin{DoxyCompactList}\small\item\em replaces gl\+Vertex\+Pointer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ab8070424236bf79b4009f61177bf260c}{static void \hyperlink{a00643_ab8070424236bf79b4009f61177bf260c}{get\+Vertex\+Pointer} (G\+Lint $\ast$\+\_\+size, G\+Lenum $\ast$\+\_\+type, G\+Lsizei $\ast$\+\_\+stride, const G\+Lvoid $\ast$$\ast$\+\_\+pointer)}\label{a00643_ab8070424236bf79b4009f61177bf260c}

\begin{DoxyCompactList}\small\item\em get vertex pointer, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_a831e49b95e4270e4018e196748f7e3e8}{static void \hyperlink{a00643_a831e49b95e4270e4018e196748f7e3e8}{vertex\+Pointer} (const \hyperlink{a03336_a8b858737aebd55e312149cf208a0b3f3}{Vec2f} $\ast$\+\_\+p)}\label{a00643_a831e49b95e4270e4018e196748f7e3e8}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec2f. \end{DoxyCompactList}\item 
\hypertarget{a00643_aef958d14789330509b7f21cc9a83ab25}{static void \hyperlink{a00643_aef958d14789330509b7f21cc9a83ab25}{vertex\+Pointer} (const \hyperlink{a03336_abdbb3513d29b2c3cc161185bc8a2e6da}{Vec2d} $\ast$\+\_\+p)}\label{a00643_aef958d14789330509b7f21cc9a83ab25}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec2d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a103790cbad22866145e6bd645113fc01}{static void \hyperlink{a00643_a103790cbad22866145e6bd645113fc01}{vertex\+Pointer} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $\ast$\+\_\+p)}\label{a00643_a103790cbad22866145e6bd645113fc01}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec3f. \end{DoxyCompactList}\item 
\hypertarget{a00643_aa8e917bbebd36e853a40011ae898c56e}{static void \hyperlink{a00643_aa8e917bbebd36e853a40011ae898c56e}{vertex\+Pointer} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} $\ast$\+\_\+p)}\label{a00643_aa8e917bbebd36e853a40011ae898c56e}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec3d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a0a8fb9e00fb9e5d11921d5c721a51c3b}{static void \hyperlink{a00643_a0a8fb9e00fb9e5d11921d5c721a51c3b}{vertex\+Pointer} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} $\ast$\+\_\+p)}\label{a00643_a0a8fb9e00fb9e5d11921d5c721a51c3b}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec4f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a56badb539751d9f83098969d052adb1d}{static void \hyperlink{a00643_a56badb539751d9f83098969d052adb1d}{vertex\+Pointer} (const \hyperlink{a03336_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} $\ast$\+\_\+p)}\label{a00643_a56badb539751d9f83098969d052adb1d}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Vertex\+Pointer for Vec4d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a3680afb9f7ba7fefb250d77d496d678e}{static void \hyperlink{a00643_a3680afb9f7ba7fefb250d77d496d678e}{lock\+Vertex\+Pointer} ()}\label{a00643_a3680afb9f7ba7fefb250d77d496d678e}

\begin{DoxyCompactList}\small\item\em lock vertex pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_aa61b797cc505af548b772b21a31ff76b}{static void \hyperlink{a00643_aa61b797cc505af548b772b21a31ff76b}{unlock\+Vertex\+Pointer} ()}\label{a00643_aa61b797cc505af548b772b21a31ff76b}

\begin{DoxyCompactList}\small\item\em unlock vertex pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_af9ecc68b2b6718702188c50fe2dc809d}{static bool \hyperlink{a00643_af9ecc68b2b6718702188c50fe2dc809d}{is\+Vertex\+Pointer\+Locked} ()}\label{a00643_af9ecc68b2b6718702188c50fe2dc809d}

\begin{DoxyCompactList}\small\item\em get vertex pointer lock state \end{DoxyCompactList}\item 
\hypertarget{a00643_a472fa0c97d1c10c5d4ed6ba7386f8ab6}{static void \hyperlink{a00643_a472fa0c97d1c10c5d4ed6ba7386f8ab6}{normal\+Pointer} (G\+Lenum \+\_\+type, G\+Lsizei \+\_\+stride, const G\+Lvoid $\ast$\+\_\+pointer)}\label{a00643_a472fa0c97d1c10c5d4ed6ba7386f8ab6}

\begin{DoxyCompactList}\small\item\em replaces gl\+Normal\+Pointer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a5c4c059464f1041c6d5838f815f9e46c}{static void \hyperlink{a00643_a5c4c059464f1041c6d5838f815f9e46c}{get\+Normal\+Pointer} (G\+Lenum $\ast$\+\_\+type, G\+Lsizei $\ast$\+\_\+stride, const G\+Lvoid $\ast$$\ast$\+\_\+pointer)}\label{a00643_a5c4c059464f1041c6d5838f815f9e46c}

\begin{DoxyCompactList}\small\item\em get normal pointer, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_a1e9745feba4ddc505270687d131b374b}{static void \hyperlink{a00643_a1e9745feba4ddc505270687d131b374b}{normal\+Pointer} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $\ast$\+\_\+p)}\label{a00643_a1e9745feba4ddc505270687d131b374b}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Normal\+Pointer for Vec3f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a8bd939edbc685d7861ea1864f1be1bb8}{static void \hyperlink{a00643_a8bd939edbc685d7861ea1864f1be1bb8}{normal\+Pointer} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} $\ast$\+\_\+p)}\label{a00643_a8bd939edbc685d7861ea1864f1be1bb8}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Normal\+Pointer for Vec3d. \end{DoxyCompactList}\item 
\hypertarget{a00643_aca19f82baa9fc08016d1a5cf569ae380}{static void \hyperlink{a00643_aca19f82baa9fc08016d1a5cf569ae380}{lock\+Normal\+Pointer} ()}\label{a00643_aca19f82baa9fc08016d1a5cf569ae380}

\begin{DoxyCompactList}\small\item\em lock normal pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_a2047cecd61e450c85761a5ea9752b73b}{static void \hyperlink{a00643_a2047cecd61e450c85761a5ea9752b73b}{unlock\+Normal\+Pointer} ()}\label{a00643_a2047cecd61e450c85761a5ea9752b73b}

\begin{DoxyCompactList}\small\item\em unlock normal pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_a959f0fdc0377f77936c67e71ef7649da}{static bool \hyperlink{a00643_a959f0fdc0377f77936c67e71ef7649da}{is\+Normal\+Pointer\+Locked} ()}\label{a00643_a959f0fdc0377f77936c67e71ef7649da}

\begin{DoxyCompactList}\small\item\em get normal pointer lock state \end{DoxyCompactList}\item 
\hypertarget{a00643_a0e32472bcfbe69ad1a7832571ff5bea0}{static void \hyperlink{a00643_a0e32472bcfbe69ad1a7832571ff5bea0}{color\+Pointer} (G\+Lint \+\_\+size, G\+Lenum \+\_\+type, G\+Lsizei \+\_\+stride, const G\+Lvoid $\ast$\+\_\+pointer)}\label{a00643_a0e32472bcfbe69ad1a7832571ff5bea0}

\begin{DoxyCompactList}\small\item\em replaces gl\+Color\+Pointer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ac7c8156e11e6f7815a3b97df8f77343b}{static void \hyperlink{a00643_ac7c8156e11e6f7815a3b97df8f77343b}{get\+Color\+Pointer} (G\+Lint $\ast$\+\_\+size, G\+Lenum $\ast$\+\_\+type, G\+Lsizei $\ast$\+\_\+stride, const G\+Lvoid $\ast$$\ast$\+\_\+pointer)}\label{a00643_ac7c8156e11e6f7815a3b97df8f77343b}

\begin{DoxyCompactList}\small\item\em get color pointer, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_a91711060185ca0a79e53d0f0bee9b230}{static void \hyperlink{a00643_a91711060185ca0a79e53d0f0bee9b230}{color\+Pointer} (const \hyperlink{a03336_a9334e4037c813f1a3d41719ee499dedc}{Vec3uc} $\ast$\+\_\+p)}\label{a00643_a91711060185ca0a79e53d0f0bee9b230}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color\+Pointer for Vec3uc. \end{DoxyCompactList}\item 
\hypertarget{a00643_a634c83eed0a3b4d78898434640ba27b6}{static void \hyperlink{a00643_a634c83eed0a3b4d78898434640ba27b6}{color\+Pointer} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $\ast$\+\_\+p)}\label{a00643_a634c83eed0a3b4d78898434640ba27b6}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color\+Pointer for Vec3f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a45e1e2af8a9bd6484f650fd4491af713}{static void \hyperlink{a00643_a45e1e2af8a9bd6484f650fd4491af713}{color\+Pointer} (const \hyperlink{a03336_adb89a8d57b6d179ad535c0880a8b616e}{Vec4uc} $\ast$\+\_\+p)}\label{a00643_a45e1e2af8a9bd6484f650fd4491af713}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color\+Pointer for Vec4uc. \end{DoxyCompactList}\item 
\hypertarget{a00643_ad61fbd29d985136b4cc282a14a32c7fb}{static void \hyperlink{a00643_ad61fbd29d985136b4cc282a14a32c7fb}{color\+Pointer} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} $\ast$\+\_\+p)}\label{a00643_ad61fbd29d985136b4cc282a14a32c7fb}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Color\+Pointer for Vec4f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a6a39ada6928fa7885365e88a611f4544}{static void \hyperlink{a00643_a6a39ada6928fa7885365e88a611f4544}{lock\+Color\+Pointer} ()}\label{a00643_a6a39ada6928fa7885365e88a611f4544}

\begin{DoxyCompactList}\small\item\em lock color pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_a9c2c43793733949424df65cd96f2075e}{static void \hyperlink{a00643_a9c2c43793733949424df65cd96f2075e}{unlock\+Color\+Pointer} ()}\label{a00643_a9c2c43793733949424df65cd96f2075e}

\begin{DoxyCompactList}\small\item\em unlock vertex pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_ad01bfa3899c25ae36998433f08a57169}{static bool \hyperlink{a00643_ad01bfa3899c25ae36998433f08a57169}{is\+Color\+Pointer\+Locked} ()}\label{a00643_ad01bfa3899c25ae36998433f08a57169}

\begin{DoxyCompactList}\small\item\em get vertex pointer lock state \end{DoxyCompactList}\item 
\hypertarget{a00643_aac01e6e215cd925ff429985d74f9d88f}{static void \hyperlink{a00643_aac01e6e215cd925ff429985d74f9d88f}{texcoord\+Pointer} (G\+Lint \+\_\+size, G\+Lenum \+\_\+type, G\+Lsizei \+\_\+stride, const G\+Lvoid $\ast$\+\_\+pointer)}\label{a00643_aac01e6e215cd925ff429985d74f9d88f}

\begin{DoxyCompactList}\small\item\em replaces gl\+Texcoord\+Pointer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ae3ee9f76ca6675f46aaa4e258cc6164d}{static void \hyperlink{a00643_ae3ee9f76ca6675f46aaa4e258cc6164d}{get\+Texcoord\+Pointer} (G\+Lint $\ast$\+\_\+size, G\+Lenum $\ast$\+\_\+type, G\+Lsizei $\ast$\+\_\+stride, const G\+Lvoid $\ast$$\ast$\+\_\+pointer)}\label{a00643_ae3ee9f76ca6675f46aaa4e258cc6164d}

\begin{DoxyCompactList}\small\item\em get color pointer, null-\/ptr safe \end{DoxyCompactList}\item 
\hypertarget{a00643_af79d9f44011fa405f6428caccb51f400}{static void \hyperlink{a00643_af79d9f44011fa405f6428caccb51f400}{texcoord\+Pointer} (const float $\ast$\+\_\+p)}\label{a00643_af79d9f44011fa405f6428caccb51f400}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for float. \end{DoxyCompactList}\item 
\hypertarget{a00643_a7c6ec4caf371d798aaa209d16268e14f}{static void \hyperlink{a00643_a7c6ec4caf371d798aaa209d16268e14f}{texcoord\+Pointer} (const double $\ast$\+\_\+p)}\label{a00643_a7c6ec4caf371d798aaa209d16268e14f}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for double. \end{DoxyCompactList}\item 
\hypertarget{a00643_a7410182d39c64a411071cd5f1f027736}{static void \hyperlink{a00643_a7410182d39c64a411071cd5f1f027736}{texcoord\+Pointer} (const \hyperlink{a03336_a8b858737aebd55e312149cf208a0b3f3}{Vec2f} $\ast$\+\_\+p)}\label{a00643_a7410182d39c64a411071cd5f1f027736}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec2f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a833cde1a237bcf216d981597c82f96bb}{static void \hyperlink{a00643_a833cde1a237bcf216d981597c82f96bb}{texcoord\+Pointer} (const \hyperlink{a03336_abdbb3513d29b2c3cc161185bc8a2e6da}{Vec2d} $\ast$\+\_\+p)}\label{a00643_a833cde1a237bcf216d981597c82f96bb}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec2d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a909afbd9714f3326fd1f24069de55f1d}{static void \hyperlink{a00643_a909afbd9714f3326fd1f24069de55f1d}{texcoord\+Pointer} (const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{Vec3f} $\ast$\+\_\+p)}\label{a00643_a909afbd9714f3326fd1f24069de55f1d}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec3f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a571bf95a7a8ba7540ff9f5f01219577e}{static void \hyperlink{a00643_a571bf95a7a8ba7540ff9f5f01219577e}{texcoord\+Pointer} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} $\ast$\+\_\+p)}\label{a00643_a571bf95a7a8ba7540ff9f5f01219577e}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec3d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a678eb873d207934978ed6a25c75adfb6}{static void \hyperlink{a00643_a678eb873d207934978ed6a25c75adfb6}{texcoord\+Pointer} (const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} $\ast$\+\_\+p)}\label{a00643_a678eb873d207934978ed6a25c75adfb6}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec4f. \end{DoxyCompactList}\item 
\hypertarget{a00643_a4120ed54b12dbf5960b1255eb40a1c5d}{static void \hyperlink{a00643_a4120ed54b12dbf5960b1255eb40a1c5d}{texcoord\+Pointer} (const \hyperlink{a03336_a2ba4d05b21aa0247255d38e770bcc255}{Vec4d} $\ast$\+\_\+p)}\label{a00643_a4120ed54b12dbf5960b1255eb40a1c5d}

\begin{DoxyCompactList}\small\item\em Wrapper\+: gl\+Texcoord\+Pointer for Vec4d. \end{DoxyCompactList}\item 
\hypertarget{a00643_a4a0786c0916a24d2c4729687f4c6c758}{static void \hyperlink{a00643_a4a0786c0916a24d2c4729687f4c6c758}{lock\+Texcoord\+Pointer} ()}\label{a00643_a4a0786c0916a24d2c4729687f4c6c758}

\begin{DoxyCompactList}\small\item\em lock color pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_a50ed9fc622f694c93340cba7e2c18705}{static void \hyperlink{a00643_a50ed9fc622f694c93340cba7e2c18705}{unlock\+Texcoord\+Pointer} ()}\label{a00643_a50ed9fc622f694c93340cba7e2c18705}

\begin{DoxyCompactList}\small\item\em unlock vertex pointer \end{DoxyCompactList}\item 
\hypertarget{a00643_a1b3509ed61da659d117de97ad61c0785}{static bool \hyperlink{a00643_a1b3509ed61da659d117de97ad61c0785}{is\+Texcoord\+Pointer\+Locked} ()}\label{a00643_a1b3509ed61da659d117de97ad61c0785}

\begin{DoxyCompactList}\small\item\em get vertex pointer lock state \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf G\+L buffer binding}\par
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{a00643_a8456dc0dd72d0107968ce4e27ce96886}{gen\+Buffers\+A\+R\+B} (G\+Lsizei n, G\+Luint $\ast$buffers)
\item 
static void \hyperlink{a00643_ab89ef328f1f41342eb690f7115daff63}{gen\+Buffers} (G\+Lsizei n, G\+Luint $\ast$buffers)
\item 
static void \hyperlink{a00643_aa2cf42e7c890f7b4b25091c1fd4e9e04}{buffer\+Data\+A\+R\+B} (G\+Lenum target, G\+Lsizeiptr\+A\+R\+B size, const G\+Lvoid $\ast$data, G\+Lenum usage)
\item 
static void \hyperlink{a00643_acd9c48e5c6be8082fb1811aa8b0e529f}{buffer\+Data} (G\+Lenum target, G\+Lsizeiptr size, const G\+Lvoid $\ast$data, G\+Lenum usage)
\item 
static G\+Lvoid $\ast$ \hyperlink{a00643_aef8da8d73972accbc64a9aa31019c3ec}{map\+Buffer} (G\+Lenum target, G\+Lenum access)
\item 
static G\+Lboolean \hyperlink{a00643_a1f2b5fc880f7854ba66de161351f19ba}{unmap\+Buffer} (G\+Lenum target)
\item 
static void \hyperlink{a00643_ad1db7c62b93309b27b45a10e2e3e5e73}{delete\+Buffers} (G\+Lsizei n, const G\+Luint $\ast$buffers)
\item 
\hypertarget{a00643_af3bc9c30f097aa61240602e4c827415d}{static void \hyperlink{a00643_af3bc9c30f097aa61240602e4c827415d}{bind\+Buffer} (G\+Lenum \+\_\+target, G\+Luint \+\_\+buffer)}\label{a00643_af3bc9c30f097aa61240602e4c827415d}

\begin{DoxyCompactList}\small\item\em replaces gl\+Bind\+Buffer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a3cea763a40bcc18ba1dc319c733a8b93}{static void \hyperlink{a00643_a3cea763a40bcc18ba1dc319c733a8b93}{bind\+Buffer\+A\+R\+B} (G\+Lenum \+\_\+target, G\+Luint \+\_\+buffer)}\label{a00643_a3cea763a40bcc18ba1dc319c733a8b93}

\begin{DoxyCompactList}\small\item\em same function as bind\+Buffer \end{DoxyCompactList}\item 
\hypertarget{a00643_a6d75be5bdca2e697f7a11fd1670e41ea}{static void \hyperlink{a00643_a6d75be5bdca2e697f7a11fd1670e41ea}{lock\+Buffer\+Target} (G\+Lenum \+\_\+target)}\label{a00643_a6d75be5bdca2e697f7a11fd1670e41ea}

\begin{DoxyCompactList}\small\item\em lock buffer target \end{DoxyCompactList}\item 
\hypertarget{a00643_a9f96360ae7717f7d37f82a8d093e4229}{static void \hyperlink{a00643_a9f96360ae7717f7d37f82a8d093e4229}{unlock\+Buffer\+Target} (G\+Lenum \+\_\+target)}\label{a00643_a9f96360ae7717f7d37f82a8d093e4229}

\begin{DoxyCompactList}\small\item\em unlock buffer target \end{DoxyCompactList}\item 
\hypertarget{a00643_a902285e01f57d58172ab1ad154bb5c89}{static bool \hyperlink{a00643_a902285e01f57d58172ab1ad154bb5c89}{is\+Buffer\+Target\+Locked} (G\+Lenum \+\_\+target)}\label{a00643_a902285e01f57d58172ab1ad154bb5c89}

\begin{DoxyCompactList}\small\item\em get buffer target locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_a8283cdc969eb7d5f4b406cb3fedd5dfc}{static G\+Luint \hyperlink{a00643_a8283cdc969eb7d5f4b406cb3fedd5dfc}{get\+Bound\+Buf} (G\+Lenum \+\_\+target)}\label{a00643_a8283cdc969eb7d5f4b406cb3fedd5dfc}

\begin{DoxyCompactList}\small\item\em get currently bound buffer \end{DoxyCompactList}\item 
\hypertarget{a00643_aec69ae4a8b5205233c2ec31933cb53dc}{static void \hyperlink{a00643_aec69ae4a8b5205233c2ec31933cb53dc}{draw\+Buffer} (G\+Lenum \+\_\+mode)}\label{a00643_aec69ae4a8b5205233c2ec31933cb53dc}

\begin{DoxyCompactList}\small\item\em replaces gl\+Draw\+Buffer, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a6eac88931abced56f1ff0026cbe28da1}{static void \hyperlink{a00643_a6eac88931abced56f1ff0026cbe28da1}{draw\+Buffers} (G\+Lsizei \+\_\+n, const G\+Lenum $\ast$\+\_\+bufs)}\label{a00643_a6eac88931abced56f1ff0026cbe28da1}

\begin{DoxyCompactList}\small\item\em replaces gl\+Draw\+Buffers, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a0d57fe7d7a51beb50bb6a1e1fef312d9}{static void \hyperlink{a00643_a0d57fe7d7a51beb50bb6a1e1fef312d9}{lock\+Draw\+Buffer} ()}\label{a00643_a0d57fe7d7a51beb50bb6a1e1fef312d9}

\begin{DoxyCompactList}\small\item\em lock draw buffer state, applies to draw\+Buffer and draw\+Buffers \end{DoxyCompactList}\item 
\hypertarget{a00643_aa391f7b05da43dfd9bbffe13c3c967c6}{static void \hyperlink{a00643_aa391f7b05da43dfd9bbffe13c3c967c6}{unlock\+Draw\+Buffer} ()}\label{a00643_aa391f7b05da43dfd9bbffe13c3c967c6}

\begin{DoxyCompactList}\small\item\em unlock draw buffer state \end{DoxyCompactList}\item 
\hypertarget{a00643_af6c0fb609a37c8cb713eed69e44ba492}{static bool \hyperlink{a00643_af6c0fb609a37c8cb713eed69e44ba492}{is\+Draw\+Buffer\+Locked} ()}\label{a00643_af6c0fb609a37c8cb713eed69e44ba492}

\begin{DoxyCompactList}\small\item\em get draw buffer lock state \end{DoxyCompactList}\item 
\hypertarget{a00643_afc02df6c77dbb26bca28db611ba104ad}{static void \hyperlink{a00643_afc02df6c77dbb26bca28db611ba104ad}{bind\+Framebuffer} (G\+Lenum \+\_\+target, G\+Luint \+\_\+framebuffer)}\label{a00643_afc02df6c77dbb26bca28db611ba104ad}

\begin{DoxyCompactList}\small\item\em replaces gl\+Bind\+Framebuffer, supports locking \end{DoxyCompactList}\item 
static G\+Luint \hyperlink{a00643_ae8e56e5e228b4ced0bb76fb81ba51789}{get\+Framebuffer\+Draw} ()
\begin{DoxyCompactList}\small\item\em get current draw framebuffer of a target \end{DoxyCompactList}\item 
static G\+Luint \hyperlink{a00643_a2ca3ffb670ca9d18f7abe758225feaef}{get\+Framebuffer\+Read} ()
\begin{DoxyCompactList}\small\item\em get current read framebuffer of a target \end{DoxyCompactList}\item 
\hypertarget{a00643_af7b760067f58b363cb0faa1a4665ce53}{static void \hyperlink{a00643_af7b760067f58b363cb0faa1a4665ce53}{lock\+Framebuffer} (G\+Lenum \+\_\+target)}\label{a00643_af7b760067f58b363cb0faa1a4665ce53}

\begin{DoxyCompactList}\small\item\em lock a framebuffer target \end{DoxyCompactList}\item 
\hypertarget{a00643_a6890ebed2ceb3da823899a057945c16e}{static void \hyperlink{a00643_a6890ebed2ceb3da823899a057945c16e}{unlock\+Framebuffer} (G\+Lenum \+\_\+target)}\label{a00643_a6890ebed2ceb3da823899a057945c16e}

\begin{DoxyCompactList}\small\item\em unlock a framebuffer target \end{DoxyCompactList}\item 
\hypertarget{a00643_ad2a4846e7deeca04032f0c4eb00e6434}{static bool \hyperlink{a00643_ad2a4846e7deeca04032f0c4eb00e6434}{is\+Framebuffer\+Locked} (G\+Lenum \+\_\+target)}\label{a00643_ad2a4846e7deeca04032f0c4eb00e6434}

\begin{DoxyCompactList}\small\item\em get framebuffer target lock state \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf G\+L shader program binding}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a584aa1d5b47c73fd80b69561ff0cc40c}{static void \hyperlink{a00643_a584aa1d5b47c73fd80b69561ff0cc40c}{use\+Program} (G\+Luint \+\_\+program)}\label{a00643_a584aa1d5b47c73fd80b69561ff0cc40c}

\begin{DoxyCompactList}\small\item\em replaces gl\+Use\+Program, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_ad676a4a7bd2a9f86cb8f2379abce4b1c}{static G\+Luint \hyperlink{a00643_ad676a4a7bd2a9f86cb8f2379abce4b1c}{get\+Program} ()}\label{a00643_ad676a4a7bd2a9f86cb8f2379abce4b1c}

\begin{DoxyCompactList}\small\item\em get bound program \end{DoxyCompactList}\item 
\hypertarget{a00643_a1829317230fbcb647ee4e43a7877998b}{static void \hyperlink{a00643_a1829317230fbcb647ee4e43a7877998b}{lock\+Program} ()}\label{a00643_a1829317230fbcb647ee4e43a7877998b}

\begin{DoxyCompactList}\small\item\em lock the program \end{DoxyCompactList}\item 
\hypertarget{a00643_ae0cd91a1c1d783373248da2191c71018}{static void \hyperlink{a00643_ae0cd91a1c1d783373248da2191c71018}{unlock\+Program} ()}\label{a00643_ae0cd91a1c1d783373248da2191c71018}

\begin{DoxyCompactList}\small\item\em unlock the program \end{DoxyCompactList}\item 
\hypertarget{a00643_a66f7071ed22bd0238371d8ce137f9014}{static bool \hyperlink{a00643_a66f7071ed22bd0238371d8ce137f9014}{is\+Program\+Locked} ()}\label{a00643_a66f7071ed22bd0238371d8ce137f9014}

\begin{DoxyCompactList}\small\item\em get program locking state \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf G\+L texture binding}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a99038fef7b214e931ad5c35b985ba3bc}{static void \hyperlink{a00643_a99038fef7b214e931ad5c35b985ba3bc}{active\+Texture} (G\+Lenum \+\_\+texunit)}\label{a00643_a99038fef7b214e931ad5c35b985ba3bc}

\begin{DoxyCompactList}\small\item\em replaces gl\+Active\+Texture, no locking support \end{DoxyCompactList}\item 
\hypertarget{a00643_a2d53d81a01029eee7f0a1f3eb238ce80}{static void \hyperlink{a00643_a2d53d81a01029eee7f0a1f3eb238ce80}{active\+Texture\+A\+R\+B} (G\+Lenum \+\_\+texunit)}\label{a00643_a2d53d81a01029eee7f0a1f3eb238ce80}

\begin{DoxyCompactList}\small\item\em same functiona as active\+Texture \end{DoxyCompactList}\item 
\hypertarget{a00643_a44f87b48855370e26a1095c7b5434a94}{static G\+Lenum \hyperlink{a00643_a44f87b48855370e26a1095c7b5434a94}{get\+Active\+Texture} ()}\label{a00643_a44f87b48855370e26a1095c7b5434a94}

\begin{DoxyCompactList}\small\item\em get active G\+L texture \end{DoxyCompactList}\item 
\hypertarget{a00643_a89d63fb5543d60345e3a562471f32b3e}{static int \hyperlink{a00643_a89d63fb5543d60345e3a562471f32b3e}{get\+Active\+Texture\+Index} ()}\label{a00643_a89d63fb5543d60345e3a562471f32b3e}

\begin{DoxyCompactList}\small\item\em get active texture as zero based index \end{DoxyCompactList}\item 
\hypertarget{a00643_a417f6bc43c066ca1fc1d770eb7cff2e0}{static void \hyperlink{a00643_a417f6bc43c066ca1fc1d770eb7cff2e0}{bind\+Texture} (G\+Lenum \+\_\+target, G\+Luint \+\_\+buffer)}\label{a00643_a417f6bc43c066ca1fc1d770eb7cff2e0}

\begin{DoxyCompactList}\small\item\em replaces gl\+Bind\+Texture, supports locking \end{DoxyCompactList}\item 
\hypertarget{a00643_a3d815f8ce80d14330e56f9ac1cdcd90d}{static void \hyperlink{a00643_a3d815f8ce80d14330e56f9ac1cdcd90d}{lock\+Texture\+Stage} ()}\label{a00643_a3d815f8ce80d14330e56f9ac1cdcd90d}

\begin{DoxyCompactList}\small\item\em locks the current texture stage (set by set\+Active\+Texture) \end{DoxyCompactList}\item 
\hypertarget{a00643_aea5c6344f0786abdcd42fcb6f52cf733}{static void \hyperlink{a00643_aea5c6344f0786abdcd42fcb6f52cf733}{unlock\+Texture\+Stage} ()}\label{a00643_aea5c6344f0786abdcd42fcb6f52cf733}

\begin{DoxyCompactList}\small\item\em unlocks the current texture target \end{DoxyCompactList}\item 
\hypertarget{a00643_ac8e23218d5d89ec80aa742dfcc5d0698}{static bool \hyperlink{a00643_ac8e23218d5d89ec80aa742dfcc5d0698}{is\+Texture\+Target\+Locked} ()}\label{a00643_ac8e23218d5d89ec80aa742dfcc5d0698}

\begin{DoxyCompactList}\small\item\em get texture target locking state \end{DoxyCompactList}\item 
\hypertarget{a00643_aa22609a423b333c9baec0d398c93e3eb}{static G\+Luint \hyperlink{a00643_aa22609a423b333c9baec0d398c93e3eb}{get\+Bound\+Texture\+Buffer} ()}\label{a00643_aa22609a423b333c9baec0d398c93e3eb}

\begin{DoxyCompactList}\small\item\em get bound texture \end{DoxyCompactList}\item 
\hypertarget{a00643_af44f0c60fa520221ecc7ba6e09b346cd}{static G\+Lenum \hyperlink{a00643_af44f0c60fa520221ecc7ba6e09b346cd}{get\+Bound\+Texture\+Target} ()}\label{a00643_af44f0c60fa520221ecc7ba6e09b346cd}

\begin{DoxyCompactList}\small\item\em get bound texture target \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a23df6035ae1f9d240608178659b6d5d7}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_a23df6035ae1f9d240608178659b6d5d7}{default\+\_\+clear\+\_\+color}}\label{a00643_a23df6035ae1f9d240608178659b6d5d7}

\begin{DoxyCompactList}\small\item\em default value for clear color \end{DoxyCompactList}\item 
\hypertarget{a00643_aa7e12d515d39fe918b1719ad6dfd6d33}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_aa7e12d515d39fe918b1719ad6dfd6d33}{default\+\_\+base\+\_\+color}}\label{a00643_aa7e12d515d39fe918b1719ad6dfd6d33}

\begin{DoxyCompactList}\small\item\em default value for base color \end{DoxyCompactList}\item 
\hypertarget{a00643_a3090c5abe5845e7dfa7c4712859ff9a0}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_a3090c5abe5845e7dfa7c4712859ff9a0}{default\+\_\+ambient\+\_\+color}}\label{a00643_a3090c5abe5845e7dfa7c4712859ff9a0}

\begin{DoxyCompactList}\small\item\em default value for ambient color \end{DoxyCompactList}\item 
\hypertarget{a00643_a9bec0609fb65f2c7308cd79b107eea3a}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_a9bec0609fb65f2c7308cd79b107eea3a}{default\+\_\+diffuse\+\_\+color}}\label{a00643_a9bec0609fb65f2c7308cd79b107eea3a}

\begin{DoxyCompactList}\small\item\em default value for diffuse color \end{DoxyCompactList}\item 
\hypertarget{a00643_a87d71144761ff7cd601c58e5b421d04a}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_a87d71144761ff7cd601c58e5b421d04a}{default\+\_\+specular\+\_\+color}}\label{a00643_a87d71144761ff7cd601c58e5b421d04a}

\begin{DoxyCompactList}\small\item\em default value for specular color \end{DoxyCompactList}\item 
\hypertarget{a00643_aa53128c92d9465c3c70e29e9660f4022}{static const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} \hyperlink{a00643_aa53128c92d9465c3c70e29e9660f4022}{default\+\_\+overlay\+\_\+color}}\label{a00643_aa53128c92d9465c3c70e29e9660f4022}

\begin{DoxyCompactList}\small\item\em default value for overlay color \end{DoxyCompactList}\item 
\hypertarget{a00643_a3fd6e8830f3043d3633797402b684d85}{static const float \hyperlink{a00643_a3fd6e8830f3043d3633797402b684d85}{default\+\_\+shininess}}\label{a00643_a3fd6e8830f3043d3633797402b684d85}

\begin{DoxyCompactList}\small\item\em default value for shininess \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_aa4fbb3de78ca7856f94c47b622af8af2}{static int \hyperlink{a00643_aa4fbb3de78ca7856f94c47b622af8af2}{get\+Buffer\+Target\+Index} (G\+Lenum \+\_\+target)}\label{a00643_aa4fbb3de78ca7856f94c47b622af8af2}

\begin{DoxyCompactList}\small\item\em bijective map from G\+Lenum buffer\+\_\+target to \mbox{[}0..3\mbox{]}, -\/1 if unsupported \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_a18d923624c24b5e9c454012da41c8314}{std\+::stack$<$ \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} $>$ {\bfseries stack\+\_\+projection\+\_\+}}\label{a00643_a18d923624c24b5e9c454012da41c8314}

\item 
\hypertarget{a00643_a424d2c5bc5cbafa3355884c0e35a78fc}{std\+::stack$<$ \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} $>$ {\bfseries stack\+\_\+modelview\+\_\+}}\label{a00643_a424d2c5bc5cbafa3355884c0e35a78fc}

\item 
\hypertarget{a00643_a0dc2d0d9998b83296da004df8268855e}{std\+::stack$<$ \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} $>$ {\bfseries stack\+\_\+inverse\+\_\+projection\+\_\+}}\label{a00643_a0dc2d0d9998b83296da004df8268855e}

\item 
\hypertarget{a00643_aff6417196089a541a70657b95bb8f320}{std\+::stack$<$ \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} $>$ {\bfseries stack\+\_\+inverse\+\_\+modelview\+\_\+}}\label{a00643_aff6417196089a541a70657b95bb8f320}

\item 
\hypertarget{a00643_a0a336a52eed84a78c8e299687bdf1a16}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries projection\+\_\+}}\label{a00643_a0a336a52eed84a78c8e299687bdf1a16}

\item 
\hypertarget{a00643_a82fd5125b71b60392e751ca685ef15d8}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries inverse\+\_\+projection\+\_\+}}\label{a00643_a82fd5125b71b60392e751ca685ef15d8}

\item 
\hypertarget{a00643_a9b15e926e02b128c24a0dbf0f7210b48}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries modelview\+\_\+}}\label{a00643_a9b15e926e02b128c24a0dbf0f7210b48}

\item 
\hypertarget{a00643_a245ad86fd74446adf34c749abcaac7b3}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries inverse\+\_\+modelview\+\_\+}}\label{a00643_a245ad86fd74446adf34c749abcaac7b3}

\item 
\hypertarget{a00643_aec62279296eae4283ee96e8bb72f2707}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries window2viewport\+\_\+}}\label{a00643_aec62279296eae4283ee96e8bb72f2707}

\item 
\hypertarget{a00643_a1fec5d1ab81566ee1ab53c341f1fa997}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries inverse\+\_\+window2viewport\+\_\+}}\label{a00643_a1fec5d1ab81566ee1ab53c341f1fa997}

\item 
\hypertarget{a00643_a12f2f26ed9267c281625b24b08c39324}{int {\bfseries left\+\_\+}}\label{a00643_a12f2f26ed9267c281625b24b08c39324}

\item 
\hypertarget{a00643_a57b2efb5c515a725f6cc70e9da3c4fe3}{int {\bfseries bottom\+\_\+}}\label{a00643_a57b2efb5c515a725f6cc70e9da3c4fe3}

\item 
\hypertarget{a00643_a1736bd707aa074caf074b1aabb97afaa}{int {\bfseries width\+\_\+}}\label{a00643_a1736bd707aa074caf074b1aabb97afaa}

\item 
\hypertarget{a00643_a8f7a461c8dd10b53c6b185e49ea32f37}{int {\bfseries height\+\_\+}}\label{a00643_a8f7a461c8dd10b53c6b185e49ea32f37}

\item 
\hypertarget{a00643_a6b4067ba57a66933e61f7d6f15724111}{int {\bfseries glwidth\+\_\+}}\label{a00643_a6b4067ba57a66933e61f7d6f15724111}

\item 
\hypertarget{a00643_afc7db872132511165e3a6e7d6908b117}{int {\bfseries glheight\+\_\+}}\label{a00643_afc7db872132511165e3a6e7d6908b117}

\item 
\hypertarget{a00643_a0debcffd988920adbd58b4380ca90984}{double {\bfseries near\+\_\+plane\+\_\+}}\label{a00643_a0debcffd988920adbd58b4380ca90984}

\item 
\hypertarget{a00643_a83ef4b41052778e7db5d0337a72fbaca}{double {\bfseries far\+\_\+plane\+\_\+}}\label{a00643_a83ef4b41052778e7db5d0337a72fbaca}

\item 
\hypertarget{a00643_aa31fcf59332bafd348e162983aa7dbfd}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries clear\+\_\+color\+\_\+}}\label{a00643_aa31fcf59332bafd348e162983aa7dbfd}

\item 
\hypertarget{a00643_aa514bdd7dfb84d6e8e79a4b8a3cbbc09}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries color\+\_\+}}\label{a00643_aa514bdd7dfb84d6e8e79a4b8a3cbbc09}

\item 
\hypertarget{a00643_a649a463f7af2a6024ed630440e8f6810}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries base\+\_\+color\+\_\+}}\label{a00643_a649a463f7af2a6024ed630440e8f6810}

\item 
\hypertarget{a00643_ab545cc6bec7822a6aa7524ac2e342a3a}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries ambient\+\_\+color\+\_\+}}\label{a00643_ab545cc6bec7822a6aa7524ac2e342a3a}

\item 
\hypertarget{a00643_a7a1ef41a919b14cc9de0a110b2c3674c}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries diffuse\+\_\+color\+\_\+}}\label{a00643_a7a1ef41a919b14cc9de0a110b2c3674c}

\item 
\hypertarget{a00643_a554562221d399668986fd373850ab72c}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries specular\+\_\+color\+\_\+}}\label{a00643_a554562221d399668986fd373850ab72c}

\item 
\hypertarget{a00643_a5c9946c0d8ee28f7daff074465e2dffc}{\hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{Vec4f} {\bfseries overlay\+\_\+color\+\_\+}}\label{a00643_a5c9946c0d8ee28f7daff074465e2dffc}

\item 
\hypertarget{a00643_a8b507835aa3c74a13cb39c1924bd6a6d}{float {\bfseries shininess\+\_\+}}\label{a00643_a8b507835aa3c74a13cb39c1924bd6a6d}

\item 
\hypertarget{a00643_ae936dbb9544655974675bc8db3d90557}{float {\bfseries point\+\_\+size\+\_\+}}\label{a00643_ae936dbb9544655974675bc8db3d90557}

\item 
\hypertarget{a00643_aabe06072cf4d0885fc2399050d546b31}{float {\bfseries line\+\_\+width\+\_\+}}\label{a00643_aabe06072cf4d0885fc2399050d546b31}

\item 
\hypertarget{a00643_ab8b32530222b048f2ed859392262b028}{bool {\bfseries twosided\+\_\+lighting\+\_\+}}\label{a00643_ab8b32530222b048f2ed859392262b028}

\item 
\hypertarget{a00643_af4be5f2fd2b8d0aa7491decee308ed49}{bool {\bfseries multisampling\+\_\+}}\label{a00643_af4be5f2fd2b8d0aa7491decee308ed49}

\item 
\hypertarget{a00643_ae52369f4dd5b6c9fd0abcfa420bf0b87}{bool {\bfseries allow\+\_\+multisampling\+\_\+}}\label{a00643_ae52369f4dd5b6c9fd0abcfa420bf0b87}

\item 
\hypertarget{a00643_a3b4ff4f2326273f1ae153aa5eb70fde2}{bool {\bfseries mipmapping\+\_\+}}\label{a00643_a3b4ff4f2326273f1ae153aa5eb70fde2}

\item 
\hypertarget{a00643_ab258d28b888afa7ce905b8984e6c6c56}{bool {\bfseries update\+G\+L\+\_\+}}\label{a00643_ab258d28b888afa7ce905b8984e6c6c56}

\item 
\hypertarget{a00643_ab56cccb8146fd3b35b3d52335a39d319}{bool {\bfseries blending\+\_\+}}\label{a00643_ab56cccb8146fd3b35b3d52335a39d319}

\item 
\hypertarget{a00643_af40e1af8336216ee0c5dc84f90c305f6}{unsigned int {\bfseries ms\+Since\+Last\+Redraw\+\_\+}}\label{a00643_af40e1af8336216ee0c5dc84f90c305f6}

\item 
\hypertarget{a00643_a1ef469240f99461779b276493ec53f69}{\hyperlink{a00430}{Color\+Stack} {\bfseries color\+Stack\+\_\+}}\label{a00643_a1ef469240f99461779b276493ec53f69}

\item 
\hypertarget{a00643_a15d4c62823c42c152f94ab400e2880d2}{bool {\bfseries color\+Picking\+\_\+}}\label{a00643_a15d4c62823c42c152f94ab400e2880d2}

\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_ab6b42822163bb96c426107027af19fdb}{static int {\bfseries num\+\_\+texture\+\_\+units\+\_\+} = 0}\label{a00643_ab6b42822163bb96c426107027af19fdb}

\item 
\hypertarget{a00643_af5f9579bc7214726cb0e33fc111cb157}{static bool {\bfseries depth\+Func\+Lock\+\_\+} = false}\label{a00643_af5f9579bc7214726cb0e33fc111cb157}

\item 
\hypertarget{a00643_a7d7632041a5dd6c89dfd6c96ce4e2d19}{static std\+::deque$<$ \hyperlink{a00645}{G\+L\+State\+Context} $>$ {\bfseries state\+Stack\+\_\+}}\label{a00643_a7d7632041a5dd6c89dfd6c96ce4e2d19}

\item 
\hypertarget{a00643_a710c7ee3372b54a487e85aaf18665d96}{static G\+Lenum {\bfseries gl\+State\+Caps} \mbox{[}95\mbox{]}}\label{a00643_a710c7ee3372b54a487e85aaf18665d96}

\item 
\hypertarget{a00643_afa1bc6ec7213dcd0d1e56cc087bb032b}{static std\+::bitset$<$ 0x\+F\+F\+F\+F+1 $>$ {\bfseries gl\+State\+Lock\+\_\+}}\label{a00643_afa1bc6ec7213dcd0d1e56cc087bb032b}

\item 
\hypertarget{a00643_ac032361b35d7336ec9beba8653404b68}{static bool {\bfseries blend\+Func\+Separate\+Lock\+\_\+} \mbox{[}2\mbox{]} = \{ false \}}\label{a00643_ac032361b35d7336ec9beba8653404b68}

\item 
\hypertarget{a00643_a2d5bf967ee351bf453dc219106f3140e}{static bool {\bfseries blend\+Equation\+Lock\+\_\+} = false}\label{a00643_a2d5bf967ee351bf453dc219106f3140e}

\item 
\hypertarget{a00643_a6ae2436a9fc7d75d5345ac84fb2cfe86}{static bool {\bfseries blend\+Color\+Lock\+\_\+} = false}\label{a00643_a6ae2436a9fc7d75d5345ac84fb2cfe86}

\item 
\hypertarget{a00643_a163077563ed26ee27e88839d7f610a79}{static bool {\bfseries alpha\+Func\+Lock\+\_\+} = false}\label{a00643_a163077563ed26ee27e88839d7f610a79}

\item 
\hypertarget{a00643_a1f02c2a2a1243e2cadb88753d727c24e}{static bool {\bfseries depth\+Range\+Lock\+\_\+} = false}\label{a00643_a1f02c2a2a1243e2cadb88753d727c24e}

\item 
\hypertarget{a00643_a3f4bf09c7fed30d55a27e8145ebd4c21}{static int {\bfseries gl\+Buffer\+Target\+Lock\+\_\+} \mbox{[}4\mbox{]} = \{0\}}\label{a00643_a3f4bf09c7fed30d55a27e8145ebd4c21}

\item 
\hypertarget{a00643_ac5a1c89f5ccfb6564fe730c7a9abff15}{static int {\bfseries gl\+Texture\+Stage\+Lock\+\_\+} \mbox{[}16\mbox{]} = \{0\}}\label{a00643_ac5a1c89f5ccfb6564fe730c7a9abff15}

\item 
\hypertarget{a00643_a0a5277402e152233b0fc46ee5cd14dcc}{static bool {\bfseries shade\+Model\+Lock\+\_\+} = false}\label{a00643_a0a5277402e152233b0fc46ee5cd14dcc}

\item 
\hypertarget{a00643_a774745b542303960dc10fa242beae307}{static bool {\bfseries cull\+Face\+Lock\+\_\+} = false}\label{a00643_a774745b542303960dc10fa242beae307}

\item 
\hypertarget{a00643_a60d0246e4721cdd8d518eafeafe99364}{static bool {\bfseries vertex\+Pointer\+Lock\+\_\+} = false}\label{a00643_a60d0246e4721cdd8d518eafeafe99364}

\item 
\hypertarget{a00643_a7cdd04611e4fede481cb5e8ebbae6159}{static bool {\bfseries normal\+Pointer\+Lock\+\_\+} = false}\label{a00643_a7cdd04611e4fede481cb5e8ebbae6159}

\item 
\hypertarget{a00643_a1688c4846e61a123c91873de50d33608}{static bool {\bfseries texcoord\+Pointer\+Lock\+\_\+} = false}\label{a00643_a1688c4846e61a123c91873de50d33608}

\item 
\hypertarget{a00643_a7252cc6897df857c4f955accff2f43d4}{static bool {\bfseries color\+Pointer\+Lock\+\_\+} = false}\label{a00643_a7252cc6897df857c4f955accff2f43d4}

\item 
\hypertarget{a00643_a324005b15e7629e4d951cff7d655e19b}{static bool {\bfseries draw\+Buffer\+Lock\+\_\+} = false}\label{a00643_a324005b15e7629e4d951cff7d655e19b}

\item 
\hypertarget{a00643_a259c84e7e9a16dd6048aa277a57fa2fc}{static bool {\bfseries framebuffer\+Lock\+\_\+} \mbox{[}2\mbox{]} = \{false\}}\label{a00643_a259c84e7e9a16dd6048aa277a57fa2fc}

\item 
\hypertarget{a00643_a83a43883cae28d9298f46ac12fcbee9b}{static bool {\bfseries program\+Lock\+\_\+} = false}\label{a00643_a83a43883cae28d9298f46ac12fcbee9b}

\item 
\hypertarget{a00643_a1a7494a87f91d4cd6d1a2ad6e568e9cf}{static int {\bfseries max\+Texture\+Coords\+\_\+} = 0}\label{a00643_a1a7494a87f91d4cd6d1a2ad6e568e9cf}

\item 
\hypertarget{a00643_a5a17b84db440ff3ffa48479c76ed9582}{static int {\bfseries max\+Combined\+Texture\+Image\+Units\+\_\+} = 0}\label{a00643_a5a17b84db440ff3ffa48479c76ed9582}

\item 
\hypertarget{a00643_aa578cc2d38b7e8e6446c1877e95f84fe}{static int {\bfseries max\+Draw\+Buffers\+\_\+} = 0}\label{a00643_aa578cc2d38b7e8e6446c1877e95f84fe}

\end{DoxyCompactItemize}
\subsection*{Profile setter}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00643_ab756f4ff3bc1f46a88de356ee2939cd7}{bool {\bfseries compatibility\+Profile\+\_\+}}\label{a00643_ab756f4ff3bc1f46a88de356ee2939cd7}

\item 
\hypertarget{a00643_a4958817b6b426961e5a7d65e9ed2832d}{void {\bfseries set\+Compatibility\+Profile} (bool \+\_\+compatibility)}\label{a00643_a4958817b6b426961e5a7d65e9ed2832d}

\item 
\hypertarget{a00643_ab7cf9fc15981d08e3591b8781a94775d}{bool {\bfseries compatibility\+Profile} () const }\label{a00643_ab7cf9fc15981d08e3591b8781a94775d}

\end{DoxyCompactItemize}
\subsection*{Render pass controls}
\begin{DoxyCompactItemize}
\item 
unsigned int \hyperlink{a00643_af5f8c51d7c934f3957b58d5ac4def123}{render\+\_\+pass\+\_\+}
\item 
unsigned int \hyperlink{a00643_af3d157c3c150974695d135c1dd8651cc}{max\+\_\+render\+\_\+passes\+\_\+}
\item 
\hypertarget{a00643_a35497e389378b77f8db69f17bbf76c72}{unsigned int \hyperlink{a00643_a35497e389378b77f8db69f17bbf76c72}{render\+\_\+pass} () const }\label{a00643_a35497e389378b77f8db69f17bbf76c72}

\begin{DoxyCompactList}\small\item\em get current render pass counter \end{DoxyCompactList}\item 
\hypertarget{a00643_aea044123df44f6f09d843d745dfad250}{void \hyperlink{a00643_aea044123df44f6f09d843d745dfad250}{reset\+\_\+render\+\_\+pass} ()}\label{a00643_aea044123df44f6f09d843d745dfad250}

\begin{DoxyCompactList}\small\item\em reset render pass counter \end{DoxyCompactList}\item 
\hypertarget{a00643_af47266874e869edf180cc6501bae4cf0}{void \hyperlink{a00643_af47266874e869edf180cc6501bae4cf0}{next\+\_\+render\+\_\+pass} ()}\label{a00643_af47266874e869edf180cc6501bae4cf0}

\begin{DoxyCompactList}\small\item\em increment render pass counter \end{DoxyCompactList}\item 
\hypertarget{a00643_a54689633e165aa9f341bba2e82ea6dd8}{unsigned int \hyperlink{a00643_a54689633e165aa9f341bba2e82ea6dd8}{max\+\_\+render\+\_\+passes} () const }\label{a00643_a54689633e165aa9f341bba2e82ea6dd8}

\begin{DoxyCompactList}\small\item\em get maximum number of render passes \end{DoxyCompactList}\item 
\hypertarget{a00643_a832488ef67b1ae775574338c6005c0e5}{void \hyperlink{a00643_a832488ef67b1ae775574338c6005c0e5}{set\+\_\+max\+\_\+render\+\_\+passes} (const unsigned int \+\_\+max)}\label{a00643_a832488ef67b1ae775574338c6005c0e5}

\begin{DoxyCompactList}\small\item\em set maximum number of render passes \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Scene Infos}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00643_acc5184e3c279146f106bddca26350138}{bb\+\_\+min\+\_\+}
\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00643_a9a16f7f5c36a40bdddb6a9ce0240173b}{bb\+\_\+max\+\_\+}
\item 
void \hyperlink{a00643_a9939a2272f4da449b9d4c970f74a9e64}{set\+\_\+bounding\+\_\+box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+max)
\item 
void \hyperlink{a00643_a70bcbf3b0609268b570a723dea71f069}{get\+\_\+bounding\+\_\+box} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+min, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+max)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class stores all relevant Open\+G\+L states and can therefore provide some nice and efficient functions like projecting, unprojecting, eye point or viewing direction.

\begin{DoxyNote}{Note}
This class needs an Open\+G\+L context. This is currently given in a Q\+G\+L\+Context.
\end{DoxyNote}
\hypertarget{a00643_pMatrix}{}\subsection{The projection matrix}\label{a00643_pMatrix}
The \hyperlink{a00643}{G\+L\+State} class stores its own projection matrix which is of type \hyperlink{a00638}{G\+L\+Matrix\+T}. Creating a viewing frustum of a perspective projection will result in the following projection matrix\+:



Where n is the orthogonal distance from the viewing plane (near plane) to the eye position, f is the orthogonal distance from the back clipping plane (far plane) to the eye position, l, r, t, b are scalars indicating the left, right, top and bottom coordinates of the viewing plane (so in fact we have a rectangle between the points (b,l) and (t,r)) and phi is the opening angle (field of view), also see figure 1.

 Some useful values that can directly be computed out of the projection matrix\+:

 

Definition at line 220 of file G\+L\+State.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00643_a5a1b9ecf681fdd6d6eb69b0f99558f30}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!allow\+\_\+mipmapping@{allow\+\_\+mipmapping}}
\index{allow\+\_\+mipmapping@{allow\+\_\+mipmapping}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{allow\+\_\+mipmapping}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::allow\+\_\+mipmapping (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+b}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00643_a5a1b9ecf681fdd6d6eb69b0f99558f30}


Allow mipmapping globally. 

Note\+: This actually does not change the opengl state since mipmapping is turned on/off via texture parameters To change the behaviour see in Texture\+Node 

Definition at line 1071 of file G\+L\+State.\+hh.

\hypertarget{a00643_acd9c48e5c6be8082fb1811aa8b0e529f}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!buffer\+Data@{buffer\+Data}}
\index{buffer\+Data@{buffer\+Data}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{buffer\+Data}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::buffer\+Data (
\begin{DoxyParamCaption}
\item[{G\+Lenum}]{target, }
\item[{G\+Lsizeiptr}]{size, }
\item[{const G\+Lvoid $\ast$}]{data, }
\item[{G\+Lenum}]{usage}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_acd9c48e5c6be8082fb1811aa8b0e529f}
Simple wrapper around gl\+Buffer\+Data. Useful where glew cannot be included. 

Definition at line 2100 of file G\+L\+State.\+cc.

\hypertarget{a00643_aa2cf42e7c890f7b4b25091c1fd4e9e04}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!buffer\+Data\+A\+R\+B@{buffer\+Data\+A\+R\+B}}
\index{buffer\+Data\+A\+R\+B@{buffer\+Data\+A\+R\+B}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{buffer\+Data\+A\+R\+B}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::buffer\+Data\+A\+R\+B (
\begin{DoxyParamCaption}
\item[{G\+Lenum}]{target, }
\item[{G\+Lsizeiptr\+A\+R\+B}]{size, }
\item[{const G\+Lvoid $\ast$}]{data, }
\item[{G\+Lenum}]{usage}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_aa2cf42e7c890f7b4b25091c1fd4e9e04}
Simple wrapper around gl\+Buffer\+Data\+A\+R\+B. Useful where glew cannot be included. 

Definition at line 2095 of file G\+L\+State.\+cc.

\hypertarget{a00643_ad1db7c62b93309b27b45a10e2e3e5e73}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!delete\+Buffers@{delete\+Buffers}}
\index{delete\+Buffers@{delete\+Buffers}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{delete\+Buffers}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::delete\+Buffers (
\begin{DoxyParamCaption}
\item[{G\+Lsizei}]{n, }
\item[{const G\+Luint $\ast$}]{buffers}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_ad1db7c62b93309b27b45a10e2e3e5e73}
Simple wrapper around gl\+Delete\+Buffers. Useful where glew cannot be included. 

Definition at line 2105 of file G\+L\+State.\+cc.

\hypertarget{a00643_ab89ef328f1f41342eb690f7115daff63}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!gen\+Buffers@{gen\+Buffers}}
\index{gen\+Buffers@{gen\+Buffers}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{gen\+Buffers}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::gen\+Buffers (
\begin{DoxyParamCaption}
\item[{G\+Lsizei}]{n, }
\item[{G\+Luint $\ast$}]{buffers}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_ab89ef328f1f41342eb690f7115daff63}
Simple wrapper around gl\+Gen\+Buffers. Useful where glew cannot be included. 

Definition at line 2091 of file G\+L\+State.\+cc.

\hypertarget{a00643_a8456dc0dd72d0107968ce4e27ce96886}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!gen\+Buffers\+A\+R\+B@{gen\+Buffers\+A\+R\+B}}
\index{gen\+Buffers\+A\+R\+B@{gen\+Buffers\+A\+R\+B}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{gen\+Buffers\+A\+R\+B}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::gen\+Buffers\+A\+R\+B (
\begin{DoxyParamCaption}
\item[{G\+Lsizei}]{n, }
\item[{G\+Luint $\ast$}]{buffers}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_a8456dc0dd72d0107968ce4e27ce96886}
Simple wrapper around gl\+Gen\+Buffers\+A\+R\+B. Useful where glew cannot be included. 

Definition at line 2087 of file G\+L\+State.\+cc.

\hypertarget{a00643_a70bcbf3b0609268b570a723dea71f069}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!get\+\_\+bounding\+\_\+box@{get\+\_\+bounding\+\_\+box}}
\index{get\+\_\+bounding\+\_\+box@{get\+\_\+bounding\+\_\+box}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{get\+\_\+bounding\+\_\+box}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::get\+\_\+bounding\+\_\+box (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+min, }
\item[{{\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+max}
\end{DoxyParamCaption}
)}}\label{a00643_a70bcbf3b0609268b570a723dea71f069}
Get the current bounding box of the scene. This has to be set before traversal happens in the viewer by using set\+\_\+bounding\+\_\+box 

Definition at line 809 of file G\+L\+State.\+cc.

\hypertarget{a00643_ae8e56e5e228b4ced0bb76fb81ba51789}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!get\+Framebuffer\+Draw@{get\+Framebuffer\+Draw}}
\index{get\+Framebuffer\+Draw@{get\+Framebuffer\+Draw}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{get\+Framebuffer\+Draw}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint A\+C\+G\+::\+G\+L\+State\+::get\+Framebuffer\+Draw (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_ae8e56e5e228b4ced0bb76fb81ba51789}


get current draw framebuffer of a target 

get current framebuffer of a target 

Definition at line 1994 of file G\+L\+State.\+cc.

\hypertarget{a00643_a2ca3ffb670ca9d18f7abe758225feaef}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!get\+Framebuffer\+Read@{get\+Framebuffer\+Read}}
\index{get\+Framebuffer\+Read@{get\+Framebuffer\+Read}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{get\+Framebuffer\+Read}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint A\+C\+G\+::\+G\+L\+State\+::get\+Framebuffer\+Read (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_a2ca3ffb670ca9d18f7abe758225feaef}


get current read framebuffer of a target 

get current framebuffer of a target 

Definition at line 2002 of file G\+L\+State.\+cc.

\hypertarget{a00643_aef8da8d73972accbc64a9aa31019c3ec}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!map\+Buffer@{map\+Buffer}}
\index{map\+Buffer@{map\+Buffer}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{map\+Buffer}]{\setlength{\rightskip}{0pt plus 5cm}G\+Lvoid $\ast$ A\+C\+G\+::\+G\+L\+State\+::map\+Buffer (
\begin{DoxyParamCaption}
\item[{G\+Lenum}]{target, }
\item[{G\+Lenum}]{access}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_aef8da8d73972accbc64a9aa31019c3ec}
Simple wrapper around gl\+Map\+Buffer. Useful where glew cannot be included. 

Definition at line 2109 of file G\+L\+State.\+cc.

\hypertarget{a00643_a023a4ffc00dac6e1fe4ab1e0b6bbc339}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!overlay\+\_\+color@{overlay\+\_\+color}}
\index{overlay\+\_\+color@{overlay\+\_\+color}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{overlay\+\_\+color}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Vec4f}\& A\+C\+G\+::\+G\+L\+State\+::overlay\+\_\+color (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00643_a023a4ffc00dac6e1fe4ab1e0b6bbc339}


Get overlay color. 

This color does not set an opengl state but can be used to store an additional color for a wireframe. 

Definition at line 958 of file G\+L\+State.\+hh.

\hypertarget{a00643_aa3e528c906074a821be147f73bf3798c}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+color\+\_\+to\+\_\+stack@{pick\+\_\+color\+\_\+to\+\_\+stack}}
\index{pick\+\_\+color\+\_\+to\+\_\+stack@{pick\+\_\+color\+\_\+to\+\_\+stack}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+color\+\_\+to\+\_\+stack}]{\setlength{\rightskip}{0pt plus 5cm}std\+::vector$<$ unsigned int $>$ A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+color\+\_\+to\+\_\+stack (
\begin{DoxyParamCaption}
\item[{{\bf Vec4uc}}]{\+\_\+rgba}
\end{DoxyParamCaption}
) const}}\label{a00643_aa3e528c906074a821be147f73bf3798c}
converts the given color to index values on the stack (only used in color picking) This can be compared to the results of the selection buffer results 

Definition at line 1087 of file G\+L\+State.\+cc.

\hypertarget{a00643_a81dde5adc9fa8c6dbc6796d0efecc02e}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+current\+\_\+index@{pick\+\_\+current\+\_\+index}}
\index{pick\+\_\+current\+\_\+index@{pick\+\_\+current\+\_\+index}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+current\+\_\+index}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+current\+\_\+index (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{a00643_a81dde5adc9fa8c6dbc6796d0efecc02e}


Returns the current color picking index (can be used for caching) 

Is this value equal to a value used in a previous picking run, then the same colors will be used. In this case a previously calculated color array/display list can be reused.

This is basically the name of the whole object ( which would be the same as the name of the first component of the object), not the name of the primitives/components in the object! 

Definition at line 1114 of file G\+L\+State.\+cc.

\hypertarget{a00643_aee947e933a4a1d107651d54387eddf7b}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+error@{pick\+\_\+error}}
\index{pick\+\_\+error@{pick\+\_\+error}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+error}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+error (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{a00643_aee947e933a4a1d107651d54387eddf7b}
Did an error occur during picking (only used in color picking) Mostly to small color depth or wrong handling of pick\+\_\+set\+\_\+maximum 

Definition at line 1105 of file G\+L\+State.\+cc.

\hypertarget{a00643_a4c940ccbd7dc768f06973d133ff8bbbd}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+get\+\_\+name\+\_\+color@{pick\+\_\+get\+\_\+name\+\_\+color}}
\index{pick\+\_\+get\+\_\+name\+\_\+color@{pick\+\_\+get\+\_\+name\+\_\+color}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+get\+\_\+name\+\_\+color}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec4uc} A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+get\+\_\+name\+\_\+color (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+idx}
\end{DoxyParamCaption}
)}}\label{a00643_a4c940ccbd7dc768f06973d133ff8bbbd}
returns the color that will be used for index \+\_\+idx during color picking if this index will be set with pick\+\_\+set\+\_\+name. This can be used to generate color arrays instead of using direct gl calls for each primitive 

Definition at line 1064 of file G\+L\+State.\+cc.

\hypertarget{a00643_a2375be5d55867c4e4927d2826c19b6a1}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+init@{pick\+\_\+init}}
\index{pick\+\_\+init@{pick\+\_\+init}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+init (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+color}
\end{DoxyParamCaption}
)}}\label{a00643_a2375be5d55867c4e4927d2826c19b6a1}


initialize name/color picking stack (like gl\+Init\+Names()) 

Follows the Open\+G\+L selection buffer implementation (Open\+G\+L Red Book Chapter 13) \href{http://www.glprogramming.com/red/chapter13.html}{\tt http\+://www.\+glprogramming.\+com/red/chapter13.\+html}

Color picking is another method to realize picking. This functions replace the original Open\+G\+L functions, to allow the handling of selection buffer picking and color based picking with the same code. 

Definition at line 1039 of file G\+L\+State.\+cc.

\hypertarget{a00643_a07e196194a18399308533237742d7959}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+set\+\_\+maximum@{pick\+\_\+set\+\_\+maximum}}
\index{pick\+\_\+set\+\_\+maximum@{pick\+\_\+set\+\_\+maximum}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+set\+\_\+maximum}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+set\+\_\+maximum (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+idx}
\end{DoxyParamCaption}
)}}\label{a00643_a07e196194a18399308533237742d7959}


Set the maximal number of primitives/components of your object. 

Sets the maximum used name index at current stack position (only used in color picking) A restriction inside the color picking implementation forces to set the maximum used number for the following pick\+\_\+set\+\_\+name calls between the two pick\+\_\+push\+\_\+name/pick\+\_\+pop\+\_\+name calls.

If you create picking for your nodes, the values set with pick\+\_\+set\+\_\+name have to be between zero and this value. 

Definition at line 1047 of file G\+L\+State.\+cc.

\hypertarget{a00643_a814c2fa55d331c58dd1871a0e6db70fc}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!pick\+\_\+set\+\_\+name@{pick\+\_\+set\+\_\+name}}
\index{pick\+\_\+set\+\_\+name@{pick\+\_\+set\+\_\+name}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{pick\+\_\+set\+\_\+name}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::pick\+\_\+set\+\_\+name (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+idx}
\end{DoxyParamCaption}
)}}\label{a00643_a814c2fa55d331c58dd1871a0e6db70fc}


sets the current name/color (like gl\+Load\+Name(\+\_\+idx)) 

This will be the index of the primitive/component in the object. If you create picking for your nodes, the values set here will be returned as the target index. So if your object has three parts, you call pick\+\_\+set\+\_\+name(0), than render the first component and then pick\+\_\+set\+\_\+name(1), ...

If you perform the picking and click on the second component, the returned index will be 1 as set in the node. 

Definition at line 1057 of file G\+L\+State.\+cc.

\hypertarget{a00643_a9939a2272f4da449b9d4c970f74a9e64}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!set\+\_\+bounding\+\_\+box@{set\+\_\+bounding\+\_\+box}}
\index{set\+\_\+bounding\+\_\+box@{set\+\_\+bounding\+\_\+box}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{set\+\_\+bounding\+\_\+box}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::set\+\_\+bounding\+\_\+box (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+Vec3d}}]{\+\_\+min, }
\item[{{\bf A\+C\+G\+::\+Vec3d}}]{\+\_\+max}
\end{DoxyParamCaption}
)}}\label{a00643_a9939a2272f4da449b9d4c970f74a9e64}
Provide scene Information about the boundingbox via this function It is not computed by the state itself!! 

Definition at line 802 of file G\+L\+State.\+cc.

\hypertarget{a00643_a84e7be38254190b7f57be5c129a16381}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!set\+\_\+overlay\+\_\+color@{set\+\_\+overlay\+\_\+color}}
\index{set\+\_\+overlay\+\_\+color@{set\+\_\+overlay\+\_\+color}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{set\+\_\+overlay\+\_\+color}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::set\+\_\+overlay\+\_\+color (
\begin{DoxyParamCaption}
\item[{const {\bf Vec4f} \&}]{\+\_\+col}
\end{DoxyParamCaption}
)}}\label{a00643_a84e7be38254190b7f57be5c129a16381}


set overlay color 

This color does not set an opengl state but can be used to store an additional color for a wireframe 

Definition at line 750 of file G\+L\+State.\+cc.

\hypertarget{a00643_a1f2b5fc880f7854ba66de161351f19ba}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!unmap\+Buffer@{unmap\+Buffer}}
\index{unmap\+Buffer@{unmap\+Buffer}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{unmap\+Buffer}]{\setlength{\rightskip}{0pt plus 5cm}G\+Lboolean A\+C\+G\+::\+G\+L\+State\+::unmap\+Buffer (
\begin{DoxyParamCaption}
\item[{G\+Lenum}]{target}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00643_a1f2b5fc880f7854ba66de161351f19ba}
Simple wrapper around gl\+Unmap\+Buffer. Useful where glew cannot be included. 

Definition at line 2114 of file G\+L\+State.\+cc.

\hypertarget{a00643_af852f7494b79f462b1a4258f17f9cd0b}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!viewing\+\_\+ray@{viewing\+\_\+ray}}
\index{viewing\+\_\+ray@{viewing\+\_\+ray}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{viewing\+\_\+ray}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+G\+L\+State\+::viewing\+\_\+ray (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+x, }
\item[{int}]{\+\_\+y, }
\item[{{\bf Vec3d} \&}]{\+\_\+origin, }
\item[{{\bf Vec3d} \&}]{\+\_\+direction}
\end{DoxyParamCaption}
) const}}\label{a00643_af852f7494b79f462b1a4258f17f9cd0b}
get viewing ray (\+\_\+orgin \& \+\_\+direction) through pixel (\+\_\+x,\+\_\+y). \+\_\+direction will be nornalized. 

Definition at line 926 of file G\+L\+State.\+cc.



\subsection{Member Data Documentation}
\hypertarget{a00643_a9a16f7f5c36a40bdddb6a9ce0240173b}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!bb\+\_\+max\+\_\+@{bb\+\_\+max\+\_\+}}
\index{bb\+\_\+max\+\_\+@{bb\+\_\+max\+\_\+}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{bb\+\_\+max\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf A\+C\+G\+::\+Vec3d} A\+C\+G\+::\+G\+L\+State\+::bb\+\_\+max\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00643_a9a16f7f5c36a40bdddb6a9ce0240173b}
Provide scene Information about the boundingbox via this function It is not computed by the state itself!! 

Definition at line 1028 of file G\+L\+State.\+hh.

\hypertarget{a00643_acc5184e3c279146f106bddca26350138}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!bb\+\_\+min\+\_\+@{bb\+\_\+min\+\_\+}}
\index{bb\+\_\+min\+\_\+@{bb\+\_\+min\+\_\+}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{bb\+\_\+min\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf A\+C\+G\+::\+Vec3d} A\+C\+G\+::\+G\+L\+State\+::bb\+\_\+min\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00643_acc5184e3c279146f106bddca26350138}
Provide scene Information about the boundingbox via this function It is not computed by the state itself!! 

Definition at line 1028 of file G\+L\+State.\+hh.

\hypertarget{a00643_af3d157c3c150974695d135c1dd8651cc}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!max\+\_\+render\+\_\+passes\+\_\+@{max\+\_\+render\+\_\+passes\+\_\+}}
\index{max\+\_\+render\+\_\+passes\+\_\+@{max\+\_\+render\+\_\+passes\+\_\+}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{max\+\_\+render\+\_\+passes\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int A\+C\+G\+::\+G\+L\+State\+::max\+\_\+render\+\_\+passes\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00643_af3d157c3c150974695d135c1dd8651cc}
holds the maximum render pass number this has to be set externally 

Definition at line 1008 of file G\+L\+State.\+hh.

\hypertarget{a00643_af5f8c51d7c934f3957b58d5ac4def123}{\index{A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}!render\+\_\+pass\+\_\+@{render\+\_\+pass\+\_\+}}
\index{render\+\_\+pass\+\_\+@{render\+\_\+pass\+\_\+}!A\+C\+G\+::\+G\+L\+State@{A\+C\+G\+::\+G\+L\+State}}
\subsubsection[{render\+\_\+pass\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int A\+C\+G\+::\+G\+L\+State\+::render\+\_\+pass\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00643_af5f8c51d7c934f3957b58d5ac4def123}
holds the current render pass number (1-\/indexed) this has to be set externally 

Definition at line 1004 of file G\+L\+State.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+G\+L/G\+L\+State.\+hh\item 
A\+C\+G/\+G\+L/G\+L\+State.\+cc\end{DoxyCompactItemize}
