MCPcopy Create free account
hub / github.com/baldurk/renderdoc / itemClicked

Method itemClicked

qrenderdoc/Widgets/AnnotationDisplay.cpp:325–369  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

323}
324
325void AnnotationDisplay::itemClicked(RDTreeWidgetItem *item, int column)
326{
327 if(!m_HasGoColumn || column != 2)
328 return;
329
330 QVariant tag = item->tag();
331
332 if(!tag.canConvert<AnnotationResourceTag>())
333 return;
334
335 AnnotationResourceTag resTag = tag.value<AnnotationResourceTag>();
336
337 if(resTag.resourceType == ResourceType::Buffer)
338 {
339 IBufferViewer *viewer = m_Ctx.ViewBuffer(resTag.bufferOffset, resTag.bufferSize,
340 resTag.resourceId, resTag.bufferFormat);
341 m_Ctx.AddDockWindow(viewer->Widget(), DockReference::MainToolArea, NULL);
342 }
343 else if(resTag.resourceType == ResourceType::Texture)
344 {
345 if(!m_Ctx.HasTextureViewer())
346 m_Ctx.ShowTextureViewer();
347 ITextureViewer *viewer = m_Ctx.GetTextureViewer();
348 viewer->ViewTexture(resTag.resourceId, CompType::Typeless, true);
349 }
350 else if(resTag.resourceType == ResourceType::Shader)
351 {
352 ResourceId id = resTag.resourceId;
353 ICaptureContext *ctx = &m_Ctx;
354 m_Ctx.Replay().AsyncInvoke([this, ctx, id](IReplayController *r) {
355 rdcarray<ShaderEntryPoint> entries = r->GetShaderEntryPoints(id);
356 if(entries.isEmpty())
357 return;
358
359 const ShaderReflection *refl = r->GetShader(ResourceId(), id, entries[0]);
360 if(!refl)
361 return;
362
363 GUIInvoke::call(this, [ctx, refl] {
364 IShaderViewer *viewer = ctx->ViewShader(refl, ResourceId());
365 ctx->AddDockWindow(viewer->Widget(), DockReference::MainToolArea, NULL);
366 });
367 });
368 }
369}

Callers

nothing calls this directly

Calls 14

ResourceIdFunction · 0.50
tagMethod · 0.45
ViewBufferMethod · 0.45
AddDockWindowMethod · 0.45
WidgetMethod · 0.45
HasTextureViewerMethod · 0.45
ShowTextureViewerMethod · 0.45
GetTextureViewerMethod · 0.45
ViewTextureMethod · 0.45
AsyncInvokeMethod · 0.45
GetShaderEntryPointsMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected