Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // NOT COMPILABLE
- //
- public BufferedImage render(int w, int h, int xP, int yP, Logic8Set dat) {
- ...
- ...
- if (w != width || h != height) {
- width = w;
- height = h;
- background = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- backgroundGraphics = background.createGraphics();
- cursors = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- cursorsGraphics = background.createGraphics();
- channels = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- channelsGraphics = background.createGraphics();
- datadisplay = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- dataGraphics = background.createGraphics();
- highlight = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- highlightGraphics = background.createGraphics();
- updateBackground = true;
- updateData = true;
- }
- image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- g = image.createGraphics();
- fm = g.getFontMetrics();
- ...
- ...
- if (updateBackground) {
- drawBackground();
- }
- if (oldRowsActivated != rowsActivated()) {
- drawChannels();
- }
- if (settings.chanHigh.isSelected() && color && yP > 0) {
- drawHighlight();
- }
- if (updateData) {
- drawData();
- }
- updateCursors();
- g.drawImage(background, 0, 0, null);
- g.drawImage(channels, 0, 0, null);
- if (settings.chanHigh.isSelected() && color && yP > 0) {
- g.drawImage(highlight, 0, 0, null);
- }
- g.drawImage(datadisplay, 0, 0, null);
- g.drawImage(cursors, 0, 0, null);
- return image;
- }
- private void drawBackground() {
- backgroundGraphics.setColor(defaultColorSet.getBackgroundColor());
- backgroundGraphics.fillRect(0, 0, width, height);
- }
- private void drawChannels() {
- //channels = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- //channelsGraphics = channels.createGraphics();
- channelsGraphics.setColor(clear);
- channelsGraphics.fillRect(0, 0, width, height);
- for (int d = 1; d <= 8; d++) {
- currentRow = chanMap[d - 1];
- if (isActivated(d)) {
- if (color) {
- drawPlate(defaultColorSet.getBackgroundColor(), channelsGraphics, left, (rowHeight) * currentRow + top, width - left, rowHeight);
- }
- if (leftMargin) {
- if (color) {
- channelsGraphics.setColor(defaultColorSet.getChannelColor(d));
- drawPlate(defaultColorSet.getChannelColor(d), channelsGraphics, 0, (rowHeight) * currentRow + top, 20, rowHeight);
- drawPlate(darkBg, channelsGraphics, 20, (rowHeight) * currentRow + top, left - 20, rowHeight);
- }
- if (settings.chanText.isSelected()) {
- channelsGraphics.setColor(defaultColorSet.getTextColor());
- channelsGraphics.drawString("Channel " + d, 30, (rowHeight) * (currentRow) + top + 25);
- }
- }
- }
- }
- }
- private void drawHighlight() {
- // highlight = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- // highlightGraphics = highlight.createGraphics();
- highlightGraphics.setColor(clear);
- highlightGraphics.fillRect(0, 0, width, height);
- highlight(yP, rowHeight, highlightGraphics, left, top, sampleStep);
- }
- private void drawData() {
- // datadisplay = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- //dataGraphics = datadisplay.createGraphics();
- dataGraphics.setColor(clear);
- dataGraphics.fillRect(0, 0, width, height);
- for (int d = 1; d <= 8; d++) {
- if (isActivated(d)) {
- currentRow = chanMap[d - 1];
- int prev = -1;
- for (int i = 0; i < width; i++) {
- if (i % 200 == 0 && settings.timingMarkers.isSelected()) {
- dataGraphics.setColor(defaultColorSet.getTextColor());
- time = ((i + xoff) * sampleStep) * currentSet.getTimeStep();
- String str = "";
- String str2 = null;
- if (time >= 1 || time == 0) {
- str = time + "";
- str = str.substring(0, 1);
- str = str + " S";
- str2 = ((time - Integer.parseInt(str.replaceAll(" S", ""))) * 1000) + "";
- str2 = str2.substring(0, Math.min(6, str2.length()));
- if (Double.parseDouble(str2) == 0) {
- str2 = null;
- } else {
- str2 = str2.concat(" ms");
- }
- dataGraphics.drawString(str, i + left - (fm.stringWidth(str) / 2), top - 25);
- if (str2 != null) {
- dataGraphics.drawString(str2, i + left - (fm.stringWidth(str2) / 2), top - 12);
- }
- } else {
- str = (time * 1000) + "";
- str = str.substring(0, Math.min(5, str.length()));
- str = str + " ms";
- dataGraphics.drawString(str, i + left - (fm.stringWidth(str) / 2), top - 12);
- }
- dataGraphics.fillRect(i + left - 2, top - 5, 4, 4);
- }
- if (!color) {
- dataGraphics.setColor(Color.black);
- } else if (coloredLines) {
- dataGraphics.setColor(defaultColorSet.getChannelColor(d));
- if (d == 8) {
- dataGraphics.setColor(Color.white);
- }
- }
- data = currentSet.getSample((i + xoff) * sampleStep);
- if (prev < 0) {
- prev = data[d - 1];
- } else {
- if (data[d - 1] != prev) {
- prev = data[d - 1];
- dataGraphics.drawLine(i - 1 + left, ((rowHeight / 5) + rowHeight * currentRow) + top,
- i - 1 + left, ((rowHeight / 5) * 4 + rowHeight * currentRow) + top);
- }
- }
- boolean thick = false;
- int y = ((rowHeight) / 5) * data[d - 1];
- if (y == 0) {
- y = ((rowHeight) / 5) * 4;
- thick = true;
- }
- y += (rowHeight) * currentRow;
- y += top;
- if (!thick) {
- dataGraphics.fillRect(i + left, y, 1, 1);
- } else {
- if (settings.thickBottom.isSelected()) {
- dataGraphics.fillRect(i + left, y - 1, 1, 1);
- }
- dataGraphics.fillRect(i + left, y, 1, 1);
- }
- }
- }
- }
- }
- private void updateCursors() {
- // cursors = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- //cursorsGraphics = cursors.createGraphics();
- cursorsGraphics.setColor(clear);
- cursorsGraphics.fillRect(0, 0, width, height);
- if (settings.vertCursor.isSelected()) {
- cursorsGraphics.setColor(defaultColorSet.getVerticalCursorColor());
- if (leftMargin) {
- cursorsGraphics.drawLine(Math.max(0, xP), top, xP, height);
- } else {
- cursorsGraphics.drawLine(xP, top, xP, height);
- }
- }
- drawInfo(cursorsGraphics, xP, yP, rowHeight, sampleStep);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement