Project

General

Profile

« Previous | Next » 

Revision 667a1ad9

Added by Leszek Koltunski over 7 years ago

improve Postprocessing; new icon; minor things.

View differences:

src/main/java/org/distorted/library/EffectQueuePostprocess.java
42 42

  
43 43
class EffectQueuePostprocess extends EffectQueue
44 44
  {
45
  private static final int BYTES_PER_FLOAT   = 4;
46 45
  private static final int POSITION_DATA_SIZE= 2; // Post Program: size of the position data in elements
47 46
  private static final int TEX_DATA_SIZE     = 2; // Post Program: size of the texture coordinate data in elements.
48 47

  
49
  private static final int NUM_UNIFORMS = 3;
48
  private static final int NUM_UNIFORMS = 4;
50 49
  private static final int NUM_CACHE    = 0;
51 50
  private static final int INDEX = EffectTypes.POSTPROCESS.ordinal();
52 51

  
......
61 60

  
62 61
  static
63 62
    {
64
    int dataLength = 4;
63
    int dataLength      = 4;
64
    int bytes_per_float = 4;
65 65

  
66 66
    float[] positionData= { -0.5f, -0.5f,  -0.5f, 0.5f,  0.5f,-0.5f,  0.5f, 0.5f };
67 67
    float[] textureData = {  0.0f,  0.0f,   0.0f, 1.0f,  1.0f, 0.0f,  1.0f, 1.0f };
68 68

  
69
    mQuadPositions = ByteBuffer.allocateDirect(POSITION_DATA_SIZE*dataLength*BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
69
    mQuadPositions = ByteBuffer.allocateDirect(POSITION_DATA_SIZE*dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer();
70 70
    mQuadPositions.put(positionData).position(0);
71
    mQuadTexture   = ByteBuffer.allocateDirect(TEX_DATA_SIZE     *dataLength*BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
71
    mQuadTexture   = ByteBuffer.allocateDirect(TEX_DATA_SIZE     *dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer();
72 72
    mQuadTexture.put(textureData).position(0);
73 73
    }
74 74

  
......
140 140
        else mInter[0][i] = null;
141 141
        }
142 142

  
143
      if( mInter[1][i]!=null )
144
        {
145
        mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+1, mCurrentDuration[i], step);
146
        }
147

  
148 143
      mCurrentDuration[i] += step;
149 144
      }
150 145
     
......
158 153
    mUniforms[NUM_UNIFORMS*index  ] = mUniforms[NUM_UNIFORMS*(index+1)  ];
159 154
    mUniforms[NUM_UNIFORMS*index+1] = mUniforms[NUM_UNIFORMS*(index+1)+1];
160 155
    mUniforms[NUM_UNIFORMS*index+2] = mUniforms[NUM_UNIFORMS*(index+1)+2];
156
    mUniforms[NUM_UNIFORMS*index+3] = mUniforms[NUM_UNIFORMS*(index+1)+3];
161 157
    }
162 158

  
163 159
///////////////////////////////////////////////////////////////////////////////////////////////////
......
184 180

  
185 181
    if( mNumEffects>0 )
186 182
      {
187
      GLES20.glUniform1iv( mTypeH    ,  mNumEffects, mName    ,0);
188
      GLES20.glUniform4fv( mUniformsH,2*mNumEffects, mUniforms,0);
183
      GLES20.glUniform1iv( mTypeH    ,                  mNumEffects, mName    ,0);
184
      GLES20.glUniform4fv( mUniformsH, (NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
189 185
      }
190 186

  
191 187
    GLES20.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mQuadPositions);

Also available in: Unified diff