1 #ifndef DALI_INTERNAL_ADAPTOR_ALPHA_MASK_H
2 #define DALI_INTERNAL_ADAPTOR_ALPHA_MASK_H
5 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 #include "pixel-buffer-impl.h"
30 * Apply the mask to a buffer's alpha channel
31 * @param[in] buffer The buffer to apply the mask to
32 * @param[in] mask The mask to apply
34 void ApplyMaskToAlphaChannel( PixelBuffer& buffer, const PixelBuffer& mask );
37 * Create a new PixelBuffer with an alpha channel large enough to handle the alpha from
38 * the mask, converting the color values to the new size, and either multiplying the mask's
39 * alpha into the existing alpha value, or writing the mask's alpha value directly into
40 * the new buffer's alpha channel.
42 * @param[in] buffer The buffer to apply the mask to
43 * @param[in] mask The mask to apply
44 * @return A new pixel buffer containing the masked image
46 PixelBufferPtr CreateNewMaskedBuffer( const PixelBuffer& buffer, const PixelBuffer& mask );
49 * Read a weighted sample from the given channel for a given coordinate
50 * @param[in] buffer The buffer to read from
51 * @param[in] pixelFormat The pixel format of the buffer
52 * @param[in] stride The stride across the buffer
53 * @param[in] x The x coordinate to sample from
54 * @param[in] y The y coordinate to sample from
55 * @param[in] width The width of the buffer in pixels
56 * @param[in] height The height of the buffer in pixels
57 * @param[in] channel The channel to read from
58 * @return An averaged value from the 4 pixels around the given coordinate
60 float ReadWeightedSample( unsigned char* buffer, Pixel::Format pixelFormat, int stride, float x, float y, int width, int height, Channel channel );
63 } //namespace Internal
66 #endif // DALI_INTERNAL_ADAPTOR_ALPHA_MASK_H