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

Reply via email to