# EffectContext

Added in[API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Methods](https://developer.android.com/reference/android/media/effect/EffectContext#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/media/effect/EffectContext#inhmethods)  

# EffectContext

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/media/effect/EffectContext "View this page in Kotlin")\|Java

`
public


class
EffectContext
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


`

|---|------------------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.effect.EffectContext |

<br />

*** ** * ** ***

<br />

An EffectContext keeps all necessary state information to run Effects within a Open GL ES 2.0 context.

Every EffectContext is bound to one GL context. The application is responsible for creating this EGL context, and making it current before applying any effect. If your EGL context is destroyed, the EffectContext becomes invalid and any effects bound to this context can no longer be used. If you switch to another EGL context, you must create a new EffectContext. Each Effect is bound to a single EffectContext, and can only be executed in that context.

<br />

## Summary

|                                                                                                                                          ### Public methods                                                                                                                                           ||
|-------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` static `[EffectContext](https://developer.android.com/reference/android/media/effect/EffectContext) | ` `[createWithCurrentGlContext](https://developer.android.com/reference/android/media/effect/EffectContext#createWithCurrentGlContext())`() ` Creates a context within the current GL context. |
| ` `[EffectFactory](https://developer.android.com/reference/android/media/effect/EffectFactory)        | ` `[getFactory](https://developer.android.com/reference/android/media/effect/EffectContext#getFactory())`() ` Returns the EffectFactory for this context.                                      |
| ` void`                                                                                               | ` `[release](https://developer.android.com/reference/android/media/effect/EffectContext#release())`() ` Releases the context.                                                                  |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](https://developer.android.com/reference/java/lang/Object#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.                                                          | | ` final `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long,%20int))`(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed.                   | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*.                                                                                             | ||

## Public methods

### createWithCurrentGlContext

Added in[API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static EffectContext createWithCurrentGlContext ()
```

Creates a context within the current GL context.

Binds the EffectContext to the current OpenGL context. All subsequent calls to the EffectContext must be made in the GL context that was active during creation. When you have finished using a context, you must call[release()](https://developer.android.com/reference/android/media/effect/EffectContext#release()). to dispose of all resources associated with this context.

<br />

<br />

|                                               Returns                                               ||
|---------------------------------------------------------------------------------------------|--------|
| [EffectContext](https://developer.android.com/reference/android/media/effect/EffectContext) | <br /> |

### getFactory

Added in[API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public EffectFactory getFactory ()
```

Returns the EffectFactory for this context.

The EffectFactory returned from this method allows instantiating new effects within this context.

<br />

<br />

|                                                                     Returns                                                                      ||
|---------------------------------------------------------------------------------------------|-----------------------------------------------------|
| [EffectFactory](https://developer.android.com/reference/android/media/effect/EffectFactory) | The EffectFactory instance for this context. <br /> |

### release

Added in[API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void release ()
```

Releases the context.

Releases all the resources and effects associated with the EffectContext. This renders the context and all the effects bound to this context invalid. You must no longer use the context or any of its bound effects after calling release().

Note that this method must be called with the proper EGL context made current, as the EffectContext and its effects may release internal GL resources.

<br />

<br />