forked from ghaerr/microwindows
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
2371 lines (2349 loc) · 130 KB
/
Copy pathChangeLog
File metadata and controls
2371 lines (2349 loc) · 130 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
8 Jun 2019
* fix event jam preventing event handling with SDL touch input, don't return from GsSelect preselect
* add GR_TIMEOUT_BLOCK, GR_TIMEOUT_POLL and GR_TIMEOUT_MSECS() parameter helpers for GrGetNextEventTimeout()
* fix nanowm window reposition on fullscreen to 0,0
3 Jun 2019
* fix DEVMICEMOUSE scrollwheel on Linux
2 Jun 2019
* fix Linux framebuffer driver scr_fb.c to always use MWPF_TRUECOLORARGB format, fix various compilation errors
* ESC key -> MWKEY_QUIT (ESC quits) in SCANKBD (kbd_ttyscan.c) linux keyboard driver
* fix RGBA->RGBA window move blit not using frameblit in TRUECOLORABGR case on Linux framebuffer
1 Jun 2019
* cleanup mem and resource leaks reported by cppcheck
* optimize window buffer mmap routines, fix fbe to automatically recreate framebuffer when size changes
31 May 2019
* add client memory-mapped window buffers for AGG 2.6, use with GrNewBufferedWindow & GrOpenClientFramebuffer
* GrOpenClientFramebuffer works with all systems, allows mmap of window buffer, framebuffer or FBE
GR_WM_PROPS_BUFFER_MMAP - direct mmap shared access to window buffer from Nano-X client
GR_WM_PROPS_BUFFER_RGBA - buffer format is MWIF_RGBA8888
GR_WM_PROPS_BUFFER_BGRA - buffer format is MWIF_BGRA8888
GR_WM_PROPS_BUFFER_MWPF - buffer format is same as MWPF_ pixel format from config
* remove Linux dependencies from scr_fb.c, can be used as FBE driver by setting FRAMEBUFFER=/tmp/fb0 in env
23 May 2019
* add MW_FEATURE_RESIZEFRAME, allows running standalone win32 or Nano-X apps with resized OS frame to app
requires LINK_APP_INTO_SERVER for Nano-X, set in include/mwconfig.h. Implemented on X11 only for now.
* fix runapp when mwin only, reverse colors in demo-aafont/demo-ttfont when NUKLEAR look
22 May 2019
* fix small compiler-caught bugfixes in StretchBlt client coord conversion, MwPrepareDC clipregion bound 0,0
* cleanup nano-X eventclient debug printfs
21 May 2019
* fix nuklear demo in LINK_APP_INTO_SERVER case with GrGetNextEventTimeout/GrPeekEvent issue
* fix nuklear application window size off-by-one
* cleanup #include serv.h in nanox/client.c bringing in server globals needlessly
* cleanup unneeded header file #includes
* cleanup microwindows/doc and microwindows/src/docs directories
20 May 2019
* add scrollwheel handling to DEVMICEMOUSE Linux mouse driver drivers/mou_devmice.c
19 May 2019
* write FBE mouse and kbd drivers allowing Microwindows framebuffer operation on non-framebuffer systems
use by setting SCREEN=FBE in config, run bin/fbe. Framebuffer mmap and fifos created in /tmp.
* added Configs/config.linux-fbe, config.macosx-fbe
* fix fbe display bugs
16 May 2019
* add Nuklear app resize handling
* simplify Nano-X window creation with Nuklear apps, fix title and auto-size window
requires adding nk_nxlib_create_window(ctx) inbetween nk_begin/nk_end
15 May 2019
* fix Nano-X multiple app exit bug due to chld updates sent to non-owned window event clients
this caused nanowm to create container windows owned by the wrong client
* full port of seperate Nuklear applications to Nano-X running client/server (see demos/nuklear, bin/demo-nuklear*)
* added new, updated Nano-X application window frame/color scheme, resembles Nuklear UI
* added NUKLEARUI=N config option to use old Nano-X window/color scheme
* renamed GR_COLOR_WINDOWFRAME to GR_COLOR_3DFRAME, introduced new GR_COLOR_WINDOWFRAME, GR_COLOR_WINDOWFRAMELT
14 May 2019
* fix X11 mouse button/movement event overwrite driver bug
* fix demo-aafont: Nano-X buffered window apps must use map not expose events for drawing
nanowm extraneous event cleanup was sending extra expose event causing improper behaviour
12 May 2019
* add mouse scroll wheel handling to Allegro 5 mouse driver
11 May 2019
* add mouse scroll wheel handling to SDL2 and X11 mouse drivers
* add mouse scroll wheel handling to Nano-X, uses GR_BUTTON_SCROLLUP/DN mouse buttons
* fix linked-in nanowm to work after first client exit, was missing mwconfig.h NANOWM define
* cleanup nanowm CHLD_UPDATE event handling, don't send events handled by nanowm to application
* remove extraneous nanowm container window events being sent to application event loop, fixes nuklear mousedn
7 May 2019
* Add src/aggtest: new AGG-based anti-aliased thick-line stroke/fill draw code for Nuklear GUI port
1 May 2019
* fix link problem when WM_FEATURE_INTL set
30 March 2019
* create preprocessor-free source (except #define) for swieros port in src/swieros/smterm.c
* add following options for smaller footprint:
MW_FEATURE_INTL for DBCS, utf8/uc16 etc font/encoding inclusion
MW_FEATURE_PALETTE to support palette operations
28 March 2019
* fix Linux bin/mwapp build and remove mwin/winmain2.c on shared libs and multiapp
* don't build bin/mwapp unless MICROWINMULTIAPP=Y
27 March 2019
* support running multiple win32 applications simultaneously on Linux, OSX and browser
win32 apps compiled as shared libs and loaded dynamically into same process
uses new MICROWINMULTIAPP=Y config option
requires SHAREDLIBS=Y, replaces main loop from app into loader bin/mwapp
run 'bin/mwapp [optional dynamically loaded app list]' (see bin/*.so)
apps using modal dialog boxes and message boxes not yet supported
23 March 2019
* created single-file nxterm in swieros/smterm.c for possible SWIEROS port
* added MW_FEATURES_SHAPES and corrected !DYNAMICREGIONS for small footprints
5 March 2019
* add demos/Makefile-emscripten-mwapp for win32 apps, doesn't require EMTERPRETIFY
uses new demos/mwin/mwapp.c external non-blocking main loop
allows multiple simultaneous win32 apps and no emscripten emterpreter
* move win32 main() out of mwin/winmain.c into mwin/winmain2.c seperate library file
* don't initialize lpfnWndProcBridge to NULL in RegisterClass when WINEXTRA
4 March 2019
* fix 8bpp palettized image to RGBA convblit when no transparent color from Hendrik van der Heijden
* add NDS native keyboard driver from Kenny Lee
* fix HZK getfontinfo() bug from walker_jun
28 Feb 2019
* fix BitBlt bug when hdcDest is memory DC
26 Feb 2019
* merged Rooz's final changes for WebAssembly/C#.Net project
* mapped MWBUTTON_L/R etc mouse buttons to same bits as Windows
* removed WINAPI from win32 Sleep
* changed TIMERPROC to (HWND, UINT, UINT_PTR, DWORD) signature
25 Feb 2019
* fix strcmp version bug in .fnt font loader
* small t1lib fix, broken on 64bit systems
24 Feb 2019
* enhance demo-aafont, cycles through fonts and sizes, use arrow keys, a,b,k,u,l,q
* enhance demo-ttfont, displays all ttf fonts, use arrow keys,a,q
* rewrite demo-font completely, displays all fonts, use arrow keys,c,r,q
* fix freetype add cache coredump on non-existent HZKFONT.ttf file
* always build convbdf tool, stop building nbreaker
* temp fix HZK ALLOCA mem overwrite on bitmap
* remove KSC5601 dbcs hack in engine/devfont.c::GdText() not stripping MASK_DBCS
* fix KSC5601 builtin width to be 16, needs testing
* fix GrGetNextEventTimeout to poll with -1 passed as timeout in client/server case
23 Feb 2019
* fix driver update width/height 0 bug
* handle zero width/height return from gettextsize/gettextbits
* fix HAVE_HBF_SUPPORT, move routine from drivers/genfont.hbf.c to engine/font_hbf.c
* fix defaults handling for config item set=N when defaulted =1 in mwconfig.h
* small fixups for CJK font option compiles
21 Feb 2019
* add GrError/MwError() for app error output
* deprecate HAVE_FPRINTF and HAVE_VARARG_MACROS
* fprintf(stderr,...) and exit() cleanup in nanox demos
* demos/nanox/demo-aafont.c cleanup
* create drivers/osdep.c for all OS dependent routines, cleaned up winmain.c/srvmain.c
* changed fprintf(stderr,...) to EPRINTF in libraries, app cleanup will be next
* remove {E,D}PRINTF conversion to fprintf(stderr... using varargs macros, use GdError
* added Rooz's changes to compile for WebAssembly/C#.Net project
17 Feb 2019
* added function key handling to Windows kbd_win32.c
* added Microwindows win32 API demos to VS build, app must call MwInitializeDialogs()
16 Feb 2019
* added Visual Studio project in contrib/ports/vs2008
* rewrote Windows screen, keyboard and mouse drivers, ported to Windows
* added GrGetNextEventTimeout handling in polling GsSelect()
14 Feb 2019
* fix and rename GdItemAddr/MWITEM_OFFSET to MwItemAddr, MwItemOffset
* added #define WIN64_PORT 1 in mwconfig.h for 64-bit Windows compile
* fixes for for 64-bit Windows (int=32, long=32, ptr=64), adjust LONG_PTR
* fixes for Windows Visual Studio 2008 compile (_MSC_VER=1500), defaults in mwconfig.h
12 Feb 2019
* added zoom support to SDL2, use config SDL_ZOOM=<zoom_factor>, must also divide screen w/h to work
* add Daniel's support for SDL on Android
10 Feb 2019
* min/max fixups, typo, another fix for Allegro mouse cursor
9 Feb 2019
* moved all configurable options to new include/mwconfig.h for visual environment make
* header file cleanup, removed unneeded and nested #includes
* remove device.h from windows.h/nxlib.h, remove mwsystem.h, use stdlib.h for malloc
* remove src/winextra/sys/time.h (src now uses "sys_time.h"), cleanup USE_ALLOCA
8 Feb 2019
* added "sys_time.h" to cleanup #include "sys/time.h" issues on Windows
* more driver cleanup, new function gen_initpsd() to init screen driver open
* moved Windows WIN32 GsSelect driver to drivers/{scr,mou,kbd}_win32.c, rewrote to new driver format
7 Feb 2019
* added Rooz's contrib/visualstudio project
6 Feb 2019
* ported original shareware Doom v1.10 to Nano-X! See contrib/doom/README.nanox
* added MWPF_PALETTE, MWPF_TRUECOLORBGRA support and kbd fixes to Allegro driver
* updated SDL and Allegro keyboard drivers for function key support, left/right alt/option key for X11
* updated keyboard drivers Break/Pause/F15 returns MWKEY_QUIT
* added ALLEGRO_ZOOM config file option for Android and OSX retina displays
* warning Allegro 5.2.4 crashes OSX Sierra 10.12.6
5 Feb 2019
* more Arch.rules and #ifdef cleanup, remove escape_quits
4 Feb 2019
* experimental fix for Allegro driver mouse cursor display on OSX
* fixed Allegro driver to allow client/server nano-X apps to run, mousewheel removed
* fixed Allegro driver close bug and event problem after display switch out
* more cleanup, removed CPPFLAGS remnants, CPP, deprecated xconfigure
3 Feb 2019
* updated Allegro driver to use 2.0 zoom factor for better readability
* rewrote Allegro screeen driver to support aggregate update region (PSF_DELAYUPDATE)
* added PreSelect to Allegro/Android screen driver required for PSF_CANTBLOCK drivers
* ported Allegro screen driver to OSX win32 apps (uses al_run_main() in main())
* deprecated Allegro v4.x screen driver, now supports Allegro v5.2 (SCREEN=ALLEGRO)
2 Feb 2019
* implement WINEXTRA=Y and contrib/winextra functions for Rooz, -DWIN32DLL=1 -DWINEXTRA=1
* added Daniel's Create android APKs for nanox demos and updated ANDROID config
1 Feb 2019
* remove WINAPI from non-entry point functions, add CALLBACK to WndProcs, WndProcBridge
* Added Rooz's IsWindow() fix, GetParent, GetAncestor, Get/SetLayeredWindowAttributes
* cleanup Android port, single -DANDROID=1 define, use GdError for EPRINTF/DPRINTF output
* cleanup DPRINTF/DEBUG in nx11, use GdError when DEBUG set
31 Jan 2019
* add "uni_std.h" to replace <unistd.h> for Windows (alloca/read etc), fix HAVE_MMAP issues
* added config.android, fixed Android build using -DHAVE_SELECT=0, CFLAGS/LDFLAGS
* fix drivers/devmice.c to use MWBUTTON_[L|M|R]
27 Jan 2019
* created standard whitelist for EMTERPRITY-only functions to speed up all demos tremendously
See src/EMSCRIPTEN.rules for requirements for avoiding EMTERPRITIFY'ing all functions
* debugged contrib/nx11-test/williams.c XMaskEvent wait for Exposure and GrGetTypedEventPred bugs
* default SDL build NX11=Y with local X11 headers to allow nx11-test compiles w/o X11 installed
25 Jan 2019
* got most Nano-X and Win32 demos compiling and linking with EMSCRIPTEN using standard make system
24 Jan 2019
* reduced EMSCRIPTEN demo font sizes drastically, demos only use those fonts/truetype linked into fonts/em-fonts
* compile EMSCRIPTEN libraries using ./make-emscripten, link demos with ./link-emscripten, run ./emrun <app>
* more cleanup, created config.emscripten for ARCH=EMSCRIPTEN native Microwindows Makefile builds
* updated SCREEN=FBE drivers/scr_fbe.c to support TESTDRIVER=1 for writing new screen drivers
* added portrait mode support for SDL and FBE drivers (use with ./runapp or bin/nano-X [-L|-R|-D|-A])
23 Jan 2019
* added Kurt Nalty's MOUSE=DEVMICEMOUSE /dev/input/mice drivers/mou_devmice.c, config.linux-fb and small fixes
* moved nanox/ NONETWORK=1 files to nanox/srvnonet.c
* cleaned up mouse and keyboard drivers with new defines for return values
22 Jan 2019
* rewrote and cleaned up Gs/MwSelect for polling systems (SDL, EMSCRIPTEN, etc) and UNIX/Linux (X11, SDL)
21 Jan 2019
* rewrote Gs/MwCheckMouseEvent and Gs/MwCheckKeyboardEvent to handle various drivers Poll/NULL entry points
* defines for keyboard/mouse Open() and Read() return values in device.h
* debug EMSCRIPTEN cursor blink: int FARPROC() vs void FARPROC() callback caused failure of function pointer!
* fixed timers for EMSCRIPTEN to allow cursor blinks and automotion
* use X11-local X11 headers for nx11 EMSCRIPTEN build, since its extensions/shape.h missing
* call scrdev.Preselect() to update SDL canvas in GrFlush() for EMSCRIPTEN and NX11 XFlush()
20 Jan 2019
* nx11/Makefile fix for nx11/Colorname.c, use full path to src/nx11/fonts/rgb.txt for link of nx11-test/xgreen.c
* EMSCRIPTEN fixes, added emrun, demo-aafont, demo-ttfont, demo-composite, mwdvetest
* more driver/config cleanup, deprecate SDL1,SCRMEM,NOSCR drivers, add FBE (framebuffer emulator) driver
* rename MWPF_TRUECOLOR888 to MWPF_TRUECOLORRGB
* update scr_sdl2.c to allocate matching framebuffer and eliminate update_from_savebits
* update SDL2 to use renderer and textures, remove SDL_GetWindowSurface
* rewrote SDL2 mouse, keyboard and screen driver for OSX/Linux, added support for OSX touchpad, support shift/ctrl
* cleaned up SDL2 update_from_savebits() routine for speed, renamed to copy_framebuffer
* fix GsSelect() and MwSelect() to never block for SDL polling backend on OSX/Linux
* move UNIX&&HAVESELECT case before polling systems in mwin/winmain.c, nanox/srvmain.c
13 Jan 2019 Georg Potthast
* changed name to demo-grabkey in TinyWidgets/demos/launchtest.c
* remove usage/exit in runapp script and prompt user for app instead
* use modified runapp scripts in nx11-test and TinyWidgets, removed old scripts
* get demos to find Xresources in nx11-test
* Update Makefile_nr and Makefiles in contrib/Makefiles_nr
11 Jan 2019
* initial port of SDL2 driver to MACOSX
* cleaned up MwSelect and GsSelect routines and #if processing
* renamed MWPF_TRUECOLOR8888 to MWPF_TRUECOLORARGB, cleaned up config
* cleaned up drivers/Objects.rules and config screen/mouse/keyboard drivers, deprecated old kbd & mouse drivers
9 Jan 2019
* edited various winlib/ builtin control source for readability, reformatted entire combobox.c
7 Jan 2019
* builtin control registration cleanup, added all controls to MwInitializeDialogs(), mwin demos changed to use this
* fixed mwlistcombox.c bug with non-registered edit control using CBS_DROPDOWN combobox
* fixed combobox don't hand off mouse move messages to listbox
* fixed combobox recapture mouse after listbox selchange, remove CS_DBLCLK
* adjusted combobox CBS_DROPDPOWN (edit+popup) edit control placement
* adjusted combobox CBS_DROPDPOWNLIST (static+popup) static control placement
* fixed SS_CENTERIMAGE for vertical centering on static controls
* added runapp script to run win32 and nano-X applications, automatically starts nano-X server if required
6 Jan 2019
* fix SetWindowPos when SWP_NOMOVE specified (size only), this fixes combobox popup in wrong location
* fix newlistbox highlight on mouse down
* changed win32 listbox to newlistbox.c, fixes font handling with mwdvest.c. Old available via MwRegisterOldListbox()
* fix text size calcuation in MapDialogRect, uses same calculation as GetDialogBaseUnits now
* fix CreateDialog size bug calling MapDialogRect before dialog font created
* use wine resource compiler (wrc) for testing images/demos/mwin/mwdvetest/dveres.{rc,res}
5 Jan 2019
* Cleanup and get contrib/nx11-test/ working
* Cleanup demoscripts/, update docs/
* Cleanup demos/nanox/, move images to images/demos/nanox/, updated Makefile and Makefile_nr
* Renamed demos in demos/nanox/ to demo-xxx, moved outdated code to contrib/nanox-test
* Cleanup fonts/ directory, move fonts/convbdf.c to fonts/tools/
* Move mwin/bmp/ to images/demos/mwiun
* Cleanup demos/mwin/, moved images to images/demos/mwin/, moved convbmp.c and makebmp.c to images/tools/
* Rename nxlib/ to nx11/, updated Makefile and Makefile_nr
* Cleanup contrib/ directory, move nxlib/test to contrib/nx11-test, cleanup linux compile warnings
3 Jan 2019
* added src/testld to show method of linking X11 apps with standalone nxlib on X11 with duplicate X11 syms
* added SHAREDLINK=Y config option to link with shared libmwin.so or libnano-X.so (use with SHAREDLIBS=Y)
* removed OBJFRAMEWORK from config, moved mwobjects.* to demos/mwobjects (all out of date)
2 Jan 2019
* added more to nxlib/stubs.c for FLTK 1.3.4 on Ubuntu compile
* renamed nxlib/X11 headers to nxlib/X11-local/X11, no -I., headers are out of date, default now uses installed X11 hdrs
* removed IM.c from default nxlib build, missing system X11/Xlcint.h
* added NXext.c to default nxlib build, rewrote to not require any extension headers. Allows removing -lXext entirely.
* more Makefile.rules cleanup
1 Jan 2019
* rewrote nxlib/Makefile to use internal system. test/ and ptest/ temporarily not building
* more build and library cleanup, removed INC=. defaults in config to fix -I. generated
* removed CCNANOXCLIENTLIBS, CCMWINLIBS, cleaned up links to use only MWINLIBS and NANOXCLIENTLIBS
* SHAREDLIBS=Y builds lib/*.so but only uses lib/*.a for app linking (fixed Jan 3 above)
* fixed circular make dependency bug
* fixed OSX dynamic library creation
30 Dec 2018
* fix Makefiles for LINK_APP_INTO_SERVER=Y case, updated config.linux-X11
* combine config.suse/config.ubuntuX11 into single config.linux-X11 for linux desktop systems, fix TW link
29 Dec 2018
* update nxlib build from Georg, too many warnings in nxlib/test builds, more cleanup
* updated config.suse, more cleanup
* source cleanup from ubuntu warnings
* ported scr_fb.c to OSX without requiring scr_mem.c
* Heavy cleanup and rewrite of Makefile.rules, Arch.rules and config files. See MAKEVARS.txt
* Ubuntu 18.10 linux port. Added config.ubuntu and Makefile fixes
28 Dec 2018
* temp comment out PXLIB build and nxlib/test examples build: breaks build on MACOSX
* fixed problem of passing -W options in submakefiles to silence nxscribble and tuxchess subbuilds
* fixed drawrow bug when passed x2 < 0 and dashed lines from GdFillPoly routine
* fixed GdSetDash bug introduced with contributed MwSetPenStyle()
27 Dec 2018
* removed GCC_WARNINGS from c++ compiles in Arch.rules
26 Dec 2018
* added -Wno-pointer-to-int-cast when DEBUG=N to suppress win32 conversions
* tried fixing demos/nxscribble/Makefile by adding CFLAGS += -Wno-missing-prototypes:
this fails because the Arch.rules CFLAGS gets copied *after* this CFLAGS for some reason
* rewrote demos/mwin/mwprogbar.c
* removed TEST=1 defaults in mwin/winlib/progbar.c (progress bar)
* cleanup of missing-prototype functions, changed to static functions or added prototype
* set better default compiler warnings in Arch.rules and also allow DEBUG=-Wflags from config
25 Dec 2018
* fixed and removed need for TinyWidgets clean every make
* fix msgbox.c DrawText bug requiring initialized lpRect
* further cleaned up 64bit mwin port, remove warnings by careful casting
19 Dec 2018
* cleaned up MessageBox implementation to use new resDialogTemplate dialog templates
* fix draw code infinite loop in WM_PAINT in contributed mwcontrols.c demo
18 Dec 2018
* cleaned up compiler warnings in various files by careful casting
17 Dec 2018
* cleaned up win32 fileopen routines considerably
* added resDialogTemplate, resDialogItemTemplate for creating memory dialog templates
* remove CS_DBLCLKS on win32 button style to allow fast button pressing
* fixed GrResizeWindow to expose window and all children, fixing RESIZE_USING_UNMAP problem with TW
16 Dec 2018
* temp OLDWAY in GrDrawImagePartToFit and RESIZE_USING_UNMAP in GrResizeWindow for TinyWidgets
* added Amit's nanowm focus patch from TinyWidgets, fixes combobox focus issues
* fix GdDrawImagePartToFit for stretched images, requires old version for TW (needs SRC_TRANSCOPY for XPM)
GdStretchBlit in GdDrawImagePartToFit requires sw-1,sh-1, but dest w,h
* debugged TinyWidgets combobox, requires old GrResizeWindow unmap/map implementation for now
* EMSCRIPTEN fixes for their latest version
* reverse nxterm.c fix for L/RMETA modifiers
15 Dec 2018
* fixed server client and window resource freeup on client disconnects
* fixed internal NANWOM bugs: nanowm client alloc ordering, server client & resource free() and multiple app starts,
root window SelectEvent again wm_init()
* further cleanup on win32 controls,
* fix 64-bit port of messagebox, openfile incore dialog templates, winres.c
10 Dec 2018
* cleaned up src/demos/nanox, lots more to do
* fixed GdDrawImagePartToFit when src width/height = 0 (whole image stretch)
9 Dec 2018
* fixed GP commit problem in mwin/winmain.c with nested comments in MwSelect()
* rewrote and renamed SetPenStyle to internal fn MwSetPenStyle
* modified NXLIB for mouse wheel buttons to use mwtypes.h values as not implemented in nano-X or win32
* commented out unimplemented LoadCursor as real function and IDC_ types
* removed all win32 wide functions and moved to end of winuser.h
* removed version info from include/mwtypes.h; version is src/Version
* put back fprintf() with write() in nanox/error.c to keep library from pulling in stdio
* re-removed ANIMATEPALETTE
* EMSCRIPTEN port cleanup, coroutine yield move to GsSelect/MwSelect
* cleaned up demoscript *.sh shell scripts to run various demos
* fix subsequent app GrSelectEvent calls after CHLD_UPDATE set on root window with linked in window mgr
8 Dec 2018
* changed meaning of NANOWM=Y in config to include nx window manager in server, no need to run bin/nanowm anymore
* cleaned up various mwin demo source and added comments
* fixed win32 scrollbar by removing DWORD cast
* Version 0.94pre - moved microwindows git 0.94 changes to github, cleanup from 2011-2018 in process
19 Nov 2018
* Committed all 0.94 changes from 2017 into microwindows.org repository - Greg
Version 0.94 - 28 Sep 2017 - 64bit port, AGG, Raspberry Pi, tested on MACOS, X11 fixed
28 Sep 17
* revised win32 paint algorithm for better looks when moving windows, repaints root window also
* removed ANIMATEPALETTE option
* fixed longstanding X11 bug where select() called while XPending requests not handled
* changed PreSelect driver to int, returns # events pending
* added GdEraseCursor
* fix upminX/Y bug in X11 PreSelect PSF_DELAYUPDATE handling
* added platform & application classes for mouse & keyboard processing
15 Sep 17
* added PSF_DELAYUPDATE screen driver flag for X11, delays Update()s until PreSelect()
* fixed min scrollbar size crash bug in mdemo
* combined update region in X11 driver to avoid 16x16 single-point cursor draws
* large speed update on win32 initial window and drag window from combined X11 update regions
10 Sep 17
* added GetKeyState win32 function
* fix longtime GdText/GdConvertEncoding textlen = -1 bug (many mwin/win32api demos) test DBCS
06 Sep 17
* fixed modifier keys on X11 (shift/ctrl/alt)
01 Sep 17
* added Agglite drawing
* Raspberry Pi port
23 Aug 2017
* added GdOpenScreenAndClear(clearflag), no double clearscreen on mwin startup
* added 3d inset box & roundrects in Adafruit draw lib
6 Aug 2017
* added Adafruit RoundRect/Circle drawing lib, created RoundRect/Circle clip regions
* fix GdSetDash(0, 0) for proper reset
* added AntiGrain Geometry demo aggdemo.sh, Canny Edge detection demo canny.sh
5 Aug 2017
* fixed GetDlgItemInt
* MACOS update, fix ARCH_NEED_ALIGN32, Get/SetWindowWord
* changed BOOL to DLGBOOL for all DialogProcs
* DialogProcs must be LRESULT not BOOL(int) for 64 bit, DLG_MSGRESULT not working (win32 incompatible)
* WPARAM must hold ptr or UINT for Dialog messages, uses new UINT_PTR definition
* new LONG_PTR, ULONG_PTR and UINT_PTR holds long/unsigned long/unsigned int OR pointer value
* various HIWORD/LOWORD uses suspect for 64bit
* Get/SetProp still 64bit unsafe, uses HIWORD(ptr), needs HILONG() macro
* change DWL_ offsets, hwnd struct userdata, pointer DWORDs that should be LONGs
* application, control & dialog Class/Window extra bytes updated for variable pointer size
* 64 bit port, add GetClassLongPtr, Get/SetWindowLongPtr, add LONG_PTR, ULONG_PTR, changed ULONG from uint32_t
No commits or pulls made between 15 Nov 2011 and 19 Nov 2018
Version 0.93 - 15 Nov 2011 - Entirely new fast blitting model with conversion blits and alpha compositing
15 Nov 2011
* fix termcs1 freetype kluge, add MWTF_CMAP_DEFAULT/0/1 charmap select to GdSetFontAttr
26 Sep 2011
* added MWTF_BOLD flag to GrSetFontAttr to simulate bold fonts using FT2, nonrotated only
* deprecate demos/nanox/move.c demo
30 Jul 2011
* Nintendo DS port, added MWPF_TRUECOLOR1555 format (Derek Carter)
* add Standard Event mouse/kbd drivers (/dev/input/event0) EVENTMOUSE/EVENTKBD config (David Rizzo)
* updated DJGPP support in contrib/djgpp, GRX lib and VESA (Georg Potthast)
* add GetSysColorBrush (Ludwig)
19 Feb 2011
* remove GsError() in GrSetFocus to fix FLTK 1.1.10 crash/desync problem (Martin)
* fix scr_fb.c typo
* NOTE: unlike v0.92, config SCREEN_PIXTYPE _must_ be set to target framebuffer pixel format.
The convblit routines use RGB2PIXEL/RED2PIXEL macros which fail when converting
to 16bpp, and GdDrawImage display is incorrect. The inability to use
multiple fb pixel formats selected at runtime will be fixed soon.
10 Jan 2011
* fix slow fbe startup creating framebuffer
8 Jan 2011
* prelim C++ linkages: agg rasterizer demo (src/agglite), canny edge detector src/canny)
* added MWIF_MONOWORDLSB blit to fblin1 for PCF/core font drawing
* added MWIF_MONOBYTELSB blit to fblin1 for T1LIB font non-aliased drawing
* freetype/t1lib driver auto downgrade to non-antialias if blend blitter not present
* added fast 1bpp raster ops from Dan Bloomberg's leptonica library (www.leptonica.com)
all raster ops now supported
* added support for 1bpp (pseudo-palette) pixmaps (use MWIF_PAL1), demos/nanox/monobitmap.c
must set fg and possibly bg color and usebg when calling GrCopyArea with
palette (1,2,4,8 bpp) pixmap to truecolor (higher bpp) pixmap
for 1bpp pixmap conversion, fg/bg color used is bit 0 of MWCOLORVAL
* cleaned up MWIMAGEINFO, added MWIF_PAL1 1bpp option to GdCreatePixmap
31 Dec 2010
* cleanup jpeg loader, forces pal8 in palette mode else pal8 or RGB888 from image
* remove sscanf from xpm and pnm loaders
* remove bytesperpixel from image/psd header and GrGetImageInfo return
* cleanup xpm loader, force pal8 image in palette mode else RGBA8888
30 Dec 2010
* auto image upgrade to RGBA if not running in palette mode and no convblit available
this allows very fast drawing of .gifs and other 8bpp palettized images
29 Dec 2010
* fix GdDrawImagePartToFit, test in composite.c
* all image loaders use PSD, not MWIMAGEHDR
* fix 16bpp driver rop bugs
* remove psd->linelen, use psd->pitch for line length in bytes
* pixmaps are now always width aligned to DWORD on right boundary
* GrGetImageInfo will work for pixmaps, as all images are now stored in pixmaps
* GR_IMAGE_ID id's are now pixmap id's and can be drawn on (no duplicate id's)
* GdLoadImageFromFile/Buffer use PSD not MWIMAGEHDR, remove GdFreeImage
* rearranged MWIMAGEHDR/SCREENDEVICE to have shared header data members
MWIMAGEHDR structure changed, image .c files need convbmp regeneration
* fixed linelen parameter bug in gen_mapmemgc
* new GdCreatePixmap function to create memory drawing surfaces
* added palette to SCREENDEVICE in preparation for elimination of MWIMAGEHDR
27 Dec 2010
* added ALWAYS_INLINE to force inline convblit functions when not optimizing
* fix MwTextOut/MwDrawTextOut NULL hDC when erasemove bug
* rewrote dwswap/wswap endian reversal routines in bmp loaders, cleanup bmp reader/writers
* swap.h tries to automatically determine CPU endianness, new host_to_little_endian_32/16
* remove/fix duplicate bmp decoder in mwin/winresbmp.c, must set HAVE_BMP_SUPPORT for win32 bmps
24 Dec 2010
* ctrl-quit (f15) will save screen contents to screen.bmp
* added DEBUG_EXPOSE and DEBUG_BLIT to flash yellow/brown on expose/blit areas
* fix/rewrite GdCaptureScreen to use framebuffer rather than /dev/fb0
23 Dec 2010
* fix corner resize off by 2 bug
* buffered windows never displayed until GrFlushWindow called, remove GR_WM_PROPS_NODRAWONRESIZE
internal GR_WM_PROPS_DRAWING_DONE flag to indicate drawing finalized by calling GrFlushWindow
* unset GR_WM_PROPS_BUFFERED releases buffer, window can be used normally
* fixed buffered window background clear clipping bug (pixmap using root window clipregion)
* added GrNewBufferedWindow for quick buffered windows, same parameters as GrNewWindowEx
* added debug yellow clear rects for visual expose area and blit clip region display
* fix nanowm gc leaks
22 Dec 2010
* optimized GrResizeWindow exposure for no blink
* added OSX/iOS-style buffered windows! use GR_WM_PROPS_BUFFERED flags in GrNewWindowEx
(demo in demos/nanox/composite.c, fontdemo.c, src/compositedemo.sh, fontdemo.sh)
Quick conversion for double buffered windows in any application:
add GR_WM_PROPS_BUFFERED to GrNewWindowEx flags
add GR_WM_PROPS_NOBACKGROUND if app paints background
add GrFlushWindow(wid) call in paint routine
add update mask and handling for GR_UPDATE_MAP & GR_UPDATE_SIZE and call paint routine
remove Exposure mask and event handling
Buffered windows allocate a 32bpp RGBA pixmap for automatic offscreen buffered drawing.
Pixmap is erased to bg color on create and resize unless GR_WM_PROPS_NOBACKGROUND set
On window expose, buffered contents are copied, app never gets expose events.
App must process resize and map Update events, flush buffer with GrFlushWindow(wid)
* fix memory leak with background pixmap windows
21 Dec 2010
* fix optimization problem with DEBUG=Y, now -O3 with DEBUG, not -O0
* cleanup device.h HAVE_xxx defines, use Arch.rules -DHAVE_xxx=0/1 instead
* change HAVEFLOAT->HAVE_FLOAT, MW_NOSIGNALS=1->HAVE_SIGNAL=0, HAVESELECT->HAVE_SELECT
* fix BIG_ENDIAN define in dbcs and devfont
* cleanup printfs, use EPRINTF/DPRINTF, will call fprintf or GdError based on HAVE_FPRINTF,
GdError will call write() if HAVE_FILEIO set otherwise nothing
nano-X client programs will use fix in nano-X.h to remove printf/fprintf calls if HAVE_FPRINTF=0
19 Dec 2010
* replaced strcmpi with strcasecmp
* special case FT2 termcs*.ttf fonts to use charmap[1] instead of unicode encoding
* added NOFONTS, NOCLIPPING config options, removed NOFONTSORCLIPPING
* added ENGINE config option to make libmwengine.a
17 Dec 2010
* Configs/ config file cleanup, added SCRMEM option for memory screen driver
* added XK_F15 for macosx x11 quit
* fixed time_to_expiry definition for MACOSX port
* fixed stretchblit in right portrait 32bpp
* rm demos/nxkbd/key*.c, convbmp will recreate from .bmp
16 Dec 2010
* remove GdSetFont, font not cached in gc because passed directly to GdText
* fix PSF_ADDRMALLOC flag
* wrote new memory screen driver scr_mem.c, keeps update region for fb_graphicsflush
14 Dec 2010
* reduce code size, GrDrawImageToFit now calls GrDrawImagePartToFit
* added convstretchblit rop copy for 32/24/16bpp dest
13 Dec 2010
* coalesced GdCheckCursor calls in GdBlit/GdStretchBlit for speed
* added stretch convblits for RGBA -> BGRA/BGR/16bpp
* runtime auto portrait switching now works including with offscreen pixmaps!
(see blitdemo.sh and compositedemo.sh)
* all pixmaps kept in non-portrait addressing mode, allows convblit/frameblit to copy
12 Dec 2010
* 1st RGBA offscreen compositing operation!, portable across 8,16,24,32bpp framebuffers
new 32bpp RGBA pixmaps allow compositing on any system regardless of framebuffer format
added compositing demo compositdemo.sh (demos/nanox/composite.c)
* create new MWHWPIXEVAL, size varies with MWPF_PIXEL_FORMAT
changed GR_PIXEVAL to MWHWPIXELVAL for compatibility
* make MWPIXELVAL constant size, can't vary as 32bpp driver could be called in 16bpp systems
* enhanced fblin32.c for 32bpp rgba pixmaps
* added GrNewPixmapEx with MWIF_xxxx image format parameter (allows creation of 32bpp pixmaps)
passed format parameter: use 0 for framebuffer bpp, 32 for any 32bpp format,
or MWIF_RGBA8888 / MWIF_BGRA8888 for specific image format
* cleanup nano-X.h
* change GrCreateFont GR_CHAR * parm to const char *
11 Dec 2010
* fix GR_BACKGROUND_TRANS, rewrite GsDrawBackgroundPixmap, change GsWp prefix to Gs
* fix background clear again when drawing background pixmaps with alpha channel
* remove MWIMAGEHDR compression member (replaced with data_format)
* rewrote convbmp to convert images to rightside up, BGR->RGB, BGRX->RGBA
* fix skip blit/send expose bug in GrCopyArea (window partially offscreen and root expose)
10 Dec 2010
* revert back to original faster GrResizeWindow code from before 12/5/2010
* comment out skip blit and send expose in GrCopyArea(), fixes root window expose/clip bug
bug was seen in chess.sh and blitdemo.sh
* new blitdemo.sh demo (uses renamed/updated ft2test.c -> blitdemo.c)
* add srcxvirtres, srcyvirtres to MWBLITPARMS for src coord rotations, remove srcpsd-> in blit
9 Dec 2010
* fix err_x init in stretch blits, caused glitches/crash in portrait modes
* fix mouse/touch code for down portrait mode (Uwe)
8 Dec 2010
* cleanup MWIMAGE_RGB in engine/image_xxx routines
7 Dec 2010
* fix GrNewBitmapFromPixmap/GrNewRegionFromPixmap, remove alpha (needs fix in 0.92 also)
fixes FLTK 1.10 bitmap. FLTK 1.10 pixmap requires nxlib/SetClip.c fix
5 Dec 2010
* prelim 64 bit MACOSX X11 port
* fix parms.srcpsd bug from last checkin
* revert to older GrResizeWindow method to fix bug shown by demos/nanox/ft2test.c
* remove PSF_HAVEBLIT, cleanup
* fillrect in GsDrawBackground if pixmap has alpha channel
4 Dec 2010
* all blits except 16bpp are endian neutral
* cleanup GdBlit, rename GdStretchBlit, use common GdConvBlitInternal for all blit clipping
* added FrameBlit and FrameStretchBlit subdriver framebuffer blits
* removed Blit from fblin32/24/16/8 subdrivers, renamed driver proc BlitFallback
* rewrote APPLYOP for speed, optimized fblin32/24/16/8 pixel/hline/vline drawing
* MWROP_BLENDCONSTANT supported in 16/24/32bpp frameblit only (was 8/16/24/32bpp)
* frameblit src_over supported in 32bpp only, otherwise copy
* rewrote GdStretchBlitEx upper/lower layers to use frameblit_stretch_xxxx
* removed StretchBlitEx from subdrivers
* background pixmap draw now uses SRC_OVER, added SRC_OVER/XOR_FGBG to GdStretchBlit/GdBlit
* fix bug in 24bpp stretchblit (dst_y_step = dstpsd->linelen*3), (needs fix in 0.92 also)
* deprecated MWROP_SRCCOPY, use MWROP_COPY
29 Nov 2010
* rewrote GdBlit to use frameblit_xxxx rather than old format psd->Blit
* added framebuffer frameblit_copy, copies backwards if required, used in GdBlit MWROP_COPY
* combined portrait blits for rgba/rgb/mono, added rgba output for psp
* cleaned up SCREENDEV struct, deprecated many screen drivers (see src/DEPRECATED)
* added copy convblits for 32bpp rgba (GdArea MWPF_RGB)
28 Nov 2010
* cleaned up config file
* runtime bpp is used to select subdriver, but subdriver format must be set in config file:
32bpp byte order |B|G|R|A| = MWPF_TRUECOLOR8888 (pc)
32bpp byte order |R|G|B|A| = MWPF_TRUECOLORABGR (psp)
24bpp byte order |B|G|R| = MWPF_TRUECOLOR888
16bpp LE RGB565 = MWPF_TRUECOLOR565
16bpp LE RGB555 = MWPF_TRUECOLOR555
* deprecated MWPF_TRUECOLOR0888, now MWPF_TRUECOLOR8888 (|B|G|R|A| format)
* deprecated fblin32alpha.c driver, TCABGR now uses fblin32.c
* fixed MWPF_TRUECOLORABGR emulation in X11 driver
* added amask (alpha mask) to SCREENINFO, standardized gen_getscreeninfo function
* rewrote GdBitmap to use fast convblit, added GdBitmapByPoint
27 Nov 2010
* added GdFindConvBlit, GdPrintBitmap, set_data_format functions
* require data_format on all screen drivers, used by GdArea
* added fast convblit handling to GdArea routine for 32,24,16bpp
* added Update to fblin8, palette mode fixes, fix X11 for palette mode
* cleaned up drivers and source, removed commented-out stretchblit
24 Nov 2010
* removed PSDOP_xxx and GdDrawAreaInternal, all DrawArea entry points
* convered portrait mode drawarea to convblit, used only for 1,2,4,8 bpp subdrivers
* converted drawarea drivers to convblits for 1,2,4,8 bpp subdrivers
* fixed nonzero srcx offset and word src index bugs in convblit_mask_mono blits
21 Nov 2010
* cleaned up framebuffer screen driver/subdrivers
* added psd->Update calls in fblin32/24/16.c routines for new X11 driver
* rewrote X11 driver to only draw using blits from memory framebuffer
* v0.93 non-fb draw model changed: engine always draws bits into real or memory
framebuffer, with Update() required for non-fb screen devices. Devices
cannot draw directly from screendev, must use blit Update() called afterwards
17 Jul 2010 (Ludwig)
* added CreateDibSection, GetLastError, SetLastError, RegisterHotKey, UnRegisterHotkey
* various editbox fixes, added WM_CLOSE dialog handling, fixed close crash
* added keyflags in WM_MOUSEMOVE wParam, winerror.h
* add MoSync screen/mouse/kbd driver support
16 Jul 2010
* fix RGB2PIXEL in convblit functions, 16bpp alpha blend bug
22 Jun 2010
* remove MW_FEATURE_PSDOP_*
* remove fblin18.c 6/6/6 driver (reimplement using fblin24.c and new COLOR macros)
* remove DrawArea driver entrypoint for fblin32/24/16, copyall/copytrans for fblin16
* removed freetype v1 support, DBGDRIVER
21 June 2010
* fast convblits for all font drawing and RGBA/RGA images on 16/24/32bpp, all rotations
* use fast convblit for PCF/FNT/builtin corefont text drawing
* replaced gen16_drawtext in PCF/FNT, and corefont_drawtext with gen_drawtext
* replaced gen16_gettextsize with gen_gettextsize in PCF/FNT
* temp add left, right, downsubdriver to SCREENDEVICE, kluge select_fb_driver for now
* added convblits to SUBDRIVER and SCREENDEVICE
* added 16bpp convblits (endian specific), muldiv255_16bpp macro (set with MWPIXEL_FORMAT)
* added portrait modes to all mask convblits
18 June 2010
* use fast convblit for FT2/T1 text output on 24/32bpp, anti and non-aliased (rotations not complete)
* use gr_foreground_rgb in FT2 driver for mask convblits
drawarea stil uses MWPIXELVAL gr_foreground, so BLITPARMS must have both for now
* added convblit mask macros for 1bpp mask and 8bpp alpha mask blits
* rewrote convblits using static inline for high speed
14 June 2010
* images output using fast convblits on 24/32bpp framebuffer
* changed bmp image decoder to return 24bpp RGB or 32bpp RGBA images no alpha
* changed pnm image decoder to return 24bpp RGB images
* changed xpm image decoder to return 32bpp RGBA8888 images w/alpha
* add data_format to MWIMAGEHDR, MWIMAGEINFO, SCREENINFO
working for image decoders, not implemented for screens/pixmaps yet
* completed png RGB/RGBA, tiff RGBA decoder image display using fast convblit
unset FASTJPEG as default, generate 24bpp RGB jpegs
* added fast conversion blit srcover/copy RGB/A for rotate left/right/down w/no copy in GdConvBlitInternal
* added Update entry point to SCREENDEVICE for X11 convblits
* added pitch, data_format to SCREENDEVICE, MapMemGC, GdCalcMemGCAlloc
* added convblit entry points for GdConvBlitInternal: convblit_srcover_rgba8888, copy_rgb888
any 32bpp RGBA or 24bpp RGB can now be displayed using fast blit (srcover and copy)
* added GdConvBlitInternal path from GdDrawImage for very fast image blitting (32bpp hw only)
if image decoder uses MWIF_ image format then GdConversionBlit/GdConvBlitInternal used
otherwise emulated with old GdDrawImage routine pixel by pixel
Version 0.92 - 11 June 2010 - greg@censoft.com
* fix freetype 2 off-by-one height bug (ascent + descent != height)
10 June 2010
* added capabilities flag word in font subdriver for h/w scaling
* use new freetype2 scaler cache api (>= v2.3.9) (Johannes)
can now compile freetype 2 without FT_CONFIG_OPTION_OLD_INTERNALS
* fix ncolor assert in fblin24.c
26 May 2010
* fix nanowm cursor to resize in window bottom right to indicate resize
* added window x,y and root window rootx,rooty to GR_GENERAL_EVENT
(mouse enter event should be a mouse event, not general event)
* added WM_PROPS_NORESIZE window property to disallow window resizing
24 May 2010
* rewrote adobe type1 (T1LIB) and truetype (freetype2) font subdrivers to use fast blit
blit project halfway done - will move GdBitmap to driver blit for PCF/CORE fonts
will remove/replace PSDOP_* and and combine drawarea/blit driver routines
all drivers will support mono lsb/msb and blendfgbg blit, meaning all fonts supported
* wrote drawarea_bitmap_bytes_lsb_first (t1lib) rotations for all fbportrait_xxx.c
* rewrote adobe type 1 font driver (font_t1lib.c), new fonts/type1 dir
added T1LIB_FONT_DIR to config (defaults fonts/type1)
requires blit_mono_byte_lsb routine in drawarea
* added width and height scaling to t1lib and freetype2 fonts (was height only)
added width parm to GrCreateFontFromBuffer, GrCopyFont
use GrCreateFontEx, GrSetFontSizeEx to set height and width for scaleable fonts (t1,ft2)
* freetype2 driver uses TTFONTDIR environ var for default font dir
* freetype 1 driver deprecated - use freetype 2 instead
* fix .fnt loader padding bug (again)
23 May 2010
* split engine/devdraw.c into engine/devblit.c for blit changes
* major driver reorganization, DrawArea parameters change
* remove MWROP_TO_MODE, MWMODE_TO_ROP
* rename MWMODE_xxx modes to MWROP_xxx, change MWROP_SETTO1 to MWROP_SET
* rearrange device.h and mwtypes.h for more exportability info in mwtypes.h
23 May 2010 - Ludwig Ertl
scrollbar various fixes, SB_THUMBTRACK
listbox fixes w/scrollbars, WM_CTLCOLORLISTBOX
added newlistbox.c from ReactOS (GPL only, not used by default)
replace Draw3dButtonRect with Draw3dUpDownState
rewrite mwDrawTextOut/mwDrawText heavily, internal prefix/& support
add #if OLD_DRAWTEXT for old drawtext code
no need for mwCheckUnderlineChar special drawing, button.c modified
add GetTextColor, Muldiv, WindowFromPoint, WM_SETREDRAW
add WM_COMPAREITEM, WM_DELETEITEM, COMPAREITEMSTRUCT etc handling
remove GetDlgBaseUnits (replaced by GetDialogBaseUnits)
21 May 2010
* fixed applyOp4 off-by-one bug (affects XOR+ blits), applyOp2/3 (fblin16 v/h draw)
* started 64 bit compatibility, requires <stdint.h> (uint32_t and int32_t)
* fix map non-existent char to default char with PCF fonts, port to 64 bit
* fix space glyph width bug with PCF fonts (negative leftBearing still not handled)
* fill background in FT2 when usebg set (done again in alphacol driver for charbox)
13 May 2010
* fix bug in non-MWMODE_COPY blit in fblin32/32a/24/18 and X11 drivers
2 May 2010 - Ludwig Ertl
* check hdc NULL in mwTabbedTextOut fixes crash in mwdvetest
* enhanced DT_CALCRECT for multiline text
* dialog enhancements: pressing RETURN or VK_MBUTTON now pushes button w/focus,
CreateDialogIndirectParam, DialogBoxIndirectParam, GetDialogBaseUnits,
DS_CENTER calc
* added MessageBox, MessageBoxEx, MessageBoxIndirect, MessageBoxTimeout
from ReactOS (GPL only)
* ShowWindow always shows window except on SW_HIDE
* pressing RETURN or VK_MBUTTON now pushes button w/focus
* map VK_MBUTTON to MWKEY_ACCEPT
1 May 2010 - greg@censoft.com
* added stretchblitex to left/right/down portrait modes
* add stretchblitex to fblin8, stretchblit test to ft2test.c
* deprecated StretchBlit screen driver entry point and GdStretchBlit
use GdStretchBlitEx, StretchBlitEx screen driver entry point
* added 15, 16, 24 and 32bpp to fb emulator, fix bug in fblin24 blit/alphacol
* fixed bug in fblin24 reversed b/g colors when alpha 0 and usebg
29 April 2010 - Greg/Ludwig
* added SetWindowPlacement, GetWindowPlacement, BeginDeferWindowPos,
DeferWindowPos, EndDeferWindowPos, GetWindow, GetMenu, GetForegroundwindow,
SW_MAXIMIZE, SW_MINIMIZE, workarea maximize, partial WM_SYSCOMMAND,
dialog maximize via CS_DBLCLKS, MWKEY_ACCEPT, FillRgn (Ludwig)
* added drawarea_bitmap_bytes_msb_first to fblin4rev.c, fixed MWROP blit bug
* fix bug in linear24_alphacol, not blending properly, added ft2test.c pgm
* speedup fblin1/2, wrote msb_first drivers for fblin2/2rev
* add fblin1rev.c drawarea_bitmap_bytes_msb_first (Vladimir)
* dynamically allocate buffers in GdGetTextSize, GdText, and GdConvertEncoding
28 April 2010 - Ludwig Ertl
* changed BM_SETIMAGE and STM_SETIMAGE to use lParam in button/static
* add SystemParametersInfo, non-overlapped workarea feature
* add GetProp, SetProp, RemoveProp window property routines
use these rather than window userdata
* rewrite KillTimer to allow deleting currently executing timer
* fix free szExecCommand in mwFreeInstance
* fix mwFindResource endless loop on last resource when closed resfile
* rewrite peekmessage loop in windlg.c with getmessage
* replace sscanf with strtoul in windlg.c
* fix BS_RIGHT style in button.c
* added BS_PUSHLIKE button style
27 April 2010 - greg@censoft.com
* speedup fblin8/4/2/1 drivers, no asserts by default
* speedup 4bpp drawarea_bitmap_bytes_msb_first with linear4_drawpixelfast
* wrote drawarea_alphacol for 8bpp fblin8.c (FT2 antialiased output)
* change back FIRSTUSERENTRY to 256 for palette mode and fbe in non ALPHABLEND
* added bin/fbe (demos/fbe.c), frame buffer emulator on X11 for 1, 2, 4 and 8bpp!
to use set default BPP/XRES/YRES in drivers/scr_fb.c, FBEMULATOR=Y in config
run FRAMEBUFFER=/tmp/fb0 bin/fbe -d<bpp>
reverse bit order supported for 1,2,4 bpp (-r option)
* removed EMBEDDEDPLANET and TPHELIO special cases in scr_fb.c
26 April 2010 - greg@censoft.com
* fixed FT2 non-antialias (bitmap) display in left/right/down portrait
* implemented drawarea_bitmap_bytes_msb_first in fbportrait*.c
(current requires bitmap rotatation)
* wrote rotate bitmap 1bpp left/right/down routines
* fix mask bug in drivers/fblin1rev.c (Vladimir)
* generalize portrait routines, add gen_setportrait, gen_mapmemgc
portrait mode should work with most any screen driver
by adding gen_setportrait scrdev entry and setting psd->orgsubdriver
* add portrait mode to X11 screen driver
Version 0.92RC4 - 11 April 2010 - greg@censoft.com
* fixed drawarea_alphacol driver for right/left/down portrait
(freetype2 w/anti-aliasing now works right/left/down)
* speedup fblin32/16 drivers, no asserts by default
* add partial Hanzi Bitmap Font support (hbf.c, genfont.hbf.c)
* add WDTV sigma 863x drivers scr_smp863x.c, scr_em86xx.c
* fix invalid event return on mou_tslib.c driver (Kave Dai)
* finally correct muldiv255 macro, moved all to include/device.h
* update alpha channel with muldiv255
* fixed bad free in GrSetSelectionOwner
1 April 2010 (Foedrowitz)
* revised GsCheckCursor() handles grab window differently
* inherit cursor from parent window(s)
* revised GrMovewindow screen blit move algorithm
* rewrite GrResizeWindow so no unmap required
* add GrCopyEvent, GrFreeEvent, must use for CLIENT_DATA events
when GrPeekEvent or GrPeekWaitEvent called, as data later freed
31 March 2010
* remove obsolete.c from engine/, fonts/, drivers/
* cleanup fblin32.c, fblin32alpha.c, fblin24.c, fblin16.c, fblin8.c
* rewrite alpha blend code in fblin32.c, fblin32alpha, fblin24.c, fblin16.c
* change alpha calc in drawarea alphablend routine to a+1 from a+(a>>7)
* remove bad background draw on ft2 rotated fonts
* fix draw background for ft2 fonts when usebg=1 in alphablend drawarea driver
background is now drawn only for char glyph bbox, not entire text bbox
* added underline for non-rotated ft2 fonts
23 March 2010
* use macros for alphablend in GdDrawImage, default fast inc/shift method
* cleanup fblin*.c code
* fix PCF/FNT and core font gettextsize to display default char if out of range
* added test RGBA tif file strike.tif
* fix bitfield order declarations for big endian GdDrawImage w/alpha (Sung Joo)
11 March 2010
* changed win32 BUTTON control to get/put longs on longword boundary
* add -DARCH_NEED_ALIGN32 to CFLAGS for PSP port fix
* special thanks to YuTao <yut616@21cn.com> for debugging PSP port!
* cleanup mdemo.c for various options (for PSP port debug)
Version 0.92RC3 - 9 March 2010 - greg@censoft.com
* remove assert(c<psd->ncolors) check in fblin32.c, allow nonzero alpha
* careful edit of GdDrawImage for handling image draw w/alpha channel
* change many comments to clarify framebuffer and longword A,R,G,B order
* add new MW_TRUECOLORABGR ABGR pixel format (RR GG BB AA LE framebuffer)
* Sony PSP port using 32bpp ABGR pixel format (Jim Paris - ps2dev.org)
great port and ABGR fb format by Jim Paris, untested in this version
7 March 2010 - greg@censoft.com
* added back MWIMAGE_ALPHA_CHANNEL flag to tiff decoder (untested)
* fix inconsistency with PNG GdDrawImage w/alpha ARGB order (Byun Sung Joo)
* nanowm enhancements: moved to library, wm_handle_event/wm_init api,
added to apps in LINK_APP_INTO_SERVER case when NANOWM=Y,
window close on button up, NO_CORNER_RESIZE, NO_AUTO_MOVE options,
GR_WM_PROPS_NORAISE and NOMOVE supported in container bits (Johannes)
* GrGetWMProperties now returns malloc'd props.title in NONETWORK case
* fix long offset for win*.c fonts, fix GsAcceptClientFd close()
21 February 2010 - greg@censoft.com
* widen space char width in PCF font decoder (usually was 1 pixel wide)
* fixed clipping code for pixmaps with offsets (Johannes)
30 January 2010 - greg@censoft.com
* added PACKEDDATA structure attribute/define for packed data structs
* fixed BMPHEAD packing for screen.bmp files, add portrait mode (Steven)
* fix to support clipping for shaped windows with borders (Byun Sung Joo)
Version 0.92RC1 - 24 Jan 2010 - greg@censoft.com
* fix multithread bug: allow other threads to run while in select: (Robert)
* unlock lock around client.c::select() (test in demos/nanox/threadtest.c)
* finalized Linux default UNIX98 pty support for nxterm, reformatted heavily
* added ngterm terminal type and TERMCAP environment string to nxterm
* implement alpha channel using C bitfields in GdDrawImage (Byun Sung Joo)
* add nxview -p for background pattern, -s for window half screen size
11 January 2010 - greg@censoft.com
* added pcfdemo.sh to test problem helvB12_lin.pcf.gz and large pcfs
* cleaned up defines for RTEMS, __ECOS, LINUX
10 January 2010 - greg@censoft.com
* clear background in freetype 2 rotated text (Junior)
* turned back on auto caching for Freetype 2.3.x (tested 2.3.9) (Riaz)
* fixed bug in applyOp2/3/4 macros affecting 16bpp non-copy drawing (Uwe)
* added GetTextAlign, implemented TA_CENTER, TA_RIGHT (Uwe)
* removed createfont fail verbose messages
* faster fillrect in genmem.c when portrait mode
* added 18bpp (RGB666 LSB) framebuffer support/driver ARM PXA270 (V Brach)
* enhanced korean KSC5601 dbcs support, modified jo16x16.c font
* enhanced nxterm w/cursor key support, started UNIX98 /dev/ptmx support
* vncserver patches (still broken), updated snap_jpeg for palette support
* added tomtom support and mouse driver
9 January 2010 - greg@censoft.com
* fix copyright notice sscanf in convbdf.c
* fix off-by-one in GdFillPoly (Foedrowitz)
* added Linux tslib driver TSLIBMOUSE=Y (/dev/input/event0) (Daniel)
* added Linux AVR32 target support (Daniel)
* added Linux Blackfin target support
* fixed bug in pcf font subdriver, added test helvB12_lin.pcf.gz test
* test and update src for latest png, tiff, t1lib, libz libraries
* add patches for RTEMS 4.10 support (Joel and Roxana)
21 January 2008 - greg@censoft.com
* fix .fnt.gz loader padding bug
6 January 2008 - neuros patches from Vladimir
* add generic window message send GrSendMsg, GR_EVENT_MSG, GR_EVENT_MASK_MSG
* add alpha channel handling in GdDrawImage, alpha support in PNG loader
* fix bug in GdGetNextTimeout
* add GrDrawImagePartToFit - draw image from part of source image
* add MWMODE_SRCTRANSCOPY support in fblin16, applyOp{3,4} macros for speed
* remove #include <asm/page.h> in clientfb.c, PAGE_SIZE now internal
* fix GsWpDrawBackgroundPixmap to work with pixmap window backgrounds
30 November 2007
* fix ftell in FNTGZ font subdriver
* port AGG AntiGrain Geometry, NXLIB and direct hw fb version
* add MWPF_HWPIXELVAL run-time pixel type to allow no-translation GrArea
* add back in low level psd->DrawArea for fast GdArea
* rewrite GdArcAngle to fix bug w/small angles, no fp required
* add font file parameter to fontdemo
9 September 2007 - greg@censoft.com
* fix EPRINTF for gcc 3.x (Petr)
* fix ft1 return on zero height/width characters (Alexander)
* fix GrNewBitmapFromData pad when byte swapped (Martin)
* break GrBitmap requests into MAXREQUESTSZ size packets (Martin)
* fixed freetype2 font rotation, baseline, compile w/cache off bugs
* added support for freetype2 2.3.5 (forces cache off for now)
22 June 2006 - greg@censoft.com
* added complete rop processing to fblin4.c 4bpp driver
21 April 2006 - greg@censoft.com
* obtained permission to convert stretchblit code from LGPL to MPL
20 December 2005 - greg@censoft.com
* added support for 16bpp 5/5/5 and 5/6/5 images to GdDrawImage (Greg)
* added support for 16bpp and 32bpp .bmp files
10 November 2005 - neundorf@kde.org
*src/include/mwtypes.h: include ecosmwconfig.h under eCos
*src/drivers/kbd_rtems.c: use kbd.mode for supporting keyrelease events under eCos
*src/engine/dev_open.c: disable GdCaptureScreen() under eCos
*src/ecos/cdl/: update microwindows.cdl
*src/ecos/: add eCos specific files (support for qvfb, mw uid and WinMain)
9 November 2005 - neundorf@kde.org
*src/demos/mwin/mdemo.stretch.c, mdemo.c: change #ifndef ELKS to #if !ELKS
*src/mwin/winmain.c: enable the RTEMS code for eCos, change MwSelect() to MwSelect(BOOL)
7 November 2005 - neundorf@kde.org
* src/include/device.h: guarded some defines, so that they are not redefined
if they are already defined (as it is the case in the eCos port) (Alex)
17 October 2005 - neundorf@kde.org
* src/drivers/kbd_rtems.c and mou_rtems.c: fix a null pointer crash in
MWKbd_GetModifierInfo() and prepare both files for usage under eCos (Alex)
7 October 2005 - neundorf@kde.org
* src/engine/error.c: use diag_printf() for error reporting under eCos (Alex)
5 October 2005 - neundorf@kde.org
* src/include/swap.h: removed dependency to network stack under eCos (Alex)
* src/engine/selfont.c: removed wrong and unnecessary select_font() declaration (Alex)
* added support for BGR233, backport from the eCos port (Alex)
23 June 2005 - greg@censoft.com
* reduced mem size, const for text section, static for size (David)
* cleaned up David Bell's copyright notice with permission
* added GrQueueLength, GrGetTypedEvent, GrGetTypedEventPred for
LINK_APP_INTO_SERVER case
* fixed DT_RIGHT in MwDrawText,
invalid hwnd in SendMessage & MWGetTopWindow (Jochen)
* added Gabriele's test .rc -> .c conversion tool: contrib/makedlg
* added Gabriele's win32 api enhancements test pgm: demos/mwdvetest
added accid___.ttf, VAGROLN.TTF test fonts,
Bitstream Cyberbit unicode font (13Mb) and
other truetype fonts are downloaded automatically on make
* reformatted windlg.c,newedit.c,winres.c,winresbmp.c,listbox.c,static.c
* added right-to-left rendering w/shape joining (Gabriele)
HAVE_FRIBIDI_SUPPORT, HAVE_SHAPEJOINING_SUPPORT config opts
MwSetTextCoding sets default text coding for non wide char fns
* added --no-whole-archive option to leave .so's dyn-linked (Hinko)
* fixed alpha blending demo when nEraseBkGnd zero
* added extremely extensive enhancements to win32 API: (Gabriele)
- New Dialog features:
- Added function EnumFonts
- Added function EnumChildWindows
- Added function GetClassName
- Added function GetNextDlgGroupItem
- Added functions CreateDialog, CreateDialogParam, DialogBox, DialogBoxParam
- Added functions IsDialogMessage, SendDlgItemMessage
- Added functions FindResource, LoadResource, LockResource,
UnlockResource, FreeResource, LoadString
Can read dialog, string and bitmap resources from .res file
- Added function resLoadBitmap, that loads a bitmap from resource file in
MWIMAGEHDR format.
- Added functions Set/GetDlgItemText, Set/GetDlgItemInt.
- Added functions IsDlgButtonChecked, CheckDlgButton. Fixed CheckRadioButton.
- Added functions GetDlgBaseUnits, MapDialogRect
- Implemented DrawFocusRect fn for controls focus highlight.
- Implemented WM_SYSCHAR message
- Implemented controls navigation for DIALOGS (arrows and tab).
- Implemented controls accelerator character (symbol '&' before character).
- New Control features:
- Static control: implemented WM_SETFONT message. The SS_BITMAP style shows bmp.
The text for non SS_SIMPLE static control is automatically wrapped as needed.
Implemented the WM_CTLCOLORSTATIC and fixed the SS_xxFRAME and SS_xxRECT styles.
- Button control: implemented WM_SETFONT and fixed mouse release outside bug
- Listbox: implemented WM_OWNERDRAWFIXED and WM_OWNERDRAWVARIABLE. Implemented
WM_MEASUREITEM. Fixed some paint code. Implemented Horizontal scroll.
- Rewrote edit control, newedit.c new features:
- horizontal scroll.
- non-fixed fonts works without caret position problem.
- selection (SHIFT+Arrowkeys or Home/End).
- cut and paste (CTRL+INS, SHIFT+INS, SHIFT+DEL).
- word skip if CTRL pressed when using arrows keys.
- mouse selection and autoscroll.
- mouse dblclick.
- insert and replace mode, with different caret size.
- ES_LOWERCASE/UPPERCASE
TODO: multiline capability.
- Other bug fixes:
- anti-aliasing min font height now set in device.h using FTMINAA_HEIGHT
- global user_builtin_fonts
- added font cache for freetype fonts to speed up GetTextMetrics
- Caret blinking.
- WM_CHAR not sent if the key pressed is a control key (like VK_LEFT ecc.).
- WM_KEYDOWN: Bit 24 in lParam indicates that the key is a control key.
- Implemented TabbedTextOut and GetTabbedTextExtent.
- automatic underlined character using & marker
- framebuffers: fblin4rev.c should not reverse the c color pixel when in XOR mode.
- Now it's possible to activate any number of timers.
- Timers: remove timers associated to wnd when windows are destroyed.
- Windows caption is now dynamically allocated. Note that szCaption (member of HWND)
is now a pointer, not an array! Never use sizeof(szCaption)!!!
- Window structure has some new items: lpfnWndProc, paintBrush, paintPen, hInstance.
- WinMain now has hInstance, szCmdLine
- Keep window erasebkgnd count
- Only post one kbd message to a window at a time, fixes new window post bugs
- Some architectures, like ARM, needs data to be 32bit aligned in GetWindowLong
and SetWindowLong. Fixed it by rd/wr unaligned data as four bytes.
The definition ARCH_NEED_ALIGN32 should be set in Makefile.rules if needed.
- The MwSelect function has been changed. An argument is passed to the function to
indicates if the select may suspend or not the process. PeekMessage do not suspend,
GetMessage suspend until a next timeout or user action.
- if MW_CALL_IDLE_HANDLER is defined, a function idle_handler is called
(should be implemented in the application code). The idle_handler has
the following prototype: void WINAPI idle_handler ( void );
This may be used in some embedded application to put CPU in idle state
and save battery.