MCPcopy Create free account
hub / github.com/boostorg/compute / Render

Method Render

example/opengl_sphere.cpp:125–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123 }
124
125 void Render(vtkRenderer *renderer, vtkActor *actor)
126 {
127 if(!m_initialized){
128 Initialize(renderer, actor);
129 m_initialized = true;
130 }
131
132 if(!m_tesselated){
133 m_vertex_count = m_phi_slices * m_theta_slices;
134
135 // tesselate sphere
136 m_vertex_buffer = tesselate_sphere(
137 m_radius, m_phi_slices, m_theta_slices, m_command_queue
138 );
139
140 // ensure tesselation is finished (seems to be required on AMD)
141 m_command_queue.finish();
142
143 // set tesselated flag to true
144 m_tesselated = true;
145 }
146
147 // draw sphere
148 glEnableClientState(GL_VERTEX_ARRAY);
149 vtkgl::BindBufferARB(vtkgl::ARRAY_BUFFER, m_vertex_buffer.get_opengl_object());
150 glVertexPointer(4, GL_FLOAT, sizeof(float)*4, 0);
151 glDrawArrays(GL_POINTS, 0, m_vertex_count);
152 }
153
154 void Initialize(vtkRenderer *renderer, vtkActor *actor)
155 {

Callers 1

mainFunction · 0.80

Calls 3

tesselate_sphereFunction · 0.85
finishMethod · 0.45
get_opengl_objectMethod · 0.45

Tested by

no test coverage detected