72make_output(
const string &name,
90 DCAST_INTO_R(posixgsg, gsg,
nullptr);
108 if (gsg !=
nullptr && glxgsg ==
nullptr) {
112 if (((flags&BF_require_parasite)!=0)||
113 ((flags&BF_refuse_window)!=0)||
114 ((flags&BF_resizeable)!=0)||
115 ((flags&BF_size_track_host)!=0)||
116 ((flags&BF_rtt_cumulative)!=0)||
117 ((flags&BF_can_bind_color)!=0)||
118 ((flags&BF_can_bind_every)!=0)||
119 ((flags&BF_can_bind_layered)!=0)) {
129 if (!gl_support_fbo || host ==
nullptr ||
130 (flags & (BF_require_parasite | BF_require_window)) != 0) {
135 if ((flags & BF_fb_props_optional) == 0) {
136 if (fb_prop.get_indexed_color() ||
137 fb_prop.get_back_buffers() > 0 ||
138 fb_prop.get_accum_bits() > 0) {
142 if (posixgsg !=
nullptr && posixgsg->is_valid() && !posixgsg->needs_reset()) {
143 if (!posixgsg->_supports_framebuffer_object ||
144 posixgsg->_glDrawBuffers ==
nullptr) {
152 return new GLGraphicsBuffer(engine,
this, name, fb_prop, win_prop,
157 if (glxgsg ==
nullptr || glxgsg->_supports_fbconfig) {
159 if (!glx_support_pbuffer) {
163 if (((flags&BF_require_parasite)!=0)||
164 ((flags&BF_require_window)!=0)||
165 ((flags&BF_resizeable)!=0)||
166 ((flags&BF_size_track_host)!=0)||
167 ((flags&BF_can_bind_layered)!=0)) {
172 if (((flags&BF_rtt_cumulative)!=0)||
173 ((flags&BF_can_bind_every)!=0)) {
187 if (!glx_support_pixmap) {
191 if (((flags&BF_require_parasite)!=0)||
192 ((flags&BF_require_window)!=0)||
193 ((flags&BF_resizeable)!=0)||
194 ((flags&BF_size_track_host)!=0)||
195 ((flags&BF_can_bind_layered)!=0)) {
199 if (((flags&BF_rtt_cumulative)!=0)||
200 ((flags&BF_can_bind_every)!=0)) {