mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-21 03:52:48 +00:00
Start connection in onSurfaceChanged() just in case we render our first frame prior to surface configuration
This commit is contained in:
parent
0b15fd582d
commit
81d84600d4
@ -96,6 +96,8 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
private boolean displayedFailureDialog = false;
|
private boolean displayedFailureDialog = false;
|
||||||
private boolean connecting = false;
|
private boolean connecting = false;
|
||||||
private boolean connected = false;
|
private boolean connected = false;
|
||||||
|
private boolean surfaceCreated = false;
|
||||||
|
private boolean attemptedConnection = false;
|
||||||
|
|
||||||
private InputCaptureProvider inputCaptureProvider;
|
private InputCaptureProvider inputCaptureProvider;
|
||||||
private int modifierFlags = 0;
|
private int modifierFlags = 0;
|
||||||
@ -1200,8 +1202,8 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
spinner = null;
|
spinner = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
connecting = false;
|
|
||||||
connected = true;
|
connected = true;
|
||||||
|
connecting = false;
|
||||||
|
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -1240,12 +1242,12 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
||||||
}
|
if (!surfaceCreated) {
|
||||||
|
throw new IllegalStateException("Surface changed before creation!");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
if (!attemptedConnection) {
|
||||||
public void surfaceCreated(SurfaceHolder holder) {
|
attemptedConnection = true;
|
||||||
if (!connected && !connecting) {
|
|
||||||
connecting = true;
|
|
||||||
|
|
||||||
decoderRenderer.setRenderTarget(holder);
|
decoderRenderer.setRenderTarget(holder);
|
||||||
conn.start(PlatformBinding.getAudioRenderer(), decoderRenderer, Game.this);
|
conn.start(PlatformBinding.getAudioRenderer(), decoderRenderer, Game.this);
|
||||||
@ -1253,12 +1255,23 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
public void surfaceCreated(SurfaceHolder holder) {
|
||||||
// Let the decoder know immediately that the surface is gone
|
surfaceCreated = true;
|
||||||
decoderRenderer.prepareForStop();
|
}
|
||||||
|
|
||||||
if (connected) {
|
@Override
|
||||||
stopConnection();
|
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||||
|
if (!surfaceCreated) {
|
||||||
|
throw new IllegalStateException("Surface destroyed before creation!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (attemptedConnection) {
|
||||||
|
// Let the decoder know immediately that the surface is gone
|
||||||
|
decoderRenderer.prepareForStop();
|
||||||
|
|
||||||
|
if (connected) {
|
||||||
|
stopConnection();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user