CMake: add WITH_LINKER_LLD option for unix platforms
[blender-staging.git] / source / blender / gpu / GPU_extensions.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2005 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup gpu
22  */
23
24 #ifndef __GPU_EXTENSIONS_H__
25 #define __GPU_EXTENSIONS_H__
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /* GPU extensions support */
32
33 int GPU_max_texture_size(void);
34 int GPU_max_texture_layers(void);
35 int GPU_max_textures(void);
36 int GPU_max_textures_vert(void);
37 int GPU_max_textures_geom(void);
38 int GPU_max_textures_frag(void);
39 float GPU_max_texture_anisotropy(void);
40 int GPU_max_color_texture_samples(void);
41 int GPU_max_cube_map_size(void);
42 int GPU_max_ubo_binds(void);
43 int GPU_max_ubo_size(void);
44 float GPU_max_line_width(void);
45 void GPU_get_dfdy_factors(float fac[2]);
46 bool GPU_arb_base_instance_is_supported(void);
47 bool GPU_arb_texture_cube_map_array_is_supported(void);
48 bool GPU_mip_render_workaround(void);
49 bool GPU_depth_blitting_workaround(void);
50 bool GPU_unused_fb_slot_workaround(void);
51 bool GPU_context_local_shaders_workaround(void);
52 bool GPU_crappy_amd_driver(void);
53
54 bool GPU_mem_stats_supported(void);
55 void GPU_mem_stats_get(int *totalmem, int *freemem);
56
57 void GPU_code_generate_glsl_lib(void);
58
59 #ifdef __cplusplus
60 }
61 #endif
62
63 #endif /* __GPU_EXTENSIONS_H__ */