Skip to content

Commit f3da94c

Browse files
committed
tutorial clean and improve for Northstar - 2
1 parent e158f94 commit f3da94c

File tree

22 files changed

+152
-103
lines changed

22 files changed

+152
-103
lines changed

tutorials/01_camera_setup/main.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,14 @@ int main()
8989
CHECK( rprContextSetScene(context, scene) );
9090

9191
// Create framebuffer to store rendering result
92-
rpr_framebuffer_desc desc;
93-
desc.fb_width = 800;
94-
desc.fb_height = 600;
92+
rpr_framebuffer_desc desc = { 800 , 600 };
9593

9694
// 4 component 32-bit float value each
9795
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
98-
rpr_framebuffer frame_buffer;
96+
rpr_framebuffer frame_buffer = nullptr;
97+
rpr_framebuffer frame_buffer_resolved = nullptr;
9998
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
99+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
100100

101101
// Clear framebuffer to black color
102102
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -129,18 +129,20 @@ int main()
129129
// Progressively render an image
130130
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
131131
CHECK( rprContextRender(context) );
132+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
132133

133134
std::cout << "Rendering finished.\n";
134135

135136
// Save the result to file
136-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "01.png") );
137+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "01.png") );
137138

138139
// Release the stuff we created
139140
CHECK(rprObjectDelete(matsys));matsys=nullptr;
140141
CHECK(rprObjectDelete(cube));cube=nullptr;
141142
CHECK(rprObjectDelete(scene));scene=nullptr;
142143
CHECK(rprObjectDelete(camera));camera=nullptr;
143144
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
145+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
144146
CheckNoLeak(context);
145147
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
146148
return 0;

tutorials/02_mesh/main.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ int main()
5656
std::cout << "Context successfully created.\n";
5757

5858
// Create a scene
59-
rpr_scene scene;
59+
rpr_scene scene = nullptr;
6060
CHECK( rprContextCreateScene(context, &scene) );
6161

6262
// Create camera
63-
rpr_camera camera;
63+
rpr_camera camera = nullptr;
6464
{
6565
CHECK( rprContextCreateCamera(context, &camera) );
6666

@@ -79,14 +79,14 @@ int main()
7979
CHECK( rprContextSetScene(context, scene) );
8080

8181
// Create framebuffer to store rendering result
82-
rpr_framebuffer_desc desc;
83-
desc.fb_width = 800;
84-
desc.fb_height = 600;
82+
rpr_framebuffer_desc desc = { 800 , 600 };
8583

8684
// 4 component 32-bit float value each
8785
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
88-
rpr_framebuffer frame_buffer;
86+
rpr_framebuffer frame_buffer = nullptr;
87+
rpr_framebuffer frame_buffer_resolved = nullptr;
8988
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
89+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
9090

9191
// Clear framebuffer to black color
9292
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -100,7 +100,7 @@ int main()
100100
/////////Mesh Tutorial//////////
101101

102102
// Create cube mesh
103-
rpr_shape cube;
103+
rpr_shape cube = nullptr;
104104
{
105105
CHECK(rprContextCreateMesh(context,
106106
(rpr_float const*)&cube_data[0], 24, sizeof(vertex),
@@ -121,7 +121,7 @@ int main()
121121
CHECK(rprShapeSetTransform(cube, RPR_TRUE, &m.m00));
122122
}
123123
// Create plane mesh
124-
rpr_shape plane;
124+
rpr_shape plane = nullptr;
125125
{
126126
CHECK(rprContextCreateMesh(context,
127127
(rpr_float const*)&plane_data[0], 4, sizeof(vertex),
@@ -139,19 +139,21 @@ int main()
139139
// Progressively render an image
140140
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
141141
CHECK( rprContextRender(context) );
142+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
142143

143144
std::cout << "Rendering finished.\n";
144145

145146
// Save the result to file
146-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "02.png") );
147+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "02.png") );
147148

148149
// Release the stuff we created
149-
CHECK(rprObjectDelete(matsys));
150-
CHECK(rprObjectDelete(plane));
151-
CHECK(rprObjectDelete(cube));
152-
CHECK(rprObjectDelete(scene));
153-
CHECK(rprObjectDelete(camera));
154-
CHECK(rprObjectDelete(frame_buffer));
150+
CHECK(rprObjectDelete(matsys));matsys=nullptr;
151+
CHECK(rprObjectDelete(plane));plane=nullptr;
152+
CHECK(rprObjectDelete(cube));cube=nullptr;
153+
CHECK(rprObjectDelete(scene));scene=nullptr;
154+
CHECK(rprObjectDelete(camera));camera=nullptr;
155+
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
156+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
155157
CheckNoLeak(context);
156158
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
157159
return 0;

tutorials/03_instance/main.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,14 @@ int main()
115115
CHECK( rprContextSetScene(context, scene) );
116116

117117
// Create framebuffer to store rendering result
118-
rpr_framebuffer_desc desc;
119-
desc.fb_width = 800;
120-
desc.fb_height = 600;
118+
rpr_framebuffer_desc desc = { 800 , 600 };
121119

122120
// 4 component 32-bit float value each
123121
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
124-
rpr_framebuffer frame_buffer;
122+
rpr_framebuffer frame_buffer = nullptr;
123+
rpr_framebuffer frame_buffer_resolved = nullptr;
125124
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
125+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
126126

127127
// Clear framebuffer to black color
128128
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -152,11 +152,12 @@ int main()
152152
// Progressively render an image
153153
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
154154
CHECK( rprContextRender(context) );
155+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
155156

156157
std::cout << "Rendering finished.\n";
157158

158159
// Save the result to file
159-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "03.png") );
160+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "03.png") );
160161

161162
// Release the stuff we created
162163
CHECK(rprObjectDelete(matsys));matsys=nullptr;
@@ -166,6 +167,7 @@ int main()
166167
CHECK(rprObjectDelete(scene));scene=nullptr;
167168
CHECK(rprObjectDelete(camera));camera=nullptr;
168169
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
170+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
169171
CheckNoLeak(context);
170172
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
171173
return 0;

tutorials/10_light_point/main.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,10 @@ int main()
146146

147147
// 4 component 32-bit float value each
148148
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
149-
rpr_framebuffer frame_buffer;
149+
rpr_framebuffer frame_buffer = nullptr;
150+
rpr_framebuffer frame_buffer_resolved = nullptr;
150151
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
152+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
151153

152154
// Clear framebuffer to black color
153155
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -178,11 +180,12 @@ int main()
178180
// Progressively render an image
179181
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
180182
CHECK( rprContextRender(context) );
183+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
181184

182185
std::cout << "Rendering finished.\n";
183186

184187
// Save the result to file
185-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "10.png") );
188+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "10.png") );
186189

187190
// Release the stuff we created
188191
CHECK(rprObjectDelete(matsys));matsys=nullptr;
@@ -194,6 +197,7 @@ int main()
194197
CHECK(rprObjectDelete(scene));scene=nullptr;
195198
CHECK(rprObjectDelete(camera));camera=nullptr;
196199
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
200+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
197201
CheckNoLeak(context);
198202
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
199203
return 0;

tutorials/11_light_mesh/main.cpp

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ int main()
5959
std::cout << "Context successfully created.\n";
6060

6161
// Create a scene
62-
rpr_scene scene;
62+
rpr_scene scene = nullptr;
6363
CHECK( rprContextCreateScene(context, &scene) );
6464

