Revision 24804c15
Added by Leszek Koltunski over 3 years ago
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
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)