-#ifdef USE_GLES2
-
-void GLES_Init(void)
-{
- gl_renderer = (const char *)qglGetString(GL_RENDERER);
- gl_vendor = (const char *)qglGetString(GL_VENDOR);
- gl_version = (const char *)qglGetString(GL_VERSION);
- gl_extensions = (const char *)qglGetString(GL_EXTENSIONS);
-
- if (!gl_extensions)
- gl_extensions = "";
- if (!gl_platformextensions)
- gl_platformextensions = "";
-
- Con_Printf("GL_VENDOR: %s\n", gl_vendor);
- Con_Printf("GL_RENDERER: %s\n", gl_renderer);
- Con_Printf("GL_VERSION: %s\n", gl_version);
- Con_DPrintf("GL_EXTENSIONS: %s\n", gl_extensions);
- Con_DPrintf("%s_EXTENSIONS: %s\n", gl_platform, gl_platformextensions);
-
- // LordHavoc: report supported extensions
- Con_DPrintf("\nQuakeC extensions for server and client: %s\nQuakeC extensions for menu: %s\n", vm_sv_extensions, vm_m_extensions );
-
- // GLES devices in general do not like GL_BGRA, so use GL_RGBA
- vid.forcetextype = TEXTYPE_RGBA;
-
- vid.support.amd_texture_texture4 = false;
- vid.support.arb_draw_buffers = false;
- vid.support.arb_occlusion_query = false;
- vid.support.arb_query_buffer_object = false;
- vid.support.arb_texture_compression = false; // different (vendor-specific) formats than on desktop OpenGL...
- vid.support.arb_texture_gather = false;
- vid.support.ext_blend_minmax = false;
- vid.support.ext_blend_subtract = true; // GLES2 core
- vid.support.ext_blend_func_separate = true; // GLES2 core
-
- vid.support.ext_packed_depth_stencil = false;
- vid.support.ext_texture_compression_s3tc = SDL_GL_ExtensionSupported("GL_EXT_texture_compression_s3tc") != 0;
- vid.support.ext_texture_filter_anisotropic = false; // probably don't want to use it...
- vid.support.ext_texture_srgb = false;
- vid.support.arb_texture_float = SDL_GL_ExtensionSupported("GL_OES_texture_float") != 0;
- vid.support.arb_half_float_pixel = SDL_GL_ExtensionSupported("GL_OES_texture_half_float") != 0;
- vid.support.arb_half_float_vertex = SDL_GL_ExtensionSupported("GL_OES_vertex_half_float") != 0;
-
- // NOTE: On some devices, a value of 512 gives better FPS than the maximum.
- qglGetIntegerv(GL_MAX_TEXTURE_SIZE, (GLint*)&vid.maxtexturesize_2d);
-
-#ifdef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
- if (vid.support.ext_texture_filter_anisotropic)
- qglGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, (GLint*)&vid.max_anisotropy);
-#endif
- if (vid.support.arb_texture_cube_map)
- qglGetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, (GLint*)&vid.maxtexturesize_cubemap);
-#ifdef GL_MAX_3D_TEXTURE_SIZE
- if (vid.support.ext_texture_3d)
- qglGetIntegerv(GL_MAX_3D_TEXTURE_SIZE, (GLint*)&vid.maxtexturesize_3d);
-#endif
- Con_Printf("GL_MAX_CUBE_MAP_TEXTURE_SIZE = %i\n", vid.maxtexturesize_cubemap);
- Con_Printf("GL_MAX_3D_TEXTURE_SIZE = %i\n", vid.maxtexturesize_3d);
- {
-#define GL_ALPHA_BITS 0x0D55
-#define GL_RED_BITS 0x0D52
-#define GL_GREEN_BITS 0x0D53
-#define GL_BLUE_BITS 0x0D54
-#define GL_DEPTH_BITS 0x0D56
-#define GL_STENCIL_BITS 0x0D57
- int fb_r = -1, fb_g = -1, fb_b = -1, fb_a = -1, fb_d = -1, fb_s = -1;
- qglGetIntegerv(GL_RED_BITS , &fb_r);
- qglGetIntegerv(GL_GREEN_BITS , &fb_g);
- qglGetIntegerv(GL_BLUE_BITS , &fb_b);
- qglGetIntegerv(GL_ALPHA_BITS , &fb_a);
- qglGetIntegerv(GL_DEPTH_BITS , &fb_d);
- qglGetIntegerv(GL_STENCIL_BITS, &fb_s);
- Con_Printf("Framebuffer depth is R%iG%iB%iA%iD%iS%i\n", fb_r, fb_g, fb_b, fb_a, fb_d, fb_s);
- }
-
- // verify that cubemap textures are really supported
- if (vid.support.arb_texture_cube_map && vid.maxtexturesize_cubemap < 256)
- vid.support.arb_texture_cube_map = false;
-
- // verify that 3d textures are really supported
- if (vid.support.ext_texture_3d && vid.maxtexturesize_3d < 32)
- {
- vid.support.ext_texture_3d = false;
- Con_Printf("GL_OES_texture_3d reported bogus GL_MAX_3D_TEXTURE_SIZE, disabled\n");
- }
-
- Con_DPrint("Using GLES2 rendering path\n");
- vid.renderpath = RENDERPATH_GLES2;
- vid.sRGBcapable2D = false;
- vid.sRGBcapable3D = false;
-
- // VorteX: set other info (maybe place them in VID_InitMode?)
- extern cvar_t gl_info_vendor;
- extern cvar_t gl_info_renderer;
- extern cvar_t gl_info_version;
- extern cvar_t gl_info_platform;
- extern cvar_t gl_info_driver;
- Cvar_SetQuick(&gl_info_vendor, gl_vendor);
- Cvar_SetQuick(&gl_info_renderer, gl_renderer);
- Cvar_SetQuick(&gl_info_version, gl_version);
- Cvar_SetQuick(&gl_info_platform, gl_platform ? gl_platform : "");
- Cvar_SetQuick(&gl_info_driver, gl_driver);
-}
-#endif
-