TYPE3
[iec.git] / src / type3_AndroidCloud / anbox-master / external / android-emugl / README
diff --git a/src/type3_AndroidCloud/anbox-master/external/android-emugl/README b/src/type3_AndroidCloud/anbox-master/external/android-emugl/README
new file mode 100644 (file)
index 0000000..8db2d9d
--- /dev/null
@@ -0,0 +1,96 @@
+This directory contains the host-side modules related to hardware OpenGL ES
+emulation. The guest-side modules are in
+$ANDROID_BUILD_TOP/device/generic/goldfish/opengl
+
+I. Overview of components:
+==========================
+
+The 'emugen' tool is used to generate several source files related to the
+EGL/GLES command stream used between the guest and the host during emulation.
+
+  host/tools/emugen   -> emugen program
+
+Note that emugen is capable of generating, from a single set of specification
+files, three types of auto-generated sources:
+
+  - sources to encode commands into a byte stream.
+  - sources to decode the byte stream into commands.
+  - sources to wrap normal procedural EGL/GLES calls into context-aware ones.
+
+Modules under the system/ directory corresponds to code that runs on the
+guest, and implement the marshalling of EGL/GLES commands into a stream of
+bytes sent to the host through a fast pipe mechanism.
+
+   system/GLESv1_enc        -> encoder for GLES 1.1 commands
+   system/GLESv2_enc        -> encoder for GLES 2.0 commands
+   system/renderControl_enc -> encoder for rendering control commands
+   system/egl               -> emulator-specific guest EGL library
+   system/GLESv1            -> emulator-specific guest GLES 1.1 library
+   system/gralloc           -> emulator-specific gralloc module
+   system/OpenglSystemCommon -> library of common routines
+
+Modules under the host/ directory corresponds to code that runs on the
+host, and implement the decoding of the command stream, translation of
+EGL/GLES commands into desktop GL 2.0 ones, and rendering to an off-screen
+buffer.
+
+  host/libs/GLESv1_dec        -> decoder for GLES 1.1 commands
+  host/libs/GLESv2_dec        -> decoder for GLES 2.0 commands
+  host/libs/renderControl_dec -> decoder for rendering control commands
+
+  host/libs/Translator/EGL    -> translator for EGL commands
+  host/libs/Translator/GLES_CM -> translator for GLES 1.1 commands
+  host/libs/Translator/GLES_V2 -> translator for GLES 2.0 commands
+  host/libs/Translator/GLcommon -> library of common translation routines
+
+  host/libs/libOpenglRender -> rendering library (uses all host libs above)
+                               can be used by the 'renderer' program below,
+                               or directly linked into the emulator UI program.
+
+  host/renderer/ -> stand-alone renderer program executable.
+                    this can run in head-less mode and receive requests from
+                    several emulators at the same time. It is the receiving
+                    end of all command streams.
+
+Modules under the test/ directory correspond to test programs that are useful
+to debug the various modules described above:
+
+  tests/EGL_host_wrapper  -> a small library used to dynamically load the
+                             desktop libEGL.so or a replacement named by the
+                             ANDROID_EGL_LIB environment variable. This lib
+                             provides all EGL entry points.
+
+  tests/emulator_test_renderer -> a small program to run the rendering library
+                                  in a single SDL window on the host desktop.
+
+  tests/gles_android_wrapper -> guest EGL / GLES libraries that are run on
+                                the device to run some tests. Replace the
+                                system/egl and system/GLESv1 modules for now.
+
+  tests/translator_tests/GLES_CM -> desktop GLESv1 translation unit test
+  tests/translator_tests/GLES_V2 -> desktop GLESv2 translation unit test
+  tests/translator_tests/MacCommon -> used by translation tests on Mac only.
+
+  tests/ut_rendercontrol_enc -> guest library used by tests/ut_renderer
+  tests/ut_rendercontrol_dec -> host library used by tests/ut_renderer
+  tests/ut_renderer          -> unit-test for render control and rendering library.
+
+                                
+II. Build system considerations:
+--------------------------------
+
+The dependencies on the more than 20 components described in the previous
+section are pretty sophisticated, involving lots of auto-generated code and
+non-trivial placement for guest/device libraries.
+
+To simplify the development and maintenance of these modules, a set of
+helper GNU Make function is defined in common.mk, and included from the
+Android.mk in this directory.
+
+These functions all begin with the "emugl-" prefix, and can be used to
+declare modules, what information they export to other modules, or import
+from them, and also what kind of auto-generated sources they depend on.
+
+Look at the comments inside common.mk and the Android.mk of the modules
+to better understand what's happening.
+