6565
// Create cube mesh
66-
rpr_shape cube;
66+
rpr_shape cube = nullptr;
6767
{
6868
CHECK( rprContextCreateMesh(context,
6969
(rpr_float const*)&cube_data[0], 24, sizeof(vertex),
@@ -81,7 +81,7 @@ int main()
8181
CHECK( rprShapeSetTransform(cube, RPR_TRUE, &m.m00) );
8282
}
8383
// Create plane mesh
84-
rpr_shape plane;
84+
rpr_shape plane = nullptr;
8585
{
8686
CHECK( rprContextCreateMesh(context,
8787
(rpr_float const*)&plane_data[0], 4, sizeof(vertex),
@@ -97,7 +97,7 @@ int main()
9797
}
9898

9999
// Create camera
100-
rpr_camera camera;
100+
rpr_camera camera = nullptr;
101101
{
102102
CHECK( rprContextCreateCamera(context, &camera) );
103103

@@ -116,7 +116,7 @@ int main()
116116
CHECK( rprContextSetScene(context, scene) );
117117

118118
// Create simple diffuse shader
119-
rpr_material_node diffuse;
119+
rpr_material_node diffuse = nullptr;
120120
{
121121
CHECK( rprMaterialSystemCreateNode(matsys, RPR_MATERIAL_NODE_DIFFUSE, &diffuse) );
122122

@@ -134,8 +134,10 @@ int main()
134134

135135
// 4 component 32-bit float value each
136136
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
137-
rpr_framebuffer frame_buffer;
137+
rpr_framebuffer frame_buffer = nullptr;
138+
rpr_framebuffer frame_buffer_resolved = nullptr;
138139
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
140+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
139141

140142
// Clear framebuffer to black color
141143
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -186,22 +188,24 @@ int main()
186188
// Progressively render an image
187189
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
188190
CHECK( rprContextRender(context) );
191+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
189192

190193
std::cout << "Rendering finished.\n";
191194

192195
// Save the result to file
193-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "11.png") );
196+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "11.png") );
194197

195198
// Release the stuff we created
196-
CHECK(rprObjectDelete(emissive));
197-
CHECK(rprObjectDelete(matsys));
198-
CHECK(rprObjectDelete(plane));
199-
CHECK(rprObjectDelete(cube));
200-
CHECK(rprObjectDelete(light));
201-
CHECK(rprObjectDelete(diffuse));
202-
CHECK(rprObjectDelete(scene));
203-
CHECK(rprObjectDelete(camera));
204-
CHECK(rprObjectDelete(frame_buffer));
199+
CHECK(rprObjectDelete(emissive)); emissive=nullptr;
200+
CHECK(rprObjectDelete(matsys)); matsys=nullptr;
201+
CHECK(rprObjectDelete(plane)); plane=nullptr;
202+
CHECK(rprObjectDelete(cube)); cube=nullptr;
203+
CHECK(rprObjectDelete(light)); light=nullptr;
204+
CHECK(rprObjectDelete(diffuse)); diffuse=nullptr;
205+
CHECK(rprObjectDelete(scene)); scene=nullptr;
206+
CHECK(rprObjectDelete(camera)); camera=nullptr;
207+
CHECK(rprObjectDelete(frame_buffer)); frame_buffer=nullptr;
208+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
205209
CheckNoLeak(context);
206210
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
207211
return 0;

tutorials/12_light_environment/main.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ int main()
4545
CHECK( rprContextSetActivePlugin(context, plugins[0]) );
4646

4747

48-
rpr_material_system matsys;
48+
rpr_material_system matsys = nullptr;
4949
CHECK( rprContextCreateMaterialSystem(context, 0, &matsys) );
5050
// Check if it is created successfully
5151
if (status != RPR_SUCCESS)
@@ -57,11 +57,11 @@ int main()
5757
std::cout << "Context successfully created.\n";
5858

5959
// Create a scene
60-
rpr_scene scene;
60+
rpr_scene scene = nullptr;
6161
CHECK( rprContextCreateScene(context, &scene) );
6262

6363
// Create cube mesh
64-
rpr_shape cube;
64+
rpr_shape cube = nullptr;
6565
{
6666
CHECK( rprContextCreateMesh(context,
6767
(rpr_float const*)&cube_data[0], 24, sizeof(vertex),
@@ -109,7 +109,7 @@ int main()
109109
CHECK( rprSceneAttachShape(scene, instance) );
110110
}
111111
// Create camera
112-
rpr_camera camera;
112+
rpr_camera camera = nullptr;
113113
{
114114
CHECK( rprContextCreateCamera(context, &camera) );
115115

@@ -128,7 +128,7 @@ int main()
128128
CHECK( rprContextSetScene(context, scene) );
129129

130130
// Create simple diffuse shader
131-
rpr_material_node diffuse;
131+
rpr_material_node diffuse = nullptr;
132132
{
133133
CHECK( rprMaterialSystemCreateNode(matsys, RPR_MATERIAL_NODE_DIFFUSE, &diffuse) );
134134

@@ -145,8 +145,10 @@ int main()
145145

146146
// 4 component 32-bit float value each
147147
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
148-
rpr_framebuffer frame_buffer;
148+
rpr_framebuffer frame_buffer = nullptr;
149+
rpr_framebuffer frame_buffer_resolved = nullptr;
149150
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
151+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
150152

151153
// Clear framebuffer to black color
152154
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -181,11 +183,12 @@ int main()
181183
// Progressively render an image
182184
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
183185
CHECK( rprContextRender(context) );
186+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
184187

185188
std::cout << "Rendering finished.\n";
186189

187190
// Save the result to file
188-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "12.png") );
191+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "12.png") );
189192

190193
// Release the stuff we created
191194
CHECK(rprObjectDelete(matsys));matsys=nullptr;
@@ -197,6 +200,7 @@ int main()
197200
CHECK(rprObjectDelete(scene));scene=nullptr;
198201
CHECK(rprObjectDelete(camera));camera=nullptr;
199202
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
203+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
200204
CHECK(rprObjectDelete(img));img=nullptr;
201205
CheckNoLeak(context);
202206
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.

tutorials/20_material_textured/main.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,9 @@ int main()
167167
// 4 component 32-bit float value each
168168
rpr_framebuffer_format fmt = {4, RPR_COMPONENT_TYPE_FLOAT32};
169169
rpr_framebuffer frame_buffer=nullptr;
170+
rpr_framebuffer frame_buffer_resolved = nullptr;
170171
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer) );
172+
CHECK( rprContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer_resolved) );
171173

