ArcGIS Procedural Runtime  3.2.10650
API.h
1 /*
2  COPYRIGHT (c) 2012-2024 Esri R&D Center Zurich
3  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
4  Unpublished material - all rights reserved under the
5  Copyright Laws of the United States and applicable international
6  laws, treaties, and conventions.
7 
8  For additional information, contact:
9  Environmental Systems Research Institute, Inc.
10  Attn: Contracts and Legal Services Department
11  380 New York Street
12  Redlands, California, 92373
13  USA
14 
15  email: contracts@esri.com
16 */
17 
18 #ifndef PRT_API_H_
19 #define PRT_API_H_
20 
21 #include "prt/prt.h"
22 #include "prt/Status.h"
23 #include "prt/InitialShape.h"
24 #include "prt/RuleFileInfo.h"
25 #include "prt/EncoderInfo.h"
26 #include "prt/DecoderInfo.h"
27 #include "prt/LogLevel.h"
28 #include "prt/LogHandler.h"
29 #include "prt/Callbacks.h"
30 #include "prt/Version.h"
31 #include "prt/OcclusionSet.h"
32 
33 
39 namespace prt {
40 
41 
42 // --- MAIN PRT API CALLS
43 
44 
58 PRT_EXPORTS_API const Object* init(
59  const wchar_t* const* prtPlugins,
60  size_t prtPluginsCount,
61  LogLevel logLevel,
62  Status* stat = nullptr
63 );
64 
89 PRT_EXPORTS_API Status generate(
90  const InitialShape* const* initialShapes,
91  size_t initialShapeCount,
92  const OcclusionSet::Handle* occlusionHandles,
93  const wchar_t* const* encoders,
94  size_t encodersCount,
95  const AttributeMap* const* encoderOptions,
96  Callbacks* callbacks,
97  Cache* cache,
98  const OcclusionSet* occlSet,
99  const AttributeMap* generateOptions = nullptr
100 );
101 
131 PRT_EXPORTS_API Status generate(
132  const InitialShape* const* initialShapes,
133  size_t initialShapeCount,
134  const OcclusionSet::Handle* occlusionHandles,
135  const wchar_t* const* encoders,
136  size_t encodersCount,
137  const AttributeMap* const* encoderOptions,
138  Callbacks* callbacks,
139  Cache* cache,
140  const OcclusionSet* const* occlSets,
141  const size_t* occlSetCounts,
142  const AttributeMap* generateOptions = nullptr
143 );
144 
174 PRT_EXPORTS_API Status generateOccluders(
175  const InitialShape* const* initialShapes,
176  size_t initialShapeCount,
177  OcclusionSet::Handle* occlusionHandles,
178  const wchar_t* const* encoders,
179  size_t encodersCount,
180  const AttributeMap* const* encoderOptions,
181  Callbacks* callbacks,
182  Cache* cache,
183  OcclusionSet* occlSet,
184  const AttributeMap* generateOptions = nullptr
185 );
186 
199 PRT_EXPORTS_API RuleFileInfo const* createRuleFileInfo(
200  const wchar_t* ruleFileURI,
201  Cache* cache = nullptr,
202  Status* stat = nullptr
203 );
204 
219 PRT_EXPORTS_API ResolveMap const* createResolveMap(
220  const wchar_t* rpkOrResURI,
221  const wchar_t* unpackFileSystemPath = nullptr,
222  Status* stat = nullptr
223 );
224 
225 
226 // --- EXTENSIONS
227 
243 PRT_EXPORTS_API wchar_t* listEncoderIds(wchar_t* result, size_t* resultSize, Status* stat = nullptr);
244 
260 PRT_EXPORTS_API wchar_t* listDecoderIds(wchar_t* result, size_t* resultSize, Status* stat = nullptr);
261 
275 PRT_EXPORTS_API EncoderInfo const* createEncoderInfo(const wchar_t* encoderId, Status* stat = nullptr);
276 
290 PRT_EXPORTS_API DecoderInfo const* createDecoderInfo(const wchar_t* decoderId, Status* stat = nullptr);
291 
292 
293 // --- TEXTURE HANDLING
294 
311 PRT_EXPORTS_API const AttributeMap* createTextureMetadata(
312  const wchar_t* uri,
313  Cache* cache = nullptr,
314  Status* stat = nullptr
315 );
316 
330 PRT_EXPORTS_API Status getTexturePixeldata(
331  const wchar_t* uri,
332  uint8_t* buffer,
333  size_t bufferSize,
334  Cache* cache = nullptr
335 );
336 
349 PRT_EXPORTS_API Status encodeTexture(
350  const AttributeMap* metadata,
351  const uint8_t* pixeldata,
352  const wchar_t* encoderId,
353  const AttributeMap* encoderOptions,
354  SimpleOutputCallbacks* soc
355 );
356 
357 
358 // --- UTILS
359 
363 PRT_EXPORTS_API const char* getStatusDescription(Status stat);
364 
368 PRT_EXPORTS_API Version const* getVersion();
369 
370 
371 // --- LOGGING
372 
381 PRT_EXPORTS_API Status addLogHandler(LogHandler* logHandler);
382 
391 PRT_EXPORTS_API Status removeLogHandler(LogHandler* logHandler);
392 
402 PRT_EXPORTS_API Status log(const wchar_t* msg, LogLevel level);
403 
407 PRT_EXPORTS_API Status setLogLevel(LogLevel level);
408 
412 PRT_EXPORTS_API LogLevel getLogLevel(Status* status = nullptr);
413 
414 } /* namespace prt */
415 
416 
417 #endif /* PRT_API_H_ */
Status addLogHandler(LogHandler *logHandler)
wchar_t * listEncoderIds(wchar_t *result, size_t *resultSize, Status *stat=nullptr)
const char * getStatusDescription(Status stat)
Status generateOccluders(const InitialShape *const *initialShapes, size_t initialShapeCount, OcclusionSet::Handle *occlusionHandles, const wchar_t *const *encoders, size_t encodersCount, const AttributeMap *const *encoderOptions, Callbacks *callbacks, Cache *cache, OcclusionSet *occlSet, const AttributeMap *generateOptions=nullptr)
LogLevel
Definition: LogLevel.h:29
DecoderInfo const * createDecoderInfo(const wchar_t *decoderId, Status *stat=nullptr)
ResolveMap const * createResolveMap(const wchar_t *rpkOrResURI, const wchar_t *unpackFileSystemPath=nullptr, Status *stat=nullptr)
Version const * getVersion()
Status encodeTexture(const AttributeMap *metadata, const uint8_t *pixeldata, const wchar_t *encoderId, const AttributeMap *encoderOptions, SimpleOutputCallbacks *soc)
const AttributeMap * createTextureMetadata(const wchar_t *uri, Cache *cache=nullptr, Status *stat=nullptr)
Status log(const wchar_t *msg, LogLevel level)
Status getTexturePixeldata(const wchar_t *uri, uint8_t *buffer, size_t bufferSize, Cache *cache=nullptr)
Status
Definition: Status.h:31
LogLevel getLogLevel(Status *status=nullptr)
EncoderInfo const * createEncoderInfo(const wchar_t *encoderId, Status *stat=nullptr)
Status setLogLevel(LogLevel level)
const Object * init(const wchar_t *const *prtPlugins, size_t prtPluginsCount, LogLevel logLevel, Status *stat=nullptr)
The Procedural Runtime API namespace. The prt namespace contains the top level entry points into the ...
Definition: Annotation.h:24
RuleFileInfo const * createRuleFileInfo(const wchar_t *ruleFileURI, Cache *cache=nullptr, Status *stat=nullptr)
Status generate(const InitialShape *const *initialShapes, size_t initialShapeCount, const OcclusionSet::Handle *occlusionHandles, const wchar_t *const *encoders, size_t encodersCount, const AttributeMap *const *encoderOptions, Callbacks *callbacks, Cache *cache, const OcclusionSet *occlSet, const AttributeMap *generateOptions=nullptr)
wchar_t * listDecoderIds(wchar_t *result, size_t *resultSize, Status *stat=nullptr)
Status removeLogHandler(LogHandler *logHandler)