@@ -40,19 +40,14 @@ class UISampleApp final : public MonoWindowApplication, public BuiltinResourcesA
4040 }
4141
4242 const uint32_t addtionalBufferOwnershipFamilies[] = {getGraphicsQueue ()->getFamilyIndex ()};
43- // we want to use the vertex data through UTBs
44- using usage_f = IGPUBuffer::E_USAGE_FLAGS;
45- CAssetConverter::patch_t <asset::ICPUPolygonGeometry> patch = {};
46- patch.positionBufferUsages = usage_f::EUF_UNIFORM_TEXEL_BUFFER_BIT;
47- patch.indexBufferUsages = usage_f::EUF_INDEX_BUFFER_BIT;
48- patch.otherBufferUsages = usage_f::EUF_UNIFORM_TEXEL_BUFFER_BIT;
4943 m_scene = CGeometryCreatorScene::create (
5044 {
5145 .transferQueue = getTransferUpQueue (),
5246 .utilities = m_utils.get (),
5347 .logger = m_logger.get (),
5448 .addtionalBufferOwnershipFamilies = addtionalBufferOwnershipFamilies
55- },patch
49+ },
50+ CSimpleDebugRenderer::DefaultPolygonGeometryPatch
5651 );
5752
5853 // for the scene drawing pass
@@ -137,7 +132,19 @@ class UISampleApp final : public MonoWindowApplication, public BuiltinResourcesA
137132 if (!m_renderpass)
138133 return logFail (" Failed to create Scene Renderpass!" );
139134 }
140- m_renderer = CSimpleDebugRenderer::create (m_assetMgr.get (),m_renderpass.get (),0 ,m_scene.get ());
135+ const auto & geometries = m_scene->getInitParams ().geometries ;
136+ m_renderer = CSimpleDebugRenderer::create (m_assetMgr.get (),m_renderpass.get (),0 ,{&geometries.front ().get (),geometries.size ()});
137+ // special case
138+ {
139+ const auto & pipelines = m_renderer->getInitParams ().pipelines ;
140+ auto ix = 0u ;
141+ for (const auto & name : m_scene->getInitParams ().geometryNames )
142+ {
143+ if (name==" Cone" )
144+ m_renderer->getGeometry (ix).pipeline = pipelines[CSimpleDebugRenderer::SInitParams::PipelineType::Cone];
145+ ix++;
146+ }
147+ }
141148 // we'll only display one thing at a time
142149 m_renderer->m_instances .resize (1 );
143150
@@ -258,7 +265,7 @@ class UISampleApp final : public MonoWindowApplication, public BuiltinResourcesA
258265 // tear down scene every frame
259266 auto & instance = m_renderer->m_instances [0 ];
260267 memcpy (&instance.world ,&interface.model ,sizeof (instance.world ));
261- instance.packedGeo = m_renderer->getInitParams ().geoms . data ()+ interface.gcIndex ;
268+ instance.packedGeo = m_renderer->getGeometries ().data () + interface.gcIndex ;
262269 m_renderer->render (cb,viewParams);
263270 }
264271 cb->endRenderPass ();
@@ -418,7 +425,7 @@ class UISampleApp final : public MonoWindowApplication, public BuiltinResourcesA
418425 if (e.type ==nbl::ui::SMouseEvent::EET_SCROLL && m_renderer)
419426 {
420427 interface.gcIndex += int16_t (core::sign (e.scrollEvent .verticalScroll ));
421- interface.gcIndex = core::clamp (interface.gcIndex ,0ull ,m_renderer->getInitParams (). geoms .size ()-1 );
428+ interface.gcIndex = core::clamp (interface.gcIndex ,0ull ,m_renderer->getGeometries () .size ()-1 );
422429 }
423430 }
424431 },
@@ -453,7 +460,7 @@ class UISampleApp final : public MonoWindowApplication, public BuiltinResourcesA
453460 .keyboardEvents = uiEvents.keyboard
454461 };
455462
456- interface.objectName = m_scene->getGeometries () [interface.gcIndex ]. name ;
463+ interface.objectName = m_scene->getInitParams (). geometryNames [interface.gcIndex ];
457464 interface.imGUI ->update (params);
458465 }
459466
0 commit comments