Support for ASTC compressed textures wrapped in KTX files
[platform/core/uifw/dali-core.git] / dali / integration-api / platform-abstraction.h
index d39fe6c..3697fa1 100644 (file)
@@ -23,6 +23,7 @@
 #include <dali/integration-api/resource-cache.h>
 #include <dali/integration-api/bitmap.h> ///@todo Remove this include (a bunch of stuff needs to include it though)
 #include <dali/public-api/images/image-operations.h>
+#include <dali/public-api/common/dali-vector.h>
 
 namespace Dali
 {
@@ -30,9 +31,6 @@ namespace Dali
 namespace Integration
 {
 
-class DynamicsFactory;
-
-
 /**
  * PlatformAbstraction is an abstract interface, used by Dali to access platform specific services.
  * A concrete implementation must be created for each platform, and provided when creating the
@@ -42,19 +40,12 @@ class PlatformAbstraction
 {
 public:
 
-  virtual ~PlatformAbstraction() {}
-
-  // Dali Lifecycle
-
   /**
-   * Get the monotonic time since an unspecified reference point.
-   * This is used by Dali to calculate time intervals during animations; the interval is
-   * recalculated when Dali is resumed with Dali::Integration::Core::Resume().
-   * Multi-threading note: this method may be called from either the main or rendering thread.
-   * @param[out] seconds The time in seconds since the reference point.
-   * @param[out] microSeconds The remainder in microseconds.
+   * Virtual destructor.
    */
-  virtual void GetTimeMicroseconds(unsigned int& seconds, unsigned int& microSeconds) = 0;
+  virtual ~PlatformAbstraction() {}
+
+  // DALi Lifecycle
 
   /**
    * Tell the platform abstraction that Dali is ready to pause, such as when the
@@ -99,7 +90,7 @@ public:
                                                bool orientationCorrection = true) = 0;
 
   /**
-   @brief Determine the size of an image the resource loaders will provide when
+   @brief Determine the size of an image the resource loaders will provide when
    * given the same image loading parameters.
    *
    * This is a synchronous request.
@@ -144,10 +135,14 @@ public:
   virtual ResourcePointer LoadResourceSynchronously( const ResourceType& resourceType, const std::string& resourcePath ) = 0;
 
   /**
-   * Request that a resource be saved to the native filesystem.
-   * This is an asynchronous request.
+   * Decode a buffer of data synchronously.
+   * @param[in] resourceType The type of resource to load
+   * @param[in] buffer The decoded data
+   * @param[in] bufferSize The size of the buffer used by the decoded data.
+   *
+   * @return A pointer to the decoded buffer.
    */
-  virtual void SaveResource(const ResourceRequest& request) = 0;
+  virtual BitmapPtr DecodeBuffer( const ResourceType& resourceType, uint8_t * buffer, size_t bufferSize ) = 0;
 
   /**
    * Cancel an ongoing LoadResource() request.
@@ -159,13 +154,6 @@ public:
   virtual void CancelLoad(ResourceId id, ResourceTypeId typeId) = 0;
 
   /**
-   * Query whether any asynchronous LoadResource() requests are ongoing.
-   * Multi-threading note: this method may be called from either the main or rendering thread.
-   * @return True if resources are being loaded.
-   */
-  virtual bool IsLoading() = 0;
-
-  /**
    * Retrieve newly loaded resources.
    * If no resources have finished loading, then this method returns immediately.
    * Multi-threading note: this method will be called from the update thread, from within
@@ -184,15 +172,6 @@ public:
   // Font Queries
 
   /**
-   * Called by Dali to retrieve the default font family & style for the platform.
-   * Multi-threading note: this method will be called from the main thread only i.e. not
-   * from within the Core::Render() method.
-   * @param[out] The default font family.
-   * @param[out] The default font style.
-   */
-  virtual void GetDefaultFontDescription( std::string& family, std::string& style ) const = 0;
-
-  /**
    * Called by Dali to retrieve the default font size for the platform.
    * This is an accessibility size, which is mapped to a UI Control specific point-size in stylesheets.
    * For example if zero the smallest size, this could potentially map to TextLabel point-size 8.
@@ -203,33 +182,12 @@ public:
   virtual int GetDefaultFontSize() const = 0;
 
   /**
-   * Sets horizontal and vertical pixels per inch value that is used by the display
-   * @param[in] dpiHorizontal horizontal dpi value
-   * @param[in] dpiVertical   vertical dpi value
-   */
-  virtual void SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical) = 0;
-
-  /**
    * Load a file into a buffer
    * @param[in] filename The filename to load
    * @param[out] buffer  A buffer to receive the file.
    * @result             true if the file is loaded.
    */
-  virtual bool LoadFile( const std::string& filename, std::vector< unsigned char >& buffer ) const = 0;
-
-  /**
-   * Load a file into a buffer
-   * @param[in] filename The filename to save
-   * @param[out] buffer  A buffer containing some data
-   *                     The buffer is implemeneted with a std::vector. The size() member specifies the buffer length.
-   * @result             true if the file is saved.
-   */
-  virtual bool SaveFile(const std::string& filename, std::vector< unsigned char >& buffer) const = 0;
-
-  /**
-   * Get a pointer to the DynamicsFactory.
-   */
-  virtual DynamicsFactory* GetDynamicsFactory() = 0;
+  virtual bool LoadFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const = 0;
 
   /**
    * Load a shader binary file into a buffer
@@ -237,7 +195,16 @@ public:
    * @param[out] buffer  A buffer to receive the file.
    * @result             true if the file is loaded.
    */
-  virtual bool LoadShaderBinFile( const std::string& filename, std::vector< unsigned char >& buffer ) const = 0;
+  virtual bool LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const = 0;
+
+  /**
+   * Save a shader binary file to the resource file system.
+   * @param[in] filename The shader binary filename to save to.
+   * @param[in] buffer  A buffer to write the file from.
+   * @param[in] numbytes Size of the buffer.
+   * @result             true if the file is saved, else false.
+   */
+  virtual bool SaveShaderBinaryFile( const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const = 0;
 
 }; // class PlatformAbstraction