MCPcopy Create free account
hub / github.com/blender/cycles / WritePixels

Method WritePixels

src/hydra/render_buffer.cpp:185–283  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183} // namespace
184
185void HdCyclesRenderBuffer::WritePixels(const float *srcPixels,
186 const PXR_NS::GfVec2i &srcOffset,
187 const GfVec2i &srcDims,
188 const int srcChannels,
189 bool isId)
190{
191 uint8_t *dstPixels = _data.data();
192
193 const size_t formatSize = HdDataSizeOfFormat(_format);
194 dstPixels += srcOffset[1] * (formatSize * _width) + srcOffset[0] * formatSize;
195
196 switch (_format) {
197 case HdFormatUNorm8:
198 case HdFormatUNorm8Vec2:
199 case HdFormatUNorm8Vec3:
200 case HdFormatUNorm8Vec4:
201 writePixels(srcPixels,
202 srcDims,
203 srcChannels,
204 dstPixels,
205 GfVec2i(_width, _height),
206 1 + (_format - HdFormatUNorm8),
207 UInt8Conversion());
208 break;
209
210 case HdFormatSNorm8:
211 case HdFormatSNorm8Vec2:
212 case HdFormatSNorm8Vec3:
213 case HdFormatSNorm8Vec4:
214 writePixels(srcPixels,
215 srcDims,
216 srcChannels,
217 dstPixels,
218 GfVec2i(_width, _height),
219 1 + (_format - HdFormatSNorm8),
220 SInt8Conversion());
221 break;
222
223 case HdFormatFloat16:
224 case HdFormatFloat16Vec2:
225 case HdFormatFloat16Vec3:
226 case HdFormatFloat16Vec4:
227 writePixels(srcPixels,
228 srcDims,
229 srcChannels,
230 reinterpret_cast<half *>(dstPixels),
231 GfVec2i(_width, _height),
232 1 + (_format - HdFormatFloat16),
233 HalfConversion());
234 break;
235
236 case HdFormatFloat32:
237 case HdFormatFloat32Vec2:
238 case HdFormatFloat32Vec3:
239 case HdFormatFloat32Vec4:
240 writePixels(srcPixels,
241 srcDims,
242 srcChannels,

Callers 1

update_render_tileMethod · 0.80

Calls 6

writePixelsFunction · 0.85
UInt8ConversionClass · 0.85
SInt8ConversionClass · 0.85
HalfConversionClass · 0.85
IdConversionClass · 0.85
dataMethod · 0.45

Tested by

no test coverage detected