/** @see net.rim.device.api.openvg.VGField#render(VG) */ protected void render(final VG g) { final VG11 vg = (VG11) g; // Clear the display vg.vgClear(0, 0, getWidth(), getHeight()); vg.vgSeti(VG10.VG_MATRIX_MODE, VG10.VG_MATRIX_IMAGE_USER_TO_SURFACE); // Shifting bits by >> 1 is equivalent to division by 2 final float halfIconWidth = ICON_WIDTH >> 1; // Go through all the images and rotate them // around the center of the screen. for (int i = 0; i < _imageHandles.length; i++) { // Load clean Identity matrix vg.vgLoadIdentity(); // Translate to the center of the display vg.vgTranslate(_xScreenCenter, _yScreenCenter); // Rotate the image vg.vgRotate(_mainRotation.getFloat() + ROTATE * i); // Translate the image half of the icon's width vg.vgTranslate(-halfIconWidth, RADIUS); // Draw the rotated, translated image vg.vgDrawImage(_imageHandles[i]); } // Draw the text image on this field drawText(vg); }
/** * Draws text at the top of the VGField * * @param vg The object that will be used to render the text */ public void drawText(final VG11 vg) { vg.vgSeti(VG10.VG_MATRIX_MODE, VG10.VG_MATRIX_IMAGE_USER_TO_SURFACE); // Load a clean identity matrix vg.vgLoadIdentity(); // Translate to the next drawing location vg.vgTranslate(0.0f, _displayHeight - TEXT_OFFSET); // Draw the text on the display vg.vgDrawImage(_textImage); }