Skip to content

Commit bdf2f35

Browse files
AdrianSoundyTerryFoggnfbotjosesimoes
authored
Graphics ready for merge (#1721)
* First Preview of graphics (#1641) * Intial changes for Graphic merge Move Graphic allocation and init to TargetHal. After SPI driver has been initialised. Allow Graphics on devices without Spiram. Maybe look at small displays. now gives out of memory error. Tidy up CmakeLIst.txt as create process error has been fixed. Change SPi to use new driver api * Graphic updates 2 Update copyright Remove GraphicsInitialise.cpp Make Spi_to_Display.cpp generic and move Update cpu_spi.cpp Now complete for ESP32 * Graphics update 3 * Update CMakeSettings.json * Code style fixes Automated fixes for code style. * change for review Delete spurios CPU_GPIO.decl.h header * Removed Graphics Memory config and added wrover config to variants * Update copyright header * Update Jpeg files with .Net foundation header Co-authored-by: TerryFogg <[email protected]> Co-authored-by: nfbot <[email protected]> Co-authored-by: José Simões <[email protected]>
1 parent 5ed5c1f commit bdf2f35

File tree

147 files changed

+45265
-232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+45265
-232
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#
2+
# Copyright (c) .NET Foundation and Contributors
3+
# See LICENSE file in the project root for full license information.
4+
#
5+
6+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Runtime.Events")
7+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/PAL/include")
8+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core")
9+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Gif")
10+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Jpeg")
11+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Native")
12+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/TouchPanel/Core")
13+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Displays")
14+
list(APPEND nanoFramework.Graphics_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/TouchPanel/Devices")
15+
16+
set ( nanoFramework.Graphics_SRCS
17+
nanoPAL_Events_functions.cpp
18+
nanoPAL_Events_driver.cpp
19+
Bitmap_Decoder.cpp
20+
Font.cpp
21+
Gif.cpp
22+
GifDecoder.cpp
23+
lzwread.cpp
24+
jbytearraydatasrc.c
25+
jcapimin.c
26+
jcapistd.c
27+
jccoefct.c
28+
jccolor.c
29+
jcdctmgr.c
30+
jchuff.c
31+
jcinit.c
32+
jcmainct.c
33+
jcmarker.c
34+
jcmaster.c
35+
jcomapi.c
36+
jcparam.c
37+
jcphuff.c
38+
jcprepct.c
39+
jcsample.c
40+
jctrans.c
41+
jdapimin.c
42+
jdapistd.c
43+
jdcoefct.c
44+
jdcolor.c
45+
jddctmgr.c
46+
jdhuff.c
47+
jdinput.c
48+
jdmainct.c
49+
jdmarker.c
50+
jdmaster.c
51+
jdmerge.c
52+
jdphuff.c
53+
jdpostct.c
54+
jdsample.c
55+
jdtrans.c
56+
jerror.c
57+
jfdctflt.c
58+
jfdctfst.c
59+
jfdctint.c
60+
jidctflt.c
61+
jidctfst.c
62+
jidctint.c
63+
jidctred.c
64+
jmemmgr.c
65+
jmemnanoclr.cpp
66+
Jpeg.cpp
67+
jquant1.c
68+
jquant2.c
69+
jutils.c
70+
mcbcr.c
71+
mfint.c
72+
miint.c
73+
pfint.c
74+
piint.c
75+
transupp.c
76+
Graphics.cpp
77+
GraphicsDriver.cpp
78+
GraphicsMemoryHeap.cpp
79+
80+
nanoFramework_Graphics.cpp
81+
nanoFramework_Graphics_nanoFramework_UI_Ink.cpp
82+
nanoFramework_Graphics_nanoFramework_UI_TouchCollectorConfiguration.cpp
83+
nanoFramework_Graphics_nanoFramework_UI_TouchEventProcessor.cpp
84+
nanoFramework_Graphics_nanoFramework_UI_TouchPanel.cpp
85+
nanoFramework_Graphics_nanoFramework_UI_Bitmap.cpp
86+
nanoFramework_Graphics_nanoFramework_UI_DisplayControl.cpp
87+
nanoFramework_Graphics_nanoFramework_UI_Font.cpp
88+
89+
TouchPanel.cpp
90+
Gestures.cpp
91+
Ink.cpp
92+
93+
#Common Display/Touch Code
94+
"${GRAPHICS_DISPLAY}"
95+
"${TOUCHPANEL_DEVICE}"
96+
97+
#Target board Display/Touch Code
98+
Graphics_Memory.cpp
99+
"${GRAPHICS_DISPLAY_INTERFACE}"
100+
"${TOUCHPANEL_INTERFACE}"
101+
)
102+
103+
foreach(SRC_FILE ${nanoFramework.Graphics_SRCS})
104+
set(nanoFramework.Graphics_SRC_FILE ${SRC_FILE}-NOTFOUND)
105+
find_file(nanoFramework.Graphics_SRC_FILE ${SRC_FILE}
106+
PATHS
107+
"${PROJECT_SOURCE_DIR}/src/PAL/Events"
108+
"${PROJECT_SOURCE_DIR}/src/CLR/Core"
109+
110+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core"
111+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Bmp"
112+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Fonts"
113+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Gif"
114+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core/Support/Jpeg"
115+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Displays"
116+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Native"
117+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/TouchPanel/Core"
118+
"${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/TouchPanel/Devices"
119+
120+
"${TARGET_BASE_LOCATION}/nanoCLR/nanoFramework.Graphics"
121+
122+
CMAKE_FIND_ROOT_PATH_BOTH )
123+
124+
if( ${nanoFramework.Graphics_SRC_FILE} STREQUAL "nanoFramework.Graphics_SRC_FILE-NOTFOUND")
125+
message( "___________________________________________________________________________")
126+
message( "Cannot find file : ${SRC_FILE} in FindnanoFramework.Graphics.cmake")
127+
message( "___________________________________________________________________________")
128+
endif()
129+
130+
list(APPEND nanoFramework.Graphics_SOURCES ${nanoFramework.Graphics_SRC_FILE} )
131+
endforeach()
132+
133+
include(FindPackageHandleStandardArgs)
134+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(nanoFramework.Graphics DEFAULT_MSG nanoFramework.Graphics_INCLUDE_DIRS nanoFramework.Graphics_SOURCES)

CMake/Modules/FindnanoFramework.ResourceManager.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
list(APPEND nanoFramework.ResourceManager_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/HAL/Include")
99
list(APPEND nanoFramework.ResourceManager_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.ResourceManager")
1010

11+
if(API_nanoFramework.Graphics)
12+
list(APPEND nanoFramework.ResourceManager_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Core")
13+
list(APPEND nanoFramework.ResourceManager_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src/nanoFramework.Graphics/Graphics/Displays")
14+
endif()
15+
1116

1217
# source files
1318
set(nanoFramework.ResourceManager_SRCS

CMake/Modules/NF_NativeAssemblies.cmake

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ option(API_Windows.Devices.SerialCommunication "option for Windows.Devices.Seri
2727
option(API_Windows.Devices.Spi "option for Windows.Devices.Spi API")
2828
option(API_Windows.Networking.Sockets "option for Windows.Networking.Sockets")
2929
option(API_Windows.Storage "option for Windows.Storage")
30+
option(API_nanoFramework.Graphics "option for nanoFramework.Graphics")
3031

3132

3233
# Esp32 only
@@ -106,6 +107,12 @@ macro(ParseNativeAssemblies)
106107
PerformSettingsForApiEntry("nanoFramework.Devices.Can")
107108
endif()
108109

110+
# nanoFramework.Graphics
111+
if(API_nanoFramework.Graphics)
112+
##### API name here (doted name)
113+
PerformSettingsForApiEntry("nanoFramework.Graphics")
114+
endif()
115+
109116
# nanoFramework.Devices.OneWire
110117
if(API_nanoFramework.Devices.OneWire)
111118
##### API name here (doted name)

CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,15 @@ else()
549549
set(HAL_USE_STM32_ONEWIRE_OPTION FALSE CACHE INTERNAL "HAL STM32_ONEWIRE for nanoFramework.Devices.OneWire")
550550
endif()
551551

552+
#################################################################################
553+
# Option to include the graphics bitmap primitives
554+
#################################################################################
555+
if(API_nanoFramework.Graphics)
556+
set(NANOCLR_GRAPHICS TRUE CACHE INTERNAL "Graphics Support")
557+
else()
558+
set(NANOCLR_GRAPHICS FALSE CACHE INTERNAL "No Graphics Support")
559+
endif()
560+
552561
if(NF_FEATURE_HAS_SDCARD)
553562
set(HAL_USE_SDC_OPTION TRUE CACHE INTERNAL "HAL SDC for NF_FEATURE_HAS_SDCARD")
554563
else()

0 commit comments

Comments
 (0)