Project

General

Profile

« Previous | Next » 

Revision 2b942cd0

Added by Leszek Koltunski over 7 years ago

Naive implementation of blur works now!

View differences:

src/main/java/org/distorted/library/DistortedEffects.java
146 146
      }
147 147
    else
148 148
      {
149
      mBufferFBO.resizeFast(df.mWidth, df.mHeight);
150
      mBufferFBO.setAsOutput();
151

  
152
      mM.send(mBufferFBO,halfInputW,halfInputH,halfZ);
153
      mV.send(halfInputW,halfInputH,halfZ);
154
      mF.send(halfInputW,halfInputH);
155

  
156
      mesh.draw();
157

  
158
      GLES20.glUseProgram(Distorted.postProgramH);
159
      GLES20.glViewport(0, 0, df.mWidth, df.mHeight);
160
      mBufferFBO.setAsInput();
161
      df.setAsOutput();
162
      mP.send(df,halfInputW,halfInputH);
163

  
164
      GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mQuadPositions);
165
      GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[1], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mQuadTexture);
166
      GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
149
      if( mV.mNumEffects>0 || mP.mNumEffects>0 )
150
        {
151
        mBufferFBO.resizeFast(df.mWidth, df.mHeight);
152
        mBufferFBO.setAsOutput();
153

  
154
        mM.send(mBufferFBO,halfInputW,halfInputH,halfZ);
155
        mV.send(halfInputW,halfInputH,halfZ);
156
        mF.send(halfInputW,halfInputH);
157

  
158
        mesh.draw();
159

  
160
        GLES20.glUseProgram(Distorted.postProgramH);
161
        GLES20.glViewport(0, 0, df.mWidth, df.mHeight);
162
        mBufferFBO.setAsInput();
163
        df.setAsOutput();
164
        mP.send(df);
165

  
166
        GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mQuadPositions);
167
        GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[1], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mQuadTexture);
168
        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
169
        }
170
      else
171
        {
172
        GLES20.glUseProgram(Distorted.postProgramH);
173
        GLES20.glViewport(0, 0, df.mWidth, df.mHeight);
174
        mP.send(df);
175

  
176
        GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mQuadPositions);
177
        GLES20.glVertexAttribPointer(Distorted.mPostProgramAttributes[1], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mQuadTexture);
178
        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
179
        }
167 180
      }
168 181
    }
169 182

  
......
176 189
    EffectQueueMatrix.sendZero(df,halfInputW,halfInputH,halfInputW*mesh.zFactor);
177 190
    EffectQueueVertex.sendZero();
178 191
    EffectQueueFragment.sendZero();
179
    EffectQueuePostprocess.sendZero(df,2*halfInputW,2*halfInputH);
192
    EffectQueuePostprocess.sendZero(df);
180 193

  
181 194
    mesh.draw();
182 195
    }

Also available in: Unified diff