Commit Graph

965 Commits

Author SHA1 Message Date
Liran
fb06a28c30 GLESv1 extensions
This fix adds support for OpenGLES 1.1 extensions in the codec
layer. This fix also includes bug fixes in GLEncoder (client-state)
and gles android wrapper modules.

Change-Id: I512649724d43e4af9d3ce5d49ae66d9f4da0b823
2011-04-28 09:24:46 +03:00
David Turner
5ed0345c49 am f61c5ad5: am 092b588b: am 9e9b85c3: Merge "Really fix the Mac build."
* commit 'f61c5ad575bbbe40df5ed5b343e734a9094b43cf':
  Really fix the Mac build.
2011-04-16 13:36:29 -07:00
David Turner
f61c5ad575 am 092b588b: am 9e9b85c3: Merge "Really fix the Mac build."
* commit '092b588b0bcafcab6579407042a5bb0890bc890e':
  Really fix the Mac build.
2011-04-16 13:34:05 -07:00
David Turner
eff952cdbf Really fix the Mac build.
Damned!

Change-Id: Ice8295fb23beefe328207112b011489276b5b278
2011-04-16 22:21:57 +02:00
David Turner
9214f6c36a am e91699fe: am 43fa53c4: am 34f083b1: Merge "Fix mac build"
* commit 'e91699fe2106277a136ed714a2da67e6e729da77':
  Fix mac build
2011-04-16 10:53:24 -07:00
David Turner
e91699fe21 am 43fa53c4: am 34f083b1: Merge "Fix mac build"
* commit '43fa53c42871bc565b40a19a1bc7761d30881ba6':
  Fix mac build
2011-04-16 10:50:49 -07:00
David Turner
427cb6c3b0 Fix mac build
Change-Id: Ic0ada31663beadbff06ac18ca4c5960c869b0ec8
2011-04-16 19:23:56 +02:00
David Turner
88048ffb53 am 5ecdcdfb: am a25b885e: am 218ccb4d: Merge "emulator opengl: small test app for the emulator renderer API."
* commit '5ecdcdfb91513f5698c1ca9649a1d3890a2fb561':
  emulator opengl: small test app for the emulator renderer API.
2011-04-16 07:05:01 -07:00
David Turner
a71b220f28 am e99ef4fa: am 89ea131e: am 36fc1bfe: Merge "emulator opengl: the host renderer executable."
* commit 'e99ef4fa07b1e3697bd31bca2cc1e07f3e1b21bc':
  emulator opengl: the host renderer executable.
2011-04-16 07:04:59 -07:00
David Turner
3020b9643d am b07b714a: am a8c91545: am bb45561f: Merge "emulatgor opengl: First commit of the host renderer library."
* commit 'b07b714a1d5a6ff20ffce2339c96f39f8879bc87':
  emulatgor opengl: First commit of the host renderer library.
2011-04-16 07:04:57 -07:00
David Turner
f8016c97b4 am a2192b8e: am ba19e88d: am c4721695: Merge "emulator opengl: add OpenglOsUtils library, a set of OS utils."
* commit 'a2192b8e17a7b8c9eb98ac4101ca09086949cb5b':
  emulator opengl: add OpenglOsUtils library, a set of OS utils.
2011-04-16 07:04:55 -07:00
David Turner
4c752a85d8 am 6504f70b: am 0a2bacf6: am b06b3c76: Merge changes If48f5ed6,Ic63a6f73
* commit '6504f70b744d4a396fe7a016f70e331afde53348':
  emulator opengl: first commit of gralloc implementation.
  emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
2011-04-16 07:03:11 -07:00
David Turner
5ecdcdfb91 am a25b885e: am 218ccb4d: Merge "emulator opengl: small test app for the emulator renderer API."
* commit 'a25b885eedb4f038c38a564101aef2ad6f7bdc89':
  emulator opengl: small test app for the emulator renderer API.
2011-04-16 06:54:28 -07:00
David Turner
e99ef4fa07 am 89ea131e: am 36fc1bfe: Merge "emulator opengl: the host renderer executable."
* commit '89ea131e33cfc7867149b0f792c77bdbe664a953':
  emulator opengl: the host renderer executable.
2011-04-16 06:54:23 -07:00
David Turner
b07b714a1d am a8c91545: am bb45561f: Merge "emulatgor opengl: First commit of the host renderer library."
* commit 'a8c91545a59a9675a1a63d41d700b2c4abd003f1':
  emulatgor opengl: First commit of the host renderer library.
2011-04-16 06:54:18 -07:00
David Turner
a2192b8e17 am ba19e88d: am c4721695: Merge "emulator opengl: add OpenglOsUtils library, a set of OS utils."
* commit 'ba19e88d5351ccbb545eda1ecf4baa8056dd926d':
  emulator opengl: add OpenglOsUtils library, a set of OS utils.
