Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/**************************************************************************
2
 *
3
 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
4
 * All Rights Reserved.
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining a
7
 * copy of this software and associated documentation files (the
8
 * "Software"), to deal in the Software without restriction, including
9
 * without limitation the rights to use, copy, modify, merge, publish,
10
 * distribute, sub license, and/or sell copies of the Software, and to
11
 * permit persons to whom the Software is furnished to do so, subject to
12
 * the following conditions:
13
 *
14
 * The above copyright notice and this permission notice (including the
15
 * next paragraph) shall be included in all copies or substantial portions
16
 * of the Software.
17
 *
18
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21
 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25
 *
26
 **************************************************************************/
27
 
28
#include "main/version.h"
29
 
30
#include "intel_chipset.h"
31
#include "intel_context.h"
32
#include "intel_extensions.h"
33
#include "intel_reg.h"
34
#include "utils.h"
35
 
36
/**
37
 * Initializes potential list of extensions if ctx == NULL, or actually enables
38
 * extensions for a context.
39
 */
40
void
41
intelInitExtensions(struct gl_context *ctx)
42
{
43
   struct intel_context *intel = intel_context(ctx);
44
 
45
   assert(intel->gen == 2 || intel->gen == 3);
46
 
47
   ctx->Extensions.ARB_draw_elements_base_vertex = true;
48
   ctx->Extensions.ARB_explicit_attrib_location = true;
49
   ctx->Extensions.ARB_framebuffer_object = true;
50
   ctx->Extensions.ARB_half_float_pixel = true;
51
   ctx->Extensions.ARB_internalformat_query = true;
52
   ctx->Extensions.ARB_map_buffer_range = true;
53
   ctx->Extensions.ARB_point_sprite = true;
54
   ctx->Extensions.ARB_sync = true;
55
   ctx->Extensions.ARB_texture_border_clamp = true;
56
   ctx->Extensions.ARB_texture_cube_map = true;
57
   ctx->Extensions.ARB_texture_env_combine = true;
58
   ctx->Extensions.ARB_texture_env_crossbar = true;
59
   ctx->Extensions.ARB_texture_env_dot3 = true;
60
   ctx->Extensions.ARB_vertex_program = true;
61
   ctx->Extensions.ARB_vertex_shader = true;
62
   ctx->Extensions.EXT_blend_color = true;
63
   ctx->Extensions.EXT_blend_equation_separate = true;
64
   ctx->Extensions.EXT_blend_func_separate = true;
65
   ctx->Extensions.EXT_blend_minmax = true;
66
   ctx->Extensions.EXT_framebuffer_blit = true;
67
   ctx->Extensions.EXT_gpu_program_parameters = true;
68
   ctx->Extensions.EXT_packed_depth_stencil = true;
69
   ctx->Extensions.EXT_pixel_buffer_object = true;
70
   ctx->Extensions.EXT_point_parameters = true;
71
   ctx->Extensions.EXT_provoking_vertex = true;
72
   ctx->Extensions.EXT_separate_shader_objects = true;
73
   ctx->Extensions.EXT_texture_env_dot3 = true;
74
   ctx->Extensions.EXT_texture_filter_anisotropic = true;
75
   ctx->Extensions.APPLE_object_purgeable = true;
76
   ctx->Extensions.MESA_pack_invert = true;
77
   ctx->Extensions.MESA_ycbcr_texture = true;
78
   ctx->Extensions.NV_texture_rectangle = true;
79
   ctx->Extensions.TDFX_texture_compression_FXT1 = true;
80
   ctx->Extensions.OES_EGL_image = true;
81
   ctx->Extensions.OES_draw_texture = true;
82
 
83
   ctx->Const.GLSLVersion = 120;
84
   _mesa_override_glsl_version(ctx);
85
 
86
   if (intel->gen >= 3) {
87
      ctx->Extensions.ARB_ES2_compatibility = true;
88
      ctx->Extensions.ARB_depth_texture = true;
89
      ctx->Extensions.ARB_fragment_program = true;
90
      ctx->Extensions.ARB_shadow = true;
91
      ctx->Extensions.ARB_texture_non_power_of_two = true;
92
      ctx->Extensions.EXT_texture_sRGB = true;
93
      ctx->Extensions.EXT_texture_sRGB_decode = true;
94
      ctx->Extensions.EXT_stencil_two_side = true;
95
      ctx->Extensions.ATI_separate_stencil = true;
96
      ctx->Extensions.ATI_texture_env_combine3 = true;
97
      ctx->Extensions.NV_texture_env_combine4 = true;
98
      ctx->Extensions.ARB_fragment_shader = true;
99
      ctx->Extensions.ARB_occlusion_query = true;
100
   }
101
 
102
   if (intel->ctx.Mesa_DXTn
103
       || driQueryOptionb(&intel->optionCache, "force_s3tc_enable"))
104
      ctx->Extensions.EXT_texture_compression_s3tc = true;
105
 
106
   ctx->Extensions.ANGLE_texture_compression_dxt = true;
107
}