Commit Graph

1193 Commits

Author SHA1 Message Date
Jacky Romano
139308015e emulator Opengl - slight type change for GLESv2
Match the location type in the decoder context data to take
int locations rather then symbolic constants.

Change-Id: I353e43315c90dbeafe4820a3749a0d1cf0848d4b
2011-05-03 14:39:11 +02:00
Jacky Romano
68367ae969 emulator Opengl - number of supported vertex attributes
make the number of suppoted vertex attributes (by the codec)
common across the encoder and the decoder.

Change-Id: I699ef62821566cec0764982872adb92ebb8861e9
2011-05-03 14:38:29 +02:00
Amit Feller
25d29c4778 adding support for getting gles proc address from eglGetProcAdress
Change-Id: Ife1b3be5abd181cce837eebbf993e99759eec8e7
2011-05-03 13:34:13 +02:00
David Turner
c6f61d782d am 0a78cb7f: am b4669d5d: Merge "emulator: opengl: Fix Mac build"
* commit '0a78cb7f625ec5ca08c494a6811975db9bf7dcaa':
  emulator: opengl: Fix Mac build
2011-05-02 13:30:01 -07:00
David Turner
6ece5eeb70 am 7da2a217: am 27c128d7: Merge "GLESv1 extensions"
* commit '7da2a217ee184dfc688a0199ad7caa3fff3dd94e':
  GLESv1 extensions
2011-05-02 13:29:59 -07:00
David Turner
322b38a818 am cc45a256: am cd7a4fd9: Merge "supporting EGL_KHR_image_base & EGL_KHR_gl_texture_2d_image extentions"
* commit 'cc45a2569c5e9dde43d76c49e5922c69690ed08e':
  supporting EGL_KHR_image_base & EGL_KHR_gl_texture_2d_image extentions
2011-05-02 13:29:56 -07:00
David Turner
e725d195b5 am 6b588edf: am 70faa88e: Merge "integrating objectNameManger into GLES implementation"
* commit '6b588edf747e8ccf3e3ca091e227d1cc33baac9b':
  integrating objectNameManger into GLES implementation
2011-05-02 13:29:54 -07:00
David Turner
7e2682b1d6 am c46dffa2: am 71c92e77: Merge "Emulator\'s host translator EGL implementation."
* commit 'c46dffa2c15d77df60b5227cce3b122ba3e9f983':
  Emulator's host translator EGL implementation.
2011-05-02 13:29:52 -07:00
David Turner
f92178c48c am a2914a39: am 9d4ac946: Merge "Emulator\'s GLES translator implementation."
* commit 'a2914a393aac705ee7d12a880b90954c700fc22f':
  Emulator's GLES translator implementation.
2011-05-02 13:29:45 -07:00
David Turner
0a78cb7f62 am b4669d5d: Merge "emulator: opengl: Fix Mac build"
* commit 'b4669d5dc992fa637abbce986ebe2f282624d6ac':
  emulator: opengl: Fix Mac build
2011-05-02 12:33:18 -07:00
David Turner
7da2a217ee am 27c128d7: Merge "GLESv1 extensions"
* commit '27c128d7018676fec649b9703c9ad329f2ebf888':
  GLESv1 extensions
2011-05-02 12:33:16 -07:00
David Turner
cc45a2569c am cd7a4fd9: Merge "supporting EGL_KHR_image_base & EGL_KHR_gl_texture_2d_image extentions"
* commit 'cd7a4fd9375d86907463c847b4ccf9020f4f44cc':
  supporting EGL_KHR_image_base & EGL_KHR_gl_texture_2d_image extentions
2011-05-02 12:33:14 -07:00
David Turner
6b588edf74 am 70faa88e: Merge "integrating objectNameManger into GLES implementation"
* commit '70faa88ebc884519ba6e8ba8be45cff2c176ebcf':
  integrating objectNameManger into GLES implementation
2011-05-02 12:33:10 -07:00
David Turner
c46dffa2c1 am 71c92e77: Merge "Emulator\'s host translator EGL implementation."
* commit '71c92e77dc46cf457d45d1d2a64608cd9c88782a':
  Emulator's host translator EGL implementation.
2011-05-02 12:33:08 -07:00
David Turner
a2914a393a am 9d4ac946: Merge "Emulator\'s GLES translator implementation."
* commit '9d4ac946f32d23a4c8ce5723a4e7cb1153f4abb5':
  Emulator's GLES translator implementation.
