Skip to content

Commit

Permalink
Fixed issues where surface changes cause rendering to stop
Browse files Browse the repository at this point in the history
  • Loading branch information
billylindeman committed Nov 20, 2014
1 parent 00e763a commit 24c37af
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 37 deletions.
6 changes: 4 additions & 2 deletions dust-sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:theme="@style/AppTheme"
>
<activity
android:name=".DustActivity"
android:label="@string/app_name" >
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
3 changes: 3 additions & 0 deletions dust-sample/src/main/res/layout/activity_dust.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,8 @@
android:text="start"
/>

<EditText
android:layout_width="100dp"
android:layout_height="45dp"/>

</RelativeLayout>
26 changes: 13 additions & 13 deletions dust-sample/src/main/res/raw/starexplosion.pex
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@

<particleEmitterConfig>
<absolutePosition value="0"></absolutePosition>
<absolutePosition value="0"></absolutePosition>
<yCoordFlipped value="1"></yCoordFlipped>
<sourcePosition x="220.00" y="380.00"></sourcePosition>
<sourcePositionVariance x="7.00" y="7.00"></sourcePositionVariance>
<speed value="123.98"></speed>
<speedVariance value="182.42"></speedVariance>
<particleLifeSpan value="1.3976"></particleLifeSpan>
<sourcePositionVariance x="0.00" y="7.00"></sourcePositionVariance>
<speed value="100.00"></speed>
<speedVariance value="25.00"></speedVariance>
<particleLifeSpan value="3.0000"></particleLifeSpan>
<particleLifespanVariance value="0.0000"></particleLifespanVariance>
<angle value="205.47"></angle>
<angleVariance value="41.09"></angleVariance>
<gravity x="0.00" y="-637.52"></gravity>
<radialAcceleration value="-105.52"></radialAcceleration>
<angle value="180.00"></angle>
<angleVariance value="90.00"></angleVariance>
<gravity x="0.00" y="-140.00"></gravity>
<radialAcceleration value="0.00"></radialAcceleration>
<tangentialAcceleration value="0.00"></tangentialAcceleration>
<radialAccelVariance value="0.00"></radialAccelVariance>
<tangentialAccelVariance value="0.00"></tangentialAccelVariance>
<startColor red="1.00" green="0.74" blue="0.00" alpha="1.00"></startColor>
<startColorVariance red="0.00" green="0.06" blue="0.00" alpha="0.00"></startColorVariance>
<startColorVariance red="0.00" green="0.14" blue="0.00" alpha="0.00"></startColorVariance>
<finishColor red="1.00" green="0.58" blue="0.00" alpha="1.00"></finishColor>
<finishColorVariance red="0.00" green="0.00" blue="0.00" alpha="0.00"></finishColorVariance>
<maxParticles value="77"></maxParticles>
<startParticleSize value="23.22"></startParticleSize>
<maxParticles value="40"></maxParticles>
<startParticleSize value="25.00"></startParticleSize>
<startParticleSizeVariance value="5.00"></startParticleSizeVariance>
<finishParticleSize value="9.82"></finishParticleSize>
<finishParticleSize value="25.00"></finishParticleSize>
<finishParticleSizeVariance value="0.00"></finishParticleSizeVariance>
<duration value="-1.00"></duration>
<emitterType value="0"></emitterType>
Expand Down
30 changes: 15 additions & 15 deletions dust-sample/src/main/res/raw/staroutlineexplosion.pex
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@

<particleEmitterConfig>
<absolutePosition value="0"></absolutePosition>
<absolutePosition value="0"></absolutePosition>
<yCoordFlipped value="1"></yCoordFlipped>
<sourcePosition x="220.00" y="380.00"></sourcePosition>
<sourcePositionVariance x="7.00" y="7.00"></sourcePositionVariance>
<speed value="123.98"></speed>
<speedVariance value="182.42"></speedVariance>
<particleLifeSpan value="1.3976"></particleLifeSpan>
<sourcePositionVariance x="0.00" y="7.00"></sourcePositionVariance>
<speed value="100.00"></speed>
<speedVariance value="25.00"></speedVariance>
<particleLifeSpan value="3.0000"></particleLifeSpan>
<particleLifespanVariance value="0.0000"></particleLifespanVariance>
<angle value="205.47"></angle>
<angleVariance value="41.09"></angleVariance>
<gravity x="0.00" y="-637.52"></gravity>
<radialAcceleration value="-105.52"></radialAcceleration>
<angle value="180.00"></angle>
<angleVariance value="60.00"></angleVariance>
<gravity x="0.00" y="-140.00"></gravity>
<radialAcceleration value="0.00"></radialAcceleration>
<tangentialAcceleration value="0.00"></tangentialAcceleration>
<radialAccelVariance value="0.00"></radialAccelVariance>
<tangentialAccelVariance value="0.00"></tangentialAccelVariance>
<startColor red="1.00" green="0.74" blue="0.00" alpha="1.00"></startColor>
<startColorVariance red="0.00" green="0.06" blue="0.00" alpha="0.00"></startColorVariance>
<startColorVariance red="0.00" green="0.14" blue="0.00" alpha="0.00"></startColorVariance>
<finishColor red="1.00" green="0.58" blue="0.00" alpha="1.00"></finishColor>
<finishColorVariance red="0.00" green="0.00" blue="0.00" alpha="0.00"></finishColorVariance>
<maxParticles value="50"></maxParticles>
<startParticleSize value="23.22"></startParticleSize>
<startParticleSizeVariance value="20.00"></startParticleSizeVariance>
<finishParticleSize value="9.82"></finishParticleSize>
<finishParticleSizeVariance value="20.00"></finishParticleSizeVariance>
<maxParticles value="40"></maxParticles>
<startParticleSize value="25.00"></startParticleSize>
<startParticleSizeVariance value="5.00"></startParticleSizeVariance>
<finishParticleSize value="25.00"></finishParticleSize>
<finishParticleSizeVariance value="0.00"></finishParticleSizeVariance>
<duration value="-1.00"></duration>
<emitterType value="0"></emitterType>
<maxRadius value="0.00"></maxRadius>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ public void onSurfaceChanged(GL10 gl, int w, int h) {

glSize.x = 320;
glSize.y = ((float)h/(float)w)*320;
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0,glSize.x,0,glSize.y,0,1);

size.x=w;
Expand Down Expand Up @@ -172,9 +174,8 @@ private void drawParticlesForEmitter(GL10 gl, Emitter e) {
Particle p = particles[i];
gl.glPushMatrix();
gl.glTranslatef(p.position.x, p.position.y, 0);
gl.glScalef(.5f*p.particleSize, .5f*p.particleSize, 0);
gl.glRotatef((float)p.angle, 0,0,1);
tr.draw(gl, p.color);
gl.glRotatef(p.rotation, 0,0,1);
tr.draw(gl, p.particleSize, p.color);
gl.glPopMatrix();
}
}
Expand Down
17 changes: 14 additions & 3 deletions dust/src/main/java/com/billylindeman/dust/layer/TexturedRect.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ public void registerTextureHandle(GL10 gl, final Bitmap bitmap) {
/** Load bitmap into GL texture */
gl.glGenTextures(1, textureHandle, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureHandle[0]);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);

textureIsRegistered = true;
Expand All @@ -80,7 +81,7 @@ public boolean hasTexture() {
return textureIsRegistered;
}

public void draw(GL10 gl, Color c){
public void draw(GL10 gl,float size, Color c){
float cb[] = {
c.r,c.g,c.b,c.a,
c.r,c.g,c.b,c.a,
Expand All @@ -90,6 +91,16 @@ public void draw(GL10 gl, Color c){
colorBuffer.put(cb);
colorBuffer.position(0);

size *= .5f;
float vertices[]={
-size, size, 0.0f, //top left
-size,-size,0.0f, //bottom left
size,-size,0.0f, //bottom right
size,size,0.0f //top right
};

vertexBuffer.put(vertices);
vertexBuffer.position(0);

gl.glFrontFace(GL10.GL_CCW);
gl.glEnable(GL10.GL_CULL_FACE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class EmitterConfig {
int maxParticles;


float duration;
public float duration;
float rotationStart, rotationStartVariance;
float rotationEnd, rotationEndVariance;

Expand Down

0 comments on commit 24c37af

Please sign in to comment.