Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_object_image.c Log Message: 1. fix a lot of things so they pass make distcheck - so many things have broken. guys - need to be more careful! 2. asparagus 3. some extra docs/comments for evas =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_image.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -3 -r1.52 -r1.53 --- evas_object_image.c 28 Jun 2007 23:22:20 -0000 1.52 +++ evas_object_image.c 10 Jul 2007 00:13:26 -0000 1.53 @@ -91,6 +91,77 @@ * @defgroup Evas_Object_Image Image Object Functions * * Functions used to create and manipulate image objects. + * + * Note - Image objects may return or accept "image data" in multiple formats. + * This is based on the colorspace of an object. Here is a rundown on formats: + * + * EVAS_COLORSPACE_ARGB8888: + * + * This pixel format is a linear block of pixels, starting at the top-left row + * by row until the bottom right of the image or pixel region. All pixels are + * 32-bit unsigned int's with the high-byte being alpha and the low byte being + * blue in the format ARGB. Alpha may ore may not be used by evas depending on + * the alpha flag of the image, but if not used, should be set to 0xff anyway. + * + * This colorspace uses premultiplied alpha. That means that R, G and B cannot + * exceed A in value. The conversion from non-premultiplied colorspace is: + * + * R = (r * a) / 255; G = (g * a) / 255; B = (b * a) / 255; + * + * So 50% transparent blue will be: 0x80000080. This will not be "dark" - just + * 50% transparent. Values are 0 == black, 255 == solid or full red, green or + * blue. + * + * EVAS_COLORSPACE_YCBCR422P601_PL: + * + * This is a pointer-list indirected set of YUV (YCbCr) pixel data. This means + * that the data returned or set is not actual pixel data, but pointers TO + * lines of pixel data. The list of pointers will first be N rows of pointers + * to the Y plane - pointing to the first pixel at the start of each row in + * the Y plane. N is the height of the image data in pixels. Each pixel in the + * Y, U and V planes is 1 byte exactly, packed. The next N / 2 pointers will + * point to rows in the U plane, and the next N / 2 pointers will point to + * the V plane rows. U and V planes are half the horizontal and vertical + * resolution of the U plane. + * + * Row order is top to bottom and row pixels are stored left to right. + * + * There is a limitation that these images MUST be a multiple of 2 pixels in + * size horizontally or vertically. This is due to the U and V planes being + * half resolution. Also note that this assumes the itu601 YUV colorspace + * specification. This is defined for standard television and mpeg streams. + * HDTV may use the itu709 specification. + * + * Values are 0 to 255, indicating full or no signal in that plane + * respectively. + * + * EVAS_COLORSPACE_YCBCR422P709_PL: + * + * Not implemented yet. + * + * EVAS_COLORSPACE_RGB565_A5P: + * + * In the process of being implemented in 1 engine only. This may change. + * + * This is a pointer to image data for 16-bit half-word pixel data in 16bpp + * RGB 565 format (5 bits red, 6 bits green, 5 bits blue), with the high-byte + * containing red and the low byte containing blue, per pixel. This data is + * packed row by row from the top-left to the bottom right. + * + * If the image has an alpha channel enabled there will be an extra alpha plane + * after the color pixel plane. If not, then this data will not exist and + * should not be accessed in any way. This plane is a set of pixels with 1 + * byte per pixel defining the alpha values of all pixels in the image from + * the top-left to the bottom right of the image, row by row. Even though + * the values of the alpha pixels can be 0 to 255, only values 0 through to 32 + * are used, 32 being solid and 0 being transparent. + * + * RGB values can be 0 to 31 for red and blue and 0 to 63 for green, with 0 + * being black and 31 or 63 being full red, green or blue respectively. This + * colorspace is also pre-multiplied like EVAS_COLORSPACE_ARGB8888 so: + * + * R = (r * a) / 32; G = (g * a) / 32; B = (b * a) / 32; + * */ /** @@ -583,7 +654,7 @@ * Sets the raw image data. * load for the given image object. * @param obj The given image object. - * @param data The given data as 32 bit unsigned integer in format ARGB. + * @param data The given data is a pointer to image data whose format is specific to the colorspace of the image. * @ingroup Evas_Object_Image */ EAPI void @@ -645,7 +716,7 @@ * load for the given image object. * @param obj The given image object. * @param for_writing FIXME: who knows? - * @return A pointer to the raw data as 32 bit unsigned integer in format ARGB. + * @return data The given data is a pointer to image data whose format is specific to the colorspace of the image. * @ingroup Evas_Object_Image */ EAPI void * @@ -707,7 +778,7 @@ * @see evas_object_image_data_get * * @param obj The given image object. - * @param data pointer to the new pixel buffer + * @param data The given data is a pointer to image data whose format is specific to the colorspace of the image. * @ingroup Evas_Object_Image_Data * @ingroup Evas_Object_Image_Size */ ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs