Код: Выделить всё
int main()
{
vtkSmartPointer cone = vtkSmartPointer::New();
vtkSmartPointer mapper = vtkSmartPointer::New();
mapper->SetInputConnection(cone->GetOutputPort());
vtkSmartPointer actor = vtkSmartPointer::New();
actor->SetMapper(mapper);
vtkSmartPointer renderer = vtkSmartPointer::New();
renderer->AddActor(actor);
renderer->SetBackground(0.1, 0.2, 0.4);
vtkSmartPointer renderWindow = vtkSmartPointer::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetSize(800, 600);
renderWindow->Render();
return 0;
}
Код: Выделить всё
g++ test.cpp -o test -I/usr/local/include/vtk-9.5 -L/usr/local/lib -lvtkCommonCore-9.5 -lvtkCommonDataModel-9.5 -lvtkCommonExecutionModel-9.5 -lvtkFiltersSources-9.5 -lvtkRenderingCore-9.5 -lvtkRenderingOpenGL2-9.5 -lvtkRenderingFreeType-9.5 -lvtkRenderingUI-9.5 -lvtkInteractionStyle-9.5 -lvtkImagingCore-9.5 -lvtkIOImage-9.5 -lvtkjpeg-9.5 -lvtksys-9.5Для выбора параметров флага компиляции я использовал генератор графического интерфейса ниндзя, убедившись, что я разрешаю OpenGL, и в основном оставляю параметры по умолчанию, вот краткое описание того, что кажется важным из полученного результата. CMakeCache.txt:
Код: Выделить всё
BUILD_SHARED_LIBS:BOOL=ON
VTK_DEFAULT_RENDER_WINDOW_OFFSCREEN:BOOL=OFF
VTK_DEFAULT_RENDER_WINDOW_HEADLESS:BOOL=OFF
VTK_GROUP_ENABLE_Imaging:STRING=YES
VTK_GROUP_ENABLE_Qt:STRING=NO
VTK_GROUP_ENABLE_Rendering:STRING=YES
VTK_GROUP_ENABLE_STANDALONE:STRING=YES
VTK_GROUP_ENABLE_StandAlone:STRING=YES
VTK_GROUP_ENABLE_Views:STRING=YES
VTK_INSTALL_SDK:BOOL=ON
VTK_OPENGL_HAS_EGL:BOOL=OFF # didn't remember this one was off i'll retry with ON
VTK_OPENGL_USE_GLES:BOOL=OFF # i think it's for mobile dev
VTK_USE_CUDA:BOOL=OFF # I just want to use the GPU for rendering, nothing more
VTK_USE_X:BOOL=ON # i do have x11 and $DISPLAY -> :1
X11_X11_LIB:FILEPATH=/usr/lib/x86_64-linux-gnu/libX11.so # some similar entries with 'PATH NOT FOUND' but no compile error so I guess it's ok
Я делаю: sudo ninja install
Дополнительные примечания, которые могут быть полезны:
- запуск xeyes в оболочке работает.
- Я не на Wayland (пробовал) Ubuntu и рабочий стол GNOME)
- Я попробовал немного повозиться с файлами Xauthority
- После перекомпиляции в Debug gdb указывает эти адреса для средства рендеринга, renderWindow: 0x5555555a38a0, 0x5555555a9d80. Они не равны нулю, так что вроде все в порядке.
- strace, кажется, показывает, что каждая библиотека, которую он пытается использовать, найдена. Я не вижу никаких ошибок.
- typeid renderWindow дает: 15vtkRenderWindow.
Подробнее здесь: https://stackoverflow.com/questions/798 ... nt-display
Мобильная версия