Skip to content

Commit c68a585

Browse files
JSEditor: preview spritesheets show the indexes.
1 parent 84e82cd commit c68a585

File tree

2 files changed

+50
-50
lines changed

2 files changed

+50
-50
lines changed

source/phasereditor/phasereditor.assetpack.ui/src/phasereditor/assetpack/ui/preview/QuickSpritesheetAssetPreviewComp.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,18 @@ public QuickSpritesheetAssetPreviewComp(Composite parent, int style) {
5252
_resolutionLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
5353
}
5454

55-
private void setImageFile(IFile file) {
55+
56+
public void setModel(SpritesheetAssetModel asset) {
57+
_resolutionLabel.setText("w=" + asset.getFrameWidth() + " h=" + asset.getFrameHeight() + " m="
58+
+ asset.getMargin() + " s=" + asset.getSpacing());
59+
IFile file = asset.getUrlFile();
5660
if (file == null) {
5761
_canvas.setImage(null);
5862
} else {
63+
_canvas.setSpritesheet(asset);
5964
_canvas.setImageFile(file);
6065
}
6166
}
62-
63-
public void setModel(SpritesheetAssetModel asset) {
64-
_resolutionLabel.setText("w=" + asset.getFrameWidth() + " h=" + asset.getFrameHeight() + " m="
65-
+ asset.getMargin() + " s=" + asset.getSpacing());
66-
setImageFile(asset.getUrlFile());
67-
}
6867

6968
public SpritesheetPreviewCanvas getCanvas() {
7069
return _canvas;

source/phasereditor/phasereditor.assetpack.ui/src/phasereditor/assetpack/ui/widgets/SpritesheetPreviewCanvas.java

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -69,52 +69,53 @@ protected void drawBorder(GC gc, Rectangle rect) {
6969

7070
@Override
7171
protected void drawMore(GC gc, int srcW, int srcH, int dstW, int dstH, int dstX, int dstY) {
72+
if (_spritesheet == null) {
73+
return;
74+
}
75+
7276
SpritesheetAssetModel spritesheet = _spritesheet;
73-
if (spritesheet != null) {
74-
Rectangle canvasBounds = getBounds();
75-
List<FrameData> list;
76-
Rectangle imgBounds = _image.getBounds();
77-
if (_singleFrame) {
78-
Rectangle dst = PhaserEditorUI.computeImageZoom(imgBounds, canvasBounds);
79-
list = AssetPackUI.generateSpriteSheetRects(spritesheet, imgBounds, dst);
80-
if (list.isEmpty()) {
81-
PhaserEditorUI.paintPreviewMessage(gc, canvasBounds, "Cannot compute the grid.");
82-
} else {
83-
FrameData fd = list.get(_frame % list.size());
84-
85-
Rectangle r = new Rectangle(0, 0, fd.src.width, fd.src.height);
86-
r = PhaserEditorUI.computeImageZoom(r, getBounds());
87-
88-
try {
89-
gc.drawImage(_image, fd.src.x, fd.src.y, fd.src.width, fd.src.height, r.x, r.y, r.width,
90-
r.height);
91-
} catch (IllegalArgumentException e) {
92-
// wrong parameters
93-
}
77+
Rectangle canvasBounds = getBounds();
78+
List<FrameData> list;
79+
Rectangle imgBounds = _image.getBounds();
80+
if (_singleFrame) {
81+
Rectangle dst = PhaserEditorUI.computeImageZoom(imgBounds, canvasBounds);
82+
list = AssetPackUI.generateSpriteSheetRects(spritesheet, imgBounds, dst);
83+
if (list.isEmpty()) {
84+
PhaserEditorUI.paintPreviewMessage(gc, canvasBounds, "Cannot compute the grid.");
85+
} else {
86+
FrameData fd = list.get(_frame % list.size());
87+
88+
Rectangle r = new Rectangle(0, 0, fd.src.width, fd.src.height);
89+
r = PhaserEditorUI.computeImageZoom(r, getBounds());
90+
91+
try {
92+
gc.drawImage(_image, fd.src.x, fd.src.y, fd.src.width, fd.src.height, r.x, r.y, r.width, r.height);
93+
} catch (IllegalArgumentException e) {
94+
// wrong parameters
9495
}
96+
}
97+
} else {
98+
Rectangle dst = PhaserEditorUI.computeImageZoom(imgBounds, canvasBounds);
99+
list = AssetPackUI.generateSpriteSheetRects(spritesheet, imgBounds, dst);
100+
if (list.isEmpty()) {
101+
PhaserEditorUI.paintPreviewMessage(gc, canvasBounds, "Cannot compute the grid.");
95102
} else {
96-
Rectangle dst = PhaserEditorUI.computeImageZoom(imgBounds, canvasBounds);
97-
list = AssetPackUI.generateSpriteSheetRects(spritesheet, imgBounds, dst);
98-
if (list.isEmpty()) {
99-
PhaserEditorUI.paintPreviewMessage(gc, canvasBounds, "Cannot compute the grid.");
100-
} else {
101-
int i = 0;
102-
for (FrameData fd : list) {
103-
gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_RED));
104-
Rectangle r = fd.dst;
105-
gc.drawRectangle(r.x, r.y, r.width, r.height);
106-
String label = Integer.toString(i);
107-
Point labelRect = gc.stringExtent(Integer.toString(i));
108-
int left = r.x + r.width / 2 - labelRect.x / 2;
109-
int top = Math.min(r.y + r.height + 5, getBounds().height - labelRect.y - 5);
110-
gc.setAlpha(200);
111-
gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
112-
gc.fillRectangle(left - 2, top, labelRect.x + 4, labelRect.y);
113-
gc.setAlpha(255);
114-
gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_BLACK));
115-
gc.drawString(label, left, top, true);
116-
i++;
117-
}
103+
int i = 0;
104+
for (FrameData fd : list) {
105+
gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_RED));
106+
Rectangle r = fd.dst;
107+
gc.drawRectangle(r.x, r.y, r.width, r.height);
108+
String label = Integer.toString(i);
109+
Point labelRect = gc.stringExtent(Integer.toString(i));
110+
int left = r.x + r.width / 2 - labelRect.x / 2;
111+
int top = Math.min(r.y + r.height + 5, getBounds().height - labelRect.y - 5);
112+
gc.setAlpha(200);
113+
gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
114+
gc.fillRectangle(left - 2, top, labelRect.x + 4, labelRect.y);
115+
gc.setAlpha(255);
116+
gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_BLACK));
117+
gc.drawString(label, left, top, true);
118+
i++;
118119
}
119120
}
120121
}

0 commit comments

Comments
 (0)