1 /** 2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. \n 14 * 15 * Description: Provides the data struct define of vau api \n 16 */ 17 18 #ifndef SOC_VAU_TYPE_H 19 #define SOC_VAU_TYPE_H 20 21 #include "td_base.h" 22 #include "soc_gfx_type.h" 23 24 #ifdef __cplusplus 25 #if __cplusplus 26 extern "C" { 27 #endif 28 #endif 29 30 /** 31 * @defgroup vau_type vau_type 32 * @ingroup gpu_type 33 * @{ 34 */ 35 36 /** 37 * @if Eng 38 * @brief Size of the compression header. 39 * @else 40 * @brief 压缩头的大小 41 * @endif 42 */ 43 #define VAU_CMP_HEADER_SIZE 16 44 45 #define EXT_VAU_MAX_STOPS 7 46 47 typedef td_u32 ext_vau_color; 48 49 /** 50 * @if Eng 51 * @brief matrix. 52 * @else 53 * @brief 矩阵 54 * @endif 55 */ 56 typedef struct { 57 td_float matrix[3][3]; 58 } ext_vau_matrix; 59 60 typedef enum { 61 EXT_VAU_BLUR_MODE_GAUSSIAN = 0, 62 EXT_VAU_BLUR_MODE_MAX 63 } ext_vau_blur_mode; 64 65 typedef enum { 66 EXT_VAU_COLOR_SPACE_BT709 = 0, 67 EXT_VAU_COLOR_SPACE_BT2020, 68 EXT_VAU_COLOR_SPACE_MAX 69 } ext_vau_color_space; 70 71 /** 72 * @if Eng 73 * @brief alpha information. 74 * @else 75 * @brief alpha信息 76 * @endif 77 */ 78 typedef struct { 79 td_bool is_alpha_max_128; /*!< @if Eng Maximum alpha value. 80 @else alpha最大值 @endif */ 81 td_u8 alpha0; /*!< @if Eng Alpha input value when the output format is 1555. 82 @else 输出格式为1555时alpha输入值 @endif */ 83 td_u8 alpha1; /*!< @if Eng Alpha input value when the output format is 1555. 84 @else 输出格式为1555时alpha输出值 @endif */ 85 td_u8 alpha_thd; /*!< @if Eng Alpha threshold when the output format is 1555. 86 @else 输出格式为1555时alpha阈值 @endif */ 87 td_u8 global_alpha; /*!< @if Eng Global alpha. 88 @else 全局alpha @endif */ 89 td_bool golbal_premult_en; /*!< @if Eng Global alpha premultiplication enable. 90 @else 全局alpha预乘使能 @endif */ 91 td_bool global_alpha_en; /*!< @if Eng Global alpha enable. 92 @else 全局alpha使能 @endif */ 93 td_bool premult_en; /*!< @if Eng Premultiplication enable. 94 @else 预乘使能 @endif */ 95 td_bool pixel_alpha_en; /*!< @if Eng Pixel alpha enable. 96 @else 像素alpha使能 @endif */ 97 } ext_vau_alpha_info; 98 99 /** 100 * @if Eng 101 * @brief Paint mode. 102 * @else 103 * @brief 画笔模式 104 * @endif 105 */ 106 typedef enum { 107 EXT_VAU_PAINT_MODE_NONE = 0x0, /*!< @if Eng Initialization Value. 108 @else 初始化值 @endif */ 109 EXT_VAU_PAINT_MODE_STROKE = 0x1, /*!< @if Eng Stroke only. 110 @else 只做描边 @endif */ 111 EXT_VAU_PAINT_MODE_FILL = 0x2, /*!< @if Eng Fill only. 112 @else 只做内部填充 @endif */ 113 EXT_VAU_PAINT_MODE_ALL = EXT_VAU_PAINT_MODE_STROKE | EXT_VAU_PAINT_MODE_FILL, /*!< @if Eng 114 Do both strokes and interior fills. 115 @else 同时做描边和内部填充 @endif */ 116 } ext_vau_paint_mode; 117 118 /** 119 * @if Eng 120 * @brief Gradient Tile Mode. 121 * @else 122 * @brief 渐变平铺模式 123 * @endif 124 */ 125 typedef enum { 126 EXT_VAU_PAINT_TILE_MODE_CLAMP = 0, /*!< @if Eng Extension mode: The color of the last stop point is extended. 127 For hatches, expand the edge-most color. 128 @else 延展模式,往外扩最后一个 stop 点的颜色; 129 对于图案填充,往外扩最边缘的颜色 @endif */ 130 EXT_VAU_PAINT_TILE_MODE_REPEAT, /*!< @if Eng Repeat mode: The color of each stop point is repeated. 131 For hatches, the pattern is tiled repeatedly. 132 @else 重复模式,重复每个 stop 点的颜色; 133 对于图案填充,重复平铺该图案 @endif */ 134 EXT_VAU_PAINT_TILE_MODE_MIRROR, /*!< @if Eng In mirroring mode, the color of each stop point is repeated 135 reversely. For hatches, the pattern is repeatedly tiled in reverse. 136 @else 镜像模式,反向重复每个 stop 点的颜色; 137 对于图案填充,反向重复平铺该图案 @endif */ 138 EXT_VAU_PAINT_TILE_MODE_MAX /*!< @if Eng Invalid value. 139 @else 无效值 @endif */ 140 } ext_vau_paint_tile_mode; 141 142 /** 143 * @if Eng 144 * @brief paint type. 145 * @else 146 * @brief 画笔类型 147 * @endif 148 */ 149 typedef enum { 150 EXT_VAU_PAINT_TYPE_COLOR = 0, /*!< @if Eng Solid fill. 151 @else 纯色填充 @endif */ 152 EXT_VAU_PAINT_TYPE_COLOR_ALPHA_FF, /*!< @if Eng Solid color fill, but alpha in the path is all FF. 153 @else 纯色填充,但路径内alpha为全FF @endif */ 154 EXT_VAU_PAINT_TYPE_LINEAR_GRADIENT, /*!< @if Eng Linear gradient fill. 155 @else 线性渐变填充 @endif */ 156 EXT_VAU_PAINT_TYPE_RADIAL_GRADIENT, /*!< @if Eng Radial gradient fill. 157 @else 径向渐变填充 @endif */ 158 EXT_VAU_PAINT_TYPE_SWEEP_GRADIENT, /*!< @if Eng Sweep gradient fill. 159 @else 扫描渐变填充 @endif */ 160 EXT_VAU_PAINT_TYPE_PATTERN, /*!< @if Eng Pattern fill. 161 @else 图案填充 @endif */ 162 EXT_VAU_PAINT_TYPE_MAX /*!< @if Eng Invalid input. 163 @else 无效输入 @endif */ 164 } ext_vau_paint_type; 165 166 /** 167 * @if Eng 168 * @brief stroke cap type. 169 * @else 170 * @brief stroke线冒类型 171 * @endif 172 */ 173 typedef enum { 174 EXT_VAU_STROKE_LINE_CAP_BUTT = 0, /*!< @if Eng Wireless Cap . 175 @else 无线帽 @endif */ 176 EXT_VAU_STROKE_LINE_CAP_ROUND, /*!< @if Eng Round cable cap . 177 @else 圆形线帽 @endif */ 178 EXT_VAU_STROKE_LINE_CAP_SQUARE, /*!< @if Eng Square cable cap . 179 @else 方形线帽 @endif */ 180 EXT_VAU_STROKE_LINE_CAP_MAX /*!< @if Eng Invalid value. 181 @else 无效值 @endif */ 182 } ext_vau_stroke_line_cap; 183 184 /** 185 * @if Eng 186 * @brief stroke connection type. 187 * @else 188 * @brief stroke连接类型 189 * @endif 190 */ 191 typedef enum { 192 EXT_VAU_STROKE_LINE_JOIN_MITER = 0, /*!< @if Eng miter. 193 @else 斜接 @endif */ 194 EXT_VAU_STROKE_LINE_JOIN_ROUND, /*!< @if Eng circular connection. 195 @else 圆形连接 @endif */ 196 EXT_VAU_STROKE_LINE_JOIN_BEVEL, /*!< @if Eng bevel connection. 197 @else 斜面连接 @endif */ 198 EXT_VAU_STROKE_LINE_JOIN_MAX /*!< @if Eng Invalid value. 199 @else 无效值 @endif */ 200 } ext_vau_stroke_line_join; 201 202 /** 203 * @if Eng 204 * @brief Antialiasing attribution. 205 * @else 206 * @brief 抗锯齿属性 207 * @endif 208 */ 209 typedef enum { 210 EXT_VAU_RENDER_QUALITY_NONE_AA, /*!< @if Eng No anti-aliasing. 211 @else 不开抗锯齿 @endif */ 212 EXT_VAU_RENDER_QUALITY_FASTER, /*!< @if Eng MSAA8X, Bessel stroke fit with 4-segment Bessel. 213 @else 8X 多重采样抗锯齿模式, 214 贝塞尔stroke使用4条贝塞尔拟合 @endif */ 215 EXT_VAU_RENDER_QUALITY_BETTER, /*!< @if Eng MSAA8X, Bessel stroke fit with 32egment Bessel. 216 @else 8X 多重采样抗锯齿模式, 217 贝塞尔stroke使用32根直线拟合 @endif */ 218 } ext_vau_render_quality; 219 220 /** 221 * @if Eng 222 * @brief Rendering configuration. 223 * @else 224 * @brief 渲染配置 225 * @endif 226 */ 227 typedef struct { 228 ext_vau_render_quality render_quality; /*!< @if Eng Rendering quality. 229 @else 渲染质量 @endif */ 230 } ext_vau_render_cfg; 231 232 /** 233 * @if Eng 234 * @brief point. 235 * @else 236 * @brief 点 237 * @endif 238 */ 239 typedef struct { 240 td_s32 x; 241 td_s32 y; 242 } ext_vau_point; 243 244 /** 245 * @if Eng 246 * @brief Line. 247 * @else 248 * @brief 直线 249 * @endif 250 */ 251 typedef struct { 252 td_float x0; 253 td_float y0; 254 td_float x1; 255 td_float y1; 256 } ext_vau_line; 257 258 259 /** 260 * @if Eng 261 * @brief Rectangle, Ellipse. 262 * @else 263 * @brief 矩形,椭圆 264 * @endif 265 */ 266 typedef struct { 267 td_float x; 268 td_float y; 269 td_float width; 270 td_float height; 271 } ext_vau_rect, ext_vau_ellipse; 272 273 /** 274 * @if Eng 275 * @brief Rounded Rectangle. 276 * @else 277 * @brief 圆角矩形 278 * @endif 279 */ 280 typedef struct { 281 td_float x; 282 td_float y; 283 td_float width; 284 td_float height; 285 td_float arc_width; 286 td_float arc_height; 287 } ext_vau_round_rect; 288 289 /** 290 * @if Eng 291 * @brief Arc Type. 292 * @else 293 * @brief 弧类型 294 * @endif 295 */ 296 typedef enum { 297 EXT_VAU_ARC_TYPE_OPEN, 298 EXT_VAU_ARC_TYPE_CHORD, 299 EXT_VAU_ARC_TYPE_PIE, 300 301 EXT_VAU_ARC_TYPE_MAX, 302 } ext_vau_arc_type; 303 304 /** 305 * @if Eng 306 * @brief Arc. 307 * @else 308 * @brief 弧 309 * @endif 310 */ 311 typedef struct { 312 td_float x; 313 td_float y; 314 td_float width; 315 td_float height; 316 td_float start_angle; 317 td_float angle_extend; 318 ext_vau_arc_type type; 319 } ext_vau_arc; 320 321 /** 322 * @if Eng 323 * @brief solid paint attribution. 324 * @else 325 * @brief 纯色画笔属性 326 * @endif 327 */ 328 typedef union { 329 struct { 330 td_u32 rgb : 24; 331 td_u32 opa : 8; 332 }; 333 td_u32 color; 334 } ext_vau_solid_attr; 335 336 /** 337 * @if Eng 338 * @brief stops. 339 * @else 340 * @brief 停止点 341 * @endif 342 */ 343 typedef struct { 344 ext_vau_color *colors; /*!< @if Eng Stop Point Color Array. 345 @else 停止点颜色数组 @endif */ 346 td_float *offsets; /*!< @if Eng Indicates the stop point offset array, which is expressed in floating point. 347 @else 停止点偏移数组,浮点表示 @endif */ 348 td_u8 num; /*!< @if Eng Number of stop points, that is, the number of colors and offset arrays. 349 @else 停止点个数,即colors和offset的数组个数 @endif */ 350 } ext_vau_stops; 351 352 /** 353 * @if Eng 354 * @brief Linear Gradient Fill Properties. 355 * @else 356 * @brief 线性渐变填充属性 357 * @endif 358 */ 359 typedef struct { 360 ext_vau_point start_point; /*!< @if Eng Start point coordinate. 361 @else 起始点坐标 @endif */ 362 ext_vau_point end_point; /*!< @if Eng end point coordinate. 363 @else 终点坐标 @endif */ 364 } ext_vau_linear_gradient_attr; 365 366 /** 367 * @if Eng 368 * @brief Radial gradient fill attribution. 369 * @else 370 * @brief 径向渐变填充属性 371 * @endif 372 */ 373 typedef struct { 374 td_u16 radius; /*!< @if Eng Gradient Radius. 375 @else 渐变半径 @endif */ 376 ext_vau_point center; /*!< @if Eng Gradient Center Point. 377 @else 圆点 @endif */ 378 } ext_vau_radial_gradient_attr; 379 380 /** 381 * @if Eng 382 * @brief sweep gradient fill attribution. 383 * @else 384 * @brief 画笔渐变平铺模式 385 * @endif 386 */ 387 typedef struct { 388 ext_vau_point center; /*!< @if Eng Gradient Center Point. 389 @else 渐变中心点 @endif */ 390 td_u32 start_angle; /*!< @if Eng Gradient Start Angle. 391 @else 渐变起始角度 @endif */ 392 } ext_vau_sweep_gradient_attr; 393 394 /** 395 * @if Eng 396 * @brief Gradient paint attribution. 397 * @else 398 * @brief 渐变画笔属性 399 * @endif 400 */ 401 typedef struct { 402 ext_vau_paint_tile_mode tile_mode; /*!< @if Eng Brush Gradient Tile Mode. 403 @else 画笔渐变平铺模式 @endif */ 404 ext_vau_stops stops; /*!< @if Eng stops info. 405 @else 停止点信息 @endif */ 406 union { 407 ext_vau_linear_gradient_attr linear; /*!< @if Eng Linear gradient fill attribution. 408 @else 线性渐变填充属性 @endif */ 409 ext_vau_radial_gradient_attr radial; /*!< @if Eng Radial gradient fill attribution. 410 @else 径向渐变填充属性 @endif */ 411 ext_vau_sweep_gradient_attr sweep; /*!< @if Eng Sweep gradient fill attribution. 412 @else 扫描渐变填充属性 @endif */ 413 }; 414 } ext_vau_gradient_attr; 415 416 /** 417 * @if Eng 418 * @brief Paint attribution. 419 * @else 420 * @brief 画笔属性 421 * @endif 422 */ 423 typedef struct { 424 ext_vau_paint_type paint_type; /*!< @if Eng paint type. 425 @else 画笔类型 @endif */ 426 union { 427 ext_vau_solid_attr solid; /*!< @if Eng solid paint attribution. 428 @else 纯色画笔属性 @endif */ 429 ext_vau_gradient_attr gradient; /*!< @if Eng Gradient paint attribution. 430 @else 渐变画笔属性 @endif */ 431 }; 432 } ext_vau_paint_attr; 433 434 435 /** 436 * @if Eng 437 * @brief Dash. 438 * @else 439 * @brief 虚线 440 * @endif 441 */ 442 typedef struct { 443 td_bool enable; /*!< @if Eng Whether to enable the dotted line function. 444 @else 是否使能虚线功能 @endif */ 445 float *array; /*!< @if Eng dashed array. 446 @else 虚线数组 @endif */ 447 td_u32 count; /*!< @if Eng Array Length. 448 @else 数组长度 @endif */ 449 float offset; /*!< @if Eng Dotted Line Start Offset. 450 @else 虚线起点偏移 @endif */ 451 td_bool reset; /*!< @if Eng Whether to redraw dashed lines for subpaths. 452 @else 子路径是否重新绘制虚线 @endif */ 453 } ext_vau_dash; 454 455 /** 456 * @if Eng 457 * @brief Stroke attribution. 458 * @else 459 * @brief 描边属性 460 * @endif 461 */ 462 typedef struct { 463 float width; /*!< @if Eng Line width. 464 @else 线宽 @endif */ 465 ext_vau_dash dash; /*!< @if Eng Dash information. 466 @else 虚线信息 @endif */ 467 ext_vau_stroke_line_cap cap; /*!< @if Eng Stroke cap type. 468 @else stroke线冒类型 @endif */ 469 ext_vau_stroke_line_join join; /*!< @if Eng Stroke connection type. 470 @else stroke连接类型 @endif */ 471 float miter_limit; /*!< @if Eng Maximum mitter length. 472 @else 最大的miter长度 @endif */ 473 ext_vau_paint_attr paint_attr; /*!< @if Eng Paint attribution. 474 @else 画笔属性 @endif */ 475 } ext_vau_stroke_attr; 476 477 /** 478 * @if Eng 479 * @brief Filling type 480 * @else 481 * @brief 填充类型 482 * @endif 483 */ 484 typedef enum { 485 EXT_VAU_EVEN_ODD_FILL = 0, /*!< @if Eng The filling rule is Even ODD.. 486 @else 奇偶规则 @endif */ 487 EXT_VAU_NON_ZERO_FILL, /*!< @if Eng The filling rule is zero.. 488 @else 非零规则 @endif */ 489 EXT_VAU_FILL_MAX /*!< @if Eng Invalid value. 490 @else 无效值 @endif */ 491 } ext_vau_fill_type; 492 493 /** 494 * @if Eng 495 * @brief Internal Fill attribution 496 * @else 497 * @brief 内部填充属性 498 * @endif 499 */ 500 typedef struct { 501 ext_vau_fill_type type; /*!< @if Eng Filling type. 502 @else 填充类型 @endif */ 503 ext_vau_paint_attr paint_attr; /*!< @if Eng Paint attribution. 504 @else 画笔属性 @endif */ 505 } ext_vau_fill_attr; 506 507 /** 508 * @if Eng 509 * @brief Paint. 510 * @else 511 * @brief 画笔 512 * @endif 513 */ 514 typedef struct { 515 ext_vau_render_cfg render_cfg; /*!< @if Eng Drawing configuration. 516 @else 绘制配置 @endif */ 517 ext_vau_stroke_attr *stroke_attr; /*!< @if Eng Stroke Properties. 518 @else 描边属性 @endif */ 519 ext_vau_fill_attr *fill_attr; /*!< @if Eng Internal Fill Properties. 520 @else 内部填充属性 @endif */ 521 ext_vau_paint_mode paint_mode; /*!< @if Eng Paint mode. 522 @else 画笔模式 @endif */ 523 } ext_vau_paint; 524 525 /** 526 * @if Eng 527 * @brief Command Count. 528 * @else 529 * @brief 命令计数 530 * @endif 531 */ 532 typedef struct { 533 td_bool enable; 534 td_u16 move_count; 535 td_u16 line_count; 536 td_u16 quad_count; 537 td_u16 cubic_count; 538 td_u16 arc_count; 539 } ext_cmd_count; 540 541 typedef enum { 542 VAU_PATH_ABSOLUTE = 0, 543 VAU_PATH_RELATIVE = 1, 544 } vau_path_abs_rel; 545 546 typedef enum { 547 VAU_PATH_CLOSE_PATH = (0 << 1), 548 VAU_PATH_MOVE_TO = (1 << 1), 549 VAU_PATH_LINE_TO = (2 << 1), 550 VAU_PATH_HLINE_TO = (3 << 1), 551 VAU_PATH_VLINE_TO = (4 << 1), 552 VAU_PATH_QUAD_TO = (5 << 1), 553 VAU_PATH_CUBIC_TO = (6 << 1), 554 VAU_PATH_SQUAD_TO = (7 << 1), 555 VAU_PATH_SCUBIC_TO = (8 << 1), 556 VAU_PATH_SCCWARC_TO = (9 << 1), 557 VAU_PATH_SCWARC_TO = (10 << 1), 558 VAU_PATH_LCCWARC_TO = (11 << 1), 559 VAU_PATH_LCWARC_TO = (12 << 1), 560 } vau_path_segment; 561 562 enum { 563 VAU_PATH_MOVE_TO_DATA_NUM = 2, 564 VAU_PATH_LINE_TO_DATA_NUM = 2, 565 VAU_PATH_HLINE_TO_DATA_NUM = 1, 566 VAU_PATH_VLINE_TO_DATA_NUM = 1, 567 VAU_PATH_QUAD_TO_DATA_NUM = 4, 568 VAU_PATH_CUBIC_TO_DATA_NUM = 6, 569 VAU_PATH_SQUAD_TO_DATA_NUM = 2, 570 VAU_PATH_SCUBIC_TO_DATA_NUM = 4, 571 VAU_PATH_SCCWARC_TO_DATA_NUM = 5, 572 VAU_PATH_SCWARC_TO_DATA_NUM = 5, 573 VAU_PATH_LCCWARC_TO_DATA_NUM = 5, 574 VAU_PATH_LCWARC_TO_DATA_NUM = 5, 575 }; 576 577 typedef enum { 578 VAU_PATH_MOVE_TO_ABS = VAU_PATH_MOVE_TO | VAU_PATH_ABSOLUTE, 579 VAU_PATH_MOVE_TO_REL = VAU_PATH_MOVE_TO | VAU_PATH_RELATIVE, 580 VAU_PATH_LINE_TO_ABS = VAU_PATH_LINE_TO | VAU_PATH_ABSOLUTE, 581 VAU_PATH_LINE_TO_REL = VAU_PATH_LINE_TO | VAU_PATH_RELATIVE, 582 VAU_PATH_HLINE_TO_ABS = VAU_PATH_HLINE_TO | VAU_PATH_ABSOLUTE, 583 VAU_PATH_HLINE_TO_REL = VAU_PATH_HLINE_TO | VAU_PATH_RELATIVE, 584 VAU_PATH_VLINE_TO_ABS = VAU_PATH_VLINE_TO | VAU_PATH_ABSOLUTE, 585 VAU_PATH_VLINE_TO_REL = VAU_PATH_VLINE_TO | VAU_PATH_RELATIVE, 586 VAU_PATH_QUAD_TO_ABS = VAU_PATH_QUAD_TO | VAU_PATH_ABSOLUTE, 587 VAU_PATH_QUAD_TO_REL = VAU_PATH_QUAD_TO | VAU_PATH_RELATIVE, 588 VAU_PATH_CUBIC_TO_ABS = VAU_PATH_CUBIC_TO | VAU_PATH_ABSOLUTE, 589 VAU_PATH_CUBIC_TO_REL = VAU_PATH_CUBIC_TO | VAU_PATH_RELATIVE, 590 VAU_PATH_SQUAD_TO_ABS = VAU_PATH_SQUAD_TO | VAU_PATH_ABSOLUTE, 591 VAU_PATH_SQUAD_TO_REL = VAU_PATH_SQUAD_TO | VAU_PATH_RELATIVE, 592 VAU_PATH_SCUBIC_TO_ABS = VAU_PATH_SCUBIC_TO | VAU_PATH_ABSOLUTE, 593 VAU_PATH_SCUBIC_TO_REL = VAU_PATH_SCUBIC_TO | VAU_PATH_RELATIVE, 594 VAU_PATH_SCCWARC_TO_ABS = VAU_PATH_SCCWARC_TO | VAU_PATH_ABSOLUTE, 595 VAU_PATH_SCCWARC_TO_REL = VAU_PATH_SCCWARC_TO | VAU_PATH_RELATIVE, 596 VAU_PATH_SCWARC_TO_ABS = VAU_PATH_SCWARC_TO | VAU_PATH_ABSOLUTE, 597 VAU_PATH_SCWARC_TO_REL = VAU_PATH_SCWARC_TO | VAU_PATH_RELATIVE, 598 VAU_PATH_LCCWARC_TO_ABS = VAU_PATH_LCCWARC_TO | VAU_PATH_ABSOLUTE, 599 VAU_PATH_LCCWARC_TO_REL = VAU_PATH_LCCWARC_TO | VAU_PATH_RELATIVE, 600 VAU_PATH_LCWARC_TO_ABS = VAU_PATH_LCWARC_TO | VAU_PATH_ABSOLUTE, 601 VAU_PATH_LCWARC_TO_REL = VAU_PATH_LCWARC_TO | VAU_PATH_RELATIVE, 602 VAU_PATH_MAX = 0xFF 603 } vau_path_cmd; 604 605 /** 606 * @if Eng 607 * @brief Path 608 * @else 609 * @brief 路径 610 * @endif 611 */ 612 typedef struct { 613 ext_cmd_count cmd_count; /*!< @if Eng Indicates the number of trails.. 614 @else 路径条数提示值 endif */ 615 td_uchar *cmds; /*!< @if Eng Path command word array. 616 @else 路径命令字数组 endif */ 617 td_u32 cmd_num; /*!< @if Eng Number of command words. 618 @else 命令字的个数 endif */ 619 td_float *datas; /*!< @if Eng Coordinate data array. 620 @else 坐标数据数组 endif */ 621 td_u32 data_num; /*!< @if Eng Coordinate array array length. 622 @else 坐标数组数组长度 endif */ 623 } ext_vau_path; 624 625 typedef enum { 626 EXT_VAU_REFLECT_MODE_X = 0x1, 627 EXT_VAU_REFLECT_MODE_Y = 0x2, 628 EXT_VAU_REFLECT_MODE_XY = 0x4, 629 } ext_vau_reflect_mode; 630 631 /** 632 * @if Eng 633 * @brief affine mode. 634 * @else 635 * @brief 仿射变换模式 636 * @endif 637 */ 638 typedef enum { 639 EXT_VAU_AFFINE_MODE_TRANSLATE = 0x1, 640 EXT_VAU_AFFINE_MODE_ZOOM = 0x2, 641 EXT_VAU_AFFINE_MODE_ROTATE = 0x4, 642 EXT_VAU_AFFINE_MODE_REFLECT = 0x8, 643 EXT_VAU_AFFINE_MODE_SHEARING = 0x10, 644 EXT_VAU_AFFINE_MODE_USE_COEF = 0x20, 645 } ext_vau_affine_mode; 646 647 /** 648 * @if Eng 649 * @brief Crop mode. 650 * @else 651 * @brief 剪切模式 652 * @endif 653 */ 654 typedef enum { 655 EXT_VAU_CROP_INSIDE, 656 EXT_VAU_CROP_OUTSIDE, 657 EXT_VAU_CROP_MAX 658 } ext_vau_crop_mode; 659 660 /** 661 * @if Eng 662 * @brief Crop Attributes. 663 * @else 664 * @brief 剪切属性 665 * @endif 666 */ 667 typedef struct { 668 td_bool crop_en; 669 ext_vau_crop_mode crop_mode; 670 ext_rect crop_rect; 671 } ext_vau_crop_attr; 672 673 /** 674 * @if Eng 675 * @brief Transfer Attributes. 676 * @else 677 * @brief 转移属性 678 * @endif 679 */ 680 typedef struct { 681 td_bool enable; 682 td_s32 x; 683 td_s32 y; 684 } ext_vau_trans_attr; 685 686 /** 687 * @if Eng 688 * @brief Rop mode. 689 * @else 690 * @brief rop模式 691 * @endif 692 */ 693 typedef enum { 694 EXT_VAU_ROP_BLACK = 0x0, /*!< @if Eng Write all 0s. 695 @else 写为全0 @endif */ 696 EXT_VAU_ROP_NOTMERGEPEN, /*!< @if Eng Foreground and Background are first or then reversed. 697 @else 前景与后景先作或再取反 @endif */ 698 EXT_VAU_ROP_MASKNOTPEN, /*!< @if Eng Reversing the foreground and re-anding the background. 699 @else 前景取反再与后景相与 @endif */ 700 EXT_VAU_ROP_NOTCOPYPEN, /*!< @if Eng foreground inversion. 701 @else 前景取反 @endif */ 702 EXT_VAU_ROP_MASKPENNOT, /*!< @if Eng Inversion of the background and re-parametering of the foreground. 703 @else 后景取反再与前景相与 @endif */ 704 EXT_VAU_ROP_NOT, /*!< @if Eng foreground inversion. 705 @else 前景取反 @endif */ 706 EXT_VAU_ROP_XORPEN, /*!< @if Eng XOR between foreground and background. 707 @else 前景与后景取异或 @endif */ 708 EXT_VAU_ROP_NOTMASKPEN, /*!< @if Eng Reversal of the foreground and the background. 709 @else 前景与后景相与后取反 @endif */ 710 EXT_VAU_ROP_MASKPEN, /*!< @if Eng The and operation of foreground and background. 711 @else 前景与后景相与 @endif */ 712 EXT_VAU_ROP_NOTXORPEN, /*!< @if Eng Inversion after XOR of foreground and background. 713 @else 前景与后景异或后取反 @endif */ 714 EXT_VAU_ROP_NOP, /*!< @if Eng Directly output background. 715 @else 直接输出背景 @endif */ 716 EXT_VAU_ROP_MERGENOTPEN, /*!< @if Eng Reversing the foreground and then ORing the background. 717 @else 前景取反再与后景相或 @endif */ 718 EXT_VAU_ROP_COPYPEN, /*!< @if Eng Direct output foreground. 719 @else 直接输出前景 @endif */ 720 EXT_VAU_ROP_MERGEPENNOT, /*!< @if Eng The background scene is reversed and then ORed with the foreground. 721 @else 背景景取反再与前景相或 @endif */ 722 EXT_VAU_ROP_MERGEPEN, /*!< @if Eng The foreground is ordained with the background. 723 @else 前景与后景相或 @endif */ 724 EXT_VAU_ROP_WHITE, /*!< @if Eng Write all 1s. 725 @else 写为全1 @endif */ 726 EXT_VAU_ROP_MAX /*!< @if Eng Invalid value. 727 @else 无效值 @endif */ 728 } ext_vau_rop_mode; 729 730 /** 731 * @if Eng 732 * @brief ROP information configuration. 733 * @else 734 * @brief rop信息配置 735 * @endif 736 */ 737 typedef struct { 738 td_bool rop_enable; /*!< @if Eng ROP enable. 739 @else rop使能 @endif */ 740 ext_vau_rop_mode alpha_rop_mode; /*!< @if Eng Alpha rop mode. 741 @else alpha rop模式 @endif */ 742 ext_vau_rop_mode color_rop_mode; /*!< @if Eng Color rop mode. 743 @else color rop模式 @endif */ 744 } ext_vau_rop_opt; 745 746 /** 747 * @if Eng 748 * @brief colorkey schematic attribute. 749 * @else 750 * @brief colorkey模式属性 751 * @endif 752 */ 753 typedef enum { 754 EXT_VAU_COLORKEY_NONE = 0, /*!< @if Eng Do not perform the colorkey operation. 755 @else 不做colorkey操作 @endif */ 756 EXT_VAU_COLORKEY_FOREGROUND, /*!< @if Eng Perform the colorkey operation on the foreground bitmap. 757 @else 对前景位图进行colorkey操作 @endif */ 758 EXT_VAU_COLORKEY_BACKGROUND, /*!< @if Eng Perform the colorkey operation on the background bitmap. 759 @else 对背景位图进行colorkey操作 @endif */ 760 EXT_VAU_COLORKEY_MAX /*!< @if Eng Invalid colorkey mode. 761 @else 无效的colorkey模式 @endif */ 762 } ext_vau_colorkey_mode; 763 764 /** 765 * @if Eng 766 * @brief Color key attributes for individual color components. 767 * @else 768 * @brief 单个颜色分量的关键色属性 769 * @endif 770 */ 771 typedef struct { 772 td_u16 component_min; /*!< @if Eng Minimum value of component color keys . 773 @else 分量关键色最小值 @endif */ 774 td_u16 component_max; /*!< @if Eng Maximum value of component color key . 775 @else 分量关键色最大值 @endif */ 776 td_bool is_component_out; /*!< @if Eng Component key is in or out of range . 777 @else 分量关键色在范围内或范围外 @endif */ 778 td_bool is_component_ignore; /*!< @if Eng Ignore Component . 779 @else 分量是否忽略 @endif */ 780 td_u16 component_mask; /*!< @if Eng Component mask. Currently, the value is meaningless and ranges from 0 to 255. 781 @else 分量掩码,目前该值无意义,0~255均可 @endif */ 782 } ext_vau_colorkey_component; 783 784 /** 785 * @if Eng 786 * @brief Colorkey value. 787 * @else 788 * @brief Colorkey值 789 * @endif 790 */ 791 typedef union { 792 struct { 793 ext_vau_colorkey_component alpha; /*!< @if Eng Alpha value . 794 @else alpha 值 @endif */ 795 ext_vau_colorkey_component red; /*!< @if Eng Red component . 796 @else 红色分量 @endif */ 797 ext_vau_colorkey_component green; /*!< @if Eng Green component . 798 @else 绿色分量 @endif */ 799 ext_vau_colorkey_component blue; /*!< @if Eng Blue component . 800 @else 蓝色分量 @endif */ 801 } colorkey_argb; 802 803 struct { 804 ext_vau_colorkey_component alpha; 805 ext_vau_colorkey_component clut; 806 } colorkey_clut; /*!< @if Eng The ES does not support this function . 807 @else ES暂时不支持 @endif */ 808 } ext_vau_colorkey_value; 809 810 /** 811 * @if Eng 812 * @brief Configuring Colorkey Information. 813 * @else 814 * @brief Colorkey信息配置 815 * @endif 816 */ 817 typedef struct { 818 td_bool colorkey_enable; /*!< @if Eng Colorkey enable . 819 @else Colorkey使能 @endif */ 820 ext_vau_colorkey_mode colorkey_mode; /*!< @if Eng Colorkey mode. 821 @else Colorkey模式 @endif */ 822 ext_vau_colorkey_value colorkey_value; /*!< @if Eng Colorkey value. 823 @else Colorkey值 @endif */ 824 } ext_vau_colorkey_opt; 825 826 /** 827 * @if Eng 828 * @brief Blend mode. 829 * @else 830 * @brief 混合模式 831 * @endif 832 */ 833 typedef enum { 834 EXT_VAU_BLEND_ZERO = 0x0, 835 EXT_VAU_BLEND_ONE, 836 EXT_VAU_BLEND_SRC2COLOR, 837 EXT_VAU_BLEND_INVSRC2COLOR, 838 EXT_VAU_BLEND_SRC2ALPHA, 839 EXT_VAU_BLEND_INVSRC2ALPHA, 840 EXT_VAU_BLEND_SRC1COLOR, 841 EXT_VAU_BLEND_INVSRC1COLOR, 842 EXT_VAU_BLEND_SRC1ALPHA, 843 EXT_VAU_BLEND_INVSRC1ALPHA, 844 EXT_VAU_BLEND_SRC2ALPHASAT, 845 EXT_VAU_BLEND_MAX 846 } ext_vau_blend_mode; 847 848 /** 849 * @if Eng 850 * @brief Blend command. 851 * @else 852 * @brief 混合命令 853 * @endif 854 */ 855 typedef enum { 856 EXT_VAU_BLENDCMD_NONE = 0x0, /*!< @if Eng Blend enable. 857 @else blend使能 @endif */ 858 EXT_VAU_BLENDCMD_CLEAR, /*!< @if Eng The drawing will not be submitted to the canvas. 859 @else 所绘制不会提交到画布上 @endif */ 860 EXT_VAU_BLENDCMD_SRC, /*!< @if Eng Display upper-layer drawing picture. 861 @else 显示上层绘制图片 @endif */ 862 EXT_VAU_BLENDCMD_SRCOVER, /*!< @if Eng The upper and lower layers are overlapped. 863 @else 正常绘制显示,上下层绘制叠盖 @endif */ 864 EXT_VAU_BLENDCMD_DSTOVER, /*!< @if Eng Both the upper and lower levels are displayed. Lower top display. 865 @else 上下层都显示。下层居上显示 @endif */ 866 EXT_VAU_BLENDCMD_SRCIN, /*!< @if Eng Draw the intersection of two layers. Show the upper layer. 867 @else 取两层绘制交集。显示上层 @endif */ 868 EXT_VAU_BLENDCMD_DSTIN, /*!< @if Eng Draw the intersection of two layers. Show the lower layer. 869 @else 取两层绘制交集。显示下层 @endif */ 870 EXT_VAU_BLENDCMD_SRCOUT, /*!< @if Eng Draw the non-intersection part from the upper layer. 871 @else 取上层绘制非交集部分 @endif */ 872 EXT_VAU_BLENDCMD_DSTOUT, /*!< @if Eng Draw the non-intersection part from the lower layer. 873 @else 取下层绘制非交集部分 @endif */ 874 EXT_VAU_BLENDCMD_SRCATOP, /*!< @if Eng The non-intersection part of the lower layer and 875 the intersection part of the upper layer are selected. 876 @else 取下层非交集部分与上层交集部分 @endif */ 877 EXT_VAU_BLENDCMD_DSTATOP, /*!< @if Eng The non-intersection part of the upper layer and 878 the intersection part of the lower layer are selected. 879 @else 取上层非交集部分与下层交集部分 @endif */ 880 EXT_VAU_BLENDCMD_ADD, /*!< @if Eng The upper and lower layers are superimposed on CNend. 881 @else 上下两层叠加 @endif */ 882 EXT_VAU_BLENDCMD_XOR, /*!< @if Eng Take two layers to draw non-intersections. 883 Two-layer drawing non-intersection. 884 @else 取两层绘制非交集。两层绘制非交集 @endif */ 885 EXT_VAU_BLENDCMD_DST, /*!< @if Eng Display lower-layer drawing picture. 886 @else 显示下层绘制图片 @endif */ 887 EXT_VAU_BLENDCMD_CONFIG, /*!< @if Eng configuration. 888 @else 配置 @endif */ 889 EXT_VAU_BLENDCMD_MAX /*!< @if Eng Invalid value. 890 @else 无效值 @endif */ 891 } ext_vau_blend_cmd; 892 893 /** 894 * @if Eng 895 * @brief Blend alpha mode. 896 * @else 897 * @brief blend alpha模式 898 * @endif 899 */ 900 typedef enum { 901 EXT_VAU_OUTALPHA_FROM_NORM = 0, /*!< @if Eng alpha from superposition formula. 902 @else alpha来自叠加公式 @endif */ 903 EXT_VAU_OUTALPHA_FROM_BACKGROUND, /*!< @if Eng alpha from the background. 904 @else alpha来自后景 @endif */ 905 EXT_VAU_OUTALPHA_FROM_FOREGROUND, /*!< @if Eng alpha from foreground. 906 @else alpha来自前景 @endif */ 907 EXT_VAU_OUTALPHA_FROM_GLOBALALPHA, /*!< @if Eng alpha from global alpha. 908 @else alpha来自全局alpha @endif */ 909 EXT_VAU_OUTALPHA_FROM_MAX /*!< @if Eng Invalid value. 910 @else 无效值 @endif */ 911 } ext_vau_out_alpha_mode; 912 913 /** 914 * @if Eng 915 * @brief Compressed header information. 916 * @else 917 * @brief 压缩头信息 918 * @endif 919 */ 920 typedef struct { 921 td_u32 version; /*!< @if Eng 0:ES, 1:CS. 922 @else 0:ES, 1:CS @endif */ 923 td_u32 alpha_bypass; /*!< @if Eng Indicates whether to enable compression for the alpha channel. 924 The options are as follows: 0: yes; 1: no. 925 @else Alpha通道是否压缩的使能配置,配置参数: 926 0:进行压缩 1:不进行压缩 @endif */ 927 td_u32 width; /*!< @if Eng Image width configuration; 1-pixel aligned, 4 min., 640 max. 928 @else 图像宽度配置;1pixel对齐,最小4,最大640 @endif */ 929 td_u32 height; /*!< @if Eng Image height configuration; 1-pixel aligned, 4 min., 640 max. 930 @else 图像高度配置;1pixel对齐,最小4, 最大640 @endif */ 931 td_u32 stride; /*!< @if Eng Size of a tile line after compression, in bytes. 932 @else TILE行压缩后的大小,以byte为单位 @endif */ 933 td_u32 pixel_format; /*!< @if Eng Image format (The ES supports only rgb888 and argb8888.). 934 @else 图片格式(ES只支持rgb888,argb8888) @endif */ 935 td_u32 tile_size; /*!< @if Eng tile size, in 64bits. 936 @else 无效值 @endif */ 937 td_u32 alpha_value; /*!< @if Eng 0:ALPHA rand value; 1:ALPHA all 0;2:ALPHA all 255; 3:ALPHA 0 and 255. 938 @else 0:ALPHA rand value; 1:ALPHA all 0;2:ALPHA all 255; 3:ALPHA 0 and 255 @endif */ 939 td_u32 mode; /*!< @if Eng Compression enable flag. 940 @else 压缩使能标志位:0-cmp 1-bypass @endif */ 941 td_s32 tile_width; /*!< @if Eng Compression ratio. 942 @else 压缩倍率 @endif */ 943 } ext_vau_cmp_header; 944 945 /** 946 * @if Eng 947 * @brief blend Information Configuration. 948 * @else 949 * @brief 混合信息配置 950 * @endif 951 */ 952 typedef struct { 953 td_bool blend_enable; /*!< @if Eng blend enable. 954 @else blend使能 @endif */ 955 ext_vau_blend_cmd blend_cmd; /*!< @if Eng blend commend. 956 @else blend命令 @endif */ 957 ext_vau_blend_mode background_blend_mode; /*!< @if Eng Customized blend mode. 958 @else 自定义blend模式 @endif */ 959 ext_vau_blend_mode foreground_blend_mode; /*!< @if Eng Customized blend mode. 960 @else 自定义blend模式 @endif */ 961 ext_vau_out_alpha_mode out_alpha_mode; /*!< @if Eng Alpha Overlay Mode. 962 @else alpha叠加模式 @endif */ 963 } ext_vau_blend_opt; 964 965 /** 966 * @if Eng 967 * @brief Gaussian fuzzy parameter. 968 * @else 969 * @brief 高斯模糊参数 970 * @endif 971 */ 972 typedef struct { 973 td_float x_sigma; 974 td_float y_sigma; 975 td_bool alpha_gaussian; 976 } ext_vau_gaussian_para; 977 978 /** 979 * @if Eng 980 * @brief Gaussian Fuzzy Mode Attributes. 981 * @else 982 * @brief 高斯模糊模式属性 983 * @endif 984 */ 985 typedef struct { 986 td_bool blur_en; /*!< @if Eng enable. 987 @else 使能 @endif */ 988 ext_vau_blur_mode blur_mode; /*!< @if Eng Gaussian fuzzy model. 989 @else 高斯模糊模式 @endif */ 990 ext_vau_gaussian_para gaussian_attr; /*!< @if Eng Gaussian fuzzy parameter. 991 @else 高斯模糊参数 @endif */ 992 } ext_vau_blur_opt; 993 994 /** 995 * @if Eng 996 * @brief draw attribution. 997 * @else 998 * @brief 绘制属性 999 * @endif 1000 */ 1001 typedef struct { 1002 ext_vau_path *path; 1003 ext_vau_paint *paint; 1004 } ext_vau_draw_attr; 1005 1006 /** 1007 * @if Eng 1008 * @brief Rendering Options. 1009 * @else 1010 * @brief 渲染选项 1011 * @endif 1012 */ 1013 typedef struct { 1014 ext_vau_rop_opt rop_opt; /*!< @if Eng rop mode attribute. 1015 @else rop 模式属性 @endif */ 1016 ext_vau_colorkey_opt colorkey_opt; /*!< @if Eng colorkey mode attribute. 1017 @else colorkey 模式属性 @endif */ 1018 ext_vau_blend_opt blend_opt; /*!< @if Eng blen mode attribute. 1019 @else blend 模式属性 @endif */ 1020 ext_vau_blur_opt blur_opt; /*!< @if Eng Blur mode attribute (not supported currently). 1021 @else blur 模式属性(暂不支持) @endif */ 1022 } ext_vau_blit_opt; 1023 1024 /** 1025 * @if Eng 1026 * @brief Pattern mode. 1027 * @else 1028 * @brief 图案填充模式 1029 * @endif 1030 */ 1031 typedef enum { 1032 EXT_VAU_PATTERN_DISABLE = 0x0, /*!< @if Eng Disable. 1033 @else 不使能 @endif */ 1034 EXT_VAU_PATTERN_FILL = 0x1, /*!< @if Eng pattern Fill. 1035 @else fill填充 @endif */ 1036 EXT_VAU_PATTERN_PAD = 0x2, /*!< @if Eng pattern pad. 1037 @else pad填充 @endif */ 1038 } ext_vau_pattern_mode; 1039 1040 /** 1041 * @if Eng 1042 * @brief Pattern attribution. 1043 * @else 1044 * @brief 图案填充属性 1045 * @endif 1046 */ 1047 typedef struct { 1048 ext_vau_pattern_mode mode; /*!< @if Eng Pattern attribution. 1049 @else 图案填充属性 @endif */ 1050 td_u32 argb; /*!< @if Eng fill color. 1051 @else 填充颜色 @endif */ 1052 } ext_vau_pattern_attr; 1053 1054 /** 1055 * @if Eng 1056 * @brief Layer information required for executing the vau task. 1057 * @else 1058 * @brief 执行vau任务需要的图层信息 1059 * @endif 1060 */ 1061 typedef struct { 1062 td_u32 width; /*!< @if Eng surface Width,Unit: number of pixels. 1063 @else surface宽度, 单位:像素数 @endif */ 1064 td_u32 height; /*!< @if Eng surface height,Unit: number of pixels. 1065 @else surface高度, 单位:像素数 @endif */ 1066 td_u32 stride; /*!< @if Eng Buffer line spacing. 1067 @else buffer行间距 @endif */ 1068 td_u32 phy_addr; /*!< @if Eng Physical address of the surface. 1069 @else surface物理地址 @endif */ 1070 td_u32 clut_addr; /*!< @if Eng Color Lookup Table Address. 1071 @else 颜色查找表地址 @endif */ 1072 td_uchar *vir_addr; /*!< @if Eng Surface virtual address. 1073 @else surface虚拟地址 @endif */ 1074 ext_gfx_fmt color_fmt; /*!< @if Eng Color Formatting. 1075 @else 颜色格式 @endif */ 1076 ext_gfx_argb_order argb_order; /*!< @if Eng Argb color format component layout. 1077 @else argb颜色格式分量排布 @endif */ 1078 td_bool is_color_surface; /*!< @if Eng Solid color filling. 1079 @else 是否纯色填充 @endif */ 1080 td_u32 color; /*!< @if Eng Fill color corresponding to solid fill. 1081 @else 纯色填充对应的填充颜色 @endif */ 1082 ext_gfx_compress_mode compress_mode; /*!< @if Eng Data Compression Type. 1083 @else 数据压缩类型 @endif */ 1084 ext_vau_alpha_info alpha_info; /*!< @if Eng Alpha Attribute. 1085 @else alpha属性配置 @endif */ 1086 ext_rect rect; /*!< @if Eng Overlay area of the source. 1087 @else 源的叠加区域 @endif */ 1088 ext_rect out_rect; /*!< @if Eng Target region superimposed with this source. 1089 @else 与该源叠加的目标区域 @endif */ 1090 ext_vau_matrix *matrix; /*!< @if Eng Affine transformation matrix information. 1091 @else 仿射变换矩阵信息 @endif */ 1092 ext_vau_pattern_attr *pattern; /*!< @if Eng The pattern function is valid only when the matrix is not empty. 1093 (The ES is not used currently.). 1094 @else pattern功能只有在matrix不为空的时候才有效(ES暂未使用) @endif */ 1095 ext_vau_draw_attr *draw; /*!< @if Eng The ES is not used currently. 1096 @else ES暂未使用 @endif */ 1097 } ext_vau_surface; 1098 1099 /** 1100 * @if Eng 1101 * @brief Layer information required for executing the vau task. 1102 * @else 1103 * @brief 执行vau任务需要的图层信息 1104 * @endif 1105 */ 1106 typedef struct { 1107 td_u32 src_surface_cnt; /*!< @if Eng Number of source surfaces. 1108 @else 源surface的个数 @endif */ 1109 ext_vau_surface *src_surface; /*!< @if Eng Source surface. 1110 @else 源surface @endif */ 1111 ext_vau_surface *dst_surface; /*!< @if Eng Target surface. 1112 @else 目标surface @endif */ 1113 ext_vau_blit_opt *opt; /*!< @if Eng Configuration attributes of overlay, rop, and colorkey operations. 1114 @else 叠加、rop、colorkey的操作配置属性 @endif */ 1115 } ext_vau_surface_list; 1116 1117 /** 1118 * @} 1119 */ 1120 1121 #ifdef __cplusplus 1122 #if __cplusplus 1123 } 1124 #endif 1125 #endif 1126 1127 #endif /* SOC_VAU_TYPE_H */ 1128