Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00023
00024
00025
00026 #ifndef _SIFT_SHADER_MAN_H
00027 #define _SIFT_SHADER_MAN_H
00028
00029
00030 #include "ProgramGPU.h"
00031 #include "ProgramGLSL.h"
00033
00034
00035
00037 class SiftParam;
00038 class FilterGLSL;
00039
00040 class ShaderMan
00041 {
00042 public:
00043 static ShaderBag* s_bag;
00044 public:
00045 static void SelectInitialSmoothingFilter(int octave_min, SiftParam¶m);
00046 static void UseShaderMarginCopy(int xmax, int ymax);
00047 static void UseShaderOrientation(int gtex, int width, int height, float sigma, int auxtex, float step, int keypoint_list);
00048 static void UseShaderDescriptor(int gtex, int otex, int dwidth, int fwidth, int width, int height, float sigma);
00049 static void UseShaderSimpleOrientation(int oTex, float sigma, float sigma_step);
00050 static void UseShaderCopyKeypoint();
00051 static void UseShaderGenVBO( float width, float fwidth, float size);
00052 static void UseShaderDebug();
00053 static void UseShaderZeroPass();
00054 static void UseShaderGenListStart(float fw, int tex0);
00055 static void UseShaderGenListStep(int tex, int tex0);
00056 static void UseShaderGenListEnd(int ktex);
00057 static void UseShaderGenListHisto();
00058 static void UseShaderGenListInit(int w, int h, int tight = 1);
00059 static void UseShaderKeypoint(int texU, int texD);
00060 static void UseShaderGradientPass(int texP = 0);
00061 static void UseShaderDisplayKeypoints();
00062 static void UseShaderDisplayGrad();
00063 static void UseShaderRGB2Gray();
00064 static void UseShaderDisplayDOG();
00065 static void UseShaderDisplayGaussian();
00067 static void FilterInitialImage(GLTexImage* tex, GLTexImage* buf);
00068 static void FilterSampledImage(GLTexImage* tex, GLTexImage* buf);
00069 static void FilterImage(FilterProgram* filter, GLTexImage *dst, GLTexImage *src, GLTexImage*tmp);
00070 static void TextureCopy(GLTexImage*dst, GLTexImage*src);
00071 static void TextureDownSample(GLTexImage* dst, GLTexImage*src, int scale = 2);
00072 static void TextureUpSample(GLTexImage* dst, GLTexImage*src, int scale);
00074 static void InitShaderMan(SiftParam¶m);
00075 static void DestroyShaders();
00076 static int HaveShaderMan(){return s_bag != NULL;}
00077 static void UnloadProgram();
00078 };
00079
00080 #endif