Android :: Achieve Ultra Smooth OpenGL/ES Animation
Feb 1, 2010
I am drawing a pretty simple scene, with one large texture the about size of the screen (two triangles). I notice that the frame-rate is irregular: in most of cases, a frame finishes in 17 ms. However, in about 1 of 10 times, the frame finishes in 33ms.
My guess is probably some background services need to run. However, the Linux scheduler is biased towards my FG app, so the BG services are usually starved, until they can't take it anymore and they grab the CPU from my app ....
I am seeing stuttering in the animation. Is this due to the irregular frame rate? Should I delay each frame so that all frames are rendered with 33ms frame time? If so, what's the best technique of achieving this?
Is there an API that I can call to guarantee CPU resources for the render thread .... I really hope Android runs on some sort of real time kernel ...
View 7 Replies
Jul 5, 2010
On iPhone, Mobile Safari is WebKit based and supports hardware-accelerated -webkit-transform CSS properties. To be specific, I use the translate3d() transform.
What alternative is there for the Android browser? I need it to work on Android 1.5.
View 1 Replies
View Related
Sep 14, 2010
im currently playing around with a Game that architecture is basically like the example 2d Games like JetBoy / LunarLander and so on. But as things now running (and animating continuously) they have kind of "hiccups" when the GC is running. I have done all i can to allocate as much Objects in front. There is nearly nothing that is created "new" besindes some Strings that are used to set the Score and so on. (TextView doesn't take int's =( - So do you have similar Problems that the GC is "lagging" your 2s game ? any solutions ?
View 12 Replies
View Related
Jan 31, 2010
Following this : http://stackoverflow.com/questions/2125354/best-approach-for-oldschool-2d-zelda-like-game
I got a simple 2D tiles generator working, im reading an int map[100][100] filled with either 1's or 0's and draw tiles according to their tile id, 0 is water, 1 grass.
Im using some basic Numpad control handler, using a camIncr (32.0f), i set the camera position according to the movement :
CODE:.......
In my draw loop, im just drawing enough tiles to fit on my screen, and track the top left tile using cameraOffsetX and cameraOffsetY (its the camera position / tile size )
Im using a GLU.gluOrtho2D for my projection.
Here is the draw loop inside my custom renderer :
CODE:.............
my tiledBackground draw function :
CODE:..............
The waterTile and grassTile .draw function draw a 32x32 textured tile, might post the code if relevant.
Everything is fine, i can move using numpad arrows, and my map 'moves' with me, since im only drawing what i can see, its fast (see http://stackoverflow.com/questions/2129125/android-opengl-es-simple-tile-generator-performance-problem where Aleks pointed me to a simple 'culling' idea)
I would like my engine to 'smooth scroll' now. I've tried tweaking the camIncr variable, the GLU.gluOrtho2D etc, nothing worked.
View 2 Replies
View Related
Aug 26, 2009
I am creating an app that show some histograms off your traveling speed in different time periods (histogram for the last minute, histogram for the last 2 minutes etc.) I would like to have an animation, and have discovered that drawing everything takes around 300-400ms. Which is to long for making my animation smooth, the animation itself is quite simple (2 lines and 2 dots). What I draw every frame right now is 20 antialised strings, size 14, in average ~5chars 8 of these strings will change every second. 1 of the string will change with the animation (this will become 5 strings if there is time).
The main part of the screen, the one showing the histogram data, consist of a lots of squares which needs to be updated every second. (450 squares). The presentation is split into 5 frames in the same view (has to be same view as arrows in one frame might point into another frame). Invalidating only a part off the screen makes almost no difference (it does becomes a bit faster, but i still execute all my drawing stuff). I have tried to add a flag whether or not the main part is dirty, but if I don't draw it, it is cleared. I might be missing something here. One possibility could be to render all the mostly static stuff to a bitmap, and then simply draw the bitmap. That would mean 10 strings only had to rendered on orientation change.
I think it would make sense since the slowest routine is the one drawing all the text. (the following is a typical timing for the drawing routines, accumulated).
V/HMMULTIBAR( 352): 0 - Drawing time: 0 ms V/HMMULTIBAR( 352): 1 - Drawing time: 53 ms V/HMMULTIBAR( 352): 2 - Drawing time: 62 ms V/HMMULTIBAR( 352): 3 - Drawing time: 85 ms V/HMMULTIBAR( 352): 4 - Drawing time: 280 ms V/HMMULTIBAR( 352): 5 - Drawing time: 303 ms
I would really appreciate comments about whether or not offscreen rendering is the way to go, or if there is a simpler way.
View 6 Replies
View Related
Dec 29, 2009
I'm trying to animate object. I use keyframe animation: I have two vertex buffers (two frames) with vertices of my object - first buffer is for object start state and second for end state. To transform the object I simply use linear interpolation. To make it more clear, please take a look at the code snippet:
CODE:..................
As you can see I actually use one more buffer. vertexBuffer_motion is the one I use to draw my object in intermediate state.
Time for my question. What is the best approach for such keyframe animation on android? Can I somehow avoid (quite time consuming) operations of calculating and copying new state of all vertices to vertexBuffer_motion?
I know I could use VBO but still, I would have to prepare this vertexBuffer_motion and use glBufferData to set data to this VBO (or not?). provide me with some code example showing the best approach for keyframe animation on android?
View 1 Replies
View Related
Nov 17, 2010
I'm fading out an imageview with alpha animation. I'd like the image to stay transparent after the animation. Tried with different combinations of fillAfter and fillEnabled, no luck. How can this be achieved?
View 1 Replies
View Related
Feb 25, 2009
Single Threaded OpenGL game ! (check bottom, you can download and use the helper class) Lighting disabled ! Depth Buffer disabled ! Culling enabled ! Textures disabled !
Just 176 integers (x,y values only) making 88 vertexes along with 132 index numbers making "44 triangles only"
Framerates I get is
with GL_BLENDING disabled - 145 fps approx only! enabled - 110 fps approx only!
I have the screenshot of exact code in the draw function here.. just 2 damn lines ! I have hidden only the comments.. click here to see it http://prasna991.googlepages.com/drawframe.png
variable details in the 2 lines of code =========================== ipts = 176 elements (only x and y for each vertex) totallinetriangles * 3 = 176 lineindexes = 132 elements - type "short"
Here is the screenshot of output drawing and how it will look like http://prasna991.googlepages.com/screen.png
OpenGL single threaded Initialization Helper ================================ Here is my OpenGL helper class.. makes the OpenGL initialization for newbies a cakewalk http://prasna991.googlepages.com/OpenGLHelperclass.txt
I tested by rendering on the touch event only.. frame rate drops only when u touch and drag and here I have just tested by tapping and releasing gently on the emulator and on the device
Is this the device limitations ? So graphics is actually a lot lot lot slower than on iPhone ?
View 8 Replies
View Related
Jul 24, 2010
I would like to be able to use the OpenGL API from both Java and C (via NDK).
In Java, there is a GL object passed, which has all GL methods on it.
In C, you just talk to the native library.
In a single onDrawFrame callback (for which Java is passed a GL), can I use methods on the GL object, and also call NDK methods which access the openGL library?
In other words, is the GL object just a wrapper for the same instance of the native library?
View 3 Replies
View Related
Aug 30, 2010
I have a strange issue - from time to time the animation that should fade out my control (ImageButton) does not kick in immediately. I am using the fadeout animation to hide it and then in myListener on its end (onAnimationEnd) I put new resource as the image on the button.
Somewhere in my app code:
Animation a = AnimationUtils.loadAnimation(this,R.anim.fadeout); a.setAnimationListener(new myListener(location)); buttons[location].setAnimation(a); a.startNow(); // regardless if its start() or startnNow() it will work in most of the cases but not 100% reliable I actually can see in debug Log when its late, happens after few more clicks
Then in myListener.onAnimationEnd(Animation a):buttons[location].setImageResource(R.drawable.standard_button);
Seems there is a rule that the every 4th or 5th animation does not start ...
View 1 Replies
View Related
Jul 11, 2010
Is it possible to do polling in Android? For example, I want my application to monitor a directory continuously. If there is for example a new folder created in that directory I want to log it down. Is it possible to acheive this by polling? Or is there any other way to do this?
View 7 Replies
View Related
Jun 24, 2009
I have a webview and need to trigger a function when a user clicks on particular url. How can I achieve this?
View 5 Replies
View Related
Sep 17, 2010
So I'm struggling a bit with what is probably a fairly basic concept.. Activity Lifecycle.I have read a bunch of thread on the topic, and I feel I understand well both the functionality, and rationale behind the lifecycle model implemented for Activities, but it raises a bit of a problem for me. My app (game) has a couple of distinct Activities for various sections:
1. The TitleActivity is a very small Activity that just launches a GLSurfaceView and renders a startup logo.I use this to detect the OpenGL capabilities of the device (eg so I know if it's using a software renderer)
2. The LaunchActivity is the main menu screen where the user can access options etc and start a game
3. The GameActivity will either launches a GLSurfaceView or a standard View depending on hardware capabilties.
The issue I am having is that I want to pre-load some "slow-to-load" resources, specifically audio, in the Title Activity so when the Launch Activity renders I can play some background music.I have the concept of a "media library" which I use throughout the game.Because of memory limitations in the SoundPool, I have limited this to only absolute real-time sounds and all others are played using mulitple instances of MediaPlayer.Hence my media library has a bunch of pre-loaded MediaPlayer instances which I access regularly during game play.. so it makes sense to have a centralized access point for all audio.All fine, however the problem is that when I launch one activity from another.. for example the TitleActivity starts the LaunchActivity (via a call to startActivity(Intent...)), the former goes through the onDestroy stage of its lifecycle.Now logically I had assumed that if I allocate a bunch of resources in the onCreate of an Activity, I should clean them up in the onDestroy, however in the case of my "media library" if I load up the audio files in the onCreate of my TitleActivity they will be torn down when the LaunchActivity is started because the TitleActivity will have its onDestroy() method called.
View 9 Replies
View Related
Aug 22, 2010
I'd like to populate a listview from 2 tables. Anyone know how I can achieve this? Currently what I have looks like but it only works with one adapter.
View 1 Replies
View Related
Oct 26, 2009
I am developing an application in which a user keeps on scrolling and each view displays a single text. The views are not suppose to end. How can i achieve that?
View 4 Replies
View Related
May 28, 2009
I want to make my android project Internationalization,but i don't know how to achieve it. I have searched on the internet,and just know i have to make values-xx file in
es.I want to know what should i do about the code.
View 2 Replies
View Related
Oct 8, 2010
I am trying to develop small application for reset Logging on Phone. Can some one throw some Lights on how to achieve logging in AndriodRunTimeInit whenever there is exception? I want to write into file whenever there is RunTime exception.
View 1 Replies
View Related
Jul 15, 2009
Is there any way to achieve perspective drawing of an image.. are there any APIs.. or is OpenGL the only solution..
View 2 Replies
View Related
Apr 19, 2010
Things go fine, and i am able to design a layout like this...
View 3 Replies
View Related
Oct 26, 2010
Well after flushing down the toilet on Swift key I decided to flush some more on Ultra Keyboard and I can't even express my disappointment enough. What's the deal with these "suggestions"? I go to write a quick text message to someone and when I type in "Hi" the Ultra Keyboard 'suggests' that I meant "Highman". I with there was a way to just have these auto-correct spelling mistakes instead of trying to predict what I'm going to type because they are just terrible at it.
View 21 Replies
View Related
Aug 30, 2010
I am wondering if Swype is still available to download and if so, where? I thought it was on Market but guess not. is this free? I have tried Ultra Keyboard that allows you do to typing OR tracing, and tracing seems to be very similar to this Swype concept. Has anyone tried this?
View 49 Replies
View Related
Oct 14, 2010
I know Ultra comes with a lot of features. but I ONLY need the "swype" type features. and Money is not really an issue i know SlideIT costs more. which one works better overall for the Swype Features.
View 7 Replies
View Related
Oct 30, 2010
I would like to have a layout with 5 times 5 buttons. Each of them should have the same width and height (they should be square). And I want the whole matrix to use the screen width (or height, depending on rotation).
I currently do it "by hand" in the Java code:
CODE:...........
This can be improved by obtaining screen width first and then dividing by 5 to get rid of this literal 60. But I'm wondering how I can do this in the res/layout XML file? How can I specify for the height to be the same as the width? (I can set the width to match_parent.)
View 4 Replies
View Related
Mar 24, 2010
When i use toast to display some text on screen it displays little bit above the bottom(default position).
now i want to display it in the middle of screen or according to my choice can any one guide me how to achieve this?
View 1 Replies
View Related
Jan 30, 2009
When using a mediaplayer to play back an audio file, you can set looping to true - that's not the issue here.
If looping is set to true, there's still an audible gap between the file finishing and then starting again.
How could I achieve true gapless playback? I've attempted using two instances of the same file, overriding oncomplete and onseek.. can't seem to improve the gap though.
View 6 Replies
View Related
Jul 29, 2010
Is it possible in Android to get a callback when a Frame Animation (AnimationDrawable) has completed playing its frame sequence? I know when a Tween Animation has completed, it calls onAnimationEnd(), but is there something similar for frame by frame animations?
View 1 Replies
View Related
Apr 12, 2010
Strangely I find no support for Midi in Android.
The only thing that comes close is the Jetplayer, but this only takes a existing .jet file.
I want to dynamically generate a midi file with some intervals and play it.
I even thought about just manually creating a .jet file with a tone and then transposing it with the jet player, but it limits the transposing to -12, +12. Which is not so good for me.
There also is a ToneGenerator on Android, but it's limited to predefined tones with no way to transpose.
Does someone know how to achieve midi generation and playback on Android?
View 2 Replies
View Related
Sep 17, 2010
I am working on a application, in which I want to show Image gallery containing full screen images. I have put the gallery in the application successfully. But I am failing to apply some properties to the gallery as per the app design demands. I am using android.widget.Gallery library of android. The things I am failing to do are:
1) I wanna scroll the gallery images one at a time, as now its getting scrolled more than one images in one scroll.
2) And on scrolling the gallery, the images coming next from left/ right should move smothly into the screen and should stop at the screen edges. It should not scroll beyong that in one scroll.
View 2 Replies
View Related
Nov 24, 2010
Probably this question is answered. If it is, could you point me in the right direction then.
I would like to add the smooth scrolling functionality into my application.
i.e. I have a huge text and I want to scroll it automatically (like in book readers)
Could anyone offer any examples of smooth scrolling?
View 1 Replies
View Related
Jul 26, 2010
In my app i have gradient as drawable which i am using as background and i want it to make it look as smooth as possible. After googling and trying by myself i came up with the following. On nexus one if you call only setDither(true) your gradient is still banding so you have to set PixelFormat like this Window.setFormat(PixelFormat.RGBA_8888). But on the other side G1 does not support RGBA_8888 so calling it make the gradient even uglier than before so Window.setFormat(PixelFormat.RGBA_8888) will not work well on devices that don't support it.What is the correct way smooth my gradient on all devices on which my app will run.
View 1 Replies
View Related