VTK  9.3.20240327
RTWrapper.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
3 #pragma once
4 
5 #include "Backend.h"
6 #include "Types.h"
7 #include <set>
8 
9 VTK_ABI_NAMESPACE_BEGIN
10 void rtwInit();
11 RTW::Backend *rtwSwitch(const char *name);
12 void rtwShutdown();
13 
14 std::set<RTWBackendType> rtwGetAvailableBackends();
15 
16 // --- Define-based mapping from OSPRay to RTWrapper ----
17 #define OSPObject RTWObject
18 #define OSPGroup RTWGroup
19 #define OSPRenderer RTWRenderer
20 #define OSPWorld RTWWorld
21 #define OSPInstance RTWInstance
22 #define OSPGeometricModel RTWGeometricModel
23 #define OSPData RTWData
24 #define OSPCamera RTWCamera
25 #define OSPLight RTWLight
26 #define OSPTexture2D RTWTexture2D
27 #define OSPTexture RTWTexture2D
28 #define OSPTextureFormat RTWTextureFormat
29 #define OSPMaterial RTWMaterial
30 #define OSPGeometry RTWGeometry
31 #define OSPFrameBuffer RTWFrameBuffer
32 #define OSPVolume RTWVolume
33 #define OSPVolumetricModel RTWVolumetricModel
34 #define OSPTransferFunction RTWTransferFunction
35 #define OSPDataType RTWDataType
36 
37 #define OSP_FLOAT RTW_FLOAT
38 #define OSP_VEC2F RTW_VEC2F
39 #define OSP_VEC3F RTW_VEC3F
40 #define OSP_VEC4F RTW_VEC4F
41 #define OSP_BOX3F RTW_BOX3F
42 
43 #define OSP_INT RTW_INT
44 #define OSP_VEC2I RTW_VEC2I
45 #define OSP_VEC3I RTW_VEC3I
46 #define OSP_VEC4I RTW_VEC4I
47 #define OSP_BOX3I RTW_BOX3I
48 
49 #define OSP_UINT RTW_UINT
50 #define OSP_VEC2UI RTW_VEC2UI
51 #define OSP_VEC3UI RTW_VEC3UI
52 #define OSP_VEC4UI RTW_VEC4UI
53 
54 #define OSP_UCHAR RTW_UCHAR
55 #define OSP_VEC2UC RTW_VEC2UC
56 #define OSP_VEC3UC RTW_VEC3UC
57 #define OSP_VEC4UC RTW_VEC4UC
58 #define OSP_USHORT RTW_USHORT
59 
60 #define OSP_LONG RTW_LONG
61 #define OSP_ULONG RTW_ULONG
62 
63 #define OSP_SHORT RTW_SHORT
64 #define OSP_USHORT RTW_USHORT
65 
66 #define OSP_DOUBLE RTW_DOUBLE
67 
68 #define OSP_OBJECT RTW_OBJECT
69 #define OSP_RAW RTW_RAW
70 // Object reference type.
71 #define OSP_DEVICE RTW_DEVICE
72 // Void pointer type.
73 #define OSP_VOID_PTR RTW_VOID_PTR
74 // Booleans, same size as RTW_INT.
75 #define OSP_BOOL RTW_BOOL
76 // object subtypes
77 #define OSP_CAMERA RTW_CAMERA
78 #define OSP_DATA RTW_DATA
79 #define OSP_FRAMEBUFFER RTW_FRAMEBUFFER
80 #define OSP_FUTURE RTW_FUTURE
81 #define OSP_GEOMETRIC_MODEL RTW_GEOMETRIC_MODEL
82 #define OSP_GEOMETRY RTW_GEOMETRY
83 #define OSP_GROUP RTW_GROUP
84 #define OSP_IMAGE_OPERATION RTW_IMAGE_OPERATION
85 #define OSP_INSTANCE RTW_INSTANCE
86 #define OSP_LIGHT RTW_LIGHT
87 #define OSP_MATERIAL RTW_MATERIAL
88 #define OSP_RENDERER RTW_RENDERER
89 #define OSP_TEXTURE RTW_TEXTURE
90 #define OSP_TRANSFER_FUNCTION RTW_TRANSFER_FUNCTION
91 #define OSP_VOLUME RTW_VOLUME
92 #define OSP_VOLUMETRIC_MODEL RTW_VOLUMETRIC_MODEL
93 #define OSP_WORLD RTW_WORLD
94 // Pointer to a C-style NULL-terminated character string.
95 #define OSP_STRING RTW_STRING
96 // Character scalar type.
97 #define OSP_CHAR RTW_CHAR
98 #define OSP_UNKNOWN RTW_UNKNOWN
99 
100 #define OSP_TEXTURE_FILTER_NEAREST RTW_TEXTURE_FILTER_NEAREST
101 #define OSP_TEXTURE_FILTER_BILINEAR RTW_TEXTURE_FILTER_BILINEAR
102 
103 #define OSP_TEXTURE_RGB8 RTW_TEXTURE_RGB8
104 #define OSP_TEXTURE_R32F RTW_TEXTURE_R32F
105 #define OSP_TEXTURE_RGB32F RTW_TEXTURE_RGB32F
106 #define OSP_TEXTURE_RGBA32F RTW_TEXTURE_RGBA32F
107 #define OSP_TEXTURE_R8 RTW_TEXTURE_R8
108 #define OSP_TEXTURE_RGB8 RTW_TEXTURE_RGB8
109 #define OSP_TEXTURE_RGBA8 RTW_TEXTURE_RGBA8
110 #define OSP_TEXTURE_L8 RTW_TEXTURE_L8
111 #define OSP_TEXTURE_LA8 RTW_TEXTURE_LA8
112 #define OSP_TEXTURE_SRGB RTW_TEXTURE_SRGB
113 #define OSP_TEXTURE_SRGBA RTW_TEXTURE_SRGBA
114 
115 #define OSP_FB_RGBA32F RTW_FB_RGBA32F
116 #define OSP_FB_RGBA8 RTW_FB_RGBA8
117 #define OSP_FB_SRGBA RTW_FB_SRGBA
118 #define OSP_FB_COLOR RTW_FB_COLOR
119 #define OSP_FB_DEPTH RTW_FB_DEPTH
120 #define OSP_FB_ACCUM RTW_FB_ACCUM
121 #define OSP_FB_NORMAL RTW_FB_NORMAL
122 #define OSP_FB_ALBEDO RTW_FB_ALBEDO
123 
124 #define OSP_TETRAHEDRON RTW_TETRAHEDRON
125 #define OSP_HEXAHEDRON RTW_HEXAHEDRON
126 #define OSP_WEDGE RTW_WEDGE
127 #define OSP_PYRAMID RTW_PYRAMID
128 
129 #define OSP_ROUND RTW_ROUND
130 #define OSP_FLAT RTW_FLAT
131 #define OSP_RIBBON RTW_RIBBON
132 #define OSP_UNKNOWN_CURVE_TYPE RTW_UNKNOWN_CURVE_TYPE
133 
134 #define OSP_LINEAR RTW_LINEAR
135 #define OSP_BEZIER RTW_BEZIER
136 #define OSP_BSPLINE RTW_BSPLINE
137 #define OSP_HERMITE RTW_HERMITE
138 #define OSP_CATMULL_ROM RTW_CATMULL_ROM
139 #define OSP_UNKNOWN_CURVE_BASIS RTW_UNKOWN_CURVE_BASIS
140 
141 #define ospSetFloat backend->SetFloat
142 #define ospSetBool backend->SetBool
143 #define ospSetBox1f backend->SetBox1f
144 #define ospSetInt backend->SetInt
145 #define ospSetLinear2f backend->SetLinear2f
146 #define ospSetUInt backend->SetUInt
147 #define ospSetVec2i backend->SetVec2i
148 #define ospSetVec3i backend->SetVec3i
149 #define ospSetVec2f backend->SetVec2f
150 #define ospSetVec3f backend->SetVec3f
151 #define ospSetVec4f backend->SetVec4f
152 #define ospSetString backend->SetString
153 #define ospSetParam backend->SetParam
154 #define ospSetObject backend->SetObject
155 #define ospSetObjectAsData backend->SetObjectAsData
156 
157 #define ospRemoveParam backend->RemoveParam
158 
159 #define ospCommit backend->Commit
160 #define ospRelease backend->Release
161 
162 #define ospNewData backend->NewData
163 #define ospNewCopyData1D backend->NewCopyData1D
164 #define ospNewCopyData2D backend->NewCopyData2D
165 #define ospNewCopyData3D backend->NewCopyData3D
166 #define ospNewSharedData1D backend->NewSharedData1D
167 #define ospNewSharedData2D backend->NewSharedData2D
168 #define ospNewSharedData3D backend->NewSharedData3D
169 #define ospNewGroup backend->NewGroup
170 #define ospNewCamera backend->NewCamera
171 #define ospNewLight backend->NewLight
172 #define ospNewTexture backend->NewTexture
173 #define ospNewMaterial backend->NewMaterial
174 #define ospNewTransferFunction backend->NewTransferFunction
175 #define ospNewVolume backend->NewVolume
176 #define ospNewGeometry backend->NewGeometry
177 #define ospNewModel backend->NewModel
178 #define ospNewGeometricModel backend->NewGeometricModel
179 #define ospNewVolumetricModel backend->NewVolumetricModel
180 #define ospNewWorld backend->NewWorld
181 #define ospNewInstance backend->NewInstance
182 #define ospNewFrameBuffer backend->NewFrameBuffer
183 #define ospNewRenderer backend->NewRenderer
184 #define ospFrameBufferClear backend->FrameBufferClear
185 #define ospRenderFrame backend->RenderFrame
186 #define ospMapFrameBuffer backend->MapFrameBuffer
187 #define ospUnmapFrameBuffer backend->UnmapFrameBuffer
188 
189 #define ospAddGeometry backend->AddGeometry
190 #define ospAddVolume backend->AddVolume
191 
192 #define ospcommon rtw
193 #define osp rtw
194 VTK_ABI_NAMESPACE_END
void rtwShutdown()
void rtwInit()
RTW::Backend * rtwSwitch(const char *name)
std::set< RTWBackendType > rtwGetAvailableBackends()
@ name
Definition: vtkX3D.h:219