MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / run

Method run

common/frameut.cpp:266–294  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

264 private:
265
266 void run(void)
267 {
268 int index = 0; Frame *frame = NULL;
269 try
270 {
271 while(!deadYet)
272 {
273 CompressedFrame &cframe = cframes[index];
274 index = (index + 1) % NFRAMES;
275 cframe.waitUntilReady(); if(deadYet) break;
276 frame = blitter->get(); if(deadYet) break;
277 resizeWindow(dpy, win, cframe.hdr.width, cframe.hdr.height, myID);
278 if(frame->isGL) *((GLFrame *)frame) = cframe;
279 #ifdef USEXV
280 else if(frame->isXV) *((XVFrame *)frame) = cframe;
281 #endif
282 else *((FBXFrame *)frame) = cframe;
283 blitter->put(frame);
284 cframe.signalComplete();
285 }
286 }
287 catch(std::exception &e)
288 {
289 if(thread) thread->setError(e);
290 for(int i = 0; i < NFRAMES; i++) cframes[i].signalComplete();
291 throw;
292 }
293 fprintf(stderr, "Decompressor exiting ...\n");
294 }
295
296 Blitter *blitter;
297 int findex; bool deadYet;

Callers

nothing calls this directly

Calls 6

resizeWindowFunction · 0.85
signalCompleteMethod · 0.80
setErrorMethod · 0.80
waitUntilReadyMethod · 0.45
getMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected