Commit Graph

241 Commits (b3216fa0cceaa6d2751a6e1602554d5da66d0436)

Author SHA1 Message Date
Joel Bodenmann 69de17687c Fixing compiler warnings
pull-request sent to upstream
2015-10-30 16:40:08 +01:00
Joel Bodenmann 051b3a9acc Doxygen 2015-10-30 15:39:18 +01:00
Joel Bodenmann ee2b82271d Adding word-wrap support for gdispDrawStringBox() and gdispFillStringBox()
Thanks to Koryagin Dmitry for this contribution
2015-10-30 15:37:55 +01:00
inmarket 48a9d334b7 Replace all inline definitions with GFXINLINE 2015-10-23 18:24:49 +10:00
Joel Bodenmann fd7e047bf8 Moving INLINE macro to gfx.h main file as inlined functions are also used outside of gdisp.h 2015-10-20 20:00:45 +02:00
inmarket 64a184fc59 Fix compiler warning 2015-10-06 12:03:24 +10:00
inmarket 53cb1af757 Add extra font metrics 2015-10-06 12:02:58 +10:00
inmarket 9d62e631cf Allow a zero sized clipping region 2015-07-08 13:34:53 +10:00
Joel Bodenmann 380c41b766 Improving Pixmap API 2015-07-03 17:08:28 +02:00
Joel Bodenmann e9c03c857e Improvind doxygen 2015-06-18 15:38:34 +02:00
inmarket ccde54722f Added ability to compile ugfx as a single file (excluding driver and board files).
Simply compile src/gfx_mk.c
2015-06-08 14:14:40 +10:00
inmarket aa7ebf9c26 Add the license to the makefiles 2015-06-08 12:11:37 +10:00
Joel Bodenmann 37ab4ec1cd Fixing doxygen 2015-05-16 20:17:50 +02:00
inmarket 1a09f151e2 Fix to LLD driver color conversions. 2015-05-10 17:12:00 +10:00
inmarket beacfaa994 Fix in color conversions for some strange compilers that don't do macro expansion in the highest available integer format 2015-04-07 23:20:16 +10:00
inmarket 601fd6855d Add more pixel format support 2015-04-07 23:19:10 +10:00
inmarket f44b1c6412 Small fix for scrolling 2015-04-07 23:18:32 +10:00
inmarket 39459872b2 Fix pixel error rounding in gdispDrawConvexPoly().
The corrects strange gwin arrow button appearances for certain sizes.
2015-02-14 10:38:24 +10:00
inmarket 143d9be295 Change ugfx startup logo to white so it shows up on monochrome displays 2015-02-07 23:33:02 +10:00
inmarket f12e847c30 Fix compiler warnings for some drivers 2015-02-05 00:20:37 +10:00
inmarket adebde7a99 Fix multiple display/keyboard/mouse problem with some compilers. 2015-01-27 13:42:11 +10:00
inmarket fa8167b94d Big file rename to reduce problems with brain-dead IDE's that don't handle project file hierarchies well.
Naming is more consistent with the new scheme.
May affect some third party drivers (header file renames).
2015-01-21 17:26:24 +10:00
inmarket 8b221b803a Compile fix for default orientation with pixmaps. 2015-01-14 18:39:12 +10:00
inmarket b68cfa0c29 Support dynamic displays at compile time, don't re-orient pixmaps at initialisation time. 2015-01-13 14:28:56 +10:00
inmarket ef00cac45d Add support and demo for pixmaps (in memory drawing) 2015-01-13 13:50:46 +10:00
inmarket 9ddf7c4284 Protect against NULL strings 2015-01-03 18:41:11 +10:00
Joel Bodenmann 30b47f1581 Fixing wrong font name in DejaVuSans20_aa font 2014-11-29 11:13:44 +01:00
Joel Bodenmann 0718866107 Fixing bug in gdispGDrawRoundedBox() 2014-11-29 11:08:32 +01:00
Joel Bodenmann 8e54d01db1 Fixing Doxygen 2014-11-28 19:47:57 +01:00
inmarket bd3a58ccfc Fix some extern structure definitions that cause problems with some compilers 2014-11-26 13:02:47 +10:00
Joel Bodenmann fe976dac66 Fixing font names of newly added DejaVuSans20 and DejaVuSans20_aa 2014-11-17 21:42:03 +01:00
inmarket 8ca6fad9fd Add DejaVuSans font in 20 point as a standard font 2014-11-15 15:20:47 +10:00
inmarket 599a163181 Spacing, comments and spelling mistakes 2014-11-15 15:19:46 +10:00
Joel Bodenmann 1541ae0d37 Adding GDISP_NEED_ARCSECTOR stuff that was missing 2014-10-28 12:02:47 +10:00
inmarket 3825cec8f8 Added new arc sector drawing routines (Thanks to steved for the inspiration).
Added demo to match.
2014-10-27 16:44:53 +10:00
inmarket 4b348f43ad Update buildfonts.sh to match change to fonts.h 2014-10-06 15:57:37 +10:00
Joel Bodenmann 5427d3efe5 Fixing inclusion problem 2014-10-05 15:03:12 +02:00
inmarket b7a89b2ada doxygen updates 2014-09-29 16:09:08 +10:00
inmarket b42a2098eb Change to GDriver to support an initialisation parameter 2014-09-26 16:35:34 +10:00
inmarket 9f720b1f12 C decls on GDISP functions 2014-09-25 17:45:03 +10:00
inmarket 4886403bc6 Expose the GDISP_STARTUP_COLOR setting for the initial color of displays 2014-09-25 17:44:50 +10:00
inmarket 3a520359a0 GDISP updates to match previous GDRIVER and multiple display updates 2014-09-17 09:34:08 +10:00
inmarket 036ad5d3dd SImplify the options for multiple displays.
This will also be more compatible with newmouse infrastructure
2014-09-17 08:45:40 +10:00
inmarket 683ac0ab7f Fixes to gdriver to make uGFXnet displays work 2014-09-13 14:50:32 +10:00
inmarket 0c7c74112e GDRIVER now working for GDISP including multiple displays.
Still uses old GDISP driver model for now
Untested with uGFXnet.
Still to come: Input drivers etc
2014-08-23 17:55:42 +10:00
inmarket 0f3f8f68f8 Rename lots of files to help prevent compile time name conflicts. 2014-08-20 17:42:53 +10:00
Joel Bodenmann 52f40d7618 Fixing compile bug for NATIVE image format 2014-08-07 23:11:44 +02:00
inmarket ed14e4ca56 Some improvements for the Kiel C compiler 2014-07-29 10:57:01 +10:00
inmarket 3a98279583 Add gdispContrastColor() and remove divides from gdispBlendColors() 2014-05-11 20:05:31 +10:00
inmarket 1c75b6c352 spacing 2014-05-11 13:13:18 +10:00
inmarket cf5867b33d New gdispImageInit() call to initialise a gdispImage structure
Use in gwinImage
2014-05-09 21:30:00 +10:00
Joel Bodenmann c2e93ebcfb bug fix 2014-05-06 17:14:30 +02:00
inmarket 8f6c04e120 Image bug-fix that caused crashes with the new GFILE/GWIN images. 2014-05-01 16:43:32 +10:00
Joel Bodenmann e9179545af doxygen fixes 2014-03-28 20:18:03 +01:00
inmarket 37966ff16d Integrate the include files with each module. Simplifies structure of code. 2014-02-19 00:36:52 +10:00
inmarket 695bcbee5b Update GDISP image code to fully use new GFILE's 2014-02-07 14:06:08 +10:00
inmarket 71aeb15d58 Start changing GDISP images to use a simpler API based on GFILE's. 2014-02-07 01:36:31 +10:00
inmarket de7aafe785 Fix font clipping properly. Previous fix did not bound the font display in the x direction. 2014-02-03 17:58:43 +10:00
Joel Bodenmann a11f7da536 added deinit() routines for all modules (not implemented so far) 2014-02-02 19:24:43 +01:00
Joel Bodenmann 2a0dfcf1c1 fixed clipping issue when widget text is long than the widget itself 2014-02-01 16:04:07 +01:00
Joel Bodenmann 1f3f8bdbe6 fixes in gdispImage nativ format by Marc Pignat 2014-01-17 08:04:35 +01:00
inmarket d9f02858fd Replace NULL's with 0 as NULL is not defined by the Raw32 GOS. 2013-12-21 13:21:59 +10:00
Petteri Aimonen 985a3ca43a gdispDrawThickLine: handle zero-length lines correctly. 2013-12-19 18:00:49 +01:00
Joel Bodenmann ee69db45b3 Fix integer overflow in gdispGDrawThickLine().
Handling the whole width/height range with Newton algorithm was too
    difficult. Switched to bisection search with a separate prescaling
    step.
