Commit Graph

453 Commits

Author SHA1 Message Date
Gregory Nutt
10388e9123 exmamples/, graphics/NxWidgets: Implement new interfaces nx_synch() and nxtk_synch(). This are used to syncrhonize the NX server with the window client. Currently most of the logic is equivalent to nx_block() and nxtk_block(), but with slightly different semantics. The are separate now because they are likely to diverge in the future. 2019-03-25 13:48:27 -06:00
Gregory Nutt
f5e8dc60f4 graphics/nxmu, include/nuttx/nx/nxmu.h, libs/libnx: Add new server->client callback to notify the window client of server events. Remove the old 'blocked' callback and just make it one case of an 'event' callback. 2019-03-25 13:00:13 -06:00
Gregory Nutt
5812bbeb04 Update ReleaseNotes in preparation for NuttX-7.29 release. 2019-03-24 17:58:51 -06:00
Gregory Nutt
372e8b86a4 libs/libnx/nxmu/nx_filltrapezoid.c: Fix a coordinate system error. When no clipping rectangle is falls, it falls back to use the entire window as for the clip. However, that window must then then be in window relative coordinates, not in absoute device coordinates. 2019-03-20 12:26:45 -06:00
Gregory Nutt
5fda638cf0 libs/libnx/nxtk: Add logic to re-draw the frame when the toolbar is added or removed. 2019-03-18 12:13:22 -06:00
Gregory Nutt
10b73fde9d graphics/: Correct logic for copy of bit maps with resolution less than 8 bits from the per-window framebuffer to the device. 2019-03-18 09:45:09 -06:00
Gregory Nutt
92554257b9 Squashed commit of the following:
graphics/nxbe/nxbe_bitmap.c:  Fix another coordinate system problem.

    graphics/:  Review use of device coordinate system with window frambebuffer and make fixes accordingly.

    graphics/nxbe/nxbe_fill.c:  Fix a coordinate system bug.  Was trying to update the window fraembuffer using the device coordinate system.  Need to use the relative coordinate system.

    graphics/:  Use DEBUGASSERT instead of return an error since the is no user to handle the errors within the NX server.  Use CONFIG_DEBUG_GRAPHICS instead of CONFIG_DEBUG_FEATURES in most cases.

    graphics/:  Nothing under graphics/ should set the errno.
2019-03-17 11:34:45 -06:00
Gregory Nutt
18d52ecee2 app/graphics/nxbe/nxbe_setsize.c: Fix backward source/destination in memcpy() in new per-window framebuffer logic. 2019-03-16 17:37:29 -06:00
Gregory Nutt
56c7b65094 configs/open1788/pwfb: Add an example for testing per-window frame buffers. arch/arm/src/lpc17xx: Add a configuration option to skip over the framebuffer when adding DRAM to the heap. graphics: Early fixes from testing per-window framebuffer. Still lots of problems. 2019-03-16 12:31:29 -06:00
Gregory Nutt
e5c0084804 graphics/nxbe/nxbe_move.c: Fix a compile error found in build testing. 2019-03-15 16:11:39 -06:00
Gregory Nutt
9fa8c69e0e graphics/: Fix some errors found test last per-window framebuffer logic (without framebuffers). 2019-03-15 14:50:54 -06:00
Gregory Nutt
9a97eb0fcf This commit brings the per-framebuffer logic to code-complete. Still untested.
Squashed commit of the following:

    Update TODO list

    graphics/nxbe:  The moverectangle renderer now supports updates to the per-window framebuffer (unclipped) as well as the graphics device memory (clipped).

    graphics/nxbe:  The filltrapezond renderer now supports updates to the per-window framebuffer (unclipped) as well as the graphics device memory (clipped).

    graphics/nxbe:  The getrectangle method now returns data from the per-window framebuffer if available.

    graphics/nxbe:  The fillrectangle renderer now supports updates to the per-window framebuffer (unclipped) as well as the graphics device memory (clipped).

    graphics/nxmu:  If a window supports a per-window framebuffer, then redraw callbacks are suppressed and the device content is updated from the shadow, per-window framebuffer.  graphics/nxbe:  The copyrectangle renderer now supports updates to the per-window framebuffer (unclipped) as well as the graphics device memory (clipped).

    graphics/nxbe/nxbe_setsize.c:  Reallocate the per-window framebuffer when the window size changes.
2019-03-15 12:15:33 -06:00
Gregory Nutt
1efa91eaed graphics: Costmetic clean-up 2019-03-14 14:49:50 -06:00
Gregory Nutt
554a3ee824 graphics: Extend NXBE data structures to include the per-window framebuffer (pwfb) vtable. Add logic to initialize the pwfb vtable. 2019-03-14 14:38:56 -06:00
Gregory Nutt
49635f6e1f graphics: Clone logic for new bit blitters for per-window framebuffers. 2019-03-14 13:18:55 -06:00
Gregory Nutt
f2d90e6298 graphics: For consistency, rename fields fb->fbmem as in other structures. 2019-03-14 12:19:01 -06:00
Gregory Nutt
419c4cb6be A little more progress toward the implementation of per-window framebuffers. Still missing:
- Logic that generates the low lever framebuffer renderers for the per-window framebuffers,
- The logic that picks off the per-window framebuffer updates from normal graphics device updates.  This logic must update both the per-window framebuffer and the graphics device (from the framebuffer).

Squashed commit of the following:

    graphics:  Add logic to allocate the per-window framebuffer.

    graphics:  A few fragmentary thoughts on how a per-window framebuffer could be represented and allocated.
2019-03-14 11:20:14 -06:00
Gregory Nutt
2f257cfd0a graphics/nxmu/nxmu_start.c: Fix a warning found in build testing 2019-03-13 14:18:20 -06:00
Gregory Nutt
8a46b1f488 Squashed commit of the following:
graphics:  nx_openwindow() and nxtk_openwindow() now accept an addtional 'flag' parameter.  This argument is not used at present but will, eventually enable a RAM backed, per-window framebuffer.

    graphics/Kconfig:  Add configuration to support a rambacked framebuffer. Current marked as EXPERIMENTAL because this is a work in progress.
2019-03-13 12:34:13 -06:00
Gregory Nutt
0454ae2a10 This commit removes naming associated with and naming for the now non-existent NXFE graphics layer.
Squashed commit of the following:

    graphics/:  Rename nxfe_reportposition to nxmu_reportposition.  The is no longer an nxfe layer.

    graphics/:  Renmae nxfe_redrawreq to nxmu_redrawreq.  The is no longer an nxfe layer.

    graphics/nxmu/nxmu.h:  Renmae nxfe.h to nxmu.h.  There is no long an nxfe layer.

    graphics/: Rename nxfe_state_s to nxmu_state_s.  There is no longer an nxfe layer.

    graphics/: Rename nxfe_conn_s to nxmu_conn_s.  There is no longer an nxfe layer.
2019-03-13 09:16:30 -06:00
Gregory Nutt
aa4f7c9ba7 graphics/nxmu/nxmu_start.c: Extend nxmu_start so that receives a display number as an argument. This makes it possible to have multiple instances of the NX server running on boards that support multiple displays. Also includes updates to boardctl() to accept display number paramters. 2019-03-10 13:50:05 -06:00
Gregory Nutt
ffca6badfc Squashed commit of the following:
graphics/nxterm:  Needs to clear display initially.  Otherwise, garbage from previous display may still be present from preceding NxWM window.

    graphics/nxterm:  Back out most of the preceding NxTerm changes related to window size.  apps/examples/nxterm passed the complete NxTK window size.  Those changes were needed to make aps/examples/nxterm work.  But NxWM passes the the size of the NxTK main sub-window.  So I needed to back out the changes and then change the applications so that they passed the same value (the size of the NxTK sub-window).
