[DEV] update of new etk Uri API

This commit is contained in:
Edouard DUPIN 2018-10-23 22:17:53 +02:00
parent efd3b160ad
commit 160a7dec30
16 changed files with 48 additions and 55 deletions

View File

@ -17,7 +17,7 @@ const int32_t ewol::compositing::Image::m_vboIdCoordTex(1);
const int32_t ewol::compositing::Image::m_vboIdColor(2); const int32_t ewol::compositing::Image::m_vboIdColor(2);
#define NB_VBO (3) #define NB_VBO (3)
ewol::compositing::Image::Image(const etk::String& _imageName, ewol::compositing::Image::Image(const etk::Uri& _imageName,
bool _df, bool _df,
int32_t _size) : int32_t _size) :
m_filename(_imageName), m_filename(_imageName),
@ -271,9 +271,9 @@ void ewol::compositing::Image::printPart(const vec2& _size,
m_VBO->flush(); m_VBO->flush();
} }
void ewol::compositing::Image::setSource(const etk::String& _newFile, const vec2& _size) { void ewol::compositing::Image::setSource(const etk::Uri& _uri, const vec2& _size) {
clear(); clear();
if ( m_filename == _newFile if ( m_filename == _uri
&& m_requestSize == _size) { && m_requestSize == _size) {
// Nothing to do ... // Nothing to do ...
return; return;
@ -281,14 +281,14 @@ void ewol::compositing::Image::setSource(const etk::String& _newFile, const vec2
ememory::SharedPtr<ewol::resource::TextureFile> resource = m_resource; ememory::SharedPtr<ewol::resource::TextureFile> resource = m_resource;
ememory::SharedPtr<ewol::resource::ImageDF> resourceDF = m_resourceDF; ememory::SharedPtr<ewol::resource::ImageDF> resourceDF = m_resourceDF;
ememory::SharedPtr<ewol::resource::Texture> resourceTex = m_resourceImage; ememory::SharedPtr<ewol::resource::Texture> resourceTex = m_resourceImage;
m_filename = _newFile; m_filename = _uri;
m_requestSize = _size; m_requestSize = _size;
m_resource.reset(); m_resource.reset();
m_resourceDF.reset(); m_resourceDF.reset();
m_resourceImage.reset(); m_resourceImage.reset();
ivec2 tmpSize(_size.x(),_size.y()); ivec2 tmpSize(_size.x(),_size.y());
// note that no image can be loaded... // note that no image can be loaded...
if (_newFile != "") { if (_uri.isEmpty() == false) {
// link to new one // link to new one
if (m_distanceFieldMode == false) { if (m_distanceFieldMode == false) {
m_resource = ewol::resource::TextureFile::create(m_filename, tmpSize); m_resource = ewol::resource::TextureFile::create(m_filename, tmpSize);

View File

@ -17,7 +17,7 @@ namespace ewol {
public: public:
static const int32_t sizeAuto; static const int32_t sizeAuto;
private: private:
etk::String m_filename; etk::Uri m_filename;
ivec2 m_requestSize; ivec2 m_requestSize;
vec3 m_position; //!< The current position to draw vec3 m_position; //!< The current position to draw
vec3 m_clippingPosStart; //!< Clipping start position vec3 m_clippingPosStart; //!< Clipping start position
@ -50,11 +50,11 @@ namespace ewol {
public: public:
/** /**
* @brief generic constructor * @brief generic constructor
* @param[in] _imageName Name of the file that might be loaded * @param[in] _uri URI of the file that might be loaded
* @param[in] _df enable distance field mode * @param[in] _df enable distance field mode
* @param[in] _size for the image when Verctorial image loading is requested * @param[in] _size for the image when Verctorial image loading is requested
*/ */
Image(const etk::String& _imageName="", Image(const etk::Uri& _uri="",
bool _df=false, bool _df=false,
int32_t _size=ewol::compositing::Image::sizeAuto); int32_t _size=ewol::compositing::Image::sizeAuto);
/** /**
@ -156,13 +156,13 @@ namespace ewol {
vec2 _sourcePosStop); vec2 _sourcePosStop);
/** /**
* @brief change the image Source == > can not be done to display 2 images at the same time ... * @brief change the image Source == > can not be done to display 2 images at the same time ...
* @param[in] _newFile New file of the Image * @param[in] _uri New file of the Image
* @param[in] _size for the image when Verctorial image loading is requested * @param[in] _size for the image when Verctorial image loading is requested
*/ */
void setSource(const etk::String& _newFile, int32_t _size=32) { void setSource(const etk::Uri& _uri, int32_t _size=32) {
setSource(_newFile, vec2(_size,_size)); setSource(_uri, vec2(_size,_size));
}; };
void setSource(const etk::String& _newFile, const vec2& _size); void setSource(const etk::Uri& _uri, const vec2& _size);
void setSource(egami::Image _image); void setSource(egami::Image _image);
/** /**
* @brief Sometimes the user declare an image but not allocate the ressources all the time, this is to know it .. * @brief Sometimes the user declare an image but not allocate the ressources all the time, this is to know it ..

View File

@ -44,7 +44,7 @@ ewol::Context& ewol::getContext() {
} }
void ewol::Context::setInitImage(const etk::String& _fileName) { void ewol::Context::setInitImage(const etk::Uri& _fileName) {
//m_initDisplayImageName = _fileName; //m_initDisplayImageName = _fileName;
} }

View File

@ -142,7 +142,7 @@ namespace ewol {
* @brief Special for init (main) set the start image when loading data * @brief Special for init (main) set the start image when loading data
* @param[in] _fileName Name of the image to load * @param[in] _fileName Name of the image to load
*/ */
void setInitImage(const etk::String& _fileName); void setInitImage(const etk::Uri& _fileName);
public: public:
/** /**
* @brief Request a display after call a resize * @brief Request a display after call a resize

View File

@ -160,9 +160,9 @@ static int32_t nextP2(int32_t _value) {
ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(const etk::String& _filename, ivec2 _size) { ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(const etk::Uri& _uri, ivec2 _size) {
EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size); EWOL_VERBOSE("KEEP: TextureFile: '" << _uri << "' size=" << _size);
if (_filename == "") { if (_uri.isEmpty() == true) {
ememory::SharedPtr<ewol::resource::ImageDF> object(ETK_NEW(ewol::resource::ImageDF)); ememory::SharedPtr<ewol::resource::ImageDF> object(ETK_NEW(ewol::resource::ImageDF));
if (object == null) { if (object == null) {
EWOL_ERROR("allocation error of a resource : ??TEX??"); EWOL_ERROR("allocation error of a resource : ??TEX??");
@ -180,8 +180,8 @@ ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(cons
_size.setY(-1); _size.setY(-1);
//EWOL_ERROR("Error Request the image size.y() =0 ???"); //EWOL_ERROR("Error Request the image size.y() =0 ???");
} }
etk::String TmpFilename = _filename; etk::Uri tmpFilename = _uri;
if (etk::end_with(_filename, ".svg") == false) { if (etk::toLower(_uri.getPath().getExtention()) != "svg") {
_size = ivec2(-1,-1); _size = ivec2(-1,-1);
} }
#ifdef __TARGET_OS__MacOs #ifdef __TARGET_OS__MacOs
@ -194,33 +194,31 @@ ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(cons
#ifdef __TARGET_OS__Android #ifdef __TARGET_OS__Android
_size.setValue(nextP2(_size.x()), nextP2(_size.y())); _size.setValue(nextP2(_size.x()), nextP2(_size.y()));
#endif #endif
TmpFilename += ":"; tmpFilename.getQuery().set("x", etk::toString(_size.x()));
TmpFilename += etk::toString(_size.x()); tmpFilename.getQuery().set("y", etk::toString(_size.y()));
TmpFilename += "x";
TmpFilename += etk::toString(_size.y());
} }
EWOL_VERBOSE("KEEP: TextureFile: '" << TmpFilename << "' new size=" << _size); EWOL_VERBOSE("KEEP: TextureFile: '" << tmpFilename << "' new size=" << _size);
ememory::SharedPtr<ewol::resource::ImageDF> object = null; ememory::SharedPtr<ewol::resource::ImageDF> object = null;
ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep("DF__" + TmpFilename); ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep("DF__" + tmpFilename.getString());
if (object2 != null) { if (object2 != null) {
object = ememory::dynamicPointerCast<ewol::resource::ImageDF>(object2); object = ememory::dynamicPointerCast<ewol::resource::ImageDF>(object2);
if (object == null) { if (object == null) {
EWOL_CRITICAL("Request resource file : '" << TmpFilename << "' With the wrong type (dynamic cast error)"); EWOL_CRITICAL("Request resource file : '" << tmpFilename << "' With the wrong type (dynamic cast error)");
return null; return null;
} }
} }
if (object != null) { if (object != null) {
return object; return object;
} }
EWOL_INFO("CREATE: ImageDF: '" << TmpFilename << "' size=" << _size); EWOL_INFO("CREATE: ImageDF: '" << tmpFilename << "' size=" << _size);
// need to crate a new one ... // need to crate a new one ...
object = ememory::SharedPtr<ewol::resource::ImageDF>(ETK_NEW(ewol::resource::ImageDF)); object = ememory::SharedPtr<ewol::resource::ImageDF>(ETK_NEW(ewol::resource::ImageDF));
if (object == null) { if (object == null) {
EWOL_ERROR("allocation error of a resource : " << _filename); EWOL_ERROR("allocation error of a resource : " << _uri);
return null; return null;
} }
object->init("DF__" + TmpFilename, _filename, _size); object->init("DF__" + tmpFilename.getString(), _uri, _size);
getManager().localAdd(object); getManager().localAdd(object);
return object; return object;
} }

View File

@ -40,7 +40,7 @@ namespace ewol {
* @param[in] _requested size of the image (usefull when loading .svg to automatic rescale) * @param[in] _requested size of the image (usefull when loading .svg to automatic rescale)
* @return pointer on the resource or null if an error occured. * @return pointer on the resource or null if an error occured.
*/ */
static ememory::SharedPtr<ewol::resource::ImageDF> create(const etk::String& _filename, ivec2 _size=ivec2(-1,-1)); static ememory::SharedPtr<ewol::resource::ImageDF> create(const etk::Uri& _uri, ivec2 _size=ivec2(-1,-1));
}; };
}; };
}; };

View File

@ -58,9 +58,9 @@ void ewol::resource::TextureFile::init(etk::String _genName, const etk::Uri& _ur
#endif #endif
} }
ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::create(const etk::String& _filename, ivec2 _size, ivec2 _sizeRegister) { ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::create(const etk::Uri& _uri, ivec2 _size, ivec2 _sizeRegister) {
EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size << " sizeRegister=" << _sizeRegister); EWOL_VERBOSE("KEEP: TextureFile: '" << _uri << "' size=" << _size << " sizeRegister=" << _sizeRegister);
if (_filename == "") { if (_uri.isEmpty() == true) {
ememory::SharedPtr<ewol::resource::TextureFile> object(ETK_NEW(ewol::resource::TextureFile)); ememory::SharedPtr<ewol::resource::TextureFile> object(ETK_NEW(ewol::resource::TextureFile));
if (object == null) { if (object == null) {
EWOL_ERROR("allocation error of a resource : ??TEX??"); EWOL_ERROR("allocation error of a resource : ??TEX??");
@ -78,8 +78,8 @@ ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::cre
_size.setY(-1); _size.setY(-1);
//EWOL_ERROR("Error Request the image size.y() =0 ???"); //EWOL_ERROR("Error Request the image size.y() =0 ???");
} }
etk::String tmpFilename = _filename; etk::Uri tmpFilename = _uri;
if (etk::end_with(_filename, ".svg") == false) { if (etk::toLower(_uri.getPath().getExtention()) != "svg") {
_size = ewol::resource::TextureFile::sizeAuto; _size = ewol::resource::TextureFile::sizeAuto;
} }
if (_size.x()>0 && _size.y()>0) { if (_size.x()>0 && _size.y()>0) {
@ -87,17 +87,15 @@ ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::cre
_size.setValue(nextP2(_size.x()), nextP2(_size.y())); _size.setValue(nextP2(_size.x()), nextP2(_size.y()));
if (_sizeRegister != ewol::resource::TextureFile::sizeAuto) { if (_sizeRegister != ewol::resource::TextureFile::sizeAuto) {
if (_sizeRegister != ewol::resource::TextureFile::sizeDefault) { if (_sizeRegister != ewol::resource::TextureFile::sizeDefault) {
tmpFilename += ":"; tmpFilename.getQuery().set("x", etk::toString(_size.x()));
tmpFilename += etk::toString(_size.x()); tmpFilename.getQuery().set("y", etk::toString(_size.y()));
tmpFilename += "x";
tmpFilename += etk::toString(_size.y());
} }
} }
} }
EWOL_VERBOSE("KEEP: TextureFile: '" << tmpFilename << "' new size=" << _size); EWOL_VERBOSE("KEEP: TextureFile: '" << tmpFilename << "' new size=" << _size);
ememory::SharedPtr<ewol::resource::TextureFile> object = null; ememory::SharedPtr<ewol::resource::TextureFile> object = null;
ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep(tmpFilename); ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep(tmpFilename.getString());
if (object2 != null) { if (object2 != null) {
object = ememory::dynamicPointerCast<ewol::resource::TextureFile>(object2); object = ememory::dynamicPointerCast<ewol::resource::TextureFile>(object2);
if (object == null) { if (object == null) {
@ -112,10 +110,10 @@ ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::cre
// need to crate a new one ... // need to crate a new one ...
object = ememory::SharedPtr<ewol::resource::TextureFile>(ETK_NEW(ewol::resource::TextureFile)); object = ememory::SharedPtr<ewol::resource::TextureFile>(ETK_NEW(ewol::resource::TextureFile));
if (object == null) { if (object == null) {
EWOL_ERROR("allocation error of a resource : " << _filename); EWOL_ERROR("allocation error of a resource : " << _uri);
return null; return null;
} }
object->init(tmpFilename, _filename, _size); object->init(tmpFilename.getString(), _uri, _size);
getManager().localAdd(object); getManager().localAdd(object);
return object; return object;
} }

View File

@ -38,7 +38,7 @@ namespace ewol {
* @param[in] _sizeRegister size register in named (When you preaload the images the size write here will be ) * @param[in] _sizeRegister size register in named (When you preaload the images the size write here will be )
* @return pointer on the resource or null if an error occured. * @return pointer on the resource or null if an error occured.
*/ */
static ememory::SharedPtr<ewol::resource::TextureFile> create(const etk::String& _filename, static ememory::SharedPtr<ewol::resource::TextureFile> create(const etk::Uri& _filename,
ivec2 _size=ewol::resource::TextureFile::sizeAuto, ivec2 _size=ewol::resource::TextureFile::sizeAuto,
ivec2 _sizeRegister=ewol::resource::TextureFile::sizeAuto); ivec2 _sizeRegister=ewol::resource::TextureFile::sizeAuto);
}; };

View File

@ -44,10 +44,10 @@ void ewol::widget::Image::init() {
} }
} }
void ewol::widget::Image::set(const etk::String& _file, const gale::Dimension& _border) { void ewol::widget::Image::set(const etk::Uri& _uri, const gale::Dimension& _border) {
EWOL_VERBOSE("Set Image : " << _file << " border=" << _border); EWOL_VERBOSE("Set Image : " << _uri << " border=" << _border);
propertyBorder.set(_border); propertyBorder.set(_border);
propertySource.set(_file); propertySource.set(_uri);
} }
void ewol::widget::Image::setCustumSource(const egami::Image& _image) { void ewol::widget::Image::setCustumSource(const egami::Image& _image) {

View File

@ -25,7 +25,7 @@ namespace ewol {
public: // signals public: // signals
esignal::Signal<> signalPressed; esignal::Signal<> signalPressed;
public: // properties public: // properties
eproperty::Value<etk::String> propertySource; //!< file name of the image. eproperty::Value<etk::Uri> propertySource; //!< file name of the image.
eproperty::Value<gale::Dimension> propertyBorder; //!< border to add at the image. eproperty::Value<gale::Dimension> propertyBorder; //!< border to add at the image.
eproperty::Value<gale::Dimension> propertyImageSize; //!< border to add at the image. eproperty::Value<gale::Dimension> propertyImageSize; //!< border to add at the image.
eproperty::Value<bool> propertyKeepRatio; //!< keep the image ratio between width and hight eproperty::Value<bool> propertyKeepRatio; //!< keep the image ratio between width and hight
@ -52,10 +52,10 @@ namespace ewol {
virtual ~Image(); virtual ~Image();
/** /**
* @brief set All the configuration of the current image * @brief set All the configuration of the current image
* @param[in] _file Filaneme of the new image * @param[in] _uri URI of the new image
* @param[in] _border New border size to set * @param[in] _border New border size to set
*/ */
void set(const etk::String& _file, const gale::Dimension& _border); void set(const etk::Uri& _uri, const gale::Dimension& _border);
/** /**
* @brief Set an image with direct elements * @brief Set an image with direct elements
* @param[in] _image Image to set in the display * @param[in] _image Image to set in the display

View File

@ -6,7 +6,6 @@
#include "BasicTree.hpp" #include "BasicTree.hpp"
#include <etk/tool.hpp> #include <etk/tool.hpp>
#include <etk/os/FSNode.hpp>
#include <test-debug/debug.hpp> #include <test-debug/debug.hpp>
#include <etk/typeInfo.hpp> #include <etk/typeInfo.hpp>

View File

@ -6,7 +6,6 @@
#pragma once #pragma once
#include <ewol/widget/TreeView.hpp> #include <ewol/widget/TreeView.hpp>
#include <etk/os/FSNode.hpp>
#include <ewol/resource/ColorFile.hpp> #include <ewol/resource/ColorFile.hpp>
#include <esignal/Signal.hpp> #include <esignal/Signal.hpp>
#include <etk/FlatTree.hpp> #include <etk/FlatTree.hpp>

View File

@ -8,7 +8,6 @@
#include <test-debug/debug.hpp> #include <test-debug/debug.hpp>
#include <etk/Vector.hpp> #include <etk/Vector.hpp>
#include <etk/String.hpp> #include <etk/String.hpp>
#include <etk/os/FSNode.hpp>
#include <etk/archive/Archive.hpp> #include <etk/archive/Archive.hpp>
#include <etk/etk.hpp> #include <etk/etk.hpp>
#include <etk/Color.hpp> #include <etk/Color.hpp>

View File

@ -24,8 +24,6 @@
#include <ewol/widget/Manager.hpp> #include <ewol/widget/Manager.hpp>
#include <ewol/widget/Spin.hpp> #include <ewol/widget/Spin.hpp>
#include <ewol/context/Context.hpp> #include <ewol/context/Context.hpp>
#include <appl/TestDistanceField.hpp>
#include <etk/os/FSNode.hpp>
#include <eproperty/Value.hpp> #include <eproperty/Value.hpp>
appl::MainWindows::MainWindows() { appl::MainWindows::MainWindows() {

View File

@ -6,15 +6,16 @@
#include <etk/types.hpp> #include <etk/types.hpp>
#include <etk/types.hpp> #include <etk/types.hpp>
#include <etk/os/FSNode.hpp>
#include <ewol/ewol.hpp> #include <ewol/ewol.hpp>
#include <ewol/object/Object.hpp> #include <ewol/object/Object.hpp>
#include <ewol/context/Context.hpp> #include <ewol/context/Context.hpp>
#include <ewol/widget/Manager.hpp> #include <ewol/widget/Manager.hpp>
#include <etk/theme/theme.hpp>
#include <appl/debug.hpp> #include <appl/debug.hpp>
#include <appl/MainWindows.hpp> #include <appl/MainWindows.hpp>
#include <appl/widget/SizerColor.hpp> #include <appl/widget/SizerColor.hpp>
namespace appl { namespace appl {
class MainApplication : public ewol::context::Application { class MainApplication : public ewol::context::Application {
public: public:

View File

@ -64,5 +64,6 @@
</button> </button>
<spacer expand="true,true"/> <spacer expand="true,true"/>
</sizer> </sizer>
<TestDistanceField expand="true,false" fill="true,true"/>
</sizer> </sizer>
</composer> </composer>