\hypertarget{a00562}{\section{A\+C\+G\+:\+:F\+B\+O Class Reference}
\label{a00562}\index{A\+C\+G\+::\+F\+B\+O@{A\+C\+G\+::\+F\+B\+O}}
}


{\ttfamily \#include $<$A\+C$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a01115}{Render\+Texture}
\begin{DoxyCompactList}\small\item\em attached textures \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00562_a52d6858c476464ebbbd275d37f6531dc}{\hyperlink{a00562_a52d6858c476464ebbbd275d37f6531dc}{F\+B\+O} ()}\label{a00562_a52d6858c476464ebbbd275d37f6531dc}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00562_affaea090595400f09ba37ee9d3bcadbe}{\hyperlink{a00562_affaea090595400f09ba37ee9d3bcadbe}{$\sim$\+F\+B\+O} ()}\label{a00562_affaea090595400f09ba37ee9d3bcadbe}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00562_ab4256b7f0f97005a05e8af2a09897cfc}{void \hyperlink{a00562_ab4256b7f0f97005a05e8af2a09897cfc}{init} ()}\label{a00562_ab4256b7f0f97005a05e8af2a09897cfc}

\begin{DoxyCompactList}\small\item\em function to generate the framebuffer object \end{DoxyCompactList}\item 
\hypertarget{a00562_a7397969046758e5b6ffa15722b7a2178}{void \hyperlink{a00562_a7397969046758e5b6ffa15722b7a2178}{del} ()}\label{a00562_a7397969046758e5b6ffa15722b7a2178}

\begin{DoxyCompactList}\small\item\em delete fbo and all internally created render textures \end{DoxyCompactList}\item 
G\+Lsizei \hyperlink{a00562_a24ffe53ca287f1279072a08a7f88388b}{set\+Multisampling} (G\+Lsizei \+\_\+samples, G\+Lboolean \+\_\+fixedsamplelocations=G\+L\+\_\+\+T\+R\+U\+E)
\item 
\hypertarget{a00562_abb9a9a74690cc8b53bb02555f6295fe7}{G\+Lsizei \hyperlink{a00562_abb9a9a74690cc8b53bb02555f6295fe7}{get\+Multisampling\+Count} () const }\label{a00562_abb9a9a74690cc8b53bb02555f6295fe7}

\begin{DoxyCompactList}\small\item\em get number of samples \end{DoxyCompactList}\item 
\hypertarget{a00562_ad5263d260b50c3d0a9c35e0651f6151d}{void \hyperlink{a00562_ad5263d260b50c3d0a9c35e0651f6151d}{attach\+Texture} (G\+Lenum \+\_\+attachment, G\+Luint \+\_\+texture, G\+Luint \+\_\+level=0)}\label{a00562_ad5263d260b50c3d0a9c35e0651f6151d}

\begin{DoxyCompactList}\small\item\em attach a texture of arbitrary dimension (requires Open\+G\+L 3.\+2) \end{DoxyCompactList}\item 
\hypertarget{a00562_aee5d8750fcc7218dab3487dc4a3ab55a}{void \hyperlink{a00562_aee5d8750fcc7218dab3487dc4a3ab55a}{attach\+Texture2\+D} (G\+Lenum \+\_\+attachment, G\+Lsizei \+\_\+width, G\+Lsizei \+\_\+height, G\+Luint \+\_\+internal\+Fmt, G\+Lenum \+\_\+format, G\+Lint \+\_\+wrap\+Mode=G\+L\+\_\+\+C\+L\+A\+M\+P, G\+Lint \+\_\+min\+Filter=G\+L\+\_\+\+N\+E\+A\+R\+E\+S\+T, G\+Lint \+\_\+mag\+Filter=G\+L\+\_\+\+N\+E\+A\+R\+E\+S\+T)}\label{a00562_aee5d8750fcc7218dab3487dc4a3ab55a}