172174
// Clear framebuffer to black color
173175
CHECK( rprFrameBufferClear(frame_buffer) );
@@ -208,11 +210,12 @@ int main()
208210
// Progressively render an image
209211
CHECK(rprContextSetParameterByKey1u(context,RPR_CONTEXT_ITERATIONS,NUM_ITERATIONS));
210212
CHECK( rprContextRender(context) );
213+
CHECK(rprContextResolveFrameBuffer(context,frame_buffer,frame_buffer_resolved,true));
211214

212215
std::cout << "Rendering finished.\n";
213216

214217
// Save the result to file
215-
CHECK( rprFrameBufferSaveToFile(frame_buffer, "20.png") );
218+
CHECK( rprFrameBufferSaveToFile(frame_buffer_resolved, "20.png") );
216219

217220
// Release the stuff we created
218221
CHECK(rprObjectDelete(tex));tex=nullptr;
@@ -228,6 +231,7 @@ int main()
228231
CHECK(rprObjectDelete(scene));scene=nullptr;
229232
CHECK(rprObjectDelete(camera));camera=nullptr;
230233
CHECK(rprObjectDelete(frame_buffer));frame_buffer=nullptr;
234+
CHECK(rprObjectDelete(frame_buffer_resolved));frame_buffer_resolved=nullptr;
231235
CheckNoLeak(context);
232236
CHECK(rprObjectDelete(context));context=nullptr; // Always delete the RPR Context in last.
233237
return 0;

0 commit comments

Comments
 (0)