Project

General

Profile

« Previous | Next » 

Revision 24804c15

Added by Leszek Koltunski over 3 years ago

Turn the vName, vEffAnd and vEffEqu integer array uniforms into a one ivec4.
The point: ivec4s are always packed tightly in UBOs (which is going to be the next step)

View differences:

src/main/java/org/distorted/library/effectqueue/EffectQueueVertex.java
38 38

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

  
41
  private static int[] mNumEffectsH    = new int[MAIN_VARIANTS];
42
  private static int[] mNameH          = new int[MAIN_VARIANTS];
43
  private static int[] mUniformsH      = new int[MAIN_VARIANTS];
44
  private static int[] mAndAssociationH= new int[MAIN_VARIANTS];
45
  private static int[] mEquAssociationH= new int[MAIN_VARIANTS];
46
  private static int[] mInflateH       = new int[MAIN_VARIANTS];
41
  private static int[] mNumEffectsH = new int[MAIN_VARIANTS];
42
  private static int[] mInflateH    = new int[MAIN_VARIANTS];
43
  private static int[] mPropertiesH = new int[MAIN_VARIANTS];
44
  private static int[] mUniformsH   = new int[MAIN_VARIANTS];
47 45

  
48 46
///////////////////////////////////////////////////////////////////////////////////////////////////
49 47
   
......
63 61

  
64 62
  static void uniforms(int mProgramH, int variant)
65 63
    {
66
    mNumEffectsH[variant]    = GLES30.glGetUniformLocation( mProgramH, "vNumEffects");
67
    mNameH[variant]          = GLES30.glGetUniformLocation( mProgramH, "vName");
68
    mUniformsH[variant]      = GLES30.glGetUniformLocation( mProgramH, "vUniforms");
69
    mAndAssociationH[variant]= GLES30.glGetUniformLocation( mProgramH, "vEffAndAssoc");
70
    mEquAssociationH[variant]= GLES30.glGetUniformLocation( mProgramH, "vEffEquAssoc");
71
    mInflateH[variant]       = GLES30.glGetUniformLocation( mProgramH, "u_Inflate");
64
    mNumEffectsH[variant]= GLES30.glGetUniformLocation( mProgramH, "vNumEffects");
65
    mInflateH[variant]   = GLES30.glGetUniformLocation( mProgramH, "u_Inflate");
66
    mPropertiesH[variant]= GLES30.glGetUniformLocation( mProgramH, "vProperties");
67
    mUniformsH[variant]  = GLES30.glGetUniformLocation( mProgramH, "vUniforms");
72 68
    }
73 69

  
74 70
///////////////////////////////////////////////////////////////////////////////////////////////////
......
85 81

  
86 82
    for(int i=0; i<mNumEffects; i++)
87 83
      {
88
      mEffects[i].writeAssociations(mIntUniforms, mMax[INDEX]+i, 2*mMax[INDEX]+i);
84
      mEffects[i].writeAssociations(mIntUniforms, NUM_INT_UNIFORMS*i+1, NUM_INT_UNIFORMS*i+3);
89 85

  
90 86
      if( mEffects[i].compute(mFloatUniforms, NUM_FLOAT_UNIFORMS*i, currTime, step) )
91 87
        {
......
109 105

  
110 106
    if( mNumEffects>0 )
111 107
      {
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            );
108
      GLES30.glUniform4iv( mPropertiesH[variant],                       mNumEffects, mIntUniforms   , 0);
109
      GLES30.glUniform4fv( mUniformsH[variant]  ,(NUM_FLOAT_UNIFORMS/4)*mNumEffects, mFloatUniforms , 0);
116 110
      }
117 111
    }
118 112
  }

Also available in: Unified diff