|
abe89c7d
|
2017-02-16T10:24:06
|
|
Tweak platform method signatures.
This works around a limitation in UBSAN which can't handle decltype.
Instead use void * and typedef where appropriate.
BUG=chromium:692274
Change-Id: I4eab796db3aa2e51c0fc558170eb2af61f07223d
Reviewed-on: https://chromium-review.googlesource.com/443885
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
abf38572
|
2017-02-14T16:47:59
|
|
Remove old C++ ANGLE platform.
Now that the new platform is in place, we can remove the old methods.
Must be landed after https://codereview.chromium.org/2697463003/
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Ia29a3b120cf3521fc0409019c2e64e4dbc6f460d
Reviewed-on: https://chromium-review.googlesource.com/441274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
dbffdfbd
|
2017-02-13T18:52:38
|
|
Fix counting of the new platform methods.
The context pointer was throwing off the count by one.
Also change the type to void * for ease of use.
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Iffac667f0aa896d9247e9ffddfeb3bc447a9692f
Reviewed-on: https://chromium-review.googlesource.com/441931
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b1eeba1f
|
2017-02-13T16:36:40
|
|
Use a C API for the ANGLE platform.
The main purpose of this change is to fix a fuzzer bug where we would
trigger undefined behaviour calling between Chrome and ANGLE. It's
not specced how virtual function calls work if the shared objects are
not directly linked together, and ANGLE and Chrome are not linked.
Replace the old class-style API with a C dispatch table.
Follow-up work will make the Platform owned by the Display instead of
using global variables, but fixing this is a bit tricky.
BUG=angleproject:1892
BUG=chromium:678870
Change-Id: Iad188bc2e50f2b5e4a03ce0de233d686f569c705
Reviewed-on: https://chromium-review.googlesource.com/441273
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
464bfc86
|
2015-10-07T12:12:02
|
|
Use .def file to export functions using dllexport.
BUG=angleproject:1183
This is a reland of part of commit 566273222683314dfc8ac1cdb9bf6deb5d2b4c65.
The original commit caused warnings on 64-bit MSVC linker. This version
removes declspec(dllexport) from exported ANGLE APIs (for which we need
a new ANGLE_PLATFORM_EXPORT macro). It also makes those APIs stdcall on
Windows builds.
Change-Id: Iee2ab7e43ef0b98924f5759b5e1b333307052235
Reviewed-on: https://chromium-review.googlesource.com/304501
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6bd58312
|
2015-03-13T10:45:27
|
|
Make Platform methods global.
This will allow them to be imported dynamically without name
mangling. This is necessary because sometimes SwiftShader
overrides libGLESv2 and libEGL, so we need to determine at
run-time if we are running with "actual" ANGLE.
BUG=466735
Change-Id: I396d717b79066feb8ed0d577ee7386b33eb1d160
Reviewed-on: https://chromium-review.googlesource.com/259954
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5feea562
|
2015-02-17T16:03:16
|
|
Add ANGLE platform implementation template.
The platform implementation allows the app layer to pass in an
object, on which ANGLE can call virtual methods. Our current
platform will handle trace events, for app profiling, and
histogram records for statistics. The platform approach gives
a much more robust approach than using entry points for every
piece of functionality, and is based on the interop with Blink.
The default platform implementation does a no-op on every call.
The destructor is also private, to ensure we do not call the
destructor of the passed-in class.
BUG=436191
Change-Id: I05641b89a48a9cff81ced059518fceb5aa6c883b
Reviewed-on: https://chromium-review.googlesource.com/248631
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|