\hypertarget{classPostProcessorInterface}{}\section{Post\+Processor\+Interface Class Reference}
\label{classPostProcessorInterface}\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]{classPostProcessorInterface}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classPostProcessorInterface_ad1955f63edf586697e0c47acf16ae499}{post\+Process} (\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, const std\+::vector$<$ const \hyperlink{structPostProcessorInput}{Post\+Processor\+Input} $\ast$$>$ \&\+\_\+input, const \hyperlink{structPostProcessorOutput}{Post\+Processor\+Output} \&\+\_\+output)=0
\begin{DoxyCompactList}\small\item\em post processor function \end{DoxyCompactList}\item 
virtual Q\+String \hyperlink{classPostProcessorInterface_a925fe1d93e5a41c63f92a9c5f68ff336}{post\+Processor\+Name} ()=0
\begin{DoxyCompactList}\small\item\em announce name for the post\+Processor function \end{DoxyCompactList}\item 
virtual bool \hyperlink{classPostProcessorInterface_a9dc30b99397ea9790d592d2294d720c1}{is\+Stereo\+Processor} ()
\begin{DoxyCompactList}\small\item\em does post processor resolve stereo buffer \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classPostProcessorInterface_a9e488b0f685a68b0190dd77dc98d8b0c}\label{classPostProcessorInterface_a9e488b0f685a68b0190dd77dc98d8b0c}} 
virtual void {\bfseries get\+Format\+Desc} (\hyperlink{structPostProcessorFormatDesc}{Post\+Processor\+Format\+Desc} $\ast$\+\_\+desc)
\item 
virtual Q\+Action $\ast$ \hyperlink{classPostProcessorInterface_a7260e730f6a8f35eca81b48bab34fd9e}{options\+Action} ()
\begin{DoxyCompactList}\small\item\em Return options menu. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classPostProcessorInterface_af0ab398738e83cc008a4abf545bd521a}\label{classPostProcessorInterface_af0ab398738e83cc008a4abf545bd521a}} 
virtual \hyperlink{classPostProcessorInterface_af0ab398738e83cc008a4abf545bd521a}{$\sim$\+Post\+Processor\+Interface} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
virtual Q\+String \hyperlink{classPostProcessorInterface_aec6002a54a0ecfaff87b97cbb212dcb6}{check\+Open\+GL} ()=0
\begin{DoxyCompactList}\small\item\em Check Open\+GL 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 147 of file Post\+Processor\+Interface.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classPostProcessorInterface_aec6002a54a0ecfaff87b97cbb212dcb6}\label{classPostProcessorInterface_aec6002a54a0ecfaff87b97cbb212dcb6}} 
\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!check\+Open\+GL@{check\+Open\+GL}}
\index{check\+Open\+GL@{check\+Open\+GL}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection{\texorpdfstring{check\+Open\+GL}{checkOpenGL}}
{\footnotesize\ttfamily virtual Q\+String Post\+Processor\+Interface\+::check\+Open\+GL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [pure virtual]}, {\ttfamily [slot]}}



Check Open\+GL capabilities. 

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

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


\begin{DoxyCode}
\textcolor{comment}{// Check version}
\textcolor{keywordflow}{if} ( ! \hyperlink{namespaceACG_a5ce0d1060a927a9f2e27ad5020f40be9}{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}
\mbox{\Hypertarget{classPostProcessorInterface_a9dc30b99397ea9790d592d2294d720c1}\label{classPostProcessorInterface_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{\texorpdfstring{is\+Stereo\+Processor}{isStereoProcessor}}
{\footnotesize\ttfamily virtual bool Post\+Processor\+Interface\+::is\+Stereo\+Processor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



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 174 of file Post\+Processor\+Interface.\+hh.

\mbox{\Hypertarget{classPostProcessorInterface_a7260e730f6a8f35eca81b48bab34fd9e}\label{classPostProcessorInterface_a7260e730f6a8f35eca81b48bab34fd9e}} 
\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!options\+Action@{options\+Action}}
\index{options\+Action@{options\+Action}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection{\texorpdfstring{options\+Action}{optionsAction}}
{\footnotesize\ttfamily virtual Q\+Action$\ast$ Post\+Processor\+Interface\+::options\+Action (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}



Return options menu. 

If you want an options \hyperlink{classMenu}{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 195 of file Post\+Processor\+Interface.\+hh.

\mbox{\Hypertarget{classPostProcessorInterface_ad1955f63edf586697e0c47acf16ae499}\label{classPostProcessorInterface_ad1955f63edf586697e0c47acf16ae499}} 
\index{Post\+Processor\+Interface@{Post\+Processor\+Interface}!post\+Process@{post\+Process}}
\index{post\+Process@{post\+Process}!Post\+Processor\+Interface@{Post\+Processor\+Interface}}
\subsubsection{\texorpdfstring{post\+Process}{postProcess}}
{\footnotesize\ttfamily virtual void Post\+Processor\+Interface\+::post\+Process (\begin{DoxyParamCaption}\item[{\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} $\ast$}]{\+\_\+gl\+State,  }\item[{const std\+::vector$<$ const \hyperlink{structPostProcessorInput}{Post\+Processor\+Input} $\ast$$>$ \&}]{\+\_\+input,  }\item[{const \hyperlink{structPostProcessorOutput}{Post\+Processor\+Output} \&}]{\+\_\+output }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}



post processor function 

\mbox{\Hypertarget{classPostProcessorInterface_a925fe1d93e5a41c63f92a9c5f68ff336}\label{classPostProcessorInterface_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{\texorpdfstring{post\+Processor\+Name}{postProcessorName}}
{\footnotesize\ttfamily virtual Q\+String Post\+Processor\+Interface\+::post\+Processor\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}, {\ttfamily [slot]}}



announce name for the post\+Processor function 

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


Implemented in \hyperlink{classPostProcessorPhilipsStereoPlugin_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{PostProcessorInterface_8hh}{Post\+Processor\+Interface.\+hh}\end{DoxyCompactItemize}