2013-12-18 00:38:17 +01:00
Joel Bodenmann d16dda2180 GDISP startup logo now optional 2013-12-16 20:11:51 +01:00
Joel Bodenmann 87a7658b57 Improve gdispDrawThickLine() when the line length is short. 2013-12-14 23:30:39 +01:00
Joel Bodenmann f3d9b08f82 typo 2013-12-08 22:50:28 +01:00
Joel Bodenmann ace1948817 added gdispGDrawThickLine() 2013-12-08 21:13:54 +01:00
inmarket cec125a53b Revert "INLINE -> inline"
This reverts commit d4c4740bcf.
2013-11-30 11:00:49 +10:00
Joel Bodenmann d4c4740bcf INLINE -> inline 2013-11-27 16:42:28 +01:00
inmarket 7f1b78a067 Replace color format conversion macros with proper routines to prevent side effects with using the macro.
Also fix a number of compiler warnings.
2013-11-17 23:32:19 +10:00
inmarket 0892135e23 Re-order the GDISP initialisation routine so that it initialises all displays before it tries to draw on any of them.
This also simplifies code.
2013-11-16 01:54:37 +10:00
inmarket c726de8521 Boundary condition fixes to Arcs
Fix multiple display support for rounded boxes.
2013-11-14 09:18:08 +10:00
inmarket 5cc1c5d67b Fix some compiler warnings. 2013-11-10 21:33:28 +10:00
inmarket 1f99d5c9fa Add support for a default application orientation.
Also remove old unneeded GDISP_USE_CUSTOM_BOARD macro
2013-11-09 19:18:59 +10:00
inmarket daa4e8bbd7 Add support for a portrait and landscape orientation modes. 2013-11-09 19:17:22 +10:00
inmarket 250adaf028 Fixes to gdisp vertical scrolling.
Also added improved optimisation for drivers without blit but with a fill routine.
2013-11-05 13:45:19 +10:00
inmarket a28dce97d8 Add multiple display support to image decoding. 2013-10-24 18:34:26 +10:00
inmarket 21afd2b8f1 Created a crude auto-scaling logo (for startup) 2013-10-24 13:59:03 +10:00
inmarket 452cfc1b13 Add GDISP_NEED_TIMERFLUSH to enable automatic display flushing on a timer. 2013-10-24 12:57:20 +10:00
inmarket 4a5506df0a Fixes to GDISP for streaming drivers.
Turn optimisation back on for SSD1289 driver
2013-10-24 11:32:46 +10:00
inmarket 27b5383c1b Fix typos in drivers 2013-10-22 15:52:31 +10:00
Joel Bodenmann 459fbf6781 fixes 2013-10-21 13:47:59 +02:00
inmarket 0b9db701a1 Fix missing case in gdispStreamStop().
Add support for controllers that need flushing.
Add both automatic and manual flushing (via the gdispFlush() method)
2013-10-21 13:34:55 +10:00
Joel Bodenmann 2bd4758569 compiler warnings 2013-10-21 07:56:23 +10:00
inmarket 87a6af81f4 Change to gdisp low level driver API. Display number is now in the GDriver structure (It was required for a Nokia driver). 2013-10-19 15:36:05 +10:00
inmarket 86a5734912 Multiple controller support can now auto-detect hardware capabilities at run-time.
Specific hardware support can still be turned off or on via macros in gfxconf.h to improve efficiency.
Multiple Display demo updated to match.
2013-10-16 01:39:56 +10:00
inmarket ea4af865f1 Compile time fix to text rendering.
Updated gdisp Get/Set Display routines to a more logical API.
2013-10-14 08:55:15 +10:00
inmarket d22bc07e7a Multiple displays across one or more controllers is now fully supported.
Only the Win32 driver supports this so far.
Other drivers are currently broken due to API changes and will be fixed.
2013-10-12 13:24:40 +10:00
inmarket 884db04e8c New optimisation method for some streaming drivers. It should improve speed by about 30% for those controllers that support it. 2013-10-02 16:29:02 +10:00
inmarket 6499da5be3 SSD1289 streaming driver (untested)
X streaming driver (untested)
Nokia6610 fixes
Read pixel streaming support for low level driver.
2013-09-30 00:05:07 +10:00
inmarket 548eb3c981 GDISP Streaming bug fixes and new optimisation method 2013-09-27 01:37:32 +10:00
inmarket 9c55df5467 Fix compiler warning in image code 2013-09-27 01:35:29 +10:00
inmarket 30154560b6 Rename a macro and fix some bugs 2013-09-25 17:17:05 +10:00
inmarket 973e34089e GDISP streaming bug fixes
Win32 bitmap support
Win32 Rotation is back to front. Need to check touch and other drivers.
2013-09-24 16:10:15 +10:00
inmarket b25ac5e667 Scrolling emulation when not supported by hardware
Start of new multiple display support
GDISP performance optimisations
Documentation updates
Win32 driver updates
2013-09-18 23:46:37 +10:00
inmarket 01a6d6ff95 Fix some compiler warnings 2013-09-18 23:36:35 +10:00
inmarket 6e4437255b GDISP revamp - stage 1
New low level driver interface: Only Win32 ported currently
Significant reduction in GDISP stack usage
Improved performance particularly for native streaming drivers
New circle, ellipse, arc routines (draw and fill) that are significantly more efficient and don't overdraw
New arc draw algorithm that measures angles correctly.
New arc fill algorithm for that actually works without overdrawing or gaps.
Much more to come...
2013-09-06 12:29:06 +10:00
inmarket 4394266679 Update fonts files to allow compiling without GDISP_NEED_TEXT. 2013-09-06 12:23:48 +10:00
inmarket 323f53e1dc Improve font name searching. 2013-08-17 23:33:31 +10:00
inmarket a2b27a6f5c Add new hand built bitmap fonts to replace old UI1 and UI2.
Allow scaled fonts to be staticly defined.
Update new fonts handling so UI1 and UI2 have Narrow and Double variants.
Update example gfxconf.h.
Fix new font rules.
Add support for an application program to add their own fonts.
Make system font handling includes root relative.
2013-08-17 23:32:53 +10:00
inmarket db18904892 From mcufont upstream: Fix tab handling in mf_get_string_width 2013-07-30 14:20:26 +10:00
inmarket 99642e2a99 From mcufont upstream: Fix inconsistency between UTF8 and other encodings 2013-07-30 14:19:50 +10:00
inmarket 0ee1b20451 Add font baseline to the starting point of string rendering.
Otherwise the limit calculation will cut off the first character
on larger fonts, like DejaVuSans24.
2013-07-30 14:19:05 +10:00
inmarket 7f15192fe8 Fix rule handling to help the end user get things right.
Tidied up anti-alias where the hardware does not support pixel read-back.
2013-07-29 16:31:54 +10:00
inmarket 7c303eb72e Vastly simplify GDISP mcufont interface code.
Fix boundary cases.
Prevent overwriting of defined display area.
Improve performance.
Remove hardware acceleration for fonts (unlikely anyway unles the hardware understood our software font structures)
2013-07-29 16:29:25 +10:00
inmarket 12085b8014 Fix compiler warnings, operating system dependancies, and non-portable code. 2013-07-29 16:25:20 +10:00
inmarket be8b3cd210 Updated license headers on new font code 2013-07-28 17:22:24 +10:00
inmarket 3977ee687f First cut - beautiful new font handling by PetteriAimonen 2013-07-28 17:08:45 +10:00
inmarket 0194b87efe Missing define for OSX 2013-07-24 13:55:54 +10:00
Joel Bodenmann ea3048ff36 fixed OS-X port (untested) 2013-07-23 18:52:52 +02:00
Joel Bodenmann 73c5ef26f8 fixed license headers 2013-07-21 22:20:37 +02:00
inmarket 0c7609b51e GDISP fix bug in non-multithread 2013-07-08 08:30:48 +10:00
inmarket f7e7a5dae4 Image decoders not setting image type correctly. 2013-07-08 08:30:06 +10:00
inmarket dd43a37b9b Add gdispImageIsOpen() function. 2013-07-01 17:36:47 +10:00
inmarket ed0bac9765 License header updates 2013-06-15 21:37:22 +10:00
inmarket 1c258a8273 GOS updates 2013-06-02 18:57:22 +10:00
inmarket 7fbfde42aa GOS module, for operating system independance
GMISC fast floating point trig
GMISC fast fixed point trig
2013-05-25 01:26:52 +10:00
Abhishek Kumar 4e7c1b00ca Fix GIF rendering issue
Uninitialized cache values causes stability issues in systems
Cache initialized to 0 fixes it.
2013-05-21 14:00:17 +07:00
Joel Bodenmann 8d5fa39dd9 docs 2013-05-20 19:15:20 +02:00
Andrew Hannam 88fd3ad62e More Image Fixes
GIF Interlaced offset Fixes and area reveal offset fixes
2013-05-09 23:51:56 +10:00
Andrew Hannam 734ef12fdf Image Decoder Fixes
Fixes to memory allocation for BMP and NATIVE
Fixes to source offset images for GIF
2013-05-09 23:39:38 +10:00
Joel Bodenmann 6c38d5b310 updated license headers 2013-05-03 16:36:17 +02:00
Joel Bodenmann 296e74f3e0 Revert "updated license headers"
This reverts commit 0a26d9983b.
2013-05-02 01:53:28 +02:00
Joel Bodenmann 0a26d9983b updated license headers 2013-05-02 01:50:09 +02:00
Andrew Hannam a02c124940 GIF image handling
GIF image handling
Updates to Image structure to make memory accounting optional
Add set image background color to handle animated transparency.
2013-04-20 21:19:26 +10:00
Andrew Hannam 553b3682fa Change Memory Reader prototype
Change Memory Reader prototype to prevent signed, unsigned warning
2013-04-04 21:01:49 +10:00
Andrew Hannam 40e6d9c532 Fixes to RLE_4, RLE_8 and 16 bit BMP images
BMP image handling now complete.
The only standard BMP feature not supported is transparency (alpha).
2013-04-03 14:58:35 +10:00
Andrew Hannam 64971549fd New GDISP image handling with demo
Images currently support Native and BMP (except RLE4,8 and 16 bit - due
to bugs)
Supports reading from Memory, BaseFileStream or real files (only on the
Win32 simulator).

