Revision 46ab4363
Added by Leszek Koltunski over 8 years ago
| src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java | ||
|---|---|---|
| 78 | 78 |
super.onDestroy(); |
| 79 | 79 |
} |
| 80 | 80 |
|
| 81 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 82 |
|
|
| 83 |
@Override |
|
| 84 |
public void onSaveInstanceState(Bundle savedInstanceState) |
|
| 85 |
{
|
|
| 86 |
super.onSaveInstanceState(savedInstanceState); |
|
| 87 |
|
|
| 88 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
| 89 |
MultiblurRenderer renderer = view.getRenderer(); |
|
| 90 |
|
|
| 91 |
savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() );
|
|
| 92 |
} |
|
| 93 |
|
|
| 94 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 95 |
|
|
| 96 |
@Override |
|
| 97 |
public void onRestoreInstanceState(Bundle savedInstanceState) |
|
| 98 |
{
|
|
| 99 |
super.onRestoreInstanceState(savedInstanceState); |
|
| 100 |
|
|
| 101 |
boolean[] checkboxes = savedInstanceState.getBooleanArray("checkboxes");
|
|
| 102 |
|
|
| 103 |
MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView); |
|
| 104 |
MultiblurRenderer renderer = view.getRenderer(); |
|
| 105 |
|
|
| 106 |
if( checkboxes!=null ) |
|
| 107 |
{
|
|
| 108 |
for(int i=0; i<checkboxes.length; i++) |
|
| 109 |
{
|
|
| 110 |
renderer.setChecked(i,checkboxes[i]); |
|
| 111 |
} |
|
| 112 |
} |
|
| 113 |
} |
|
| 114 |
|
|
| 81 | 115 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 82 | 116 |
|
| 83 | 117 |
public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) |
| ... | ... | |
| 113 | 147 |
|
| 114 | 148 |
switch(id) |
| 115 | 149 |
{
|
| 116 |
case R.id.multiblurCheckBox0 : sView.getRenderer().pressed(0,checked); break;
|
|
| 117 |
case R.id.multiblurCheckBox1 : sView.getRenderer().pressed(1,checked); break;
|
|
| 118 |
case R.id.multiblurCheckBox2 : sView.getRenderer().pressed(2,checked); break;
|
|
| 119 |
case R.id.multiblurCheckBox3 : sView.getRenderer().pressed(3,checked); break;
|
|
| 120 |
case R.id.multiblurCheckBox4 : sView.getRenderer().pressed(4,checked); break;
|
|
| 121 |
case R.id.multiblurCheckBox5 : sView.getRenderer().pressed(5,checked); break;
|
|
| 122 |
case R.id.multiblurCheckBox6 : sView.getRenderer().pressed(6,checked); break;
|
|
| 123 |
case R.id.multiblurCheckBox7 : sView.getRenderer().pressed(7,checked); break;
|
|
| 150 |
case R.id.multiblurCheckBox0 : sView.getRenderer().setChecked(0,checked); break;
|
|
| 151 |
case R.id.multiblurCheckBox1 : sView.getRenderer().setChecked(1,checked); break;
|
|
| 152 |
case R.id.multiblurCheckBox2 : sView.getRenderer().setChecked(2,checked); break;
|
|
| 153 |
case R.id.multiblurCheckBox3 : sView.getRenderer().setChecked(3,checked); break;
|
|
| 154 |
case R.id.multiblurCheckBox4 : sView.getRenderer().setChecked(4,checked); break;
|
|
| 155 |
case R.id.multiblurCheckBox5 : sView.getRenderer().setChecked(5,checked); break;
|
|
| 156 |
case R.id.multiblurCheckBox6 : sView.getRenderer().setChecked(6,checked); break;
|
|
| 157 |
case R.id.multiblurCheckBox7 : sView.getRenderer().setChecked(7,checked); break;
|
|
| 124 | 158 |
} |
| 125 | 159 |
} |
| 126 | 160 |
} |
| src/main/java/org/distorted/examples/multiblur/MultiblurRenderer.java | ||
|---|---|---|
| 73 | 73 |
private DistortedScreen mScreen; |
| 74 | 74 |
private DynamicQuat mQuatInt1, mQuatInt2; |
| 75 | 75 |
private int mDistance; |
| 76 |
private boolean[] mBlurStatus; |
|
| 76 | 77 |
|
| 77 | 78 |
Static4D mQuat1, mQuat2; |
| 78 | 79 |
int mScreenMin; |
| ... | ... | |
| 84 | 85 |
mView = v; |
| 85 | 86 |
mDistance = -1; |
| 86 | 87 |
|
| 88 |
mBlurStatus = new boolean[NUM_OBJECTS]; |
|
| 87 | 89 |
mMoveDynamic= new Dynamic3D[NUM_OBJECTS]; |
| 88 | 90 |
mMoveVector = new Static3D[NUM_OBJECTS]; |
| 89 | 91 |
mEffects = new DistortedEffects[NUM_OBJECTS]; |
| ... | ... | |
| 95 | 97 |
mMoveDynamic[i] = new Dynamic3D(); |
| 96 | 98 |
|
| 97 | 99 |
mMoveDynamic[i].add(mMoveVector[i]); |
| 100 |
mBlurStatus[i] = false; |
|
| 98 | 101 |
} |
| 99 | 102 |
|
| 100 | 103 |
mBlurDynamic= new Dynamic1D(); |
| 101 | 104 |
mBlurVector = new Static1D(10); |
| 102 | 105 |
mBlurDynamic.add(mBlurVector); |
| 103 | 106 |
|
| 107 |
mBlurStatus[0] = true; |
|
| 104 | 108 |
mEffects[0].blur(mBlurDynamic); |
| 105 | 109 |
|
| 106 | 110 |
MeshCubes mesh = new MeshCubes(1,1,false); |
| ... | ... | |
| 206 | 210 |
} |
| 207 | 211 |
} |
| 208 | 212 |
|
| 213 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 214 |
|
|
| 215 |
int getDistance() |
|
| 216 |
{
|
|
| 217 |
return mDistance; |
|
| 218 |
} |
|
| 219 |
|
|
| 209 | 220 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 210 | 221 |
|
| 211 | 222 |
void setDistance(int distance) |
| ... | ... | |
| 215 | 226 |
android.util.Log.e("renderer", "distance: "+distance);
|
| 216 | 227 |
} |
| 217 | 228 |
|
| 229 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 230 |
|
|
| 231 |
int getRange() |
|
| 232 |
{
|
|
| 233 |
return (int)mBlurVector.getX(); |
|
| 234 |
} |
|
| 235 |
|
|
| 218 | 236 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 219 | 237 |
|
| 220 | 238 |
void setRange(int range) |
| ... | ... | |
| 225 | 243 |
|
| 226 | 244 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 227 | 245 |
|
| 228 |
void pressed(int number, boolean checked) |
|
| 246 |
boolean[] getChecked() |
|
| 247 |
{
|
|
| 248 |
return mBlurStatus; |
|
| 249 |
} |
|
| 250 |
|
|
| 251 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 252 |
|
|
| 253 |
void setChecked(int number, boolean checked) |
|
| 229 | 254 |
{
|
| 230 | 255 |
if( number>=0 && number<=7 && mEffects!=null ) |
| 231 | 256 |
{
|
| 232 | 257 |
if( checked ) |
| 233 | 258 |
{
|
| 234 |
long effectNum = mEffects[number].blur(mBlurDynamic); |
|
| 235 |
|
|
| 236 |
if( effectNum<0 ) |
|
| 259 |
if( !mBlurStatus[number] ) |
|
| 237 | 260 |
{
|
| 238 |
android.util.Log.e("renderer", "Error, failed to add BLUR effect, number: "+number );
|
|
| 261 |
mBlurStatus[number] = true; |
|
| 262 |
mEffects[number].blur(mBlurDynamic); |
|
| 239 | 263 |
} |
| 240 | 264 |
else |
| 241 | 265 |
{
|
| 242 |
android.util.Log.e("renderer", "Successfully added BLUR effect, number: "+number );
|
|
| 266 |
android.util.Log.e("renderer", "Error, failed to add BLUR effect, number: "+number );
|
|
| 243 | 267 |
} |
| 244 | 268 |
} |
| 245 | 269 |
else |
| 246 | 270 |
{
|
| 247 |
int numAborted = mEffects[number].abortEffects(EffectNames.BLUR); |
|
| 248 |
|
|
| 249 |
if( numAborted!=1 ) |
|
| 271 |
if( mBlurStatus[number] ) |
|
| 272 |
{
|
|
| 273 |
mBlurStatus[number] = false; |
|
| 274 |
mEffects[number].abortEffects(EffectNames.BLUR); |
|
| 275 |
} |
|
| 276 |
else |
|
| 250 | 277 |
{
|
| 251 |
android.util.Log.e("renderer", "Error, number: "+number+" unexpected number of effects aborted ("+numAborted+" - should have been 1)" );
|
|
| 278 |
android.util.Log.e("renderer", "Error, failed to remove BLUR effect, number: "+number );
|
|
| 252 | 279 |
} |
| 253 | 280 |
} |
| 254 | 281 |
} |
Also available in: Unified diff
1st attempt to restore internal variables in Multiblur.