MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / bindShaderData

Method bindShaderData

Source/RenderPasses/SDFEditor/SDFEditor.cpp:129–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129void SDFEditor::bindShaderData(const ShaderVar& var, const ref<Texture>& pInputColor, const ref<Texture>& pVBuffer)
130{
131 mGPUEditingData.editing = mEditingKeyDown;
132 mGPUEditingData.previewEnabled = mPreviewEnabled;
133 mGPUEditingData.instanceID = mCurrentEdit.instanceID;
134 mGPUEditingData.scalingAxis = uint32_t(
135 mPrimitiveTransformationEdit.state != TransformationState::Scaling ? SDFEditorAxis::Count : mPrimitiveTransformationEdit.axis
136 );
137 mGPUEditingData.primitive = mCurrentEdit.primitive;
138 mGPUEditingData.primitiveBB = SDF3DPrimitiveFactory::computeAABB(mCurrentEdit.primitive);
139 mpSDFEditingDataBuffer->setBlob(&mGPUEditingData, 0, sizeof(SDFEditingData));
140
141 if (!mpGridInstanceIDsBuffer || mGridInstanceCount < mpScene->getSDFGridCount())
142 {
143 mGridInstanceCount = mpScene->getSDFGridCount(); // This is safe because the SDF Editor only supports SDFGrid type of SBS for now.
144 std::vector<uint32_t> instanceIDs = mpScene->getGeometryInstanceIDsByType(Scene::GeometryType::SDFGrid);
145 mpGridInstanceIDsBuffer = mpDevice->createStructuredBuffer(
146 sizeof(uint32_t),
147 mGridInstanceCount,
148 ResourceBindFlags::ShaderResource | ResourceBindFlags::UnorderedAccess,
149 MemoryType::DeviceLocal,
150 instanceIDs.data(),
151 false
152 );
153 }
154
155 auto rootVar = mpGUIPass->getRootVar();
156
157 rootVar["gInputColor"] = pInputColor;
158 rootVar["gLinearZ"] = mpEditingLinearZBuffer;
159 rootVar["gVBuffer"] = pVBuffer;
160 mpScene->bindShaderData(rootVar["gScene"]);
161
162 auto guiPassVar = rootVar["gGUIPass"];
163 guiPassVar["resolution"] = mFrameDim;
164 guiPassVar["mousePos"] = uint2(mUI2D.currentMousePosition);
165 guiPassVar["pickingData"] = mpPickingInfo;
166 guiPassVar["editingPrimitiveData"].setBuffer(mpSDFEditingDataBuffer);
167 guiPassVar["gridInstanceIDs"] = mpGridInstanceIDsBuffer;
168 guiPassVar["bbRenderSettings"].setBlob(mUI2D.bbRenderSettings);
169 guiPassVar["gridInstanceCount"] = mGridInstanceCount;
170 guiPassVar["ui2DActive"] = uint(isMainGUIKeyDown());
171 guiPassVar["gridPlane"].setBlob(mUI2D.gridPlane);
172 guiPassVar["symmetryPlane"].setBlob(mUI2D.symmetryPlane);
173 mUI2D.pMarker2DSet->bindShaderData(guiPassVar["markerSet"]);
174}
175
176void SDFEditor::fetchPreviousVBufferAndZBuffer(RenderContext* pRenderContext, ref<Texture>& pVBuffer, ref<Texture>& pDepth)
177{

Callers 7

executeMethod · 0.45
executeOptimizerPassMethod · 0.45
executeViewerPassMethod · 0.45
executeMethod · 0.45
prepareSurfaceDataMethod · 0.45
finalShadingMethod · 0.45
prepareVarsMethod · 0.45

Calls 6

getRootVarMethod · 0.80
setBlobMethod · 0.45
dataMethod · 0.45
setBufferMethod · 0.45

Tested by

no test coverage detected