1 /* This is a small demo of the high-performance GUIX graphics framework. */
2
3 #include <stdio.h>
4 #include "tx_api.h"
5 #include "gx_api.h"
6 #include "gx_validation_utility.h"
7
8 TEST_PARAM test_parameter = {
9 "guix_glyph_draw_8bpp_screen_aa_text_colors_8",
10 55, 107, 560, 300 /* Define the coordinates of the capture area.
11 In this test, we only need to capture the line
12 drawing area. */
13 };
14
15 /* This is a small demo of the high-performance GUIX graphics framework. */
16
17 static VOID control_thread_entry(ULONG);
main(int argc,char ** argv)18 int main(int argc, char ** argv)
19 {
20 /* Parse the command line argument. */
21 gx_validation_setup(argc, argv);
22
23 /* Start ThreadX system */
24 tx_kernel_enter();
25 return(0);
26 }
27
tx_application_define(void * first_unused_memory)28 VOID tx_application_define(void *first_unused_memory)
29 {
30
31 /* Create a dedicated thread to perform various operations
32 on the line drawing example. These operations simulate
33 user input. */
34 gx_validation_control_thread_create(control_thread_entry);
35
36 /* Termiante the test if it runs for more than 100 ticks */
37 /* This function is not implemented yet. */
38 gx_validation_watchdog_create(100);
39
40 /* Call the actual line example routine. */
41 gx_validation_application_define(first_unused_memory);
42
43 }
44
45
46 /* Replace the default graphics driver with the validation driver. */
47 #ifdef win32_graphics_driver_setup_8bit_palette
48 #undef win32_graphics_driver_setup_8bit_palette
49 #endif
50 #define win32_graphics_driver_setup_8bit_palette gx_validation_graphics_driver_setup_8bit_palette
51
52
53 #ifdef WIN32
54 #undef WIN32
55 #endif
56
57 #include "gx_validation_wrapper.h"
58
59 #include "demo_glyph_draw_8bpp.c"
60
61 int clip_width[] = {5, 10, 15, 20, 25, 30};
62
63 char test_comment[256];
64 extern GX_STUDIO_DISPLAY_INFO glyph_draw_8bpp_screen_display_table[];
65 extern VOID _gx_display_driver_8bpp_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
66
control_thread_entry(ULONG input)67 static VOID control_thread_entry(ULONG input)
68 {
69 int test_case;
70 int slider_value;
71 UINT width_index;
72 int frame_id = 1;
73 int increment = 10;
74 GX_SLIDER_INFO *slider_info;
75 GX_CHAR get_value[3];
76 GX_CONST GX_THEME *theme_ptr;
77
78 /* Save palette. */
79 theme_ptr = glyph_draw_8bpp_screen_display_table[DISPLAY_1].theme_table[0];
80 gx_validation_write_palette(theme_ptr -> theme_palette, theme_ptr->theme_palette_size);
81
82 for(test_case = 0; test_case < 2; test_case++)
83 {
84 if(test_case == 1)
85 {
86 /* Change 4bit glyph draw driver. */
87 root->gx_window_root_canvas->gx_canvas_display->gx_display_driver_4bit_glyph_draw = _gx_display_driver_8bpp_glyph_4bit_draw;
88 }
89
90 for(width_index = 0; width_index < sizeof(clip_width)/sizeof(int); width_index ++)
91 {
92 gx_utility_ltoa(clip_width[width_index], get_value, 3);
93 strcpy(pVClipInput->gx_single_line_text_input_buffer, get_value);
94 pVClipInput -> gx_single_line_text_input_string_size = strlen(get_value);
95 gx_widget_event_generate(pVClipInput, GX_EVENT_TEXT_EDITED, 0);
96
97
98 strcpy(pHClipInput->gx_single_line_text_input_buffer, get_value);
99 pHClipInput -> gx_single_line_text_input_string_size = strlen(get_value);
100 gx_widget_event_generate(pHClipInput, GX_EVENT_TEXT_EDITED, 0);
101
102 /* Drag horizontal clip down. */
103 slider_info = &pVerticalSlider -> gx_slider_info;
104 for(slider_value = slider_info -> gx_slider_info_max_val; slider_value >= slider_info -> gx_slider_info_min_val; slider_value -= increment)
105 {
106 gx_validation_set_frame_id(frame_id);
107 sprintf(test_comment, "Clip width: %d, Drag horizontal clip down", clip_width[width_index]);
108
109 gx_validation_set_frame_comment(test_comment);
110 gx_slider_value_set(pVerticalSlider, slider_info, slider_value);
111
112 /* Mark the window "dirty" */
113 gx_system_dirty_mark(pMainWin);
114
115 /* Force a screen refresh. */
116 gx_validation_screen_refresh();
117
118 frame_id ++;
119 }
120
121 /* Drag horizontal clip up. */
122 for(slider_value = slider_info -> gx_slider_info_min_val; slider_value <= slider_info -> gx_slider_info_max_val; slider_value += increment)
123 {
124 gx_validation_set_frame_id(frame_id);
125 sprintf(test_comment, "Clip width: %d, Drag horizontal clip up", clip_width[width_index]);
126
127 gx_validation_set_frame_comment(test_comment);
128 gx_slider_value_set(pVerticalSlider, slider_info, slider_value);
129
130 /* Mark the window "dirty" */
131 gx_system_dirty_mark(pMainWin);
132
133 /* Force a screen refresh. */
134 gx_validation_screen_refresh();
135
136 frame_id ++;
137 }
138
139 /* Drag vertical clip right. */
140 slider_info = &pHorizontalSlider -> gx_slider_info;
141 for(slider_value = slider_info -> gx_slider_info_min_val; slider_value <= slider_info -> gx_slider_info_max_val; slider_value += increment)
142 {
143 gx_validation_set_frame_id(frame_id);
144 sprintf(test_comment, "Clip width: %d, Drag vertical clip right", clip_width[width_index]);
145
146 gx_validation_set_frame_comment(test_comment);
147 gx_slider_value_set(pHorizontalSlider, slider_info, slider_value);
148
149 /* Mark the window "dirty" */
150 gx_system_dirty_mark(pMainWin);
151
152 /* Force a screen refresh. */
153 gx_validation_screen_refresh();
154
155 frame_id ++;
156 }
157
158 /* Drag vertical clip left. */
159 for(slider_value = slider_info -> gx_slider_info_max_val; slider_value >= slider_info -> gx_slider_info_min_val; slider_value -= increment)
160 {
161 gx_validation_set_frame_id(frame_id);
162 sprintf(test_comment, "Clip width: %d, Drag vertical clip left", clip_width[width_index]);
163
164 gx_validation_set_frame_comment(test_comment);
165 gx_slider_value_set(pHorizontalSlider, slider_info, slider_value);
166
167 /* Mark the window "dirty" */
168 gx_system_dirty_mark(pMainWin);
169
170 /* Force a screen refresh. */
171 gx_validation_screen_refresh();
172
173 frame_id ++;
174 }
175 }
176 }
177
178 /* Signal the end of the test case. Verify the output. */
179 gx_validation_end();
180
181 exit(0);
182 }
183