18 #ifndef PIC_GL_FILTERING_FILTER_1D_HPP 19 #define PIC_GL_FILTERING_FILTER_1D_HPP 21 #include "../../base.hpp" 23 #include "../../util/std_util.hpp" 25 #include "../../gl/filtering/filter.hpp" 127 case GL_TEXTURE_2D: {
128 dirs[direction % 2] = 1;
131 case GL_TEXTURE_2D_ARRAY: {
132 dirs[direction % 3] = 1;
135 case GL_TEXTURE_3D: {
136 dirs[direction % 3] = 1;
144 if(
target == GL_TEXTURE_2D) {
145 dirs[ pass % 2 ] = 1;
146 dirs[(pass + 1) % 2 ] = 0;
148 if(
target == GL_TEXTURE_3D ||
target == GL_TEXTURE_2D_ARRAY) {
149 dirs[ pass % 3 ] = 1;
150 dirs[(pass + 1) % 3 ] = 0;
151 dirs[(pass + 2) % 3 ] = 0;
167 if(
target == GL_TEXTURE_3D ||
target == GL_TEXTURE_2D_ARRAY) {
184 if(imgIn[0] == NULL || imgIn.size() > 1) {
188 int w = imgIn[0]->
width;
189 int h = imgIn[0]->height;
190 int f = imgIn[0]->frames;
193 imgOut =
new ImageGL(f, w, h, imgIn[0]->channels,
IMG_GPU, imgIn[0]->getTarget());
205 glActiveTexture(GL_TEXTURE0);
209 glActiveTexture(GL_TEXTURE1);
213 glViewport(0, 0, (GLsizei)w, (GLsizei)h);
222 for(
int z = 0; z < f; z++) {
237 glActiveTexture(GL_TEXTURE1);
241 glActiveTexture(GL_TEXTURE0);
~FilterGL1D()
Definition: filter_1d.hpp:61
void changePass(int pass, int tPass)
changePass
TechniqueGL technique
Definition: display.hpp:45
The Fbo class.
Definition: display.hpp:32
The FilterGL1D class.
Definition: filter_1d.hpp:32
FilterGL1D(int direction, GLenum target)
FilterGL1D.
bool create(int width, int height, bool bDepth)
create
Definition: display.hpp:207
void bindTexture()
bindTexture
void bindTexture()
bindTexture
Definition: image.hpp:981
void bind()
bind
Definition: display.hpp:189
void unbindSimple()
unbindSimple
Definition: display.hpp:120
GLenum target
Definition: display.hpp:47
int slice
Definition: filter_1d.hpp:37
virtual void FragmentShader()
FragmentShader.
Definition: filter_1d.hpp:47
The ImageGL class.
Definition: image.hpp:42
GLuint getTexture() const
getTexture
Definition: display.hpp:369
ImageGL * weights
Definition: filter_1d.hpp:35
Fbo * fbo
Definition: display.hpp:39
QuadGL * quad
Definition: display.hpp:42
The FilterGL class.
Definition: filter.hpp:35
void attachColorBuffer2(GLuint tex, GLenum target, int slice)
attachColorBuffer2
Definition: display.hpp:402
ImageGL * Process(ImageGLVec imgIn, ImageGL *imgOut)
Process.
void unBindTexture()
unBindTexture
void Render()
Render draws a quad on screen.
Definition: display.hpp:140
The FilterGL class.
Definition: display.hpp:35
#define PIC_INLINE
Definition: base.hpp:33
The ImageGL class.
Definition: display.hpp:42
virtual void setUniformAux()
setUniformAux
Definition: filter_1d.hpp:76
int width
Definition: filter_radial_basis_function.hpp:80
bool initStandard(std::string version_number, std::string vertex_shader_source, std::string fragment_shader_source, std::string name)
initStandard
Definition: display.hpp:114
int dirs[3]
Definition: filter_1d.hpp:37
void setUniform()
setUniform
void unbind()
unbind
Definition: display.hpp:197
void setSlice(int slice)
setSlice
Definition: filter_1d.hpp:90
void unBindTexture()
unBindTexture
Definition: image.hpp:986
std::string vertex_source
Definition: display.hpp:57
Definition: bilateral_separation.hpp:25
void setSlice2(int slice)
setSlice2
Definition: filter_1d.hpp:100
virtual void initShaders()
initShaders
std::vector< ImageGL * > ImageGLVec
ImageGLVec an std::vector of pic::ImageGL.
Definition: display.hpp:32
std::string fragment_source
Definition: display.hpp:57
void bindSimple()
bindSimple
Definition: display.hpp:112
std::vector< ImageGL * > ImageGLVec
ImageGLVec an std::vector of pic::ImageGL.
Definition: image_vec.hpp:32
void release()
release
Definition: display.hpp:85
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236