Esempio n. 1
0
        private void CheckFeatures()
        {
            GLHelper.ParseGLVersion(GL.GetString(StringName.Version), out GLMajorVersion, out GLMinorVersion, out ESProfile);
            var glExtensions = new HashSet <string>(GL.GetString(StringName.Extensions).Split(' '));

            SupportsTextureRG             = !ESProfile || GLMajorVersion >= 3 || glExtensions.Contains("GL_EXT_texture_rg");
            SupportsPackedDepth24Stencil8 = !ESProfile || GLMajorVersion >= 3 || glExtensions.Contains("GL_OES_packed_depth_stencil");
            SupportsDepth24 = !ESProfile || GLMajorVersion >= 3 || glExtensions.Contains("GL_OES_depth24");
            var supportsS3tc = glExtensions.Contains("GL_EXT_texture_compression_s3tc");

            SupportsDxt1   = supportsS3tc || glExtensions.Contains("GL_EXT_texture_compression_dxt1");
            SupportsDxt3   = supportsS3tc || glExtensions.Contains("GL_ANGLE_texture_compression_dxt3");
            SupportsDxt5   = supportsS3tc || glExtensions.Contains("GL_ANGLE_texture_compression_dxt5");
            SupportsPvrtc1 = glExtensions.Contains("GL_IMG_texture_compression_pvrtc");
            SupportsPvrtc2 = glExtensions.Contains("GL_IMG_texture_compression_pvrtc2");
            SupportsEtc1   = glExtensions.Contains("GL_OES_compressed_ETC1_RGB8_texture");
            SupportsEtc2   = (ESProfile && GLMajorVersion >= 3) || glExtensions.Contains("GL_ARB_ES3_compatibility");
            SupportsInternalFormatBgra8 = ESProfile && glExtensions.Contains("GL_EXT_texture_format_BGRA8888");
            SupportsExternalFormatBgra8 = SupportsInternalFormatBgra8 || !ESProfile || glExtensions.Contains("GL_APPLE_texture_format_BGRA8888");
            GL.GetInteger(GetPName.MaxCombinedTextureImageUnits, out var maxTextureSlots);
            GL.GetInteger(GetPName.MaxVertexAttribs, out var maxVertexAttributes);
            MaxTextureSlots      = Math.Min(maxTextureSlots, 32);
            MaxVertexAttributes  = Math.Min(maxVertexAttributes, 64);
            MaxVertexBufferSlots = MaxVertexAttributes;
        }