X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Frendering%2Ftexture-impl.h;h=4d3a1330ee539c9c53ba72f15a46f4cac333b659;hb=1eac313ff98060f49ae6451a5365093a6024c017;hp=57b098d9b1decd0d3ccdfa8f88aa8e97c74e664f;hpb=65da282ec9187dd52fbb07e24b809540ecaaf4e9;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/rendering/texture-impl.h b/dali/internal/event/rendering/texture-impl.h index 57b098d..4d3a133 100644 --- a/dali/internal/event/rendering/texture-impl.h +++ b/dali/internal/event/rendering/texture-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_NEW_TEXTURE_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -21,6 +21,7 @@ // INTERNAL INCLUDES #include #include +#include #include // DALI_ASSERT_ALWAYS #include // Dali::IntrusivePtr #include // Dali::ImageDimensions @@ -32,11 +33,6 @@ namespace Dali { namespace Internal { -namespace Render -{ -class Texture; -} - class Texture; using TexturePtr = IntrusivePtr; @@ -44,19 +40,6 @@ class Texture : public BaseObject { public: /** - * @brief Structure used to pass parameters to the Upload method - */ - struct UploadParams - { - uint16_t layer; ///< Specifies the layer of a cube map or array texture - uint16_t mipmap; ///< Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image. - uint16_t xOffset; ///< Specifies a texel offset in the x direction within the texture array. - uint16_t yOffset; ///< Specifies a texel offset in the y direction within the texture array. - uint16_t width; ///< Specifies the width of the texture subimage - uint16_t height; ///< Specifies the height of the texture subimage. - }; - - /** * @brief Create a new Texture. * * @param[in] type The type of the texture @@ -65,7 +48,7 @@ public: * @param[in] height The height of the texture * @return A smart-pointer to the newly allocated Texture. */ - static TexturePtr New(TextureType::Type type, Pixel::Format format, unsigned int width, unsigned int height); + static TexturePtr New(TextureType::Type type, Pixel::Format format, uint32_t width, uint32_t height); /** * @brief Creates a new Texture from a native image @@ -75,11 +58,20 @@ public: static TexturePtr New(NativeImageInterface& nativeImageInterface); /** + * @brief Create a new Texture with resourceId. + * + * @param[in] type The type of the texture + * @param[in] resourceId The unique id of this texture combind with TextureUploadManager + * @return A smart-pointer to the newly allocated Texture. + */ + static TexturePtr New(TextureType::Type type, uint32_t resourceId); + + /** * @brief Get the texture render object * * @return the texture render object */ - Render::Texture* GetRenderObject() const; + Render::TextureKey GetRenderTextureKey() const; /** * @copydoc Dali::Texture::Upload() @@ -90,12 +82,36 @@ public: * @copydoc Dali::Texture::Upload() */ bool Upload(PixelDataPtr pixelData, - unsigned int layer, - unsigned int mipmap, - unsigned int xOffset, - unsigned int yOffset, - unsigned int width, - unsigned int height); + uint32_t layer, + uint32_t mipmap, + uint32_t xOffset, + uint32_t yOffset, + uint32_t width, + uint32_t height); + + /** + * @copydoc Dali::Texture::UploadSubPixelData() + */ + bool UploadSubPixelData(PixelDataPtr pixelData, + uint32_t dataXOffset, + uint32_t dataYOffset, + uint32_t dataWidth, + uint32_t dataHeight); + + /** + * @copydoc Dali::Texture::UploadSubPixelData() + */ + bool UploadSubPixelData(PixelDataPtr pixelData, + uint32_t dataXOffset, + uint32_t dataYOffset, + uint32_t dataWidth, + uint32_t dataHeight, + uint32_t layer, + uint32_t mipmap, + uint32_t xOffset, + uint32_t yOffset, + uint32_t width, + uint32_t height); /** * @copydoc Dali::Texture::GenerateMipmaps() @@ -105,12 +121,37 @@ public: /** * @copydoc Dali::Texture::GetWidth() */ - unsigned int GetWidth() const; + uint32_t GetWidth() const; /** * @copydoc Dali::Texture::GetHeight() */ - unsigned int GetHeight() const; + uint32_t GetHeight() const; + + /** + * @copydoc Dali::Texture::GetPixelFormat() + */ + Pixel::Format GetPixelFormat() const; + + /** + * @copydoc Dali::Integration::GetTextureResourceId() + */ + uint32_t GetResourceId() const; + + /** + * @copydoc Dali::Integration::GetTextureType() + */ + Dali::TextureType::Type GetTextureType() const; + + /** + * @copydoc Dali::Integration::SetTextureSize() + */ + void SetSize(const ImageDimensions& size); + + /** + * @copydoc Dali::Integration::SetTexturePixelFormat() + */ + void SetPixelFormat(Pixel::Format format); /** * @brief Determine if the texture is a native image @@ -143,6 +184,13 @@ private: // implementation Texture(NativeImageInterfacePtr nativeImageInterface); /** + * Constructor from resource id + * @param[in] type The type of the texture + * @param[in] resourceId The resouce id for texture upload manager using + */ + Texture(TextureType::Type type, uint32_t resourceId); + + /** * Second stage initialization of the Texture */ void Initialize(); @@ -159,12 +207,16 @@ private: // unimplemented methods private: // data Internal::EventThreadServices& mEventThreadServices; ///