What steps will reproduce the problem?
1. Get or create the test midlet.
2. Past this method to your MIDlet class:
protected void startApp() throws MIDletStateChangeException {
Canvas canvas = new Canvas() {
int rectW = 50;
int rectH = 50;
int[] rgbaRectData;
private void initRGBData(int w, int h, int color) {
rgbaRectData = new int[rectW * rectH];
for (int n = 0; n < rgbaRectData.length; ++n) {
rgbaRectData[n] = color;
}
}
protected void paint(Graphics g) {
renderTestImages(g);
}
private void renderTestImages(Graphics g) {
// preparing screen
g.setClip(0, 0, getWidth(), getHeight());
g.setColor(0);
g.fillRect(0, 0, getWidth(), getHeight());
// center
drawRect(g);
// center left-top
g.translate(rectW, rectH);
drawRect(g);
g.translate(-rectW, -rectH);
// center right-bottom
g.translate(-rectW, -rectH);
drawRect(g);
g.translate(rectW, rectH);
// center left-bottom
g.translate(-rectW, rectH);
drawRect(g);
g.translate(rectW, -rectH);
// center right-top
g.translate(rectW, -rectH);
drawRect(g);
g.translate(-rectW, rectH);
}
private void drawRect(Graphics g) {
int rectLeft = (getWidth() - rectW) / 2;
int rectTop = (getHeight() - rectH) / 2;
g.drawRGB(rgbaRectData, 0, rectW,
rectLeft,
rectTop,
rectW, rectH, true);
}
protected void keyPressed(int keyCode) {
rectW += 10;
rectH += 10;
initRGBData(rectW, rectH, 0x7FFFFF00);
repaint();
serviceRepaints();
}
public void setFullScreenMode(boolean mode) {
initRGBData(rectW, rectH, 0x7FFFFF00);
super.setFullScreenMode(mode);
}
};
canvas.setFullScreenMode(true);
Display.getDisplay(this).setCurrent(canvas);
destroyApp(true);
}
3. Press "any key" to observe (repeat third step several time to have
interesting visual bugs) :)
What is the expected output? What do you see instead?
see the result on WTK emulator (or other one). I used WTK 2.5.2.
What version of the product are you using? On what operating system?
microemulator version 3.0.0-SNAPSHOT.75.
Please provide any additional information below.
Operating system - Fedora 11.
The problem in Graphics.drawRGB method. It doesn't take into account graphics
translations (g.getTranslateX(), g.getTranslateY()).
Original issue reported on code.google.com by mightysk...@gmail.com on 18 Jun 2010 at 7:21
Original issue reported on code.google.com by
mightysk...@gmail.com
on 18 Jun 2010 at 7:21