<div dir="ltr"><div>I've been trying to compile the code from <a href="https://xcb.freedesktop.org/opengl/">https://xcb.freedesktop.org/opengl/</a></div><div>tl;dr: The code used Xlib to interact with glx, but uses xcb to handle X</div><div>events.</div><div><br></div><div>It seems to not run because of something happening in xcb_create_colormap,</div><div><br></div><div>I changed the code to use create_colormap_checked, and printed out the</div><div>error structure, this was the response, if it's useful:</div><div>=============ERROR=============</div><div>Could not create the colormap</div><div>        error->response_type: 0</div><div>        error->error_code: 8</div><div>        error->sequence: 31</div><div>        error->resource_id: 0</div><div>        error->minor_code: 0</div><div>        error->major_code: 78</div><div>        error->full_sequence: 31</div><div>===============================</div><div><br></div><div>Curious if using xlib was messing something up, I made a version using only</div><div>xcb, which works, meaning it creates a window:</div><div><br></div><div>xcb_window_t window = xcb_generate_id(connection);</div><div>window = xcb_generate_id(connection);</div><div>xcb_colormap_t colormap = xcb_generate_id(connection);</div><div><br></div><div>//Try to create a colormap</div><div>xcb_void_cookie_t cookie_colormap =</div><div>xcb_create_colormap_checked(connection,</div><div>                            XCB_COLORMAP_ALLOC_NONE,</div><div>                            colormap,</div><div>                            screen->root, screen->root_visual);</div><div><br></div><div>xcb_generic_error_t *error = xcb_request_check(connection,</div><div>                             cookie_colormap);</div><div>if (error)</div><div>{</div><div>    fprintf(stderr, "Could not create colormap!\n");</div><div>    xcb_disconnect(connection);</div><div>    return 1;</div><div>}</div><div><br></div><div>uint32_t mask;</div><div>uint32_t values[3];</div><div>mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK | XCB_CW_COLORMAP;</div><div>values[0] = screen->white_pixel;</div><div>values[1] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_KEY_PRESS;</div><div>values[2] = colormap;</div><div><br></div><div>xcb_create_window(connection,</div><div>                  XCB_COPY_FROM_PARENT,</div><div>                  window,</div><div>                  screen->root,</div><div>                  0, 0,</div><div>                  150, 150,</div><div>                  10,</div><div>                  XCB_WINDOW_CLASS_INPUT_OUTPUT,</div><div>                  screen->root_visual,</div><div>                  mask, values);</div><div><br></div><div>xcb_map_window(connection, window);</div><div>xcb_flush(connection);</div><div><br></div><div>I'm still confused why the opengl example doesn't work. I'd like to use xcb,</div><div>since I think it's a much nicer api than Xlib.</div><div><br></div><div>Could anyone kindly help me understand how to use this function?</div></div>