/debugfiles.list
/debuglinks.list
/debugsources.list
+/dali/internal/adaptor/common/system-cache-path.cpp
$(adaptor_window_system_ubuntu_x11_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ENABLE_NETWORK_LOGGING
LIBDALI_ADAPTOR_LA_SOURCES += \
$(adaptor_thread_common_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ECORE_WAYLAND2
LIBDALI_ADAPTOR_LA_SOURCES += \
$(adaptor_thread_common_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ECORE_WAYLAND2
LIBDALI_ADAPTOR_LA_SOURCES += \
$(adaptor_thread_common_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ECORE_WAYLAND2
LIBDALI_ADAPTOR_LA_SOURCES += \
$(adaptor_thread_common_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ECORE_WAYLAND2
LIBDALI_ADAPTOR_LA_SOURCES += \
$(adaptor_thread_common_src_files) \
$(devel_api_text_abstraction_src_files) \
$(static_libraries_glyphy_src_files) \
- $(static_libraries_libunibreak_src_files)
+ $(static_libraries_libunibreak_src_files) \
+ $(adaptor_dali_src_file)
if ECORE_WAYLAND2
LIBDALI_ADAPTOR_LA_SOURCES += \
endif
-
# Package doc
package_doxy_dir = ../../../doc
include ../../../doc/file.list
fontConfigurationFile=$FONT_CONFIGURATION_FILE
fi
+if test "x$enable_profile" = "xUBUNTU"; then
+ cachePath=$HOME
+else
+ cachePath="/home/owner"
+fi # ubuntu profile test
+
+AC_SUBST(cachePath)
AC_SUBST(dataReadWriteDir)
AC_SUBST(dataReadOnlyDir)
AC_SUBST(DALI_ADAPTOR_CFLAGS)
Makefile
dali-adaptor.pc
dali-adaptor-integration.pc
+ ../../../dali/internal/adaptor/common/system-cache-path.cpp:./system-cache-path.in
])
if test "x$freetype_bitmap_support" = "xyes"; then
--- /dev/null
+/*
+ * Copyright (c) 2019 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// EXTERNAL INCLUDES
+#include <string>
+#include <cstdlib>
+
+std::string GetSystemCachePath()
+{
+ return std::string( "@cachePath@/.cache/dali_common_caches/" );
+}
\ No newline at end of file
return mBufferStream;
}
- std::ios_base::openmode openMode = std::ios::ate;
- if( mMode & Dali::FileStream::BINARY )
- {
- openMode |= std::ios::binary;
- }
-
+ std::ios_base::openmode openMode;
if( mMode & Dali::FileStream::WRITE )
{
- openMode |= std::ios::out;
+ openMode = ( std::ios::out | std::ios::ate );
}
else
{
- openMode |= std::ios::in;
+ openMode = std::ios::in;
+ }
+
+ if( mMode & Dali::FileStream::BINARY )
+ {
+ openMode |= std::ios::binary;
}
if( !mFileName.empty() )
#include <dali/integration-api/events/wheel-event-integ.h>
#include <dali/integration-api/processor-interface.h>
+#include <fstream>
+
// INTERNAL INCLUDES
#include <dali/public-api/dali-adaptor-common.h>
#include <dali/internal/system/common/thread-controller.h>
#include <dali/internal/imaging/common/image-loader-plugin-proxy.h>
#include <dali/internal/imaging/common/image-loader.h>
+#include <dali/devel-api/adaptor-framework/file-stream.h>
using Dali::TextAbstraction::FontClient;
+extern std::string GetSystemCachePath();
+
namespace Dali
{
{
Dali::TizenPlatform::ImageLoader::SetMaxTextureSize( mEnvironmentOptions->GetMaxTextureSize() );
}
+
+ std::string systemCachePath = GetSystemCachePath();
+ if ( systemCachePath.c_str() != NULL )
+ {
+ Dali::FileStream fileStream( systemCachePath + "gpu-environment.conf", Dali::FileStream::READ | Dali::FileStream::TEXT );
+ std::fstream& stream = dynamic_cast<std::fstream&>( fileStream.GetStream() );
+ if( stream.is_open() )
+ {
+ std::string line;
+ while( std::getline( stream, line ) )
+ {
+ line.erase( line.find_last_not_of( " \t\r\n" ) + 1 );
+ line.erase( 0, line.find_first_not_of( " \t\r\n" ) );
+ if( '#' == *( line.cbegin() ) || line == "" )
+ {
+ continue;
+ }
+
+ std::istringstream stream( line );
+ std::string environmentVariableName, environmentVariableValue;
+ std::getline(stream, environmentVariableName, ' ');
+ if( environmentVariableName == "DALI_ENV_MAX_TEXTURE_SIZE" && mEnvironmentOptions->GetMaxTextureSize() == 0 )
+ {
+ std::getline(stream, environmentVariableValue);
+ setenv( environmentVariableName.c_str() , environmentVariableValue.c_str(), 1 );
+ Dali::TizenPlatform::ImageLoader::SetMaxTextureSize( std::atoi( environmentVariableValue.c_str() ) );
+ }
+ }
+ }
+ else
+ {
+ DALI_LOG_ERROR( "Fail to open file : %s\n", ( systemCachePath + "gpu-environment.conf" ).c_str() );
+ }
+ }
}
Adaptor::~Adaptor()
// Initialize the thread controller
mThreadController->Initialize();
+ if( !Dali::TizenPlatform::ImageLoader::MaxTextureSizeUpdated() )
+ {
+ auto eglGraphics = static_cast<EglGraphics *>( mGraphics );
+ GlImplementation& mGLES = eglGraphics->GetGlesInterface();
+ Dali::TizenPlatform::ImageLoader::SetMaxTextureSize( mGLES.GetMaxTextureSize() );
+
+ std::string systemCachePath = GetSystemCachePath();
+ if( systemCachePath.c_str() != NULL )
+ {
+ const int dir_err = system( std::string( "mkdir " + systemCachePath ).c_str() );
+ if (-1 == dir_err)
+ {
+ printf("Error creating directory!n");
+ exit(1);
+ }
+
+ Dali::FileStream fileStream( systemCachePath + "gpu-environment.conf", Dali::FileStream::WRITE | Dali::FileStream::TEXT );
+ std::fstream& configFile = dynamic_cast<std::fstream&>( fileStream.GetStream() );
+ if( configFile.is_open() )
+ {
+ configFile << "DALI_ENV_MAX_TEXTURE_SIZE " << mGLES.GetMaxTextureSize() << std::endl;
+ }
+ }
+ }
+
ProcessCoreEvents(); // Ensure any startup messages are processed.
// Initialize the image loader plugin
}
}
+ eglGraphics->GetGlesInterface().ContextCreated();
+
// Tell core it has a context
mCore.ContextCreated();
${adaptor_adaptor_dir}/common/adaptor.cpp \
${adaptor_adaptor_dir}/common/adaptor-builder-impl.cpp \
${adaptor_adaptor_dir}/common/application-impl.cpp \
- ${adaptor_adaptor_dir}/common/combined-update-render-controller.cpp
+ ${adaptor_adaptor_dir}/common/combined-update-render-controller.cpp \
+ ${adaptor_adaptor_dir}/common/system-cache-path.cpp
# module: adaptor, backend: tizen-wayland
adaptor_adaptor_tizen_wayland_src_files=\
#include <cstdlib>
#include <GLES2/gl2.h>
#include <dali/integration-api/gl-abstraction.h>
+#include <dali/devel-api/threading/conditional-wait.h>
// INTERNAL INCLUDES
#include <dali/internal/graphics/gles/gles-abstraction.h>
public:
GlImplementation()
: mGlesVersion( 30 ),
- mIsSurfacelessContextSupported( false )
+ mIsSurfacelessContextSupported( false ),
+ mIsContextCreated( false ),
+ mContextCreatedWaitCondition(),
+ mMaxTextureSize( 0 )
{
mImpl.reset( new Gles3Implementation() );
}
/* Do nothing in main implementation */
}
+ void ContextCreated()
+ {
+ glGetIntegerv( GL_MAX_TEXTURE_SIZE, &mMaxTextureSize );
+
+ if( !mIsContextCreated )
+ {
+ mContextCreatedWaitCondition.Notify();
+ }
+ mIsContextCreated = true;
+ }
+
void SetGlesVersion( const int32_t glesVersion )
{
if( mGlesVersion != glesVersion )
return convert;
}
+ int GetMaxTextureSize()
+ {
+ if( !mIsContextCreated )
+ {
+ mContextCreatedWaitCondition.Wait();
+ }
+ return mMaxTextureSize;
+ }
+
/* OpenGL ES 2.0 */
void ActiveTexture( GLenum texture )
private:
int32_t mGlesVersion;
bool mIsSurfacelessContextSupported;
+ bool mIsContextCreated;
+ ConditionalWait mContextCreatedWaitCondition;
+ GLint mMaxTextureSize;
std::unique_ptr<GlesAbstraction> mImpl;
};
static unsigned int gMaxTextureSize = 4096;
+static bool gMaxTextureSizeUpdated = false;
+
/**
* Enum for file formats, has to be in sync with BITMAP_LOADER_LOOKUP_TABLE
*/
void SetMaxTextureSize( unsigned int size )
{
gMaxTextureSize = size;
+ gMaxTextureSizeUpdated = true;
}
unsigned int GetMaxTextureSize()
return gMaxTextureSize;
}
+bool MaxTextureSizeUpdated()
+{
+ return gMaxTextureSizeUpdated;
+}
+
} // ImageLoader
} // TizenPlatform
} // Dali
*/
unsigned int GetMaxTextureSize();
+/**
+ * @brief Check the gMaxTextureSize is updated or not.
+ *
+ * @return Whether the gMaxTextureSize is updated or not.
+ */
+bool MaxTextureSizeUpdated();
+
} // ImageLoader
} // TizenPlatform
} // Dali