Commit Graph

68 Commits

Author SHA1 Message Date
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
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
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
David 'Digit' Turner
e97b54b648 Fix device builds
This patch ensures that the egl.cfg file specific to our
hardware OpenGL emulation is only copied to the system images
of emulator-specific build products.

This fixes a conflict for device-specific products (which provide
their own hw-specific egl.cfg).

Change-Id: I30cd64ba5915e5ffdc1091de8db20f6c3c671486
2011-03-31 09:39:59 +02:00
David 'Digit' Turner
db35d9a010 Fix linux sdk build.
This is a temporary patch until we update the prebuilt/ tree accordingly
to include libxcb.so for Linux.

Change-Id: I76d9966bfb73bf3f5ca35cc30f6e12fb262dc2b2
2011-03-29 18:37:37 +02:00
Jacky Romano
f99884f916 Android emulator opengl - host side EGL wrapper
This adds an EGL wrapper used by the test rendering to load an EGL
implementation that matches the OpenGL ES impelmentation that it uses.
The library is a simple wrapper that direct EGL calls through a dispatch
table that is dynamically loaded from an EGL shared library implementation

Change-Id: I6379d6b156c69f9e017da0039c96699290f0f84f
2011-03-28 19:22:31 +02:00
Jacky Romano
faa8994f17 Android emulator opengl - unit test host side renderer
This adds 'ut_renderer' - a host side unit test renderer. ut_renderer is used to
take a command stream over a socket connection and render it into an opengl window.
The renderer uses the GLESv1_dec decoder library and the ut_rendercontrol api to parse
the command stream.
The ut_renderer uses an external (plug-in) opengl impelementation.

Change-Id: I77794044ca9ca8a75a66a95a248eac384710aafe
2011-03-28 19:20:23 +02:00
Jacky Romano
a4205ba264 Android emulator opengles - unit test gles wrapper
This adds opengl es implementation driver that selects whether to use
the native android emulator opengl impelementation or use a remote,
host side renderer. This driver is used to selectivley run applications using
the remote renderer. The selection is based on the application/process name and
is configured using /etc/gles_emul.cfg in the emulator side.

This change also installs /etc/egl.cfg that is used by the Android opengl wrapper
to select an opengl implementation

Change-Id: I66eda3d48938f8057bf45e6476b7faefaf1130fb
2011-03-28 19:18:27 +02:00
Jacky Romano
2d824c62e7 Android emulator opengl - unit testing render control api
This adds minimal rendering control api codec that is used by opengl codec
unit tests. The api is used to pass messages regarding resource creation
(surfaces, opengl context) and swapbuffers notifications.
The actual encoder and decoder code is generated using 'emugen'

Change-Id: Ia9b74ae755d032a9b02fdc5f85575d4cd8ada326
2011-03-28 19:08:40 +02:00
Jacky Romano
f92438f64c Android emulator opengl - OpenGL ES 1.1 decoder
This change adds the opengl host side decoder library (libGLESv1_dec)
The library uses the GLESv1 api defintion (part of libGLESv1_enc library)
used by emugen to generate the library code. It also includes
The generated code is wrapped with the GLDecoder class to handle OpenGL
specific semantics

Change-Id: I0948f1984e538d8f6cfedc961e6296686b4be850
2011-03-28 19:08:20 +02:00
Jacky Romano
6a04b8afc5 Emulator opengl - Opengl ES 1.1 encoder
This change the opengl target side encoder library (libGLESv1_enc)
The library includes api definition files for 'emugen' code generation
tool and a serrounding code to handle opengl specific sematics (such as client state)
tracking

Change-Id: I8708b945c8c9c7fbe06147b703bdee27a576c7a0
2011-03-28 19:06:03 +02:00
Jacky Romano
c27986a3c2 Opengl implementation - codec common code
This change adds the libOpenglCodecCommon, which holds
shared code between the encoder and the decoder parts of the opengl
codec. The library is built as static with both a target version and
a host version.

Change-Id: I163eea8fdb635620e6cde9d1d75c3e7369953213
2011-03-28 19:01:49 +02:00
Jacky Romano
9760e2863a Emugen : A tool to generate wire protocol code
Emugen is a tool that can be used to generate code that
deals with marshaling/unmarshaling request to/from a wire-protocol.
Its input is an API defintion files and its output is C++ source
code for the client (caller) and the server (callee) sides.

See README file for more details.

This submission is resubmission of code that lived under
sdk/emulator/opengl/. However, it also includes minor updates
in ApiGen.cpp

Change-Id: I0ede7448e0a0e26fa0fbc5590d07d1f2f6566f0a
2011-03-16 15:58:23 +02:00