emugl: generate GL ES/EGL function prototypes at build type from entries files
This will make the *.entries files the the authoritative place to define additional GL function prototypes. All generated header files are now placed inside the build directory so that nobody will ever try to touch them again.
This commit is contained in:
parent
86cc5f1e37
commit
067201baba
20 changed files with 628 additions and 504 deletions
|
|
@ -18,6 +18,7 @@ include_directories(
|
|||
${CMAKE_SOURCE_DIR}/external/process-cpp-minimal/include
|
||||
${CMAKE_SOURCE_DIR}/external/android-emugl/shared
|
||||
${CMAKE_SOURCE_DIR}/external/android-emugl/host/include
|
||||
${CMAKE_BINARY_DIR}/external/android-emugl/host/include
|
||||
${CMAKE_SOURCE_DIR}/external/android-emugl/shared/OpenglCodecCommon
|
||||
${CMAKE_SOURCE_DIR}/external/android-emugl/host/libs
|
||||
${CMAKE_SOURCE_DIR}/external/android-emugl/host/include/libOpenglRender
|
||||
|
|
|
|||
|
|
@ -1,129 +0,0 @@
|
|||
!render_api
|
||||
|
||||
%#include "OpenglRender/render_api_platform_types.h"
|
||||
%
|
||||
%#include <stdbool.h>
|
||||
%#include <stddef.h>
|
||||
%#include <stdint.h>
|
||||
%
|
||||
%/* list of constants to be passed to setStreamMode */
|
||||
%#define RENDER_API_STREAM_MODE_DEFAULT 0
|
||||
%#define RENDER_API_STREAM_MODE_TCP 1
|
||||
%#define RENDER_API_STREAM_MODE_UNIX 2
|
||||
%#define RENDER_API_STREAM_MODE_PIPE 3
|
||||
%
|
||||
%typedef void (*OnPostFn)(void* context, int width, int height, int ydir,
|
||||
% int format, int type, unsigned char* pixels);
|
||||
|
||||
# Initialize the library and tries to load the corresponding EGL/GLES
|
||||
# translation libraries. Must be called before anything else to ensure that
|
||||
# everything works. Returns 0 on success, error code otherwise.
|
||||
# If it returns an error, you cannot use the library at all.
|
||||
int initLibrary(void);
|
||||
|
||||
# Change the stream mode. This must be called before initOpenGLRenderer()
|
||||
# |mode| is one of STREAM_DEFAULT, STREAM_UNIX, STREAM_TCP or STREAM_PIPE.
|
||||
int setStreamMode(int mode);
|
||||
|
||||
# initOpenGLRenderer - initialize the OpenGL renderer process.
|
||||
#
|
||||
# width and height are the framebuffer dimensions that will be reported to the
|
||||
# guest display driver.
|
||||
#
|
||||
# useSubWindow is true to indicate that createOpenGLSubWindow() will be called
|
||||
# later. If false, only setPostCallback() is supported.
|
||||
#
|
||||
# addr is a buffer of addrLen bytes that will receive the address that clients
|
||||
# should connect to. The interpretation depends on the transport:
|
||||
# - TCP: The buffer contains the port number as a string. The server is
|
||||
# listening only on the loopback address.
|
||||
# - Win32 and UNIX named pipes: The buffer contains the full path clients
|
||||
# should connect to.
|
||||
#
|
||||
# This function is *NOT* thread safe and should be called first
|
||||
# to initialize the renderer after initLibrary().
|
||||
int initOpenGLRenderer(int width, int height, bool useSubWindow, char* addr, size_t addrLen, emugl_logger_struct logfuncs);
|
||||
|
||||
# getHardwareStrings - describe the GPU hardware and driver.
|
||||
# The underlying GL's vendor/renderer/version strings are returned to the
|
||||
# caller. The pointers become invalid after a call to stopOpenGLRenderer().
|
||||
void getHardwareStrings(const char** vendor, const char** renderer, const char** version);
|
||||
|
||||
# A per-frame callback can be registered with setPostCallback(); to remove it
|
||||
# pass NULL for both parameters. While a callback is registered, the renderer
|
||||
# will call it just before each new frame is displayed, providing a copy of
|
||||
# the framebuffer contents.
|
||||
#
|
||||
# The callback will be called from one of the renderer's threads, so will
|
||||
# probably need synchronization on any data structures it modifies. The
|
||||
# pixels buffer may be overwritten as soon as the callback returns; if it
|
||||
# needs the pixels afterwards it must copy them.
|
||||
#
|
||||
# The pixels buffer is intentionally not const: the callback may modify the
|
||||
# data without copying to another buffer if it wants, e.g. in-place RGBA to
|
||||
# RGB conversion, or in-place y-inversion.
|
||||
#
|
||||
# Parameters are:
|
||||
# context The pointer optionally provided when the callback was
|
||||
# registered. The client can use this to pass whatever
|
||||
# information it wants to the callback.
|
||||
# width, height Dimensions of the image, in pixels. Rows are tightly
|
||||
# packed; there is no inter-row padding.
|
||||
# ydir Indicates row order: 1 means top-to-bottom order, -1 means
|
||||
# bottom-to-top order.
|
||||
# format, type Format and type GL enums, as used in glTexImage2D() or
|
||||
# glReadPixels(), describing the pixel format.
|
||||
# pixels The framebuffer image.
|
||||
#
|
||||
# In the first implementation, ydir is always -1 (bottom to top), format and
|
||||
# type are always GL_RGBA and GL_UNSIGNED_BYTE, and the width and height will
|
||||
# always be the same as the ones passed to initOpenGLRenderer().
|
||||
void setPostCallback(OnPostFn onPost, void* onPostContext);
|
||||
|
||||
# showOpenGLSubwindow -
|
||||
# Create or modify a native subwindow which is a child of 'window'
|
||||
# to be used for framebuffer display. If a subwindow already exists,
|
||||
# its properties will be updated to match the given parameters.
|
||||
# wx,wy is the top left corner of the rendering subwindow.
|
||||
# ww,wh are the dimensions of the rendering subwindow.
|
||||
# fbw,fbh are the dimensions of the underlying guest framebuffer.
|
||||
# dpr is the device pixel ratio, which is needed for higher density
|
||||
# displays like retina.
|
||||
# zRot is the rotation to apply on the framebuffer display image.
|
||||
#
|
||||
# Return true on success, false on failure, which can happen when using
|
||||
# a software-only renderer like OSMesa. In this case, the client should
|
||||
# call setPostCallback to get the content of each new frame when it is
|
||||
# posted, and will be responsible for displaying it.
|
||||
bool showOpenGLSubwindow(FBNativeWindowType window, int wx, int wy, int ww, int wh, int fbw, int fbh, float dpr, float zRot);
|
||||
|
||||
# destroyOpenGLSubwindow -
|
||||
# destroys the created native subwindow. Once destroyed,
|
||||
# Framebuffer content will not be visible until a new
|
||||
# subwindow will be created.
|
||||
# Return true on success, false otherwise.
|
||||
bool destroyOpenGLSubwindow(void);
|
||||
|
||||
# setOpenGLDisplayRotation -
|
||||
# set the framebuffer display image rotation in units
|
||||
# of degrees around the z axis
|
||||
void setOpenGLDisplayRotation(float zRot);
|
||||
|
||||
# setOpenGLDisplayTranslation
|
||||
# change what coordinate of the guest framebuffer will be displayed at the
|
||||
# corner of the GPU sub-window. Specifically, |px| and |py| = 0 means
|
||||
# align the bottom-left of the framebuffer with the bottom-left of the
|
||||
# sub-window, and |px| and |py| = 1 means align the top right of the
|
||||
# framebuffer with the top right of the sub-window. Intermediate values
|
||||
# interpolate between these states.
|
||||
void setOpenGLDisplayTranslation(float px, float py);
|
||||
|
||||
# repaintOpenGLDisplay -
|
||||
# causes the OpenGL subwindow to get repainted with the
|
||||
# latest framebuffer content.
|
||||
void repaintOpenGLDisplay(void);
|
||||
|
||||
# stopOpenGLRenderer - stops the OpenGL renderer process.
|
||||
# This functions is#NOT* thread safe and should be called
|
||||
# only if previous initOpenGLRenderer has returned true.
|
||||
int stopOpenGLRenderer(void);
|
||||
Loading…
Add table
Add a link
Reference in a new issue