1
0
mirror of https://github.com/azure-rtos/guix.git synced 2025-01-14 06:43:20 +08:00

Update on 23 Oct 2023. Expand to see details.

8c96f6775 Update release version and date for 6.3.0 minor release.
dc8ff31a6 Added partial canvas buffer support for 565rgb color format.
09becae29 Fixed a pattern line draw bug.
8c1e619c2 Remove font page count limitation for standalone binary resource.
34a028615 Drop-list not correctly drawing child widgets.
180ddf8c9 Added VC++ runtime dependency.
57181a765 Fixed GUIX Studio command line to support the opening of a GXP project by specifying the project's pathname.
33c984599 Fixed GUIX Studio test failures.
079b75e09 Improved some error checkings.
f166c7633 Improved the performance of the Helium version 24xrgb JPEG decoding.
8ba85ed38 Support standalone binary resource generation and loading.
f0b95a87a Re-generate the FreeType library with the Z_PREFIX configuration.
ab7e1299a Bump GUIX Studio version to 6.2.1.4.
f0a659115 Improved logic to mitigate test failure caused by low-performance test machine.
e8100dc1c Fixed crash when delete a color or pixelmap folder with page heap enabled.
9fb6d5d94 Fixed MSRC 81023 bug caused by glyph width casting overflow.
ff1ad8aff Fixed potential crash issue with the expand/collapse animation in the accordion menu.
93483ff72 Specify package pipeline triggers to avoid being triggered on everything.
6eea10524 Add pipeline to run codeql.
b9c83924e Updated GUIX Studio version and readme for 6.2.1.3 release.
b7443814c Enable codeql in onebranch pipeline
5442979ba Bump GUIX Studio version number to 6.2.1.3.
This commit is contained in:
Bo Chen 2023-10-23 05:31:31 +00:00
parent 50ead25e38
commit 354445beac
113 changed files with 9160 additions and 638 deletions

View File

@ -24,6 +24,8 @@ target_sources(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/src/gx_binres_language_info_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_binres_language_table_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_binres_theme_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_binres_pixelmap_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_binres_font_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_brush_default.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_brush_define.c
${CMAKE_CURRENT_LIST_DIR}/src/gx_button_background_draw.c
@ -913,6 +915,8 @@ target_sources(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/src/gxe_binres_language_info_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_binres_language_table_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_binres_theme_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_binres_pixelmap_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_binres_font_load.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_brush_default.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_brush_define.c
${CMAKE_CURRENT_LIST_DIR}/src/gxe_button_create.c

View File

@ -24,7 +24,7 @@
/* APPLICATION INTERFACE DEFINITION RELEASE */
/* */
/* gx_api.h PORTABLE C */
/* 6.2.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -68,7 +68,7 @@
/* added new widget type */
/* GX_GENERIC_SCROLL_WHEEL, */
/* added animation delete API, */
/* added generic Dave2D */
/* added generic Dave2D */
/* graphics accelerator */
/* support, */
/* resulting in version 6.1.7 */
@ -104,6 +104,14 @@
/* 03-08-2023 Ting Zhu Modified comment(s), */
/* updated patch version, */
/* resulting in version 6.2.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added new APIs for loading */
/* pixelmap and font from */
/* standalone binary, */
/* removed unused defines, */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
@ -126,8 +134,8 @@ extern "C" {
#define AZURE_RTOS_GUIX
#define GUIX_MAJOR_VERSION 6
#define GUIX_MINOR_VERSION 2
#define GUIX_PATCH_VERSION 1
#define GUIX_MINOR_VERSION 3
#define GUIX_PATCH_VERSION 0
/* The following symbols are defined for backward compatibility reasons.*/
#define __PRODUCT_GUIX__
@ -363,7 +371,9 @@ typedef struct GX_STRING_STRUCT
#define GX_FALSE 0
#define GX_NULL 0
#define GX_ID_NONE 0
#define GX_MAGIC_NUMBER 0x4758U
#define GX_MAGIC_NUMBER 0x4758U /* GX */
#define GX_RESOURCE_TYPE_BINRES_NORMAL 0x4758U /* GX */
#define GX_RESOURCE_TYPE_BINRES_STANDALONE 0x4753U /* GS */
/* API return values. */
@ -970,6 +980,7 @@ typedef struct GX_STRING_STRUCT
#define GX_CANVAS_VISIBLE 0x04 /* Canvas is visible */
#define GX_CANVAS_MODIFIED 0x08
#define GX_CANVAS_COMPOSITE 0x20 /* Canvas is a buffer for creating composite*/
#define GX_CANVAS_PARTIAL_FRAME_BUFFER 0x40
/* Define common combinations. */
@ -1519,6 +1530,10 @@ typedef struct GX_DRAW_CONTEXT_STRUCT
GX_RECTANGLE gx_draw_context_dirty;
GX_RECTANGLE *gx_draw_context_clip;
GX_VALUE gx_draw_context_pitch;
#if defined GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
GX_VALUE gx_draw_context_offset_x;
GX_VALUE gx_draw_context_offset_y;
#endif
} GX_DRAW_CONTEXT;
/* Define fill map info type. */
@ -1808,6 +1823,12 @@ typedef struct GX_CANVAS_STRUCT
/* Define the canvas memory pointer. */
GX_COLOR *gx_canvas_memory;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
GX_VALUE gx_canvas_memory_width;
GX_VALUE gx_canvas_memory_height;
GX_VALUE gx_canvas_memory_offset_x;
GX_VALUE gx_canvas_memory_offset_y;
#endif
/* padded canvas memory buffer, only needed for Win32 */
#ifdef GX_TARGET_WIN32
@ -1835,7 +1856,6 @@ typedef struct GX_CANVAS_STRUCT
GX_UBYTE gx_canvas_alpha;
GX_UBYTE gx_canvas_draw_nesting;
GX_BYTE gx_canvas_hardware_layer;
} GX_CANVAS;
/* Define Theme type */
@ -1877,7 +1897,6 @@ typedef struct GX_PEN_CONFIGURATION_STRUCT
UINT gx_pen_configuration_max_pen_speed_ticks;
} GX_PEN_CONFIGURATION;
#define GX_RESOURCE_HEADER_SIZE 20
#define GX_THEME_HEADER_SIZE 114
#define GX_COLOR_HEADER_SIZE 8
@ -3002,6 +3021,8 @@ typedef struct GX_FIXED_POINT_STRUCT
#endif
#define gx_binres_language_table_load_ext _gx_binres_language_table_load_ext
#define gx_binres_theme_load _gx_binres_theme_load
#define gx_binres_pixelmap_load _gx_binres_pixelmap_load
#define gx_binres_font_load _gx_binres_font_load
#define gx_brush_default _gx_brush_default
#define gx_brush_define _gx_brush_define
@ -3488,8 +3509,6 @@ typedef struct GX_FIXED_POINT_STRUCT
#define gx_text_scroll_wheel_draw _gx_text_scroll_wheel_draw
#define gx_text_scroll_wheel_event_process _gx_text_scroll_wheel_event_process
#define gx_transition_window_create(a, b, c, d, e, f) _gx_transition_window_create(a, b, (GX_WIDGET *)c, d, e, f)
#define gx_tree_view_create(a, b, c, d, e, f) _gx_tree_view_create((GX_TREE_VIEW *)a, b, (GX_WIDGET *)c, d, e, f)
#define gx_tree_view_draw _gx_tree_view_draw
#define gx_tree_view_event_process _gx_tree_view_event_process
@ -3662,6 +3681,8 @@ UINT _gx_binres_language_table_load(GX_UBYTE *root_address, GX_UBYTE ****returne
#endif
UINT _gx_binres_language_table_load_ext(GX_UBYTE *root_address, GX_STRING ***returned_language_table);
UINT _gx_binres_theme_load(GX_UBYTE *root_address, INT theme_id, GX_THEME **returned_theme);
UINT _gx_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap);
UINT _gx_binres_font_load(GX_UBYTE *root_address, UINT font_index, GX_UBYTE *buffer, ULONG *buffer_size);
UINT _gx_brush_default(GX_BRUSH *brush);
UINT _gx_brush_define(GX_BRUSH *brush, GX_COLOR line_color, GX_COLOR fill_color, UINT style);
@ -4484,6 +4505,8 @@ UINT _gx_window_wallpaper_set(GX_WINDOW *window, GX_RESOURCE_ID wallpaper_id, GX
#endif
#define gx_binres_language_table_load_ext _gxe_binres_language_table_load_ext
#define gx_binres_theme_load _gxe_binres_theme_load
#define gx_binres_pixelmap_load _gxe_binres_pixelmap_load
#define gx_binres_font_load _gxe_binres_font_load
#define gx_brush_default _gxe_brush_default
#define gx_brush_define _gxe_brush_define
@ -5139,6 +5162,8 @@ UINT _gxe_binres_language_table_load(GX_UBYTE *root_address, GX_UBYTE ****return
#endif
UINT _gxe_binres_language_table_load_ext(GX_UBYTE *root_address, GX_STRING ***returned_language_table);
UINT _gxe_binres_theme_load(GX_UBYTE *root_address, INT theme_id, GX_THEME **returned_theme);
UINT _gxe_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap);
UINT _gxe_binres_font_load(GX_UBYTE *root_address, UINT font_index, GX_UBYTE *buffer, ULONG *buffer_size);
UINT _gxe_brush_default(GX_BRUSH *brush);
UINT _gxe_brush_define(GX_BRUSH *brush, GX_COLOR line_color, GX_COLOR fill_color, UINT style);

View File

@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */
/* */
/* gx_binres_loader.h PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -46,6 +46,9 @@
/* defined macros to read */
/* integer value, */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* declared new prototypes, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
@ -84,6 +87,13 @@ UINT _gx_binres_resource_header_load(GX_BINRES_DATA_INFO *info, GX_RESOURCE_HEAD
UINT _gx_binres_string_header_load(GX_BINRES_DATA_INFO *info, GX_STRING_HEADER *header);
UINT _gx_binres_language_header_load(GX_BINRES_DATA_INFO *info, GX_LANGUAGE_HEADER *header);
UINT _gx_binres_one_pixelmap_load(GX_BINRES_DATA_INFO *info, GX_PIXELMAP **returned_pixelmap, USHORT *map_id);
UINT _gx_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap);
UINT _gx_binres_font_buffer_size_get(GX_BINRES_DATA_INFO *info, UINT *buffer_size, GX_BOOL reset_read_offset);
UINT _gx_binres_one_font_load(GX_BINRES_DATA_INFO *info, GX_FONT **return_font);
UINT _gx_binres_font_header_load(GX_BINRES_DATA_INFO *info, GX_FONT_HEADER *header);
UINT _gx_binres_font_load(GX_UBYTE *root_address, UINT font_index, GX_UBYTE *buffer, ULONG *buffer_size);
UINT _gx_binres_standalone_resource_seek(GX_BINRES_DATA_INFO *info, UINT res_index);
/* Define error checking shells for API services. These are only referenced by the
application. */
@ -95,6 +105,8 @@ UINT _gxe_binres_language_table_load(GX_UBYTE *root_address, GX_UBYTE ****return
#endif
UINT _gxe_binres_language_table_load_ext(GX_UBYTE *root_address, GX_STRING ***returned_language_table);
UINT _gxe_binres_theme_load(GX_UBYTE *root_address, INT theme_id, GX_THEME **returned_theme);
UINT _gxe_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap);
UINT _gxe_binres_font_load(GX_UBYTE *root_address, UINT res_index, GX_UBYTE *buffer, ULONG *buffer_size);
#endif

View File

@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */
/* */
/* gx_display.h PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -60,9 +60,11 @@
/* added language direction */
/* table set declarations, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed unused prototypes, */
/* resulting in version 6.x */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
@ -542,3 +544,13 @@ VOID *_win32_canvas_memory_prepare(GX_CANVAS *canvas, GX_RECTANGLE *dirty);
}
#endif
#if defined GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
#define GX_CALCULATE_PUTROW(putrow, xpos, ypos, context)\
putrow += (ypos - context->gx_draw_context_offset_y) * context->gx_draw_context_pitch;\
putrow += (xpos - context->gx_draw_context_offset_x)
#else
#define GX_CALCULATE_PUTROW(putrow, xpos, ypos, context)\
putrow += ypos * context->gx_draw_context_pitch;\
putrow += xpos
#endif

