X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fresource-types.h;h=fd0decff7cc55e99ae570b33155b29b995121ace;hb=d12ff6718dd01d8fa663550ff178e228062c40d4;hp=f6b420d942f5055e54c9dfefe11433c1e7d51342;hpb=432923e17cb38a99fc012473ef97fa8c4fc36162;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/integration-api/resource-types.h b/dali/integration-api/resource-types.h index f6b420d..fd0decf 100644 --- a/dali/integration-api/resource-types.h +++ b/dali/integration-api/resource-types.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTEGRATION_RESOURCE_TYPES_H__ -#define __DALI_INTEGRATION_RESOURCE_TYPES_H__ +#ifndef DALI_INTEGRATION_RESOURCE_TYPES_H +#define DALI_INTEGRATION_RESOURCE_TYPES_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,76 +20,21 @@ // EXTERNAL INCLUDES #include -#include // INTERNAL INCLUDES -#include -#include -#include +#include #include -#include -#include namespace Dali { - -typedef Uint16Pair ImageDimensions; +using ImageDimensions = Uint16Pair; namespace Integration { - -// Resource Types - -/** - * Extendable set of resource types - */ -enum ResourceTypeId -{ - ResourceBitmap, - ResourceNativeImage, - ResourceTargetImage, - ResourceShader -}; - /** - * The abstract base class for resource types. + * BitmapResourceType describes a bitmap resource. */ -struct ResourceType -{ - /** - * Constructor. - * @param[in] typeId resource type id - */ - ResourceType(ResourceTypeId typeId) - : id(typeId) {} - - /** - * Destructor. - */ - virtual ~ResourceType() {} - - /** - * Create a copy of the resource type with the same attributes. - * @return pointer to the new ResourceType. - */ - virtual ResourceType* Clone() const = 0; - - const ResourceTypeId id; - -private: - - // Undefined copy constructor. - ResourceType(const ResourceType& typePath); - - // Undefined assignment operator. - ResourceType& operator=(const ResourceType& rhs); -}; - -/** - * BitmapResourceType describes a bitmap resource, which can be requested - * from ResourceLoader::LoadResource() or AllocateBitmapImage. - */ -struct BitmapResourceType : public ResourceType +struct BitmapResourceType { /** * Constructor. @@ -101,36 +46,31 @@ struct BitmapResourceType : public ResourceType * @param[in] orientationCorrection Whether to use bitmap metadata to rotate or * flip the bitmap, e.g., from portrait to landscape. */ - BitmapResourceType( ImageDimensions size = ImageDimensions( 0, 0 ), - FittingMode::Type scalingMode = FittingMode::DEFAULT, - SamplingMode::Type samplingMode = SamplingMode::DEFAULT, - bool orientationCorrection = true ) - : ResourceType(ResourceBitmap), - size(size), scalingMode(scalingMode), samplingMode(samplingMode), orientationCorrection(orientationCorrection) {} + BitmapResourceType(ImageDimensions size = ImageDimensions(0, 0), + FittingMode::Type scalingMode = FittingMode::DEFAULT, + SamplingMode::Type samplingMode = SamplingMode::DEFAULT, + bool orientationCorrection = true) + : size(size), + scalingMode(scalingMode), + samplingMode(samplingMode), + orientationCorrection(orientationCorrection) + { + } /** * Destructor. */ - virtual ~BitmapResourceType() {} - - /** - * @copydoc ResourceType::Clone - */ - virtual ResourceType* Clone() const - { - return new BitmapResourceType( size, scalingMode, samplingMode, orientationCorrection ); - } + ~BitmapResourceType() = default; /** * Attributes are copied from the request. */ - ImageDimensions size; - FittingMode::Type scalingMode; + ImageDimensions size; + FittingMode::Type scalingMode; SamplingMode::Type samplingMode; - bool orientationCorrection; + bool orientationCorrection; private: - // Undefined copy constructor. BitmapResourceType(const BitmapResourceType& typePath); @@ -138,149 +78,8 @@ private: BitmapResourceType& operator=(const BitmapResourceType& rhs); }; -/** - * NativeImageResourceType describes a native image resource, which can be injected - * through ResourceManager::AddNativeImage() or requested through ResourceLoader::LoadResource(). - * If the adaptor does not support NativeImages, it can fall back to Bitmap type. - */ -struct NativeImageResourceType : public ResourceType -{ - /** - * Constructor. - */ - NativeImageResourceType() - : ResourceType(ResourceNativeImage) {} - - /** - * Constructor. - * @param[in] dimensions Width and Height to allocate for image. - */ - NativeImageResourceType( ImageDimensions dimensions ) - : ResourceType(ResourceNativeImage), - imageDimensions(dimensions) {} - - /** - * Destructor. - */ - virtual ~NativeImageResourceType() {} - - /** - * @copydoc ResourceType::Clone - */ - virtual ResourceType* Clone() const - { - return new NativeImageResourceType(imageDimensions); - } - - /** - * Attributes are copied from the request (if supplied). - */ - ImageDimensions imageDimensions; - -private: - - // Undefined copy constructor. - NativeImageResourceType(const NativeImageResourceType& typePath); - - // Undefined assignment operator. - NativeImageResourceType& operator=(const NativeImageResourceType& rhs); -}; - -/** - * RenderTargetResourceType describes a bitmap resource, which can injected - * through ResourceManager::AddTargetImage() - */ -struct RenderTargetResourceType : public ResourceType -{ - /** - * Constructor. - */ - RenderTargetResourceType() - : ResourceType(ResourceTargetImage) {} - - /** - * Constructor. - * @param[in] dims Width and Height to allocate for image. - */ - RenderTargetResourceType( ImageDimensions dims ) - : ResourceType(ResourceTargetImage), - imageDimensions(dims) {} - - /** - * Destructor. - */ - virtual ~RenderTargetResourceType() {} - - /** - * @copydoc ResourceType::Clone - */ - virtual ResourceType* Clone() const - { - return new RenderTargetResourceType(imageDimensions); - } - - /** - * Image size is copied from the request. - */ - ImageDimensions imageDimensions; - -private: - - // Undefined copy constructor. - RenderTargetResourceType(const RenderTargetResourceType& typePath); - - // Undefined assignment operator. - RenderTargetResourceType& operator=(const RenderTargetResourceType& rhs); -}; - -/** - * ShaderResourceType describes a shader program resource, which can be requested - * from PlatformAbstraction::LoadResource() - */ -struct ShaderResourceType : public ResourceType -{ - /** - * Constructor. - */ - ShaderResourceType(size_t shaderHash, const std::string& vertexSource, const std::string& fragmentSource) - : ResourceType(ResourceShader), - hash(shaderHash), - vertexShader(vertexSource), - fragmentShader(fragmentSource) - { - } - - /** - * Destructor. - */ - virtual ~ShaderResourceType() - { - } - - /** - * @copydoc ResourceType::Clone - */ - virtual ResourceType* Clone() const - { - return new ShaderResourceType(hash, vertexShader, fragmentShader); - } - -public: // Attributes - size_t hash; ///< Hash of the vertex/fragment sources - const std::string vertexShader; ///< source code for vertex program - const std::string fragmentShader; ///< source code for fragment program - -private: - - // Undefined copy constructor. - ShaderResourceType(const ShaderResourceType& typePath); - - // Undefined assignment operator. - ShaderResourceType& operator=(const ShaderResourceType& rhs); -}; - } // namespace Integration } // namespace Dali -#endif // __DALI_INTEGRATION_RESOURCE_TYPES_H__ +#endif // DALI_INTEGRATION_RESOURCE_TYPES_H