13ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick/*
23ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * Copyright © 2011 Intel Corporation
33ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick *
43ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * Permission is hereby granted, free of charge, to any person obtaining a
53ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * copy of this software and associated documentation files (the "Software"),
63ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * to deal in the Software without restriction, including without limitation
73ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * the rights to use, copy, modify, merge, publish, distribute, sublicense,
83ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * and/or sell copies of the Software, and to permit persons to whom the
93ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * Software is furnished to do so, subject to the following conditions:
103ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick *
113ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * The above copyright notice and this permission notice (including the next
123ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * paragraph) shall be included in all copies or substantial portions of the
133ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * Software.
143ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick *
153ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
163ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
173ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
183ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
193ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
203ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
213ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick * DEALINGS IN THE SOFTWARE.
223ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick */
233ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick#include "fake_glx_screen.h"
243ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
253ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickstruct glx_screen_vtable fake_glx_screen::vt = {
263ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   indirect_create_context,
273ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   fake_glx_context::create_attribs
283ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick};
293ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
303ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickstruct glx_screen_vtable fake_glx_screen_direct::vt = {
313ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   fake_glx_context_direct::create,
323ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   fake_glx_context_direct::create_attribs
333ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick};
343ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
353ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickconst struct glx_context_vtable fake_glx_context::vt = {
363ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   fake_glx_context::destroy,
373ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
383ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
393ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
403ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
413ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
423ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
433ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
443ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   NULL,
453ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick};
463ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
473ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickint fake_glx_context::contexts_allocated = 0;
483ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
493ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickextern "C" struct glx_context *
503ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanickindirect_create_context(struct glx_screen *psc, struct glx_config *mode,
513ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick			struct glx_context *shareList, int renderType)
523ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick{
533ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   (void) shareList;
543ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   (void) renderType;
553ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick
563ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick   return new fake_glx_context(psc, mode);
573ef3ba4d2eee36f64062a21ce030c3f4d8c4cac4Ian Romanick}
58