\begin{DoxyCompactList}\small\item\em function to attach a texture to fbo \end{DoxyCompactList}\item 
\hypertarget{a00562_ac0deb2211a762c5b862764ec6f6fdf3e}{void \hyperlink{a00562_ac0deb2211a762c5b862764ec6f6fdf3e}{attach\+Texture2\+D} (G\+Lenum \+\_\+attachment, G\+Luint \+\_\+texture, G\+Lenum \+\_\+target=G\+L\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+2\+D)}\label{a00562_ac0deb2211a762c5b862764ec6f6fdf3e}

\begin{DoxyCompactList}\small\item\em function to attach a texture to fbo \end{DoxyCompactList}\item 
\hypertarget{a00562_afec8577e57408e04b2ec7a2f2bfbe280}{void \hyperlink{a00562_afec8577e57408e04b2ec7a2f2bfbe280}{attach\+Texture2\+D\+Depth} (G\+Lsizei \+\_\+width, G\+Lsizei \+\_\+height, G\+Luint \+\_\+internal\+Fmt=G\+L\+\_\+\+D\+E\+P\+T\+H\+\_\+\+C\+O\+M\+P\+O\+N\+E\+N\+T32, G\+Lenum \+\_\+format=G\+L\+\_\+\+D\+E\+P\+T\+H\+\_\+\+C\+O\+M\+P\+O\+N\+E\+N\+T)}\label{a00562_afec8577e57408e04b2ec7a2f2bfbe280}

\begin{DoxyCompactList}\small\item\em function to attach a depth-\/buffer texture to fbo (using G\+L\+\_\+\+D\+E\+P\+T\+H\+\_\+\+A\+T\+T\+A\+C\+H\+M\+E\+N\+T) \end{DoxyCompactList}\item 
\hypertarget{a00562_a4c3af42bec8994ba6a9f3b98355e8324}{void \hyperlink{a00562_a4c3af42bec8994ba6a9f3b98355e8324}{attach\+Texture2\+D\+Stencil} (G\+Lsizei \+\_\+width, G\+Lsizei \+\_\+height)}\label{a00562_a4c3af42bec8994ba6a9f3b98355e8324}

\begin{DoxyCompactList}\small\item\em function to attach a stencil-\/buffer texture to fbo (texformat = G\+L\+\_\+\+S\+T\+E\+N\+C\+I\+L\+\_\+\+I\+N\+D\+E\+X8) \end{DoxyCompactList}\item 
void \hyperlink{a00562_ac02da5463edf0a255b384bf3ea59af19}{attach\+Texture3\+D} (G\+Lenum \+\_\+attachment, G\+Lsizei \+\_\+width, G\+Lsizei \+\_\+height, G\+Lsizei \+\_\+depth, G\+Luint \+\_\+internal\+Fmt, G\+Lenum \+\_\+format, G\+Lint \+\_\+wrap\+Mode=G\+L\+\_\+\+C\+L\+A\+M\+P, G\+Lint \+\_\+min\+Filter=G\+L\+\_\+\+N\+E\+A\+R\+E\+S\+T, G\+Lint \+\_\+mag\+Filter=G\+L\+\_\+\+N\+E\+A\+R\+E\+S\+T)
\item 
\hypertarget{a00562_a62783d9990c73b69dd89a8283804de5d}{void \hyperlink{a00562_a62783d9990c73b69dd89a8283804de5d}{add\+Depth\+Buffer} (G\+Luint \+\_\+width, G\+Luint \+\_\+height)}\label{a00562_a62783d9990c73b69dd89a8283804de5d}

\begin{DoxyCompactList}\small\item\em function to add a depth renderbuffer to the fbo \end{DoxyCompactList}\item 
\hypertarget{a00562_acbbde3c1dfab8255c7aade893e393565}{void \hyperlink{a00562_acbbde3c1dfab8255c7aade893e393565}{add\+Stencil\+Buffer} (G\+Luint \+\_\+width, G\+Luint \+\_\+height)}\label{a00562_acbbde3c1dfab8255c7aade893e393565}

