annotate multipaint.pde @ 175:3ddf4d799fe6

Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image magnification factor (default 1) and horiz/vert border sizes (64/32).
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 23 Aug 2018 12:38:52 +0300
parents e77a726a587e
children 0940d991d3b0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35
eb9157c6a067 Update author blurb.
Matti Hamalainen <ccr@tnsp.org>
parents: 31
diff changeset
1 //
159
fec2088cdd31 Change version.
Matti Hamalainen <ccr@tnsp.org>
parents: 154
diff changeset
2 // Multipaint.JS 1.8.2018
35
eb9157c6a067 Update author blurb.
Matti Hamalainen <ccr@tnsp.org>
parents: 31
diff changeset
3 // Tero Heikkinen (Dr. TerrorZ)
eb9157c6a067 Update author blurb.
Matti Hamalainen <ccr@tnsp.org>
parents: 31
diff changeset
4 // ProcessingJS port and changes by Matti Hämäläinen (ccr/TNSP)
eb9157c6a067 Update author blurb.
Matti Hamalainen <ccr@tnsp.org>
parents: 31
diff changeset
5 // processing setup draw and file things here
eb9157c6a067 Update author blurb.
Matti Hamalainen <ccr@tnsp.org>
parents: 31
diff changeset
6 //
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
7
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
8 // Supported
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
9 final int C64 = 0, MSX = 5, SPECTRUM = 6, C64M = 10, PLUS4 = 9, PLUS4M = 19, CPC = 2;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
10
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
11 // Experimental or incomplete
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
12 final int C64NOLIMIT = 32; // Commodore 64 without attribute limitations
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
13 final int C64FLI = 20, C64FLIM = 21; // incomplete FLI & AFLI modes
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
14 final int TIMEX = 7, JR200 = 8, AMIGA = 11, ATARIST = 12;
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
15 final int PICO8 = 88;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
16 final int UNIA = 33;
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
17 final int COCO3 = 34;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
18 final int BK0010 = 99;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
19 final int QLLOW = 66;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
20
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
21 // Reserved but completely unimplemented
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
22 final int VIC = 22; // VIC-20
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
23 final int CGA = 23; // 320 x 200 PC CGA screen with black, white, cyan, magenta
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
24 final int CGAX = 24; // 320 x 200 PC CGA screen with black, yellow, green, red-ish
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
25 final int EGA = 200; // 320 x 200 PC EGA screen, 16 colors of 64
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
26 final int VGA = 255; // 320 x 200 PC VGA screen, 256 colors of 65536
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
27 final int NES = 90; // 8-bit NES
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
28 final int SEGAM = 91; // 8-bit Sega Master System
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
29
16
f356d9c176a6 ProcessingJS does not provide "platform" variables, we need to define them ourselves.
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
30 final int PEESEE = 0, MACOSX = 1, PSJS = 2;
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
31 final int COMMAND = 157; // Marq's cmd/ctrl solution
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
32
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
33 int machine = -1; // change this to autoselect
16
f356d9c176a6 ProcessingJS does not provide "platform" variables, we need to define them ourselves.
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
34 int platform = PSJS;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
35
175
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
36 int g_active, g_tooltrigger, g_prevtool, g_rband, g_rbang,
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
37 g_boxreconstruct, g_charlimit, g_animx, g_animy,
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
38 g_animframes, g_animno, g_animtime, g_animspeed, g_keymacpos;
136
12cf30907f26 More work on integrating changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 135
diff changeset
39 int g_wheelup = int(':'), g_wheeldown = int(';'), g_middlebutton = int(',');
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
40
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
41 boolean g_control = false, g_shift = false, g_dirty, g_inhibit_aspect = false;
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
42
133
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
43 String g_formatname, g_formatext,
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
44 filename = "", sfilename = "",
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
45 g_name, g_exportext = "",
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
46 g_exportname = "", g_keymacro = "",
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
47 g_forcedpalette = "";
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
48
172
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
49 final int GRIDMODE_OLD = 0;
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
50 final int GRIDMODE_NEW = 1;
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
51 final int AR_FLAT = 1;
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
52 final int AR_SQUARE = 0;
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
53 int g_gridmode = GRIDMODE_OLD;
133
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
54 int g_pixelw = 1;
172
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
55 int g_aspect = AR_SQUARE;
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
56
133
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
57 int[] g_grids = new int[16];
f5c32f6470d0 Begin integrating more changes from Multipaint 1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 131
diff changeset
58
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
59 int[] g_r = new int[266];
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
60 int[] g_g = new int[266];
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
61 int[] g_b = new int[266];
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
62 int[] g_rgb = new int[266];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
63
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
64 byte[] g_map = new byte[88000];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
65 byte[] g_fillmap = new byte[88000];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
66 byte[] g_rmap = new byte[88000];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
67 byte[] g_icons = new byte[88000];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
68 byte[] g_brush = new byte[88000];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
69 byte[] g_template = new byte[16384];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
70 byte[] g_redo = new byte[1024];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
71 byte[] g_remdo = new byte[1024];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
72 int[] g_chaup = new int[64];
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
73 byte[] g_data = new byte[1024];
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
74 int[] g_magpix = new int[64];
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
75 int[] g_magpiy = new int[64];
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
76
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
77 byte g_realfront, g_realback;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
78
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
79
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
80 //dimensions
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
81 int X, Y, MX, MY;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
82 //generic mouse
154
1b2cbf3ab441 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
83 boolean g_klikkeri, g_iconmode = false;
143
5e18cb16bc4b Booleanize.
Matti Hamalainen <ccr@tnsp.org>
parents: 142
diff changeset
84 int g_ofx, g_ofy, g_button, g_realbutton, g_mx, g_my, g_orx, g_ory, g_msx, g_msy;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
85 //rubberband,mouse
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
86 int g_phase, g_rx, g_ry, g_rx2, g_ry2, g_rubbermode;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
87 int g_prex, g_prey, g_storedcoordx, g_storedcoordy;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
88 //window positioning
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
89 int g_windowx, g_windowy, g_maglocx, g_maglocy;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
90 int g_hedge, g_vedge, g_uizoom, g_wzoom;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
91 //icons & gui stuff
154
1b2cbf3ab441 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 153
diff changeset
92 int g_iconx, g_icony, g_piconx, g_picony;
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
93 int g_gridx, g_gridy, g_spare;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
94 int g_farge, g_backg, g_ofarge, g_repanel, g_msgctr;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
95 //machine related color properties
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
96 int g_attrimode, g_britemode, g_multic, g_backmode, g_maxcolors, g_hzoomer;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
97 float g_palsteps;
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
98 //brush, tool parameters
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
99 int g_bsourcex, g_bsourcey, g_bsourcex2, g_bsourcey2;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
100 int g_bsize, g_btype;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
101
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
102
83
6524e83c3ba7 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 82
diff changeset
103 void setup()
6524e83c3ba7 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 82
diff changeset
104 {
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
105 //normi
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
106 g_magpix[0] = 3;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
107 g_magpix[1] = 8;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
108 g_magpix[2] = 16;
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
109 g_magpiy[0] = 3;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
110 g_magpiy[1] = 8;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
111 g_magpiy[2] = 16;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
112
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
113 //mini
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
114 g_magpix[10] = 2;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
115 g_magpix[11] = 6;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
116 g_magpix[12] = 16;
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
117 g_magpiy[10] = 2;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
118 g_magpiy[11] = 6;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
119 g_magpiy[12] = 16;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
120
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
121 //maxi
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
122 g_magpix[20] = 4;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
123 g_magpix[21] = 16;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
124 g_magpix[22] = 32;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
125 g_magpiy[20] = 4;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
126 g_magpiy[21] = 16;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
127 g_magpiy[22] = 32;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
128
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
129 //FLAT normi
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
130 g_magpix[100] = 3;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
131 g_magpix[101] = 9;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
132 g_magpix[102] = 12;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
133 g_magpiy[100] = 2;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
134 g_magpiy[101] = 6;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
135 g_magpiy[102] = 8;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
136
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
137 //FLAT mini
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
138 g_magpix[110] = 3;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
139 g_magpix[111] = 9;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
140 g_magpix[112] = 12;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
141 g_magpiy[110] = 2;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
142 g_magpiy[111] = 6;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
143 g_magpiy[112] = 8;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
144
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
145 //FLAT maxi
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
146 g_magpix[120] = 6;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
147 g_magpix[121] = 12;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
148 g_magpix[122] = 21;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
149 g_magpiy[120] = 4;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
150 g_magpiy[121] = 8;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
151 g_magpiy[122] = 14;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
152
36
a39b3c9e5c3b Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 35
diff changeset
153 // Set up UI
25
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
154 g_uizoom = 2;
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
155 g_animspeed = 1;
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
156
36
a39b3c9e5c3b Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 35
diff changeset
157 // Get machine from Javascript runner, or default to C64
25
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
158 if (mpMachine)
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
159 machine = mpMachine;
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
160 else
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
161 machine = C64;
13dda1c3ae88 As we launch from a browser now, include the HTML and necessary Javascript
Matti Hamalainen <ccr@tnsp.org>
parents: 24
diff changeset
162
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
163 if (g_inhibit_aspect)
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
164 {
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
165 if (machine == QLLOW || machine == BK0010)
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
166 Y = 256;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
167 }
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
168
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
169 if (g_uizoom >= 1 && g_uizoom <= 3)
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
170 g_wzoom = g_uizoom + 1;
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
171
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
172 g_hedge = 32 * g_uizoom;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
173 g_vedge = 32 * g_uizoom;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
174
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
175 g_spare = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
176 g_bsize = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
177 g_btype = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
178 g_phase = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
179 g_button = LEFT;
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
180
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
181 g_data[int('f')] = 1; // fill on
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
182 g_data[int('g')] = 1; // grid on
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
183 g_data[int('m')] = 0;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
184 g_data[int('M')] = 0; // mags off
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
185
29
249c4f5742f3 Refactor the import/export stuff a bit and the GUI bits for JS.
Matti Hamalainen <ccr@tnsp.org>
parents: 28
diff changeset
186 g_icons = mpLoadBinaryFile("icons.bin");
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
187
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
188 set_tool(3);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
189
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
190 g_gridx = 8;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
191 g_gridy = 8;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
192 g_multic = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
193 g_repanel = -2;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
194
150
d7c13f427178 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 148
diff changeset
195
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
196 mpSetUIColors();
81
7ee5e0c590bd Clean set_machine() and rename to mpSetupMachine()
Matti Hamalainen <ccr@tnsp.org>
parents: 73
diff changeset
197 mpSetupMachine(machine);
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
198
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
199 if (g_forcedpalette.length() > 3)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
200 mpLoadPalette(g_forcedpalette);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
201
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
202 int truwinsizex = X * g_magpix[magmode()];
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
203 int truwinsizey = Y * g_magpiy[magmode()];
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
204 /*
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
205 if (g_forcex == 0 || g_forcey == 0)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
206 {
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
207 */
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
208 g_hadjust = 0;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
209 g_vadjust = 0;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
210
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
211 int hsize = truwinsizex + g_hedge + (22) * g_wzoom;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
212 int vsize = truwinsizey + g_vedge + (14) * g_wzoom;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
213
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
214 while (vsize - g_vedge < (12 * 16) * g_wzoom)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
215 vsize += 2;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
216
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
217 while (hsize - g_hedge < (17 * 16) * g_wzoom)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
218 hsize += 2;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
219
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
220 size(hsize, vsize);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
221 /*
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
222 }
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
223
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
224 if (g_forcex > 800 && g_forcey > 600)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
225 size(g_forcex, g_forcey);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
226 */
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
227
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
228 if (g_inhibit_aspect)
172
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
229 g_aspect = AR_SQUARE;
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
230
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
231 int paspect = g_wzoom;
172
e77a726a587e Rename FLATRATIO/SQUARERATIO and gridmode OLD/NEW constants to something more sane.
Matti Hamalainen <ccr@tnsp.org>
parents: 168
diff changeset
232 if (g_aspect == AR_FLAT)
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
233 {
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
234 if (g_wzoom == 2) paspect = 1;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
235 if (g_wzoom == 3) paspect = 2;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
236 if (g_wzoom == 4) paspect = 3;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
237 }
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
238
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
239 g_windowx = width - (g_hedge) - (truwinsizex);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
240 g_windowx = g_windowx / 2;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
241 g_windowy = height - (g_vedge) - (truwinsizey);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
242 g_windowy = g_windowy / 2;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
243
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
244 if (g_hadjust > 0)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
245 g_windowx = width - (g_hedge) - (g_wzoom * X) - g_hadjust;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
246
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
247 if (g_vadjust > 0)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
248 g_windowy = height - (g_vedge) - (paspect * Y) - g_vadjust;
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
249
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
250 switcher(3);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
251
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
252 g_map[4] = byte(g_maxcolors - 1);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
253 g_ofarge = g_farge;
7
c848a6133cfc Fix many calculations (divisions) that assume integer variable division
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
254 MX = int(X / 8);
c848a6133cfc Fix many calculations (divisions) that assume integer variable division
Matti Hamalainen <ccr@tnsp.org>
parents: 4
diff changeset
255 MY = int(Y / 8);
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
256 g_realfront = byte(g_farge);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
257 g_realback = byte(g_backg);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
258
83
6524e83c3ba7 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 82
diff changeset
259 for (int y = 0; y < Y; y++)
6524e83c3ba7 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 82
diff changeset
260 for (int x = 0; x < X; x++)
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
261 absolute_clearpoint(x, y);
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
262
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
263 switcher(2);
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
264 noStroke();
150
d7c13f427178 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 148
diff changeset
265 background(g_r[263], g_g[263], g_b[263]);
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
266 sussborder();
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
267 setup_raster();
83
6524e83c3ba7 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 82
diff changeset
268
159
fec2088cdd31 Change version.
Matti Hamalainen <ccr@tnsp.org>
parents: 154
diff changeset
269 message(" Multipaint| - 2018 -||v1.8.2018.JS");
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
270 message("*");
89
09c1a4aba305 Set dirty flag on setup.
Matti Hamalainen <ccr@tnsp.org>
parents: 88
diff changeset
271 g_dirty = true;
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
272 }
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
273
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
274
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
275 void mpSetUIColors()
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
276 {
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
277 // UI colors
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
278 makecolor(256, 0xff, 0, 0xff);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
279 makecolor(257, 180, 180, 180);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
280 // g_rgb[257] = 0xff808080;
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
281 makecolor(258, 0, 0, 0);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
282 makecolor(259, 48, 48, 48);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
283
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
284 // R,G and B for the palette sliders
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
285 makecolor(260, 255, 0, 0);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
286 makecolor(261, 0, 255, 0);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
287 makecolor(262, 0, 0, 255);
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
288 makecolor(263, 48, 48, 48); //backest UI background
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
289
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
290 }
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
291
101
e5c147a7bf98 Remove fexists(), it's not in use.
Matti Hamalainen <ccr@tnsp.org>
parents: 97
diff changeset
292 void mpSetTitle(String str)
e5c147a7bf98 Remove fexists(), it's not in use.
Matti Hamalainen <ccr@tnsp.org>
parents: 97
diff changeset
293 {
29
249c4f5742f3 Refactor the import/export stuff a bit and the GUI bits for JS.
Matti Hamalainen <ccr@tnsp.org>
parents: 28
diff changeset
294 console.log("TITLE: '" + str + "'");
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
295 }
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
296
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
297
117
44a07b1c620d Rename 'bool' -> 'boolean'.
Matti Hamalainen <ccr@tnsp.org>
parents: 114
diff changeset
298 boolean mpHaveLocalStorage()
102
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
299 {
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
300 var test = 'mpLSTest';
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
301 try {
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
302 localStorage.setItem(test, test);
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
303 if (localStorage.getItem(test) == test)
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
304 {
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
305 localStorage.removeItem(test);
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
306 return true;
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
307 }
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
308 }
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
309 catch (e) {
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
310 return false;
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
311 }
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
312 return false;
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
313 }
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
314
287892b5eff8 Add function for checking availability of browser local storage.
Matti Hamalainen <ccr@tnsp.org>
parents: 101
diff changeset
315
54
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
316 function mpLoadFileSelector(fmtname, fmtexts, fcallback)
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
317 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
318 var mpUI = stGE("mpUI");
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
319 if (mpUI)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
320 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
321 stClearChildren(mpUI);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
322 mpUI.style.background = "red";
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
323 mpUI.style.padding = "0.5em";
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
324
54
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
325 mobj = stCE("input", "mpFileSelector");
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
326 mobj.type = "file";
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
327 mobj.name = "name";
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
328 mobj.multiple = false;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
329
54
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
330 if (fmtexts != null)
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
331 mobj.accept = fmtexts;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
332
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
333 stAddEventOb(mobj.name, mobj, "change",
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
334 function(evt)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
335 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
336 var files = evt.target.files;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
337 if (files.length > 0)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
338 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
339 var freader = new FileReader();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
340
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
341 freader.onloadend = (function(theFile) {
58
8c47708f0196 Oops, forgot to commit this.
Matti Hamalainen <ccr@tnsp.org>
parents: 56
diff changeset
342 fcallback(theFile, new Uint8Array(freader.result));
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
343 });
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
344
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
345 freader.readAsArrayBuffer(files[0]);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
346 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
347 stClearChildren(mpUI);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
348 mpUI.style.background = null;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
349 });
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
350
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
351 mpUI.appendChild(mobj);
54
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
352
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
353 mobj = stCE("span", "mpFileInfo");
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
354 mobj.innerHTML = "Load / import an '<b>"+ fmtname +"</b>' file.";
dee55b8f97a6 Use defined format extensions in the file selector. Also display format name
Matti Hamalainen <ccr@tnsp.org>
parents: 53
diff changeset
355 mpUI.appendChild(mobj);
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
356 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
357 else
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
358 return null;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
359 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
360
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
361
52
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
362 //
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
363 // Basically the same as Processing loadBytes(), but it seems
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
364 // that Processing.JS's loadBytes() is broken at least in v1.4.8
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
365 // and does not return byte-clean data. So roll a replacement of
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
366 // our own design. --ccr
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
367 //
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
368 byte[] mpLoadBinaryFile(String url)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
369 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
370 var xhr = new XMLHttpRequest();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
371 xhr.open("GET", url, false);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
372 xhr.overrideMimeType("text/plain; charset=x-user-defined");
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
373 xhr.setRequestHeader("If-Modified-Since", "Fri, 01 Jan 1960 00:00:00 GMT");
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
374 xhr.send(null);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
375
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
376 if (xhr.status !== 200 && xhr.status !== 0)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
377 return null;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
378
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
379 var string = xhr.responseText;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
380 byte[] ret = new byte[string.length];
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
381
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
382 for (var i = 0; i < string.length; i++)
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
383 {
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
384 ret[i] = string.charCodeAt(i) & 0xff;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
385 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
386
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
387 return ret;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
388 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
389
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
390
103
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
391 Blob mpMakeBinaryBlob(byte[] data)
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
392 {
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
393 var blob = null;
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
394 if (data == null)
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
395 return null;
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
396
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
397 if (typeof(data) == "string")
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
398 blob = new Blob([data], {type: "application/octet-stream"});
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
399 else
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
400 if (typeof(data) == "object")
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
401 blob = new Blob([new Uint8Array(data)], {type: "application/octet-stream"});
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
402
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
403 return blob;
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
404 }
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
405
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
406
52
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
407 //
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
408 // "Save" a byte array to file. Basically creates a blob URI
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
409 // and dumps it in the DOM, giving user a download.
4f998eb1700a Add some comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 51
diff changeset
410 //
117
44a07b1c620d Rename 'bool' -> 'boolean'.
Matti Hamalainen <ccr@tnsp.org>
parents: 114
diff changeset
411 boolean mpSaveBinaryFile(String name, byte[] data)
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
412 {
103
7a889d59b405 Split Blob creation to mpMakeBinaryBlob().
Matti Hamalainen <ccr@tnsp.org>
parents: 102
diff changeset
413 var blob = mpMakeBinaryBlob(data);
96
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
414 if (blob == null)
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
415 {
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
416 console.log("Could not create BLOB from data.");
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
417 return false;
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
418 }
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
419
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
420 var url = window.URL.createObjectURL(blob);
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
421 if (url == null)
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
422 {
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
423 console.log("Could not create URL from BLOB object.");
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
424 return false;
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
425 }
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
426
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
427 var alink = stCE("a");
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
428 var mpUI = stGE("mpUI");
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
429 stClearChildren(mpUI);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
430 mpUI.appendChild(alink);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
431
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
432 alink.style = "display: none";
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
433 alink.href = url;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
434 alink.download = name;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
435 alink.click();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
436
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
437 window.URL.revokeObjectURL(url);
96
2d4b56e4d966 Improve mpSaveBinaryFile() to also handle string format data. Also improve
Matti Hamalainen <ccr@tnsp.org>
parents: 94
diff changeset
438 return true;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
439 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
440
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
441
175
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
442 // bordh/v = 64, 32, omag = 1
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
443 void mpSavePNGImage(String name, int fmt, boolean border, int bordh, int bordv, int omag)
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
444 {
175
3ddf4d799fe6 Get rid of globals g_omag, g_bordh and g_bordv which set PNG/JPEG image
Matti Hamalainen <ccr@tnsp.org>
parents: 172
diff changeset
445 PImage simg = mpRenderImage(border, bordh, bordv, omag);
94
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
446 // if (g_data[int('Q')] == 0)
88
03823fa2cb01 Refactor export_image() and export_image_sans_border() to use common code,
Matti Hamalainen <ccr@tnsp.org>
parents: 84
diff changeset
447
94
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
448 if (simg !== null)
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
449 {
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
450 // XXX TODO .. actually save the image, something like ..
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
451 //simg.canvas.toBlob(function(idata){ mpSaveBinaryFile(name, idata); }, "image/png", 0.95);
6e74d45ea620 More work towards jpeg/png image export/import.
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
452 }
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
453 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
454
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
455
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
456 int mpLoadPNGImage(String name)
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
457 {
92
4161d798cb64 Clean up/refactor image (jpeg/png) importing a bit and rename function.
Matti Hamalainen <ccr@tnsp.org>
parents: 90
diff changeset
458 PImage simg = null;
4161d798cb64 Clean up/refactor image (jpeg/png) importing a bit and rename function.
Matti Hamalainen <ccr@tnsp.org>
parents: 90
diff changeset
459 if (simg == null)
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
460 return -1;
92
4161d798cb64 Clean up/refactor image (jpeg/png) importing a bit and rename function.
Matti Hamalainen <ccr@tnsp.org>
parents: 90
diff changeset
461
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
462 int lefth = g_farge;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
463 int righth = g_backg;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
464 storeparameters();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
465
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
466 g_data[int('d')] = 0;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
467 g_data[int('t')] = 0;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
468 g_data[int('b')] = 1; //old IQ
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
469
92
4161d798cb64 Clean up/refactor image (jpeg/png) importing a bit and rename function.
Matti Hamalainen <ccr@tnsp.org>
parents: 90
diff changeset
470 if (!mpImportFromImage(simg))
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
471 return -2;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
472
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
473 restoreparameters();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
474 refreshpalette();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
475 refresh();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
476 g_boxreconstruct = 2;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
477 selectcolor(0, lefth);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
478 selectcolor(1, righth);
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
479 return 0;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
480 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
481
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
482
104
73a8773466ae Change mpSaveNativeImage() to mpGetNativeImage().
Matti Hamalainen <ccr@tnsp.org>
parents: 103
diff changeset
483 byte[] mpGetNativeImage()
53
c551029a7086 Cosmetic.
Matti Hamalainen <ccr@tnsp.org>
parents: 52
diff changeset
484 {
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
485 //save the picture page g_map[], make sure some essential parameters are correct
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
486 g_map[3] = byte(machine);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
487 g_map[5] = byte(MX);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
488 g_map[7] = byte(MY);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
489
104
73a8773466ae Change mpSaveNativeImage() to mpGetNativeImage().
Matti Hamalainen <ccr@tnsp.org>
parents: 103
diff changeset
490 return g_map;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
491 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
492
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
493
117
44a07b1c620d Rename 'bool' -> 'boolean'.
Matti Hamalainen <ccr@tnsp.org>
parents: 114
diff changeset
494 int mpSetNativeImage(byte[] data, boolean noError)
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
495 {
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
496 if (data == null)
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
497 return -1;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
498
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
499 if (data[3] != machine && !noError)
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
500 return -2;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
501
111
044e3371d44b Do store_undo() in mpSetNativeImage() when supposedly successfully loading
Matti Hamalainen <ccr@tnsp.org>
parents: 110
diff changeset
502 store_undo();
044e3371d44b Do store_undo() in mpSetNativeImage() when supposedly successfully loading
Matti Hamalainen <ccr@tnsp.org>
parents: 110
diff changeset
503
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
504 g_map = data;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
505
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
506 refreshpalette();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
507 consistency();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
508 g_farge = int(g_realfront);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
509 g_ofarge = g_farge;
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
510 g_backg = int(g_realback);
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
511 sussborder();
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
512
97
65e6cacd068c Make PRG export work. Also some improvements in overall error handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 96
diff changeset
513 return 0;
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
514 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
515
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
516
117
44a07b1c620d Rename 'bool' -> 'boolean'.
Matti Hamalainen <ccr@tnsp.org>
parents: 114
diff changeset
517 int mpLoadNativeImage(String name, boolean noError)
55
7194cdcc9dab Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 54
diff changeset
518 {
7194cdcc9dab Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 54
diff changeset
519 return mpSetNativeImage(
7194cdcc9dab Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 54
diff changeset
520 mpLoadBinaryFile(name), noError);
28
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
521 }
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
522
edcf9039552b Add several new helper functions for loading and saving formats using Javascript facilities.
Matti Hamalainen <ccr@tnsp.org>
parents: 27
diff changeset
523
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
524 boolean mpLoadPalette(String fname)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
525 {
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
526 if (g_map[13] != C64)
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
527 {
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
528 return false;
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
529 }
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
530
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
531 byte fdata[] = mpLoadbinaryFile(fname);
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
532 if (fdata == null ||
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
533 fdata.length != 772 ||
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
534 fdata[0x301] != byte(0x10) ||
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
535 fdata[0x302] != byte(0xff) ||
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
536 fdata[0x303] != byte(0xff))
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
537 {
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
538 return false;
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
539 }
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
540
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
541 for (int n = 0; n < 16; n++)
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
542 {
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
543 makecolor(n,
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
544 int(fdata[n * 3]),
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
545 int(fdata[n * 3 + 1]),
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
546 int(fdata[n * 3 + 2]));
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
547 }
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
548
162
ca07bdf66a70 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 159
diff changeset
549 mpSetUIColors();
153
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
550
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
551 sussborder();
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
552 refresh_all();
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
553
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
554 return true;
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
555 }
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
556
9f4e6f888120 Integrate more changes from v1.8.2018.
Matti Hamalainen <ccr@tnsp.org>
parents: 150
diff changeset
557
69
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
558 void draw()
3d40683b367a Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 60
diff changeset
559 {
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
560 if (!focused)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
561 {
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
562 g_control = false;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
563 g_shift = false;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
564 }
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
565
72
5e7553e9aee0 Improve 'dirty' flag for only updating canvas when something changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
566 // If there should be no update, do not update.
73
d2a89e88f958 When in rubberband mode, do not delay screen updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 72
diff changeset
567 if (!g_dirty && !g_rubbermode)
72
5e7553e9aee0 Improve 'dirty' flag for only updating canvas when something changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
568 return;
5e7553e9aee0 Improve 'dirty' flag for only updating canvas when something changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
569 g_dirty = false;
5e7553e9aee0 Improve 'dirty' flag for only updating canvas when something changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
570
5e7553e9aee0 Improve 'dirty' flag for only updating canvas when something changes.
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
571 // Animate animbrush
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
572 if (g_data[int('n')] == 1)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
573 {
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
574 if (++g_animtime > 8 - g_animspeed * 2)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
575 {
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
576 animbrush_do();
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
577 g_animtime = 0;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
578 }
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
579 }
9
dfdc18b62fab Change the help() function and its usage to have more than one parameter to
Matti Hamalainen <ccr@tnsp.org>
parents: 7
diff changeset
580
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
581 // Update some mouse variables
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
582 if (g_data[int('m')] == 0 && g_data[int('M')] == 0)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
583 {
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
584 g_mx = g_msx - g_windowx;
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
585 g_my = g_msy - g_windowy;
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
586 }
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
587 else
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
588 {
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
589 g_mx = mouseX;
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
590 g_my = mouseY;
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
591 }
11
c1667eb54808 Cosmetics and indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
592
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
593 g_msx = mouseX;
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
594 g_msy = mouseY;
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
595
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
596 // Actual tool drawing
145
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
597 if (g_tooltrigger == 1 &&
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
598 g_mx <= width - g_hedge &&
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
599 g_my <= height - g_vedge)
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
600 do_tool(g_mx, g_my, g_button);
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
601
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
602 switcher(0);
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
603
142
1ec3488bfd1e Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 136
diff changeset
604 for (int i = 0; i < 1024; i++)
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
605 g_remdo[i] = 0;
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
606
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
607 // Tool drawing for shows
135
72ae62f2036b Cosmetic cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 133
diff changeset
608 int savebut = g_button;
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
609 if (tool() != 5)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
610 {
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
611 if (g_phase == 0)
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
612 g_button = LEFT;
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
613 do_tool(g_mx, g_my, LEFT);
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
614 }
148
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
615 else
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
616 storecoords(g_mx, g_my);
d80871032cdd More change integration.
Matti Hamalainen <ccr@tnsp.org>
parents: 145
diff changeset
617
150
d7c13f427178 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 148
diff changeset
618 if (tool() == 6) do_line(g_rx, g_ry, g_rx2, g_ry2, 0);
d7c13f427178 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 148
diff changeset
619 if (tool() == 7) do_circle(g_rx, g_ry, g_rx2, g_ry2);
d7c13f427178 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 148
diff changeset
620 if (tool() == 8) do_rectangle(g_rx, g_ry, g_rx2, g_ry2);
135
72ae62f2036b Cosmetic cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 133
diff changeset
621 g_button = savebut;
39
5e0306ac3575 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 36
diff changeset
622
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
623 // Screen update stuff
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
624 loadPixels();
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
625 viewport();
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
626 switcher(1);
145
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
627
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
628 if (g_pgrab)
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
629 preview_box_drag();
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
630
5af8b5ddf349 Merge and clean up changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 143
diff changeset
631 preview_window();
136
12cf30907f26 More work on integrating changes from v1.8.2018
Matti Hamalainen <ccr@tnsp.org>
parents: 135
diff changeset
632 update_ui(false);
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
633 updatePixels();
11
c1667eb54808 Cosmetics and indentation.
Matti Hamalainen <ccr@tnsp.org>
parents: 9
diff changeset
634
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
635 // Message control
40
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
636 if (g_msgctr > 0)
8d2362b6ac12 Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 39
diff changeset
637 g_msgctr--;
2
5eb3559e1778 Run everything through JS-beautifier and remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
638
113
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
639 // Macro handling
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
640 if (g_keymacro.length() > g_keymacpos)
f87c6577e696 Cleanups and few comments added.
Matti Hamalainen <ccr@tnsp.org>
parents: 112
diff changeset
641 {
0
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
642 macro_command(g_keymacro.charAt(g_keymacpos));
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
643 g_keymacpos++;
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
644 }
ebd5689e2985 Initial import of Multipaint sketch version 22.5.2017.
Tero Heikkinen
parents:
diff changeset
645 }