00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <memory>
00024 #include <RemoteViz/Rendering/IFrameEncodingPolicy.h>
00025
00026 namespace RemoteViz
00027 {
00028
00029 namespace Rendering
00030 {
00031
00032 class Connection;
00033 class KeepFrameQualityPolicyImpl;
00034
00056 class RENDERSERVICE_API KeepFrameQualityPolicy : public IFrameEncodingPolicy
00057 {
00058 public:
00066 KeepFrameQualityPolicy();
00067
00076 KeepFrameQualityPolicy( float qualityTarget, unsigned int fpsTarget, unsigned int fpsThreshold );
00077
00082 virtual ~KeepFrameQualityPolicy();
00083
00090 virtual unsigned int getFramesPerSecond() const;
00091
00098 virtual float getFrameQuality() const;
00099
00106 virtual void update( RemoteViz::Rendering::Connection* connection );
00107
00108 private:
00111 std::shared_ptr<KeepFrameQualityPolicyImpl> getImpl() const;
00114 private:
00116 std::shared_ptr<KeepFrameQualityPolicyImpl> pImpl;
00117 };
00118 }
00119 }
00120