1d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu/*
2d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Mesa 3-D graphics library
3d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Version:  7.9
4d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *
5d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Copyright (C) 2010 LunarG Inc.
6d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *
7d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Permission is hereby granted, free of charge, to any person obtaining a
8d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * copy of this software and associated documentation files (the "Software"),
9d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * to deal in the Software without restriction, including without limitation
10d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * and/or sell copies of the Software, and to permit persons to whom the
12d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Software is furnished to do so, subject to the following conditions:
13d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *
14d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * The above copyright notice and this permission notice shall be included
15d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * in all copies or substantial portions of the Software.
16d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *
17d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * DEALINGS IN THE SOFTWARE.
24d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *
25d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu * Authors:
26d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu *    Chia-I Wu <olv@lunarg.com>
27d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu */
28d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
29d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#ifndef _EGL_G3D_LOADER_H_
30d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#define _EGL_G3D_LOADER_H_
31d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
32d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#include "pipe/p_compiler.h"
33d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#include "state_tracker/st_api.h"
34d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#include "egltypedefs.h"
35d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
36d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wustruct pipe_screen;
37d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wustruct sw_winsys;
38d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
39d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wustruct egl_g3d_loader {
40948e3fa27ca9112b903a180d1a18c61cfb2928dcChia-I Wu   uint profile_masks[ST_API_COUNT];
41d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu   struct st_api *(*get_st_api)(enum st_api_type api);
42d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
43d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu   struct pipe_screen *(*create_drm_screen)(const char *name, int fd);
44d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu   struct pipe_screen *(*create_sw_screen)(struct sw_winsys *ws);
45d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu};
46d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
47d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu_EGLDriver *
48d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wuegl_g3d_create_driver(const struct egl_g3d_loader *loader);
49d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
50d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wuvoid
51d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wuegl_g3d_destroy_driver(_EGLDriver *drv);
52d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu
53d5ab243d5a5bacbd2ba615d40f13c8ab37364745Chia-I Wu#endif /* _EGL_G3D_LOADER_H_ */
54