2019-03-09 13:13:05 -06:00
Gregory Nutt
1f22ebfac3 libs/libnx/nxfonts: Fix a memory leak in the font cache. With a busy NxTerm display, this could drain off all the memory pretty quickly! 2019-03-08 11:52:49 -06:00
Gregory Nutt
aefacb05ca Minor NxTerm-related clean-up 2019-03-08 08:43:16 -06:00
Gregory Nutt
2d4ce4e047 graphics/nxterm and configs/open1788: Various fixes to get the NxTerm example working in PROTECTED mode with the Open1788 knxterm configuration. Basically works until the screen becomes full and it starts scrolling. Then characters are missing from the display. Needs more debug and test. 2019-03-07 15:57:34 -06:00
Gregory Nutt
7696731f19 configs/open1788/knxterm: Add a configuration to test NxTerms in the PROTECTED mode. This configuration does not yet link correctly because a few NxTerms interfaces are improperly exported from the OS: nxterm_redraw() and nxterm_kbdin(). I am thinking that these might be moved into libc/libnx with a little repartitioning effort. 2019-03-06 13:27:50 -06:00
Gregory Nutt
76781e16e0 Cosmetic spacing fixes. 2019-03-06 11:09:38 -06:00
Gregory Nutt
56b5b9f7ad graphics/nxterm: Remove the nxterm_unregister interface. The correct way to unregister a device is to unlink it. 2019-03-06 10:16:47 -06:00
Gregory Nutt
193e9af6f6 include/nuttx/nxmu.h: Due the name change, the nxmu_start() belongs more appropriately in nxmu.h than nx.h. 2019-02-04 17:48:30 -06:00
Gregory Nutt
7a2bb1f727 graphics/nxmu/nxmu_start.c: Fix a naming collision introduced with the last commit. Ye olde nx_start that started the NX graphics is now nxmu_start(). 2019-02-04 16:51:48 -06:00
Gregory Nutt
1a754deaa0 Cosmetic updates from review of last PR. 2018-11-12 09:43:33 -06:00
Petteri Aimonen
fe0532c226 Merged in paimonen/nuttx/pullreq_libc_libnx_updates (pull request #757)
Pullreq libc libnx updates

* NuttX: make strerror() return 'Success' for 0

* NuttX: fix strrchr() so that it considers null terminator as part of string

    From strrchr(3) man page:
    "The terminating null byte is considered part of the string, so that if c
    is specified as '\0', these functions return a pointer to the terminator."

* NuttX: mm_free(): Add DEBUGASSERT()'s to catch memory corruption early.

    It's easier to find the source when asserts fail already when freeing
    an overflowed buffer, than if the corruption is only detected on next
    malloc().

* MM_FILL_ALLOCATIONS: Add debug option to fill all mallocs()

    This is helpful for detecting uninitialized variables,
    especially in C++ code. I seem to be forgetting to initialize
    member variables and then they just get random values..

* NuttX: nxtk_bitmapwindow: Fix warning message when bitmap is fully off-screen.

* nxfonts_getfont: Avoid unnecessary warnings for other whitespace chars also.

* NuttX: Fix kerning of 'I' in Sans17x22 font

    The I character was running together with some other
    characters, e.g. in sequence "IMI".

* NXMU: Revalidate window pointer for mouse events.

    NXMU caches the previous window pointer so that further mouse
    events can be sent to the same window. However, if the window
    is destroyed while mouse button is held down, the pointer may
    become invalid and cause a crash. This patch revalidates the
    pointer before using it.

Approved-by: GregoryN <gnutt@nuttx.org>
2018-11-12 15:36:35 +00:00
Gregory Nutt
9546481054 Fix some typographical errors. 2018-09-14 06:55:45 -06:00
Gregory Nutt
bd252230ad grapics/Kconfig: Restore condition removed in commit 8bbe777628 2018-08-26 06:27:32 -06:00
Gregory Nutt
8bbe777628 graphics/Kconfig: Eliminate warning '(NXSTART_EXTERNINIT) selects LCD_EXTERNINIT which has unmet direct dependencies (LCD && LCD_FRAMEBUFFER)' 2018-08-25 18:59:52 -06:00
Xiang Xiao
e1202d2ed3 Replace all ASSERT with DEBUGASSERT to save the code space 2018-08-24 06:58:30 -06:00
Gregory Nutt
8c61c2f31b Remove trailing spaces at the end of lines. 2018-08-13 07:39:38 -06:00
Alan Carvalho de Assis
283b73edc5 Fix lots of typos in C comments and Kconfig help text 2018-07-08 18:24:45 -06:00
Gregory Nutt
668df010ec Committed defconfigs for working configurations should never have CONFIG_EXPERIMENTAL set because the opens the doors for untested and incomplete configurations. Conversely, if there are released configurations that use features with dependencies on CONFIG_EXPERIMENTAL, then those configurations are in use and those dependencies should be removed:
graphics/vnc/server/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL
net/tcp/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL
wireless/bluetooth/Kconfig:  Remove a dependency on CONFIG_EXPERIMENTAL

configs/lc823450-xgevk/audio/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/bt/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/ipl2/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/rndis/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lc823450-xgevk/usb/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/lpcxpresso-lpc54628/netnsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/moxa/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/olimex-stm32-p407/module/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/photon/wlan/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sabre-6quad/smp/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sam4cmp-db/nsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sama5d4-ek/elf/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sama5d4-ek/knsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/module/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/vnc/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/samv71-xult/vnxwm/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/bluetooth/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/pf_ieee802154/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/pktradio/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/sixlowpan/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/traveler/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/sim/userfs/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/stm32f4discovery/hciuart/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/stm32f4discovery/pseudoterm/defconfig:  Remove CONFIG_EXPERIMENTAL=y
configs/teensy-3.x/usbnsh/defconfig:  Remove CONFIG_EXPERIMENTAL=y
2018-06-17 10:30:01 -06:00
Gregory Nutt
b54ffe858a Standardization of some function headers. 2018-03-13 09:52:27 -06:00
Dmitriy Linikov
a8c58607e9 Merged in hardlulz/modem-3.0-nuttx/fix-sem-EINTR (pull request #603)
Added ECANCELED condition to DEBUGASSERT-s checking sem_wait result

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-02-20 18:24:53 +00:00
Gregory Nutt
1567b82429 Make sure that labeling is used consistently in all function headers (part 2). 2018-02-01 12:03:55 -06:00
Gregory Nutt
12474d2c38 Eliminate new warnings due to unused local variables noted in build testing. 2018-02-01 10:25:48 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Gregory Nutt
84b00e54d3 graphics/nxmu: Correct a compile error introduced with last big set of changes. 2018-01-31 16:26:51 -06:00
Gregory Nutt
50ca32e254 Squashed commit of the following:
sched/:  Convert legitimate uses of task_create() to nxtask_create().  Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()).
    graphics/:  Review return values for all calls to kthread_start() because it no longer returns an errno.
    drivers/:  threads started by drivers should be kernel threads, not user tasks.  Review return values for all calls to kthread_start() because it no longer returns an errno.
    configs/:  threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2).
    sched/task:  Add nxtask_create().  Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable.  configs/:  threads started by board bringup logic should be kernel threads, not user tasks.
2018-01-31 16:11:54 -06:00
Gregory Nutt
770a83bc7d graphics/vnc: Correct a typo introduced in last large set of changes 2018-01-31 11:31:12 -06:00
Gregory Nutt
3521aaf944 Squashed commit of the following:
binfmt/, configs/, grahics/, libc/, mm/, net/, sched/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
    arch/arm/src/stm32 and stm32f7:  Architecture-specific code is not permitted to modify the errno variable.  drivers/ and libc/:  OS references to the errno variable should always use the set_errno(), get_errno() macros
2018-01-30 17:57:36 -06:00
Gregory Nutt
30f2927101 binfmt/, drivers/, graphics/: Fix several inappropriate accesses to get_errno() that were missed in previous changes (some going back to nuttx-.23). 2018-01-30 17:23:10 -06:00
Gregory Nutt
9c82ce2091 nuttx/graphics/nxglib: Add some REVISIT comments to some logic that looks suspicious. 2017-11-27 15:34:35 -06:00