#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
{
{
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
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.
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.
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
// 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.
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;
+ virtual bool LoadFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const = 0;
/**
* Load a shader binary file into a buffer
* @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