2011-04-16 06:54:14 -07:00
David Turner
6504f70b74 am 0a2bacf6: am b06b3c76: Merge changes If48f5ed6,Ic63a6f73
* commit '0a2bacf64ce7fc2aff7e06a547f5e9f6b67eeda7':
  emulator opengl: first commit of gralloc implementation.
  emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
2011-04-16 06:52:26 -07:00
Guy Zadikario
cca6a5fc0e emulator opengl: small test app for the emulator renderer API.
This sample program simulates the use of the renderer api as it should
be used from the emulator program. It opens a SDL window, initialize the
renderer, process events on the window and terminate the renderer when the
window is closed.

Change-Id: If983b4ce6465dee71f548e8edaf2b56b6443f7b0
2011-04-16 10:45:48 +03:00
Guy Zadikario
555d9bece7 emulator opengl: the host renderer executable.
This is the host renderer executable. It is a small process which
just calls into libOpenglRender library. The process is invoked
through the initOpenGLRenderer function of libOpenglRenderer.

Change-Id: I85af075b5eb751ffb9543ecbd8e7fc155054f146
2011-04-16 10:45:48 +03:00
Guy Zadikario
1f0d3939ed emulatgor opengl: First commit of the host renderer library.
This is a library which includes all the OpenGL renderer functionality,
it is packaged in a library so that both the renderer process and the emulator
program will be able to use that functionality.

NOTES:
   1) gl_proc.h and GLDispatch.{h,cpp} in this commit will be replaced
      with the decoder auto-generated dispatch in a later commit, the
      auto-generated dispatch is currently missing some extension functions
      required for the renderer.
   2) look at host/include/libOpenglRender/render_api.h for the external
      interface defined for this library (to be used by the emulator).

The following is a description of each component:

FrameBuffer - The main object which manages the framebuffer and color buffers.
              This is a singleton which get initialized through its initialize
              static function. It initializes the OpenGL renderer and must be
              called first. This initialization function is not thread safe so
              it must be called before any thread that is calling to this
              library is created.

FBConfig - Includes a static set of configs supported by the renderer which get
           initialized during FrameBuffer initialization phase. Also,
           an instance of this class includes the a description of one frame
           buffer configuration supported by the renderer.

RenderContext - encapsulate a rendering context state.

ColorBuffer - implements a color buffer object as a texture which can be bind
              as render target or source.

WindowSurface - implements the functionality of a native window which can be
                bound to a rendering context and its target ColorBuffer can
                be specified and replaced.

ThreadInfo - holds per-thread information.

EGLDispatch - loads the EGL plugin library, all egl calls are made through
              this dispatch table which get initialized during initialization
              phase.

GLDispatch - loads the GLES plugin library, all GLES calls are made through
             this dispatch table which get initialized during initialization
             phase - This will be replaced by the auto-generated code of the
             decoder ...

RenderThread - implements a thread that reads command tokens from an IOStream
               and decode it.

RenderControl - implements the host side implementation of the renderControl
                API, when a renderControl token is decoded from the stream
                it is dispatched to this implementation.

RenderServer - implements a TCP server which listens to port number and
               launcges a RenderThread for each new connection.

Change-Id: I9f34d17bdfcb715893a13cd30086c767f499df87
2011-04-16 10:45:39 +03:00
Guy Zadikario
20368d96e0 emulator opengl: add OpenglOsUtils library, a set of OS utils.
This is just a set of OS dependant functionality needed by the
emulator OpenGL host renderer. It currently has implementation for
Linux and Windows only.

osDynLibrary - dlopen/dlsym abstraction
osProcess    - interface to launch a new process, wait and kill it.
osThread     - abstraction interface for creating a thread.

Change-Id: Ib0264592d8c87e865da87acf5c94e2b331801ca4
2011-04-16 10:42:43 +03:00
Guy Zadikario
f7cd7ec421 emulator opengl: first commit of gralloc implementation.
This is the emulator opengl implementation of gralloc.

NOTE that it is currently build only if BUILD_EMULATOR_OPENGL_DRIVER
is defined, This is because the other driver peices (EGL/GLES) are
still missing.

Change-Id: If48f5ed619df6efb00cb4e590d99ce49d87875f6
2011-04-16 10:42:34 +03:00
Guy Zadikario
64db3f9a02 emulator opengl: OpenglSystemCommon library shared between gralloc/EGL/GLES.
This is a static library of utilities shared between the emulator opengl
system components, gralloc, EGL, GLES. In includes host connection functionality
and access to OpenGL TLS info.

