Commit Graph

1202 Commits

Author SHA1 Message Date
Jacky Romano
0c814b227c emulator opengl - encode glShaderSource
glShaderSource strings are concatenated into a single string
before sent over the wire protocol. The wire protocol transfer is
done using a special api call 'glShaderString'

Change-Id: I90c157df66fe82fee17c460a1e7852d370c77088
2011-05-03 15:25:25 +02:00
Jacky Romano
68e7ee63f5 opengl emulator - handle shader string decoding
Shader strings are sent over the wire protocal as one concatenated
string. a special api call - glShaderString is used to handle the
encoding and decoding of this string.

Change-Id: Id682763f35e9fcc6215559931db2112a4fa981a9
2011-05-03 15:15:25 +02:00
Jacky Romano
b95e444f2b emulator opengl - GLESv2 implementation
Decoder side implementation for GLESv2

Change-Id: I5db0c0acd2ef52a156487a99ece5cd2f5b073616
2011-05-03 15:11:36 +02:00
Jacky Romano
804809556d emulator opengl: typo caused the decoder to crash
embarrassing :-)

Change-Id: I4da948bba0cd16b6e8289c3c79e0daefb41f90e4
2011-05-03 14:54:04 +02:00
Jacky Romano
e359543f4a Emulator Opengl unit test - use sperate implementation libraries
Use seperate EGL_emul, GLESv1_CM_emul and GLESv2_emul implementation
libraries.  This replaces GLES_emul that was prviously included
EGL and GLESv1.
This change enables the wrapper to support GLESv2. However,
this current EGL implementation uses the native android emulator
EGL thus will not expose this GLESv2 capability.

Change-Id: Ib0a309d71cce1248efe9a08aa59434101d0ac607
2011-05-03 14:54:04 +02:00
Jacky Romano
318ffd3798 Emulator Opengl - adding preliminary version of GLESv2 encoder
This preliminary version includes the API definition, and the
GL2Encoder implementation class

Change-Id: I7ef9cfeb98c1e85097287ab26733825087368ee0
2011-05-03 14:54:03 +02:00
Jacky Romano
979bbff8c0 emugen: make 'setContextAccessor' method static
Change-Id: Iad924f77464236af2d78e147276125ee0e481073
2011-05-03 14:42:47 +02:00
Jacky Romano
a3b48dbbe7 emugen - fix wrapper context naming
Change-Id: I5261c5f94f200480bad4ad74812c20302a5e81d5
2011-05-03 14:41:52 +02:00
Jacky Romano
ea3a3584f5 emugen: generate wrapper library files
Add functionality to generate a wrapper library. A wrapper library includes:
1. entry points
2. dispatch table (accessed from the library entry points)
3. dispatch table accessor callback
4. dispatch table initialization function

Note that the dispatch table initialization function used to be part of the decoder. This
change moves it to be part of the dispatch table layer where it belongs.

Change-Id: Ide6764a17cc029056f9946e778a513cdc2a49003
2011-05-03 14:40:52 +02:00
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