blob: 60e125de7c14197f90c6131f93291a0421675722 [file] [log] [blame]
David 'Digit' Turnercb88e792011-08-26 01:35:14 +02001/* Copyright (C) 2011 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef ANDROID_OPENGLES_H
13#define ANDROID_OPENGLES_H
14
David Turner7b56a4a2011-09-12 18:21:58 +020015#include <stddef.h>
16
David 'Digit' Turnercb88e792011-08-26 01:35:14 +020017#define ANDROID_OPENGLES_BASE_PORT 22468
18
Jesse Hall7105d422012-03-21 11:49:42 -070019/* See the description in render_api.h. */
Jesse Hall07ca7c22012-04-25 22:05:07 -070020typedef void (*OnPostFunc)(void* context, int width, int height, int ydir,
21 int format, int type, unsigned char* pixels);
Jesse Hall7105d422012-03-21 11:49:42 -070022
David 'Digit' Turnercb88e792011-08-26 01:35:14 +020023/* Call this function to initialize the hardware opengles emulation.
24 * This function will abort if we can't find the corresponding host
25 * libraries through dlopen() or equivalent.
26 */
27int android_initOpenglesEmulation(void);
28
29/* Tries to start the renderer process. Returns 0 on success, -1 on error.
Jesse Hall7105d422012-03-21 11:49:42 -070030 * At the moment, this must be done before the VM starts. The onPost callback
31 * may be NULL.
David 'Digit' Turnercb88e792011-08-26 01:35:14 +020032 */
Jesse Hall7105d422012-03-21 11:49:42 -070033int android_startOpenglesRenderer(int width, int height,
Jesse Hall07ca7c22012-04-25 22:05:07 -070034 OnPostFunc onPost, void* onPostContext);
David 'Digit' Turnercb88e792011-08-26 01:35:14 +020035
36int android_showOpenglesWindow(void* window, int x, int y, int width, int height, float rotation);
37
38int android_hideOpenglesWindow(void);
39
40void android_redrawOpenglesWindow(void);
41
42/* Stop the renderer process */
43void android_stopOpenglesRenderer(void);
44
David Turner7b56a4a2011-09-12 18:21:58 +020045/* set to TRUE if you want to use fast GLES pipes, 0 if you want to
46 * fallback to local TCP ones
47 */
48extern int android_gles_fast_pipes;
49
50/* Write the path of the Unix socket we're going to use to access GLES on a given <port> */
51/* The result is only valid on Unix systems */
52void android_gles_unix_path(char* buff, size_t buffsize, int port);
53
David 'Digit' Turnercb88e792011-08-26 01:35:14 +020054#endif /* ANDROID_OPENGLES_H */