ENGR00156850 gpu-viv: add gpu-viv driver source
[wandboard.git] / drivers / mxc / gpu-viv / hal / kernel / inc / gc_hal_engine_vg.h
blob27241935df78ca18a7b6c3f6bc8195172860f287
1 /****************************************************************************
3 * Copyright (C) 2005 - 2011 by Vivante Corp.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the license, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *****************************************************************************/
26 #ifndef __gc_hal_engine_vg_h_
27 #define __gc_hal_engine_vg_h_
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
33 #include "gc_hal_types.h"
35 /******************************************************************************\
36 ******************************** VG Enumerations *******************************
37 \******************************************************************************/
39 /**
40 ** @ingroup gcoVG
42 ** @brief Tiling mode for painting and imagig.
44 ** This enumeration defines the tiling modes supported by the HAL. This is
45 ** in fact a one-to-one mapping of the OpenVG 1.1 tile modes.
47 typedef enum _gceTILE_MODE
49 gcvTILE_FILL,
50 gcvTILE_PAD,
51 gcvTILE_REPEAT,
52 gcvTILE_REFLECT
54 gceTILE_MODE;
56 /******************************************************************************/
57 /** @ingroup gcoVG
59 ** @brief The different paint modes.
61 ** This enumeration lists the available paint modes.
63 typedef enum _gcePAINT_TYPE
65 /** Solid color. */
66 gcvPAINT_MODE_SOLID,
68 /** Linear gradient. */
69 gcvPAINT_MODE_LINEAR,
71 /** Radial gradient. */
72 gcvPAINT_MODE_RADIAL,
74 /** Pattern. */
75 gcvPAINT_MODE_PATTERN,
77 /** Mode count. */
78 gcvPAINT_MODE_COUNT
80 gcePAINT_TYPE;
82 /**
83 ** @ingroup gcoVG
85 ** @brief Types of path data supported by HAL.
87 ** This enumeration defines the types of path data supported by the HAL.
88 ** This is in fact a one-to-one mapping of the OpenVG 1.1 path types.
90 typedef enum _gcePATHTYPE
92 gcePATHTYPE_UNKNOWN = -1,
93 gcePATHTYPE_INT8,
94 gcePATHTYPE_INT16,
95 gcePATHTYPE_INT32,
96 gcePATHTYPE_FLOAT
98 gcePATHTYPE;
101 ** @ingroup gcoVG
103 ** @brief Supported path segment commands.
105 ** This enumeration defines the path segment commands supported by the HAL.
107 typedef enum _gceVGCMD
109 gcvVGCMD_END, /* 0: GCCMD_TS_OPCODE_END */
110 gcvVGCMD_CLOSE, /* 1: GCCMD_TS_OPCODE_CLOSE */
111 gcvVGCMD_MOVE, /* 2: GCCMD_TS_OPCODE_MOVE */
112 gcvVGCMD_MOVE_REL, /* 3: GCCMD_TS_OPCODE_MOVE_REL */
113 gcvVGCMD_LINE, /* 4: GCCMD_TS_OPCODE_LINE */
114 gcvVGCMD_LINE_REL, /* 5: GCCMD_TS_OPCODE_LINE_REL */
115 gcvVGCMD_QUAD, /* 6: GCCMD_TS_OPCODE_QUADRATIC */
116 gcvVGCMD_QUAD_REL, /* 7: GCCMD_TS_OPCODE_QUADRATIC_REL */
117 gcvVGCMD_CUBIC, /* 8: GCCMD_TS_OPCODE_CUBIC */
118 gcvVGCMD_CUBIC_REL, /* 9: GCCMD_TS_OPCODE_CUBIC_REL */
119 gcvVGCMD_BREAK, /* 10: GCCMD_TS_OPCODE_BREAK */
120 gcvVGCMD_HLINE, /* 11: ******* R E S E R V E D *******/
121 gcvVGCMD_HLINE_REL, /* 12: ******* R E S E R V E D *******/
122 gcvVGCMD_VLINE, /* 13: ******* R E S E R V E D *******/
123 gcvVGCMD_VLINE_REL, /* 14: ******* R E S E R V E D *******/
124 gcvVGCMD_SQUAD, /* 15: ******* R E S E R V E D *******/
125 gcvVGCMD_SQUAD_REL, /* 16: ******* R E S E R V E D *******/
126 gcvVGCMD_SCUBIC, /* 17: ******* R E S E R V E D *******/
127 gcvVGCMD_SCUBIC_REL, /* 18: ******* R E S E R V E D *******/
128 gcvVGCMD_SCCWARC, /* 19: ******* R E S E R V E D *******/
129 gcvVGCMD_SCCWARC_REL, /* 20: ******* R E S E R V E D *******/
130 gcvVGCMD_SCWARC, /* 21: ******* R E S E R V E D *******/
131 gcvVGCMD_SCWARC_REL, /* 22: ******* R E S E R V E D *******/
132 gcvVGCMD_LCCWARC, /* 23: ******* R E S E R V E D *******/
133 gcvVGCMD_LCCWARC_REL, /* 24: ******* R E S E R V E D *******/
134 gcvVGCMD_LCWARC, /* 25: ******* R E S E R V E D *******/
135 gcvVGCMD_LCWARC_REL, /* 26: ******* R E S E R V E D *******/
137 /* The width of the command recognized by the hardware on bits. */
138 gcvVGCMD_WIDTH = 5,
140 /* Hardware command mask. */
141 gcvVGCMD_MASK = (1 << gcvVGCMD_WIDTH) - 1,
143 /* Command modifiers. */
144 gcvVGCMD_H_MOD = 1 << gcvVGCMD_WIDTH, /* = 32 */
145 gcvVGCMD_V_MOD = 2 << gcvVGCMD_WIDTH, /* = 64 */
146 gcvVGCMD_S_MOD = 3 << gcvVGCMD_WIDTH, /* = 96 */
147 gcvVGCMD_ARC_MOD = 4 << gcvVGCMD_WIDTH, /* = 128 */
149 /* Emulated LINE commands. */
150 gcvVGCMD_HLINE_EMUL = gcvVGCMD_H_MOD | gcvVGCMD_LINE, /* = 36 */
151 gcvVGCMD_HLINE_EMUL_REL = gcvVGCMD_H_MOD | gcvVGCMD_LINE_REL, /* = 37 */
152 gcvVGCMD_VLINE_EMUL = gcvVGCMD_V_MOD | gcvVGCMD_LINE, /* = 68 */
153 gcvVGCMD_VLINE_EMUL_REL = gcvVGCMD_V_MOD | gcvVGCMD_LINE_REL, /* = 69 */
155 /* Emulated SMOOTH commands. */
156 gcvVGCMD_SQUAD_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD, /* = 102 */
157 gcvVGCMD_SQUAD_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_QUAD_REL, /* = 103 */
158 gcvVGCMD_SCUBIC_EMUL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC, /* = 104 */
159 gcvVGCMD_SCUBIC_EMUL_REL = gcvVGCMD_S_MOD | gcvVGCMD_CUBIC_REL, /* = 105 */
161 /* Emulation ARC commands. */
162 gcvVGCMD_ARC_LINE = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE, /* = 132 */
163 gcvVGCMD_ARC_LINE_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_LINE_REL, /* = 133 */
164 gcvVGCMD_ARC_QUAD = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD, /* = 134 */
165 gcvVGCMD_ARC_QUAD_REL = gcvVGCMD_ARC_MOD | gcvVGCMD_QUAD_REL /* = 135 */
167 gceVGCMD;
168 typedef enum _gceVGCMD * gceVGCMD_PTR;
171 ** @ingroup gcoVG
173 ** @brief Blending modes supported by the HAL.
175 ** This enumeration defines the blending modes supported by the HAL. This is
176 ** in fact a one-to-one mapping of the OpenVG 1.1 blending modes.
178 typedef enum _gceVG_BLEND
180 gcvVG_BLEND_SRC,
181 gcvVG_BLEND_SRC_OVER,
182 gcvVG_BLEND_DST_OVER,
183 gcvVG_BLEND_SRC_IN,
184 gcvVG_BLEND_DST_IN,
185 gcvVG_BLEND_MULTIPLY,
186 gcvVG_BLEND_SCREEN,
187 gcvVG_BLEND_DARKEN,
188 gcvVG_BLEND_LIGHTEN,
189 gcvVG_BLEND_ADDITIVE,
190 gcvVG_BLEND_SUBTRACT,
191 gcvVG_BLEND_FILTER
193 gceVG_BLEND;
196 ** @ingroup gcoVG
198 ** @brief Image modes supported by the HAL.
200 ** This enumeration defines the image modes supported by the HAL. This is
201 ** in fact a one-to-one mapping of the OpenVG 1.1 image modes with the addition
202 ** of NO IMAGE.
204 typedef enum _gceVG_IMAGE
206 gcvVG_IMAGE_NONE,
207 gcvVG_IMAGE_NORMAL,
208 gcvVG_IMAGE_MULTIPLY,
209 gcvVG_IMAGE_STENCIL,
210 gcvVG_IMAGE_FILTER
212 gceVG_IMAGE;
215 ** @ingroup gcoVG
217 ** @brief Filter mode patterns and imaging.
219 ** This enumeration defines the filter modes supported by the HAL.
221 typedef enum _gceIMAGE_FILTER
223 gcvFILTER_POINT,
224 gcvFILTER_LINEAR,
225 gcvFILTER_BI_LINEAR
227 gceIMAGE_FILTER;
230 ** @ingroup gcoVG
232 ** @brief Primitive modes supported by the HAL.
234 ** This enumeration defines the primitive modes supported by the HAL.
236 typedef enum _gceVG_PRIMITIVE
238 gcvVG_SCANLINE,
239 gcvVG_RECTANGLE,
240 gcvVG_TESSELLATED,
241 gcvVG_TESSELLATED_TILED
243 gceVG_PRIMITIVE;
246 ** @ingroup gcoVG
248 ** @brief Rendering quality modes supported by the HAL.
250 ** This enumeration defines the rendering quality modes supported by the HAL.
252 typedef enum _gceRENDER_QUALITY
254 gcvVG_NONANTIALIASED,
255 gcvVG_2X2_MSAA,
256 gcvVG_2X4_MSAA,
257 gcvVG_4X4_MSAA
259 gceRENDER_QUALITY;
262 ** @ingroup gcoVG
264 ** @brief Fill rules supported by the HAL.
266 ** This enumeration defines the fill rules supported by the HAL.
268 typedef enum _gceFILL_RULE
270 gcvVG_EVEN_ODD,
271 gcvVG_NON_ZERO
273 gceFILL_RULE;
276 ** @ingroup gcoVG
278 ** @brief Cap styles supported by the HAL.
280 ** This enumeration defines the cap styles supported by the HAL.
282 typedef enum _gceCAP_STYLE
284 gcvCAP_BUTT,
285 gcvCAP_ROUND,
286 gcvCAP_SQUARE
288 gceCAP_STYLE;
291 ** @ingroup gcoVG
293 ** @brief Join styles supported by the HAL.
295 ** This enumeration defines the join styles supported by the HAL.
297 typedef enum _gceJOIN_STYLE
299 gcvJOIN_MITER,
300 gcvJOIN_ROUND,
301 gcvJOIN_BEVEL
303 gceJOIN_STYLE;
306 ** @ingroup gcoVG
308 ** @brief Channel mask values.
310 ** This enumeration defines the values for channel mask used in image
311 ** filtering.
314 /* Base values for channel mask definitions. */
315 #define gcvCHANNEL_X (0)
316 #define gcvCHANNEL_R (1 << 0)
317 #define gcvCHANNEL_G (1 << 1)
318 #define gcvCHANNEL_B (1 << 2)
319 #define gcvCHANNEL_A (1 << 3)
321 typedef enum _gceCHANNEL
323 gcvCHANNEL_XXXX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
324 gcvCHANNEL_XXXA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
325 gcvCHANNEL_XXBX = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
326 gcvCHANNEL_XXBA = (gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
328 gcvCHANNEL_XGXX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
329 gcvCHANNEL_XGXA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
330 gcvCHANNEL_XGBX = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
331 gcvCHANNEL_XGBA = (gcvCHANNEL_X | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
333 gcvCHANNEL_RXXX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_X),
334 gcvCHANNEL_RXXA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_X | gcvCHANNEL_A),
335 gcvCHANNEL_RXBX = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_X),
336 gcvCHANNEL_RXBA = (gcvCHANNEL_R | gcvCHANNEL_X | gcvCHANNEL_B | gcvCHANNEL_A),
338 gcvCHANNEL_RGXX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_X),
339 gcvCHANNEL_RGXA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_X | gcvCHANNEL_A),
340 gcvCHANNEL_RGBX = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_X),
341 gcvCHANNEL_RGBA = (gcvCHANNEL_R | gcvCHANNEL_G | gcvCHANNEL_B | gcvCHANNEL_A),
343 gceCHANNEL;
345 /******************************************************************************\
346 ******************************** VG Structures *******************************
347 \******************************************************************************/
350 ** @ingroup gcoVG
352 ** @brief Definition of the color ramp used by the gradient paints.
354 ** The gcsCOLOR_RAMP structure defines the layout of one single color inside
355 ** a color ramp which is used by gradient paints.
357 typedef struct _gcsCOLOR_RAMP
359 /** Value for the color stop. */
360 gctFLOAT stop;
362 /** Red color channel value for the color stop. */
363 gctFLOAT red;
365 /** Green color channel value for the color stop. */
366 gctFLOAT green;
368 /** Blue color channel value for the color stop. */
369 gctFLOAT blue;
371 /** Alpha color channel value for the color stop. */
372 gctFLOAT alpha;
374 gcsCOLOR_RAMP, * gcsCOLOR_RAMP_PTR;
377 ** @ingroup gcoVG
379 ** @brief Definition of the color ramp used by the gradient paints in fixed form.
381 ** The gcsCOLOR_RAMP structure defines the layout of one single color inside
382 ** a color ramp which is used by gradient paints.
384 typedef struct _gcsFIXED_COLOR_RAMP
386 /** Value for the color stop. */
387 gctFIXED_POINT stop;
389 /** Red color channel value for the color stop. */
390 gctFIXED_POINT red;
392 /** Green color channel value for the color stop. */
393 gctFIXED_POINT green;
395 /** Blue color channel value for the color stop. */
396 gctFIXED_POINT blue;
398 /** Alpha color channel value for the color stop. */
399 gctFIXED_POINT alpha;
401 gcsFIXED_COLOR_RAMP, * gcsFIXED_COLOR_RAMP_PTR;
405 ** @ingroup gcoVG
407 ** @brief Rectangle structure used by the gcoVG object.
409 ** This structure defines the layout of a rectangle. Make sure width and
410 ** height are larger than 0.
412 typedef struct _gcsVG_RECT * gcsVG_RECT_PTR;
413 typedef struct _gcsVG_RECT
415 /** Left location of the rectangle. */
416 gctINT x;
418 /** Top location of the rectangle. */
419 gctINT y;
421 /** Width of the rectangle. */
422 gctINT width;
424 /** Height of the rectangle. */
425 gctINT height;
427 gcsVG_RECT;
430 ** @ingroup gcoVG
432 ** @brief Path command buffer attribute structure.
434 ** The gcsPATH_BUFFER_INFO structure contains the specifics about
435 ** the layout of the path data command buffer.
437 typedef struct _gcsPATH_BUFFER_INFO * gcsPATH_BUFFER_INFO_PTR;
438 typedef struct _gcsPATH_BUFFER_INFO
440 gctUINT reservedForHead;
441 gctUINT reservedForTail;
443 gcsPATH_BUFFER_INFO;
446 ** @ingroup gcoVG
448 ** @brief Definition of the path data container structure.
450 ** The gcsPATH structure defines the layout of the path data container.
452 typedef struct _gcsPATH_DATA * gcsPATH_DATA_PTR;
453 typedef struct _gcsPATH_DATA
455 /* Data container in command buffer format. */
456 gcsCMDBUFFER data;
458 /* Path data type. */
459 gcePATHTYPE dataType;
461 gcsPATH_DATA;
464 /******************************************************************************\
465 ********************************* gcoHAL Object ********************************
466 \******************************************************************************/
468 /* Query path data storage attributes. */
469 gceSTATUS
470 gcoHAL_QueryPathStorage(
471 IN gcoHAL Hal,
472 OUT gcsPATH_BUFFER_INFO_PTR Information
475 /* Associate a completion signal with the command buffer. */
476 gceSTATUS
477 gcoHAL_AssociateCompletion(
478 IN gcoHAL Hal,
479 IN gcsPATH_DATA_PTR PathData
482 /* Release the current command buffer completion signal. */
483 gceSTATUS
484 gcoHAL_DeassociateCompletion(
485 IN gcoHAL Hal,
486 IN gcsPATH_DATA_PTR PathData
489 /* Verify whether the command buffer is still in use. */
490 gceSTATUS
491 gcoHAL_CheckCompletion(
492 IN gcoHAL Hal,
493 IN gcsPATH_DATA_PTR PathData
496 /* Wait until the command buffer is no longer in use. */
497 gceSTATUS
498 gcoHAL_WaitCompletion(
499 IN gcoHAL Hal,
500 IN gcsPATH_DATA_PTR PathData
503 /* Flush the pixel cache. */
504 gceSTATUS
505 gcoHAL_Flush(
506 IN gcoHAL Hal
509 /* Split a harwdare address into pool and offset. */
510 gceSTATUS
511 gcoHAL_SplitAddress(
512 IN gcoHAL Hal,
513 IN gctUINT32 Address,
514 OUT gcePOOL * Pool,
515 OUT gctUINT32 * Offset
518 /* Combine pool and offset into a harwdare address. */
519 gceSTATUS
520 gcoHAL_CombineAddress(
521 IN gcoHAL Hal,
522 IN gcePOOL Pool,
523 IN gctUINT32 Offset,
524 OUT gctUINT32 * Address
527 /* Schedule to free linear video memory allocated. */
528 gceSTATUS
529 gcoHAL_ScheduleVideoMemory(
530 IN gcoHAL Hal,
531 IN gcuVIDMEM_NODE_PTR Node
534 /* Free linear video memory allocated with gcoHAL_AllocateLinearVideoMemory. */
535 gceSTATUS
536 gcoHAL_FreeVideoMemory(
537 IN gcoHAL Hal,
538 IN gcuVIDMEM_NODE_PTR Node
541 /* Query command buffer attributes. */
542 gceSTATUS
543 gcoHAL_QueryCommandBuffer(
544 IN gcoHAL Hal,
545 OUT gcsCOMMAND_BUFFER_INFO_PTR Information
547 /* Allocate and lock linear video memory. */
548 gceSTATUS
549 gcoHAL_AllocateLinearVideoMemory(
550 IN gcoHAL Hal,
551 IN gctUINT Size,
552 IN gctUINT Alignment,
553 IN gcePOOL Pool,
554 OUT gcuVIDMEM_NODE_PTR * Node,
555 OUT gctUINT32 * Address,
556 OUT gctPOINTER * Memory
559 /* Align the specified size accordingly to the hardware requirements. */
560 gceSTATUS
561 gcoHAL_GetAlignedSurfaceSize(
562 IN gcoHAL Hal,
563 IN gceSURF_TYPE Type,
564 IN OUT gctUINT32_PTR Width,
565 IN OUT gctUINT32_PTR Height
568 gceSTATUS
569 gcoHAL_ReserveTask(
570 IN gcoHAL Hal,
571 IN gceBLOCK Block,
572 IN gctUINT TaskCount,
573 IN gctSIZE_T Bytes,
574 OUT gctPOINTER * Memory
576 /******************************************************************************\
577 ********************************** gcoVG Object ********************************
578 \******************************************************************************/
580 /** @defgroup gcoVG gcoVG
582 ** The gcoVG object abstracts the VG hardware pipe.
585 gctBOOL
586 gcoVG_IsMaskSupported(
587 IN gceSURF_FORMAT Format
590 gctBOOL
591 gcoVG_IsTargetSupported(
592 IN gceSURF_FORMAT Format
595 gctBOOL
596 gcoVG_IsImageSupported(
597 IN gceSURF_FORMAT Format
600 gctUINT8 gcoVG_PackColorComponent(
601 gctFLOAT Value
604 gceSTATUS
605 gcoVG_Construct(
606 IN gcoHAL Hal,
607 OUT gcoVG * Vg
610 gceSTATUS
611 gcoVG_Destroy(
612 IN gcoVG Vg
615 gceSTATUS
616 gcoVG_SetTarget(
617 IN gcoVG Vg,
618 IN gcoSURF Target
621 gceSTATUS
622 gcoVG_UnsetTarget(
623 IN gcoVG Vg,
624 IN gcoSURF Surface
627 gceSTATUS
628 gcoVG_SetUserToSurface(
629 IN gcoVG Vg,
630 IN gctFLOAT UserToSurface[9]
633 gceSTATUS
634 gcoVG_SetSurfaceToImage(
635 IN gcoVG Vg,
636 IN gctFLOAT SurfaceToImage[9]
639 gceSTATUS
640 gcoVG_EnableMask(
641 IN gcoVG Vg,
642 IN gctBOOL Enable
645 gceSTATUS
646 gcoVG_SetMask(
647 IN gcoVG Vg,
648 IN gcoSURF Mask
651 gceSTATUS
652 gcoVG_UnsetMask(
653 IN gcoVG Vg,
654 IN gcoSURF Surface
657 gceSTATUS
658 gcoVG_FlushMask(
659 IN gcoVG Vg
662 gceSTATUS
663 gcoVG_EnableScissor(
664 IN gcoVG Vg,
665 IN gctBOOL Enable
668 gceSTATUS
669 gcoVG_SetScissor(
670 IN gcoVG Vg,
671 IN gctSIZE_T RectangleCount,
672 IN gcsVG_RECT_PTR Rectangles
675 gceSTATUS
676 gcoVG_EnableColorTransform(
677 IN gcoVG Vg,
678 IN gctBOOL Enable
681 gceSTATUS
682 gcoVG_SetColorTransform(
683 IN gcoVG Vg,
684 IN gctFLOAT ColorTransform[8]
687 gceSTATUS
688 gcoVG_SetTileFillColor(
689 IN gcoVG Vg,
690 IN gctFLOAT Red,
691 IN gctFLOAT Green,
692 IN gctFLOAT Blue,
693 IN gctFLOAT Alpha
696 gceSTATUS
697 gcoVG_SetSolidPaint(
698 IN gcoVG Vg,
699 IN gctUINT8 Red,
700 IN gctUINT8 Green,
701 IN gctUINT8 Blue,
702 IN gctUINT8 Alpha
705 gceSTATUS
706 gcoVG_SetLinearPaint(
707 IN gcoVG Vg,
708 IN gctFLOAT Constant,
709 IN gctFLOAT StepX,
710 IN gctFLOAT StepY
713 gceSTATUS
714 gcoVG_SetRadialPaint(
715 IN gcoVG Vg,
716 IN gctFLOAT LinConstant,
717 IN gctFLOAT LinStepX,
718 IN gctFLOAT LinStepY,
719 IN gctFLOAT RadConstant,
720 IN gctFLOAT RadStepX,
721 IN gctFLOAT RadStepY,
722 IN gctFLOAT RadStepXX,
723 IN gctFLOAT RadStepYY,
724 IN gctFLOAT RadStepXY
727 gceSTATUS
728 gcoVG_SetPatternPaint(
729 IN gcoVG Vg,
730 IN gctFLOAT UConstant,
731 IN gctFLOAT UStepX,
732 IN gctFLOAT UStepY,
733 IN gctFLOAT VConstant,
734 IN gctFLOAT VStepX,
735 IN gctFLOAT VStepY,
736 IN gctBOOL Linear
739 gceSTATUS
740 gcoVG_SetColorRamp(
741 IN gcoVG Vg,
742 IN gcoSURF ColorRamp,
743 IN gceTILE_MODE ColorRampSpreadMode
746 gceSTATUS
747 gcoVG_SetPattern(
748 IN gcoVG Vg,
749 IN gcoSURF Pattern,
750 IN gceTILE_MODE TileMode,
751 IN gceIMAGE_FILTER Filter
754 gceSTATUS
755 gcoVG_SetImageMode(
756 IN gcoVG Vg,
757 IN gceVG_IMAGE Mode
760 gceSTATUS
761 gcoVG_SetBlendMode(
762 IN gcoVG Vg,
763 IN gceVG_BLEND Mode
766 gceSTATUS
767 gcoVG_SetRenderingQuality(
768 IN gcoVG Vg,
769 IN gceRENDER_QUALITY Quality
772 gceSTATUS
773 gcoVG_SetFillRule(
774 IN gcoVG Vg,
775 IN gceFILL_RULE FillRule
778 gceSTATUS
779 gcoVG_FinalizePath(
780 IN gcoVG Vg,
781 IN gcsPATH_DATA_PTR PathData
784 gceSTATUS
785 gcoVG_Clear(
786 IN gcoVG Vg,
787 IN gctINT X,
788 IN gctINT Y,
789 IN gctINT Width,
790 IN gctINT Height
793 gceSTATUS
794 gcoVG_DrawPath(
795 IN gcoVG Vg,
796 IN gcsPATH_DATA_PTR PathData,
797 IN gctFLOAT Scale,
798 IN gctFLOAT Bias,
799 IN gctBOOL SoftwareTesselation
802 gceSTATUS
803 gcoVG_DrawImage(
804 IN gcoVG Vg,
805 IN gcoSURF Source,
806 IN gcsPOINT_PTR SourceOrigin,
807 IN gcsPOINT_PTR TargetOrigin,
808 IN gcsSIZE_PTR SourceSize,
809 IN gctINT SourceX,
810 IN gctINT SourceY,
811 IN gctINT TargetX,
812 IN gctINT TargetY,
813 IN gctINT Width,
814 IN gctINT Height,
815 IN gctBOOL Mask
818 gceSTATUS
819 gcoVG_TesselateImage(
820 IN gcoVG Vg,
821 IN gcoSURF Image,
822 IN gcsVG_RECT_PTR Rectangle,
823 IN gceIMAGE_FILTER Filter,
824 IN gctBOOL Mask,
825 IN gctBOOL SoftwareTesselation
828 gceSTATUS
829 gcoVG_Blit(
830 IN gcoVG Vg,
831 IN gcoSURF Source,
832 IN gcoSURF Target,
833 IN gcsVG_RECT_PTR SrcRect,
834 IN gcsVG_RECT_PTR TrgRect,
835 IN gceIMAGE_FILTER Filter,
836 IN gceVG_BLEND Mode
839 gceSTATUS
840 gcoVG_ColorMatrix(
841 IN gcoVG Vg,
842 IN gcoSURF Source,
843 IN gcoSURF Target,
844 IN const gctFLOAT * Matrix,
845 IN gceCHANNEL ColorChannels,
846 IN gctBOOL FilterLinear,
847 IN gctBOOL FilterPremultiplied,
848 IN gcsPOINT_PTR SourceOrigin,
849 IN gcsPOINT_PTR TargetOrigin,
850 IN gctINT Width,
851 IN gctINT Height
854 gceSTATUS
855 gcoVG_SeparableConvolve(
856 IN gcoVG Vg,
857 IN gcoSURF Source,
858 IN gcoSURF Target,
859 IN gctINT KernelWidth,
860 IN gctINT KernelHeight,
861 IN gctINT ShiftX,
862 IN gctINT ShiftY,
863 IN const gctINT16 * KernelX,
864 IN const gctINT16 * KernelY,
865 IN gctFLOAT Scale,
866 IN gctFLOAT Bias,
867 IN gceTILE_MODE TilingMode,
868 IN gctFLOAT_PTR FillColor,
869 IN gceCHANNEL ColorChannels,
870 IN gctBOOL FilterLinear,
871 IN gctBOOL FilterPremultiplied,
872 IN gcsPOINT_PTR SourceOrigin,
873 IN gcsPOINT_PTR TargetOrigin,
874 IN gcsSIZE_PTR SourceSize,
875 IN gctINT Width,
876 IN gctINT Height
879 gceSTATUS
880 gcoVG_GaussianBlur(
881 IN gcoVG Vg,
882 IN gcoSURF Source,
883 IN gcoSURF Target,
884 IN gctFLOAT StdDeviationX,
885 IN gctFLOAT StdDeviationY,
886 IN gceTILE_MODE TilingMode,
887 IN gctFLOAT_PTR FillColor,
888 IN gceCHANNEL ColorChannels,
889 IN gctBOOL FilterLinear,
890 IN gctBOOL FilterPremultiplied,
891 IN gcsPOINT_PTR SourceOrigin,
892 IN gcsPOINT_PTR TargetOrigin,
893 IN gcsSIZE_PTR SourceSize,
894 IN gctINT Width,
895 IN gctINT Height
898 gceSTATUS
899 gcoVG_EnableDither(
900 IN gcoVG Vg,
901 IN gctBOOL Enable
904 #ifdef __cplusplus
906 #endif
908 #endif /* __gc_hal_vg_h_ */