Esempio n. 1
0
  private void showCursor() {
    if (cursorImage != null) {
      if (screenBackup == null) {
        screenBackup = new int[cursorImage.getWidth() * cursorImage.getHeight()];
      }

      // screenBackup = graphics.doGetPixels(cursorArea);
      final int cursorX = (int) cursorArea.getX();
      final int cursorY = (int) cursorArea.getY();
      final int maxY = Math.min(cursorY + cursorImage.getHeight(), graphics.getHeight());
      final int maxX = Math.min(cursorX + cursorImage.getWidth(), graphics.getWidth());
      final int width = cursorImage.getWidth();

      int index = 0;
      for (int y = cursorY; y < maxY; y++) {
        int lineIndex = index;
        for (int x = cursorX; x < maxX; x++) {
          screenBackup[lineIndex] = graphics.doGetPixel(x, y);
          lineIndex++;
        }

        index += width;
      }

      putPixels(cursorImage.getImage(), screenBackup);
    }
  }