Git Product home page Git Product logo

egloo's Introduction

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()

egloo's People

Contributors

dependabot[bot] avatar natario1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.