Change-Id: Ic63a6f7384a2035308ca6d316c747f0e6c6f2ef3
2011-04-16 10:32:39 +03:00
David 'Digit' Turner
d85613f138 am 72974d6a: am 3cdf8eb7: am 2a384265: Merge "Fix Mac build"
* commit '72974d6a95e1508609f20370b46b4d7a33bccd80':
  Fix Mac build
2011-04-15 07:52:55 -07:00
David 'Digit' Turner
72974d6a95 am 3cdf8eb7: am 2a384265: Merge "Fix Mac build"
* commit '3cdf8eb7548bf165c7e202631107d2d7fe2af943':
  Fix Mac build
2011-04-15 07:51:23 -07:00
David Turner
5ab75d64a5 am 43b5d0e2: am d6ad2a63: am 23a491dc: Merge "emulator opengl: renderControl API encoder/decoder"
* commit '43b5d0e259edaaf244dd4948a85b2f1fce3b3f83':
  emulator opengl: renderControl API encoder/decoder
2011-04-15 07:51:09 -07:00
David Turner
9d360bc000 am eebc97b9: am c1491eb3: am 0f0732fe: Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils."
* commit 'eebc97b987e77fb238d8d65aae1e55f332011537':
  emulator opengl: Added glUtilsPixelBitSize function to glUtils.
2011-04-15 07:51:07 -07:00
David Turner
9a6cf4f0da am 658185c5: am 961949e0: am 2732ff2d: Merge "Moved IOStream.h to be used in external API for libOpenGLRender."
* commit '658185c5507bab4365bc88728fba893bdee8b3a8':
  Moved IOStream.h to be used in external API for libOpenGLRender.
2011-04-15 07:51:05 -07:00
David Turner
cc9c9838da am f0970841: am a95826fb: am 39062218: Merge " This is a common library for the EGL/GLES/GLES2 translator libraries."
* commit 'f0970841bc634e689962091cf86ad5c7becb5285':
  This is a common library for the EGL/GLES/GLES2 translator libraries.
2011-04-15 07:50:55 -07:00
David Turner
43b5d0e259 am d6ad2a63: am 23a491dc: Merge "emulator opengl: renderControl API encoder/decoder"
* commit 'd6ad2a63ca51f11c97042baa43eb33904e6aefb4':
  emulator opengl: renderControl API encoder/decoder
2011-04-15 07:39:15 -07:00
David Turner
eebc97b987 am c1491eb3: am 0f0732fe: Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils."
* commit 'c1491eb3b91f1e4d84b4e603d0d22d07502158a2':
  emulator opengl: Added glUtilsPixelBitSize function to glUtils.
2011-04-15 07:39:13 -07:00
David Turner
658185c550 am 961949e0: am 2732ff2d: Merge "Moved IOStream.h to be used in external API for libOpenGLRender."
* commit '961949e054c7bb99777848dd8d10ba933bd41817':
  Moved IOStream.h to be used in external API for libOpenGLRender.
2011-04-15 07:39:11 -07:00
David Turner
f0970841bc am a95826fb: am 39062218: Merge " This is a common library for the EGL/GLES/GLES2 translator libraries."
* commit 'a95826fb63f86064e0aff39290926da047e5b873':
  This is a common library for the EGL/GLES/GLES2 translator libraries.
2011-04-15 07:39:04 -07:00
David 'Digit' Turner
f85c358b27 Fix Mac build
Change-Id: I030c9903f073aced6c2778665f7961f3e9f9804d
2011-04-15 16:30:26 +02:00
David Turner
23a491dccd Merge "emulator opengl: renderControl API encoder/decoder" 2011-04-15 06:45:25 -07:00
David Turner
0f0732febf Merge "emulator opengl: Added glUtilsPixelBitSize function to glUtils." 2011-04-15 06:43:32 -07:00
David Turner
2732ff2db2 Merge "Moved IOStream.h to be used in external API for libOpenGLRender." 2011-04-15 06:42:28 -07:00
David Turner
39062218ff Merge " This is a common library for the EGL/GLES/GLES2 translator libraries." 2011-04-15 06:39:27 -07:00
David 'Digit' Turner
de830eddbc am 62b21b41: am 832388de: am 13a0b81c: Merge "Revert 776bd3e46c2fb5c003ecec4fee99f01943876644"
* commit '62b21b41467dd8ebc4ce7518de8f4418389cf436':
  Revert 776bd3e46c
2011-04-14 07:42:08 -07:00
David 'Digit' Turner
62b21b4146 am 832388de: am 13a0b81c: Merge "Revert 776bd3e46c2fb5c003ecec4fee99f01943876644"
* commit '832388de41c6b44d43bd1f1307b3386d0fcc376e':
  Revert 776bd3e46c
