26 #if defined(CG_SIFTGPU_ENABLED)
32 class FragmentProgram;
41 static CGcontext _Context;
42 static CGprofile _FProfile;
44 operator CGprogram (){
return _programID;}
47 int IsValidProgram(){
return _programID && _valid;}
48 static void ErrorCallback();
49 static void InitContext();
50 static void DestroyContext();
51 ProgramCG(
const char * code,
const char** cg_compile_args=
NULL, CGprofile
profile = ProgramCG::_FProfile);
59 CGparameter _param_dog_texu;
60 CGparameter _param_dog_texd;
61 CGparameter _param_genlist_start_tex0;
62 CGparameter _param_ftex_width;
63 CGparameter _param_genlist_step_tex;
64 CGparameter _param_genlist_step_tex0;
65 CGparameter _param_genvbo_size;
66 CGparameter _param_orientation_gtex;
67 CGparameter _param_orientation_stex;
68 CGparameter _param_orientation_size;
69 CGparameter _param_descriptor_gtex;
70 CGparameter _param_descriptor_size;
71 CGparameter _param_descriptor_dsize;
72 CGparameter _param_margin_copy_truncate;
73 CGparameter _param_genlist_init_bbox;
76 void LoadDescriptorShaderF2();
77 static void WriteOrientationCodeToStream(ostream& out);
85 static ProgramCG* LoadGenListStepShader(
int start,
int step);
86 static ProgramCG* LoadGenListStepShaderV2(
int start,
int step);
95 virtual int LoadKeypointShaderMR(
float threshold,
float edgeThreshold);
97 virtual ~ShaderBagCG(){}
114 CGparameter _param_dog_texu;
115 CGparameter _param_dog_texd;
116 CGparameter _param_margin_copy_truncate;
117 CGparameter _param_grad_pass_texp;
118 CGparameter _param_genlist_init_bbox;
119 CGparameter _param_genlist_start_tex0;
120 CGparameter _param_ftex_width;
121 CGparameter _param_genlist_step_tex;
122 CGparameter _param_genlist_step_tex0;
123 CGparameter _param_genlist_end_ktex;
124 CGparameter _param_genvbo_size;
125 CGparameter _param_orientation_gtex;
126 CGparameter _param_orientation_otex;
127 CGparameter _param_orientation_size;
128 CGparameter _param_descriptor_gtex;
129 CGparameter _param_descriptor_otex;
130 CGparameter _param_descriptor_size;
131 CGparameter _param_descriptor_dsize;
135 virtual ~ShaderBagPKCG(){}
137 virtual void LoadDescriptorShaderF2();
140 virtual void LoadGenListShaderV2(
int ndoglev,
int nlev);
CloudViewerScene::LightingProfile profile
virtual void * GetProgramID()=0
virtual int UseProgram()=0
virtual void LoadGenListShader(int ndoglev, int nlev)=0
virtual void LoadFixedShaders()=0
virtual void LoadOrientationShader()=0
virtual void SetGenListStepParam(int tex, int tex0)=0
virtual void SetSimpleOrientationInput(int oTex, float sigma, float sigma_step)
virtual void SetGenVBOParam(float width, float fwidth, float size)=0
virtual void LoadDescriptorShader()
virtual void SetGradPassParam(int texP=0)
virtual void SetGenListInitParam(int w, int h)
virtual void SetMarginCopyParam(int xmax, int ymax)
virtual void LoadKeypointShader(float threshold, float edgeTrheshold)=0
virtual void SetDogTexParam(int texU, int texD)=0
virtual void SetFeatureOrientationParam(int gtex, int width, int height, float sigma, int stex, float step)
virtual void SetGenListEndParam(int ktex)
virtual void UnloadProgram()=0
virtual void SetGenListStartParam(float width, int tex0)=0
virtual void LoadDisplayShaders()=0
virtual void SetFeatureDescirptorParam(int gtex, int otex, float dwidth, float fwidth, float width, float height, float sigma)