Lines Matching full:output
32 struct Output {
33 - Output() : backFb(0), flipped(false) { }
34 + Output() : backFb(0), flipPending(false) { }
47 void swapBuffers(Output *output);
48 + void waitForFlip(Output *output);
51 Output *output(int idx) { return &m_outputs[idx]; }
55 output.backFb = 0;
56 - output.flipped = false;
57 + output.flipPending = false;
64 Output *output = static_cast<Output *>(user_data);
68 output->backFb = (output->backFb + 1) % BUFFER_COUNT;
71 + output->flipPending = false;
74 -void QLinuxFbDevice::swapBuffers(Output *output)
75 +void QLinuxFbDevice::waitForFlip(Output *output)
77 - Framebuffer &fb(output->fb[output->backFb]);
78 - if (drmModePageFlip(fd(), output->kmsOutput.crtc_id, fb.fb, DRM_MODE_PAGE_FLIP_EVENT, output) …
83 - const int fbIdx = output->backFb;
84 - while (output->backFb == fbIdx) {
85 + while (output->flipPending) {
89 @@ -379,6 +385,27 @@ void QLinuxFbDevice::swapBuffers(Output *output)
93 +void QLinuxFbDevice::swapBuffers(Output *output)
97 + waitForFlip(output);
100 + Framebuffer &fb(output->fb[output->backFb]);
101 + if (drmModePageFlip(fd(), output->kmsOutput.crtc_id, fb.fb, DRM_MODE_PAGE_FLIP_EVENT, output) …
106 + output->flipPending = true;
110 + output->backFb = (output->backFb + 1) % BUFFER_COUNT;
119 output->dirty[i] += dirty;
123 + m_device->waitForFlip(output);
126 if (output->fb[output->backFb].wrapper.isNull())