\hypertarget{a01005}{\section{Post\+Processor\+Interface Class Reference}
\label{a01005}\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}}
}


Interface to add global image post processor functions from within plugins.  




{\ttfamily \#include $<$Open\+Flipper/\+Base\+Plugin/\+Post\+Processor\+Interface.\+hh$>$}

Inheritance diagram for Post\+Processor\+Interface\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.061611cm]{a01005}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a01005_a553f8f385f3432e751c9d5cfcdea9c5b}{post\+Process} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, const std\+::vector$<$ const \hyperlink{a01004}{Post\+Processor\+Input} $\ast$ $>$ \&\+\_\+input, const \hyperlink{a01007}{Post\+Processor\+Output} \&\+\_\+output)=0
\begin{DoxyCompactList}\small\item\em post processor function \end{DoxyCompactList}\item 
virtual Q\+String \hyperlink{a01005_a925fe1d93e5a41c63f92a9c5f68ff336}{post\+Processor\+Name} ()=0
\begin{DoxyCompactList}\small\item\em announce name for the post\+Processor function \end{DoxyCompactList}\item 
virtual bool \hyperlink{a01005_a9dc30b99397ea9790d592d2294d720c1}{is\+Stereo\+Processor} ()
\begin{DoxyCompactList}\small\item\em does post processor resolve stereo buffer \end{DoxyCompactList}\item 
\hypertarget{a01005_a9e488b0f685a68b0190dd77dc98d8b0c}{virtual void {\bfseries get\+Format\+Desc} (\hyperlink{a01001}{Post\+Processor\+Format\+Desc} $\ast$\+\_\+desc)}\label{a01005_a9e488b0f685a68b0190dd77dc98d8b0c}

\item 
virtual Q\+Action $\ast$ \hyperlink{a01005_a7260e730f6a8f35eca81b48bab34fd9e}{options\+Action} ()
\begin{DoxyCompactList}\small\item\em Return options menu. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01005_af0ab398738e83cc008a4abf545bd521a}{virtual \hyperlink{a01005_af0ab398738e83cc008a4abf545bd521a}{$\sim$\+Post\+Processor\+Interface} ()}\label{a01005_af0ab398738e83cc008a4abf545bd521a}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
virtual Q\+String \hyperlink{a01005_aec6002a54a0ecfaff87b97cbb212dcb6}{check\+Open\+G\+L} ()=0
\begin{DoxyCompactList}\small\item\em Check Open\+G\+L capabilities. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Interface to add global image post processor functions from within plugins. 

\hyperlink{postProcessorInterfacePage}{Detailed description} ~\newline
~\newline
 Interface for adding and controlling global image post processor functions from a plugin.~\newline


Definition at line 157 of file Post\+Processor\+Interface.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01005_aec6002a54a0ecfaff87b97cbb212dcb6}{\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!check\+Open\+G\+L@{check\+Open\+G\+L}}
\index{check\+Open\+G\+L@{check\+Open\+G\+L}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection[{check\+Open\+G\+L}]{\setlength{\rightskip}{0pt plus 5cm}virtual Q\+String Post\+Processor\+Interface\+::check\+Open\+G\+L (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [pure virtual]}, {\ttfamily [slot]}}}\label{a01005_aec6002a54a0ecfaff87b97cbb212dcb6}


Check Open\+G\+L capabilities. 

This function has to be implemented and checks, if all required Open\+G\+L extensions are available. If this is not the case, the plugin will be refused by the core to avoid crashes due to insufficient Open\+G\+L support.

You can get the version information in the following way\+:


