private int fps;\r
private WindowedMean mean = new WindowedMean(5);\r
\r
- boolean created = false;\r
- boolean running = false;\r
- boolean pause = false;\r
- boolean resume = false;\r
- boolean destroy = false;\r
+ volatile boolean created = false;\r
+ volatile boolean running = false;\r
+ volatile boolean pause = false;\r
+ volatile boolean resume = false;\r
+ volatile boolean destroy = false;\r
\r
private float ppiX = 0;\r
private float ppiY = 0;\r
}\r
\r
void pause() {\r
+ long startTime = System.nanoTime();\r
synchronized (synch) {\r
running = false;\r
pause = true;\r
}\r
- boolean cond = false;\r
- while (!cond) {\r
- synchronized (synch) {\r
- cond = !pause;\r
- }\r
- }\r
+ Gdx.app.log("AndroidGraphics", "synch took: " + (System.nanoTime()-startTime)/1000000000.0f);\r
+ startTime = System.nanoTime();\r
+ while (pause); // busy wait. ya, nasty... \r
+ Gdx.app.log("AndroidGraphics", "wait took: " + (System.nanoTime()-startTime)/1000000000.0f);\r
}\r
\r
void destroy() {\r
lastFrameTime = time;\r
mean.addValue(deltaTime);\r
\r
- synchronized (synch) {\r
- if (running) {\r
- ((AndroidInput)Gdx.input).processEvents();\r
- app.listener.render();\r
+ boolean lrunning = false;\r
+ boolean lpause = false;\r
+ boolean ldestroy = false;\r
+ boolean lresume = false;\r
+ \r
+ synchronized(synch) {\r
+ lrunning = running;\r
+ lpause = pause;\r
+ ldestroy = destroy;\r
+ lresume = resume;\r
+ \r
+ if (pause) { \r
+ pause = false; \r
}\r
-\r
- if (pause) {\r
- app.listener.pause();\r
- pause = false;\r
+ \r
+ if (destroy) { \r
+ destroy = false;\r
}\r
\r
- if (resume) {\r
- app.listener.resume();\r
+ if (resume) { \r
resume = false;\r
running = true;\r
- }\r
+ } \r
+ }\r
+ \r
+ if (lrunning) {\r
+ ((AndroidInput)Gdx.input).processEvents();\r
+ app.listener.render();\r
+ }\r
\r
- if (destroy) {\r
- app.listener.dispose();\r
- destroy = false;\r
- }\r
+ if (lpause) {\r
+ app.listener.pause();\r
+ }\r
+\r
+ if (lresume) {\r
+ app.listener.resume();\r
}\r
+\r
+ if (ldestroy) {\r
+ app.listener.dispose();\r
+ } \r
\r
if (time - frameStart > 1000000000) {\r
fps = frames;\r