\begin{DoxyCompactList}\small\item\em function to add a stencil renderbuffer to the fbo \end{DoxyCompactList}\item 
\hypertarget{a00562_aef98b9f3115105b91fbdf4fe85af625a}{void \hyperlink{a00562_aef98b9f3115105b91fbdf4fe85af625a}{add\+Depth\+Stencil\+Buffer} (G\+Luint \+\_\+width, G\+Luint \+\_\+height)}\label{a00562_aef98b9f3115105b91fbdf4fe85af625a}

\begin{DoxyCompactList}\small\item\em add a packed depth24\+\_\+stencil8 renderbuffer \end{DoxyCompactList}\item 
\hypertarget{a00562_acb9b2f3bf2f14c540dfd3372bae6d209}{G\+Luint \hyperlink{a00562_acb9b2f3bf2f14c540dfd3372bae6d209}{get\+Attachment} (G\+Lenum \+\_\+attachment)}\label{a00562_acb9b2f3bf2f14c540dfd3372bae6d209}

\begin{DoxyCompactList}\small\item\em return attached texture id \end{DoxyCompactList}\item 
\hypertarget{a00562_a0aa9c142397d219a0820f009f034eaaf}{G\+Luint \hyperlink{a00562_a0aa9c142397d219a0820f009f034eaaf}{get\+Internal\+Format} (G\+Lenum \+\_\+attachment)}\label{a00562_a0aa9c142397d219a0820f009f034eaaf}

\begin{DoxyCompactList}\small\item\em return internal texture format of attachment \end{DoxyCompactList}\item 
\hypertarget{a00562_aaf48d9758bfc1b6eaeba332b40d6a32e}{G\+Luint \hyperlink{a00562_aaf48d9758bfc1b6eaeba332b40d6a32e}{get\+Fbo\+I\+D} ()}\label{a00562_aaf48d9758bfc1b6eaeba332b40d6a32e}

\begin{DoxyCompactList}\small\item\em return opengl id \end{DoxyCompactList}\item 
\hypertarget{a00562_a02bca0359a2fd432a8bdc7ca3d40fa41}{void \hyperlink{a00562_a02bca0359a2fd432a8bdc7ca3d40fa41}{resize} (G\+Lsizei \+\_\+width, G\+Lsizei \+\_\+height, bool \+\_\+force\+Resize=false)}\label{a00562_a02bca0359a2fd432a8bdc7ca3d40fa41}

\begin{DoxyCompactList}\small\item\em resize function (if textures created by this class) \end{DoxyCompactList}\item 
\hypertarget{a00562_a76cab5caf64a4ceb05bfc7612be21dc3}{G\+Lsizei \hyperlink{a00562_a76cab5caf64a4ceb05bfc7612be21dc3}{width} () const }\label{a00562_a76cab5caf64a4ceb05bfc7612be21dc3}

\begin{DoxyCompactList}\small\item\em get width of fbo texture \end{DoxyCompactList}\item 
\hypertarget{a00562_a809040e0319abc152d920c9f202a96b2}{G\+Lsizei \hyperlink{a00562_a809040e0319abc152d920c9f202a96b2}{height} () const }\label{a00562_a809040e0319abc152d920c9f202a96b2}

\begin{DoxyCompactList}\small\item\em get height of fbo texture \end{DoxyCompactList}\item 
\hypertarget{a00562_a9cbd2ca01bf11380b55b72c4ab5340a2}{\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \hyperlink{a00562_a9cbd2ca01bf11380b55b72c4ab5340a2}{size} () const }\label{a00562_a9cbd2ca01bf11380b55b72c4ab5340a2}

\begin{DoxyCompactList}\small\item\em get width and height of fbo texture \end{DoxyCompactList}\item 
\hypertarget{a00562_a286d9e8e30434040357e71ffbc51a04b}{bool \hyperlink{a00562_a286d9e8e30434040357e71ffbc51a04b}{bind} ()}\label{a00562_a286d9e8e30434040357e71ffbc51a04b}

