lg 4400 phone issue | developer.brewmp.com lg 4400 phone issue | developer.brewmp.com

Developer

lg 4400 phone issue

Forums:

hi

i have devEloped an app which i ported on to t720, LG VX4400 and LG VX6000.while the same app is running good on T720 and LG VX 6000, it is behaving funky on LG VX4400.it is unable to clearscreen and drawrect properly on LGVX4400.even on emulator it is running good.

did any one face this kind of display problems on LG VX4400?

Thanks & Regards
KUmar

Nope, my apps run (with clearing screen and drawing rectangles) perfecty on t720, a530, vx4400 and vx6000..
/kUfa

Nope, my apps run (with clearing screen and drawing rectangles) perfecty on t720, a530, vx4400 and vx6000..
/kUfa

Quote:Originally posted by kumar
hi
i have devEloped an app which i ported on to t720, LG VX4400 and LG VX6000.while the same app is running good on T720 and LG VX 6000, it is behaving funky on LG VX4400.it is unable to clearscreen and drawrect properly on LGVX4400.even on emulator it is running good.
did any one face this kind of display problems on LG VX4400?
Thanks & Regards
KUmar
4400 has issues with off screen coordinates.

Quote:Originally posted by kumar
hi
i have devEloped an app which i ported on to t720, LG VX4400 and LG VX6000.while the same app is running good on T720 and LG VX 6000, it is behaving funky on LG VX4400.it is unable to clearscreen and drawrect properly on LGVX4400.even on emulator it is running good.
did any one face this kind of display problems on LG VX4400?
Thanks & Regards
KUmar
4400 has issues with off screen coordinates.

Yop for images with transparency when you do not clip properly..
/kUfa

Yop for images with transparency when you do not clip properly..
/kUfa

hi jmiller2
what exactly u mean by "off screen coordinates". do u mean
the device height and width? it will of gr8 help for me if u can explain in detail
Thanks!
kumar

hi jmiller2
what exactly u mean by "off screen coordinates". do u mean
the device height and width? it will of gr8 help for me if u can explain in detail
Thanks!
kumar

Quote:Originally posted by kumar
hi jmiller2
what exactly u mean by "off screen coordinates". do u mean
the device height and width? it will of gr8 help for me if u can explain in detail
Thanks!
kumar
I had several issues with it when I drew bitmaps that had origins that had negative coordinates and used transparency. I also remember some problem with drawing rectangles in upper left hand corner also, not sure what it was...but I do remember seeing garbage pixels when it worked fine on other handsets.
Just another handset specific work around needed, I guess.

Quote:Originally posted by kumar
hi jmiller2
what exactly u mean by "off screen coordinates". do u mean
the device height and width? it will of gr8 help for me if u can explain in detail
Thanks!
kumar
I had several issues with it when I drew bitmaps that had origins that had negative coordinates and used transparency. I also remember some problem with drawing rectangles in upper left hand corner also, not sure what it was...but I do remember seeing garbage pixels when it worked fine on other handsets.
Just another handset specific work around needed, I guess.

As others have mentioned, we had problems with bit blits on the Vx4400 when the y coordinate was negative (offscreen to the top). We had to recalculate the blit in those cases to only blit the part of the image that was actually onscreen.
void
Image_DrawFrame( Image& img, int fr, int x, int y) {
if (img.data) {
int cx = (img.hsize) ? img.hsize : img.info.cxFrame; // get per-frame width
int cy = (img.vsize) ? img.vsize : img.info.cy;
int dy = img.dy;
int dx = img.dx;
if (cx == 0) cx = img.info.cx; // assume entire width if we don't have a per frame width
if (y < 0) { // compensate for off top of screen, which has problems on VX4400
cy += y;
dy -= y;
y = 0;
if (cy < 0) return;
}
IDISPLAY_BitBlt( img.idisplay, // pointer to IDisplay
x, y, // x,y position of dest rect
cx, cy, // width and height of dest rect
img.data, // source data
(cx * fr) + dx, dy, // x,y offset within source data for start of source rect
(AEERasterOp)img.op ); // raster operation
if (img.dirty) {
AEERect r; // save this in the dirty rect list
r.x = x; r.y = y; r.dx = cx; r.dy = cy;
}
}

As others have mentioned, we had problems with bit blits on the Vx4400 when the y coordinate was negative (offscreen to the top). We had to recalculate the blit in those cases to only blit the part of the image that was actually onscreen.
void
Image_DrawFrame( Image& img, int fr, int x, int y) {
if (img.data) {
int cx = (img.hsize) ? img.hsize : img.info.cxFrame; // get per-frame width
int cy = (img.vsize) ? img.vsize : img.info.cy;
int dy = img.dy;
int dx = img.dx;
if (cx == 0) cx = img.info.cx; // assume entire width if we don't have a per frame width
if (y < 0) { // compensate for off top of screen, which has problems on VX4400
cy += y;
dy -= y;
y = 0;
if (cy < 0) return;
}
IDISPLAY_BitBlt( img.idisplay, // pointer to IDisplay
x, y, // x,y position of dest rect
cx, cy, // width and height of dest rect
img.data, // source data
(cx * fr) + dx, dy, // x,y offset within source data for start of source rect
(AEERasterOp)img.op ); // raster operation
if (img.dirty) {
AEERect r; // save this in the dirty rect list
r.x = x; r.y = y; r.dx = cx; r.dy = cy;
}
}

You may want to properly clip all blits on all four sides. The vx4400 is not the only phone that has blitting issues, so does the t720 and a few other handsets. Since you don't know what the handset does with the data you are trying to write outside the display area, it is ALWAYS a good idea to properly clip every blit before excuting it. Since it's only about 4 or 5 lines of code, I am truly surprised how few people actually do that from the get-go and rather rely on some obscure implementation the OEM may have implemented.

You may want to properly clip all blits on all four sides. The vx4400 is not the only phone that has blitting issues, so does the t720 and a few other handsets. Since you don't know what the handset does with the data you are trying to write outside the display area, it is ALWAYS a good idea to properly clip every blit before excuting it. Since it's only about 4 or 5 lines of code, I am truly surprised how few people actually do that from the get-go and rather rely on some obscure implementation the OEM may have implemented.