Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Timbertoes

#1
I don't currently have any mip-mapping on but I'll remember that for later.

I thought about just blitting the chars one at a time but since my program will be localized into some other languages with large alphabets, it's a little more in-depth than I'd like to do for now. I suppose I could draw a sprite sheet for each language during bootstrap but it may be best to just deal with the GC. :)

For the mean time, I will just reduce the content onscreen during the texture update so the GC may not be as visible.

Thanks for the tips EgonOlsen. I'm having tons of fun with jPCT-AE.
#2
Support / Re: hw acceleration on emulator
May 18, 2011, 03:29:55 AM
Sounds exciting to me!

I'll be glad to have an emulator that's actually worth testing in now. :) No more 2 fps jPCT tests!

Also, I was watching the wrong video. Here's the direct link:

http://androidappdocs.appspot.com/videos/index.html#v=Oq05KqjXTvs

Thanks raft
#3
Greetings!

Here's what I'm trying to accomplish:
  I accept user input in the form of a String and would like to update a Texture during run-time to display the string whenever it's modified.

I've tried the ITextureEffect approach as well as just unloading the texture and replacing it with the new one. My current problem is that both methods seem to call the android garbage collector.

Here's my current implementation using the replaceTexture() function:

Bitmap texture_bmp = Bitmap.createBitmap(imageWidth, imageHeight, DEFAULT_BITMAP_CONFIG);

// ... Code to draw text onto texture_bmp ...

TextureManager.getInstance().unloadTexture(frameBuffer, old_texture);

old_texture = new Texture(texture_bmp, true);

TextureManager.getInstance().replaceTexture(texture_name, texture);

texture_bmp.recycle();
texture = null;


This makes sense why the GC is being called since I'm allocating a new Texture object. If I comment out the lines that allocate the new Texture, the GC is not called.

Because I want to avoid the GC, I thought I'd try and figure out how to use the ITextureEffect. I read about ways to implement it here, and here and it seemed easy enough.

However, once I had it implemented, the GC still seemed to be called each frame as long as the code that called setEffect and applyEffect were there. I did read that the ITextureEffect says: "The affected texture has to be converted and uploaded to the GPU every time the effect will be applied." My question: During this 'conversion' is a new texture being allocated and possibly triggering the GC?

I checked my memory usage and I'm only using about half of my 13MB heap while this GC is happening. The logcat output says 'GC_FOR_MALLOC' which I believe happens when a new allocation is made.

I'm aware of how delicate most operations must be, especially after reading the article on Performance tips for Android.

Allocating the new Bitmap does not seem to trigger the GC at all if I comment out the 'new Texture()' or ITextureEffect code. And as for my ITextureEffect code, it is just a blank class for now. If you need any additional code, let me know and I'll post what I can.

If anyone that is more familiar with jPCT-AE can help me out here, I would greatly appreciate it. There's always the chance that I am approaching the problem the wrong way and might need a new strategy.

Thanks!