VSF Documented
fb.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __HAL_DRIVER_GIGADEVICE_GD32H7XX_FB_H__
19#define __HAL_DRIVER_GIGADEVICE_GD32H7XX_FB_H__
20
21/*============================ INCLUDES ======================================*/
22
23#include "hal/vsf_hal_cfg.h"
24
25#if VSF_HAL_USE_FB == ENABLED
26
27#include "../../__device.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/*============================ MACROS ========================================*/
34
35#if VSF_USE_UI != ENABLED
36# error frame buffer driver depends on color constants in ui module
37#endif
38
39/*============================ MACROFIED FUNCTIONS ===========================*/
40/*============================ TYPES =========================================*/
41
42typedef enum vsf_hw_fb_type_t {
44// VSF_HW_FB_8080,
46
47typedef struct vsf_hw_fb_timing_rgb_t {
48 union {
49 struct {
56 };
57 struct {
64 };
65 };
66
68 // for VGA signals, de and pixel_clk are not used
69 bool use_de;
72
73typedef struct vsf_hw_fb_t {
75 union {
78 uint16_t width; // in pixels
79 uint16_t height; // in pixels
80 uint32_t pixel_format; // VSF_DISP_COLOR_XXX in disp module
82
83/*============================ GLOBAL VARIABLES ==============================*/
84/*============================ INCLUDES ======================================*/
85/*============================ PROTOTYPES ====================================*/
86
87// vsf_hw_fb_timing_rgb_init returns num_of_layer(> 0) on success, <= 0 on failure
92
93extern vsf_err_t vsf_hw_fb_layer_config(vsf_hw_fb_t *fb, int layer,
95 int color_format, uint_fast8_t alpha,
96 void *initial_pixel_buffer);
97extern vsf_err_t vsf_hw_fb_layer_enable(vsf_hw_fb_t *fb, int layer);
98extern vsf_err_t vsf_hw_fb_layer_disable(vsf_hw_fb_t *fb, int layer);
99extern vsf_err_t vsf_hw_fb_layer_present(vsf_hw_fb_t *fb, int layer, void *pixel_buffer);
100
101#ifdef __cplusplus
102}
103#endif
104
105#endif // VSF_HAL_USE_FB
106#endif
107/* EOF */
vsf_err_t
Definition __type.h:42
vsf_err_t vsf_hw_fb_disable(vsf_hw_fb_t *fb)
Definition fb.c:153
int_fast8_t vsf_hw_fb_init(vsf_hw_fb_t *fb)
Definition fb.c:73
vsf_err_t vsf_hw_fb_fini(vsf_hw_fb_t *fb)
Definition fb.c:140
vsf_err_t vsf_hw_fb_layer_enable(vsf_hw_fb_t *fb, int layer)
Definition fb.c:202
vsf_err_t vsf_hw_fb_layer_config(vsf_hw_fb_t *fb, int layer, uint16_t x, uint16_t y, uint16_t w, uint16_t h, int color_format, uint_fast8_t alpha, void *initial_pixel_buffer)
Definition fb.c:159
vsf_err_t vsf_hw_fb_layer_disable(vsf_hw_fb_t *fb, int layer)
Definition fb.c:211
vsf_hw_fb_type_t
Definition fb.h:42
@ VSF_HW_FB_RGB
Definition fb.h:43
vsf_err_t vsf_hw_fb_layer_present(vsf_hw_fb_t *fb, int layer, void *pixel_buffer)
Definition fb.c:219
vsf_err_t vsf_hw_fb_enable(vsf_hw_fb_t *fb)
Definition fb.c:147
unsigned short uint16_t
Definition stdint.h:7
unsigned char uint_fast8_t
Definition stdint.h:23
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
char int_fast8_t
Definition stdint.h:22
Definition fb.h:73
union vsf_hw_fb_t::@590 timing
vsf_hw_fb_type_t type
Definition fb.h:74
uint16_t height
Definition fb.h:79
uint16_t width
Definition fb.h:78
vsf_hw_fb_timing_rgb_t rgb
Definition fb.h:76
uint32_t pixel_format
Definition fb.h:80
Definition fb.h:47
uint16_t hsw
Definition fb.h:60
uint16_t h_front_porch
Definition fb.h:50
uint16_t vfp
Definition fb.h:61
bool use_pixel_clk
Definition fb.h:70
uint16_t v_back_porch
Definition fb.h:54
uint16_t vbp
Definition fb.h:62
uint8_t fps
Definition fb.h:67
bool use_de
Definition fb.h:69
uint16_t hfp
Definition fb.h:58
uint16_t h_sync
Definition fb.h:52
uint16_t hbp
Definition fb.h:59
uint16_t v_sync
Definition fb.h:55
uint16_t h_back_porch
Definition fb.h:51
uint16_t vsw
Definition fb.h:63
uint16_t v_front_porch
Definition fb.h:53