Move gdisp_pictures demo to better refect its purpose.

Bug fixes for BMP RLE4,8 & 16 bit to come very soon
GIF support very soon.
2013-04-03 13:51:43 +10:00
Andrew Hannam cc5729dedd Change GDISP poly fns to support translation
Change GDISP poly fns to support translation - required for adding poly
functions to GWIN
2013-03-18 18:27:52 +10:00
Andrew Hannam 40b390908c GDISP changes including polygon support
Add polygon drawing
Add convex polygon filling
Start support for a monochrome display
Move gdisp doxygen to header file
Restructure the balance between gdisp.h and gdisp_lld.h
Remove old extern font definitions (now always use gdispOpenFont)
Make public the GDISP structure and change macros to suit (faster for
the application).
gdispQuery is now optional.
2013-03-10 16:14:32 +10:00
Andrew Hannam 8a40457c86 Revert "GDISP changes including polygon support"
This reverts commit 269262ef9b.
2013-03-10 16:12:13 +10:00
Andrew Hannam 269262ef9b GDISP changes including polygon support
Add polygon drawing
Add convex polygon filling
Start support for a monochrome display
Move gdisp doxygen to header file
Restructure the balance between gdisp.h and gdisp_lld.h
Remove old extern font definitions (now always use gdispOpenFont)
Make public the GDISP structure and change macros to suit (faster for
the application).
gdispQuery is now optional.
2013-03-10 16:11:41 +10:00
Joel Bodenmann e315480c71 updated copyright - 2013 2013-03-06 23:11:01 +01:00
Andrew Hannam 9329b22086 Fix compile error in GDISP
Fix compile error with wrongly named include file
Revert lld_gdisp naming convention to gdisp_lld to fix problem and be
consitant with all other low level drivers.
2013-02-18 17:29:08 +10:00
Joel Bodenmann 60b16e8685 more GDISP_LLD() cleanup 2013-02-11 10:26:34 +01:00
Joel Bodenmann 1bfc5a9f85 removed GDISP_LLD() macro - fix 2013-02-11 09:25:45 +01:00
Joel Bodenmann 885b3d53b3 removed GDISP_LLD() macro 2013-02-11 09:25:26 +01:00
Joel Bodenmann 3a9a2a10b7 doxygen update 2012-12-16 20:43:14 +01:00
Andrew Hannam 5873d87ca2 Add GDISP font routines. Fix demo bugs
Add GDISP font routines to Open and Close a font by name.
Allows wildcard searching for fonts.
Old global font variables are now only optionally included (soon to be
deprecated).
More demo fixing
2012-12-07 00:52:01 +10:00
Andrew Hannam 07f3483535 Restructure
Create global include file called gfx.h which knows about sub-system
dependancies.
Deprecate Touchscreen (GINPUT touch is now working properly)
Merge Graph into GWIN
Change directory structure to reflect sub-system structure
Many small bugs fixed
Split Nokia6610 gdisp driver into GE8 and GE12 controller versions
Fixed broken demos.
GFX sub-systems are now clearly defined and new ones should be much
easier to add.
2012-12-06 18:45:54 +10:00