Project

General

Profile

« Previous | Next » 

Revision dc10a48d

Added by Leszek Koltunski about 1 year ago

Decouple (to a large degree) the OpenGL Library from Android.

View differences:

src/main/java/org/distorted/examples/effectqueue/EffectQueueRenderer.java
22 22
import javax.microedition.khronos.egl.EGLConfig;
23 23
import javax.microedition.khronos.opengles.GL10;
24 24

  
25
import android.app.ActivityManager;
26
import android.content.Context;
27
import android.content.pm.ConfigurationInfo;
28
import android.content.res.Resources;
25 29
import android.graphics.Bitmap;
26 30
import android.graphics.Canvas;
27 31
import android.graphics.Paint;
......
42 46
import org.distorted.library.message.EffectListener;
43 47
import org.distorted.library.type.Static3D;
44 48

  
49
import java.io.InputStream;
50

  
45 51
///////////////////////////////////////////////////////////////////////////////////////////////////
46 52

  
47
class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListener, DistortedLibrary.ExceptionListener
53
class EffectQueueRenderer implements GLSurfaceView.Renderer, EffectListener, DistortedLibrary.LibraryUser
48 54
  {
49 55
  private static final int NUMLINES =  10;
50 56
  private static final int MESH_QUALITY = 100;
51 57
  static final int BWID = 600;
52 58
  static final int BHEI = 600;
53
   
54
  private EffectQueueSurfaceView mView;
55
  private Paint mPaint;
56
  private int texWidth, texHeight;
57
  private Static3D mScale;
58 59

  
59
  private DistortedTexture mTexture;
60
  private MeshSquare mMesh;
61
  private DistortedEffects mEffects;
62
  private DistortedScreen mScreen;
60
  private final EffectQueueSurfaceView mView;
61
  private final Resources mResources;
62
  private final DistortedTexture mTexture;
63
  private final MeshSquare mMesh;
64
  private final DistortedEffects mEffects;
65
  private final DistortedScreen mScreen;
66
  private final Paint mPaint;
67
  private final Static3D mScale;
68
  private final int texWidth, texHeight;
63 69

  
64 70
///////////////////////////////////////////////////////////////////////////////////////////////////
65 71

  
66 72
  EffectQueueRenderer(EffectQueueSurfaceView v)
67
    {    
73
    {
74
    mView = v;
75
    mResources = v.getResources();
76

  
68 77
    mPaint = new Paint();
69 78
    mPaint.setAntiAlias(true);
70 79
    mPaint.setFakeBoldText(true);
71 80
    mPaint.setStyle(Style.FILL);
72
      
73
    mView = v;
74
      
81

  
75 82
    texWidth = BWID;
76 83
    texHeight= BHEI;
77 84
    mScale = new Static3D(1,1,1);
......
141 148
    FragmentEffectChroma.enable();
142 149
    FragmentEffectSaturation.enable();
143 150

  
144
    DistortedLibrary.onSurfaceCreated(mView.getContext(), this);
151
    DistortedLibrary.onSurfaceCreated(this);
152
    }
153

  
154
///////////////////////////////////////////////////////////////////////////////////////////////////
155

  
156
  public void effectFinished(final long effectID)
157
    {
158
    EffectQueueActivity act = (EffectQueueActivity)mView.getContext();
159
    act.effectFinished(effectID);
145 160
    }
146 161

  
147 162
///////////////////////////////////////////////////////////////////////////////////////////////////
......
153 168

  
154 169
///////////////////////////////////////////////////////////////////////////////////////////////////
155 170

  
156
  public void effectFinished(final long effectID)
171
  public int openGlVersion()
157 172
    {
158
    EffectQueueActivity act = (EffectQueueActivity)mView.getContext();
159
    act.effectFinished(effectID);
173
    Context context = mView.getContext();
174
    final ActivityManager activityManager     = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
175
    final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
176
    int glESversion = configurationInfo.reqGlEsVersion;
177
    int major = glESversion >> 16;
178
    int minor = glESversion & 0xff;
179

  
180
    return 100*major + 10*minor;
181
    }
182

  
183
///////////////////////////////////////////////////////////////////////////////////////////////////
184

  
185
  public InputStream localFile(int fileID)
186
    {
187
    return mResources.openRawResource(fileID);
188
    }
189

  
190
///////////////////////////////////////////////////////////////////////////////////////////////////
191

  
192
  public void logMessage(String message)
193
    {
194
    android.util.Log.e("EffectQueue", message );
160 195
    }
161 196
  }

Also available in: Unified diff