Project

General

Profile

« Previous | Next » 

Revision 96e3b88a

Added by Leszek Koltunski over 3 years ago

Introducing UBO to Effect Queues: step 1.

View differences:

src/main/java/org/distorted/library/effectqueue/EffectQueueVertex.java
32 32
 * @y.exclude
33 33
 */
34 34
public class EffectQueueVertex extends EffectQueue
35
  { 
36
  private static final int NUM_UNIFORMS = VertexEffect.NUM_UNIFORMS;
35
  {
36
  private static final int NUM_FLOAT_UNIFORMS = VertexEffect.NUM_FLOAT_UNIFORMS;
37
  private static final int NUM_INT_UNIFORMS   = VertexEffect.NUM_INT_UNIFORMS;
38

  
37 39
  private static final int INDEX = EffectType.VERTEX.ordinal();
38 40

  
39 41
  private static int[] mNumEffectsH    = new int[MAIN_VARIANTS];
......
47 49
   
48 50
  public EffectQueueVertex()
49 51
    { 
50
    super(NUM_UNIFORMS,INDEX);
52
    super(NUM_FLOAT_UNIFORMS, NUM_INT_UNIFORMS, INDEX);
51 53
    }
52 54

  
53 55
///////////////////////////////////////////////////////////////////////////////////////////////////
......
83 85

  
84 86
    for(int i=0; i<mNumEffects; i++)
85 87
      {
86
      mAndAssociation[i] = mEffects[i].getAndAssociation();
87
      mEquAssociation[i] = mEffects[i].getEquAssociation();
88
      mEffects[i].writeAssociations(mIntUniforms, mMax[INDEX]+i, 2*mMax[INDEX]+i);
88 89

  
89
      if( mEffects[i].compute(mUniforms, NUM_UNIFORMS*i, currTime, step) )
90
      if( mEffects[i].compute(mFloatUniforms, NUM_FLOAT_UNIFORMS*i, currTime, step) )
90 91
        {
91 92
        EffectMessageSender.newMessage(mEffects[i]);
92 93
        }
......
108 109

  
109 110
    if( mNumEffects>0 )
110 111
      {
111
      GLES30.glUniform1iv( mNameH[variant]          ,                 mNumEffects, mName          , 0);
112
      GLES30.glUniform1iv( mAndAssociationH[variant],                 mNumEffects, mAndAssociation, 0);
113
      GLES30.glUniform1iv( mEquAssociationH[variant],                 mNumEffects, mEquAssociation, 0);
114
      GLES30.glUniform4fv( mUniformsH[variant]      ,(NUM_UNIFORMS/4)*mNumEffects, mUniforms      , 0);
112
      GLES30.glUniform1iv( mNameH[variant]          ,                       mNumEffects, mIntUniforms   , 0            );
113
      GLES30.glUniform1iv( mAndAssociationH[variant],                       mNumEffects, mIntUniforms   ,   mMax[INDEX]);
114
      GLES30.glUniform1iv( mEquAssociationH[variant],                       mNumEffects, mIntUniforms   , 2*mMax[INDEX]);
115
      GLES30.glUniform4fv( mUniformsH[variant]      ,(NUM_FLOAT_UNIFORMS/4)*mNumEffects, mFloatUniforms , 0            );
115 116
      }
116 117
    }
117 118
  }

Also available in: Unified diff