codeworkx | f1be2fe | 2012-03-24 17:38:29 +0100 | [diff] [blame] | 1 | /* |
| 2 | ** |
| 3 | ** Copyright 2009 Samsung Electronics Co, Ltd. |
| 4 | ** Copyright 2008, The Android Open Source Project |
| 5 | ** |
| 6 | ** Licensed under the Apache License, Version 2.0 (the "License"); |
| 7 | ** you may not use this file except in compliance with the License. |
| 8 | ** You may obtain a copy of the License at |
| 9 | ** |
| 10 | ** http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | ** |
| 12 | ** Unless required by applicable law or agreed to in writing, software |
| 13 | ** distributed under the License is distributed on an "AS IS" BASIS, |
| 14 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 15 | ** See the License for the specific language governing permissions and |
| 16 | ** limitations under the License. |
| 17 | ** |
| 18 | ** |
| 19 | */ |
| 20 | |
| 21 | #ifndef FIMG_API_H |
| 22 | #define FIMG_API_H |
| 23 | |
| 24 | #include <utils/Log.h> |
| 25 | |
| 26 | #include "../include/sec_g2d.h" |
| 27 | //#include <sec_g2d.h> |
| 28 | #define REAL_DEBUG |
| 29 | #define ANDROID_LOG |
| 30 | |
| 31 | #if defined(REAL_DEBUG) |
| 32 | #ifdef ANDROID_LOG |
Daniel Hillenbrand | 0fdadca | 2012-07-22 15:45:33 +0200 | [diff] [blame] | 33 | #define PRINT ALOGE |
| 34 | #define PRINTD ALOGD |
codeworkx | f1be2fe | 2012-03-24 17:38:29 +0100 | [diff] [blame] | 35 | #else |
| 36 | #define PRINT printf |
| 37 | #define PRINTD printf |
| 38 | #endif |
| 39 | #else |
| 40 | void VOID_FUNC(const char* format, ...); |
| 41 | |
| 42 | #define PRINT VOID_FUNC |
| 43 | #define PRINTD VOID_FUNC |
| 44 | #endif |
| 45 | |
| 46 | typedef g2d_rect FimgRect; |
| 47 | typedef g2d_flag FimgFlag; |
| 48 | typedef g2d_clip FimgClip; |
| 49 | |
| 50 | #ifdef __cplusplus |
| 51 | class FimgApi |
| 52 | { |
| 53 | public: |
| 54 | #endif |
| 55 | enum COLOR_FORMAT { |
| 56 | COLOR_FORMAT_BASE = 0, |
| 57 | |
| 58 | COLOR_FORMAT_RGB_565 = G2D_RGB_565, |
| 59 | |
| 60 | COLOR_FORMAT_RGBA_8888 = G2D_RGBA_8888, |
| 61 | COLOR_FORMAT_ARGB_8888 = G2D_ARGB_8888, |
| 62 | COLOR_FORMAT_BGRA_8888 = G2D_BGRA_8888, |
| 63 | COLOR_FORMAT_ABGR_8888 = G2D_ABGR_8888, |
| 64 | |
| 65 | COLOR_FORMAT_RGBX_8888 = G2D_RGBX_8888, |
| 66 | COLOR_FORMAT_XRGB_8888 = G2D_XRGB_8888, |
| 67 | COLOR_FORMAT_BGRX_8888 = G2D_BGRX_8888, |
| 68 | COLOR_FORMAT_XBGR_8888 = G2D_XBGR_8888, |
| 69 | |
| 70 | COLOR_FORMAT_RGBA_5551 = G2D_RGBA_5551, |
| 71 | COLOR_FORMAT_ARGB_1555 = G2D_ARGB_1555, |
| 72 | COLOR_FORMAT_BGRA_5551 = G2D_BGRA_5551, |
| 73 | COLOR_FORMAT_ABGR_1555 = G2D_ABGR_1555, |
| 74 | |
| 75 | COLOR_FORMAT_RGBX_5551 = G2D_RGBX_5551, |
| 76 | COLOR_FORMAT_XRGB_1555 = G2D_XRGB_1555, |
| 77 | COLOR_FORMAT_BGRX_5551 = G2D_BGRX_5551, |
| 78 | COLOR_FORMAT_XBGR_1555 = G2D_XBGR_1555, |
| 79 | |
| 80 | COLOR_FORMAT_RGBA_4444 = G2D_RGBA_4444, |
| 81 | COLOR_FORMAT_ARGB_4444 = G2D_ARGB_4444, |
| 82 | COLOR_FORMAT_BGRA_4444 = G2D_BGRA_4444, |
| 83 | COLOR_FORMAT_ABGR_4444 = G2D_ABGR_4444, |
| 84 | |
| 85 | COLOR_FORMAT_RGBX_4444 = G2D_RGBX_4444, |
| 86 | COLOR_FORMAT_XRGB_4444 = G2D_XRGB_4444, |
| 87 | COLOR_FORMAT_BGRX_4444 = G2D_BGRX_4444, |
| 88 | COLOR_FORMAT_XBGR_4444 = G2D_XBGR_4444, |
| 89 | |
| 90 | COLOR_FORMAT_PACKED_RGB_888 = G2D_PACKED_RGB_888, |
| 91 | COLOR_FORMAT_PACKED_BGR_888 = G2D_PACKED_BGR_888, |
| 92 | COLOR_FORMAT_YUV_420SP, |
| 93 | COLOR_FORMAT_YUV_420P, |
| 94 | COLOR_FORMAT_YUV_420I, |
| 95 | COLOR_FORMAT_YUV_422SP, |
| 96 | COLOR_FORMAT_YUV_422P, |
| 97 | COLOR_FORMAT_YUV_422I, |
| 98 | COLOR_FORMAT_YUYV, |
| 99 | |
| 100 | COLOR_FORMAT_MAX, |
| 101 | }; |
| 102 | |
| 103 | enum ROTATE { |
| 104 | ROTATE_BASE = 0, |
| 105 | ROTATE_0 = G2D_ROT_0, |
| 106 | ROTATE_90 = G2D_ROT_90, |
| 107 | ROTATE_180 = G2D_ROT_180, |
| 108 | ROTATE_270 = G2D_ROT_270, |
| 109 | ROTATE_X_FLIP = G2D_ROT_X_FLIP, |
| 110 | ROTATE_Y_FLIP = G2D_ROT_Y_FLIP, |
| 111 | ROTATE_MAX, |
| 112 | }; |
| 113 | |
| 114 | enum ALPHA_VALUE { |
| 115 | ALPHA_MIN = G2D_ALPHA_BLENDING_MIN, // wholly transparent |
| 116 | ALPHA_MAX = G2D_ALPHA_BLENDING_MAX, // 255 |
| 117 | ALPHA_OPAQUE = G2D_ALPHA_BLENDING_OPAQUE, // opaque |
| 118 | }; |
| 119 | |
| 120 | enum DITHER { |
| 121 | DITHER_BASE = 0, |
| 122 | DITHER_OFF = 0, |
| 123 | DITHER_ON = 1, |
| 124 | DITHER_MAX, |
| 125 | }; |
| 126 | #ifdef __cplusplus |
| 127 | private : |
| 128 | bool m_flagCreate; |
| 129 | |
| 130 | protected : |
| 131 | FimgApi(); |
| 132 | FimgApi(const FimgApi& rhs) {} |
| 133 | virtual ~FimgApi(); |
| 134 | |
| 135 | public: |
| 136 | bool Create(void); |
| 137 | bool Destroy(void); |
| 138 | inline bool FlagCreate(void) { return m_flagCreate; } |
| 139 | bool Stretch(FimgRect * src, FimgRect * dst, FimgClip * clip, FimgFlag * flag); |
| 140 | bool Sync(void); |
| 141 | |
| 142 | protected: |
| 143 | virtual bool t_Create(void); |
| 144 | virtual bool t_Destroy(void); |
| 145 | virtual bool t_Stretch(FimgRect * src, FimgRect * dst, FimgClip * clip, FimgFlag * flag); |
| 146 | virtual bool t_Sync(void); |
| 147 | virtual bool t_Lock(void); |
| 148 | virtual bool t_UnLock(void); |
| 149 | |
| 150 | }; |
| 151 | #endif |
| 152 | |
| 153 | /*--------------------------------------------------------------------------- |
| 154 | * user api extern function |
| 155 | *--------------------------------------------------------------------------- |
| 156 | * usage 1 |
| 157 | * FimgApi * p = createFimgApi(); |
| 158 | * p->Stretch() |
| 159 | * destroyFimgApi(p); |
| 160 | * |
| 161 | * usage 2 |
| 162 | * stretchFimgApi(src, dst, clip, flag); |
| 163 | *-------------------------------------------------------------------------*/ |
| 164 | #ifdef __cplusplus |
| 165 | extern "C" |
| 166 | #endif |
| 167 | struct FimgApi * createFimgApi(); |
| 168 | |
| 169 | #ifdef __cplusplus |
| 170 | extern "C" |
| 171 | #endif |
| 172 | void destroyFimgApi(FimgApi * ptrFimgApi); |
| 173 | |
| 174 | #ifdef __cplusplus |
| 175 | extern "C" |
| 176 | #endif |
| 177 | int stretchFimgApi(FimgRect * src, |
| 178 | FimgRect * dst, |
| 179 | FimgClip * clip, |
| 180 | FimgFlag * flag); |
| 181 | #ifdef __cplusplus |
| 182 | extern "C" |
| 183 | #endif |
| 184 | int SyncFimgApi(void); |
| 185 | |
| 186 | #endif //FIMG_API_H |