146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef PPAPI_CPP_COMPOSITOR_LAYER_H_ 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define PPAPI_CPP_COMPOSITOR_LAYER_H_ 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/c/ppb_compositor_layer.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/cpp/graphics_3d.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/cpp/image_data.h" 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/cpp/rect.h" 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/cpp/resource.h" 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "ppapi/cpp/size.h" 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace pp { 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class CompositorLayer : public Resource { 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Default constructor for creating an is_null() 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// <code>CompositorLayer</code> object. 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) CompositorLayer(); 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// The copy constructor for <code>CompositorLayer</code>. 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @param[in] other A reference to a <code>CompositorLayer</code>. 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) CompositorLayer(const CompositorLayer& other); 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Constructs a <code>CompositorLayer</code> from a <code>Resource</code>. 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @param[in] resource A <code>PPB_CompositorLayer</code> resource. 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) explicit CompositorLayer(const Resource& resource); 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// A constructor used when you have received a <code>PP_Resource</code> as a 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// return value that has had 1 ref added for you. 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @param[in] resource A <code>PPB_CompositorLayer</code> resource. 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) CompositorLayer(PassRef, PP_Resource resource); 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Destructor. 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ~CompositorLayer(); 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the color of a solid color layer. If the layer is uninitialized, it 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// will initialize the layer first, and then set its color. If the layer has 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// been initialized to another kind of layer, the layer will not be changed, 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// and <code>PP_ERROR_BADARGUMENT</code> will be returned. 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] red A <code>float</code> for the red color component. It will be 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// clamped to [0, 1] 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] green A <code>float</code> for the green color component. 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// It will be clamped to [0, 1]. 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] blue A <code>float</code> for the blue color component. It will 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// be clamped to [0, 1]. 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] alpha A <code>float</code> for the alpha color component. 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// It will be clamped to [0, 1]. 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] size A <code>Size</code> for the size of the layer before 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// transform. 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetColor(float red, 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) float green, 6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) float blue, 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) float alpha, 6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const Size& size); 6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the texture of a texture layer. If the layer is uninitialized, it 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// will initialize the layer first, and then set its texture. The source rect 6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// will be set to ((0, 0), (1, 1)). If the layer has been initialized to 6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// another kind of layer, the layer will not be changed, and 6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// <code>PP_ERROR_BADARGUMENT</code> will be returned. 7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] context A <code>Graphics3D</code> corresponding to a graphics 3d 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// resource which owns the GL texture. 736e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /// param[in] target GL texture target (GL_TEXTURE_2D, etc). 7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] texture A GL texture object id. 7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] size A <code>Size</code> for the size of the layer before 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// transform. 7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] cc A <code>CompletionCallback</code> to be called when 7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// the texture is released by Chromium compositor. 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetTexture(const Graphics3D& context, 826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) uint32_t target, 8346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) uint32_t texture, 8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const Size& size, 8546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const CompletionCallback& cc); 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the image of an image layer. If the layer is uninitialized, it will 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// initiliaze the layer first, and then set the image of it. If the layer has 8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// been initialized to another kind of layer, the layer will not be changed, 9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// and <code>PP_ERROR_BADARGUMENT</code> will be returned. 9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 9246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] image_data A <code>PP_Resource</code> corresponding to an image 9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// data resource. 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] cc A <code>CompletionCallback</code> to be called when 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// the image data is released by Chromium compositor. 9646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 9746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 9846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetImage(const ImageData& image, 9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const CompletionCallback& callback); 10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the image of an image layer. If the layer is uninitialized, it will 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// initialize the layer first, and then set its image. The layer size will 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// be set to the image's size. The source rect will be set to the full image. 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// If the layer has been initialized to another kind of layer, the layer will 10546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// not be changed, and <code>PP_ERROR_BADARGUMENT</code> will be returned. 10646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 10746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] image_data A <code>ImageData</code> corresponding to an image 10846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// data resource. 10946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] size A <code>Size</code> for the size of the layer before 11046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// transform. 11146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] cc A <code>CompletionCallback</code> to be called when the image 11246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// data is released by Chromium compositor. 11346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 11446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 11546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetImage(const ImageData& image, 11646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const Size& size, 11746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const CompletionCallback& callback); 11846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 11946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets a clip rectangle for a compositor layer. The Chromium compositor 12046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// applies a transform matrix on the layer first, and then clips the layer 12146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// with the rectangle. 12246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 12346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] rect The clip rectangle. The origin is top-left corner of 12446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// the plugin. 12546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 12646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 12746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetClipRect(const Rect& rect); 12846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 12946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets a transform matrix which is used to composite the layer. 13046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 13146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] matrix A float array with 16 elements. The matrix is coloum 13246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// major. The default transform matrix is an identity matrix. 13346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 13446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 13546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetTransform(const float matrix[16]); 13646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 13746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the opacity value which will be applied to the layer. The effective 13846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// value of each pixel is computed as: 13946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 14046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// if (premult_alpha) 14146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// pixel.rgb = pixel.rgb * opacity; 14246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// pixel.a = pixel.a * opactiy; 14346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 14446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] opacity A <code>float</code> for the opacity value. 14546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// The default value is 1.0f. 14646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 14746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ///@return An int32_t containing a result code from <code>pp_errors.h</code>. 14846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetOpacity(float opacity); 14946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the blend mode which is used to composite the layer. 15146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 15246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] mode A <code>PP_BlendMode</code>. The default value is 15346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// <code>PP_BLENDMODE_SRC_OVER</code>. 15446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 15546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 15646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetBlendMode(PP_BlendMode mode); 15746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets a source rectangle for a texture layer or an image layer. 15946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 16046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] rect A <code>FloatRect</code> for an area of the source to 16146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// consider. For a texture layer, rect is in uv coordinates. For an image 16246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// layer, rect is in pixels. If the rect is beyond the dimensions of the 16346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// texture or image, <code>PP_ERROR_BADARGUMENT</code> will be returned. 16446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// If the layer size does not match the source rect size, bilinear scaling 16546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// will be used. 16646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 16746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 16846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetSourceRect(const FloatRect& rect); 16946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 17046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Sets the premultiplied alpha for an texture layer. 17146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 17246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// param[in] premult A <code>bool</code> with <code>true</code> if 17346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// pre-multiplied alpha is used. 17446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 17546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return An int32_t containing a result code from <code>pp_errors.h</code>. 17646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int32_t SetPremultipliedAlpha(bool premult); 17746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 17846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// Checks whether a <code>Resource</code> is a compositor layer, to test 17946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// whether it is appropriate for use with the <code>CompositorLayer</code> 18046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// constructor. 18146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 18246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @param[in] resource A <code>Resource</code> to test. 18346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// 18446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /// @return True if <code>resource</code> is a compositor layer. 18546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static bool IsCompositorLayer(const Resource& resource); 18646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 18746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 18846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace pp 18946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif // PPAPI_CPP_COMPOSITOR_LAYER_H_ 191