public synchronized void checkGLDriver(GL10 gl) { if (! mGLESDriverCheckComplete) { checkGLESVersion(); String renderer = gl.glGetString(GL10.GL_RENDERER); if (mGLESVersion < kGLES_20) { mMultipleGLESContextsAllowed = ! renderer.startsWith(kMSM7K_RENDERER_PREFIX); notifyAll(); } mLimitedGLESContexts = !mMultipleGLESContextsAllowed; if (LOG_SURFACE) { Log.w(TAG, "checkGLDriver renderer = \"" + renderer + "\" multipleContextsAllowed = " + mMultipleGLESContextsAllowed + " mLimitedGLESContexts = " + mLimitedGLESContexts); } mGLESDriverCheckComplete = true; } }
public synchronized void checkGLDriver(GL10 gl) { if (! mGLESDriverCheckComplete) { checkGLESVersion(); String renderer = gl.glGetString(GL10.GL_RENDERER); if (mGLESVersion < kGLES_20) { mMultipleGLESContextsAllowed = ! renderer.startsWith(kMSM7K_RENDERER_PREFIX); notifyAll(); } mLimitedGLESContexts = !mMultipleGLESContextsAllowed; if (LOG_SURFACE) { Log.w(TAG, "checkGLDriver renderer = \"" + renderer + "\" multipleContextsAllowed = " + mMultipleGLESContextsAllowed + " mLimitedGLESContexts = " + mLimitedGLESContexts); } mGLESDriverCheckComplete = true; } }
public void onSurfaceCreated(GL10 gl, EGLConfig config) { String s = gl.glGetString(GL10.GL_EXTENSIONS); if (s.contains("GL_IMG_texture_compression_pvrtc")){ //Use PVR compressed textures }else if (s.contains("GL_AMD_compressed_ATC_texture") || s.contains("GL_ATI_texture_compression_atitc")){ //Load ATI Textures }else if (s.contains("GL_OES_texture_compression_S3TC") || s.contains("GL_EXT_texture_compression_s3tc")){ //Use DTX Textures }else{ //Handle no texture compression founded. } }
/** This instantiates the GL10, GL11 and GL20 instances. Includes the check for certain devices that pretend to support GL11 but * fuck up vertex buffer objects. This includes the pixelflinger which segfaults when buffers are deleted as well as the * Motorola CLIQ and the Samsung Behold II. * * @param gl */ protected void setupGL (javax.microedition.khronos.opengles.GL10 gl) { String versionString = gl.glGetString(GL10.GL_VERSION); String vendorString = gl.glGetString(GL10.GL_VENDOR); String rendererString = gl.glGetString(GL10.GL_RENDERER); glVersion = new GLVersion(Application.ApplicationType.Android, versionString, vendorString, rendererString); if (config.useGL30 && glVersion.getMajorVersion() > 2) { if (gl30 != null) return; gl20 = gl30 = new AndroidGL30(); Gdx.gl = gl30; Gdx.gl20 = gl30; Gdx.gl30 = gl30; } else { if (gl20 != null) return; gl20 = new AndroidGL20(); Gdx.gl = gl20; Gdx.gl20 = gl20; } Gdx.app.log(LOG_TAG, "OGL renderer: " + gl.glGetString(GL10.GL_RENDERER)); Gdx.app.log(LOG_TAG, "OGL vendor: " + gl.glGetString(GL10.GL_VENDOR)); Gdx.app.log(LOG_TAG, "OGL version: " + gl.glGetString(GL10.GL_VERSION)); Gdx.app.log(LOG_TAG, "OGL extensions: " + gl.glGetString(GL10.GL_EXTENSIONS)); }
/** This instantiates the GL10, GL11 and GL20 instances. Includes the check for certain devices that pretend to support GL11 but * fuck up vertex buffer objects. This includes the pixelflinger which segfaults when buffers are deleted as well as the * Motorola CLIQ and the Samsung Behold II. * * @param gl */ protected void setupGL (javax.microedition.khronos.opengles.GL10 gl) { String versionString = gl.glGetString(GL10.GL_VERSION); String vendorString = gl.glGetString(GL10.GL_VENDOR); String rendererString = gl.glGetString(GL10.GL_RENDERER); glVersion = new GLVersion(Application.ApplicationType.Android, versionString, vendorString, rendererString); if (config.useGL30 && glVersion.getMajorVersion() > 2) { if (gl30 != null) return; gl20 = gl30 = new AndroidGL30(); Gdx.gl = gl30; Gdx.gl20 = gl30; Gdx.gl30 = gl30; } else { if (gl20 != null) return; gl20 = new AndroidGL20(); Gdx.gl = gl20; Gdx.gl20 = gl20; } Gdx.app.log(LOG_TAG, "OGL renderer: " + gl.glGetString(GL10.GL_RENDERER)); Gdx.app.log(LOG_TAG, "OGL vendor: " + gl.glGetString(GL10.GL_VENDOR)); Gdx.app.log(LOG_TAG, "OGL version: " + gl.glGetString(GL10.GL_VERSION)); Gdx.app.log(LOG_TAG, "OGL extensions: " + gl.glGetString(GL10.GL_EXTENSIONS)); }
public synchronized void checkGLDriver(GL10 gl) { if (!glesDriverCheckComplete) { checkGLESVersion(); String renderer = gl.glGetString(GL10.GL_RENDERER); if (glesVersion < kGLES_20) { multipleGLESContextsAllowed = !renderer.startsWith(kMSM7K_RENDERER_PREFIX); notifyAll(); } limitedGLESContexts = !multipleGLESContextsAllowed; if (LOG_SURFACE) { Log.w(TAG, "checkGLDriver renderer = \"" + renderer + "\" multipleContextsAllowed = " + multipleGLESContextsAllowed + " limitedGLESContexts = " + limitedGLESContexts); } glesDriverCheckComplete = true; } }
@Override public String glGetString(int name) { return mGL.glGetString(name); }
public String glGetString(int name) { String result = mgl.glGetString(name); return result; }
public String glGetString(int name) { String result = mgl.glGetString(name); return result; }
public String glGetString(int name) { String result = mgl.glGetString(name); return result; }
/** * Gets information through EGL.<br/> * <p> * Index 0: Vendor <br/> * Index 1: Version <br/> * Index 2: Renderer <br/> * Index 3: Extensions <br/> * * @return information retrieved through EGL. */ public String[] getEGLInfo() { return new String[]{ mGL.glGetString(GL10.GL_VENDOR), mGL.glGetString(GL10.GL_VERSION), mGL.glGetString(GL10.GL_RENDERER), mGL.glGetString(GL10.GL_EXTENSIONS), }; }
/** * Simplified call to {@link GL10#glGetString(int)} * <p> * Accepts the following constants: * <ul> * <li>GL_VENDOR - Company responsible for the GL implementation.</li> * <li>GL_VERSION - Version or release number.</li> * <li>GL_RENDERER - Name of the renderer</li> * <li>GL_SHADING_LANGUAGE_VERSION - Version or release number of the shading language </li> * </ul> * * @param glEnum A symbolic constant within {@link GL10}. * @return the string information represented by {@code glEnum}. */ public String glGetString(int glEnum) { return mGL.glGetString(glEnum); }
public static boolean checkIfSupportsExtension(GL10 gl, String extension) { return ((" " + gl.glGetString(GL10.GL_EXTENSIONS) + " ").indexOf(" " + extension + " ") >= 0); } }
static public boolean isNPOTSupported(GL10 gl) { String extensions = gl.glGetString(GL10.GL_EXTENSIONS); return extensions.indexOf("GL_OES_texture_npot") != -1; }
public boolean isNPOTSupported(GL10 gl) { String extensions = gl.glGetString(GL10.GL_EXTENSIONS); return extensions.indexOf("GL_OES_texture_npot") != -1; }
static public boolean isNPOTSupported(GL10 gl) { String extensions = gl.glGetString(GL10.GL_EXTENSIONS); return extensions.indexOf("GL_OES_texture_npot") != -1; }
private boolean checkIfContextSupportsExtension(GL10 gl, String extension) { String extensions = " " + gl.glGetString(GL10.GL_EXTENSIONS) + " "; return extensions.indexOf(" " + extension + " ") >= 0; }
/** * This is not the fastest way to check for an extension, but fine if * we are only checking for a few extensions each time a context is created. * @param gl * @param extension * @return true if the extension is present in the current context. */ private boolean checkIfContextSupportsExtension(GL10 gl, String extension) { String extensions = " " + gl.glGetString(GL10.GL_EXTENSIONS) + " "; // The extensions string is padded with spaces between extensions, but not // necessarily at the beginning or end. For simplicity, add spaces at the // beginning and end of the extensions string and the extension string. // This means we can avoid special-case checks for the first or last // extension, as well as avoid special-case checks when an extension name // is the same as the first part of another extension name. return extensions.indexOf(" " + extension + " ") >= 0; } }
public void determineGraphicSupport(GL10 gl){ int _graphicEngine = GRAPHICS_CANVAS; String extensions = gl.glGetString(GLES20.GL_EXTENSIONS); //String version = GLES10.glGetString(GL10.GL_VERSION); String version = GLES20.glGetString(GLES20.GL_VERSION); //String renderer = gl.glGetString(GL10.GL_RENDERER); String renderer = GLES20.glGetString(GLES20.GL_RENDERER); boolean isSoftwareRenderer = renderer.contains("PixelFlinger"); boolean supportsDrawTexture = extensions.contains("draw_texture"); int[] arGlMaxTextureSize = new int[1]; gl.glGetIntegerv( GLES20.GL_MAX_TEXTURE_SIZE, arGlMaxTextureSize, 0 ); if( !isSoftwareRenderer && supportsDrawTexture && _width >= 480 && _height >= 800 && arGlMaxTextureSize[0] >= 4096 ) _graphicEngine = GRAPHICS_OPENGL_DRAW_TEXTURE; else _graphicEngine = GRAPHICS_CANVAS; }
@Override public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) { String pf_gpu_vendor = gl10.glGetString(GL10.GL_VENDOR); String pf_gpu = ""; if (pf_gpu_vendor.equals("null")) pf_gpu_vendor = ""; String x = gl10.glGetString(GL10.GL_RENDERER); if (x.equals("null")) pf_gpu = ""; else pf_gpu = pf_gpu_vendor + " " + x; runOnUiThread(new Runnable() { @Override public void run() { glSurfaceView.setVisibility(View.GONE); } }); AppConfigService.updateGPU(pf_gpu); AppConfigService.updateGPUVendor(pf_gpu_vendor); }