\begin{DoxyCompactList}\small\item\em bind the fbo and sets it as rendertarget \end{DoxyCompactList}\item 
\hypertarget{a00562_aa93b3a9ee52177e656298f092faa079e}{void \hyperlink{a00562_aa93b3a9ee52177e656298f092faa079e}{unbind} ()}\label{a00562_aa93b3a9ee52177e656298f092faa079e}

\begin{DoxyCompactList}\small\item\em unbind fbo, go to normal rendering mode \end{DoxyCompactList}\item 
\hypertarget{a00562_afa31c68d9bc9056ab33244a065241730}{bool \hyperlink{a00562_afa31c68d9bc9056ab33244a065241730}{check\+Framebuffer\+Status} ()}\label{a00562_afa31c68d9bc9056ab33244a065241730}

\begin{DoxyCompactList}\small\item\em function to check the framebuffer status \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00562_a4dc57c8f4eca2ef5b4949195b34574b3}{typedef std\+::map$<$ G\+Lenum, \\*
\hyperlink{a01115}{Render\+Texture} $>$ {\bfseries Attachment\+List}}\label{a00562_a4dc57c8f4eca2ef5b4949195b34574b3}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00562_a2396f548f16bdec4623998222cd016e9}{G\+Luint \hyperlink{a00562_a2396f548f16bdec4623998222cd016e9}{fbo\+\_\+}}\label{a00562_a2396f548f16bdec4623998222cd016e9}

\begin{DoxyCompactList}\small\item\em handle of frame buffer object \end{DoxyCompactList}\item 
\hypertarget{a00562_ac192e20b6443399956631ad01509f151}{G\+Luint \hyperlink{a00562_ac192e20b6443399956631ad01509f151}{depthbuffer\+\_\+}}\label{a00562_ac192e20b6443399956631ad01509f151}

\begin{DoxyCompactList}\small\item\em depthbuffer \end{DoxyCompactList}\item 
\hypertarget{a00562_a9f23e7f6d0acc2dbe6bd6e134226a153}{G\+Luint \hyperlink{a00562_a9f23e7f6d0acc2dbe6bd6e134226a153}{stencilbuffer\+\_\+}}\label{a00562_a9f23e7f6d0acc2dbe6bd6e134226a153}

\begin{DoxyCompactList}\small\item\em stencilbuffer \end{DoxyCompactList}\item 
\hypertarget{a00562_a523d231ffb128350dbe8750ce7806e4a}{Attachment\+List {\bfseries attachments\+\_\+}}\label{a00562_a523d231ffb128350dbe8750ce7806e4a}

\item 
\hypertarget{a00562_ac900e11aec54df6fd58f4c034cf4a9da}{G\+Lsizei \hyperlink{a00562_ac900e11aec54df6fd58f4c034cf4a9da}{width\+\_\+}}\label{a00562_ac900e11aec54df6fd58f4c034cf4a9da}

\begin{DoxyCompactList}\small\item\em width and height of render textures \end{DoxyCompactList}\item 
\hypertarget{a00562_a773d36e3653f69bc58faffcdaaa1b589}{G\+Lsizei {\bfseries height\+\_\+}}\label{a00562_a773d36e3653f69bc58faffcdaaa1b589}

\item 
\hypertarget{a00562_a0327bab62eddf6d344b0de4a3b9304f2}{G\+Lsizei \hyperlink{a00562_a0327bab62eddf6d344b0de4a3b9304f2}{samples\+\_\+}}\label{a00562_a0327bab62eddf6d344b0de4a3b9304f2}

\begin{DoxyCompactList}\small\item\em sample count if multisampling \end{DoxyCompactList}\item 
\hypertarget{a00562_a335818d9d70bf23f4187de48e0993a1d}{G\+Lboolean \hyperlink{a00562_a335818d9d70bf23f4187de48e0993a1d}{fixedsamplelocation\+\_\+}}\label{a00562_a335818d9d70bf23f4187de48e0993a1d}

