Loading [MathJax]/extensions/tex2jax.js
VTK  9.4.20250217
vtkOpenGLMovieSphere.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
23#ifndef vtkOpenGLMovieSphere_h
24#define vtkOpenGLMovieSphere_h
25
26#include "vtkNew.h" // for ivars
27#include "vtkOpenGLSkybox.h"
28#include "vtkRenderingFFMPEGOpenGL2Module.h" // For export macro
29#include "vtkSmartPointer.h" // for ivars
30#include <atomic> // for ivars
31#include <mutex> // for ivars
32
33VTK_ABI_NAMESPACE_BEGIN
36class vtkMutexLock;
37class vtkOpenGLActor;
40
41class VTKRENDERINGFFMPEGOPENGL2_EXPORT vtkOpenGLMovieSphere : public vtkOpenGLSkybox
42{
43public:
46 void PrintSelf(ostream& os, vtkIndent indent) override;
47
51 void Render(vtkRenderer* ren, vtkMapper* mapper) override;
52
55
56protected:
59
60 void UpdateUniforms(vtkObject*, unsigned long, void*);
61
68
70
72 unsigned char* TextureData[6];
73 int ReadIndex; // access only within mutex
75
76 std::atomic<int> NewData;
77 std::atomic<int> HaveData;
78
79 int Height;
80 int Width;
84
85private:
87 void operator=(const vtkOpenGLMovieSphere&) = delete;
88};
89
90VTK_ABI_NAMESPACE_END
91#endif
Reader for ffmpeg supported formats.
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:98
Allocate and hold a VTK object.
Definition vtkNew.h:167
abstract base class for most VTK objects
Definition vtkObject.h:162
OpenGL actor.
OpenGL MovieSphere, an optimized VR sphere for movies.
std::atomic< int > NewData
vtkFFMPEGVideoSource * GetVideoSource()
void SetVideoSource(vtkFFMPEGVideoSource *val)
void Render(vtkRenderer *ren, vtkMapper *mapper) override
Actual MovieSphere render method.
~vtkOpenGLMovieSphere() override
void VideoCallback(vtkFFMPEGVideoSourceVideoCallbackData const &cbd)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkOpenGLMovieSphere * New()
std::atomic< int > HaveData
void UpdateUniforms(vtkObject *, unsigned long, void *)
vtkSmartPointer< vtkFFMPEGVideoSource > VideoSource
PolyDataMapper using OpenGL to render.
OpenGL Skybox.
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
abstracts an OpenGL texture object.