Several changes (mostly graphics related) from Petteri Aimonen
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5385 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
92469824e6
commit
9ff9979b2b
@ -3675,3 +3675,9 @@
|
|||||||
file paths.
|
file paths.
|
||||||
* nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains
|
* nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains
|
||||||
(from Mike Smith).
|
(from Mike Smith).
|
||||||
|
* arch/arm/src/stm32/stm32f40xxx_rcc.c: Enabled FLASH prefetch (from Petteri
|
||||||
|
Aimonen).
|
||||||
|
* graphics/nxtk/nxtk_filltrapwindow.c: Correct an offset problem (from
|
||||||
|
Peterri Aimonen).
|
||||||
|
* graphics/nxglib/nxglib_splitline.c: Fix error in drawing of near horizontal
|
||||||
|
lines (from Peterri Aimonen).
|
||||||
|
@ -110,6 +110,7 @@
|
|||||||
# define FLASH_ACR_HLFCYA (1 << 3) /* FLASH half cycle access */
|
# define FLASH_ACR_HLFCYA (1 << 3) /* FLASH half cycle access */
|
||||||
# define FLASH_ACR_PRTFBE (1 << 4) /* FLASH prefetch enable */
|
# define FLASH_ACR_PRTFBE (1 << 4) /* FLASH prefetch enable */
|
||||||
#elif defined(CONFIG_STM32_STM32F20XX) || defined(CONFIG_STM32_STM32F40XX)
|
#elif defined(CONFIG_STM32_STM32F20XX) || defined(CONFIG_STM32_STM32F40XX)
|
||||||
|
# define FLASH_ACR_PRFTEN (1 << 8) /* FLASH prefetch enable */
|
||||||
# define FLASH_ACR_ICEN (1 << 9) /* Bit 9: Instruction cache enable */
|
# define FLASH_ACR_ICEN (1 << 9) /* Bit 9: Instruction cache enable */
|
||||||
# define FLASH_ACR_DCEN (1 << 10) /* Bit 10: Data cache enable */
|
# define FLASH_ACR_DCEN (1 << 10) /* Bit 10: Data cache enable */
|
||||||
# define FLASH_ACR_ICRST (1 << 11) /* Bit 11: Instruction cache reset */
|
# define FLASH_ACR_ICRST (1 << 11) /* Bit 11: Instruction cache reset */
|
||||||
|
@ -105,7 +105,7 @@
|
|||||||
(defined(CONFIG_USART3_RXDMA) && defined(CONFIG_USART3_RS485)) || \
|
(defined(CONFIG_USART3_RXDMA) && defined(CONFIG_USART3_RS485)) || \
|
||||||
(defined(CONFIG_UART4_RXDMA) && defined(CONFIG_UART4_RS485)) || \
|
(defined(CONFIG_UART4_RXDMA) && defined(CONFIG_UART4_RS485)) || \
|
||||||
(defined(CONFIG_UART5_RXDMA) && defined(CONFIG_UART5_RS485)) || \
|
(defined(CONFIG_UART5_RXDMA) && defined(CONFIG_UART5_RS485)) || \
|
||||||
(defined(CONFIG_USART6_RXDMA) && defined(CONFIG_USART6_RS485)) \
|
(defined(CONFIG_USART6_RXDMA) && defined(CONFIG_USART6_RS485))
|
||||||
# error "RXDMA and RS-485 cannot be enabled at the same time for the same U[S]ART"
|
# error "RXDMA and RS-485 cannot be enabled at the same time for the same U[S]ART"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
@ -633,7 +633,7 @@ static void stm32_stdclockconfig(void)
|
|||||||
|
|
||||||
/* Enable FLASH prefetch, instruction cache, data cache, and 5 wait states */
|
/* Enable FLASH prefetch, instruction cache, data cache, and 5 wait states */
|
||||||
|
|
||||||
regval = (FLASH_ACR_LATENCY_5 | FLASH_ACR_ICEN | FLASH_ACR_DCEN);
|
regval = (FLASH_ACR_LATENCY_5 | FLASH_ACR_ICEN | FLASH_ACR_DCEN | FLASH_ACR_PRFTEN);
|
||||||
putreg32(regval, STM32_FLASH_ACR);
|
putreg32(regval, STM32_FLASH_ACR);
|
||||||
|
|
||||||
/* Select the main PLL as system clock source */
|
/* Select the main PLL as system clock source */
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <nuttx/nx/nxglib.h>
|
#include <nuttx/nx/nxglib.h>
|
||||||
|
|
||||||
@ -192,9 +193,11 @@ int nxgl_splitline(FAR struct nxgl_vector_s *vector,
|
|||||||
|
|
||||||
/* The final degenerate case */
|
/* The final degenerate case */
|
||||||
|
|
||||||
if (linewidth == 1)
|
if (linewidth == 1 &&
|
||||||
|
abs(line.pt2.x - line.pt1.x) < (line.pt2.y - line.pt1.y))
|
||||||
{
|
{
|
||||||
/* A line of width 1 is basically a single parallelogram of width 1 */
|
/* A close to vertical line of width 1 is basically
|
||||||
|
* a single parallelogram of width 1 */
|
||||||
|
|
||||||
traps[1].top.x1 = itob16(line.pt1.x);
|
traps[1].top.x1 = itob16(line.pt1.x);
|
||||||
traps[1].top.x2 = traps[1].top.x1;
|
traps[1].top.x2 = traps[1].top.x1;
|
||||||
|
@ -94,6 +94,7 @@ int nxtk_filltrapwindow(NXTKWINDOW hfwnd, FAR const struct nxgl_trapezoid_s *tra
|
|||||||
{
|
{
|
||||||
FAR struct nxtk_framedwindow_s *fwnd = (FAR struct nxtk_framedwindow_s *)hfwnd;
|
FAR struct nxtk_framedwindow_s *fwnd = (FAR struct nxtk_framedwindow_s *)hfwnd;
|
||||||
struct nxgl_rect_s relclip;
|
struct nxgl_rect_s relclip;
|
||||||
|
struct nxgl_trapezoid_s reltrap;
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG
|
#ifdef CONFIG_DEBUG
|
||||||
if (!hfwnd || !trap || !color)
|
if (!hfwnd || !trap || !color)
|
||||||
@ -103,8 +104,14 @@ int nxtk_filltrapwindow(NXTKWINDOW hfwnd, FAR const struct nxgl_trapezoid_s *tra
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Perform the fill, clipping to the client window */
|
/* Move the trapezoid from window contents area to window area */
|
||||||
|
|
||||||
|
nxgl_trapoffset(&reltrap, trap,
|
||||||
|
fwnd->fwrect.pt1.x - fwnd->wnd.bounds.pt1.x,
|
||||||
|
fwnd->fwrect.pt1.y - fwnd->wnd.bounds.pt1.y);
|
||||||
|
|
||||||
|
/* Perform the fill, clipping to the client window */
|
||||||
nxgl_rectoffset(&relclip, &fwnd->fwrect, -fwnd->wnd.bounds.pt1.x, -fwnd->wnd.bounds.pt1.y);
|
nxgl_rectoffset(&relclip, &fwnd->fwrect, -fwnd->wnd.bounds.pt1.x, -fwnd->wnd.bounds.pt1.y);
|
||||||
return nx_filltrapezoid((NXWINDOW)hfwnd, &relclip, trap, color);
|
|
||||||
|
return nx_filltrapezoid((NXWINDOW)hfwnd, &relclip, &reltrap, color);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user