\begin{DoxyCompactList}\small\item\em enable fixed sample location if multisampling \end{DoxyCompactList}\item 
\hypertarget{a00562_a5114d40b29c25fc40196a5cb199ee93d}{G\+Luint \hyperlink{a00562_a5114d40b29c25fc40196a5cb199ee93d}{prev\+Fbo\+\_\+}}\label{a00562_a5114d40b29c25fc40196a5cb199ee93d}

\begin{DoxyCompactList}\small\item\em handle of previously bound fbo \end{DoxyCompactList}\item 
\hypertarget{a00562_a7e786ea0efc38a05e8e36ed98798a932}{G\+Luint {\bfseries prev\+Draw\+Buffer\+\_\+}}\label{a00562_a7e786ea0efc38a05e8e36ed98798a932}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
/.../\+F\+B\+O.hh$>$

Brief Description.

A more elaborate description follows. 

Definition at line 83 of file F\+B\+O.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00562_ac02da5463edf0a255b384bf3ea59af19}{\index{A\+C\+G\+::\+F\+B\+O@{A\+C\+G\+::\+F\+B\+O}!attach\+Texture3\+D@{attach\+Texture3\+D}}
\index{attach\+Texture3\+D@{attach\+Texture3\+D}!A\+C\+G\+::\+F\+B\+O@{A\+C\+G\+::\+F\+B\+O}}
\subsubsection[{attach\+Texture3\+D}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+F\+B\+O\+::attach\+Texture3\+D (
\begin{DoxyParamCaption}
\item[{G\+Lenum}]{\+\_\+attachment, }
\item[{G\+Lsizei}]{\+\_\+width, }
\item[{G\+Lsizei}]{\+\_\+height, }
\item[{G\+Lsizei}]{\+\_\+depth, }
\item[{G\+Luint}]{\+\_\+internal\+Fmt, }
\item[{G\+Lenum}]{\+\_\+format, }
\item[{G\+Lint}]{\+\_\+wrap\+Mode = {\ttfamily GL\+\_\+CLAMP}, }
\item[{G\+Lint}]{\+\_\+min\+Filter = {\ttfamily GL\+\_\+NEAREST}, }
\item[{G\+Lint}]{\+\_\+mag\+Filter = {\ttfamily GL\+\_\+NEAREST}}
\end{DoxyParamCaption}
)}}\label{a00562_ac02da5463edf0a255b384bf3ea59af19}
attach a 3\+D texture for render to volume (requires Open\+G\+L 3.\+2) binds all slices at once, target slice has to be chosen via gl\+\_\+\+Layer in geometry shader 

Definition at line 279 of file F\+B\+O.\+cc.

\hypertarget{a00562_a24ffe53ca287f1279072a08a7f88388b}{\index{A\+C\+G\+::\+F\+B\+O@{A\+C\+G\+::\+F\+B\+O}!set\+Multisampling@{set\+Multisampling}}
\index{set\+Multisampling@{set\+Multisampling}!A\+C\+G\+::\+F\+B\+O@{A\+C\+G\+::\+F\+B\+O}}
\subsubsection[{set\+Multisampling}]{\setlength{\rightskip}{0pt plus 5cm}G\+Lsizei A\+C\+G\+::\+F\+B\+O\+::set\+Multisampling (
\begin{DoxyParamCaption}
\item[{G\+Lsizei}]{\+\_\+samples, }
\item[{G\+Lboolean}]{\+\_\+fixedsamplelocations = {\ttfamily GL\+\_\+TRUE}}
\end{DoxyParamCaption}
)}}\label{a00562_a24ffe53ca287f1279072a08a7f88388b}
enable/disable multisampling returns the M\+S\+A\+A sample count of the fbo, which might not be equal to the requested \+\_\+samples count but you'll get something close 

Definition at line 602 of file F\+B\+O.\+cc.



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