View File

@ -26,7 +26,7 @@
/* COMPONENT DEFINITION RELEASE */
/* */
/* gx_image_reader.h PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -52,9 +52,11 @@
/* added definitions for fixed */
/* size table dimensions, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), added */
/* 10-31-2023 Ting Zhu Modified comment(s), added */
/* support for ARM Helium, */
/* resulting in version 6.x */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)
@ -133,6 +135,10 @@ typedef struct GX_JPEG_INFO_STRUCT
VOID (*gx_jpeg_pixel_write)(struct GX_JPEG_INFO_STRUCT *jpeg_info, GX_UBYTE red, GX_UBYTE green, GX_UBYTE blue);
#endif
GX_UBYTE *gx_jpeg_output_buffer;
#if defined(GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER)
GX_VALUE gx_jpeg_output_buffer_offset_x;
GX_VALUE gx_jpeg_output_buffer_offset_y;
#endif
USHORT gx_jpeg_output_width;
USHORT gx_jpeg_output_height;
INT gx_jpeg_output_stride;

View File

@ -24,7 +24,7 @@
/* APPLICATION INTERFACE DEFINITION RELEASE */
/* */
/* gx_user.h PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -45,10 +45,11 @@
/* 01-31-2022 Kenneth Maxwell Modified comment(s), */
/* fixed typo, */
/* resulting in version 6.1.10 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* added GX_ENABLE_ARM_HELIUM */
/* definition, */
/* resulting in version 6.x */
/* 10-31-2023 Ting Zhu Modified comment(s), added */
/* GX_ENABLE_ARM_HELIUM and */
/* partial canvas frame buffer */
/* support configurations, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
@ -76,5 +77,18 @@
/* This can be defined to enable the use of ARM Helium intrinsics for
JPEG decoding. */
/* #define GX_ENABLE_ARM_HELIUM */
/* This can be defined to enable the partial canvas frame buffer feature. */
/* #define GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER */
/* The two following definitions can be used to specify the canvas refresh directions for the partial canvas frame buffer feature.
By default, the canvas refreshes its dirty areas one by one.
If the application requires refreshing the canvas in a specific direction to mitigate tearing effects, one of the following two definitions can be used.
In this scenario, the total dirty area that covers all the dirty areas is calculated, and then the canvas is refreshed in the direction
defined by one of the following two definitions. */
/* #define GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL */
/* #define GX_CANVAS_REFRESH_DIRECTION_VERTICAL */
#endif

View File

@ -238,7 +238,7 @@ GX_WIDGET *child;
/* FUNCTION RELEASE */
/* */
/* _gx_accordion_menu_close_animation_update PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -276,6 +276,9 @@ GX_WIDGET *child;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added NULL pointer check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_accordion_menu_close_animation_update(GX_ACCORDION_MENU *accordion)
@ -287,6 +290,11 @@ GX_VALUE shift;
GX_RECTANGLE size;
GX_WIDGET *child;
if (!deselected)
{
return GX_SUCCESS;
}
child = deselected -> gx_menu_list.gx_widget_first_child;
/* Calcualte total height of list children. */
@ -334,7 +342,7 @@ GX_WIDGET *child;
/* FUNCTION RELEASE */
/* */
/* _gx_accordion_menu_open_animation_update PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -370,6 +378,9 @@ GX_WIDGET *child;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added NULL pointer check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_accordion_menu_open_animation_update(GX_ACCORDION_MENU *accordion)
@ -381,6 +392,11 @@ GX_VALUE list_children_height = 0;
GX_VALUE height = 0;
GX_WIDGET *child;
if (!selected)
{
return GX_SUCCESS;
}
child = selected -> gx_menu_list.gx_widget_first_child;
/* Calcualte total height of list children. */

View File

@ -0,0 +1,140 @@
/**************************************************************************/
/* */
/* Copyright (c) Microsoft Corporation. All rights reserved. */
/* */
/* This software is licensed under the Microsoft Software License */
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
/* and in the root directory of this software. */
/* */
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/** */
/** GUIX Component */
/** */
/** Binres Loader Management (Binres Loader) */
/** */
/**************************************************************************/
#define GX_SOURCE_CODE
/* Include necessary system files. */
#include "gx_api.h"
#include "gx_binres_loader.h"
#include "gx_utility.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_binres_font_load PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This service loads a font from a resource data memory. */
/* */
/* INPUT */
/* */
/* root_address Pointer to the binary data */
/* memory */
/* font_index Resource index of the font */
/* to be loaded */
/* buffer Pointer to the buffer to */
/* store the loaded font */
/* buffer_size Size of the buffer. It will */
/* be overwritten with the */
/* required buffer size if the */
/* input buffer size is */
/* insufficient */
/* */
/* OUTPUT */
/* */
/* Status Completion status */
/* */
/* CALLS */
/* */
/* _gx_binres_standalone_resource_seek Locate the resource data */
/* _gx_binres_font_buffer_size_get Get the required font buffer */
/* size */
/* _gx_binres_one_font_load Load one font */
/* */
/* CALLED BY */
/* */
/* Application Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_binres_font_load(GX_UBYTE *root_address, UINT font_index, GX_UBYTE *buffer, ULONG *buffer_size)
{
UINT status = GX_SUCCESS;
GX_BINRES_DATA_INFO info;
UINT required_size;
/* file format
+--------+
| | <-- represents one bytes
+--------+
|+========+
| | <-- represents a variable number of bytes
|+========+
|+--------+--------+--------+--------+
| magic number | resource count |
|+--------+--------+--------+--------+
|+--------+--------+--------+--------+
| resource offset |
|+--------+--------+--------+--------+
|+--------+--------+--------+--------+
| ... |
|+--------+--------+--------+--------+
|+===================================+
| resource data |
|+===================================+
*/
memset(&info, 0, sizeof(GX_BINRES_DATA_INFO));
info.gx_binres_root_address = (GX_UBYTE *)root_address;
info.gx_binres_buffer = (GX_UBYTE *)buffer;
info.gx_binres_buffer_size = *buffer_size;
status = _gx_binres_standalone_resource_seek(&info, font_index);
if (status != GX_SUCCESS)
{
return status;
}
status = _gx_binres_font_buffer_size_get(&info, &required_size, GX_TRUE);
if (status != GX_SUCCESS)
{
return status;
}
if (required_size > *buffer_size)
{
*buffer_size = required_size;
return GX_INVALID_MEMORY_SIZE;
}
status = _gx_binres_one_font_load(&info, GX_NULL);
return status;
}

View File

@ -0,0 +1,188 @@
/**************************************************************************/
/* */
/* Copyright (c) Microsoft Corporation. All rights reserved. */
/* */
/* This software is licensed under the Microsoft Software License */
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
/* and in the root directory of this software. */
/* */
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/** */
/** GUIX Component */
/** */
/** Binres Loader Management (Binres Loader) */
/** */
/**************************************************************************/
#define GX_SOURCE_CODE
/* Include necessary system files. */
#include "gx_api.h"
#include "gx_binres_loader.h"
#include "gx_utility.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_binres_standalone_resource_seek PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function locates the resource data in the binary data memory. */
/* */
/* INPUT */
/* */
/* info Binary resource control block */
/* res_index The index of the resource to */
/* be located */
/* */
/* OUTPUT */
/* */
/* Status Completion status */
/* */
/* CALLS */
/* */
/* None */
/* */
/* CALLED BY */
/* */
/* GUIX Internal Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_binres_standalone_resource_seek(GX_BINRES_DATA_INFO *info, UINT res_index)
{
USHORT type;
ULONG count;
GX_BINRES_READ_USHORT(type, info -> gx_binres_root_address + info -> gx_binres_read_offset);
info -> gx_binres_read_offset += sizeof(USHORT);
if (type != GX_RESOURCE_TYPE_BINRES_STANDALONE)
{
return GX_INVALID_FORMAT;
}
/* Skip 2 bytes version. */
info -> gx_binres_read_offset += sizeof(USHORT);
GX_BINRES_READ_ULONG(count, info -> gx_binres_root_address + info -> gx_binres_read_offset);
info -> gx_binres_read_offset += sizeof(ULONG);
if ((USHORT)res_index >= count)
{
return GX_NOT_FOUND;
}
if (count > 1)
{
GX_BINRES_READ_ULONG(info -> gx_binres_read_offset, info -> gx_binres_root_address + info -> gx_binres_read_offset + sizeof(ULONG) * res_index);
}
return GX_SUCCESS;
}
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_binres_pixelmap_load PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This service loads a pixelmap from a resource data memory. */
/* */
/* INPUT */
/* */
/* root_address Pointer to the binary data */
/* memory */
/* map_index Resource index of the pixelmap*/
/* to be loaded */
/* pixelmap Pointer to the returned */
/* pixelmap */
/* */
/* OUTPUT */
/* */
/* Status Completion status */
/* */
/* CALLS */
/* */
/* _gx_binres_standalone_resource_seek Locate the resource data */
/* _gx_binres_one_pixelmap_load Load one pixelmap */
/* */
/* CALLED BY */
/* */
/* Application Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap)
{
UINT status = GX_SUCCESS;
GX_BINRES_DATA_INFO info;
/* file format
+--------+
| | <-- represents one bytes
+--------+
|+========+
| | <-- represents a variable number of bytes
|+========+
|+--------+--------+--------+--------+
| magic number | resource count |
|+--------+--------+--------+--------+
|+--------+--------+--------+--------+
| resource offset |
|+--------+--------+--------+--------+
|+--------+--------+--------+--------+
| ... |
|+--------+--------+--------+--------+
|+===================================+
| resource data |
|+===================================+
*/
memset(&info, 0, sizeof(GX_BINRES_DATA_INFO));
info.gx_binres_root_address = (GX_UBYTE *)root_address;
info.gx_binres_buffer = (GX_UBYTE *)pixelmap;
info.gx_binres_buffer_size = sizeof(GX_PIXELMAP);
status = _gx_binres_standalone_resource_seek(&info, map_index);
if (status == GX_SUCCESS)
{
status = _gx_binres_one_pixelmap_load(&info, GX_NULL, GX_NULL);
}
return status;
}

File diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_block_move.c PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -78,6 +78,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added canvas status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_canvas_block_move(GX_RECTANGLE *block, GX_VALUE x_shift, GX_VALUE y_shift, GX_RECTANGLE *dirty)
@ -101,7 +104,7 @@ UINT status = GX_FAILURE;
display = context -> gx_draw_context_display;
/* check to see if this driver supports block move */
if (!display -> gx_display_driver_block_move)
if (!display -> gx_display_driver_block_move || (context -> gx_draw_context_canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER))
{
/* this driver doesn't support block move. If we are
partial drawing just mark the caller as dirty so that

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_create PORTABLE C */
/* 6.1.3 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -81,6 +81,10 @@
/* resulting in version 6.1 */
/* 12-31-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1.3 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added initilization to the */
/* canvas members, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_canvas_create(GX_CANVAS *canvas, GX_CONST GX_CHAR *name, GX_DISPLAY *display,
@ -100,9 +104,13 @@ UINT _gx_canvas_create(GX_CANVAS *canvas, GX_CONST GX_CHAR *name, GX_DISPLAY *d
canvas -> gx_canvas_draw_nesting = 0;
canvas -> gx_canvas_dirty_count = 0;
canvas -> gx_canvas_status = type;
canvas -> gx_canvas_x_resolution = (GX_VALUE) width;
canvas -> gx_canvas_y_resolution = (GX_VALUE) height;
canvas -> gx_canvas_hardware_layer = (GX_BYTE) -1;
canvas -> gx_canvas_x_resolution = (GX_VALUE)width;
canvas -> gx_canvas_y_resolution = (GX_VALUE)height;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
canvas -> gx_canvas_memory_width = (GX_VALUE)width;
canvas -> gx_canvas_memory_height = (GX_VALUE)height;
#endif
canvas -> gx_canvas_hardware_layer = (GX_BYTE)-1;
/* Determine if there is a memory area. */
if (memory_area)

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_drawing_initiate PORTABLE C */
/* 6.1.5 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -86,6 +86,10 @@
/* 03-02-2021 Kenneth Maxwell Modified comment(s), added */
/* flip rotation support, */
/* resulting in version 6.1.5 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_canvas_drawing_initiate(GX_CANVAS *canvas, GX_WIDGET *who, GX_RECTANGLE *dirty_area)
@ -122,6 +126,21 @@ GX_DISPLAY *display = canvas -> gx_canvas_display;
{
/* initialize the dirty rectangle */
canvas -> gx_canvas_dirty_area = *dirty_area;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
canvas -> gx_canvas_memory_width = (GX_VALUE)(dirty_area -> gx_rectangle_right - dirty_area -> gx_rectangle_left + 1);
canvas -> gx_canvas_memory_width = (GX_VALUE)((canvas -> gx_canvas_memory_width + 3) & 0xFFFC);
canvas -> gx_canvas_memory_height = (GX_VALUE)(canvas -> gx_canvas_memory_size / display -> gx_display_driver_row_pitch_get((USHORT)canvas -> gx_canvas_memory_width));
if (canvas -> gx_canvas_memory_height < (dirty_area -> gx_rectangle_bottom - dirty_area -> gx_rectangle_top + 1))
{
return GX_INVALID_MEMORY_SIZE;
}
canvas -> gx_canvas_memory_offset_x = dirty_area -> gx_rectangle_left;
canvas -> gx_canvas_memory_offset_y = dirty_area -> gx_rectangle_top;
}
#endif
}
/* Are we nested? */
@ -146,7 +165,23 @@ GX_DISPLAY *display = canvas -> gx_canvas_display;
if (new_context -> gx_draw_context_display -> gx_display_rotation_angle == GX_SCREEN_ROTATION_NONE ||
new_context -> gx_draw_context_display -> gx_display_rotation_angle == GX_SCREEN_ROTATION_FLIP)
{
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
new_context -> gx_draw_context_pitch = canvas -> gx_canvas_memory_width;
new_context -> gx_draw_context_offset_x = canvas -> gx_canvas_memory_offset_x;
new_context -> gx_draw_context_offset_y = canvas -> gx_canvas_memory_offset_y;
}
else
{
new_context -> gx_draw_context_pitch = canvas -> gx_canvas_x_resolution;
new_context -> gx_draw_context_offset_x = 0;
new_context -> gx_draw_context_offset_y = 0;
}
#else
new_context -> gx_draw_context_pitch = canvas -> gx_canvas_x_resolution;
#endif
}
else
{

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_line_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -87,6 +87,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), fixed a */
/* pattern line draw issue, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_canvas_line_draw(GX_VALUE x_start, GX_VALUE y_start, GX_VALUE x_end, GX_VALUE y_end)
@ -254,11 +257,30 @@ GX_VALUE brush_width;
{
if (brush -> gx_brush_line_pattern)
{
if (clip_rect.gx_rectangle_left > x_start)
{
width = (GX_VALUE)((clip_rect.gx_rectangle_left - x_start) & 0x1F);
context -> gx_draw_context_brush.gx_brush_pattern_mask >>= width;
}
/* Call display driver's simple horizontal pattern line drawing function. */
display -> gx_display_driver_horizontal_pattern_line_draw(context,
clip_rect.gx_rectangle_left,
clip_rect.gx_rectangle_right,
y_start);
if (clip_rect.gx_rectangle_right < x_end)
{
width = (GX_VALUE)((x_end - clip_rect.gx_rectangle_right) & 0x1F);
if ((context -> gx_draw_context_brush.gx_brush_pattern_mask >> width) == 0)
{
context -> gx_draw_context_brush.gx_brush_pattern_mask <<= (32 - width);
}
else
{
context -> gx_draw_context_brush.gx_brush_pattern_mask >>= width;
}
}
}
else
{
@ -275,11 +297,30 @@ GX_VALUE brush_width;
{
if (brush -> gx_brush_line_pattern)
{
if (clip_rect.gx_rectangle_top > y_start)
{
width = (GX_VALUE)((clip_rect.gx_rectangle_top - y_start) & 0x1F);
context -> gx_draw_context_brush.gx_brush_pattern_mask >>= width;
}
/* Call display driver's simple vertical line drawing function. */
display -> gx_display_driver_vertical_pattern_line_draw(context,
clip_rect.gx_rectangle_top,
clip_rect.gx_rectangle_bottom,
x_start);
if (clip_rect.gx_rectangle_bottom < y_end)
{
width = (GX_VALUE)((y_end - clip_rect.gx_rectangle_bottom) & 0x1F);
if ((context -> gx_draw_context_brush.gx_brush_pattern_mask >> width) == 0)
{
context -> gx_draw_context_brush.gx_brush_pattern_mask <<= (32 - width);
}
else
{
context -> gx_draw_context_brush.gx_brush_pattern_mask >>= width;
}
}
}
else
{

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_memory_define PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -67,15 +67,36 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_canvas_memory_define(GX_CANVAS *canvas, GX_COLOR *memory, ULONG memsize)
{
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
GX_DISPLAY *display = canvas -> gx_canvas_display;
ULONG canvas_size;
if (!display)
{
return GX_INVALID_DISPLAY;
}
canvas_size = (ULONG)(display -> gx_display_driver_row_pitch_get((USHORT)canvas -> gx_canvas_x_resolution) * canvas -> gx_canvas_y_resolution);
if (memsize < canvas_size)
{
canvas -> gx_canvas_status |= GX_CANVAS_PARTIAL_FRAME_BUFFER;
}
#endif
/* change the memory pointer value */
canvas -> gx_canvas_memory = memory;
/* change the memory size */
canvas ->gx_canvas_memory_size = memsize;
canvas -> gx_canvas_memory_size = memsize;
/* mark the canvas dirty so that it get refreshed */
_gx_canvas_dirty_mark(canvas, GX_NULL);

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_canvas_mouse_show PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -65,6 +65,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added canvas status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_MOUSE_SUPPORT)
@ -73,6 +76,14 @@ UINT _gx_canvas_mouse_show(GX_CANVAS *canvas)
GX_DISPLAY *display;
GX_MOUSE_CURSOR_INFO *mouse_info;
#if defined(GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER)
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
/* Not supported. */
return GX_FAILURE;
}
#endif
display = canvas -> gx_canvas_display;
mouse_info = display -> gx_display_mouse.gx_mouse_cursor_info;

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_dislay_driver_565rgb_jpeg_draw PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -70,10 +70,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed a parameter from */
/* jpeg mcu decode function, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_block_move PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -69,6 +69,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added canvas status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_block_move(GX_DRAW_CONTEXT *context,
@ -81,6 +84,14 @@ INT width_in_bytes;
INT y;
INT height;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (context -> gx_draw_context_canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
/* Not supported. */
return;
}
#endif
if (xshift)
{
if (xshift > 0)

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_canvas_copy PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -71,6 +71,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added canvas status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_canvas_copy(GX_CANVAS *canvas, GX_CANVAS *composite)
@ -82,6 +85,14 @@ USHORT *write;
INT width;
INT row;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
/* Not supported. */
return;
}
#endif
dirty.gx_rectangle_left = dirty.gx_rectangle_top = 0;
dirty.gx_rectangle_right = (GX_VALUE)(canvas -> gx_canvas_x_resolution - (GX_VALUE)1);
dirty.gx_rectangle_bottom = (GX_VALUE)(canvas -> gx_canvas_y_resolution - (GX_VALUE)1);

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_horizontal_line_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -73,6 +73,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_horizontal_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT ypos, INT width, GX_COLOR color)
@ -103,11 +107,8 @@ GX_UBYTE alpha;
/* pick up start address of canvas memory */
rowstart = (USHORT *)context -> gx_draw_context_memory;
/* calculate start of row address */
rowstart += context -> gx_draw_context_pitch * ypos;
GX_CALCULATE_PUTROW(rowstart, xstart, ypos, context);
/* calculate pixel address */
rowstart += xstart;
/* draw 1-pixel hi lines to fill width */
for (row = 0; row < width; row++)
{

View File

@ -34,7 +34,7 @@
/* */
/* _gx_display_driver_16bpp_horizontal_pattern_line_draw */
/* PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -69,6 +69,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_horizontal_pattern_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT ypos)
@ -86,11 +90,8 @@ INT len = xend - xstart + 1;
/* pick up start address of canvas memory */
rowstart = (USHORT *)context -> gx_draw_context_memory;
/* calculate start of row address */
rowstart += context -> gx_draw_context_pitch * ypos;
GX_CALCULATE_PUTROW(rowstart, xstart, ypos, context);
/* calculate pixel address */
rowstart += xstart;
/* draw 1-pixel hi lines to fill width */
/* pick up the requested pattern and mask */

View File

@ -32,7 +32,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_pixel_write PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -67,17 +67,17 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_pixel_write(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR color)
{
USHORT *put = (USHORT *)context -> gx_draw_context_memory;
/* calculate address of scan line */
put += context -> gx_draw_context_pitch * y;
/* step in by x coordinate */
put += x;
GX_CALCULATE_PUTROW(put, x, y, context);
/* write the pixel value */
*put = (USHORT)color;

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_565rgb_pixelmap_raw_write PORTABLE C */
/* 6.1 */
/* 6.X */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -69,6 +69,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_pixelmap_raw_write(GX_DRAW_CONTEXT *context,
@ -85,8 +89,8 @@ GX_CONST USHORT *get;
GX_RECTANGLE *clip = context -> gx_draw_context_clip;
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
GX_CALCULATE_PUTROW(putrow, clip->gx_rectangle_left, clip->gx_rectangle_top, context);
getrow = (USHORT *)(pixelmap -> gx_pixelmap_data);
getrow += pixelmap -> gx_pixelmap_width * (clip -> gx_rectangle_top - ypos);
@ -201,7 +205,7 @@ void (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* */
/* _gx_display_driver_565rgb_pixelmap_compressed_write */
/* PORTABLE C */
/* 6.1 */
/* 6.X */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -237,6 +241,10 @@ void (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_pixelmap_compressed_write(GX_DRAW_CONTEXT *context,
@ -281,8 +289,8 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
to the enf of the last visible row
*/
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += yval * context -> gx_draw_context_pitch;
putrow += xpos;
GX_CALCULATE_PUTROW(putrow, xpos, yval, context);
while (yval <= clip -> gx_rectangle_bottom)
{
@ -534,7 +542,7 @@ void (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_565rgb_palette_pixelmap_raw_write PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -570,6 +578,10 @@ void (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_palette_pixelmap_raw_write(GX_DRAW_CONTEXT *context,
@ -590,8 +602,8 @@ GX_UBYTE b;
GX_RECTANGLE *clip = context -> gx_draw_context_clip;
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
GX_CALCULATE_PUTROW(putrow, clip->gx_rectangle_left, clip->gx_rectangle_top, context);
getrow = (GX_UBYTE *)(pixelmap -> gx_pixelmap_data);
getrow += pixelmap -> gx_pixelmap_width * (clip -> gx_rectangle_top - ypos);
@ -624,7 +636,7 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* */
/* _gx_display_driver_565rgb_palette_pixelmap_transparent_raw_write */
/* PORTABLE C */
/* 6.1 */
/* 6.X */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -660,6 +672,10 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_palette_pixelmap_transparent_raw_write(GX_DRAW_CONTEXT *context,
@ -679,9 +695,8 @@ GX_UBYTE b;
GX_RECTANGLE *clip = context -> gx_draw_context_clip;
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
putrow = (USHORT *)context->gx_draw_context_memory;
GX_CALCULATE_PUTROW(putrow, clip->gx_rectangle_left, clip->gx_rectangle_top, context);
getrow = (GX_UBYTE *)(pixelmap -> gx_pixelmap_data);
getrow += pixelmap -> gx_pixelmap_width * (clip -> gx_rectangle_top - ypos);
@ -720,7 +735,7 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* _gx_display_driver_565rgb_palette_pixelmap_transparent_compressed */
/* _write */
/* PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -757,6 +772,10 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_palette_pixelmap_transparent_compressed_write(GX_DRAW_CONTEXT *context,
@ -805,8 +824,7 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* Now we are on the first visible row, copy pixels until we get
to the end of the last visible row. */
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += yval * context -> gx_draw_context_pitch;
putrow += xpos;
GX_CALCULATE_PUTROW(putrow, xpos, yval, context);
palette = (GX_COLOR *)pixelmap -> gx_pixelmap_aux_data;
@ -923,7 +941,7 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* */
/* _gx_display_driver_565rgb_palette_pixelmap_compressed_write */
/* PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -959,6 +977,10 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_palette_pixelmap_compressed_write(GX_DRAW_CONTEXT *context,
@ -1006,8 +1028,7 @@ GX_RECTANGLE *clip = context -> gx_draw_context_clip;
/* Now we are on the first visible row, copy pixels until we get
to the end of the last visible row. */
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += yval * context -> gx_draw_context_pitch;
putrow += xpos;
GX_CALCULATE_PUTROW(putrow, xpos, yval, context);
palette = (GX_COLOR *)pixelmap -> gx_pixelmap_aux_data;

View File

@ -580,7 +580,7 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR col
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_pixelmap_simple_rotate PORTABLE C */
/* 6.1.7 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -622,6 +622,10 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR col
/* 06-02-2021 Kenneth Maxwell Modified comment(s), */
/* remove unused assignment, */
/* resulting in version 6.1.7 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_pixelmap_simple_rotate(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap,
@ -640,6 +644,10 @@ INT newypos;
clip = context -> gx_draw_context_clip;
putrow = (USHORT *)context -> gx_draw_context_memory;
GX_CALCULATE_PUTROW(putrow, clip -> gx_rectangle_left, clip -> gx_rectangle_top, context);
if (angle == 90)
{
width = pixelmap -> gx_pixelmap_height;
@ -648,10 +656,6 @@ INT newypos;
newxpos = xpos + cx - (width - 1 - cy);
newypos = ypos + cy - cx;
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
for (y = clip -> gx_rectangle_top - newypos; y <= clip -> gx_rectangle_bottom - newypos; y++)
{
put = putrow;
@ -677,10 +681,6 @@ INT newypos;
newxpos = xpos + cx - (width - 1 - cx);
newypos = ypos + cy - (height - 1 - cy);
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
for (y = clip -> gx_rectangle_top - newypos; y <= clip -> gx_rectangle_bottom - newypos; y++)
{
put = putrow;
@ -703,10 +703,6 @@ INT newypos;
newxpos = xpos + cx - cy;
newypos = ypos + cx - (height - 1 - cy);
putrow = (USHORT *)context -> gx_draw_context_memory;
putrow += clip -> gx_rectangle_top * context -> gx_draw_context_pitch;
putrow += clip -> gx_rectangle_left;
for (y = clip -> gx_rectangle_top - newypos; y <= clip -> gx_rectangle_bottom - newypos; y++)
{
put = putrow;

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_simple_line_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -75,6 +75,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_simple_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT ystart, INT xend, INT yend)
@ -103,8 +107,9 @@ INT dy = GX_ABS(yend - ystart);
GX_RECTANGLE *clip = context -> gx_draw_context_clip;
GX_COLOR linecolor = context -> gx_draw_context_brush.gx_brush_line_color;
#if defined GX_BRUSH_ALPHA_SUPPORT
GX_UBYTE alpha;
#if defined GX_BRUSH_ALPHA_SUPPORT
GX_UBYTE alpha;
alpha = context -> gx_draw_context_brush.gx_brush_alpha;
if (alpha == 0)
@ -136,8 +141,11 @@ GX_UBYTE alpha;
y_increment = 0 - context -> gx_draw_context_pitch;
}
put = (USHORT *)(context -> gx_draw_context_memory) + ystart * context -> gx_draw_context_pitch + xstart;
next_put = (USHORT *)(context -> gx_draw_context_memory) + yend * context -> gx_draw_context_pitch + xend;
put = (USHORT *)(context -> gx_draw_context_memory);
GX_CALCULATE_PUTROW(put, xstart, ystart, context);
next_put = (USHORT *)(context -> gx_draw_context_memory);
GX_CALCULATE_PUTROW(next_put, xend, yend, context);
end_point.gx_point_x = (GX_VALUE)xstart;
@ -296,7 +304,7 @@ GX_UBYTE alpha;
PIXEL_WRITE(put, linecolor);
put += context -> gx_draw_context_pitch;
}
}
}
}
else
{
@ -461,3 +469,4 @@ GX_UBYTE alpha;
}
}
}

View File

@ -31,7 +31,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_vertical_line_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -70,6 +70,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_vertical_line_draw(GX_DRAW_CONTEXT *context, INT ystart, INT yend, INT xpos, INT width, GX_COLOR color)
@ -98,11 +102,7 @@ GX_UBYTE alpha;
/* pick up starting address of canvas memory */
rowstart = (USHORT *)context -> gx_draw_context_memory;
/* calculate start of scanline */
rowstart += context -> gx_draw_context_pitch * ystart;
/* offset into starting pixel */
rowstart += xpos;
GX_CALCULATE_PUTROW(rowstart, xpos, ystart, context);
/* draw line from top to bottom */
for (row = 0; row < len; row++)

View File

@ -32,7 +32,7 @@
/* */
/* _gx_display_driver_16bpp_vertical_pattern_line_draw */
/* PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -67,6 +67,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_vertical_pattern_line_draw(GX_DRAW_CONTEXT *context, INT ystart, INT yend, INT xpos)
@ -84,11 +88,7 @@ INT len = yend - ystart + 1;
/* pick up starting address of canvas memory */
rowstart = (USHORT *)context -> gx_draw_context_memory;
/* calculate start of scanline */
rowstart += context -> gx_draw_context_pitch * ystart;
/* offset into starting pixel */
rowstart += xpos;
GX_CALCULATE_PUTROW(rowstart, xpos, ystart, context);
/* pick up the requested pattern and mask */
pattern = context -> gx_draw_context_brush.gx_brush_line_pattern;

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_dislay_driver_24xrgb_jpeg_draw PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -70,10 +70,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed a parameter from */
/* jpeg mcu decode function, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_dislay_driver_24xrgb_rotated_jpeg_draw PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -70,10 +70,10 @@
/* DATE NAME DESCRIPTION */
/* */
/* 02-02-2021 Kenneth Maxwell Initial Version 6.1.4 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed a parameter from */
/* jpeg mcu decode function, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -45,7 +45,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_565rgb_canvas_blend PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -83,7 +83,9 @@
/* */
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added canvas status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_565rgb_canvas_blend(GX_CANVAS *canvas, GX_CANVAS *composite)
@ -103,6 +105,14 @@ USHORT bcolor;
INT row;
INT col;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
/* Not supported. */
return;
}
#endif
dirty.gx_rectangle_left = dirty.gx_rectangle_top = 0;
dirty.gx_rectangle_right = (GX_VALUE)(canvas -> gx_canvas_x_resolution - 1);
dirty.gx_rectangle_bottom = (GX_VALUE)(canvas -> gx_canvas_y_resolution - 1);

View File

@ -50,7 +50,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_16bpp_glyph_1bit_draw PORTABLE C */
/* 6.1.11 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -92,6 +92,10 @@
/* 04-25-2022 Ting Zhu Modified comment(s), */
/* fixed access violation bug, */
/* resulting in version 6.1.11 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_16bpp_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph)
@ -188,10 +192,9 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *, INT, INT, GX_COLOR, GX_UBYTE);
y_height = (UINT)(draw_area -> gx_rectangle_bottom - draw_area -> gx_rectangle_top + 1);
line_start = (USHORT *)context -> gx_draw_context_memory;
line_start += context -> gx_draw_context_pitch * (draw_area -> gx_rectangle_top);
line_start += draw_area -> gx_rectangle_left;
GX_CALCULATE_PUTROW(line_start, draw_area -> gx_rectangle_left, draw_area -> gx_rectangle_top, context);
#if defined (GX_BRUSH_ALPHA_SUPPORT)
#if defined(GX_BRUSH_ALPHA_SUPPORT)
if (brush_alpha != 0xff)
{
yval = draw_area -> gx_rectangle_top;

View File

@ -536,7 +536,7 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* */
/* _gx_display_driver_565rgb_horizontal_pixelmap_line_raw_write */
/* PORTABLE C */
/* 6.1 */
/* 6.X */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -573,6 +573,10 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_horizontal_pixelmap_line_raw_write(GX_DRAW_CONTEXT *context,
@ -596,8 +600,7 @@ GX_PIXELMAP *pixelmap;
if ((info -> draw) && (xstart <= xend))
{
put = (USHORT *)context -> gx_draw_context_memory;
put += y * context -> gx_draw_context_pitch;
put += xstart;
GX_CALCULATE_PUTROW(put, xstart, y, context);
/*calculate the offset.*/
offset = (info -> x_offset % pic_width);
@ -723,7 +726,7 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* */
/* _gx_display_driver_565rgb_horizontal_pixelmap_line_compressed_write */
/* PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -760,6 +763,10 @@ VOID (*blend_func)(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLO
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_display_driver_565rgb_horizontal_pixelmap_line_compressed_write(GX_DRAW_CONTEXT *context,
@ -781,7 +788,7 @@ GX_PIXELMAP *pixelmap;
start_pos = xstart - (info -> x_offset % pixelmap -> gx_pixelmap_width);
put = (USHORT *)context -> gx_draw_context_memory;
put += y * context -> gx_draw_context_pitch + start_pos;
GX_CALCULATE_PUTROW(put, start_pos, y, context);
/*Repeat the draw operation to fill the whole dirty area.*/
while (start_pos <= xend)

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_dislay_driver_565rgb_jpeg_draw PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -72,10 +72,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed a parameter from */
/* jpeg mcu decode function, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -44,7 +44,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_display_driver_565rgb_pixel_blend PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -83,6 +83,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_display_driver_565rgb_pixel_blend(GX_DRAW_CONTEXT *context, INT x, INT y, GX_COLOR fcolor, GX_UBYTE alpha)
@ -94,14 +98,12 @@ GX_UBYTE balpha;
USHORT bcolor;
USHORT *put;
/* Is the pixel non-transparent? */
if (alpha > 0)
{
/* calculate address of pixel */
put = (USHORT *)context -> gx_draw_context_memory;
put += context -> gx_draw_context_pitch * y;
put += x;
GX_CALCULATE_PUTROW(put, x, y, context);
/* No need to blend if alpha value is 255. */
if (alpha == 255)

View File

@ -35,7 +35,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_dislay_driver_565rgb_jpeg_draw PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -70,10 +70,10 @@
/* DATE NAME DESCRIPTION */
/* */
/* 12-31-2020 Kenneth Maxwell Initial Version 6.1.3 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* removed a parameter from */
/* jpeg mcu decode function, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -212,7 +212,7 @@ GX_CONST GX_STRING **old_table = display -> gx_display_language_table;
/* FUNCTION RELEASE */
/* */
/* _gx_display_language_direction_table_set_ext PORTABLE C */
/* 6.1.10 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -224,7 +224,7 @@ GX_CONST GX_STRING **old_table = display -> gx_display_language_table;
/* INPUT */
/* */
/* display Pointer to display */
/* language_direciton_table The language direction table */
/* language_direction_table The language direction table */
/* to be set */
/* num_languages Number of languages in the */
/* table */
@ -246,6 +246,8 @@ GX_CONST GX_STRING **old_table = display -> gx_display_language_table;
/* DATE NAME DESCRIPTION */
/* */
/* 01-31-2022 Ting Zhu Initial Version 6.1.10 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_DYNAMIC_BIDI_TEXT_SUPPORT)

View File

@ -33,13 +33,114 @@
#include "gx_utility.h"
#include "gx_drop_list.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_drop_list_selected_children_draw PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function draws the children of the selected item to the drop */
/* list client area with the specified shift values. */
/* */
/* INPUT */
/* */
/* drop_list Pointer to drop list widget */
/* widget Widget to be drawn */
/* xshift Shift value in x coordinate */
/* yshift Shift value in y coordinate */
/* */
/* OUTPUT */
/* */
/* None */
/* */
/* CALLS */
/* */
/* _gx_utility_rectangle_shift Shift rectangle */
/* */
/* CALLED BY */
/* */
/* _gx_drop_list_draw */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_drop_list_selected_children_draw(GX_DROP_LIST *drop_list, GX_WIDGET *widget, GX_VALUE xshift, GX_VALUE yshift)
{
GX_WIDGET *child;
GX_WIDGET *child_child;
GX_RECTANGLE old_size;
GX_RECTANGLE old_clip;
ULONG old_style;
/* Save the first child. */
child = widget -> gx_widget_first_child;
/* Draw the children. */
while (child)
{
/* Save the widget size. */
old_size = child -> gx_widget_size;
/* Save the widget clip size. */
old_clip = child -> gx_widget_clip;
/* Save the widget style. */
old_style = child -> gx_widget_style;
/* Update the widget style temporarily. */
if (drop_list -> gx_widget_status & GX_STATUS_HAS_FOCUS)
{
child -> gx_widget_style |= ~GX_STYLE_DRAW_SELECTED;
}
else
{
child -> gx_widget_style &= ~GX_STYLE_DRAW_SELECTED;
}
/* Shift the widget size and clip with the specified shift values temporarily. */
_gx_utility_rectangle_shift(&child -> gx_widget_size, xshift, yshift);
_gx_utility_rectangle_shift(&child -> gx_widget_clip, xshift, yshift);
child_child = child -> gx_widget_first_child;
/* Set the first child to NULL temporarily. */
child -> gx_widget_first_child = GX_NULL;
/* Draw the widget. */
child -> gx_widget_draw_function(child);
if (child_child)
{
child -> gx_widget_first_child = child_child;
_gx_drop_list_selected_children_draw(drop_list, child, xshift, yshift);
}
/* Recover the widget properties. */
child -> gx_widget_size = old_size;
child -> gx_widget_clip = old_clip;
child -> gx_widget_style = old_style;
child = child -> gx_widget_next;
}
}
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_drop_list_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -77,32 +178,79 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved drawing of the */
/* selected item, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_drop_list_draw(GX_DROP_LIST *drop_list)
{
GX_RECTANGLE client;
GX_WIDGET *selected;
GX_WIDGET *widget;
GX_VERTICAL_LIST *list;
GX_RECTANGLE selected_size;
GX_RECTANGLE selected_clip;
ULONG selected_style;
GX_VALUE xshift;
GX_VALUE yshift;
INT selected_index;
GX_VERTICAL_LIST *list = &drop_list -> gx_drop_list_popup.gx_popup_list_list;
GX_RECTANGLE size;
GX_RECTANGLE clip;
ULONG style;
GX_WIDGET *child = GX_NULL;
GX_BOOL reuse_list_item = GX_FALSE;
widget = (GX_WIDGET *)drop_list;
/* Draw the background. */
_gx_drop_list_background_draw(drop_list);
list = (GX_VERTICAL_LIST *)&drop_list -> gx_drop_list_popup.gx_popup_list_list;
/* Pick the selected item. */
_gx_vertical_list_selected_widget_get(list, &selected);
if (!selected && list -> gx_vertical_list_callback)
{
/* If not be able to retrieve the selected widget, its possible that the selcted item
has been reused for displaying the other list items during the scrolling.
In this case, try to get the selected index first, then reuse the list child to draw the selected item. */
/* Get the selected index. */
_gx_vertical_list_selected_index_get(list, &selected_index);
if((selected_index >= 0) && (selected_index < list -> gx_vertical_list_total_rows))
{
/* Make the first list child as the selected widget temporarily. */
selected = _gx_widget_first_client_child_get((GX_WIDGET *)list);
/* Call the list callback function to create the selected widget. */
list -> gx_vertical_list_callback(list, selected, selected_index);
reuse_list_item = GX_TRUE;
}
}
if (selected)
{
/* draw the selected widget into my client area: */
_gx_widget_client_get(widget, -1, &client);
selected_size = selected -> gx_widget_size;
selected_clip = selected -> gx_widget_clip;
selected_style = selected -> gx_widget_style;
_gx_widget_client_get((GX_WIDGET *)drop_list, -1, &client);
size = selected -> gx_widget_size;
clip = selected -> gx_widget_clip;
if (selected -> gx_widget_first_child)
{
child = selected -> gx_widget_first_child;
selected -> gx_widget_first_child = GX_NULL;
/* Calculate the distance from the selected widget to the client area. */
xshift = (GX_VALUE)(client.gx_rectangle_left - size.gx_rectangle_left);
yshift = (GX_VALUE)((client.gx_rectangle_bottom + client.gx_rectangle_top - size.gx_rectangle_bottom - size.gx_rectangle_top) >> 1);
}
selected -> gx_widget_size = client;
selected -> gx_widget_clip = client;
/* Save the widget style. */
style = selected -> gx_widget_style;
/* Update the widget style temporarily. */
if (drop_list -> gx_widget_status & GX_STATUS_HAS_FOCUS)
{
selected -> gx_widget_style |= ~GX_STYLE_DRAW_SELECTED;
@ -111,14 +259,29 @@ ULONG selected_style;
{
selected -> gx_widget_style &= ~GX_STYLE_DRAW_SELECTED;
}
selected -> gx_widget_size = client;
selected -> gx_widget_clip = client;
selected -> gx_widget_draw_function(selected);
selected -> gx_widget_size = selected_size;
selected -> gx_widget_clip = selected_clip;
selected -> gx_widget_style = selected_style;
if (child)
{
selected -> gx_widget_first_child = child;
/* Draw the selected widget into my client area: */
_gx_drop_list_selected_children_draw(drop_list, selected, xshift, yshift);
}
selected -> gx_widget_size = size;
selected -> gx_widget_clip = clip;
selected -> gx_widget_style = style;
}
_gx_widget_children_draw(widget);
if (reuse_list_item)
{
/* Call the list callback funtion to create the widget with its original index. */
list -> gx_vertical_list_callback(list, selected, list -> gx_vertical_list_top_index);
}
/* Draw the children. */
_gx_widget_children_draw((GX_WIDGET *)drop_list);
}

View File

@ -108,7 +108,7 @@ GX_CONST GX_UBYTE *buffer;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_image_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -143,10 +143,10 @@ GX_CONST GX_UBYTE *buffer;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* modified jpeg decode */
/* function parameter list, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_SOFTWARE_DECODER_SUPPORT)

View File

@ -178,7 +178,7 @@ INT index;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_huffcode_find PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -221,9 +221,9 @@ INT index;
/* changed bit_count to */
/* GX_VALUE data type, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_huffcode_find(GX_JPEG_INFO *jpeg_info,
@ -266,7 +266,7 @@ GX_HUFFCODE_INFO *code_info;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_huffman_table_set PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -303,9 +303,9 @@ GX_HUFFCODE_INFO *code_info;
/* added range test to prevent */
/* underflow, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_huffman_table_set(GX_JPEG_INFO *jpeg_info, UINT segment_len)
@ -554,7 +554,7 @@ INT index;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_dc_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -595,9 +595,9 @@ INT index;
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
/* added range test, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_dc_decode(GX_JPEG_INFO *jpeg_info, UINT i_component)
@ -654,7 +654,7 @@ GX_BOOL negative;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_ac_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -695,9 +695,9 @@ GX_BOOL negative;
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
/* added range test, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_ac_decode(GX_JPEG_INFO *jpeg_info, UINT i_component)
@ -834,7 +834,7 @@ INT negative;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_dequantize_idct PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -891,7 +891,7 @@ INT negative;
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_dequantize_idct(INT *block, INT *quant_table, GX_BYTE *out, INT stride)
@ -1099,7 +1099,7 @@ int16_t const *base;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_1d_idct PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -1135,9 +1135,9 @@ int16_t const *base;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_1d_idct(INT *input_data, INT *output_data, INT post_scale, INT round)
@ -1190,7 +1190,7 @@ INT t;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_dequantize_idct PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -1234,9 +1234,9 @@ INT t;
/* added range check for */
/* table_index, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_dequantize_idct(INT *block, INT *quant_table, GX_BYTE *out, INT stride)
@ -1291,7 +1291,7 @@ INT row;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_one_block_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -1332,9 +1332,9 @@ INT row;
/* returned result of */
/* dequantize_idct, */
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_one_block_decode(GX_JPEG_INFO *jpeg_info, UINT i_component, GX_BYTE *block_data)
@ -1386,7 +1386,7 @@ INT stride;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_24xrgb_pixel_write_helium PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1423,34 +1423,18 @@ INT stride;
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_24xrgb_pixel_write_helium(GX_JPEG_INFO *jpeg_info, uint8x16_t vred, uint8x16_t vgreen, uint8x16_t vblue, INT size)
{
static uint8x16_t voffset = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60};
static uint8x16_t valpha = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
mve_pred16_t p;
INT index;
if (size == 16)
for(index = 0; index < size; index++)
{
vstrbq_scatter_offset_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vblue);
vstrbq_scatter_offset_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vgreen);
vstrbq_scatter_offset_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vred);
vstrbq_scatter_offset_u8(jpeg_info -> gx_jpeg_putdata++, voffset, valpha);
*((GX_COLOR *)jpeg_info -> gx_jpeg_putdata) = 0xff000000 | ((ULONG)vred[index] << 16) | ((ULONG)vgreen[index] << 8) | (ULONG)vblue[index];
jpeg_info -> gx_jpeg_putdata += 60;
}
else
{
/* Write the specified size of RGB values to memory. */
p = 0xffff >> (16 - size);
vstrbq_scatter_offset_p_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vblue, p);
vstrbq_scatter_offset_p_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vgreen, p);
vstrbq_scatter_offset_p_u8(jpeg_info -> gx_jpeg_putdata++, voffset, vred, p);
vstrbq_scatter_offset_p_u8(jpeg_info -> gx_jpeg_putdata++, voffset, valpha, p);
jpeg_info -> gx_jpeg_putdata += ((size - 1) << 2);
jpeg_info -> gx_jpeg_putdata += 4;
}
}
#else
@ -1459,7 +1443,7 @@ mve_pred16_t p;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_1555xrgb_pixel_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1492,7 +1476,7 @@ mve_pred16_t p;
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_24xrgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX_UBYTE red, GX_UBYTE green, GX_UBYTE blue)
@ -1509,7 +1493,7 @@ static VOID _gx_image_reader_jpeg_24xrgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_24bpp_pixel_write_helium PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1547,7 +1531,7 @@ static VOID _gx_image_reader_jpeg_24xrgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_24bpp_pixel_write_helium(GX_JPEG_INFO *jpeg_info, uint8x16_t vred, uint8x16_t vgreen, uint8x16_t vblue, INT size)
@ -1578,7 +1562,7 @@ mve_pred16_t p;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_24bpp_pixel_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1611,7 +1595,7 @@ mve_pred16_t p;
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_24bpp_pixel_write(GX_JPEG_INFO *jpeg_info, GX_UBYTE red, GX_UBYTE green, GX_UBYTE blue)
@ -1628,7 +1612,7 @@ static VOID _gx_image_reader_jpeg_24bpp_pixel_write(GX_JPEG_INFO *jpeg_info, GX_
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_565rgb_pixel_write_helium PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1672,7 +1656,7 @@ static VOID _gx_image_reader_jpeg_24bpp_pixel_write(GX_JPEG_INFO *jpeg_info, GX_
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_565rgb_pixel_write_helium(GX_JPEG_INFO *jpeg_info, uint8x16_t vred, uint8x16_t vgreen, uint8x16_t vblue, INT size)
@ -1729,7 +1713,7 @@ GX_UBYTE blue[16];
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_1555xrgb_pixel_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1762,7 +1746,7 @@ GX_UBYTE blue[16];
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_565rgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX_UBYTE red, GX_UBYTE green, GX_UBYTE blue)
@ -1783,7 +1767,7 @@ static VOID _gx_image_reader_jpeg_565rgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_1555xrgb_pixel_write_helium PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1827,7 +1811,7 @@ static VOID _gx_image_reader_jpeg_565rgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_1555xrgb_pixel_write_helium(GX_JPEG_INFO *jpeg_info, uint8x16_t vred, uint8x16_t vgreen, uint8x16_t vblue, INT size)
@ -1884,7 +1868,7 @@ GX_UBYTE blue[16];
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_1555xrgb_pixel_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1917,7 +1901,7 @@ GX_UBYTE blue[16];
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static VOID _gx_image_reader_jpeg_1555xrgb_pixel_write(GX_JPEG_INFO *jpeg_info, GX_UBYTE red, GX_UBYTE green, GX_UBYTE blue)
@ -1937,7 +1921,7 @@ static VOID _gx_image_reader_jpeg_1555xrgb_pixel_write(GX_JPEG_INFO *jpeg_info,
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_pixel_write_info_set PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -1979,7 +1963,7 @@ static VOID _gx_image_reader_jpeg_1555xrgb_pixel_write(GX_JPEG_INFO *jpeg_info,
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_pixel_write_info_set(GX_JPEG_INFO *jpeg_info)
@ -2063,7 +2047,7 @@ static UINT _gx_image_reader_jpeg_pixel_write_info_set(GX_JPEG_INFO *jpeg_info)
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_one_mcu_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -2103,9 +2087,11 @@ static UINT _gx_image_reader_jpeg_pixel_write_info_set(GX_JPEG_INFO *jpeg_info)
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added Helium support, */
/* resulting in version 6.x */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_one_mcu_write(GX_JPEG_INFO *jpeg_info, INT xpos, INT ypos, INT h, INT v)
@ -2162,8 +2148,13 @@ INT blue;
}
put = (GX_UBYTE *)jpeg_info -> gx_jpeg_output_buffer;
#if defined(GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER)
put += (ypos + ystart - jpeg_info -> gx_jpeg_output_buffer_offset_y) * jpeg_info -> gx_jpeg_output_stride;
put += (xpos + xstart - jpeg_info -> gx_jpeg_output_buffer_offset_x) * jpeg_info -> gx_jpeg_output_bpp;
#else
put += (ypos + ystart) * jpeg_info -> gx_jpeg_output_stride;
put += (xpos + xstart) * jpeg_info -> gx_jpeg_output_bpp;
#endif
#if defined(GX_ENABLE_ARM_HELIUM)
index = (h == 1 ? 0 : (h - 1 + (xstart % h)));
@ -2224,7 +2215,7 @@ INT blue;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_one_mcu_rotated_write PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
@ -2261,7 +2252,7 @@ INT blue;
/* */
/* DATE NAME DESCRIPTION */
/* */
/* xx-xx-xxxx Ting Zhu Initial Version 6.x */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_one_mcu_rotated_write(GX_JPEG_INFO *jpeg_info, INT xpos, INT ypos, INT h, INT v)
@ -2427,7 +2418,7 @@ GX_BYTE sign = 1;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_decompress PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -2465,9 +2456,9 @@ GX_BYTE sign = 1;
/* 10-31-2022 Kenneth Maxwell Modified comment(s), */
/* abort if block decode fails,*/
/* resulting in version 6.2.0 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_decompress(GX_JPEG_INFO *jpeg_info)
@ -2542,7 +2533,7 @@ UINT (*one_mcu_write)(GX_JPEG_INFO *jpeg_info, INT xpos, INT ypos, INT h, INT v)
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_decode_blocks PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -2584,9 +2575,9 @@ UINT (*one_mcu_write)(GX_JPEG_INFO *jpeg_info, INT xpos, INT ypos, INT h, INT v)
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), removed */
/* 10-31-2023 Ting Zhu Modified comment(s), removed */
/* huffman table free logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
static UINT _gx_image_reader_jpeg_decode_blocks(GX_JPEG_INFO *jpeg_info)
@ -2689,7 +2680,7 @@ UINT status = GX_SUCCESS;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -2724,9 +2715,9 @@ UINT status = GX_SUCCESS;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_image_reader_jpeg_decode(GX_IMAGE_READER *image_reader, GX_PIXELMAP *outmap)
@ -2794,7 +2785,7 @@ GX_JPEG_INFO *jpeg_info;
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_jpeg_mcu_decode PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -2833,9 +2824,9 @@ GX_JPEG_INFO *jpeg_info;
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_image_reader_jpeg_mcu_decode(GX_CONST GX_UBYTE *read_data, ULONG data_size,
@ -2871,8 +2862,15 @@ GX_JPEG_INFO *jpeg_info;
jpeg_info -> gx_jpeg_output_color_format = context -> gx_draw_context_display -> gx_display_color_format;
jpeg_info -> gx_jpeg_output_rotation_angle = context -> gx_draw_context_display -> gx_display_rotation_angle;
jpeg_info -> gx_jpeg_output_buffer = (GX_UBYTE *)context -> gx_draw_context_memory;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
jpeg_info -> gx_jpeg_output_width = (USHORT)context -> gx_draw_context_canvas -> gx_canvas_memory_width;
jpeg_info -> gx_jpeg_output_height = (USHORT)context -> gx_draw_context_canvas -> gx_canvas_memory_height;
jpeg_info -> gx_jpeg_output_buffer_offset_x = context -> gx_draw_context_offset_x;
jpeg_info -> gx_jpeg_output_buffer_offset_y = context -> gx_draw_context_offset_y;
#else
jpeg_info -> gx_jpeg_output_width = (USHORT)context -> gx_draw_context_canvas -> gx_canvas_x_resolution;
jpeg_info -> gx_jpeg_output_height = (USHORT)context -> gx_draw_context_canvas -> gx_canvas_y_resolution;
#endif
jpeg_info -> gx_jpeg_output_clip = *context -> gx_draw_context_clip;

View File

@ -292,7 +292,7 @@ static UINT _gx_image_reader_pixelmap_info_set(GX_IMAGE_READER *image_reader, GX
/* FUNCTION RELEASE */
/* */
/* _gx_image_reader_start PORTABLE C */
/* 6.x */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -340,9 +340,9 @@ static UINT _gx_image_reader_pixelmap_info_set(GX_IMAGE_READER *image_reader, GX
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* xx-xx-xxxx Ting Zhu Modified comment(s), */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.x */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_image_reader_start(GX_IMAGE_READER *image_reader, GX_PIXELMAP *outmap)

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_multi_line_text_button_text_set PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -67,14 +67,24 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added return status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
#if defined(GX_ENABLE_DEPRECATED_STRING_API)
UINT _gx_multi_line_text_button_text_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_CHAR *text)
{
_gx_text_button_text_set((GX_TEXT_BUTTON *)button, text);
_gx_multi_line_text_button_line_pointers_set(button);
return GX_SUCCESS;
UINT status;
status = _gx_text_button_text_set((GX_TEXT_BUTTON *)button, text);
if (status == GX_SUCCESS)
{
_gx_multi_line_text_button_line_pointers_set(button);
}
return status;
}
#endif
@ -83,7 +93,7 @@ UINT _gx_multi_line_text_button_text_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_
/* FUNCTION RELEASE */
/* */
/* _gx_multi_line_text_button_text_set_ext PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -117,11 +127,20 @@ UINT _gx_multi_line_text_button_text_set(GX_MULTI_LINE_TEXT_BUTTON *button, GX_
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added return status check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_multi_line_text_button_text_set_ext(GX_MULTI_LINE_TEXT_BUTTON *button, GX_CONST GX_STRING *text)
{
_gx_text_button_text_set_ext((GX_TEXT_BUTTON *)button, text);
_gx_multi_line_text_button_line_pointers_set(button);
return GX_SUCCESS;
UINT status;
status = _gx_text_button_text_set_ext((GX_TEXT_BUTTON *)button, text);
if (status == GX_SUCCESS)
{
_gx_multi_line_text_button_line_pointers_set(button);
}
return status;
}

View File

@ -37,7 +37,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_scrollbar_draw PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -83,6 +83,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* improved logic, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
VOID _gx_scrollbar_draw(GX_SCROLLBAR *scrollbar)
@ -216,13 +219,15 @@ GX_COLOR fill_color;
/* Reset dirty area temporarily to avoid cover the end pixelmap area. */
old_dirty = _gx_system_current_draw_context -> gx_draw_context_dirty;
_gx_utility_rectangle_combine(&old_dirty, &size);
_gx_system_current_draw_context -> gx_draw_context_dirty = size;
if(_gx_utility_rectangle_overlap_detect(&old_dirty, &size, &size) == GX_TRUE)
{
_gx_system_current_draw_context -> gx_draw_context_dirty = size;
_gx_canvas_pixelmap_draw(xpos, ypos, map);
_gx_canvas_pixelmap_draw(xpos, ypos, map);
/* Set dirty area back. */
_gx_system_current_draw_context -> gx_draw_context_dirty = old_dirty;
/* Set dirty area back. */
_gx_system_current_draw_context -> gx_draw_context_dirty = old_dirty;
}
}
}
}

View File

@ -30,13 +30,217 @@
#include "gx_widget.h"
#include "gx_utility.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_system_canvas_draw_partial_canvas PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function draws the dirty area of the specified canvas with */
/* partial canvas buffer and toggle the dirty area to the display or */
/* a composite canvas. */
/* */
/* INPUT */
/* */
/* None */
/* */
/* OUTPUT */
/* */
/* None */
/* */
/* CALLS */
/* */
/* _gx_system_dirty_list_trim Trim dirty area list */
/* _gx_canvas_drawing_initiate Initiate drawing on canvas */
/* _gx_widget_children_draw Draw widgets children */
/* [gx_widget_draw_function] Call widget's drawing function*/
/* _gx_canvas_drawing_complete Complete drawing on canvas */
/* _gx_system_canvas_toggle Toggle the frame buffer */
/* _gx_utility_rectangle_shift Shift a rectangle */
/* */
/* CALLED BY */
/* */
/* _gx_system_canvas_refresh */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
static UINT _gx_system_canvas_draw_partial_canvas(GX_WINDOW_ROOT *root)
{
UINT status = GX_SUCCESS;
GX_RECTANGLE dirty_sum;
GX_RECTANGLE dirty_frame;
UINT index;
GX_WIDGET *drawit;
GX_DIRTY_AREA *dirty_list_entry;
GX_CANVAS *canvas = root -> gx_window_root_canvas;
GX_VALUE dirty_width;
GX_VALUE dirty_height;
#if defined(GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL) || defined(GX_CANVAS_REFRESH_DIRECTION_VERTICAL)
GX_RECTANGLE dirty_mask;
if (_gx_system_dirty_list_trim(&dirty_sum, root) == GX_FALSE)
{
return GX_SUCCESS;
}
dirty_mask = dirty_sum;
#endif
/* Refresh canvas in the dirty area. */
if (canvas -> gx_canvas_draw_count > 0)
{
_gx_system_dirty_partial_add((GX_WIDGET *)root, &canvas -> gx_canvas_dirty_area);
canvas -> gx_canvas_draw_count = 0;
}
#if defined(GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL)
dirty_height = (GX_VALUE)(dirty_sum.gx_rectangle_bottom - dirty_sum.gx_rectangle_top + 1);
dirty_width = (GX_VALUE)(canvas -> gx_canvas_memory_size / canvas -> gx_canvas_display -> gx_display_driver_row_pitch_get((USHORT)dirty_height));
dirty_width = (GX_VALUE)(dirty_width & 0xFFFC);
dirty_mask.gx_rectangle_right = (GX_VALUE)(dirty_mask.gx_rectangle_left + dirty_width - 1);
while (dirty_mask.gx_rectangle_left <= dirty_sum.gx_rectangle_right)
{
if (dirty_mask.gx_rectangle_right > dirty_sum.gx_rectangle_right)
{
dirty_mask.gx_rectangle_right = dirty_sum.gx_rectangle_right;
}
#elif defined(GX_CANVAS_REFRESH_DIRECTION_VERTICAL)
dirty_width = (GX_VALUE)(dirty_sum.gx_rectangle_right - dirty_sum.gx_rectangle_left + 1);
dirty_height = (GX_VALUE)(canvas -> gx_canvas_memory_size / canvas -> gx_canvas_display -> gx_display_driver_row_pitch_get((USHORT)((dirty_width + 3) & 0xFFFC)));
dirty_mask.gx_rectangle_bottom = (GX_VALUE)(dirty_mask.gx_rectangle_top + dirty_height - 1);
while (dirty_mask.gx_rectangle_top <= dirty_sum.gx_rectangle_bottom)
{
if (dirty_mask.gx_rectangle_bottom > dirty_sum.gx_rectangle_bottom)
{
dirty_mask.gx_rectangle_bottom = dirty_sum.gx_rectangle_bottom;
}
#endif
/* Initialize dirty area pointers. */
dirty_list_entry = canvas -> gx_canvas_dirty_list;
/* Loop through dirty areas to redraw as needed. */
for (index = 0; index < canvas -> gx_canvas_dirty_count; index++)
{
/* Pickup widget associated with dirty area. */
drawit = dirty_list_entry -> gx_dirty_area_widget;
/* Is the widget pointer valid? */
if (drawit && (drawit -> gx_widget_status & GX_STATUS_VISIBLE))
{
/* if the object is transparent, we need to draw the parent.
This should not happen, because dircty_partial_add checks
for transparency, but just for safety we test again here */
if (drawit -> gx_widget_status & GX_STATUS_TRANSPARENT ||
drawit -> gx_widget_style & (GX_STYLE_BORDER_RAISED | GX_STYLE_BORDER_RECESSED))
{
while (drawit -> gx_widget_parent)
{
drawit = drawit -> gx_widget_parent;
if (!(drawit -> gx_widget_status & GX_STATUS_TRANSPARENT))
{
/* we need to start drawing at this non-transparent
background widget */
drawit -> gx_widget_status |= GX_STATUS_DIRTY;
break;
}
}
}
#if defined(GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL) || defined(GX_CANVAS_REFRESH_DIRECTION_VERTICAL)
if (_gx_utility_rectangle_overlap_detect(&dirty_list_entry -> gx_dirty_area_rectangle, &dirty_mask, &dirty_frame) == GX_TRUE &&
_gx_utility_rectangle_overlap_detect(&dirty_frame, &drawit -> gx_widget_clip, &dirty_frame) == GX_TRUE)
{
#else
dirty_sum = dirty_list_entry -> gx_dirty_area_rectangle;
if (_gx_utility_rectangle_overlap_detect(&dirty_sum, &drawit -> gx_widget_clip, &dirty_sum) == GX_TRUE)
{
dirty_frame = dirty_sum;
/* Split dirty area into small pieces. */
dirty_width = (GX_VALUE)(dirty_frame.gx_rectangle_right - dirty_frame.gx_rectangle_left + 1);
dirty_height = (GX_VALUE)(canvas -> gx_canvas_memory_size / canvas -> gx_canvas_display -> gx_display_driver_row_pitch_get((USHORT)((dirty_width + 3) & 0xFFFC)));
dirty_frame.gx_rectangle_bottom = (GX_VALUE)(dirty_frame.gx_rectangle_top + dirty_height - 1);
while (dirty_frame.gx_rectangle_top <= dirty_sum.gx_rectangle_bottom)
{
if (dirty_frame.gx_rectangle_bottom > dirty_sum.gx_rectangle_bottom)
{
dirty_frame.gx_rectangle_bottom = dirty_sum.gx_rectangle_bottom;
}
#endif
/* Initiate drawing on this canvas. */
status = _gx_canvas_drawing_initiate(canvas, drawit, &dirty_frame);
if (status == GX_NO_VIEWS)
{
/* If we are attempting to draw the root window and it has no views,
just draw the children of the root */
if (drawit -> gx_widget_type == GX_TYPE_ROOT_WINDOW)
{
_gx_widget_children_draw(drawit);
}
}
else
{
drawit -> gx_widget_draw_function(drawit);
}
/* Indicate that drawing on this canvas is complete. */
_gx_canvas_drawing_complete(canvas, GX_TRUE);
#if !defined(GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL) && !defined(GX_CANVAS_REFRESH_DIRECTION_VERTICAL)
_gx_utility_rectangle_shift(&dirty_frame, 0, dirty_height);
}
#endif
}
}
/* Move to the next dirty area. */
dirty_list_entry++;
}
#ifdef GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL
_gx_utility_rectangle_shift(&dirty_mask, dirty_width, 0);
}
#elif defined(GX_CANVAS_REFRESH_DIRECTION_VERTICAL)
_gx_utility_rectangle_shift(&dirty_mask, 0, dirty_height);
}
#endif
canvas -> gx_canvas_dirty_count = 0;
return GX_SUCCESS;
}
#endif
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gx_system_canvas_refresh PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -77,6 +281,10 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added partial canvas buffer */
/* support, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_system_canvas_refresh(VOID)
@ -119,6 +327,15 @@ GX_WINDOW_ROOT *root;
/* pick up the canvas pointer */
canvas = root -> gx_window_root_canvas;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
if (canvas -> gx_canvas_status & GX_CANVAS_PARTIAL_FRAME_BUFFER)
{
_gx_system_canvas_draw_partial_canvas(root);
root = (GX_WINDOW_ROOT *)root -> gx_widget_next;
continue;
}
#endif
/* Trim any redundant dirty areas prior to doing the update. */
if (_gx_system_dirty_list_trim(&dirty_sum, root))
{
@ -126,20 +343,20 @@ GX_WINDOW_ROOT *root;
_gx_canvas_drawing_initiate(canvas, (GX_WIDGET *)root, &dirty_sum);
/* Initialize dirty area pointers. */
dirty = canvas -> gx_canvas_dirty_list;
dirty = canvas -> gx_canvas_dirty_list;
/* Loop through dirty areas to redraw as needed. */
for (index = 0; index < canvas -> gx_canvas_dirty_count; index++)
{
/* Pickup widget associated with dirty area. */
drawit = dirty -> gx_dirty_area_widget;
drawit = dirty -> gx_dirty_area_widget;
/* Is the widget pointer valid? */
if (drawit)
{
/* if the object is transparent, we need to draw the parent.
This should not happen, because dircty_partial_add checks
This should not happen, because dircty_partial_add checks
for transparency, but just for safety we test again here */
if (drawit -> gx_widget_status & GX_STATUS_TRANSPARENT)
@ -152,7 +369,7 @@ GX_WINDOW_ROOT *root;
{
/* we need to start drawing at this non-transparent
background widget */
drawit -> gx_widget_status |= GX_STATUS_DIRTY;
break;
}
@ -196,7 +413,7 @@ GX_WINDOW_ROOT *root;
if (_gx_canvas_composite_create(&canvas))
{
if(canvas -> gx_canvas_draw_count > 0)
if (canvas -> gx_canvas_draw_count > 0)
{
canvas -> gx_canvas_display -> gx_display_driver_buffer_toggle(canvas, &canvas -> gx_canvas_dirty_area);
canvas -> gx_canvas_draw_count = 0;

View File

@ -34,7 +34,7 @@
/* FUNCTION RELEASE */
/* */
/* _gx_window_root_create PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -74,6 +74,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* updated the link logic, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gx_window_root_create(GX_WINDOW_ROOT *root_window, GX_CONST GX_CHAR *name,
@ -97,15 +100,21 @@ UINT _gx_window_root_create(GX_WINDOW_ROOT *root_window, GX_CONST GX_CHAR *name
root_window -> gx_widget_status &= ~GX_STATUS_MOVABLE;
root_window -> gx_widget_event_process_function = (UINT (*)(GX_WIDGET *, GX_EVENT *))_gx_window_root_event_process;
GX_ENTER_CRITICAL
if (_gx_system_root_window_created_list)
{
/* link this root to the one previously created */
root_window -> gx_widget_next = (GX_WIDGET *)_gx_system_root_window_created_list;
_gx_system_root_window_created_list -> gx_widget_previous = (GX_WIDGET *)root_window;
}
/* Update the root window pointer */
_gx_system_root_window_created_list = root_window;
GX_EXIT_CRITICAL
/* Return the status from window create. */
return(GX_SUCCESS);
}

View File

@ -30,13 +30,15 @@
#include "gx_canvas.h"
#include "gx_animation.h"
/* Bring in externs for caller checking code. */
GX_CALLER_CHECKING_EXTERNS
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gxe_animation_start PORTABLE C */
/* 6.1.7 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -74,10 +76,15 @@
/* 06-02-2021 Ting Zhu Modified comment(s), */
/* removed unnecessary check, */
/* resulting in version 6.1.7 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added caller check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_animation_start(GX_ANIMATION *animation, GX_ANIMATION_INFO *info)
{
/* Check for appropriate caller. */
GX_INIT_AND_THREADS_CALLER_CHECKING
if (animation == GX_NULL ||
info == GX_NULL)

View File

@ -0,0 +1,89 @@
/**************************************************************************/
/* */
/* Copyright (c) Microsoft Corporation. All rights reserved. */
/* */
/* This software is licensed under the Microsoft Software License */
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
/* and in the root directory of this software. */
/* */
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/** */
/** GUIX Component */
/** */
/** Binres Loader Management (Binres Loader) */
/** */
/**************************************************************************/
#define GX_SOURCE_CODE
/* Include necessary system files. */
#include "gx_api.h"
#include "gx_binres_loader.h"
#include "gx_system.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gxe_binres_font_load PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function checks for errors in binres font load function. */
/* */
/* INPUT */
/* */
/* root_address Pointer to the binary data */
/* memory */
/* font_index Resource index of the font */
/* to be loaded */
/* buffer Pointer to the buffer to */
/* store the loaded font */
/* buffer_size Size of the buffer. It will */
/* be overwritten with the */
/* required buffer size if the */
/* input buffer size is */
/* insufficient */
/* */
/* OUTPUT */
/* */
/* status Completion status */
/* */
/* CALLS */
/* */
/* _gx_binres_font_load The actual binres font load */
/* function */
/* */
/* CALLED BY */
/* */
/* Application Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_binres_font_load(GX_UBYTE *root_address, UINT font_index, GX_UBYTE *buffer, ULONG *buffer_size)
{
if (root_address == GX_NULL || buffer == GX_NULL || buffer_size == GX_NULL)
{
return GX_PTR_ERROR;
}
return _gx_binres_font_load(root_address, font_index, buffer, buffer_size);
}

View File

@ -0,0 +1,84 @@
/**************************************************************************/
/* */
/* Copyright (c) Microsoft Corporation. All rights reserved. */
/* */
/* This software is licensed under the Microsoft Software License */
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
/* and in the root directory of this software. */
/* */
/**************************************************************************/
/**************************************************************************/
/**************************************************************************/
/** */
/** GUIX Component */
/** */
/** Binres Loader Management (Binres Loader) */
/** */
/**************************************************************************/
#define GX_SOURCE_CODE
/* Include necessary system files. */
#include "gx_api.h"
#include "gx_binres_loader.h"
#include "gx_system.h"
/**************************************************************************/
/* */
/* FUNCTION RELEASE */
/* */
/* _gxe_binres_pixelmap_load PORTABLE C */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Ting Zhu, Microsoft Corporation */
/* */
/* DESCRIPTION */
/* */
/* This function checks for errors in binres pixelmap load function. */
/* */
/* INPUT */
/* */
/* root_address Pointer to the binary data */
/* memory */
/* map_index Resource index of the pixelmap*/
/* to be loaded */
/* pixelmap Pointer to the returned */
/* pixelmap */
/* */
/* OUTPUT */
/* */
/* status Completion status */
/* */
/* CALLS */
/* */
/* _gx_binres_pixelmap_load The actual binres pixelmap */
/* load function */
/* */
/* CALLED BY */
/* */
/* Application Code */
/* */
/* RELEASE HISTORY */
/* */
/* DATE NAME DESCRIPTION */
/* */
/* 10-31-2023 Ting Zhu Initial Version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_binres_pixelmap_load(GX_UBYTE *root_address, UINT map_index, GX_PIXELMAP *pixelmap)
{
if (root_address == GX_NULL || pixelmap == GX_NULL)
{
return GX_PTR_ERROR;
}
return _gx_binres_pixelmap_load(root_address, map_index, pixelmap);
}

View File

@ -38,7 +38,7 @@ GX_CALLER_CHECKING_EXTERNS
/* FUNCTION RELEASE */
/* */
/* _gxe_canvas_create PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -80,6 +80,10 @@ GX_CALLER_CHECKING_EXTERNS
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), verify */
/* the memory size only when */
/* memory_area is provided, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_canvas_create(GX_CANVAS *canvas, GX_CONST GX_CHAR *name, GX_DISPLAY *display, UINT type,
@ -109,10 +113,13 @@ UINT pitch;
return(GX_ALREADY_CREATED);
}
pitch = (UINT)(display -> gx_display_driver_row_pitch_get((USHORT)width));
if (memory_size < pitch * height)
if (memory_area)
{
return GX_INVALID_SIZE;
pitch = (UINT)(display -> gx_display_driver_row_pitch_get((USHORT)width));
if (memory_size < pitch * height)
{
return GX_INVALID_SIZE;
}
}
if (type & (~((UINT)(GX_CANVAS_SIMPLE | GX_CANVAS_MANAGED | GX_CANVAS_VISIBLE |

View File

@ -36,7 +36,7 @@
/* FUNCTION RELEASE */
/* */
/* _gxe_checkbox_pixelmap_set PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -80,6 +80,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added invalid widget check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_checkbox_pixelmap_set(GX_CHECKBOX *checkbox,
@ -96,6 +99,12 @@ UINT status;
return(GX_PTR_ERROR);
}
/* Check for the invalid widget. */
if (checkbox -> gx_widget_type == 0)
{
return(GX_INVALID_WIDGET);
}
status = _gx_checkbox_pixelmap_set(checkbox, unchecked_id, checked_id,
unchecked_disabled_id, checked_disabled_id);

View File

@ -34,7 +34,7 @@ GX_CALLER_CHECKING_EXTERNS
/* FUNCTION RELEASE */
/* */
/* _gxe_scrollbar_reset PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -71,6 +71,8 @@ GX_CALLER_CHECKING_EXTERNS
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_scrollbar_reset(GX_SCROLLBAR *scrollbar, GX_SCROLL_INFO *info)
@ -92,7 +94,7 @@ UINT status;
return(GX_INVALID_WIDGET);
}
/* Check fro valid scroll info. */
/* Check for valid scroll info. */
if ((info != GX_NULL) && ((info -> gx_scroll_value > info -> gx_scroll_maximum) ||
(info -> gx_scroll_value < info -> gx_scroll_minimum)))
{

View File

@ -33,7 +33,7 @@
/* FUNCTION RELEASE */
/* */
/* _gxe_text_input_cursor_height_set PORTABLE C */
/* 6.1 */
/* 6.3.0 */
/* AUTHOR */
/* */
/* Kenneth Maxwell, Microsoft Corporation */
@ -71,6 +71,9 @@
/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
/* resulting in version 6.1 */
/* 10-31-2023 Ting Zhu Modified comment(s), */
/* added invalid height check, */
/* resulting in version 6.3.0 */
/* */
/**************************************************************************/
UINT _gxe_text_input_cursor_height_set(GX_TEXT_INPUT_CURSOR *cursor_ptr, GX_UBYTE height)
@ -82,6 +85,11 @@ UINT status;
return(GX_PTR_ERROR);
}
if (height == 0)
{
return(GX_INVALID_VALUE);
}
status = _gx_text_input_cursor_height_set(cursor_ptr, height);
return(status);

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARCv2_EM/MetaWare Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARCv2_EM/MetaWare Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARC_HS/MetaWare Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARC_HS/MetaWare Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX ARM9/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX C6xxx/TI Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX C6xxx/TI Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -146,7 +146,7 @@ typedef unsigned char GX_UCHAR;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A15/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A15/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5x/AC6 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A5x/AC6 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A7/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A8/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-A9/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -143,7 +143,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M0/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -143,7 +143,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/KEIL Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M3/KEIL Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -143,7 +143,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/KEIL Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M4/KEIL Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -143,7 +143,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-M7/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/AC6 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/AC6 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R4/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/AC5 Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/AC5 Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -139,7 +139,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/IAR Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Cortex-R5/IAR Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -144,7 +144,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -137,7 +137,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Linux/GNU Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Linux/GNU Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -13,6 +13,14 @@
<Configuration>Debug_GX_DYNAMIC_BIDI_TEXT_SUPPORT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER|Win32">
<Configuration>Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_GX_EXTENDED_UNICODE_SUPPORT|Win32">
<Configuration>Debug_GX_EXTENDED_UNICODE_SUPPORT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug_GX_FONT_KERNING_SUPPORT|Win32">
<Configuration>Debug_GX_FONT_KERNING_SUPPORT</Configuration>
<Platform>Win32</Platform>
@ -40,6 +48,8 @@
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\common\src\gxe_animation_delete.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_binres_font_load.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_binres_pixelmap_load.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_menu_event_process.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_prompt_event_process.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_string_scroll_wheel_event_process.c" />
@ -53,6 +63,8 @@
<ClCompile Include="..\..\..\..\common\src\gxe_generic_scroll_wheel_row_height_set.c" />
<ClCompile Include="..\..\..\..\common\src\gxe_generic_scroll_wheel_total_rows_set.c" />
<ClCompile Include="..\..\..\..\common\src\gx_animation_delete.c" />
<ClCompile Include="..\..\..\..\common\src\gx_binres_font_load.c" />
<ClCompile Include="..\..\..\..\common\src\gx_binres_pixelmap_load.c" />
<ClCompile Include="..\..\..\..\common\src\gx_canvas_text_draw.c" />
<ClCompile Include="..\..\..\..\common\src\gx_display_driver_16bpp_rotated_block_move.c" />
<ClCompile Include="..\..\..\..\common\src\gx_display_driver_16bpp_rotated_canvas_copy.c" />
@ -1229,6 +1241,7 @@
<ClCompile Include="..\..\..\..\common\src\gx_utility_string_compare.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_string_length_check.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_string_to_alphamap.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_thai_glyph_shaping.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_unicode_to_utf8.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_utf8_string_backward_character_length_get.c" />
<ClCompile Include="..\..\..\..\common\src\gx_utility_utf8_string_character_get.c" />
@ -1422,6 +1435,18 @@
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_EXTENDED_UNICODE_SUPPORT|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_DISABLE_BRUSH_ALPHA_SUPPORT|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
@ -1477,6 +1502,12 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_EXTENDED_UNICODE_SUPPORT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_DISABLE_BRUSH_ALPHA_SUPPORT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
@ -1506,6 +1537,14 @@
<OutDir>$(ProjectDir)$(Configuration)\</OutDir>
<TargetName>gx</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER|Win32'">
<OutDir>$(ProjectDir)$(Configuration)\</OutDir>
<TargetName>gx</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_EXTENDED_UNICODE_SUPPORT|Win32'">
<OutDir>$(ProjectDir)$(Configuration)\</OutDir>
<TargetName>gx</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_DISABLE_BRUSH_ALPHA_SUPPORT|Win32'">
<OutDir>$(ProjectDir)$(Configuration)\</OutDir>
<TargetName>gx</TargetName>
@ -1560,6 +1599,50 @@
<OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>$(DefineConstants);WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GX_ANIMATION_POOL_SIZE=16;GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\tx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<BrowseInformation>false</BrowseInformation>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<AdditionalIncludeDirectories>..\..\lib\vs_2019;..\..\inc;..\..\inc\synergy;..\..\..\..\common\inc</AdditionalIncludeDirectories>
<TreatWarningAsError>true</TreatWarningAsError>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Bscmake>
<OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_EXTENDED_UNICODE_SUPPORT|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>$(DefineConstants);WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;GX_ANIMATION_POOL_SIZE=16;GX_EXTENDED_UNICODE_SUPPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\tx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<BrowseInformation>false</BrowseInformation>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<AdditionalIncludeDirectories>..\..\lib\vs_2019;..\..\inc;..\..\inc\synergy;..\..\..\..\common\inc</AdditionalIncludeDirectories>
<TreatWarningAsError>true</TreatWarningAsError>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Bscmake>
<OutputFile>$(OutDir)$(TargetName).bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_GX_DISABLE_BRUSH_ALPHA_SUPPORT|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>

View File

@ -170,7 +170,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Win32/Visual Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Win32/Visual Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

View File

@ -419,7 +419,7 @@ VOID _tx_thread_interrupt_restore(UINT previous_posture);
#ifdef TX_THREAD_INIT
CHAR _tx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Win32/Visual Studio Version 6.1.12 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * ThreadX Win32/Visual Studio Version 6.3.0 *";
#else
extern CHAR _tx_version_id[];
#endif

View File

@ -1302,33 +1302,35 @@ VOID *memptr;
return;
}
/* Driver just becomes ready. So we need to refresh the whole display. */
if (driver_instance -> win32_driver_ready == 1)
{
gx_utility_rectangle_define(&canvas -> gx_canvas_dirty_area, 0, 0,
canvas -> gx_canvas_x_resolution - 1,
canvas -> gx_canvas_y_resolution - 1);
driver_instance -> win32_driver_ready = 2;
}
gx_utility_rectangle_define(&Limit, 0, 0,
canvas -> gx_canvas_x_resolution - 1,
canvas -> gx_canvas_y_resolution - 1);
if (gx_utility_rectangle_overlap_detect(&Limit, &canvas -> gx_canvas_dirty_area, &Copy))
if (gx_utility_rectangle_overlap_detect(&Limit, dirty, &Copy))
{
memptr = _win32_canvas_memory_prepare(canvas, &Copy);
INT xsrc = Copy.gx_rectangle_left;
INT ysrc = Copy.gx_rectangle_top;
INT xsrc;
INT ysrc;
gx_utility_rectangle_shift(&Copy, canvas -> gx_canvas_display_offset_x, canvas -> gx_canvas_display_offset_y);
win_device = GetDC(driver_instance -> win32_driver_winhandle);
win_device = GetDC(driver_instance->win32_driver_winhandle);
SetMapMode(win_device, MM_TEXT);
driver_instance -> win32_driver_bmpinfo.gx_bmp_header.biWidth = canvas -> gx_canvas_x_resolution;
driver_instance -> win32_driver_bmpinfo.gx_bmp_header.biHeight = canvas -> gx_canvas_y_resolution;
#ifdef GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER
xsrc = Copy.gx_rectangle_left - canvas->gx_canvas_memory_offset_x;
ysrc = Copy.gx_rectangle_top - canvas->gx_canvas_memory_offset_y;
driver_instance->win32_driver_bmpinfo.gx_bmp_header.biWidth = canvas->gx_canvas_memory_width;
driver_instance->win32_driver_bmpinfo.gx_bmp_header.biHeight = canvas->gx_canvas_memory_height;
#else
xsrc = Copy.gx_rectangle_left;
ysrc = Copy.gx_rectangle_top;
driver_instance->win32_driver_bmpinfo.gx_bmp_header.biWidth = canvas->gx_canvas_x_resolution;
driver_instance->win32_driver_bmpinfo.gx_bmp_header.biHeight = canvas->gx_canvas_y_resolution;
#endif
gx_utility_rectangle_shift(&Copy, canvas->gx_canvas_display_offset_x, canvas->gx_canvas_display_offset_y);
Top = Copy.gx_rectangle_top;
Left = Copy.gx_rectangle_left;

View File

@ -100,7 +100,7 @@ typedef SHORT GX_VALUE;
#ifdef GX_SYSTEM_INIT
CHAR _gx_version_id[] =
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Win32/Standalone/Visual Version 6.2.1 *";
"Copyright (c) Microsoft Corporation. All rights reserved. * GUIX Win32/Standalone/Visual Version 6.3.0 *";
#else
extern CHAR _gx_version_id[];
#endif

Some files were not shown because too many files have changed in this diff Show More