Project

General

Profile

« Previous | Next » 

Revision b7074bc6

Added by Leszek Koltunski about 4 years ago

Lower requirements - now only OpenGL ES 3.0 is required; if running on such platform, OIT part of the API ( which is the only one which actually requires 3.1) is switched off.

View differences:

src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.java
20 20
package org.distorted.library.effectqueue;
21 21

  
22 22
import android.content.res.Resources;
23
import android.opengl.GLES31;
23
import android.opengl.GLES30;
24 24
import android.util.Log;
25 25

  
26 26
import org.distorted.library.R;
......
108 108

  
109 109
///////////////////////////////////////////////////////////////////////////////////////////////////
110 110

  
111
  public static void createPrograms(Resources resources)
111
  public static void createPrograms(Resources resources, int GLSL)
112 112
    {
113 113
    final InputStream mainVertStream = resources.openRawResource(R.raw.main_vertex_shader);
114 114
    final InputStream mainFragStream = resources.openRawResource(R.raw.preprocess_fragment_shader);
115 115

  
116 116
    int numV = VertexEffect.getNumEnabled();
117 117

  
118
    String mainVertHeader= DistortedLibrary.GLSL_VERSION + ("#define NUM_VERTEX "   + ( numV>0 ? DistortedLibrary.getMax(EffectType.VERTEX  ) : 0 ) + "\n");
119
    String mainFragHeader= DistortedLibrary.GLSL_VERSION + "\n";
118
    String version = "#version "+GLSL+" es\n";
119
    String mainVertHeader= version + ("#define NUM_VERTEX "   + ( numV>0 ? DistortedLibrary.getMax(EffectType.VERTEX  ) : 0 ) + "\n");
120
    String mainFragHeader= version + "\n";
120 121

  
121 122
    String enabledEffectV= VertexEffect.getGLSL();
122 123

  
123 124
    try
124 125
      {
125 126
      mPreProgram = new DistortedProgram(mainVertStream, mainFragStream, mainVertHeader, mainFragHeader,
126
                                         enabledEffectV, null, DistortedLibrary.GLSL, null);
127
                                         enabledEffectV, null, GLSL, null);
127 128
      }
128 129
    catch(Exception e)
129 130
      {
......
134 135
    int preProgramH = mPreProgram.getProgramHandle();
135 136
    EffectQueueVertex.getUniforms( preProgramH,2 );
136 137
    EffectQueueMatrix.getUniforms( preProgramH,2 );
137
    mPreColorH  = GLES31.glGetUniformLocation( preProgramH, "u_Color"  );
138
    mPreTextureH= GLES31.glGetUniformLocation( preProgramH, "u_Texture");
138
    mPreColorH  = GLES30.glGetUniformLocation( preProgramH, "u_Color"  );
139
    mPreTextureH= GLES30.glGetUniformLocation( preProgramH, "u_Texture");
139 140
    }
140 141

  
141 142
///////////////////////////////////////////////////////////////////////////////////////////////////
......
167 168
    InternalRenderState.setUpStencilMark(mA!=0.0f);
168 169
    InternalRenderState.disableBlending();
169 170

  
170
    GLES31.glViewport(0, 0, width, height );
171
    GLES30.glViewport(0, 0, width, height );
171 172

  
172 173
    mPreProgram.useProgram();
173 174

  
......
190 191

  
191 192
    if( mA!=0.0f )
192 193
      {
193
      GLES31.glUniform4f(mPreColorH, mR, mG, mB, mA);
194
      GLES31.glUniform1i(mPreTextureH, 0);
194
      GLES30.glUniform4f(mPreColorH, mR, mG, mB, mA);
195
      GLES30.glUniform1i(mPreTextureH, 0);
195 196
      }
196 197

  
197
    GLES31.glDrawArrays(GLES31.GL_TRIANGLE_STRIP, 0, mesh.getNumVertices() );
198
    GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, mesh.getNumVertices() );
198 199

  
199 200
    InternalRenderState.restoreBlending();
200 201
    InternalRenderState.unsetUpStencilMark();
......
208 209
    {
209 210
    int numRenders = 0;
210 211

  
211
    GLES31.glDisable(GLES31.GL_BLEND);
212
    GLES30.glDisable(GLES30.GL_BLEND);
212 213

  
213 214
    for(int i=0; i<mNumEffects; i++)
214 215
      {
215 216
      numRenders += ((PostprocessEffect)mEffects[i]).apply(mUniforms,NUM_UNIFORMS*i, buffer);
216 217
      }
217 218

  
218
    GLES31.glEnable(GLES31.GL_BLEND);
219
    GLES30.glEnable(GLES30.GL_BLEND);
219 220

  
220 221
    return numRenders;
221 222
    }

Also available in: Unified diff