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