diff options
Diffstat (limited to 'msmcobalt/libc2dcolorconvert/C2DColorConverter.h')
-rw-r--r-- | msmcobalt/libc2dcolorconvert/C2DColorConverter.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/msmcobalt/libc2dcolorconvert/C2DColorConverter.h b/msmcobalt/libc2dcolorconvert/C2DColorConverter.h new file mode 100644 index 0000000..1885f1e --- /dev/null +++ b/msmcobalt/libc2dcolorconvert/C2DColorConverter.h @@ -0,0 +1,121 @@ +/* Copyright (c) 2012 - 2013, 2015 The Linux Foundation. All rights reserved. + * + * redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * this software is provided "as is" and any express or implied + * warranties, including, but not limited to, the implied warranties of + * merchantability, fitness for a particular purpose and non-infringement + * are disclaimed. in no event shall the copyright owner or contributors + * be liable for any direct, indirect, incidental, special, exemplary, or + * consequential damages (including, but not limited to, procurement of + * substitute goods or services; loss of use, data, or profits; or + * business interruption) however caused and on any theory of liability, + * whether in contract, strict liability, or tort (including negligence + * or otherwise) arising in any way out of the use of this software, even + * if advised of the possibility of such damage. + * + */ + +#ifndef C2D_ColorConverter_H_ +#define C2D_ColorConverter_H_ + +#include <c2d2.h> +#include <sys/types.h> + +typedef C2D_STATUS (*LINK_c2dCreateSurface)( uint32 *surface_id, + uint32 surface_bits, + C2D_SURFACE_TYPE surface_type, + void *surface_definition ); + +typedef C2D_STATUS (*LINK_c2dUpdateSurface)( uint32 surface_id, + uint32 surface_bits, + C2D_SURFACE_TYPE surface_type, + void *surface_definition ); + +typedef C2D_STATUS (*LINK_c2dReadSurface)( uint32 surface_id, + C2D_SURFACE_TYPE surface_type, + void *surface_definition, + int32 x, int32 y ); + +typedef C2D_STATUS (*LINK_c2dDraw)( uint32 target_id, + uint32 target_config, C2D_RECT *target_scissor, + uint32 target_mask_id, uint32 target_color_key, + C2D_OBJECT *objects_list, uint32 num_objects ); + +typedef C2D_STATUS (*LINK_c2dFlush)( uint32 target_id, c2d_ts_handle *timestamp); + +typedef C2D_STATUS (*LINK_c2dFinish)( uint32 target_id); + +typedef C2D_STATUS (*LINK_c2dWaitTimestamp)( c2d_ts_handle timestamp ); + +typedef C2D_STATUS (*LINK_c2dDestroySurface)( uint32 surface_id ); + +typedef C2D_STATUS (*LINK_c2dMapAddr)( int mem_fd, void * hostptr, uint32 len, uint32 offset, uint32 flags, void ** gpuaddr); + +typedef C2D_STATUS (*LINK_c2dUnMapAddr)(void * gpuaddr); + +typedef void (*LINK_AdrenoComputeAlignedWidthAndHeight) (int width, int height, int bpp, int tile_mode, int raster_mode, + int padding_threshold, int *aligned_width, int * aligned_height); + +namespace android { + +/*TODO: THIS NEEDS TO ENABLED FOR JB PLUS*/ +enum ColorConvertFormat { + RGB565 = 1, + YCbCr420Tile, + YCbCr420SP, + YCbCr420P, + YCrCb420P, + RGBA8888, + NV12_2K, + NV12_128m, + NV12_UBWC, +}; + +typedef struct { + int32_t numerator; + int32_t denominator; +} C2DBytesPerPixel; + +typedef struct { + int32_t width; + int32_t height; + int32_t stride; + int32_t sliceHeight; + int32_t lumaAlign; + int32_t sizeAlign; + int32_t size; + C2DBytesPerPixel bpp; +} C2DBuffReq; + +typedef enum { + C2D_INPUT = 0, + C2D_OUTPUT, +} C2D_PORT; + +class C2DColorConverterBase { + +public: + virtual ~C2DColorConverterBase(){}; + virtual int convertC2D(int srcFd, void *srcBase, void * srcData, int dstFd, void *dstBase, void * dstData) = 0; + virtual int32_t getBuffReq(int32_t port, C2DBuffReq *req) = 0; + virtual int32_t dumpOutput(char * filename, char mode) = 0; +}; + +typedef C2DColorConverterBase* createC2DColorConverter_t(size_t srcWidth, size_t srcHeight, size_t dstWidth, size_t dstHeight, ColorConvertFormat srcFormat, ColorConvertFormat dstFormat, int32_t flags, size_t srcStride); +typedef void destroyC2DColorConverter_t(C2DColorConverterBase*); + +} + +#endif // C2D_ColorConverter_H_ |