NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
renderer_interface.h
Go to the documentation of this file.
1 
10 #ifndef SDK_VIS_RENDERER_INTERFACE_H_
11 #define SDK_VIS_RENDERER_INTERFACE_H_
12 #pragma once
13 
14 #include <base/inc/platform.h>
15 #include <base/inc/base_types.h>
16 #include <base/inc/forward_declarations.h>
18 #include <base/inc/sdk_ref_ptr.h>
20 
21 namespace sdk {
22 namespace vis {
23 namespace scene {
24 
25 FWD_DECL_INTERFACE(IRenderer);
26 FWD_DECL_INTERFACE(IRenderersSet);
27 
28 FWD_DECL_INTERFACE(ILayerResource);
29 FWD_DECL_INTERFACE(IGraphicContext);
30 FWD_DECL_INTERFACE(IRenderContext);
31 
32 typedef float RendererPriority;
33 
36 static const RendererPriority kUnknownRendererPriority = -SDK_MAX_FLOAT;
37 
41 {
50 };
57 
60 class IRenderer : public ISDKProperties
61 {
62 public:
64  virtual SDKResult SDK_CALLTYPE GetRendererID(SDKString& id) throw() = 0;
65 
67  virtual SDKResult SDK_CALLTYPE Cancel() throw() = 0;
68 
70  virtual SDKResult SDK_CALLTYPE SetContext(const ResourceType& layer_resource_type,
71  const ILayerResourceSP& layer_resource,
72  const IGraphicContextSP& graphic_context) throw() = 0;
73 
75  virtual SDKResult SDK_CALLTYPE Render(const IRenderContextSP& context) throw() = 0;
76 
78  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKPropertyID& id, const SDKAny& value) throw() = 0;
79  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKPropertyID& id, SDKAny& value) const throw() = 0;
80 
81  SDK_IMPLEMENT_IID(IRenderer)
82  SDK_END_INTERFACE(IRenderer)
83 };
84 SDK_DECLARE_IID(IRenderer)
85 
86 class IRenderersSet : public ISDKProperties
89 {
90 public:
93  virtual SDKResult SDK_CALLTYPE AddRenderer(const IRendererSP& renderer,
94  const RendererPriority& priority) throw() = 0;
95 
97  virtual SDKResult SDK_CALLTYPE RemoveRenderer(const SDKString& renderer_id) throw() = 0;
98 
100  virtual SDKResult SDK_CALLTYPE GetRenderer(const SDKString& renderer_id,
101  IRendererSP& renderer) const throw() = 0;
102 
104  virtual SDKResult SDK_CALLTYPE GetRendererPriority(const SDKString& renderer_id,
105  RendererPriority& priority) const throw() = 0;
106 
108  //virtual SDKResult SDK_CALLTYPE SetProperty(const SDKPropertyID& id, const SDKAny& value) throw() = 0;
109  //virtual SDKResult SDK_CALLTYPE GetProperty(const SDKPropertyID& id, SDKAny& value) const throw() = 0;
110 
111  SDK_IMPLEMENT_IID(IRenderersSet)
112  SDK_END_INTERFACE(IRenderersSet)
113 };
114 SDK_DECLARE_IID(IRenderersSet)
115 
116 
117 } // namespace scene
118 } // namespace vis
119 } // namespace sdk
120 
121 #endif // SDK_VIS_RENDERER_INTERFACE_H_
kResourceType_Unknown
@ kResourceType_Unknown
Unknown resource type.
Definition: resource_interface.h:60
sdk::vis::scene::IRenderersSet::RemoveRenderer
virtual SDKResult SDK_CALLTYPE RemoveRenderer(const SDKString &renderer_id)=0
Removes existing renderer from set of layer renderers.
base_types.h
SDK base types.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
sdk::vis::scene::kResourceType_SpritesList
@ kResourceType_SpritesList
Definition: renderer_interface.h:46
sdk::vis::scene::IRenderer::SetContext
virtual SDKResult SDK_CALLTYPE SetContext(const ResourceType &layer_resource_type, const ILayerResourceSP &layer_resource, const IGraphicContextSP &graphic_context)=0
Set scene context to the renderer.
sdk::vis::scene::IRenderer
Base interface for all renderers.
Definition: renderer_interface.h:60
properties_interface.h
Object generic properties interface.
sdk::vis::scene::IRenderersSet
Set of renderers, which should render given layer one by one.
Definition: renderer_interface.h:88
sdk::vis::scene::ResourceType
ResourceType
Available resources for layer.
Definition: renderer_interface.h:40
sdk::vis::scene::IRenderersSet::GetRenderer
virtual SDKResult SDK_CALLTYPE GetRenderer(const SDKString &renderer_id, IRendererSP &renderer) const =0
Returns renderer instance, if it registered.
sdk::vis::scene::IRenderersSet::GetRendererPriority
virtual SDKResult SDK_CALLTYPE GetRendererPriority(const SDKString &renderer_id, RendererPriority &priority) const =0
Returns renderer priority, if it registered.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
sdk::ISDKProperties
Provides access to members that control the properties.
Definition: properties_interface.h:32
sdk::vis::scene::IRenderer::Cancel
virtual SDKResult SDK_CALLTYPE Cancel()=0
Tells renderer to cancel its rendering process (Render and Cancel called from different threads).
sdk::vis::scene::IRenderersSet::AddRenderer
virtual SDKResult SDK_CALLTYPE AddRenderer(const IRendererSP &renderer, const RendererPriority &priority)=0
Adds new renderer to given set of layer renderers The lower priority - the earlier renderer will be c...
sdk::vis::scene::kUnknownRendererPriority
static const RendererPriority kUnknownRendererPriority
Renderer priority in renderers set.
Definition: renderer_interface.h:36
sdk_component_interface.h
Common base SDK interfaces.
platform.h
Describes the platform constants.
sdk::vis::scene::kResourceType_RenderTarget
@ kResourceType_RenderTarget
Definition: renderer_interface.h:43
sdk::vis::scene::IRenderer::GetRendererID
virtual SDKResult SDK_CALLTYPE GetRendererID(SDKString &id)=0
Returns renderer identifier.
sdk::vis::scene::IRenderer::Render
virtual SDKResult SDK_CALLTYPE Render(const IRenderContextSP &context)=0
Render data to the resource.
sdk::vis::scene::kResourceType_Texture
@ kResourceType_Texture
Definition: renderer_interface.h:49
SDK_MAX_FLOAT
static const float SDK_MAX_FLOAT
Max limit of float.
Definition: platform.h:197
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.