Skip to content
forked from natario1/Egloo

A simple and lightweight Kotlin framework for OpenGL ES and EGL management in Android based on object-oriented components, inspired by Google's Grafika.

License

Notifications You must be signed in to change notification settings

Krrperanr/Egloo

 
 

Repository files navigation

Build Status Release Issues

Looking for a powerful camera library? Take a look at our CameraView.

Transcoding videos with Egloo? Take a look at our Transcoder.

Need support, consulting, or have any other business-related question? Feel free to get in touch.

Like the project, make profit from it, or simply want to thank back? Please consider sponsoring me!

Egloo

Egloo (formerly EglCore) is a simple and lightweight framework for OpenGL ES drawing and EGL management in Android that uses object-oriented components - hence the name Egloo. It can serve as a basis for complex drawing operations, but is mostly designed for helping in making common tasks simpler, even for people that do not have any OpenGL experience.

Approaching OpenGL from Android can be hard because of the deep differences in the OpenGL API design with respect to a typical object-oriented context. Egloo tries to take some of these difficulties away by creating a thin, flexible layer of abstraction around EGL and GLES calls.

You can take a look at the demo app or see Egloo in action in more popular projects:

implementation 'com.otaliastudios.opengl:egloo:0.4.0'

Features

  • EGL setup and management [docs]
  • GLSurfaceView utilities [docs]
  • Drawables abstraction [docs]
  • Programs abstraction [docs]
  • Scenes to hold view and projection matrix [docs]

Support

If you like the project, make profit from it, or simply want to thank back, please consider sponsoring me through the GitHub Sponsors program! You can have your company logo here, get private support hours or simply help me push this forward.

Feel free to contact me for support, consulting or any other business-related question.

Setup

Please read the official website for setup instructions and documentation. You might also be interested in our changelog. Using Egloo is very simple. The function below will create a context, draw a red triangle and release:

// Configure an EGL context and window
val core = EglCore()
val window = EglWindowSurface(core, outputSurface)
window.makeCurrent()

// Draw
val drawable = GlTriangle() // GlDrawable: what to draw
val program = GlFlatProgram() // GlProgram: how to draw
program.setColor(Color.RED)
program.draw(drawable)

// Publish what we have drawn
// The outputSurface will receive our frame
window.swapBuffers()

// Release
program.release()
window.release()
core.release()

About

A simple and lightweight Kotlin framework for OpenGL ES and EGL management in Android based on object-oriented components, inspired by Google's Grafika.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 100.0%