Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libSDL
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
libSDL
Commits
d4cfca1c
Commit
d4cfca1c
authored
Jun 17, 2010
by
Paul Hunkin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added egl headers so we can use eglMakeCurrent()
parent
c67e5f7b
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1109 additions
and
4 deletions
+1109
-4
Android.mk
android/testproject/jni/Android.mk
+6
-2
app-android.c
android/testproject/jni/app-android.c
+40
-2
egl.h
android/testproject/jni/egl.h
+269
-0
eglnatives.h
android/testproject/jni/eglnatives.h
+277
-0
egltypes.h
android/testproject/jni/egltypes.h
+48
-0
lesson05.c
android/testproject/jni/lesson05.c
+469
-0
No files found.
android/testproject/jni/Android.mk
View file @
d4cfca1c
...
@@ -4,13 +4,17 @@ include $(CLEAR_VARS)
...
@@ -4,13 +4,17 @@ include $(CLEAR_VARS)
LOCAL_MODULE := sanangeles
LOCAL_MODULE := sanangeles
SDL := /home/paul/Projects/gsoc/SDL-gsoc2010_android/
LOCAL_CFLAGS := -DANDROID_NDK \
LOCAL_CFLAGS := -DANDROID_NDK \
-DDISABLE_IMPORTGL
-DDISABLE_IMPORTGL \
-I$(SDL)/include
LOCAL_SRC_FILES := \
LOCAL_SRC_FILES := \
importgl.c \
importgl.c \
app-android.c \
app-android.c \
lesson05.c \
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog
-lSDL -lEGL -lgcc -L$(SDL) -L$(SDL)/build-scripts/android_libs/
include $(BUILD_SHARED_LIBRARY)
include $(BUILD_SHARED_LIBRARY)
android/testproject/jni/app-android.c
View file @
d4cfca1c
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
#include <pthread.h>
#include <pthread.h>
#include "importgl.h"
#include "importgl.h"
#include "egl.h"
/*******************************************************************************
/*******************************************************************************
Globals
Globals
...
@@ -31,7 +32,17 @@ static long _getTime(void){
...
@@ -31,7 +32,17 @@ static long _getTime(void){
}
}
/*******************************************************************************
Things used by libsdl
*******************************************************************************/
pthread_mutex_t
mSDLRenderMutex
;
pthread_cond_t
mSDLRenderCondition
;
EGLContext
mContext
;
EGLDisplay
mDisplay
;
EGLSurface
mRead
;
EGLSurface
mDraw
;
/*******************************************************************************
/*******************************************************************************
SDL thread
SDL thread
*******************************************************************************/
*******************************************************************************/
...
@@ -39,7 +50,13 @@ pthread_t mSDLThread = 0;
...
@@ -39,7 +50,13 @@ pthread_t mSDLThread = 0;
void
*
sdlThreadProc
(
void
*
args
){
void
*
sdlThreadProc
(
void
*
args
){
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Thread Entry"
);
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Thread Entry"
);
return
0
;
if
(
!
eglMakeCurrent
(
mDisplay
,
mDraw
,
mRead
,
mContext
)){
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Couldn't make current: 0x%x"
,
eglGetError
());
return
NULL
;
}
return
(
void
*
)
SDL_main
();
}
}
/*******************************************************************************
/*******************************************************************************
...
@@ -54,6 +71,21 @@ void Java_org_libsdl_android_TestRenderer_nativeInit( JNIEnv* env )
...
@@ -54,6 +71,21 @@ void Java_org_libsdl_android_TestRenderer_nativeInit( JNIEnv* env )
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Entry point"
);
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Entry point"
);
pthread_mutex_init
(
&
mSDLRenderMutex
,
NULL
);
pthread_cond_init
(
&
mSDLRenderCondition
,
NULL
);
//Get some egl stuff we need
mContext
=
eglGetCurrentContext
();
mDisplay
=
eglGetCurrentDisplay
();
mRead
=
eglGetCurrentSurface
(
EGL_READ
);
mDraw
=
eglGetCurrentSurface
(
EGL_DRAW
);
//We need to abandon our context so SDL can have it
if
(
!
eglMakeCurrent
(
mDisplay
,
EGL_NO_SURFACE
,
EGL_NO_SURFACE
,
EGL_NO_CONTEXT
)){
__android_log_print
(
ANDROID_LOG_INFO
,
"SDL"
,
"Couldn't abandon context: 0x%x"
,
eglGetError
());
return
NULL
;
}
//Spin up the SDL thread
//Spin up the SDL thread
int
r
=
pthread_create
(
&
mSDLThread
,
NULL
,
sdlThreadProc
,
NULL
);
int
r
=
pthread_create
(
&
mSDLThread
,
NULL
,
sdlThreadProc
,
NULL
);
...
@@ -115,4 +147,10 @@ void Java_org_libsdl_android_TestRenderer_nativeRender( JNIEnv* env )
...
@@ -115,4 +147,10 @@ void Java_org_libsdl_android_TestRenderer_nativeRender( JNIEnv* env )
{
{
//TODO: Render here
//TODO: Render here
pthread_mutex_lock
(
&
mSDLRenderMutex
);
pthread_cond_signal
(
&
mSDLRenderCondition
);
//wake up the SDL thread
pthread_mutex_unlock
(
&
mSDLRenderMutex
);
//__android_log_print(ANDROID_LOG_INFO, "SDL", "Unlocked");
}
}
android/testproject/jni/egl.h
0 → 100644
View file @
d4cfca1c
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_EGL_H
#define ANDROID_EGL_H
#include <GLES/gl.h>
#include <egltypes.h>
#include <eglnatives.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#define EGL_VERSION_1_0 1
#define EGL_VERSION_1_1 1
#define EGL_VERSION_1_2 1
#define EGL_FALSE 0
#define EGL_TRUE 1
/* Errors */
#define EGL_SUCCESS 0x3000
#define EGL_NOT_INITIALIZED 0x3001
#define EGL_BAD_ACCESS 0x3002
#define EGL_BAD_ALLOC 0x3003
#define EGL_BAD_ATTRIBUTE 0x3004
#define EGL_BAD_CONFIG 0x3005
#define EGL_BAD_CONTEXT 0x3006
#define EGL_BAD_CURRENT_SURFACE 0x3007
#define EGL_BAD_DISPLAY 0x3008
#define EGL_BAD_MATCH 0x3009
#define EGL_BAD_NATIVE_PIXMAP 0x300A
#define EGL_BAD_NATIVE_WINDOW 0x300B
#define EGL_BAD_PARAMETER 0x300C
#define EGL_BAD_SURFACE 0x300D
#define EGL_CONTEXT_LOST 0x300E
/* Config attributes */
#define EGL_BUFFER_SIZE 0x3020
#define EGL_ALPHA_SIZE 0x3021
#define EGL_BLUE_SIZE 0x3022
#define EGL_GREEN_SIZE 0x3023
#define EGL_RED_SIZE 0x3024
#define EGL_DEPTH_SIZE 0x3025
#define EGL_STENCIL_SIZE 0x3026
#define EGL_CONFIG_CAVEAT 0x3027
#define EGL_CONFIG_ID 0x3028
#define EGL_LEVEL 0x3029
#define EGL_MAX_PBUFFER_HEIGHT 0x302A
#define EGL_MAX_PBUFFER_PIXELS 0x302B
#define EGL_MAX_PBUFFER_WIDTH 0x302C
#define EGL_NATIVE_RENDERABLE 0x302D
#define EGL_NATIVE_VISUAL_ID 0x302E
#define EGL_NATIVE_VISUAL_TYPE 0x302F
#define EGL_SAMPLES 0x3031
#define EGL_SAMPLE_BUFFERS 0x3032
#define EGL_SURFACE_TYPE 0x3033
#define EGL_TRANSPARENT_TYPE 0x3034
#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
#define EGL_TRANSPARENT_RED_VALUE 0x3037
#define EGL_NONE 0x3038
#define EGL_BIND_TO_TEXTURE_RGB 0x3039
#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
#define EGL_MIN_SWAP_INTERVAL 0x303B
#define EGL_MAX_SWAP_INTERVAL 0x303C
#define EGL_LUMINANCE_SIZE 0x303D
#define EGL_ALPHA_MASK_SIZE 0x303E
#define EGL_COLOR_BUFFER_TYPE 0x303F
#define EGL_RENDERABLE_TYPE 0x3040
/* Config values */
#define EGL_DONT_CARE ((EGLint)-1)
#define EGL_SLOW_CONFIG 0x3050
#define EGL_NON_CONFORMANT_CONFIG 0x3051
#define EGL_TRANSPARENT_RGB 0x3052
#define EGL_NO_TEXTURE 0x305C
#define EGL_TEXTURE_RGB 0x305D
#define EGL_TEXTURE_RGBA 0x305E
#define EGL_TEXTURE_2D 0x305F
#define EGL_RGB_BUFFER 0x308E
#define EGL_LUMINANCE_BUFFER 0x308F
/* Config attribute mask bits */
#define EGL_PBUFFER_BIT 0x01
#define EGL_PIXMAP_BIT 0x02
#define EGL_WINDOW_BIT 0x04
#define EGL_OPENGL_ES_BIT 0x01
#define EGL_OPENVG_BIT 0x02
/* String names */
#define EGL_VENDOR 0x3053
#define EGL_VERSION 0x3054
#define EGL_EXTENSIONS 0x3055
#define EGL_CLIENT_APIS 0x308D
/* Surface attributes */
#define EGL_HEIGHT 0x3056
#define EGL_WIDTH 0x3057
#define EGL_LARGEST_PBUFFER 0x3058
#define EGL_TEXTURE_FORMAT 0x3080
#define EGL_TEXTURE_TARGET 0x3081
#define EGL_MIPMAP_TEXTURE 0x3082
#define EGL_MIPMAP_LEVEL 0x3083
#define EGL_RENDER_BUFFER 0x3086
#define EGL_COLORSPACE 0x3087
#define EGL_ALPHA_FORMAT 0x3088
#define EGL_HORIZONTAL_RESOLUTION 0x3090
#define EGL_VERTICAL_RESOLUTION 0x3091
#define EGL_PIXEL_ASPECT_RATIO 0x3092
#define EGL_SWAP_BEHAVIOR 0x3093
#define EGL_BACK_BUFFER 0x3084
#define EGL_SINGLE_BUFFER 0x3085
#define EGL_DISPLAY_SCALING 10000
#define EGL_UNKNOWN ((EGLint)-1)
/* Back buffer swap behaviors */
#define EGL_BUFFER_PRESERVED 0x3094
#define EGL_BUFFER_DESTROYED 0x3095
/* CreatePbufferFromClientBuffer buffer types */
#define EGL_OPENVG_IMAGE 0x3096
/* QueryContext targets */
#define EGL_CONTEXT_CLIENT_TYPE 0x3097
/* BindAPI/QueryAPI targets */
#define EGL_OPENGL_ES_API 0x30A0
#define EGL_OPENVG_API 0x30A1
/* WaitNative engines */
#define EGL_CORE_NATIVE_ENGINE 0x305B
/* Current surfaces */
#define EGL_DRAW 0x3059
#define EGL_READ 0x305A
EGLDisplay
eglGetDisplay
(
NativeDisplayType
display
);
EGLBoolean
eglInitialize
(
EGLDisplay
dpy
,
EGLint
*
major
,
EGLint
*
minor
);
EGLBoolean
eglTerminate
(
EGLDisplay
dpy
);
EGLBoolean
eglGetConfigs
(
EGLDisplay
dpy
,
EGLConfig
*
configs
,
EGLint
config_size
,
EGLint
*
num_config
);
EGLBoolean
eglChooseConfig
(
EGLDisplay
dpy
,
const
EGLint
*
attrib_list
,
EGLConfig
*
configs
,
EGLint
config_size
,
EGLint
*
num_config
);
EGLBoolean
eglGetConfigAttrib
(
EGLDisplay
dpy
,
EGLConfig
config
,
EGLint
attribute
,
EGLint
*
value
);
EGLSurface
eglCreateWindowSurface
(
EGLDisplay
dpy
,
EGLConfig
config
,
NativeWindowType
window
,
const
EGLint
*
attrib_list
);
EGLSurface
eglCreatePixmapSurface
(
EGLDisplay
dpy
,
EGLConfig
config
,
NativePixmapType
pixmap
,
const
EGLint
*
attrib_list
);
EGLSurface
eglCreatePbufferSurface
(
EGLDisplay
dpy
,
EGLConfig
config
,
const
EGLint
*
attrib_list
);
EGLBoolean
eglDestroySurface
(
EGLDisplay
dpy
,
EGLSurface
surface
);
EGLBoolean
eglQuerySurface
(
EGLDisplay
dpy
,
EGLSurface
surface
,
EGLint
attribute
,
EGLint
*
value
);
EGLContext
eglCreateContext
(
EGLDisplay
dpy
,
EGLConfig
config
,
EGLContext
share_list
,
const
EGLint
*
attrib_list
);
EGLBoolean
eglDestroyContext
(
EGLDisplay
dpy
,
EGLContext
ctx
);
EGLBoolean
eglMakeCurrent
(
EGLDisplay
dpy
,
EGLSurface
draw
,
EGLSurface
read
,
EGLContext
ctx
);
EGLContext
eglGetCurrentContext
(
void
);
EGLSurface
eglGetCurrentSurface
(
EGLint
readdraw
);
EGLDisplay
eglGetCurrentDisplay
(
void
);
EGLBoolean
eglQueryContext
(
EGLDisplay
dpy
,
EGLContext
ctx
,
EGLint
attribute
,
EGLint
*
value
);
EGLBoolean
eglWaitGL
(
void
);
EGLBoolean
eglWaitNative
(
EGLint
engine
);
EGLBoolean
eglSwapBuffers
(
EGLDisplay
dpy
,
EGLSurface
draw
);
EGLBoolean
eglCopyBuffers
(
EGLDisplay
dpy
,
EGLSurface
surface
,
NativePixmapType
target
);
EGLint
eglGetError
(
void
);
const
char
*
eglQueryString
(
EGLDisplay
dpy
,
EGLint
name
);
void
(
*
eglGetProcAddress
(
const
char
*
procname
))();
/* ----------------------------------------------------------------------------
* EGL 1.1
* ----------------------------------------------------------------------------
*/
EGLBoolean
eglSurfaceAttrib
(
EGLDisplay
dpy
,
EGLSurface
surface
,
EGLint
attribute
,
EGLint
value
);
EGLBoolean
eglBindTexImage
(
EGLDisplay
dpy
,
EGLSurface
surface
,
EGLint
buffer
);
EGLBoolean
eglReleaseTexImage
(
EGLDisplay
dpy
,
EGLSurface
surface
,
EGLint
buffer
);
EGLBoolean
eglSwapInterval
(
EGLDisplay
dpy
,
EGLint
interval
);
/* ----------------------------------------------------------------------------
* EGL 1.2
* ----------------------------------------------------------------------------
*/
EGLBoolean
eglBindAPI
(
EGLenum
api
);
EGLenum
eglQueryAPI
(
void
);
EGLBoolean
eglWaitClient
(
void
);
EGLBoolean
eglReleaseThread
(
void
);
EGLSurface
eglCreatePbufferFromClientBuffer
(
EGLDisplay
dpy
,
EGLenum
buftype
,
EGLClientBuffer
buffer
,
EGLConfig
config
,
const
EGLint
*
attrib_list
);
/* ----------------------------------------------------------------------------
* Android extentions
* ----------------------------------------------------------------------------
*/
EGLBoolean
eglSwapRectangleANDROID
(
EGLDisplay
dpy
,
EGLSurface
draw
,
EGLint
l
,
EGLint
t
,
EGLint
w
,
EGLint
h
);
EGLBoolean
eglCopyFrontToBackANDROID
(
EGLDisplay
dpy
,
EGLSurface
surface
,
EGLint
l
,
EGLint
t
,
EGLint
w
,
EGLint
h
);
const
char
*
eglQueryStringConfigANDROID
(
EGLDisplay
dpy
,
EGLConfig
config
,
EGLint
name
);
void
*
eglGetRenderBufferAddressANDROID
(
EGLDisplay
dpy
,
EGLSurface
surface
);
EGLBoolean
eglCopyBitsANDROID
(
EGLDisplay
dpy
,
NativeWindowType
draw
,
EGLint
x
,
EGLint
y
,
NativeWindowType
read
,
EGLint
crop_x
,
EGLint
crop_y
,
EGLint
crop_w
,
EGLint
crop_h
,
EGLint
flags
);
#ifdef __cplusplus
}
#endif
#endif
/*ANDROID_EGL_H*/
android/testproject/jni/eglnatives.h
0 → 100644
View file @
d4cfca1c
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_EGLNATIVES_H
#define ANDROID_EGLNATIVES_H
#include <sys/types.h>
#ifdef __cplusplus
extern
"C"
{
#endif
/*****************************************************************************/
struct
egl_native_window_t
;
struct
egl_native_pixmap_t
;
typedef
struct
egl_native_window_t
*
NativeWindowType
;
typedef
struct
egl_native_pixmap_t
*
NativePixmapType
;
typedef
void
*
NativeDisplayType
;
/*
* This a conveniance function to create a NativeWindowType surface
* that maps to the whole screen
* This function is actually implemented in libui.so
*/
NativeWindowType
android_createDisplaySurface
();
/* flags returned from swapBuffer */
#define EGL_NATIVES_FLAG_SIZE_CHANGED 0x00000001
/* surface flags */
#define EGL_NATIVES_FLAG_DESTROY_BACKBUFFER 0x00000001
enum
native_pixel_format_t
{
NATIVE_PIXEL_FORMAT_RGBA_8888
=
1
,
NATIVE_PIXEL_FORMAT_RGB_565
=
4
,
NATIVE_PIXEL_FORMAT_RGBA_5551
=
6
,
NATIVE_PIXEL_FORMAT_RGBA_4444
=
7
,
NATIVE_PIXEL_FORMAT_YCbCr_422_SP
=
0x10
,
NATIVE_PIXEL_FORMAT_YCbCr_420_SP
=
0x11
,
};
enum
native_memory_type_t
{
NATIVE_MEMORY_TYPE_PMEM
=
0
,
NATIVE_MEMORY_TYPE_GPU
=
1
,
NATIVE_MEMORY_TYPE_FB
=
2
,
NATIVE_MEMORY_TYPE_HEAP
=
128
};
struct
egl_native_window_t
{
/*
* magic must be set to 0x600913
*/
uint32_t
magic
;
/*
* must be sizeof(egl_native_window_t)
*/
uint32_t
version
;
/*
* ident is reserved for the Android platform
*/
uint32_t
ident
;
/*
* width, height and stride of the window in pixels
* Any of these value can be nul in which case GL commands are
* accepted and processed as usual, but not rendering occurs.
*/
int
width
;
// w=h=0 is legal
int
height
;
int
stride
;
/*
* format of the native window (see ui/PixelFormat.h)
*/
int
format
;
/*
* Offset of the bits in the VRAM
*/
intptr_t
offset
;
/*
* flags describing some attributes of this surface
* EGL_NATIVES_FLAG_DESTROY_BACKBUFFER: backbuffer not preserved after
* eglSwapBuffers
*/
uint32_t
flags
;
/*
* horizontal and vertical resolution in DPI
*/
float
xdpi
;
float
ydpi
;
/*
* refresh rate in frames per second (Hz)
*/
float
fps
;
/*
* Base memory virtual address of the surface in the CPU side
*/
intptr_t
base
;
/*
* Heap the offset above is based from
*/
int
fd
;
/*
* Memory type the surface resides into
*/
uint8_t
memory_type
;
/*
* Reserved for future use. MUST BE ZERO.
*/
uint8_t
reserved_pad
[
3
];
int
reserved
[
8
];
/*
* Vertical stride (only relevant with planar formats)
*/
int
vstride
;
/*
* Hook called by EGL to hold a reference on this structure
*/
void
(
*
incRef
)(
NativeWindowType
window
);
/*
* Hook called by EGL to release a reference on this structure
*/
void
(
*
decRef
)(
NativeWindowType
window
);
/*
* Hook called by EGL to perform a page flip. This function
* may update the size attributes above, in which case it returns
* the EGL_NATIVES_FLAG_SIZE_CHANGED bit set.
*/
uint32_t
(
*
swapBuffers
)(
NativeWindowType
window
);
/*
* Hook called by EGL to set the swap rectangle. this hook can be
* null (operation not supported)
*/
void
(
*
setSwapRectangle
)(
NativeWindowType
window
,
int
l
,
int
t
,
int
w
,
int
h
);
/*
* Reserved for future use. MUST BE ZERO.
*/
void
(
*
reserved_proc_0
)(
void
);
/*
* Hook called by EGL to retrieve the next buffer to render into.
* This call updates this structure.
*/
uint32_t
(
*
nextBuffer
)(
NativeWindowType
window
);
/*
* Hook called by EGL when the native surface is associated to EGL
* (eglCreateWindowSurface). Can be NULL.
*/
void
(
*
connect
)(
NativeWindowType
window
);
/*
* Hook called by EGL when eglDestroySurface is called. Can be NULL.
*/
void
(
*
disconnect
)(
NativeWindowType
window
);
/*
* Reserved for future use. MUST BE ZERO.
*/
void
(
*
reserved_proc
[
11
])(
void
);
/*
* Some storage reserved for the oem driver.
*/
intptr_t
oem
[
4
];
};
struct
egl_native_pixmap_t
{
int32_t
version
;
/* must be 32 */
int32_t
width
;
int32_t
height
;
int32_t
stride
;
uint8_t
*
data
;
uint8_t
format
;
uint8_t
rfu
[
3
];
union
{
uint32_t
compressedFormat
;
int32_t
vstride
;
};
int32_t
reserved
;
};
/*****************************************************************************/
/*
* OEM's egl's library (libhgl.so) must imlement these hooks to allocate
* the GPU memory they need
*/
typedef
struct
{
// for internal use
void
*
user
;
// virtual address of this area
void
*
base
;
// size of this area in bytes
size_t
size
;
// physical address of this area
void
*
phys
;
// offset in this area available to the GPU
size_t
offset
;
// fd of this area
int
fd
;
}
gpu_area_t
;
typedef
struct
{
// area where GPU registers are mapped
gpu_area_t
regs
;
// number of extra areas (currently limited to 2)
int32_t
count
;
// extra GPU areas (currently limited to 2)
gpu_area_t
gpu
[
2
];
}
request_gpu_t
;
typedef
request_gpu_t
*
(
*
OEM_EGL_acquire_gpu_t
)(
void
*
user
);
typedef
int
(
*
OEM_EGL_release_gpu_t
)(
void
*
user
,
request_gpu_t
*
handle
);
typedef
void
(
*
register_gpu_t
)
(
void
*
user
,
OEM_EGL_acquire_gpu_t
,
OEM_EGL_release_gpu_t
);
void
oem_register_gpu
(
void
*
user
,
OEM_EGL_acquire_gpu_t
acquire
,
OEM_EGL_release_gpu_t
release
);
/*****************************************************************************/
#ifdef __cplusplus
}
#endif
#endif
/* ANDROID_EGLNATIVES_H */
android/testproject/jni/egltypes.h
0 → 100644
View file @
d4cfca1c
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_EGL_TYPES_H
#define ANDROID_EGL_TYPES_H
#include <sys/types.h>
#ifdef __cplusplus
extern
"C"
{
#endif
typedef
unsigned
int
EGLBoolean
;
typedef
int32_t
EGLint
;
typedef
int
EGLenum
;
typedef
void
*
EGLDisplay
;
typedef
void
*
EGLConfig
;
typedef
void
*
EGLSurface
;
typedef
void
*
EGLContext
;
typedef
void
*
EGLClientBuffer
;
#define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0)
#define EGL_NO_CONTEXT ((EGLContext)0)
#define EGL_NO_DISPLAY ((EGLDisplay)0)
#define EGL_NO_SURFACE ((EGLSurface)0)
#ifdef __cplusplus
}
#endif
#endif
/* ANDROID_EGL_TYPES_H */
android/testproject/jni/lesson05.c
0 → 100644
View file @
d4cfca1c
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment