NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
gl2d_draw_stats_interface.h
Go to the documentation of this file.
1 #ifndef SDK_GL2D_DRAW_STATS_INTERFACE_H_
13 #define SDK_GL2D_DRAW_STATS_INTERFACE_H_
14 #pragma once
15 
16 #include <base/inc/platform.h>
17 #include <base/inc/base_types.h>
18 #include <base/inc/sdk_component_base.h>
20 #include <visualizationlayer/inc/vis_const.h>
21 
22 SDK_GL2D_BEGIN_NAMESPACE
23 
26 
30 {
31 };
32 
35 enum GL2DDrawStatsObjects : SDKUInt64
36 {
37  kGL2DDrawStatsObjects_Texture = 0x0000000000000001, // Textures draw statistics
38  kGL2DDrawStatsObjects_TexturesPack = 0x0000000000000002, // Textures packs draw statistics
39  kGL2DDrawStatsObjects_IndexedTexture = 0x0000000000000004, // Indexed textures draw statistics
40  kGL2DDrawStatsObjects_Sprite = 0x0000000000000008, // Sprites draw statistics
41  kGL2DDrawStatsObjects_SpriteForPerpsProj = 0x0000000000000010, // Sprites for perspective projection draw statistics
42  kGL2DDrawStatsObjects_PureMesh = 0x0000000000000020, // Pure mesh draw statistics
43  kGL2DDrawStatsObjects_PureMeshForPerpsProj = 0x0000000000000040, // Pure mesh for perspective projection draw statistics
44  kGL2DDrawStatsObjects_ColoredMesh = 0x0000000000000080, // Colored mesh draw statistics
45  kGL2DDrawStatsObjects_ColoredMeshForPerpsProj = 0x0000000000000100, // Colored mesh for perspective projection draw statistics
46  kGL2DDrawStatsObjects_Mesh3D = 0x0000000000000200, // 3D mesh draw statistics
47  kGL2DDrawStatsObjects_ClipMesh = 0x0000000000000400, // Clipping mesh draw statistics
48  kGL2DDrawStatsObjects_ShadowMapMesh3D = 0x0000000000000800, // 3D mesh for shadow map draw statistics
49  kGL2DDrawStatsObjects_SimpleLine = 0x0000000000001000, // Simple lines draw statistics
50  kGL2DDrawStatsObjects_FastSolidLine = 0x0000000000002000, // Fast solid (multi)lines draw statistics
51  kGL2DDrawStatsObjects_FastSolidLineForPerpsProj = 0x0000000000004000, // Fast solid (multi)lines for perspective projection draw statistics
52  kGL2DDrawStatsObjects_FastDashLine = 0x0000000000008000, // Fast dash (multi)lines draw statistics
53  kGL2DDrawStatsObjects_RougierSolidLine = 0x0000000000010000, // Rougier solid (multi)lines draw statistics
54  kGL2DDrawStatsObjects_RougierDashLine = 0x0000000000020000, // Rougier dash (multi)lines draw statistics
55  kGL2DDrawStatsObjects_TexturedLine = 0x0000000000040000, // Textured (multi)lines draw statistics
56  kGL2DDrawStatsObjects_SimpleText = 0x0000000000080000, // Simple text draw statistics
57  kGL2DDrawStatsObjects_BorderedText = 0x0000000000100000, // Bordered text draw statistics
58  kGL2DDrawStatsObjects_TextsCollection = 0x0000000000200000, // Texts collection draw statistics
59  kGL2DDrawStatsObjects_SimplePattern = 0x0000000000400000, // Simple pattern draw statistics
60  kGL2DDrawStatsObjects_StaggeredPattern = 0x0000000000800000, // Staggered pattern draw statistics
61  kGL2DDrawStatsObjects_Latin1Texts = 0x0000000001000000, // Latin1 texts draw statistics
62  kGL2DDrawStatsObjects_Latin1BorderedTexts = 0x0000000002000000, // Latin1 bordered texts draw statistics
63  kGL2DDrawStatsObjects_FilledCircles = 0x0000000004000000, // Filled circles draw statistics
64  kGL2DDrawStatsObjects_LineMarks = 0x0000000008000000, // Line marks draw statistics
65  kGL2DDrawStatsObjects_ThinSolidPivotPointLine = 0x0000000010000000, // Thin solid, based on pivot point (multi)lines draw statistics
66  kGL2DDrawStatsObjects_RadarImage_8_bits = 0x0000000020000000, // 8 bits radar image draw statistics
67  kGL2DDrawStatsObjects_Scalebar = 0x0000000040000000, // Scalebar draw statistics
68  kGL2DDrawStatsObjects_TextBoxes = 0x0000000080000000, // Text boxes draw statistics
69  kGL2DDrawStatsObjects_RadarImage_Tex_8_bits = 0x0000000100000000, // 8 bits texture based radar image draw statistics
70 
71  // First/last object type
72  kGL2DDrawStatsObjects_First = kGL2DDrawStatsObjects_Texture,
73  kGL2DDrawStatsObjects_Last = kGL2DDrawStatsObjects_RadarImage_Tex_8_bits,
74 
75  // All of available texture types
76  kGL2DDrawStatsObjects_Textures =
77  kGL2DDrawStatsObjects_Texture |
78  kGL2DDrawStatsObjects_IndexedTexture,
79 
80  // All of available textures packs types
81  kGL2DDrawStatsObjects_TexturesPacks =
82  kGL2DDrawStatsObjects_TexturesPack,
83 
84  // All of available indexed texture types
85  kGL2DDrawStatsObjects_IndexedTextures =
86  kGL2DDrawStatsObjects_IndexedTexture,
87 
88  // All of available sprite types
89  kGL2DDrawStatsObjects_Sprites =
90  kGL2DDrawStatsObjects_Sprite |
91  kGL2DDrawStatsObjects_SpriteForPerpsProj,
92 
93  // All of available mesh types
94  kGL2DDrawStatsObjects_Meshes =
95  kGL2DDrawStatsObjects_PureMesh |
96  kGL2DDrawStatsObjects_PureMeshForPerpsProj |
97  kGL2DDrawStatsObjects_ColoredMesh |
98  kGL2DDrawStatsObjects_ColoredMeshForPerpsProj |
99  kGL2DDrawStatsObjects_Mesh3D |
100  kGL2DDrawStatsObjects_ClipMesh |
101  kGL2DDrawStatsObjects_ShadowMapMesh3D,
102 
103  // All of available Fast line types
104  kGL2DDrawStatsObjects_FastLines =
105  kGL2DDrawStatsObjects_FastSolidLine |
106  kGL2DDrawStatsObjects_FastSolidLineForPerpsProj |
107  kGL2DDrawStatsObjects_FastDashLine,
108 
109  // All of available Rougier line types
110  kGL2DDrawStatsObjects_RougierLines =
111  kGL2DDrawStatsObjects_RougierSolidLine |
112  kGL2DDrawStatsObjects_RougierDashLine,
113 
114  // All of available solid line type
115  kGL2DDrawStatsObjects_SolidLines =
116  kGL2DDrawStatsObjects_SimpleLine |
117  kGL2DDrawStatsObjects_FastSolidLine |
118  kGL2DDrawStatsObjects_FastSolidLineForPerpsProj |
119  kGL2DDrawStatsObjects_RougierSolidLine,
120 
121  // All of available dash line type
122  kGL2DDrawStatsObjects_DashLines =
123  kGL2DDrawStatsObjects_FastDashLine |
124  kGL2DDrawStatsObjects_RougierDashLine,
125 
126  // All of available textured line types
127  kGL2DDrawStatsObjects_TexturedLines =
128  kGL2DDrawStatsObjects_TexturedLine,
129 
130  // All of available pivot point based Thin lines types
131  kGL2DDrawStatsObjects_ThinPivotPointLines =
132  kGL2DDrawStatsObjects_ThinSolidPivotPointLine,
133 
134  // All of available pivot point based solid lines types
135  kGL2DDrawStatsObjects_SolidPivotPointLines =
136  kGL2DDrawStatsObjects_ThinSolidPivotPointLine,
137 
138  // All of available pivot point based lines types
139  kGL2DDrawStatsObjects_PivotPointLines =
140  kGL2DDrawStatsObjects_SolidPivotPointLines,
141 
142  // All of available line types
143  kGL2DDrawStatsObjects_Lines =
144  kGL2DDrawStatsObjects_SolidLines |
145  kGL2DDrawStatsObjects_DashLines |
146  kGL2DDrawStatsObjects_TexturedLines |
147  kGL2DDrawStatsObjects_SolidPivotPointLines,
148 
149  // All of available pure (without border) text types
150  kGL2DDrawStatsObjects_PureTexts =
151  kGL2DDrawStatsObjects_SimpleText |
152  kGL2DDrawStatsObjects_Latin1Texts,
153 
154  // All of available bordered text types
155  kGL2DDrawStatsObjects_BorderedTexts =
156  kGL2DDrawStatsObjects_BorderedText |
157  kGL2DDrawStatsObjects_Latin1BorderedTexts,
158 
159  // All of available text types
160  kGL2DDrawStatsObjects_Texts =
161  kGL2DDrawStatsObjects_PureTexts |
162  kGL2DDrawStatsObjects_BorderedTexts |
163  kGL2DDrawStatsObjects_TextsCollection,
164 
165  // All of available pattern types
166  kGL2DDrawStatsObjects_Patterns =
167  kGL2DDrawStatsObjects_SimplePattern |
168  kGL2DDrawStatsObjects_StaggeredPattern,
169 
170  // All of available circles types
171  kGL2DDrawStatsObjects_Circles =
172  kGL2DDrawStatsObjects_FilledCircles,
173 
174  // All of available marks types
175  kGL2DDrawStatsObjects_Marks =
176  kGL2DDrawStatsObjects_LineMarks,
177 
178  // All of available radar images
179  kGL2DDrawStatsObjects_RadarImages =
180  kGL2DDrawStatsObjects_RadarImage_8_bits |
181  kGL2DDrawStatsObjects_RadarImage_Tex_8_bits,
182 
183  // All of available scalebars
184  kGL2DDrawStatsObjects_Scalebars =
185  kGL2DDrawStatsObjects_Scalebar,
186 
187  // All of available boxes
188  kGL2DDrawStatsObjects_Boxes =
189  kGL2DDrawStatsObjects_TextBoxes,
190 
191  // All of available object types
192  kGL2DDrawStatsObjects_All =
193  kGL2DDrawStatsObjects_Textures |
194  kGL2DDrawStatsObjects_TexturesPacks |
195  kGL2DDrawStatsObjects_Sprites |
196  kGL2DDrawStatsObjects_Meshes |
197  kGL2DDrawStatsObjects_Lines |
198  kGL2DDrawStatsObjects_Texts |
199  kGL2DDrawStatsObjects_Patterns |
200  kGL2DDrawStatsObjects_Circles |
201  kGL2DDrawStatsObjects_Marks |
202  kGL2DDrawStatsObjects_RadarImages |
203  kGL2DDrawStatsObjects_Scalebars |
204  kGL2DDrawStatsObjects_Boxes,
205 };
206 
211 class IGL2DDrawStats : public ISDKProperties
212 {
213 public:
215  virtual void SDK_CALLTYPE Dump() const throw() = 0;
216 
219  virtual SDKUInt32 SDK_CALLTYPE GetObjectsCount(
220  const SDKUInt64& obj_type) const throw() = 0;
221 
224  virtual SDKUInt32 SDK_CALLTYPE GetVertexesCount(
225  const SDKUInt64& obj_type) const throw() = 0;
226 
229  virtual SDKUInt32 SDK_CALLTYPE GetDrawCallsCount(
230  const SDKUInt64& obj_type) const throw() = 0;
231 
233  inline static const char* DrawStatsObjType2Name(const SDKUInt64& obj_type)
234  {
235  switch (obj_type)
236  {
237  case kGL2DDrawStatsObjects_Texture:
238  return "Texture";
239  case kGL2DDrawStatsObjects_TexturesPack:
240  return "Textures pack";
241  case kGL2DDrawStatsObjects_IndexedTexture:
242  return "Indexed texture";
243  case kGL2DDrawStatsObjects_Sprite:
244  return "Sprite";
245  case kGL2DDrawStatsObjects_SpriteForPerpsProj:
246  return "Sprite for perspective projection";
247  case kGL2DDrawStatsObjects_PureMesh:
248  return "Pure mesh";
249  case kGL2DDrawStatsObjects_PureMeshForPerpsProj:
250  return "Pure mesh for perspective projection";
251  case kGL2DDrawStatsObjects_ColoredMesh:
252  return "Colored mesh";
253  case kGL2DDrawStatsObjects_ColoredMeshForPerpsProj:
254  return "Colored mesh for perspective projection";
255  case kGL2DDrawStatsObjects_Mesh3D:
256  return "3D mesh";
257  case kGL2DDrawStatsObjects_ClipMesh:
258  return "Clip mesh";
259  case kGL2DDrawStatsObjects_ShadowMapMesh3D:
260  return "3D mesh for shadow map";
261  case kGL2DDrawStatsObjects_SimpleLine:
262  return "Simple line";
263  case kGL2DDrawStatsObjects_FastSolidLine:
264  return "Fast solid line";
265  case kGL2DDrawStatsObjects_FastSolidLineForPerpsProj:
266  return "Fast solid line for perspective projection";
267  case kGL2DDrawStatsObjects_FastDashLine:
268  return "Fast dash line";
269  case kGL2DDrawStatsObjects_RougierSolidLine:
270  return "Rougier solid line";
271  case kGL2DDrawStatsObjects_RougierDashLine:
272  return "Rougier dash line";
273  case kGL2DDrawStatsObjects_TexturedLine:
274  return "Textured line";
275  case kGL2DDrawStatsObjects_SimpleText:
276  return "Simple text";
277  case kGL2DDrawStatsObjects_BorderedText:
278  return "Bordered text";
279  case kGL2DDrawStatsObjects_TextsCollection:
280  return "Texts collection";
281  case kGL2DDrawStatsObjects_SimplePattern:
282  return "Simple pattern";
283  case kGL2DDrawStatsObjects_StaggeredPattern:
284  return "Staggered pattern";
285  case kGL2DDrawStatsObjects_Latin1Texts:
286  return "Latin1 texts";
287  case kGL2DDrawStatsObjects_Latin1BorderedTexts:
288  return "Latin1 bordered texts";
289  case kGL2DDrawStatsObjects_FilledCircles:
290  return "Filled circles";
291  case kGL2DDrawStatsObjects_LineMarks:
292  return "Line marks";
293  case kGL2DDrawStatsObjects_ThinSolidPivotPointLine:
294  return "Thin solid pivot point line";
295  case kGL2DDrawStatsObjects_RadarImage_8_bits:
296  return "Radar image (8 bits)";
297  case kGL2DDrawStatsObjects_Scalebar:
298  return "Scalebar";
299  case kGL2DDrawStatsObjects_TextBoxes:
300  return "Textboxes";
301  case kGL2DDrawStatsObjects_RadarImage_Tex_8_bits:
302  return "Texture based radar image (8 bits)";
303 
304  case kGL2DDrawStatsObjects_Textures:
305  return "Textures";
306 // case kGL2DDrawStatsObjects_TexturesPacks:
307 // return "Textures packs";
308  case kGL2DDrawStatsObjects_Sprites:
309  return "Sprites";
310  case kGL2DDrawStatsObjects_Meshes:
311  return "Meshes";
312  case kGL2DDrawStatsObjects_FastLines:
313  return "Fast lines";
314  case kGL2DDrawStatsObjects_RougierLines:
315  return "Rougier lines";
316  case kGL2DDrawStatsObjects_SolidLines:
317  return "Solid lines";
318  case kGL2DDrawStatsObjects_DashLines:
319  return "Dash lines";
320 // case kGL2DDrawStatsObjects_TexturedLines:
321 // return "Textured lines";
322 // case kGL2DDrawStatsObjects_ThinPivotPointLines:
323 // return "Thin pivot point lines";
324 // case kGL2DDrawStatsObjects_SolidPivotPointLines:
325 // return "Solid pivot point lines";
326 // case kGL2DDrawStatsObjects_PivotPointLines:
327 // return "Pivot point lines";
328  case kGL2DDrawStatsObjects_Lines:
329  return "Lines";
330  case kGL2DDrawStatsObjects_PureTexts:
331  return "Pure texts";
332  case kGL2DDrawStatsObjects_BorderedTexts:
333  return "Bordered texts";
334  case kGL2DDrawStatsObjects_Texts:
335  return "Texts";
336  case kGL2DDrawStatsObjects_Patterns:
337  return "Patterns";
338 // case kGL2DDrawStatsObjects_Circles:
339 // return "Circles";
340 // case kGL2DDrawStatsObjects_Marks:
341 // return "Marks";
342  case kGL2DDrawStatsObjects_RadarImages:
343  return "Radar images";
344 // case kGL2DDrawStatsObjects_Scalebars:
345 // return "Scalebars";
346 // case kGL2DDrawStatsObjects_Boxes:
347 // return "Boxes";
348  case kGL2DDrawStatsObjects_All:
349  return "All";
350  default:
351  return "";
352  }
353  }
354 
355  SDK_IMPLEMENT_IID(IGL2DDrawStats)
356  SDK_END_INTERFACE(IGL2DDrawStats)
357 };
358 SDK_DECLARE_IID(IGL2DDrawStats)
359 
360 SDK_GL2D_END_NAMESPACE
361 
362 #endif // SDK_GL2D_DRAW_STATS_INTERFACE_H_
IGL2DDrawStats::GetObjectsCount
virtual SDKUInt32 SDK_CALLTYPE GetObjectsCount(const SDKUInt64 &obj_type) const =0
Returns number of drawn objects of given type obj_type - Combination of GL2DDrawStatsObjects types.
base_types.h
SDK base types.
IGL2DDrawStats::DrawStatsObjType2Name
static const char * DrawStatsObjType2Name(const SDKUInt64 &obj_type)
Converts Draw Stats object type to it's name.
Definition: gl2d_draw_stats_interface.h:233
GL2DDrawStatsPropertyIDs
GL2DDrawStatsPropertyIDs
Generic GL2D Draw Stats properties.
Definition: gl2d_draw_stats_interface.h:29
IGL2DDrawStats
GL2D Draw Stats object, provides with statistics about last canvas draw operation (all of drawn objec...
Definition: gl2d_draw_stats_interface.h:211
properties_interface.h
Object generic properties interface.
GL2DDrawStatsObjects
GL2DDrawStatsObjects
Available objects for statistics request.
Definition: gl2d_draw_stats_interface.h:35
platform.h
Describes the platform constants.
IGL2DDrawStats::GetDrawCallsCount
virtual SDKUInt32 SDK_CALLTYPE GetDrawCallsCount(const SDKUInt64 &obj_type) const =0
Returns number of draw calls used for drawing given type object obj_type - Combination of GL2DDrawSta...
IGL2DCanvas
GL2D Canvas to use to drawing NOTE! Create/Draw functionality was moved to appropriate GL2D Canvas Fu...
Definition: gl2d_canvas_interface.h:435
IGL2DDrawStats::Dump
virtual void SDK_CALLTYPE Dump() const =0
Dumps given object.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
IGL2DDrawStats::GetVertexesCount
virtual SDKUInt32 SDK_CALLTYPE GetVertexesCount(const SDKUInt64 &obj_type) const =0
Returns number of drawn object vertexes of given type obj_type - Combination of GL2DDrawStatsObjects ...