2011-04-14 07:39:04 -07:00
David 'Digit' Turner
a6e54e04a3 Revert 776bd3e46c
Unfortunately, we need to keep duplicate libraries under sdk/emulator/
to avoid breaking a few internal branches.

    commit 776bd3e46c
    Author: David 'Digit' Turner <digit@android.com>
    Date:   Thu Apr 7 10:58:07 2011 +0200

    emulator: Remove the global Make variable trick for emulator-specific system modules.

    Remove a sad trick that was used to smoothly move the platform-specific emulator
    modules from sdk/emulator/ to development/tools/emulator/system without creating
    build conflicts.

    Now that the sdk/ modules have been removed, we can get rid of the guard variable.

Change-Id: Id5c44a4160191d8ac9afcbbeeef7de0b9a5b0f6f
2011-04-14 14:06:05 +02:00
Guy Zadikario
32fc922316 emulator opengl: renderControl API encoder/decoder
That adds the renderControl API encoder/decoder which is used for
guest to host control commands. See system/renderControl_enc/README
for more info about the API itself.

Change-Id: I2c72803137889d646fbb3d2a56ecdcf94b088f40
2011-04-13 13:33:26 +03:00
Guy Zadikario
fc2d0b09ec emulator opengl: Added glUtilsPixelBitSize function to glUtils.
moved pixel size calculation from GLClientState to glUtils to be used
outside the client state scope. (needed for the renderControl encoder
which will follow in next commit).

Change-Id: I5adbc40b241537054c6743e2afc52ba44454664f
2011-04-13 13:33:26 +03:00
Guy Zadikario
caafd4df2e Moved IOStream.h to be used in external API for libOpenGLRender.
This change includes four changes:
1) moved IOStream.h into host/include/libOpenGLRender, this directory
   will include the api interface into the libOpenGLRender which will be
   used later by the emulator and we need this interface to use IOStream.h
2) Updated Andorid.mk files to include the new directory location of IOStream.h
   in the LOCAL_C_INCLUDE.
3) Added new function "read" to IOStream which reads a message without a givven
   size.
4) Updated TcpStream to use "cutils/sockets.h" instead of using directly the socket api for portability reasons. (It now compiles on windows as well).

Change-Id: I30eb40c8dcd5aacf0d993aff9cdb90b283b12dde
2011-04-13 13:33:05 +03:00
Amit Feller
a7ec4c76e2 This is a common library for the EGL/GLES/GLES2 translator libraries.
It includes code that is shared with all three components:

    ThreadInfo.h - defines a structure of information stored in the TLS.
    TranslatorIfaces - defines the interface between EGL and its client APIs (GLES and GLESv2)
    objectrNameManager - manages the set of OpenGL objects in share groups name space.

Change-Id: Idb1bd1e2c3dcbb5dac7ba4ea85f78da856b897d9
2011-04-12 15:28:14 +03:00
David 'Digit' Turner
9d62f6e437 am e40fb554: am 07dfa1b1: am 0ed88818: am cecd02c1: Merge "emulator: Remove the global Make variable trick for emulator-specific system modules."
* commit 'e40fb554a9bbb938fac2277ac965b01e2ef40051':
  emulator: Remove the global Make variable trick for emulator-specific system modules.
2011-04-11 17:32:02 -07:00
David 'Digit' Turner
e40fb554a9 am 07dfa1b1: am 0ed88818: am cecd02c1: Merge "emulator: Remove the global Make variable trick for emulator-specific system modules."
* commit '07dfa1b15d8ef2bce114d094d3281421ec6034e2':
  emulator: Remove the global Make variable trick for emulator-specific system modules.
2011-04-11 17:26:31 -07:00
David 'Digit' Turner
f02db0b22d am 929e2f10: am 4fc035aa: am 9909e7f5: am b24b2470: Merge "Really fix the Mac SDK build this time. Doh."
* commit '929e2f101620087c3ffbd6c214286c0b1348154b':
  Really fix the Mac SDK build this time. Doh.
2011-04-11 14:50:10 -07:00
David 'Digit' Turner
f5b7571291 am 6bd20ca2: am f0f9b1bd: am ca7616f2: am d5106417: Merge "Fix Mac sdk builds"
* commit '6bd20ca22a4483cd75eb3e66682ec830d8688852':
  Fix Mac sdk builds
2011-04-11 14:50:08 -07:00
David Turner
62ac521c61 am 0f7fe2a2: am 5c0f4ce0: am 5eaaac26: am e8c05eb1: Merge "fix handling pointers in emugen."
* commit '0f7fe2a2a0ccc3ba38440e66174184cbb01b889a':
  fix handling pointers in emugen.
2011-04-11 14:50:06 -07:00