\begin{DoxyCode}
\textcolor{comment}{// Check version}
\textcolor{keywordflow}{if} ( ! \hyperlink{a03336_a858aef4042cb31350b6732e452d4206b}{ACG::openGLVersion}(2, 1) )
  \textcolor{keywordflow}{return} QString(\textcolor{stringliteral}{"Insufficient OpenGL Version! OpenGL 2.1 or higher required"});

\textcolor{comment}{//Get OpenGL extensions}
QString glExtensions = QString((\textcolor{keyword}{const} \textcolor{keywordtype}{char}*)glGetString(GL\_EXTENSIONS));

\textcolor{comment}{// Collect missing extension}
QString missing = \textcolor{stringliteral}{""};

\textcolor{keywordflow}{if} ( !glExtensions.contains(\textcolor{stringliteral}{"GL\_ARB\_vertex\_buffer\_object"}) )
  missing += \textcolor{stringliteral}{"Missing Extension GL\_ARB\_vertex\_buffer\_object\(\backslash\)n"};

\textcolor{keywordflow}{if} ( !glExtensions.contains(\textcolor{stringliteral}{"GL\_ARB\_vertex\_program"}) )
  missing += \textcolor{stringliteral}{"Missing Extension GL\_ARB\_vertex\_program\(\backslash\)n"};

\textcolor{keywordflow}{return} missing;
\end{DoxyCode}


\begin{DoxyReturn}{Returns}
Return an empty string if everything is fine, otherwise return, what features are missing. 
\end{DoxyReturn}
\hypertarget{a01005_a9dc30b99397ea9790d592d2294d720c1}{\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!is\+Stereo\+Processor@{is\+Stereo\+Processor}}
\index{is\+Stereo\+Processor@{is\+Stereo\+Processor}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection[{is\+Stereo\+Processor}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Post\+Processor\+Interface\+::is\+Stereo\+Processor (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a01005_a9dc30b99397ea9790d592d2294d720c1}


does post processor resolve stereo buffer 

The post processor gets the left and right image as input and composes a combined stereo output.

\begin{DoxyReturn}{Returns}
true if implementation resolves stereo buffer, false otherwise 
\end{DoxyReturn}


Definition at line 184 of file Post\+Processor\+Interface.\+hh.

\hypertarget{a01005_a7260e730f6a8f35eca81b48bab34fd9e}{\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!options\+Action@{options\+Action}}
\index{options\+Action@{options\+Action}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection[{options\+Action}]{\setlength{\rightskip}{0pt plus 5cm}virtual Q\+Action$\ast$ Post\+Processor\+Interface\+::options\+Action (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a01005_a7260e730f6a8f35eca81b48bab34fd9e}


Return options menu. 

If you want an options \hyperlink{a00802}{Menu} or menu entry, you can return your action here. It will be shown on top of the post processors list in the options menu.

\begin{DoxyReturn}{Returns}
Action for a menu or menu entry 
\end{DoxyReturn}


Definition at line 205 of file Post\+Processor\+Interface.\+hh.

\hypertarget{a01005_a553f8f385f3432e751c9d5cfcdea9c5b}{\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!post\+Process@{post\+Process}}
\index{post\+Process@{post\+Process}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection[{post\+Process}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Post\+Processor\+Interface\+::post\+Process (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+G\+L\+State} $\ast$}]{\+\_\+gl\+State, }
\item[{const std\+::vector$<$ const {\bf Post\+Processor\+Input} $\ast$ $>$ \&}]{\+\_\+input, }
\item[{const {\bf Post\+Processor\+Output} \&}]{\+\_\+output}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}}\label{a01005_a553f8f385f3432e751c9d5cfcdea9c5b}


post processor function 

\hypertarget{a01005_a925fe1d93e5a41c63f92a9c5f68ff336}{\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!post\+Processor\+Name@{post\+Processor\+Name}}
\index{post\+Processor\+Name@{post\+Processor\+Name}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection[{post\+Processor\+Name}]{\setlength{\rightskip}{0pt plus 5cm}virtual Q\+String Post\+Processor\+Interface\+::post\+Processor\+Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}}\label{a01005_a925fe1d93e5a41c63f92a9c5f68ff336}


announce name for the post\+Processor function 

\begin{DoxyReturn}{Returns}
The name of the post processor 
\end{DoxyReturn}


Implemented in \hyperlink{a01008_a6f6b16c0549faf64822afc3ba6ad1735}{Post\+Processor\+Philips\+Stereo\+Plugin}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+Base\+Plugin/\hyperlink{a02458}{Post\+Processor\+Interface.\+hh}\end{DoxyCompactItemize}
