Commit Graph

1202 Commits

Author SHA1 Message Date
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
David Turner
58a12822d4 am 8ce14fd8: am 0c0fd648: am fef11912: am ba43b928: Merge "emulator opengl - directory rearrangment"
* commit '8ce14fd8b058d4815c89ae04f0476142a26ec540':
  emulator opengl - directory rearrangment
2011-04-11 14:50:02 -07:00
David 'Digit' Turner
929e2f1016 am 4fc035aa: am 9909e7f5: am b24b2470: Merge "Really fix the Mac SDK build this time. Doh."
* commit '4fc035aaca64214f4af2425d6b6d68187241b38d':
  Really fix the Mac SDK build this time. Doh.
2011-04-11 14:46:51 -07:00
David 'Digit' Turner
6bd20ca22a am f0f9b1bd: am ca7616f2: am d5106417: Merge "Fix Mac sdk builds"
* commit 'f0f9b1bd4010f9584675a83e079e7ab6167bb7ee':
  Fix Mac sdk builds
2011-04-11 14:46:37 -07:00
David Turner
0f7fe2a2a0 am 5c0f4ce0: am 5eaaac26: am e8c05eb1: Merge "fix handling pointers in emugen."
* commit '5c0f4ce0bede5b1652853e7bc14dcc0e0a98ac5c':
  fix handling pointers in emugen.
2011-04-11 14:46:34 -07:00
David Turner
8ce14fd8b0 am 0c0fd648: am fef11912: am ba43b928: Merge "emulator opengl - directory rearrangment"
* commit '0c0fd6480c7dfd40de6a0514abd634e481c35f90':
  emulator opengl - directory rearrangment
2011-04-11 14:46:27 -07:00
David 'Digit' Turner
776bd3e46c 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: I0261fcd6cdf6af7564106c5ab8d2b3bda001d567
2011-04-07 10:58:07 +02:00
David 'Digit' Turner
45c722023d Really fix the Mac SDK build this time. Doh.
Change-Id: I529c42f89e752b245f76d7ea0d55ad6c676936b0
2011-04-05 17:23:55 +02:00
David 'Digit' Turner
c29456a000 Fix Mac sdk builds
Change-Id: Ia90be6b2ef10520ab2efb70fc03332a36e531ddc
2011-04-05 15:37:31 +02:00
David Turner
e8c05eb11a Merge "fix handling pointers in emugen." 2011-04-05 05:59:55 -07:00
Vladimir Chtchetkine
105b40da3f Merge "Fix build scripts for vbox_x86 target" 2011-04-04 09:40:35 -07:00
Liran
03c86416d5 fix handling pointers in emugen.
Moved 'isPointer' attribute from variable to type field.
The .types input file now includes new column specifying if a type is a pointer or not
previously emugen declared as pointer only types which included '*' character but did not
process well the case of 'char **' (pointer to pointer).

Fixed the gl.types and ut_rendercontrol.types accordingly.
Few other fixes to gl.attrib and gl.in.

Change-Id: Ifd3591119dfa504703c68556802a40e38fe4940e
2011-04-04 16:05:18 +03:00
Jacky Romano
81c015740c emulator opengl - directory rearrangment
Move system/OpenglCodecCommon into shared/OpenglCodecCommon so it's code
can be shared among more components of the project.

Move tests/ut_renderer/TimeUtils.* into a the common area

Annotate ErrLog.h and GLDecoderContextData.h with the project license statement

Change-Id: Ieea42e95edd5ad89fda4cfa40356a012304ee976
2011-04-04 12:20:49 +03:00
Vladimir Chtchetkine
3e254c17fd Fix build scripts for vbox_x86 target
Change-Id: I9a626711a887c26b0825d291ffa3f7400b728518
2011-04-01 08:27:02 -07:00