... |
... |
@@ -87,8 +87,6 @@ |
87
|
87
|
|
88
|
88
|
static struct status_
|
89
|
89
|
{
|
90
|
|
- int update;
|
91
|
|
-
|
92
|
90
|
const char* keys;
|
93
|
91
|
const char* dims;
|
94
|
92
|
const char* device;
|
... |
... |
@@ -113,8 +111,7 @@ |
113
|
111
|
unsigned char filter_weights[5];
|
114
|
112
|
int fw_idx;
|
115
|
113
|
|
116
|
|
- } status = { 1,
|
117
|
|
- "", DIM, NULL, RENDER_MODE_ALL,
|
|
114
|
+ } status = { "", DIM, NULL, RENDER_MODE_ALL,
|
118
|
115
|
72, 48, 1, 0.04, 0.04, 0.02, 0.22,
|
119
|
116
|
0, 0, 0, 0, 0, 0,
|
120
|
117
|
FT_LCD_FILTER_DEFAULT, { 0x08, 0x4D, 0x56, 0x4D, 0x08 }, 2 };
|
... |
... |
@@ -1092,9 +1089,10 @@ |
1092
|
1089
|
Process_Event( void )
|
1093
|
1090
|
{
|
1094
|
1091
|
grEvent event;
|
1095
|
|
- int ret = 0;
|
|
1092
|
+ int update = 0;
|
1096
|
1093
|
|
1097
|
1094
|
|
|
1095
|
+ Start:
|
1098
|
1096
|
if ( *status.keys )
|
1099
|
1097
|
event.key = grKEY( *status.keys++ );
|
1100
|
1098
|
else
|
... |
... |
@@ -1103,26 +1101,20 @@ |
1103
|
1101
|
grListenSurface( display->surface, 0, &event );
|
1104
|
1102
|
|
1105
|
1103
|
if ( event.type == gr_event_resize )
|
1106
|
|
- {
|
1107
|
|
- status.update = 1;
|
1108
|
|
- return ret;
|
1109
|
|
- }
|
|
1104
|
+ return 1;
|
1110
|
1105
|
}
|
1111
|
1106
|
|
1112
|
|
- status.update = 0;
|
1113
|
|
-
|
1114
|
1107
|
if ( event.key >= '1' && event.key < '1' + N_RENDER_MODES )
|
1115
|
1108
|
{
|
1116
|
1109
|
int render_mode = (int)( event.key - '1' );
|
1117
|
1110
|
|
1118
|
1111
|
|
1119
|
1112
|
if ( status.render_mode == render_mode )
|
1120
|
|
- return ret;
|
|
1113
|
+ goto Start;
|
1121
|
1114
|
|
1122
|
1115
|
status.render_mode = render_mode;
|
1123
|
1116
|
event_render_mode_change( 0 );
|
1124
|
|
- status.update = 1;
|
1125
|
|
- return ret;
|
|
1117
|
+ return 1;
|
1126
|
1118
|
}
|
1127
|
1119
|
|
1128
|
1120
|
if ( event.key >= 'A' && event.key < 'A' + N_LCD_IDXS )
|
... |
... |
@@ -1131,27 +1123,24 @@ |
1131
|
1123
|
|
1132
|
1124
|
|
1133
|
1125
|
if ( status.lcd_idx == lcd_idx )
|
1134
|
|
- return ret;
|
|
1126
|
+ goto Start;
|
1135
|
1127
|
|
1136
|
1128
|
handle->lcd_mode = lcd_modes[lcd_idx];
|
1137
|
1129
|
FTDemo_Update_Current_Flags( handle );
|
1138
|
|
- status.update = 1;
|
1139
|
1130
|
status.lcd_idx = lcd_idx;
|
1140
|
|
- return ret;
|
|
1131
|
+ return 1;
|
1141
|
1132
|
}
|
1142
|
1133
|
|
1143
|
1134
|
switch ( event.key )
|
1144
|
1135
|
{
|
1145
|
1136
|
case grKeyEsc:
|
1146
|
1137
|
case grKEY( 'q' ):
|
1147
|
|
- ret = 1;
|
1148
|
|
- break;
|
|
1138
|
+ return 0;
|
1149
|
1139
|
|
1150
|
1140
|
case grKeyF1:
|
1151
|
1141
|
case grKEY( '?' ):
|
1152
|
1142
|
event_help();
|
1153
|
|
- status.update = 1;
|
1154
|
|
- break;
|
|
1143
|
+ return 1;
|
1155
|
1144
|
|
1156
|
1145
|
case grKEY( 'P' ):
|
1157
|
1146
|
{
|
... |
... |
@@ -1161,57 +1150,51 @@ |
1161
|
1150
|
FTDemo_Version( handle, str );
|
1162
|
1151
|
FTDemo_Display_Print( display, "ftview.png", str );
|
1163
|
1152
|
}
|
1164
|
|
- status.update = 0;
|
1165
|
|
- break;
|
|
1153
|
+ goto Start;
|
1166
|
1154
|
|
1167
|
1155
|
case grKEY( 'b' ):
|
1168
|
1156
|
handle->use_sbits = !handle->use_sbits;
|
1169
|
1157
|
FTDemo_Update_Current_Flags( handle );
|
1170
|
|
- status.update = 1;
|
1171
|
|
- break;
|
|
1158
|
+ return 1;
|
1172
|
1159
|
|
1173
|
1160
|
case grKEY( 'c' ):
|
1174
|
1161
|
handle->use_color = !handle->use_color;
|
1175
|
1162
|
FTDemo_Update_Current_Flags( handle );
|
1176
|
|
- status.update = 1;
|
1177
|
|
- break;
|
|
1163
|
+ return 1;
|
1178
|
1164
|
|
1179
|
1165
|
case grKEY( 'z' ):
|
1180
|
1166
|
handle->use_layers = !handle->use_layers;
|
1181
|
1167
|
FTDemo_Update_Current_Flags( handle );
|
1182
|
|
- status.update = 1;
|
1183
|
|
- break;
|
|
1168
|
+ return 1;
|
1184
|
1169
|
|
1185
|
1170
|
case grKEY( 'i' ):
|
1186
|
|
- status.update = event_palette_change( 1 );
|
|
1171
|
+ update = event_palette_change( 1 );
|
1187
|
1172
|
break;
|
1188
|
1173
|
|
1189
|
1174
|
case grKEY( 'I' ):
|
1190
|
|
- status.update = event_palette_change( -1 );
|
|
1175
|
+ update = event_palette_change( -1 );
|
1191
|
1176
|
break;
|
1192
|
1177
|
|
1193
|
1178
|
case grKEY( 'K' ):
|
1194
|
1179
|
handle->use_sbits_cache = !handle->use_sbits_cache;
|
1195
|
|
- status.update = 1;
|
1196
|
|
- break;
|
|
1180
|
+ return 1;
|
1197
|
1181
|
|
1198
|
1182
|
case grKEY( 'f' ):
|
1199
|
1183
|
if ( handle->hinted )
|
1200
|
1184
|
{
|
1201
|
1185
|
handle->autohint = !handle->autohint;
|
1202
|
1186
|
FTDemo_Update_Current_Flags( handle );
|
1203
|
|
- status.update = 1;
|
|
1187
|
+ return 1;
|
1204
|
1188
|
}
|
1205
|
|
- break;
|
|
1189
|
+ goto Start;
|
1206
|
1190
|
|
1207
|
1191
|
case grKEY( 'h' ):
|
1208
|
1192
|
handle->hinted = !handle->hinted;
|
1209
|
1193
|
FTDemo_Update_Current_Flags( handle );
|
1210
|
|
- status.update = 1;
|
1211
|
|
- break;
|
|
1194
|
+ return 1;
|
1212
|
1195
|
|
1213
|
1196
|
case grKEY( 'H' ):
|
1214
|
|
- status.update = FTDemo_Hinting_Engine_Change( handle );
|
|
1197
|
+ update = FTDemo_Hinting_Engine_Change( handle );
|
1215
|
1198
|
break;
|
1216
|
1199
|
|
1217
|
1200
|
case grKEY( 'l' ):
|
... |
... |
@@ -1223,120 +1206,112 @@ |
1223
|
1206
|
|
1224
|
1207
|
handle->lcd_mode = lcd_modes[status.lcd_idx];
|
1225
|
1208
|
FTDemo_Update_Current_Flags( handle );
|
1226
|
|
- status.update = 1;
|
1227
|
|
- break;
|
|
1209
|
+ return 1;
|
1228
|
1210
|
|
1229
|
1211
|
case grKeySpace:
|
1230
|
1212
|
event_render_mode_change( 1 );
|
1231
|
|
- status.update = 1;
|
1232
|
|
- break;
|
|
1213
|
+ return 1;
|
1233
|
1214
|
|
1234
|
1215
|
case grKeyBackSpace:
|
1235
|
1216
|
event_render_mode_change( -1 );
|
1236
|
|
- status.update = 1;
|
1237
|
|
- break;
|
|
1217
|
+ return 1;
|
1238
|
1218
|
|
1239
|
1219
|
case grKeyTab:
|
1240
|
|
- status.update = event_encoding_change();
|
|
1220
|
+ update = event_encoding_change();
|
1241
|
1221
|
break;
|
1242
|
1222
|
|
1243
|
1223
|
case grKEY( 's' ):
|
1244
|
1224
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1245
|
|
- status.update = event_slant_change( 0.02 );
|
|
1225
|
+ update = event_slant_change( 0.02 );
|
1246
|
1226
|
break;
|
1247
|
1227
|
|
1248
|
1228
|
case grKEY( 'S' ):
|
1249
|
1229
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1250
|
|
- status.update = event_slant_change( -0.02 );
|
|
1230
|
+ update = event_slant_change( -0.02 );
|
1251
|
1231
|
break;
|
1252
|
1232
|
|
1253
|
1233
|
case grKEY( 'r' ):
|
1254
|
1234
|
if ( status.render_mode == RENDER_MODE_STROKE )
|
1255
|
|
- status.update = event_radius_change( 0.005 );
|
|
1235
|
+ update = event_radius_change( 0.005 );
|
1256
|
1236
|
break;
|
1257
|
1237
|
|
1258
|
1238
|
case grKEY( 'R' ):
|
1259
|
1239
|
if ( status.render_mode == RENDER_MODE_STROKE )
|
1260
|
|
- status.update = event_radius_change( -0.005 );
|
|
1240
|
+ update = event_radius_change( -0.005 );
|
1261
|
1241
|
break;
|
1262
|
1242
|
|
1263
|
1243
|
case grKEY( 'x' ):
|
1264
|
1244
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1265
|
|
- status.update = event_bold_change( 0.005, 0.0 );
|
|
1245
|
+ update = event_bold_change( 0.005, 0.0 );
|
1266
|
1246
|
break;
|
1267
|
1247
|
|
1268
|
1248
|
case grKEY( 'X' ):
|
1269
|
1249
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1270
|
|
- status.update = event_bold_change( -0.005, 0.0 );
|
|
1250
|
+ update = event_bold_change( -0.005, 0.0 );
|
1271
|
1251
|
break;
|
1272
|
1252
|
|
1273
|
1253
|
case grKEY( 'y' ):
|
1274
|
1254
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1275
|
|
- status.update = event_bold_change( 0.0, 0.005 );
|
|
1255
|
+ update = event_bold_change( 0.0, 0.005 );
|
1276
|
1256
|
break;
|
1277
|
1257
|
|
1278
|
1258
|
case grKEY( 'Y' ):
|
1279
|
1259
|
if ( status.render_mode == RENDER_MODE_FANCY )
|
1280
|
|
- status.update = event_bold_change( 0.0, -0.005 );
|
|
1260
|
+ update = event_bold_change( 0.0, -0.005 );
|
1281
|
1261
|
break;
|
1282
|
1262
|
|
1283
|
1263
|
case grKEY( 'g' ):
|
1284
|
1264
|
FTDemo_Display_Gamma_Change( display, 1 );
|
1285
|
|
- status.update = 1;
|
1286
|
|
- break;
|
|
1265
|
+ return 1;
|
1287
|
1266
|
|
1288
|
1267
|
case grKEY( 'v' ):
|
1289
|
1268
|
FTDemo_Display_Gamma_Change( display, -1 );
|
1290
|
|
- status.update = 1;
|
1291
|
|
- break;
|
|
1269
|
+ return 1;
|
1292
|
1270
|
|
1293
|
1271
|
case grKEY( 'n' ):
|
1294
|
|
- status.update = event_font_change( 1 );
|
|
1272
|
+ update = event_font_change( 1 );
|
1295
|
1273
|
break;
|
1296
|
1274
|
|
1297
|
1275
|
case grKEY( 'p' ):
|
1298
|
|
- status.update = event_font_change( -1 );
|
|
1276
|
+ update = event_font_change( -1 );
|
1299
|
1277
|
break;
|
1300
|
1278
|
|
1301
|
1279
|
case grKeyUp:
|
1302
|
|
- status.update = event_size_change( 64 );
|
|
1280
|
+ update = event_size_change( 64 );
|
1303
|
1281
|
break;
|
1304
|
1282
|
case grKeyDown:
|
1305
|
|
- status.update = event_size_change( -64 );
|
|
1283
|
+ update = event_size_change( -64 );
|
1306
|
1284
|
break;
|
1307
|
1285
|
case grKeyPageUp:
|
1308
|
|
- status.update = event_size_change( 640 );
|
|
1286
|
+ update = event_size_change( 640 );
|
1309
|
1287
|
break;
|
1310
|
1288
|
case grKeyPageDown:
|
1311
|
|
- status.update = event_size_change( -640 );
|
|
1289
|
+ update = event_size_change( -640 );
|
1312
|
1290
|
break;
|
1313
|
1291
|
|
1314
|
1292
|
case grKeyLeft:
|
1315
|
|
- status.update = event_index_change( -1 );
|
|
1293
|
+ update = event_index_change( -1 );
|
1316
|
1294
|
break;
|
1317
|
1295
|
case grKeyRight:
|
1318
|
|
- status.update = event_index_change( 1 );
|
|
1296
|
+ update = event_index_change( 1 );
|
1319
|
1297
|
break;
|
1320
|
1298
|
case grKeyF7:
|
1321
|
|
- status.update = event_index_change( -0x10 );
|
|
1299
|
+ update = event_index_change( -0x10 );
|
1322
|
1300
|
break;
|
1323
|
1301
|
case grKeyF8:
|
1324
|
|
- status.update = event_index_change( 0x10 );
|
|
1302
|
+ update = event_index_change( 0x10 );
|
1325
|
1303
|
break;
|
1326
|
1304
|
case grKeyF9:
|
1327
|
|
- status.update = event_index_change( -0x100 );
|
|
1305
|
+ update = event_index_change( -0x100 );
|
1328
|
1306
|
break;
|
1329
|
1307
|
case grKeyF10:
|
1330
|
|
- status.update = event_index_change( 0x100 );
|
|
1308
|
+ update = event_index_change( 0x100 );
|
1331
|
1309
|
break;
|
1332
|
1310
|
case grKeyF11:
|
1333
|
|
- status.update = event_index_change( -0x1000 );
|
|
1311
|
+ update = event_index_change( -0x1000 );
|
1334
|
1312
|
break;
|
1335
|
1313
|
case grKeyF12:
|
1336
|
|
- status.update = event_index_change( 0x1000 );
|
1337
|
|
- break;
|
1338
|
|
-
|
1339
|
|
- default:
|
|
1314
|
+ update = event_index_change( 0x1000 );
|
1340
|
1315
|
break;
|
1341
|
1316
|
}
|
1342
|
1317
|
|
... |
... |
@@ -1366,8 +1341,7 @@ |
1366
|
1341
|
status.lcd_filter = -1;
|
1367
|
1342
|
}
|
1368
|
1343
|
|
1369
|
|
- status.update = 1;
|
1370
|
|
- break;
|
|
1344
|
+ return 1;
|
1371
|
1345
|
|
1372
|
1346
|
case grKEY( '[' ):
|
1373
|
1347
|
if ( status.lcd_filter < 0 )
|
... |
... |
@@ -1375,9 +1349,9 @@ |
1375
|
1349
|
status.fw_idx--;
|
1376
|
1350
|
if ( status.fw_idx < 0 )
|
1377
|
1351
|
status.fw_idx = 4;
|
1378
|
|
- status.update = 1;
|
|
1352
|
+ return 1;
|
1379
|
1353
|
}
|
1380
|
|
- break;
|
|
1354
|
+ goto Start;
|
1381
|
1355
|
|
1382
|
1356
|
case grKEY( ']' ):
|
1383
|
1357
|
if ( status.lcd_filter < 0 )
|
... |
... |
@@ -1385,33 +1359,33 @@ |
1385
|
1359
|
status.fw_idx++;
|
1386
|
1360
|
if ( status.fw_idx > 4 )
|
1387
|
1361
|
status.fw_idx = 0;
|
1388
|
|
- status.update = 1;
|
|
1362
|
+ return 1;
|
1389
|
1363
|
}
|
1390
|
|
- break;
|
|
1364
|
+ goto Start;
|
1391
|
1365
|
|
1392
|
1366
|
case grKEY( '-' ):
|
1393
|
1367
|
if ( status.lcd_filter < 0 )
|
1394
|
1368
|
{
|
1395
|
1369
|
event_fw_change( -1 );
|
1396
|
|
- status.update = 1;
|
|
1370
|
+ return 1;
|
1397
|
1371
|
}
|
1398
|
|
- break;
|
|
1372
|
+ goto Start;
|
1399
|
1373
|
|
1400
|
1374
|
case grKEY( '+' ):
|
1401
|
1375
|
case grKEY( '=' ):
|
1402
|
1376
|
if ( status.lcd_filter < 0 )
|
1403
|
1377
|
{
|
1404
|
1378
|
event_fw_change( 1 );
|
1405
|
|
- status.update = 1;
|
|
1379
|
+ return 1;
|
1406
|
1380
|
}
|
1407
|
|
- break;
|
1408
|
|
-
|
1409
|
|
- default:
|
1410
|
|
- break;
|
|
1381
|
+ goto Start;
|
1411
|
1382
|
}
|
1412
|
1383
|
}
|
1413
|
1384
|
|
1414
|
|
- return ret;
|
|
1385
|
+ if ( !update )
|
|
1386
|
+ goto Start;
|
|
1387
|
+
|
|
1388
|
+ return 1;
|
1415
|
1389
|
}
|
1416
|
1390
|
|
1417
|
1391
|
|
... |
... |
@@ -1854,9 +1828,6 @@ |
1854
|
1828
|
|
1855
|
1829
|
do
|
1856
|
1830
|
{
|
1857
|
|
- if ( !status.update )
|
1858
|
|
- continue;
|
1859
|
|
-
|
1860
|
1831
|
FTDemo_Display_Clear( display );
|
1861
|
1832
|
|
1862
|
1833
|
switch ( status.render_mode )
|
... |
... |
@@ -1887,7 +1858,7 @@ |
1887
|
1858
|
|
1888
|
1859
|
write_header( last );
|
1889
|
1860
|
|
1890
|
|
- } while ( Process_Event() == 0 );
|
|
1861
|
+ } while ( Process_Event() );
|
1891
|
1862
|
|
1892
|
1863
|
printf( "Execution completed successfully.\n" );
|
1893
|
1864
|
if ( status.num_fails )
|