1 /***************************************************************************
2  * Copyright (c) 2024 Microsoft Corporation
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the MIT License which is available at
6  * https://opensource.org/licenses/MIT.
7  *
8  * SPDX-License-Identifier: MIT
9  **************************************************************************/
10 
11 
12 /**************************************************************************/
13 /**************************************************************************/
14 /**                                                                       */
15 /** GUIX Component                                                        */
16 /**                                                                       */
17 /**   Synergy Simulation Display Management (Display)                     */
18 /**                                                                       */
19 /**************************************************************************/
20 /**************************************************************************/
21 
22 
23 /**************************************************************************/
24 /*                                                                        */
25 /*  COMPONENT DEFINITION                                   RELEASE        */
26 /*                                                                        */
27 /*    gx_dave2d_simulation_display_driver.h              PORTABLE C       */
28 /*                                                           6.4.0        */
29 /*  AUTHOR                                                                */
30 /*                                                                        */
31 /*    Ting Zhu, Microsoft Corporation                                     */
32 /*                                                                        */
33 /*  DESCRIPTION                                                           */
34 /*                                                                        */
35 /*    Define drivers for Synergy Win32 simulation.                        */
36 /*                                                                        */
37 /*                                                                        */
38 /*  RELEASE HISTORY                                                       */
39 /*                                                                        */
40 /*    DATE              NAME                      DESCRIPTION             */
41 /*                                                                        */
42 /*  12-31-2023     Ting Zhu                 Initial Version 6.4.0         */
43 /*                                                                        */
44 /**************************************************************************/
45 
46 #ifndef GX_DAVE2D_SIMULATION_DISPLAY_H
47 #define GX_DAVE2D_SIMULATION_DISPLAY_H
48 
49 
50 
51 VOID _gx_dave2d_simulation_display_driver_16bpp_compressed_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
52                                                                             GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
53 VOID _gx_dave2d_simulation_display_driver_16bpp_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
54                                                                  GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
55 VOID _gx_dave2d_simulation_display_driver_16bpp_pixelmap_draw(GX_DRAW_CONTEXT *context,
56                                                                INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
57 VOID _gx_dave2d_simulation_display_driver_565rgb_pixelmap_blend(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
58 VOID _gx_dave2d_simulation_display_driver_565rgb_setup(GX_DISPLAY *display, VOID *aux_data,
59                                                         VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
60 VOID _gx_dave2d_simulation_display_driver_565rgb_horizontal_pixelmap_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, struct GX_FILL_PIXELMAP_INFO_STRUCT *info);
61 
62 
63 VOID _gx_dave2d_simulation_display_driver_32bpp_compressed_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
64                                                                             GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
65 VOID _gx_dave2d_simulation_display_driver_32bpp_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
66                                                                  GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
67 VOID _gx_dave2d_simulation_display_driver_32bpp_horizontal_pixelmap_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, struct GX_FILL_PIXELMAP_INFO_STRUCT *info);
68 VOID _gx_dave2d_simulation_display_driver_24xrgb_pixelmap_blend(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
69 VOID _gx_dave2d_simulation_display_driver_24xrgb_pixelmap_draw(GX_DRAW_CONTEXT *context,
70                                                                 INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
71 VOID _gx_dave2d_simulation_display_driver_24xrgb_setup(GX_DISPLAY *display, VOID *aux_data,
72                                                         VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
73 
74 VOID _gx_dave2d_simulation_display_driver_8bpp_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
75 VOID _gx_dave2d_simulation_display_driver_8bpp_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
76 VOID _gx_dave2d_simulation_display_driver_8bit_palette_setup(GX_DISPLAY *display, VOID *aux_data,
77                                                               VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
78 VOID _gx_dave2d_simulation_display_driver_8bpp_rotated_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
79 VOID _gx_dave2d_simulation_display_driver_8bpp_rotated_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area, GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
80 VOID _gx_dave2d_simulation_display_driver_8bit_palette_rotated_setup(GX_DISPLAY *display, VOID *aux_data,
81                                                                       VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
82 
83 VOID _gx_dave2d_simulation_display_driver_compressed_glyph_8bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
84                                                                       GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
85 VOID _gx_dave2d_simulation_display_driver_compressed_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
86                                                                       GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
87 VOID _gx_dave2d_simulation_display_driver_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
88                                                            GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
89 
90 /* Declare rotated display drivers prototypes. */
91 VOID _gx_dave2d_simulation_display_driver_32bpp_rotated_compressed_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
92                                                                                     GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
93 VOID _gx_dave2d_simulation_display_driver_32bpp_rotated_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
94                                                                          GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
95 VOID _gx_dave2d_simulation_display_driver_32bpp_rotated_horizontal_pixelmap_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, struct GX_FILL_PIXELMAP_INFO_STRUCT *info);
96 VOID _gx_dave2d_simulation_display_driver_24xrgb_rotated_pixelmap_blend(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
97 VOID _gx_dave2d_simulation_display_driver_24xrgb_rotated_pixelmap_draw(GX_DRAW_CONTEXT *context,
98                                                                         INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
99 VOID _gx_dave2d_simulation_display_driver_24xrgb_rotated_setup(GX_DISPLAY *display, VOID *aux_data,
100                                                                 VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
101 
102 VOID _gx_dave2d_simulation_display_driver_16bpp_rotated_compressed_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
103                                                                                     GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
104 VOID _gx_dave2d_simulation_display_driver_16bpp_rotated_glyph_1bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
105                                                                          GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
106 VOID _gx_dave2d_simulation_display_driver_565rgb_rotated_pixelmap_draw(GX_DRAW_CONTEXT *context,
107                                                                         INT xpos, INT ypos, GX_PIXELMAP *pixelmap);
108 VOID _gx_dave2d_simulation_display_driver_565rgb_rotated_pixelmap_blend(GX_DRAW_CONTEXT *context, INT xpos, INT ypos, GX_PIXELMAP *pixelmap, GX_UBYTE alpha);
109 VOID _gx_dave2d_simulation_display_driver_565rgb_rotated_setup(GX_DISPLAY *display, VOID *aux_data,
110                                                                 VOID (*toggle_function)(struct GX_CANVAS_STRUCT *canvas, GX_RECTANGLE *dirty_area));
111 VOID _gx_dave2d_simulation_display_driver_565rgb_rotated_horizontal_pixelmap_line_draw(GX_DRAW_CONTEXT *context, INT xstart, INT xend, INT y, struct GX_FILL_PIXELMAP_INFO_STRUCT *info);
112 VOID _gx_dave2d_simulation_display_driver_rotated_compressed_glyph_8bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
113                                                                               GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
114 VOID _gx_dave2d_simulation_display_driver_rotated_compressed_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
115                                                                               GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
116 VOID _gx_dave2d_simulation_display_driver_rotated_glyph_4bit_draw(GX_DRAW_CONTEXT *context, GX_RECTANGLE *draw_area,
117                                                                    GX_POINT *map_offset, GX_CONST GX_GLYPH *glyph);
118 
119 #endif
120 
121