CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
TrRndLocalRenditionHost.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23// Renderer local host
24
25#ifndef ODTRRNDLOCALRENDITIONHOST
26#define ODTRRNDLOCALRENDITIONHOST
27
28#include "TD_PackPush.h"
29
30#include "TPtr.h"
31#include "../TrVisRendition.h"
32#include "TrRndLocalContext.h"
35
36// Forward declaration
39
44{
45 public:
46 // Returns managed rendition
48 virtual const OdTrVisRendition *rendition() const = 0;
49
50 // Returns render settings manager
53
54 // Context data storage management
55 virtual bool hasContextData() const = 0;
56 virtual void processContextData(bool bStore) = 0;
57
58 // Resource accessors
59 virtual bool getMetafileDef(OdTrVisMetafileId metafileId, OdTrVisMetafileDef &mfDef, bool bUnpurge = true) const = 0;
60 virtual bool getMaterialDef(OdTrVisMaterialId materialId, OdTrVisMaterialDef &mtDef) const = 0;
61
62 // Check does client rendition require metafile data unpurge, or support alternative.
63 virtual bool unpurgeRequirement() const { return true; }
64
65 // Property accessors
66 virtual OdUInt32 hasProperties(OdTrVisRendition::DataType dataType, OdTrVisId resId) const = 0;
68 OdTrVisPropertyDef *&pPropDef) const = 0;
69 // Ability to make shareable properties clone
70 virtual bool supportShallowPropertiesClone(OdTrVisMetafileContainer *pMfStream) const = 0;
72
73 // Some renderers require own unique bindings for data arrays. In this case we can add special array for per-rendition bindings.
74 virtual bool requireUniqueBindings(const OdTrRndLocalRenditionHost * /*pSecondary*/) const { return false; }
75 virtual void toggleUniqueBindings(OdTrVisMetafileContainer * /*pMfStream*/, const OdTrRndLocalRenditionHost * /*pSecondary*/) const { }
76
77 // Return supported data formats (bit mask, represents data type sizes in bytes)
79 { if (type > OdTrVisArrayWrapper::Type_Index) return 0;
80 else if (type < OdTrVisArrayWrapper::Type_Index) return 4;
81 return 2; }
82 // Returns external arrays manager
83 virtual const OdTrRndExternalArraysManager &externalArraysManager() const { return *this; }
84};
85
89class OdTrRndLocalRenditionClient : public OdRxObject
90{
91 public:
92 // Returns optional local context
94 // Returns optional resource sharing provider (for multiple devices session sharing)
96 // Returns optional highlighting and visibility branches interface (if true, rendition will be initialized as Gs-based)
98
99 // Predefined textures generation
100 virtual bool generateLinetypeTexture(OdPs::LineType /*ltpId*/, OdUInt8Array& /*outPixels*/, OdUInt8 /*forePixVal*/) const { return false; }
101 virtual bool generateFilltypeTexture(OdPs::FillStyle /*fsId*/, OdUInt8Array& /*outPixels*/, OdUInt32 /*dimX*/, OdUInt32 /*dimY*/, OdUInt8 /*forePixVal*/) const { return false; }
102};
103
108
113{
114 public:
115 static void addRef(OdTrRndLocalRenditionHost* pObj) { if (pObj) pObj->rendition()->addRef(); }
116 static void release(OdTrRndLocalRenditionHost* pObj) { if (pObj) pObj->rendition()->release(); }
117};
118
137
138#include "TD_PackPop.h"
139
140#endif // ODTRRNDLOCALRENDITIONHOST
unsigned int OdUInt32
unsigned char OdUInt8
OdSmartPtr< OdTrRndLocalContext > OdTrRndLocalContextPtr
OdSmartPtr< OdTrRndLocalRenditionClient > OdTrRndLocalRenditionClientPtr
OdSmartPtr< OdTrRndStateBranchClient > OdTrRndStateBranchClientPtr
OdTrVisId OdTrVisMaterialId
Definition TrVisDefs.h:109
OdTrVisId OdTrVisMetafileId
Definition TrVisDefs.h:105
OdUInt64 OdTrVisId
Definition TrVisDefs.h:101
OdSmartPtr< OdTrVisSharingProviderClient > OdTrVisSharingProviderClientPtr
OdArray< OdUInt8, OdMemoryAllocator< OdUInt8 > > OdUInt8Array
Definition UInt8Array.h:35
virtual void release()=0
virtual void addRef()=0
virtual OdTrRndStateBranchClientPtr stateBranchClient()
virtual bool generateFilltypeTexture(OdPs::FillStyle, OdUInt8Array &, OdUInt32, OdUInt32, OdUInt8) const
virtual OdTrRndLocalContextPtr createLocalContext(OdTrVisRenderClient *)
virtual bool generateLinetypeTexture(OdPs::LineType, OdUInt8Array &, OdUInt8) const
virtual OdTrVisSharingProviderClientPtr createSharingProvider()
virtual bool unpurgeRequirement() const
virtual bool supportShallowPropertiesClone(OdTrVisMetafileContainer *pMfStream) const =0
virtual bool hasContextData() const =0
virtual void processContextData(bool bStore)=0
virtual OdTrRndRenderSettingsManager * renderSettingsManager()=0
virtual const OdTrRndRenderSettingsManager * renderSettingsManager() const =0
virtual const OdTrVisRendition * rendition() const =0
virtual bool getMaterialDef(OdTrVisMaterialId materialId, OdTrVisMaterialDef &mtDef) const =0
virtual bool shallowPropertiesClone(OdTrVisMetafileContainer *pMfStream)=0
virtual OdUInt32 supportedDataFormat(OdTrVisArrayWrapper::Type type) const
virtual OdUInt32 hasProperties(OdTrVisRendition::DataType dataType, OdTrVisId resId) const =0
virtual const OdTrRndExternalArraysManager & externalArraysManager() const
virtual bool getPropertyDef(OdTrVisRendition::DataType dataType, OdTrVisId resId, OdTrVisPropertyDef::PropertyType propType, OdTrVisPropertyDef *&pPropDef) const =0
virtual void toggleUniqueBindings(OdTrVisMetafileContainer *, const OdTrRndLocalRenditionHost *) const
virtual bool requireUniqueBindings(const OdTrRndLocalRenditionHost *) const
virtual bool getMetafileDef(OdTrVisMetafileId metafileId, OdTrVisMetafileDef &mfDef, bool bUnpurge=true) const =0
virtual OdTrVisRendition * rendition()=0
OdTrRndLocalRenditionHostPtr & operator=(OdTrRndLocalRenditionHost *pObj)
OdTrRndLocalRenditionHostPtr(const OdTrRndLocalRenditionHost *pObj, bool bAttach=false)
OdTrRndLocalRenditionHostPtr(const OdTrRndLocalRenditionHostPtr &ref)
static void release(OdTrRndLocalRenditionHost *pObj)
static void addRef(OdTrRndLocalRenditionHost *pObj)
TPtr & operator=(TObj *pObj)
Definition TPtr.h:103
GLenum GLint ref
Definition gles2_ext.h:262
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274
FillStyle
Definition PlotStyles.h:53