#define DALI_INTERNAL_ADAPTOR_ENVIRONMENT_OPTIONS_H
/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * 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.
*/
// EXTERNAL INCLUDES
+#include <memory>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
#include <dali/internal/adaptor/common/threading-mode.h>
+#include <dali/integration-api/log-factory-interface.h>
namespace Dali
{
{
namespace Adaptor
{
+class TraceManager;
+class PerformanceInterface;
/**
* This class provides the environment options which define settings as well as
* the ability to install a log function.
*
*/
-class EnvironmentOptions
+class EnvironmentOptions : public Dali::LogFactoryInterface
{
public:
EnvironmentOptions();
/**
- * non-virtual destructor, not intended as a base class
+ * Virtual Destructor for interface cleanup
*/
- ~EnvironmentOptions();
+ virtual ~EnvironmentOptions();
+
+ /**
+ * Create a TraceManager which is used for tracing.
+ * @param PerformanceInterface for using network logging for tracing on Ubuntu
+ */
+ void CreateTraceManager( PerformanceInterface* performanceInterface );
+
+ /**
+ * Initialize TraceManager by installing Trace function.
+ */
+ void InstallTraceFunction() const;
/**
* @param logFunction logging function
/**
* Install the log function for the current thread.
*/
- void InstallLogFunction() const;
+ virtual void InstallLogFunction() const;
/**
* Un-install the log function for the current thread.
int GetMinimumPanEvents() const;
/**
+ * @return The minimum pixels before a pinch can be started (-1 means it's not set)
+ */
+ float GetMinimumPinchDistance() const;
+
+ /**
* @return The width of the window
*/
unsigned int GetWindowWidth() const;
unsigned int GetMaxTextureSize() const;
/**
- * @return The maximum texture size
- */
- int GetIndicatorVisibleMode() const;
-
- /**
* @brief Retrieves the interval of frames to be rendered into the Frame Buffer Object and the Frame Buffer.
*
* @return The number of frames that are going to be rendered into the Frame Buffer Object but the last one which is going to be rendered into the Frame Buffer.
*/
bool StencilBufferRequired() const;
+ /**
+ * @return whether the partial update is available.
+ */
+ bool PartialUpdateAvailable() const;
+
/// Deleted copy constructor.
EnvironmentOptions( const EnvironmentOptions& ) = delete;
private: // Data
Dali::Integration::Log::LogFunction mLogFunction;
-
std::string mWindowName; ///< name of the window
std::string mWindowClassName; ///< name of the class the window belongs to
unsigned int mNetworkControl; ///< whether network control is enabled
int mPanGestureMultitapSmoothingRange; ///< The range in time (ms) of points in the history to smooth the final output against.
int mPanMinimumDistance; ///< minimum distance required before pan starts
int mPanMinimumEvents; ///< minimum events required before pan starts
+ float mPinchMinimumDistance; ///< minimum number of pixels moved before a pinch starts
int mGlesCallTime; ///< time in seconds between status updates
int mMultiSamplingLevel; ///< The number of samples required in multisample buffers
- int mIndicatorVisibleMode; ///< Indicator visible mode
ThreadingMode::Type mThreadingMode; ///< threading mode
bool mGlesCallAccumulate; ///< Whether or not to accumulate gles call statistics
bool mDepthBufferRequired; ///< Whether the depth buffer is required
bool mStencilBufferRequired; ///< Whether the stencil buffer is required
+ bool mPartialUpdateAvailable; ///< whether the partial update is available
+ std::unique_ptr<TraceManager> mTraceManager; ///< TraceManager
};
} // Adaptor