Android : GL SurfaceView Renderer Design Needed
Dec 21, 2009
I've been trying to figure out how to get to the current EGLContext from the GLSurfaceView. I looked at the APIs and looked at the code but it doesn't seem like there is any path to it. I could have just missed it - please correct me if I have, but it wasn't obvious. Now, I can totally understand the designer thinking that we should protect people from the context because they can cause bad things to happen but actually it would be nice to have access to swapbuffers so that we can do some effects. Fair enough, though.
The one thing I wanted was to see the current EGLConfig so that I could find out what config attributes I'm getting on weirdly-behaving devices like the Galaxy. It seemed easy enough - it's passed in to Renderer in the onSurfaceCreated method:
public void onSurfaceCreated(GL10 gl, EGLConfig config);
Great! Except wait, you can't query an EGLConfig without an EGLDisplay and that's locked up in the GLSurfaceView. So why is it passed in to the surface created method? Isn't it useless? Accord to GLES spec, an instance of EGLConfig is only good if you have the display/context instances that it was created from.
I didn't try querying it with the default context because it's supposedly invalid but perhaps someone could shed some light on this? I'd love if it were something dumb and obvious that I don't know about.
View 4 Replies
Nov 24, 2010
I'm an android noob that is looking for some advice on how to properly use a service in Android. I am building an app that will connect to a server on the Internet to get a data stream via TCP. That data then needs to get send out to another device that is connected via a bluetooth serial port. I want this to continue to function in the background while the user looks at a different activity. The app will be a NTRIP client, which pulls real time RTK correction data from the Internet and sends it to a RTK GPS receiver that I connect to via bluetooth. The data rate will be about 500 bytes/second. The user interface is a single button to connect or disconnect the data stream and some text to show status of the GPS receiver. There are also a few settings that will need to be configured by the user such as the IP/port of the server to connect to and the bluetooth device to communicate with.I think I need to have the main activity spawn a local service, and then have the service spawn a thread for the TCP stream and another thread for the bluetooth connection. Does this sound right? What is the best model for the service in this scenario?-Start(bind) the service every time the activity starts, and have the connect/disconnect button send commands to the service to start/stop the threads. If I go this route, the service will continue to run after the user disconnects and goes to another app. The service would need an inactivity timer to terminate itself.-Start and stop the service when the user presses the connect/disconnect button. The service only runs when data is moving. If I do this, the activity will need to see if the service is running when the activity starts, in order to know if it should bind to the service or tell the user that the link is disconnected.
View 2 Replies
View Related
Aug 20, 2010
One using a Surfaceview, and the other using a custom view. According to the android SDK development guide, using a surface view is better because you can spawn a separate thread to handle graphics. Th SDK development guide claims that using a custom view with invalidate calls is only good for slower animations, less intense graphics.However, in my simple app, I can clearly see that using a custom view with calls to invalidate seems to render faster.What do you guys know/think about this?My touchEvent code is exactly the same, and my drawing code is exactly the same. The only difference is that one is all in the UI thread, and the other is using a tread to handle the drawing.
View 1 Replies
View Related
Oct 8, 2010
Once again I'm trying to get into openGL, but as usual I choke when passing around vertices/vertixes/whatever and every little detail can lead to disaster (wrong format, initialization not properly set up, where memory are saved, etc.).
My main goal is to use openGL for 2D graphics to speed up performance compared to regular cpu drawing.
Anyways, my openGL Renderer looks like this code...
With an IndexOutOfBoundsException, but I'm sure there are more problems with the code.
View 1 Replies
View Related
Sep 11, 2012
I develop live wallpapers using Opengl ES 2.0 engine. My wallapapers run smooth on 2.x Android Devices , but in 4.03 i see some strange things. when app runs for first time everything goes fine.
But when screen orientation changes , or screen goes off and back on (that causes the renderer to call create surface again) renderer gives the glerror 1285. this error is Out of memory. Screen is flickering and draws objects as they ara doublicated in different locations.
View 1 Replies
View Related
Oct 9, 2009
I was using for sometime now OpenGL initialization code from Api demos and it was quite hard to exchange events between View and Renderer. So, I read pieces of documentation from GLES, EGL from jsr239 and finally made the single threaded GL initialization code which is much simpler than in ApiDemos. Here it is:
import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.egl.EGLContext; import javax.microedition.khronos.egl.EGLDisplay; import javax.microedition.khronos.egl.EGLSurface; import javax.microedition.khronos.opengles.GL10;
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import.................
View 2 Replies
View Related
Aug 27, 2010
Just curious to know android Graphical components (View) have their own specific renderer or they are using something like AWT, Swing or?
View 1 Replies
View Related
Jul 16, 2009
I've created a simple OpenGL app and created a rendering class which implements GLSurfaceView.Renderer. All it does is draw 100 triangles (NUM_OBJECTS = 100) on the screen and move them about, bouncing off the edges. The projection is glOrtho2D and there is no z-buffer. I'm running this on a G1 with continuous redraw enabled.
Here is the onDrawFrame method:
CODE:....................
View 23 Replies
View Related
Nov 23, 2010
I am going to develop an Android Application but before developing it i needs to have MockUp for the Android Application,so is there any way to design MockUp/GUI Design tool for the Android Application?
I know about DroidDraw tool , but i think it is not the exact way to prepare Mockup for the android application.
I have already referred this SO Question , but overthere i just found all the tools for the I-Phone only. So please feel free to share with me if you have/found any !
View 3 Replies
View Related
Mar 25, 2009
Im creating a simple game using a SurfaceView for drawing the Graphics. It works fine, but now I tried to add a title screen, which is (for now) only a LinearLayout and a Start-button, specified in XML. However, when I click this button and try to switch to my SurfaceView (By doing setContentView(R.layout.game), the screen turns black. But if I do setContentView(R.layout.game) immediatly in my Activity.onCreate it works. But not if I start with my Title-screen and then try to switch
View 3 Replies
View Related
Apr 30, 2009
I am finally testing my application on a G1 and even though it works fine on the emulator, it crashes on the G1
It crashes when it does:
CODE:.........
And the view is defined like this:
CODE:..............
View 3 Replies
View Related
Jun 16, 2009
I want to play 2 videos one after one minimizing delay between each video. so I created 2 mediaplayer, one playing the current video and the other preparing to play the following video.
The 1st video is played correctely but I couldn't get the video track of the second video. only sound without any error.
This is my source code : (note that here, I am using files on sdcard but the application will use files on a web server. that's why I need to prepare the second video while the 1st is playing)
CODE:...................................
View 5 Replies
View Related
Sep 4, 2010
My app fc when activity that's using SurfaceView as content view calls startActivityForResult(...) and activity that has been started calls finish()
This does not happen if I change content view to something else than SurfaceView.
This would be the requested logcat:
CODE:..................
View 1 Replies
View Related
Dec 16, 2009
Look at this: http://nhenze.net/?p=172
They show that it is possible to put an GLSurfaceview on top on a SurfaceView. I hope it would be useful.
View 2 Replies
View Related
May 18, 2010
When exiting the activity in a thread in a SurfaceView. This log appears in this situation:.............
View 2 Replies
View Related
Sep 11, 2010
For years now I've maintained a Tandy Color Computer Emulator applet on my home page. With the purchase of an Incredible I decided to do a port. Getting it going in Android didn't take long but I'm really surprised how slow it runs. You can literally see the pixels painting. I know there are other successful Android emulators so I must be doing something wrong.
My approach was to use a SurfaceView for rendering. There's a separate thread that runs a virtual 6809 CPU. Whenever that thread updates the emulated video memory, it calls SurfaceHolder.lockCanvas() with a Rect describing the part of the screen requiring a repaint. Then it calls the gfx routines with the resulting Canvas...this is where I did a repaint() in AWT/Swing. The gfx routines are smart enough to just render what's in the clipRect. Perhaps I'm still stuck in AWT but I can't think of any way to make this thing run at an acceptable speed. I tried to coalesce the gfx calls but that didn't work either. Any thoughts?
View 1 Replies
View Related
Feb 11, 2009
I have a SurfaceView that is covering a portion of its parent, a RelativeLayout. I have a background image covering the full RelativeLayout area, and this is my Activity's main layout.
I would like to have the SurfaceView be transparent so that I can see through to the background image on its parent RelativeLayout. I have tried the approach shown in the API Demos example TranslucentGLSurfaceViewActivity, but this succeeds in making the transparency go all the way through my Activity to my desktop!
I'm using the "style/Theme.Translucent" theme on my activity, and setting this on my SurfaceView: mySurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
The transparency to the desktop it kinda cool, but not what I'm trying to do! Is it possible to make a SurfaceView transparent only through to its parent?
View 2 Replies
View Related
Apr 24, 2009
I am stuck.My main activity creates and starts a SurfaceView.My app needs to access a listview via the options menu to change properties of the items shown in the view.Two strange things occur:
1.) When I scroll the listview quickly, the list sometimes gets farklempt.Words overlap each other.
2.) When I select the item and the app returns to the main activity, the thread is no longer alive.
If someone out there can offer help I will post the code.This will take a little effort.My code is loosely based upon LunarLander and the GLSurfaceView examples.If there is a good example (more recent example) someone can point me to, that would be boss.
View 8 Replies
View Related
Mar 23, 2009
I'm currently getting to grips with Android, playing around with the Lunar Lander sample. I've found that if you navigate away from the app (eg, hit the call button) it will destroy the underlying surface (calling surfaceDestroyed). Navigating back (which will trigger onWindowVisibilityChanged) the app will crash, as it will try to draw to the surface without recreating it. Is there some code I can put in onWindowVisibilityChanged (or anywhere else) that will regenerate the SurfaceView's underlying surface and resume execution nicely? It feels like this should be a simple function call but I can't find anything in the API docs.
View 2 Replies
View Related
Jun 10, 2009
I am creating a custom Widget which extends SurfaceView and I am planning to use it for camera preview.In the main activity I tried to implement some event listeners but can't catch any event.If I press a button the LogCat outputs "Continuing to wait for key to be dispatched" line.Does anyone know how to implement event listeners in main activity using SurfaceView classes?
View 3 Replies
View Related
May 31, 2009
I had it working with a normal View but that is to slow. I was told to use SurfaceView but can't figure out how to use OnKey with it and if I should use onDraw or draw? And how do I pass stuff to draw? does it happen automatically? code...
View 3 Replies
View Related
Jul 6, 2010
I'm trying to develop a little game, with 2D Graphics. I want my "gaming board" to be at a specific position on my screen, so that I can display in-game informations above and below the box. But since there is beginning to be a lot of Android phones out there, I was thinking about getting "dynamic" values so that I can adapt my font size to every device.
My game is not in full screen (but it could be, it's no big deal), but in a window with no title bar.
I'm using an extension of the default SurfaceView class, implementing SurfaceHolder.Callback. I tried writing the following method :
CODE:................
But the values returned are zeroes.
(even if it means changing display strategy) ?
View 1 Replies
View Related
May 19, 2009
I am using a SurfaceView, and wish to animate Drawables. All the animation tutorials I have seen concern using an ImageView, which as I understand is not a sensible approach from within a SurfaceView. Does anyone have any suggestions for doing frame-by-frame animation within a SurfaceView? Can it be done with openGL?
View 4 Replies
View Related
Aug 7, 2009
When is it necessary, or better to use a SurfaceView instead of a View?
View 3 Replies
View Related
Jan 16, 2010
I am currently starting a game engine in Android, first forray onto the platform and have the basics in place however i am unsure of the best way to approach resolution independence when using SurfaceView to draw graphics.
Looking for pointers as to how to keep the game / sprites etc all looking the same independent of the screen, obviously it wouldn't be efficient to scale all the sprites every frame or store many variations for differing resolutions
View 3 Replies
View Related
Aug 5, 2010
I have a database filled with records in the following format: . What I want my application to do is select records from an external database, and display those records on the phone screen using a SurfaceView.
Currently, I have an Activity, and a Service responsible for the record-gathering portion of the application. The Activity passes an intent to the Service, and the Service responds by returning the records that need to be displayed. The records are stored in my program as instances of the Data class, and merely have the screen-coordinates of where the element should be drawn in the View (I am just drawing a circle for every record in the DB).
For the sake of brevity, I won't include the service but I will include a skeleton of the Activity class and the Data that I wish to display.
CODE:.................
The problem that I am having pertains to the SurfaceView. I realize that many people are going to suggest that I use just a regular View, but my application involves a lot of elements, so a SurfaceView would be much more suitable for my needs. Below is a skeleton of my SurfaceView class that contains a nested class to manage the threads.
CODE:............
The problem that I'm having is that once I make the initial call to the Panel class, I'm going to be getting new records from the service, and consequently, my Info Map data-structure is going to get updated. However, my Panel class just gets stuck in a loop and never receives any new Data objects. All examples of SurfaceViews I've found have involved updating them methods within the SurfaceView class itself (e.g. touching the screen and creating a new image, etc.) Sadly, I'm stumped on this particular problem. Is there a better approach for designing my Activity/SurfaceView interaction? Is an additional View required?
View 1 Replies
View Related
Oct 13, 2010
I have an application with a SurfaceView and a MapView. They are displayed in a single view, like so:
CODE:.........................
Note the MapView comes before the SurfaceView. Because of this, the MapView is drawn "under" the SurfaceView, and all that I see is a black background, with the things that I draw on the SurfaceView showing. If I swap the order, and put SurfaceView first in the file and MapView second, the MapView is drawn, with none of the SurfaceView showing.
According to the SurfaceView Javadoc:
The surface is Z ordered so that it is behind the window holding its SurfaceView; the SurfaceView punches a hole in its window to allow its surface to be displayed. The view hierarchy will take care of correctly compositing with the Surface any siblings of the SurfaceView that would normally appear on top of it.
To me, this means that I should be able to put the SurfaceView first in the file, and have it "punch through" the MapView and display what it has. But, as it is, they seem to be two views, and only one is visible at a time.
After thought: I tried setting the background to #00000000 so that the alpha of the background would be zero (i.e. transparent), but it doesn't have any effect.
View 2 Replies
View Related
Aug 5, 2009
I'm work a game, when game over, I want to open a AlertDialog in the Surfaceview.
How can I open a AlertDialog in SurfaceView??
View 2 Replies
View Related
Nov 6, 2009
I want to write a graphics app using SurfaceView.
Basically my requirement is to draw some text frequently according to some time.
Is it possible to do this? can any one please provide me some source code which draws the text using SurfaceView.
View 2 Replies
View Related
May 1, 2010
I'm using SurfaceView to draw some stuff using canvas. The problem is that I want to show everything horizontally by default and keep it that way regardless the position of the device. I'm not using any layout XML file to show the SurfaceView; instead I just have a class that extends SurfaceView and I do setContentView(new Panel(this)).
View 1 Replies
View Related