MCPcopy Create free account
hub / github.com/Kitware/VTK / vtkOpenGLImageMapperRenderChar

Function vtkOpenGLImageMapperRenderChar

Rendering/OpenGL2/vtkOpenGLImageMapper.cxx:382–507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

380
381template <class T>
382void vtkOpenGLImageMapperRenderChar(
383 vtkOpenGLImageMapper* self, vtkImageData* data, T* dataPtr, vtkViewport* viewport)
384{
385 vtkOpenGLClearErrorMacro();
386
387 int inMin0 = self->DisplayExtent[0];
388 int inMax0 = self->DisplayExtent[1];
389 int inMin1 = self->DisplayExtent[2];
390 int inMax1 = self->DisplayExtent[3];
391
392 int width = inMax0 - inMin0 + 1;
393 int height = inMax1 - inMin1 + 1;
394
395 vtkIdType tempIncs[3];
396 data->GetIncrements(tempIncs);
397 vtkIdType inInc1 = tempIncs[1];
398
399 int bpp = data->GetPointData()->GetScalars()->GetNumberOfComponents();
400
401 double range[2];
402 data->GetPointData()->GetScalars()->GetDataTypeRange(range);
403
404 auto ostate = static_cast<vtkOpenGLRenderWindow*>(viewport->GetVTKWindow())->GetState();
405 ostate->vtkglPixelStorei(GL_UNPACK_ALIGNMENT, 1);
406
407 //
408 if (bpp == 3)
409 { // feed through RGB bytes without reformatting
410 if (inInc1 != width * bpp)
411 {
412 ostate->vtkglPixelStorei(GL_UNPACK_ROW_LENGTH, inInc1 / bpp);
413 }
414 self->DrawPixels(viewport, width, height, 3, static_cast<void*>(dataPtr));
415 }
416 else if (bpp == 4)
417 { // feed through RGBA bytes without reformatting
418 if (inInc1 != width * bpp)
419 {
420 ostate->vtkglPixelStorei(GL_UNPACK_ROW_LENGTH, inInc1 / bpp);
421 }
422 self->DrawPixels(viewport, width, height, 4, static_cast<void*>(dataPtr));
423 }
424 else
425 { // feed through other bytes without reformatting
426 T* inPtr = dataPtr;
427 T* inPtr1 = inPtr;
428 unsigned char tmp;
429
430 int i;
431 int j = height;
432
433 unsigned char* newPtr;
434 int nC = 4;
435 if (bpp == 1 || bpp == 3)
436 {
437 nC = 3;
438 }
439 if (nC == 3)

Callers 1

Calls 10

vtkPadToFourFunction · 0.85
GetIncrementsMethod · 0.80
GetDataTypeRangeMethod · 0.80
GetVTKWindowMethod · 0.80
vtkglPixelStoreiMethod · 0.80
GetNumberOfComponentsMethod · 0.45
GetScalarsMethod · 0.45
GetPointDataMethod · 0.45
GetStateMethod · 0.45
DrawPixelsMethod · 0.45

Tested by

no test coverage detected