diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-12-09 13:22:21 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-12-09 13:22:21 +0000 |
commit | 30f14e03375e1bcf3dbd577371346fc772bd9a56 (patch) | |
tree | 12e9c1096ef2b3a57a6632e6bcd790f9ea9b08c8 /offapi | |
parent | ec7fe07d774a1a45695ade0cb883cd8ba42fdf70 (diff) |
CWS-TOOLING: integrate CWS canvas06
2008-11-14 18:59:03 +0100 thb r263697 : Reverted fAlpha setup to previous state, as this was bogus as well - code path is apparently not taken for test, but anyway
2008-11-13 21:32:45 +0100 thb r263663 : WaE fix (and a bad bug as well - int color would have overflown)
2008-11-13 16:51:37 +0100 pl r263654 : remove warnings
2008-11-13 09:46:28 +0100 thb r263623 : #i95317# Fixed typo (thx WaE for finding)
2008-11-12 21:25:19 +0100 thb r263617 : #i96047# call update() on hidden sprite shape as well, to force actual hiding
2008-11-12 21:23:31 +0100 thb r263616 : #i95209# Merge from CWS thb11 - revives canvasbitmap unit tests, fixes nasty corner case in x11 salbmp (for 16bpp)
2008-11-12 21:21:46 +0100 thb r263615 : #i95197# Shuffled code to make valgrind quiet during bmp loading
2008-11-12 21:18:06 +0100 thb r263614 : #i93382# Make --disable-moz build work
2008-11-12 21:16:55 +0100 thb r263613 : #i95317# Fixed mis-named traits methods for min and max numbers
2008-11-12 20:59:01 +0100 thb r263612 : #i95317#, #i92902#: migrate CWS canvas06 to SVN.
Diffstat (limited to 'offapi')
-rw-r--r-- | offapi/com/sun/star/rendering/ColorComponentTag.idl | 38 | ||||
-rw-r--r-- | offapi/com/sun/star/rendering/XColorSpace.idl | 47 | ||||
-rw-r--r-- | offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl | 46 |
3 files changed, 115 insertions, 16 deletions
diff --git a/offapi/com/sun/star/rendering/ColorComponentTag.idl b/offapi/com/sun/star/rendering/ColorComponentTag.idl index 692ffdbd7469..73fdc78a4de4 100644 --- a/offapi/com/sun/star/rendering/ColorComponentTag.idl +++ b/offapi/com/sun/star/rendering/ColorComponentTag.idl @@ -84,50 +84,58 @@ constants ColorComponentTag /// Grey value. Used for monochrome color spaces const byte GREY=13; + /** Premultiplied alpha channel<p> + + Note that this alpha format actually influences the other color + components, in that their values are pre-multiplied with the + alpha value.<p> + */ + const byte PREMULTIPLIED_ALPHA=14; + /// CieXYZ X value - const byte CIEXYZ_X=14; + const byte CIEXYZ_X=15; /// CieXYZ Y value - const byte CIEXYZ_Y=15; + const byte CIEXYZ_Y=16; /// CieXYZ Z value - const byte CIEXYZ_Z=16; + const byte CIEXYZ_Z=17; /// CieLab L value - const byte CIELAB_L=17; + const byte CIELAB_L=18; /// CieLab a value - const byte CIELAB_A=18; + const byte CIELAB_A=19; /// CieLab b value - const byte CIELAB_B=19; + const byte CIELAB_B=20; /// HSV H value - const byte HSV_H=20; + const byte HSV_H=21; /// HSV S value - const byte HSV_S=21; + const byte HSV_S=22; /// HSV V value - const byte HSV_V=22; + const byte HSV_V=23; /// HSL H value - const byte HSL_H=23; + const byte HSL_H=24; /// HSL S value - const byte HSL_S=24; + const byte HSL_S=25; /// HSL L value - const byte HSL_L=25; + const byte HSL_L=26; /// YCbCr Y value - const byte YCBCR_Y=26; + const byte YCBCR_Y=27; /// YCbCr Cb value - const byte YCBCR_CB=27; + const byte YCBCR_CB=28; /// YCbCr Cr value - const byte YCBCR_CR=28; + const byte YCBCR_CR=29; }; }; }; }; }; diff --git a/offapi/com/sun/star/rendering/XColorSpace.idl b/offapi/com/sun/star/rendering/XColorSpace.idl index 4b27f4a6c567..20459f46ff88 100644 --- a/offapi/com/sun/star/rendering/XColorSpace.idl +++ b/offapi/com/sun/star/rendering/XColorSpace.idl @@ -208,6 +208,30 @@ interface XColorSpace sequence<ARGBColor> convertToARGB( [in] sequence<ColorComponent> deviceColor ) raises (com::sun::star::lang::IllegalArgumentException); + /** Convert color value in this color space to premultiplied sRGB + color values, with linear alpha.<p> + + If the given input color does not carry alpha information, an + alpha value of 1.0 (fully opaque) is assumed. The resulting + individual RGB color values are premultiplied by the alpha + value (e.g. if alpha is 0.5, each color value has only half of + the original intensity).<p> + + @param deviceColor Sequence of device color components. Is + permitted to contain more than one device color element, + therefore, batch conversion of multiple color values is + possible. + + @return the corresponding sequence of colors in the sRGB color + space. + + @throws a + <type>com::sun::star::lang::IllegalArgumentException</type>, + if the input sequence does not match the device color format. + */ + sequence<ARGBColor> convertToPARGB( [in] sequence<ColorComponent> deviceColor ) + raises (com::sun::star::lang::IllegalArgumentException); + /** Convert sRGB color to a representation in this color space.<p> If this color space conveys alpha information, it is assumed @@ -231,7 +255,7 @@ interface XColorSpace If this color space does not convey alpha information, the specified alpha value is silently ignored. - @param deviceColor Sequence of sRGB color components. Is + @param rgbColor Sequence of sRGB color components. Is permitted to contain more than one color element, therefore, batch conversion of multiple color values is possible. @@ -243,6 +267,27 @@ interface XColorSpace */ sequence<ColorComponent> convertFromARGB( [in] sequence<ARGBColor> rgbColor ) raises (com::sun::star::lang::IllegalArgumentException); + + /** Convert premultiplied sRGB color with linear alpha into this + color space.<p> + + If this color space does not convey alpha information, the + specified alpha value is silently ignored. + + @param rgbColor Sequence of sRGB color components. Is + permitted to contain more than one color element, therefore, + batch conversion of multiple color values is possible. The + individual color values are assumed to be premultiplied by the + alpha value. + + @return the corresponding sequence of device colors. + + @throws a + <type>com::sun::star::lang::IllegalArgumentException</type>, + if the input sequence does not match the device color format. + */ + sequence<ColorComponent> convertFromPARGB( [in] sequence<ARGBColor> rgbColor ) + raises (com::sun::star::lang::IllegalArgumentException); }; }; }; }; }; diff --git a/offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl b/offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl index 879d390cf125..1ceaa1b3ac91 100644 --- a/offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl +++ b/offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl @@ -185,6 +185,30 @@ interface XIntegerBitmapColorSpace : XColorSpace sequence<ARGBColor> convertIntegerToARGB( [in] sequence<byte> deviceColor ) raises (com::sun::star::lang::IllegalArgumentException); + /** Convert color value in this color space to premultiplied sRGB + color values, with linear alpha.<p> + + If the given input color does not carry alpha information, an + alpha value of 1.0 (fully opaque) is assumed. Color values + are properly rounded and clipped, to be valid in the target + color space. The resulting individual RGB color values are + premultiplied by the alpha value (e.g. if alpha is 0.5, each + color value has only half of the original intensity).<p> + + @param deviceColor Sequence of device color components. Is + permitted to contain more than one device color element, + therefore, batch conversion of multiple color values is + possible. + + @return the corresponding sequence of sRGB colors. + + @throws a + <type>com::sun::star::lang::IllegalArgumentException</type>, + if the input sequence does not match the device color format. + */ + sequence<ARGBColor> convertIntegerToPARGB( [in] sequence<byte> deviceColor ) + raises (com::sun::star::lang::IllegalArgumentException); + /** Convert sRGB color to an integer representation in this color space.<p> @@ -226,6 +250,28 @@ interface XIntegerBitmapColorSpace : XColorSpace sequence<byte> convertIntegerFromARGB( [in] sequence<ARGBColor> rgbColor ) raises (com::sun::star::lang::IllegalArgumentException); + /** Convert premultiplied sRGB color with linear alpha into this + color space.<p> + + If this color space does not convey alpha information, the + specified alpha value is silently ignored. Color values are + properly rounded and clipped, to be valid in the target color + space.<p> + + @param deviceColor Sequence of sRGB color components. Is + permitted to contain more than one color element, therefore, + batch conversion of multiple color values is possible. The + individual RGB color values are assumed to be premultiplied by + the alpha value already. + + @return the corresponding sequence of device colors. + + @throws a + <type>com::sun::star::lang::IllegalArgumentException</type>, + if the input sequence does not match the device color format. + */ + sequence<byte> convertIntegerFromPARGB( [in] sequence<ARGBColor> rgbColor ) + raises (com::sun::star::lang::IllegalArgumentException); }; }; }; }; }; |