ENGR00156850 gpu-viv: add gpu-viv driver source
[wandboard.git] / drivers / mxc / gpu-viv / hal / kernel / inc / gc_hal_raster.h
blob4a52bd81ce3d2e36168b0c57b84c4f117f45fd9b
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 *****************************************************************************/
24 #ifndef __gc_hal_raster_h_
25 #define __gc_hal_raster_h_
27 #include "gc_hal_enum.h"
28 #include "gc_hal_types.h"
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
34 /******************************************************************************\
35 ****************************** Object Declarations *****************************
36 \******************************************************************************/
38 typedef struct _gcoBRUSH * gcoBRUSH;
39 typedef struct _gcoBRUSH_CACHE * gcoBRUSH_CACHE;
41 /******************************************************************************\
42 ******************************** gcoBRUSH Object *******************************
43 \******************************************************************************/
45 /* Create a new solid color gcoBRUSH object. */
46 gceSTATUS
47 gcoBRUSH_ConstructSingleColor(
48 IN gcoHAL Hal,
49 IN gctUINT32 ColorConvert,
50 IN gctUINT32 Color,
51 IN gctUINT64 Mask,
52 gcoBRUSH * Brush
55 /* Create a new monochrome gcoBRUSH object. */
56 gceSTATUS
57 gcoBRUSH_ConstructMonochrome(
58 IN gcoHAL Hal,
59 IN gctUINT32 OriginX,
60 IN gctUINT32 OriginY,
61 IN gctUINT32 ColorConvert,
62 IN gctUINT32 FgColor,
63 IN gctUINT32 BgColor,
64 IN gctUINT64 Bits,
65 IN gctUINT64 Mask,
66 gcoBRUSH * Brush
69 /* Create a color gcoBRUSH object. */
70 gceSTATUS
71 gcoBRUSH_ConstructColor(
72 IN gcoHAL Hal,
73 IN gctUINT32 OriginX,
74 IN gctUINT32 OriginY,
75 IN gctPOINTER Address,
76 IN gceSURF_FORMAT Format,
77 IN gctUINT64 Mask,
78 gcoBRUSH * Brush
81 /* Destroy an gcoBRUSH object. */
82 gceSTATUS
83 gcoBRUSH_Destroy(
84 IN gcoBRUSH Brush
87 /******************************************************************************\
88 ******************************** gcoSURF Object *******************************
89 \******************************************************************************/
91 /* Set cipping rectangle. */
92 gceSTATUS
93 gcoSURF_SetClipping(
94 IN gcoSURF Surface
97 /* Clear one or more rectangular areas. */
98 gceSTATUS
99 gcoSURF_Clear2D(
100 IN gcoSURF DestSurface,
101 IN gctUINT32 RectCount,
102 IN gcsRECT_PTR DestRect,
103 IN gctUINT32 LoColor,
104 IN gctUINT32 HiColor
107 /* Draw one or more Bresenham lines. */
108 gceSTATUS
109 gcoSURF_Line(
110 IN gcoSURF Surface,
111 IN gctUINT32 LineCount,
112 IN gcsRECT_PTR Position,
113 IN gcoBRUSH Brush,
114 IN gctUINT8 FgRop,
115 IN gctUINT8 BgRop
118 /* Generic rectangular blit. */
119 gceSTATUS
120 gcoSURF_Blit(
121 IN OPTIONAL gcoSURF SrcSurface,
122 IN gcoSURF DestSurface,
123 IN gctUINT32 RectCount,
124 IN OPTIONAL gcsRECT_PTR SrcRect,
125 IN gcsRECT_PTR DestRect,
126 IN OPTIONAL gcoBRUSH Brush,
127 IN gctUINT8 FgRop,
128 IN gctUINT8 BgRop,
129 IN OPTIONAL gceSURF_TRANSPARENCY Transparency,
130 IN OPTIONAL gctUINT32 TransparencyColor,
131 IN OPTIONAL gctPOINTER Mask,
132 IN OPTIONAL gceSURF_MONOPACK MaskPack
135 /* Monochrome blit. */
136 gceSTATUS
137 gcoSURF_MonoBlit(
138 IN gcoSURF DestSurface,
139 IN gctPOINTER Source,
140 IN gceSURF_MONOPACK SourcePack,
141 IN gcsPOINT_PTR SourceSize,
142 IN gcsPOINT_PTR SourceOrigin,
143 IN gcsRECT_PTR DestRect,
144 IN OPTIONAL gcoBRUSH Brush,
145 IN gctUINT8 FgRop,
146 IN gctUINT8 BgRop,
147 IN gctBOOL ColorConvert,
148 IN gctUINT8 MonoTransparency,
149 IN gceSURF_TRANSPARENCY Transparency,
150 IN gctUINT32 FgColor,
151 IN gctUINT32 BgColor
154 /* Filter blit. */
155 gceSTATUS
156 gcoSURF_FilterBlit(
157 IN gcoSURF SrcSurface,
158 IN gcoSURF DestSurface,
159 IN gcsRECT_PTR SrcRect,
160 IN gcsRECT_PTR DestRect,
161 IN gcsRECT_PTR DestSubRect
164 /* Enable alpha blending engine in the hardware and disengage the ROP engine. */
165 gceSTATUS
166 gcoSURF_EnableAlphaBlend(
167 IN gcoSURF Surface,
168 IN gctUINT8 SrcGlobalAlphaValue,
169 IN gctUINT8 DstGlobalAlphaValue,
170 IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
171 IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
172 IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
173 IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
174 IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
175 IN gceSURF_BLEND_FACTOR_MODE DstFactorMode,
176 IN gceSURF_PIXEL_COLOR_MODE SrcColorMode,
177 IN gceSURF_PIXEL_COLOR_MODE DstColorMode
180 /* Disable alpha blending engine in the hardware and engage the ROP engine. */
181 gceSTATUS
182 gcoSURF_DisableAlphaBlend(
183 IN gcoSURF Surface
186 /* Copy a rectangular area with format conversion. */
187 gceSTATUS
188 gcoSURF_CopyPixels(
189 IN gcoSURF Source,
190 IN gcoSURF Target,
191 IN gctINT SourceX,
192 IN gctINT SourceY,
193 IN gctINT TargetX,
194 IN gctINT TargetY,
195 IN gctINT Width,
196 IN gctINT Height
199 /* Read surface pixel. */
200 gceSTATUS
201 gcoSURF_ReadPixel(
202 IN gcoSURF Surface,
203 IN gctPOINTER Memory,
204 IN gctINT X,
205 IN gctINT Y,
206 IN gceSURF_FORMAT Format,
207 OUT gctPOINTER PixelValue
210 /* Write surface pixel. */
211 gceSTATUS
212 gcoSURF_WritePixel(
213 IN gcoSURF Surface,
214 IN gctPOINTER Memory,
215 IN gctINT X,
216 IN gctINT Y,
217 IN gceSURF_FORMAT Format,
218 IN gctPOINTER PixelValue
221 gceSTATUS
222 gcoSURF_SetDither(
223 IN gcoSURF Surface,
224 IN gctBOOL Dither
226 /******************************************************************************\
227 ********************************** gco2D Object *********************************
228 \******************************************************************************/
230 /* Construct a new gco2D object. */
231 gceSTATUS
232 gco2D_Construct(
233 IN gcoHAL Hal,
234 OUT gco2D * Hardware
237 /* Destroy an gco2D object. */
238 gceSTATUS
239 gco2D_Destroy(
240 IN gco2D Hardware
243 /* Sets the maximum number of brushes in the brush cache. */
244 gceSTATUS
245 gco2D_SetBrushLimit(
246 IN gco2D Hardware,
247 IN gctUINT MaxCount
250 /* Flush the brush. */
251 gceSTATUS
252 gco2D_FlushBrush(
253 IN gco2D Engine,
254 IN gcoBRUSH Brush,
255 IN gceSURF_FORMAT Format
258 /* Program the specified solid color brush. */
259 gceSTATUS
260 gco2D_LoadSolidBrush(
261 IN gco2D Engine,
262 IN gceSURF_FORMAT Format,
263 IN gctUINT32 ColorConvert,
264 IN gctUINT32 Color,
265 IN gctUINT64 Mask
268 gceSTATUS
269 gco2D_LoadMonochromeBrush(
270 IN gco2D Engine,
271 IN gctUINT32 OriginX,
272 IN gctUINT32 OriginY,
273 IN gctUINT32 ColorConvert,
274 IN gctUINT32 FgColor,
275 IN gctUINT32 BgColor,
276 IN gctUINT64 Bits,
277 IN gctUINT64 Mask
280 gceSTATUS
281 gco2D_LoadColorBrush(
282 IN gco2D Engine,
283 IN gctUINT32 OriginX,
284 IN gctUINT32 OriginY,
285 IN gctUINT32 Address,
286 IN gceSURF_FORMAT Format,
287 IN gctUINT64 Mask
290 /* Configure monochrome source. */
291 gceSTATUS
292 gco2D_SetMonochromeSource(
293 IN gco2D Engine,
294 IN gctBOOL ColorConvert,
295 IN gctUINT8 MonoTransparency,
296 IN gceSURF_MONOPACK DataPack,
297 IN gctBOOL CoordRelative,
298 IN gceSURF_TRANSPARENCY Transparency,
299 IN gctUINT32 FgColor,
300 IN gctUINT32 BgColor
303 /* Configure color source. */
304 gceSTATUS
305 gco2D_SetColorSource(
306 IN gco2D Engine,
307 IN gctUINT32 Address,
308 IN gctUINT32 Stride,
309 IN gceSURF_FORMAT Format,
310 IN gceSURF_ROTATION Rotation,
311 IN gctUINT32 SurfaceWidth,
312 IN gctBOOL CoordRelative,
313 IN gceSURF_TRANSPARENCY Transparency,
314 IN gctUINT32 TransparencyColor
317 /* Configure color source extension for full rotation. */
318 gceSTATUS
319 gco2D_SetColorSourceEx(
320 IN gco2D Engine,
321 IN gctUINT32 Address,
322 IN gctUINT32 Stride,
323 IN gceSURF_FORMAT Format,
324 IN gceSURF_ROTATION Rotation,
325 IN gctUINT32 SurfaceWidth,
326 IN gctUINT32 SurfaceHeight,
327 IN gctBOOL CoordRelative,
328 IN gceSURF_TRANSPARENCY Transparency,
329 IN gctUINT32 TransparencyColor
332 /* Configure color source. */
333 gceSTATUS
334 gco2D_SetColorSourceAdvanced(
335 IN gco2D Engine,
336 IN gctUINT32 Address,
337 IN gctUINT32 Stride,
338 IN gceSURF_FORMAT Format,
339 IN gceSURF_ROTATION Rotation,
340 IN gctUINT32 SurfaceWidth,
341 IN gctUINT32 SurfaceHeight,
342 IN gctBOOL CoordRelative
345 gceSTATUS
346 gco2D_SetColorSourceN(
347 IN gco2D Engine,
348 IN gctUINT32 Address,
349 IN gctUINT32 Stride,
350 IN gceSURF_FORMAT Format,
351 IN gceSURF_ROTATION Rotation,
352 IN gctUINT32 SurfaceWidth,
353 IN gctUINT32 SurfaceHeight,
354 IN gctUINT32 SurfaceNumber
357 /* Configure masked color source. */
358 gceSTATUS
359 gco2D_SetMaskedSource(
360 IN gco2D Engine,
361 IN gctUINT32 Address,
362 IN gctUINT32 Stride,
363 IN gceSURF_FORMAT Format,
364 IN gctBOOL CoordRelative,
365 IN gceSURF_MONOPACK MaskPack
368 /* Configure masked color source extension for full rotation. */
369 gceSTATUS
370 gco2D_SetMaskedSourceEx(
371 IN gco2D Engine,
372 IN gctUINT32 Address,
373 IN gctUINT32 Stride,
374 IN gceSURF_FORMAT Format,
375 IN gctBOOL CoordRelative,
376 IN gceSURF_MONOPACK MaskPack,
377 IN gceSURF_ROTATION Rotation,
378 IN gctUINT32 SurfaceWidth,
379 IN gctUINT32 SurfaceHeight
382 /* Setup the source rectangle. */
383 gceSTATUS
384 gco2D_SetSource(
385 IN gco2D Engine,
386 IN gcsRECT_PTR SrcRect
389 /* Set clipping rectangle. */
390 gceSTATUS
391 gco2D_SetClipping(
392 IN gco2D Engine,
393 IN gcsRECT_PTR Rect
396 /* Configure destination. */
397 gceSTATUS
398 gco2D_SetTarget(
399 IN gco2D Engine,
400 IN gctUINT32 Address,
401 IN gctUINT32 Stride,
402 IN gceSURF_ROTATION Rotation,
403 IN gctUINT32 SurfaceWidth
406 /* Configure destination extension for full rotation. */
407 gceSTATUS
408 gco2D_SetTargetEx(
409 IN gco2D Engine,
410 IN gctUINT32 Address,
411 IN gctUINT32 Stride,
412 IN gceSURF_ROTATION Rotation,
413 IN gctUINT32 SurfaceWidth,
414 IN gctUINT32 SurfaceHeight
417 /* Calculate and program the stretch factors. */
418 gceSTATUS
419 gco2D_SetStretchFactors(
420 IN gco2D Engine,
421 IN gctUINT32 HorFactor,
422 IN gctUINT32 VerFactor
425 /* Calculate and program the stretch factors based on the rectangles. */
426 gceSTATUS
427 gco2D_SetStretchRectFactors(
428 IN gco2D Engine,
429 IN gcsRECT_PTR SrcRect,
430 IN gcsRECT_PTR DestRect
433 /* Create a new solid color gcoBRUSH object. */
434 gceSTATUS
435 gco2D_ConstructSingleColorBrush(
436 IN gco2D Engine,
437 IN gctUINT32 ColorConvert,
438 IN gctUINT32 Color,
439 IN gctUINT64 Mask,
440 gcoBRUSH * Brush
443 /* Create a new monochrome gcoBRUSH object. */
444 gceSTATUS
445 gco2D_ConstructMonochromeBrush(
446 IN gco2D Engine,
447 IN gctUINT32 OriginX,
448 IN gctUINT32 OriginY,
449 IN gctUINT32 ColorConvert,
450 IN gctUINT32 FgColor,
451 IN gctUINT32 BgColor,
452 IN gctUINT64 Bits,
453 IN gctUINT64 Mask,
454 gcoBRUSH * Brush
457 /* Create a color gcoBRUSH object. */
458 gceSTATUS
459 gco2D_ConstructColorBrush(
460 IN gco2D Engine,
461 IN gctUINT32 OriginX,
462 IN gctUINT32 OriginY,
463 IN gctPOINTER Address,
464 IN gceSURF_FORMAT Format,
465 IN gctUINT64 Mask,
466 gcoBRUSH * Brush
469 /* Clear one or more rectangular areas. */
470 gceSTATUS
471 gco2D_Clear(
472 IN gco2D Engine,
473 IN gctUINT32 RectCount,
474 IN gcsRECT_PTR Rect,
475 IN gctUINT32 Color32,
476 IN gctUINT8 FgRop,
477 IN gctUINT8 BgRop,
478 IN gceSURF_FORMAT DestFormat
481 /* Draw one or more Bresenham lines. */
482 gceSTATUS
483 gco2D_Line(
484 IN gco2D Engine,
485 IN gctUINT32 LineCount,
486 IN gcsRECT_PTR Position,
487 IN gcoBRUSH Brush,
488 IN gctUINT8 FgRop,
489 IN gctUINT8 BgRop,
490 IN gceSURF_FORMAT DestFormat
493 /* Draw one or more Bresenham lines based on the 32-bit color. */
494 gceSTATUS
495 gco2D_ColorLine(
496 IN gco2D Engine,
497 IN gctUINT32 LineCount,
498 IN gcsRECT_PTR Position,
499 IN gctUINT32 Color32,
500 IN gctUINT8 FgRop,
501 IN gctUINT8 BgRop,
502 IN gceSURF_FORMAT DestFormat
505 /* Generic blit. */
506 gceSTATUS
507 gco2D_Blit(
508 IN gco2D Engine,
509 IN gctUINT32 RectCount,
510 IN gcsRECT_PTR Rect,
511 IN gctUINT8 FgRop,
512 IN gctUINT8 BgRop,
513 IN gceSURF_FORMAT DestFormat
516 gceSTATUS
517 gco2D_Blend(
518 IN gco2D Engine,
519 IN gctUINT32 SrcCount,
520 IN gctUINT32 RectCount,
521 IN gcsRECT_PTR Rect,
522 IN gctUINT8 FgRop,
523 IN gctUINT8 BgRop,
524 IN gceSURF_FORMAT DestFormat
527 /* Batch blit. */
528 gceSTATUS
529 gco2D_BatchBlit(
530 IN gco2D Engine,
531 IN gctUINT32 RectCount,
532 IN gcsRECT_PTR SrcRect,
533 IN gcsRECT_PTR DestRect,
534 IN gctUINT8 FgRop,
535 IN gctUINT8 BgRop,
536 IN gceSURF_FORMAT DestFormat
539 /* Stretch blit. */
540 gceSTATUS
541 gco2D_StretchBlit(
542 IN gco2D Engine,
543 IN gctUINT32 RectCount,
544 IN gcsRECT_PTR Rect,
545 IN gctUINT8 FgRop,
546 IN gctUINT8 BgRop,
547 IN gceSURF_FORMAT DestFormat
550 /* Monochrome blit. */
551 gceSTATUS
552 gco2D_MonoBlit(
553 IN gco2D Engine,
554 IN gctPOINTER StreamBits,
555 IN gcsPOINT_PTR StreamSize,
556 IN gcsRECT_PTR StreamRect,
557 IN gceSURF_MONOPACK SrcStreamPack,
558 IN gceSURF_MONOPACK DestStreamPack,
559 IN gcsRECT_PTR DestRect,
560 IN gctUINT32 FgRop,
561 IN gctUINT32 BgRop,
562 IN gceSURF_FORMAT DestFormat
565 /* Set kernel size. */
566 gceSTATUS
567 gco2D_SetKernelSize(
568 IN gco2D Engine,
569 IN gctUINT8 HorKernelSize,
570 IN gctUINT8 VerKernelSize
573 /* Set filter type. */
574 gceSTATUS
575 gco2D_SetFilterType(
576 IN gco2D Engine,
577 IN gceFILTER_TYPE FilterType
580 /* Set the filter kernel by user. */
581 gceSTATUS
582 gco2D_SetUserFilterKernel(
583 IN gco2D Engine,
584 IN gceFILTER_PASS_TYPE PassType,
585 IN gctUINT16_PTR KernelArray
588 /* Select the pass(es) to be done for user defined filter. */
589 gceSTATUS
590 gco2D_EnableUserFilterPasses(
591 IN gco2D Engine,
592 IN gctBOOL HorPass,
593 IN gctBOOL VerPass
596 /* Frees the temporary buffer allocated by filter blit operation. */
597 gceSTATUS
598 gco2D_FreeFilterBuffer(
599 IN gco2D Engine
602 /* Filter blit. */
603 gceSTATUS
604 gco2D_FilterBlit(
605 IN gco2D Engine,
606 IN gctUINT32 SrcAddress,
607 IN gctUINT SrcStride,
608 IN gctUINT32 SrcUAddress,
609 IN gctUINT SrcUStride,
610 IN gctUINT32 SrcVAddress,
611 IN gctUINT SrcVStride,
612 IN gceSURF_FORMAT SrcFormat,
613 IN gceSURF_ROTATION SrcRotation,
614 IN gctUINT32 SrcSurfaceWidth,
615 IN gcsRECT_PTR SrcRect,
616 IN gctUINT32 DestAddress,
617 IN gctUINT DestStride,
618 IN gceSURF_FORMAT DestFormat,
619 IN gceSURF_ROTATION DestRotation,
620 IN gctUINT32 DestSurfaceWidth,
621 IN gcsRECT_PTR DestRect,
622 IN gcsRECT_PTR DestSubRect
625 /* Filter blit extension for full rotation. */
626 gceSTATUS
627 gco2D_FilterBlitEx(
628 IN gco2D Engine,
629 IN gctUINT32 SrcAddress,
630 IN gctUINT SrcStride,
631 IN gctUINT32 SrcUAddress,
632 IN gctUINT SrcUStride,
633 IN gctUINT32 SrcVAddress,
634 IN gctUINT SrcVStride,
635 IN gceSURF_FORMAT SrcFormat,
636 IN gceSURF_ROTATION SrcRotation,
637 IN gctUINT32 SrcSurfaceWidth,
638 IN gctUINT32 SrcSurfaceHeight,
639 IN gcsRECT_PTR SrcRect,
640 IN gctUINT32 DestAddress,
641 IN gctUINT DestStride,
642 IN gceSURF_FORMAT DestFormat,
643 IN gceSURF_ROTATION DestRotation,
644 IN gctUINT32 DestSurfaceWidth,
645 IN gctUINT32 DestSurfaceHeight,
646 IN gcsRECT_PTR DestRect,
647 IN gcsRECT_PTR DestSubRect
650 gceSTATUS
651 gco2D_FilterBlitEx2(
652 IN gco2D Engine,
653 IN gctUINT32_PTR SrcAddresses,
654 IN gctUINT32 SrcAddressNum,
655 IN gctUINT32_PTR SrcStrides,
656 IN gctUINT32 SrcStrideNum,
657 IN gceTILING SrcTiling,
658 IN gceSURF_FORMAT SrcFormat,
659 IN gceSURF_ROTATION SrcRotation,
660 IN gctUINT32 SrcSurfaceWidth,
661 IN gctUINT32 SrcSurfaceHeight,
662 IN gcsRECT_PTR SrcRect,
663 IN gctUINT32_PTR DestAddresses,
664 IN gctUINT32 DestAddressNum,
665 IN gctUINT32_PTR DestStrides,
666 IN gctUINT32 DestStrideNum,
667 IN gceTILING DestTiling,
668 IN gceSURF_FORMAT DestFormat,
669 IN gceSURF_ROTATION DestRotation,
670 IN gctUINT32 DestSurfaceWidth,
671 IN gctUINT32 DestSurfaceHeight,
672 IN gcsRECT_PTR DestRect,
673 IN gcsRECT_PTR DestSubRect
676 /* Enable alpha blending engine in the hardware and disengage the ROP engine. */
677 gceSTATUS
678 gco2D_EnableAlphaBlend(
679 IN gco2D Engine,
680 IN gctUINT8 SrcGlobalAlphaValue,
681 IN gctUINT8 DstGlobalAlphaValue,
682 IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
683 IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
684 IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
685 IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
686 IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
687 IN gceSURF_BLEND_FACTOR_MODE DstFactorMode,
688 IN gceSURF_PIXEL_COLOR_MODE SrcColorMode,
689 IN gceSURF_PIXEL_COLOR_MODE DstColorMode
692 /* Enable alpha blending engine in the hardware. */
693 gceSTATUS
694 gco2D_EnableAlphaBlendAdvanced(
695 IN gco2D Engine,
696 IN gceSURF_PIXEL_ALPHA_MODE SrcAlphaMode,
697 IN gceSURF_PIXEL_ALPHA_MODE DstAlphaMode,
698 IN gceSURF_GLOBAL_ALPHA_MODE SrcGlobalAlphaMode,
699 IN gceSURF_GLOBAL_ALPHA_MODE DstGlobalAlphaMode,
700 IN gceSURF_BLEND_FACTOR_MODE SrcFactorMode,
701 IN gceSURF_BLEND_FACTOR_MODE DstFactorMode
704 /* Enable alpha blending engine with Porter Duff rule. */
705 gceSTATUS
706 gco2D_SetPorterDuffBlending(
707 IN gco2D Engine,
708 IN gce2D_PORTER_DUFF_RULE Rule
711 /* Disable alpha blending engine in the hardware and engage the ROP engine. */
712 gceSTATUS
713 gco2D_DisableAlphaBlend(
714 IN gco2D Engine
717 /* Retrieve the maximum number of 32-bit data chunks for a single DE command. */
718 gctUINT32
719 gco2D_GetMaximumDataCount(
720 void
723 /* Retrieve the maximum number of rectangles, that can be passed in a single DE command. */
724 gctUINT32
725 gco2D_GetMaximumRectCount(
726 void
729 /* Returns the pixel alignment of the surface. */
730 gceSTATUS
731 gco2D_GetPixelAlignment(
732 gceSURF_FORMAT Format,
733 gcsPOINT_PTR Alignment
736 /* Retrieve monochrome stream pack size. */
737 gceSTATUS
738 gco2D_GetPackSize(
739 IN gceSURF_MONOPACK StreamPack,
740 OUT gctUINT32 * PackWidth,
741 OUT gctUINT32 * PackHeight
744 /* Flush the 2D pipeline. */
745 gceSTATUS
746 gco2D_Flush(
747 IN gco2D Engine
750 /* Load 256-entry color table for INDEX8 source surfaces. */
751 gceSTATUS
752 gco2D_LoadPalette(
753 IN gco2D Engine,
754 IN gctUINT FirstIndex,
755 IN gctUINT IndexCount,
756 IN gctPOINTER ColorTable,
757 IN gctBOOL ColorConvert
760 /* Enable/disable 2D BitBlt mirrorring. */
761 gceSTATUS
762 gco2D_SetBitBlitMirror(
763 IN gco2D Engine,
764 IN gctBOOL HorizontalMirror,
765 IN gctBOOL VerticalMirror
769 * Set the transparency for source, destination and pattern.
770 * It also enable or disable the DFB color key mode.
772 gceSTATUS
773 gco2D_SetTransparencyAdvancedEx(
774 IN gco2D Engine,
775 IN gce2D_TRANSPARENCY SrcTransparency,
776 IN gce2D_TRANSPARENCY DstTransparency,
777 IN gce2D_TRANSPARENCY PatTransparency,
778 IN gctBOOL EnableDFBColorKeyMode
781 /* Set the transparency for source, destination and pattern. */
782 gceSTATUS
783 gco2D_SetTransparencyAdvanced(
784 IN gco2D Engine,
785 IN gce2D_TRANSPARENCY SrcTransparency,
786 IN gce2D_TRANSPARENCY DstTransparency,
787 IN gce2D_TRANSPARENCY PatTransparency
790 /* Set the source color key. */
791 gceSTATUS
792 gco2D_SetSourceColorKeyAdvanced(
793 IN gco2D Engine,
794 IN gctUINT32 ColorKey
797 /* Set the source color key range. */
798 gceSTATUS
799 gco2D_SetSourceColorKeyRangeAdvanced(
800 IN gco2D Engine,
801 IN gctUINT32 ColorKeyLow,
802 IN gctUINT32 ColorKeyHigh
805 /* Set the target color key. */
806 gceSTATUS
807 gco2D_SetTargetColorKeyAdvanced(
808 IN gco2D Engine,
809 IN gctUINT32 ColorKey
812 /* Set the target color key range. */
813 gceSTATUS
814 gco2D_SetTargetColorKeyRangeAdvanced(
815 IN gco2D Engine,
816 IN gctUINT32 ColorKeyLow,
817 IN gctUINT32 ColorKeyHigh
820 /* Set the YUV color space mode. */
821 gceSTATUS
822 gco2D_SetYUVColorMode(
823 IN gco2D Engine,
824 IN gce2D_YUV_COLOR_MODE Mode
827 /* Setup the source global color value in ARGB8 format. */
828 gceSTATUS gco2D_SetSourceGlobalColorAdvanced(
829 IN gco2D Engine,
830 IN gctUINT32 Color32
833 /* Setup the target global color value in ARGB8 format. */
834 gceSTATUS gco2D_SetTargetGlobalColorAdvanced(
835 IN gco2D Engine,
836 IN gctUINT32 Color32
839 /* Setup the source and target pixel multiply modes. */
840 gceSTATUS
841 gco2D_SetPixelMultiplyModeAdvanced(
842 IN gco2D Engine,
843 IN gce2D_PIXEL_COLOR_MULTIPLY_MODE SrcPremultiplySrcAlpha,
844 IN gce2D_PIXEL_COLOR_MULTIPLY_MODE DstPremultiplyDstAlpha,
845 IN gce2D_GLOBAL_COLOR_MULTIPLY_MODE SrcPremultiplyGlobalMode,
846 IN gce2D_PIXEL_COLOR_MULTIPLY_MODE DstDemultiplyDstAlpha
849 /* Set the GPU clock cycles after which the idle engine will keep auto-flushing. */
850 gceSTATUS
851 gco2D_SetAutoFlushCycles(
852 IN gco2D Engine,
853 IN gctUINT32 Cycles
856 #if VIVANTE_PROFILER
857 /* Read the profile registers available in the 2D engine and sets them in the profile.
858 The function will also reset the pixelsRendered counter every time.
860 gceSTATUS
861 gco2D_ProfileEngine(
862 IN gco2D Engine,
863 OPTIONAL gcs2D_PROFILE_PTR Profile
865 #endif
867 /* Enable or disable 2D dithering. */
868 gceSTATUS
869 gco2D_EnableDither(
870 IN gco2D Engine,
871 IN gctBOOL Enable
874 gceSTATUS
875 gco2D_SetGenericSource(
876 IN gco2D Engine,
877 IN gctUINT32_PTR Addresses,
878 IN gctUINT32 AddressNum,
879 IN gctUINT32_PTR Strides,
880 IN gctUINT32 StrideNum,
881 IN gceTILING Tiling,
882 IN gceSURF_FORMAT Format,
883 IN gceSURF_ROTATION Rotation,
884 IN gctUINT32 SurfaceWidth,
885 IN gctUINT32 SurfaceHeight
888 gceSTATUS
889 gco2D_SetGenericTarget(
890 IN gco2D Engine,
891 IN gctUINT32_PTR Addresses,
892 IN gctUINT32 AddressNum,
893 IN gctUINT32_PTR Strides,
894 IN gctUINT32 StrideNum,
895 IN gceTILING Tiling,
896 IN gceSURF_FORMAT Format,
897 IN gceSURF_ROTATION Rotation,
898 IN gctUINT32 SurfaceWidth,
899 IN gctUINT32 SurfaceHeight
902 gceSTATUS
903 gco2D_SetCurrentSourceIndex(
904 IN gco2D Engine,
905 IN gctUINT32 SrcIndex
908 gceSTATUS
909 gco2D_MultiSourceBlit(
910 IN gco2D Engine,
911 IN gctUINT32 SourceMask,
912 IN gcsRECT_PTR DestRect,
913 IN gctUINT32 RectCount
916 gceSTATUS
917 gco2D_SetROP(
918 IN gco2D Engine,
919 IN gctUINT8 FgRop,
920 IN gctUINT8 BgRop
923 #ifdef __cplusplus
925 #endif
927 #endif /* __gc_hal_raster_h_ */