summaryrefslogtreecommitdiff
path: root/android/src/org/rockbox
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2012-03-22 23:00:53 +0100
committerThomas Martitz <kugel@rockbox.org>2012-03-22 23:26:50 +0100
commit901521d6de795fe12a6f720cb158950c0d3d51d4 (patch)
treeac7c7f0753e3ea2b6ae12a5fc150cbf2c921f1a1 /android/src/org/rockbox
parent6e6f0c6ef35cebc2ca199ca01f12598ad0209c1c (diff)
android: lcd_update/_rect() changes
* rename some java methods (to update(), initialize()) * re-create the ByteBuffer object from the framebuffer on every update. This is needed now since 2c71aa9 added the possiblity for lcd_framebuffer to change. * do so, along with the creation of the dirty Rect object, in native code. Change-Id: Id39ea8e4b6148987c5f216a87e0ff3c8e7babe92
Diffstat (limited to 'android/src/org/rockbox')
-rw-r--r--android/src/org/rockbox/RockboxFramebuffer.java19
1 files changed, 7 insertions, 12 deletions
diff --git a/android/src/org/rockbox/RockboxFramebuffer.java b/android/src/org/rockbox/RockboxFramebuffer.java
index 66e5991a3e..e1fb99f2a1 100644
--- a/android/src/org/rockbox/RockboxFramebuffer.java
+++ b/android/src/org/rockbox/RockboxFramebuffer.java
@@ -39,7 +39,6 @@ public class RockboxFramebuffer extends SurfaceView
{
private final DisplayMetrics metrics;
private final ViewConfiguration view_config;
- private ByteBuffer native_buf;
private Bitmap btm;
/* first stage init; needs to run from a thread that has a Looper
@@ -47,7 +46,6 @@ public class RockboxFramebuffer extends SurfaceView
public RockboxFramebuffer(Context c)
{
super(c);
-
metrics = c.getResources().getDisplayMetrics();
view_config = ViewConfiguration.get(c);
getHolder().addCallback(this);
@@ -61,18 +59,17 @@ public class RockboxFramebuffer extends SurfaceView
/* second stage init; called from Rockbox with information about the
* display framebuffer */
- private void java_lcd_init(int lcd_width, int lcd_height, ByteBuffer native_fb)
+ private void initialize(int lcd_width, int lcd_height)
{
btm = Bitmap.createBitmap(lcd_width, lcd_height, Bitmap.Config.RGB_565);
- native_buf = native_fb;
setEnabled(true);
}
- private void java_lcd_update()
+ private void update(ByteBuffer framebuffer)
{
SurfaceHolder holder = getHolder();
- Canvas c = holder.lockCanvas(null);
- btm.copyPixelsFromBuffer(native_buf);
+ Canvas c = holder.lockCanvas();
+ btm.copyPixelsFromBuffer(framebuffer);
synchronized (holder)
{ /* draw */
c.drawBitmap(btm, 0.0f, 0.0f, null);
@@ -80,14 +77,12 @@ public class RockboxFramebuffer extends SurfaceView
holder.unlockCanvasAndPost(c);
}
- private void java_lcd_update_rect(int x, int y, int width, int height)
+ private void update(ByteBuffer framebuffer, Rect dirty)
{
SurfaceHolder holder = getHolder();
- Rect dirty = new Rect(x, y, x+width, y+height);
Canvas c = holder.lockCanvas(dirty);
- /* can't copy a partial buffer,
- * but it doesn't make a noticeable difference anyway */
- btm.copyPixelsFromBuffer(native_buf);
+ /* can't copy a partial buffer, but it doesn't make a noticeable difference anyway */
+ btm.copyPixelsFromBuffer(framebuffer);
synchronized (holder)
{ /* draw */
c.drawBitmap(btm, dirty, dirty, null);