2011-05-02 12:33:01 -07:00
David Turner
8e2dc32b2d Merge "Add GLESv2 functionality to GLESv1/GLESv2 shared code" 2011-05-02 09:18:55 -07:00
David Turner
77b1a4565c Merge "Move utility functions into glUtils" 2011-05-02 09:15:28 -07:00
Jacky Romano
254492ffd6 Add GLESv2 functionality to GLESv1/GLESv2 shared code
Extends GLClientState to support additional state data
that is required by GLESv2. this includes:
* normalized flag in vertex attribute arrays
* getter for vertex attribute arrays state
* glParamSize now knows about the result size of GL2 parameters
* utility functions required for a GLESv2 encoder

Change-Id: I7e57d978bed5b8b929b918aee66c7f71dc5df3b1
2011-05-02 18:23:13 +03:00
Jacky Romano
3c2aa9b931 Move utility functions into glUtils
Move utility functions into glUtils so they can be shared
between GLESv1 and GLESv2 codecs.

Change-Id: I673b316395604e4288412e7ace328076812d4cc1
2011-05-02 18:23:13 +03:00
David Turner
2d3b98f87b emulator: opengl: Fix Mac build
This fixes several issues when building the host libraris on Darwin.
Note that there is still not proper implementation of backend functions.

Change-Id: I3ba4120df6545a8c2aa62fdfcaadaf5ff4972456
2011-05-02 14:08:03 +02:00
David Turner
27c128d701 Merge "GLESv1 extensions" 2011-05-01 23:53:38 -07:00
David 'Digit' Turner
0ce5a57448 am c37aea7b: am ad41863c: am 3c84652d: Merge "emulator: Add libqemu static library to implement qemu pipes."
* commit 'c37aea7b46eef99555570e3e06de465d02e7312e':
  emulator: Add libqemu static library to implement qemu pipes.
2011-04-29 15:09:59 -07:00
David 'Digit' Turner
c37aea7b46 am ad41863c: am 3c84652d: Merge "emulator: Add libqemu static library to implement qemu pipes."
* commit 'ad41863c00467c41e392bd5565b20356dc90b393':
  emulator: Add libqemu static library to implement qemu pipes.
2011-04-29 14:53:53 -07:00
Amit Feller
0ff6e7917b supporting EGL_KHR_image_base & EGL_KHR_gl_texture_2d_image extentions
Change-Id: I69c3e975c892bcd0872c47e349b427f570d7e82d
2011-04-29 22:10:43 +02:00
Amit Feller
fce7b684b1 integrating objectNameManger into GLES implementation
Change-Id: Icda250f9e9d3af15a2d7c214136b777833d5596d
2011-04-29 22:10:43 +02:00
Amit Feller
a245cb125f Emulator's host translator EGL implementation.
This is the EGL implementation for the host EGL/GLES translator.

EglImp.cpp - includes the EGL entry points implementation.
ThreadInfo.cpp - defines the per-thread info which is shared to EGL and GLES
EglOsApi.h - platform dependant interface functions.
EglLinuxApi.cpp - implements the GLX platform of EglOsApi
EglWindowsApi.cpp - implenents the Windows platform of EglOsApi - This has not been compiled yet!!!

Change-Id: I30a8cf457858ef04febf67005787d8d18e5e7a70
2011-04-29 22:10:43 +02:00
Amit Feller
03dcd431cc Emulator's GLES translator implementation.
This is the GLESv1 on top of OpenGL implementation on the host.
GLDispatch - dispatch table to host OpenGL implementation.
GLESimp - includes GLES entry points implementation.

Change-Id: Ief5eac2253a5a98b75a5d76363a36b7587d17391
2011-04-29 22:10:43 +02:00
David 'Digit' Turner
e1eea50214 emulator: Add libqemu static library to implement qemu pipes.
See hardware/libhardware/include/hardware/qemu_pipe.h for the API
implemented by the library. It enables very fast reads/writes between
the guest system and specific emulator services.

Define BUILD_LIBQEMU_TESTS=true in your environment to build the
test programs (a simple host ping-pong server, and a benchmark
guest program).

You can invoke them with:

1/ Testing TCP pipes:

   host:  test-libqemu-1 -tcp 8012
   guest: test-libqemu-2 -pipe tcp:8012

Alternatively

   guest: su
          test-libqemu-2 -tcp 8012

2/ Testing Unix pipes:

   host:  test-libqemu-1 -unix /tmp/libqemu-socket
   guest: test-libqemu-2 -pipe unix:/tmp/libqemu-socket

3/ Testing internal pingpong server (within the emulator)

   host:   /* nothing to do */
   guest:  test-libqemu-2

Change-Id: Ib50fc9cbee6b5f4581baca97412d6f69d4f84860
2011-04-28 16:48:15 +02:00
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